{"version":3,"sources":["webpack:///./src/View/schedule/components/searchJob.vue","webpack:///src/View/schedule/components/searchJob.vue","webpack:///./src/View/schedule/components/searchJob.vue?60b5","webpack:///./src/View/schedule/components/searchJob.vue?6489","webpack:///./node_modules/preact/dist/preact.module.js","webpack:///./src/View/schedule/dashboard.vue","webpack:///./src/View/schedule/components/SchedulerComponent.vue","webpack:///./node_modules/vue-full-calendar/components/FullCalendar.vue","webpack:///node_modules/vue-full-calendar/components/FullCalendar.vue","webpack:///./node_modules/vue-full-calendar/components/FullCalendar.vue?660c","webpack:///./node_modules/vue-full-calendar/components/FullCalendar.vue?1abb","webpack:///./node_modules/preact/hooks/dist/hooks.module.js","webpack:///./node_modules/preact/compat/dist/compat.module.js","webpack:///./node_modules/@fullcalendar/core/internal-common.js","webpack:///./node_modules/@fullcalendar/core/index.js","webpack:///./node_modules/@fullcalendar/interaction/index.js","webpack:///./node_modules/@fullcalendar/daygrid/internal.js","webpack:///./node_modules/@fullcalendar/daygrid/index.js","webpack:///./node_modules/@fullcalendar/timegrid/internal.js","webpack:///./node_modules/@fullcalendar/timegrid/index.js","webpack:///./node_modules/@fullcalendar/list/internal.js","webpack:///./node_modules/@fullcalendar/list/index.js","webpack:///./node_modules/@fullcalendar/multimonth/index.js","webpack:///./node_modules/@fullcalendar/premium-common/index.js","webpack:///./node_modules/@fullcalendar/scrollgrid/internal.js","webpack:///./node_modules/@fullcalendar/scrollgrid/index.js","webpack:///./node_modules/@fullcalendar/adaptive/index.js","webpack:///./node_modules/@fullcalendar/timeline/internal.js","webpack:///./node_modules/@fullcalendar/timeline/index.js","webpack:///./node_modules/@fullcalendar/resource/internal-common.js","webpack:///./node_modules/@fullcalendar/resource/index.js","webpack:///./node_modules/@fullcalendar/resource-daygrid/internal.js","webpack:///./node_modules/@fullcalendar/resource-daygrid/index.js","webpack:///./node_modules/@fullcalendar/resource-timegrid/internal.js","webpack:///./node_modules/@fullcalendar/resource-timegrid/index.js","webpack:///./node_modules/@fullcalendar/resource-timeline/internal.js","webpack:///./node_modules/@fullcalendar/resource-timeline/index.js","webpack:///./node_modules/fullcalendar-scheduler/index.js","webpack:///src/View/schedule/components/SchedulerComponent.vue","webpack:///./src/View/schedule/components/SchedulerComponent.vue?a338","webpack:///./src/View/schedule/components/SchedulerComponent.vue?8322","webpack:///src/View/schedule/dashboard.vue","webpack:///./src/View/schedule/dashboard.vue?7aa1","webpack:///./src/View/schedule/dashboard.vue?3d4b","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./src/View/schedule/components/scheduleListing.vue","webpack:///src/View/schedule/components/scheduleListing.vue","webpack:///./src/View/schedule/components/scheduleListing.vue?a699","webpack:///./src/View/schedule/components/scheduleListing.vue?cad9","webpack:///./src/View/schedule/components/scheduleExistingJobAdd.vue","webpack:///src/View/schedule/components/scheduleExistingJobAdd.vue","webpack:///./src/View/schedule/components/scheduleExistingJobAdd.vue?cc11","webpack:///./src/View/schedule/components/scheduleExistingJobAdd.vue?fa4b","webpack:///./src/View/schedule/components/visitMapLocation.vue","webpack:///src/View/schedule/components/visitMapLocation.vue","webpack:///./src/View/schedule/components/visitMapLocation.vue?7bd0","webpack:///./src/View/schedule/components/visitMapLocation.vue?1863","webpack:///./node_modules/fullcalendar/dist/fullcalendar.js","webpack:///./src/View/components/chip.vue","webpack:///src/View/components/chip.vue","webpack:///./src/View/components/chip.vue?a221","webpack:///./src/View/components/chip.vue?c91d","webpack:///./src/View/schedule/components/visitMapLocation.vue?be93","webpack:///./src/utils/validation.js","webpack:///./src/View/schedule/components/SchedulerComponent.vue?9453","webpack:///./node_modules/lodash.defaultsdeep/index.js","webpack:///./src/View/schedule/dashboard.vue?e7e6","webpack:///./src/View/components/textfield.vue","webpack:///src/View/components/textfield.vue","webpack:///./src/View/components/textfield.vue?f9fd","webpack:///./src/View/components/textfield.vue?73c1","webpack:///./src/utils/convertDateAndTime.js"],"names":["render","_vm","this","_c","_self","staticClass","staticStyle","_v","on","$event","closePopup","attrs","searchCall","_l","entStatusList","status","index","key","selected","displayText","toggleActiveAndInactiveA","visitLIst","length","data","_s","jobNumber","jobTitle","companyName","staticRenderFns","moment","name","components","StatusBtn","NoRecords","SearchTextInput","mixins","vistStatusId","id","empStatusList","searchForJob","searchForQuotation","getJobDebounce","resetPaginationValues","addLead","totalJobCount","filterObject","start","isActive","sortBy","sortOrder","customerId","from","to","created","mounted","beforeDestroy","methods","getLeadDataFromPagination","getJobCount","getVisitList","message","MyJobApp","response","currentDate","temp","component","f","employeeList","class","activeUer","userDetailId","toggleActiveAndInactiveB","fullName","toLowerCase","showGoto","selectedDateByPicker","_e","shwoTitle","$router","push","goDateCall","style","schedulerSectionHeight","isUnSchJob","isLoad","isReady","titleDate","startTime","defaultView","teamListData","eventList","titleHandler","unscheduleventList","empArray","resourceList","selectedView","ref","config","events","eventRender","sendReminderPopup","dayCLick","eventSelected","createJobPopup","newJobObj","dateTitle","createTask","createNewJob","existingJob","cancelPopup","selectedDatePicker","directives","rawName","value","closeDatePicker","expression","updateDate","model","currentViewDate","callback","$$v","searchJobPopup","openAddSchedulePage","selectedExisitngObject","selectedStartTime","selectedEndTime","props","default","eventSources","editable","selectable","selectHelper","header","left","center","right","sync","type","computed","defaultConfig","aspectRatio","timeFormat","self","viewRender","eventDestroy","eventClick","eventMouseover","eventMouseout","eventDrop","eventReceive","eventResize","dayClick","select","end","allDay","view","resource","$","cal","fireMethod","watch","deep","handler","c","s","a","h","n","l","u","v","parentNode","removeChild","y","i","t","r","o","arguments","children","call","defaultProps","p","__k","__","__b","__e","__d","__c","__h","constructor","__v","vnode","d","current","_","k","g","b","setProperty","test","cssText","replace","slice","addEventListener","w","m","removeEventListener","indexOf","removeAttribute","setAttribute","event","x","context","A","P","base","C","setTimeout","T","__r","debounceRendering","e","sort","shift","__P","M","__n","ownerSVGElement","N","H","Array","isArray","I","z","L","nextSibling","q","S","j","some","appendChild","insertBefore","contextType","__E","prototype","B","sub","state","_sb","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","forEach","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","O","diffed","localName","nodeType","document","createTextNode","createElementNS","createElement","is","childNodes","dangerouslySetInnerHTML","attributes","__html","innerHTML","checked","unmount","componentWillUnmount","D","firstChild","G","Consumer","Provider","splice","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","Promise","then","bind","resolve","__H","__N","__V","requestAnimationFrame","filter","clearTimeout","cancelAnimationFrame","isPureReactComponent","__f","Symbol","for","map","U","__u","__a","__R","__O","pop","fallback","W","delete","revealOrder","size","containerInfo","get","Map","reverse","set","Z","isReactComponent","Object","defineProperty","configurable","writable","J","K","cancelBubble","Q","defaultPrevented","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","nn","tn","multiple","defaultValue","className","enumerable","$$typeof","en","styleTexts","styleEls","injectStyles","styleText","styleEl","appendStylesTo","registerStylesRoot","rootNode","isConnected","querySelector","nonce","getNonceValue","parentEl","head","hydrateStylesRoot","sheet","ruleCnt","cssRules","split","styleStr","trim","insertRule","queriedNonceValue","undefined","queryNonceValue","metaWithNonce","hasAttribute","getAttribute","elWithNonce","css_248z","DelayedRunner","drainedOption","isRunning","isDirty","pauseDepths","timeoutId","delay","isPaused","tryDrain","scope","force","depth","keys","drained","removeElement","el","elementClosest","selector","closest","documentElement","contains","elementMatches","parentElement","method","matches","matchesSelector","msMatchesSelector","findElements","container","containers","HTMLElement","allMatches","querySelectorAll","findDirectChildren","parent","parents","childNode","PIXEL_PROP_RE","applyStyle","propName","applyStyleProp","val","getEventTargetViaRoot","ev","_a","_b","composedPath","target","guid$1","getUniqueDomId","preventDefault","transitionEventNames","whenTransitionDone","realCallback","eventName","createAriaClickAttrs","assign","onClick","createAriaKeyboardAttrs","tabIndex","guidNumber","guid","String","disableCursor","body","classList","add","enableCursor","remove","preventSelection","userSelect","webkitUserSelect","allowSelection","preventContextMenu","allowContextMenu","parseFieldSpecs","input","token","specs","tokens","charAt","field","substring","order","func","compareByFieldSpecs","obj0","obj1","fieldSpecs","cmp","compareByFieldSpec","fieldSpec","flexibleCompare","localeCompare","padStart","len","substr","formatWithOrdinals","formatter","args","fallbackText","reduce","str","arg","compareNumbers","isInt","computeSmallestCellWidth","cellEl","allWidthEl","contentWidthEl","Error","getBoundingClientRect","width","INTERNAL_UNITS","PARSE_RE","createDuration","unit","parseString","parseObject","exec","sign","years","months","days","parseInt","milliseconds","obj","duration","year","month","day","hours","hour","minutes","minute","seconds","second","millisecond","ms","weeks","week","specifiedWeeks","durationsEqual","d0","d1","asCleanDays","dur","addDurations","subtractDurations","multiplyDuration","asRoughDays","asRoughMs","asRoughMinutes","asRoughSeconds","wholeDivideDurations","numerator","denominator","res","localRes","greatestDurationDenominator","removeExact","array","exactVal","removeCnt","isArraysEqual","a0","a1","equalityFunc","DAY_IDS","addWeeks","dateToUtcArray","arrayToUtcDate","addDays","addMs","diffWeeks","m0","m1","diffDays","valueOf","diffDayAndTime","m0day","startOfDay","m1day","Math","round","diffWholeDays","timeAsMs","getUTCFullYear","getUTCMonth","getUTCDate","date","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","concat","Date","UTC","isValidDate","isNaN","buildIsoString","marker","timeZoneOffset","stripZeroTime","toISOString","formatTimeZoneOffset","formatDayString","formatIsoMonthStr","match","formatIsoTimeString","doIso","abs","floor","mins","memoize","workerFunc","resEquality","teardownFunc","currentArgs","currentRes","newArgs","apply","memoizeObjArg","currentArg","newArg","isPropsEqual","memoizeArraylike","currentArgSets","currentResults","newArgSets","currentLen","newLen","memoizeHashlike","currentArgHash","currentResHash","newArgHash","newResHash","EXTENDED_SETTINGS_AND_SEVERITIES","separator","omitZeroMinute","meridiem","omitCommas","STANDARD_DATE_PROP_SEVERITIES","timeZoneName","era","weekday","MERIDIEM_RE","COMMA_RE","MULTI_SPACE_RE","LTR_RE","UTC_RE","NativeFormatter","formatSettings","standardDateProps","extendedSettings","severity","max","buildFormattingFunc","betterDefaultSeparator","diffSeverity","computeMarkerDiffSeverity","calendarSystem","format","biggestUnitForPartial","full0","full1","partialDateProps","computePartialFormattingOptions","partialFormattingFunc","partial0","partial1","insertion","findCommonInsertion","defaultSeparator","before","after","standardDatePropCnt","formatWeekNumber","computeWeekNumber","weekText","weekTextLong","locale","buildNativeFormattingFunc","sanitizeSettings","timeZone","zeroFormat","normalFormat","Intl","DateTimeFormat","codes","zeroProps","postProcess","injectTzoStr","toLocaleLowerCase","tzoStr","replaced","num","display","parts","simpleNumberFormat","options","direction","join","ca","getMarkerYear","getMarkerMonth","getMarkerDay","biggestUnit","partialOptions","i0","found0","before0","after0","i1","found1","before1","after1","expandZonedMarker","dateInfo","markerToArray","createVerboseFormattingArg","startInfo","endInfo","localeCodes","CmdFormatter","cmdStr","cmdFormatter","FuncFormatter","createFormatter","Boolean","refineProps","refiners","refined","extra","identity","raw","hasOwnProperty","filterHash","hash","filtered","mapHash","newHash","arrayToHash","item","hashValuesToArray","HANDLER_RE","isNonHandlerPropsEqual","getUnequalProps","compareObjs","oldProps","newProps","equalityFuncs","isObjValsEqual","val0","val1","comparator","collectFromHash","startIndex","endIndex","step","calendarSystemClassMap","registerCalendarSystem","theClass","GregorianCalendarSystem","arr","Theme","calendarOptions","iconOverrideOption","setIconOverride","iconOverrideHash","iconClassesCopy","buttonName","iconClasses","applyIconOverridePrefix","prefix","iconOverridePrefix","classes","isRtl","rtlIconClasses","baseIconClass","customButtonProps","iconOverrideCustomButtonOption","flushSync","runBeforeFlush","oldDebounceRendering","callbackQ","execCallbackSync","createContext","ContextType","origProvider","isNew","subs","_props","old","ViewContextType","nextProps","nextState","debug","console","log","propEquality","stateEquality","newState","addPropsEquality","addStateEquality","BaseComponent","create","setRef","super","queuedDomNodes","currentDomNodes","handleEl","generatorName","customRenderingReplaces","hasCustomRenderingHandler","updateElRef","elRef","customGenerator","defaultGenerator","renderProps","buildElAttrs","innerContent","currentGeneratorMeta","useDefault","customGeneratorRes","isObject","html","domNodes","elTag","applyQueueudDomNodes","triggerCustomRendering","handleCustomRendering","customRenderingMetaMap","generatorMeta","containerEl","reportNewContainerEl","elClasses","isTruthy","newNode","extraClassNames","elAttrs","elStyle","RenderId","InnerContent","InnerContentInjector","didMountMisfire","generatedClassNames","generateClassNames","classNameGenerator","renderId","didMount","willUnmount","containerComponent","parentProps","classNames","viewApi","buildViewClassNames","viewSpec","viewClassNames","viewDidMount","viewWillUnmount","parseRange","dateEnv","createMarker","invertRanges","ranges","constraintRange","dateRange","invertedRanges","compareRanges","range0","range1","intersectRanges","newRange","min","rangesEqual","rangesIntersect","rangeContainsRange","outerRange","innerRange","rangeContainsMarker","range","constrainMarkerToRange","computeAlignedDayRange","timedRange","dayCnt","computeVisibleDayRange","nextDayThreshold","startDay","endDay","endTimeMS","isMultiDayRange","visibleRange","diffDates","date0","date1","largeUnit","diffWholeYears","diffWholeMonths","getNow","nowInput","createNowMarker","DateProfileGenerator","nowDate","initHiddenDays","currentDateProfile","forceToValid","prevDate","subtract","startOf","currentRangeUnit","dateIncrement","build","nextDate","validRange","currentInfo","isRangeAllDay","renderRange","activeRange","isValid","buildValidRange","trimHiddenDays","buildCurrentRangeInfo","buildRenderRange","showNonCurrentDates","adjustActiveRange","currentRange","slotMinTime","slotMaxTime","buildDateIncrement","validRangeInput","simpleInput","calendarApi","refineRange","dayCount","durationUnit","buildRangeFromDuration","buildRangeFromDayCount","buildCustomVisibleRange","greatestWholeUnit","getFallbackDuration","usesMinMaxTime","dateAlignment","computeRes","isHiddenDay","skipHiddenDays","runningCount","visibleRangeInput","toDate","customAlignment","rangeInput","hiddenDays","isHiddenDayHash","weekends","getUTCDay","inc","isExclusive","createEventInstance","defId","forcedStartTzo","forcedEndTzo","instanceId","parseRecurring","defaultAllDay","recurringTypes","parsed","parse","allDayGuess","typeData","typeId","expandRecurring","eventStore","framingRange","pluginHooks","defs","instances","instance","recurringDef","def","defaultAllDayEventDuration","defaultTimedEventDuration","starts","expandRecurringRanges","eventDef","typeDef","markers","expand","EVENT_NON_DATE_REFINERS","groupId","title","url","interactive","EVENT_DATE_REFINERS","EVENT_REFINERS","extendedProps","parseEvent","eventSource","allowOpenRange","buildEventRefiners","defIdMap","instanceIdMap","refineEventDef","computeIsDefaultAllDay","recurringRes","parseEventDef","sourceId","singleRes","parseSingle","hasEnd","publicId","EVENT_UI_REFINERS","eventRefiners","ui","createEventUi","memberAdder","eventDefMemberAdders","freeze","startMeta","endMeta","startMarker","endMarker","startInput","createMarkerMeta","isTimeUnspecified","forceEventDuration","forcedTzo","parseEvents","rawEvents","createEmptyEventStore","rawEvent","tuple","eventTupleToStore","getRelevantEvents","newStore","filterEventStoreDefs","lookDef","isEventDefsGrouped","def0","def1","mergeEventStores","store0","store1","filterFunc","normalizeConstraint","parseClassNames","startEditable","durationEditable","constraint","overlap","allow","color","backgroundColor","borderColor","textColor","EMPTY_EVENT_UI","constraints","allows","combineEventUis","uis","combineTwoEventUis","item0","item1","EVENT_SOURCE_REFINERS","eventDataTransform","success","failure","parseEventSource","buildEventSourceRefiners","rawObj","metaRes","buildEventSourceMeta","_raw","isFetching","latestFetchId","fetchRange","sourceDefId","meta","eventSourceRefiners","eventSourceDefs","parseMeta","excludeInstances","removals","Emitter","handlers","thisContext","addToHash","removeFromHash","attachedHandlers","optionHandler","DEF_DEFAULTS","endTime","daysOfWeek","parseBusinessHours","refineInputs","rawDefs","rawDef","triggerDateSelect","selection","pev","emitter","trigger","buildDateSpanApiWithContext","jsEvent","origEvent","triggerDateUnselect","dateSpan","transform","dateSpanTransforms","buildDateSpanApi","getDefaultEventEnd","applyMutationToEventStore","eventConfigBase","mutation","eventConfigs","compileEventUis","dest","applyMutationToEventDef","applyMutationToEventInstance","eventConfig","standardProps","startDelta","endDelta","copy","applier","eventDefMutationAppliers","eventInstance","forceAllDay","clearEnd","datesDelta","EventSourceImpl","internalEventSource","dispatch","sourceIds","isRefetch","EventImpl","_context","_def","_instance","warn","mutate","instanceRange","granularity","maintainDuration","endInput","deltaInput","delta","allDayMaintainDuration","formatInput","formatRange","getCurrentData","relevantEvents","oldEvent","relatedEvents","buildEventApis","asStore","eventApiToStore","formatIso","omitTime","settings","startStr","endStr","collapseColor","collapseExtendedProps","toPlainObject","eventApi","excludeInstance","eventApis","excludeInstanceId","sliceEventStore","eventUiBases","inverseBgByGroupId","inverseBgByDefId","defByGroupId","bgRanges","fgRanges","eventUis","origRange","normalRange","slicedRange","isStart","isEnd","invertedRange","bg","fg","hasBgRendering","setElSeg","seg","fcSeg","getElSeg","eventDefs","compileEventUi","sortEventSegs","segs","eventOrderSpecs","objs","buildSegCompareObj","_seg","eventRange","Number","computeSegDraggable","transformers","isDraggableTransformers","transformer","computeSegStartResizable","eventResizableFromStart","computeSegEndResizable","buildSegTimeText","defaultDisplayEventTime","defaultDisplayEventEnd","startOverride","endOverride","displayEventTime","displayEventEnd","wholeEventStart","wholeEventEnd","segStart","segEnd","isStartDay","isEndDay","getSegMeta","todayRange","segRange","isPast","isFuture","isToday","getEventClassNames","isMirror","isDraggable","isStartResizable","isEndResizable","isDragging","isResizing","isSelected","buildEventRangeKey","getSegAnchorAttrs","href","eventInteractive","hasHandlers","STANDARD_PROPS","parseDateSpan","defaultDuration","span","parseOpenDateSpan","isDateSpansEqual","span0","span1","isSpanPropsEqual","buildRangeApi","buildRangeApiWithTimeZone","fabricateEventRange","unpromisify","normalizedSuccessCallback","normalizedFailureCallback","isResolved","wrappedSuccess","wrappedFailure","error","JsonRequestError","requestJson","params","toUpperCase","fetchOptions","URLSearchParams","headers","fetch","fetchRes","ok","json","parsedResponse","canVGrowWithinCell","getCanVGrowWithinCell","computeCanVGrowWithinCell","position","top","height","div","possible","offsetHeight","Interaction","isHitComboAllowed","interactionSettingsToStore","uid","interactionSettingsStore","CalendarImpl","currentDataManager","action","optionName","rawOptionValue","currentCalendarOptionsInput","availableRawLocales","handlerName","currentCalendarOptionsRefiners","off","viewType","dateOrRange","batchRendering","unselect","dateMarker","spec","viewSpecs","getUnitViewSpec","toolbarConfig","viewTypes","viewsWithButtons","footer","singleUnit","addYears","now","zonedDateInput","dateOrObj","endDate","selectionInput","dateSelection","eventInput","sourceInput","currentData","triggerEventAdd","sourceApi","getEventSourceById","newEventApi","revert","sourceHash","sourceApis","internalId","sources","timeInput","time","pointInsideRect","point","rect","bottom","intersectRects","rect1","rect2","translateRect","deltaX","deltaY","constrainPoint","getRectCenter","diffPoints","point1","point2","EMPTY_EVENT_STORE","Splitter","getKeysForEventDefs","_getKeysForEventDefs","splitDateSelection","_splitDateSpan","splitEventStore","_splitEventStore","splitIndividualUi","_splitIndividualUi","splitEventDrag","_splitInteraction","splitEventResize","eventUiBuilders","keyInfos","getKeyInfo","defKeys","dateSelections","individualUi","eventStores","eventDrags","eventDrag","eventResizes","splitProps","info","buildEventUiForKey","keyInfo","buildEventUi","businessHours","eventSelection","dateSpans","getKeysForDateSpan","getKeysForEventDef","splitStores","splitHashes","interaction","splitStates","affectedStores","affectedEvents","mutatedKeysByDefId","mutatedEvents","mutatedStores","populate","isEvent","allUi","eventUiForKey","baseParts","stuff","getDateMeta","dateProfile","dow","isDisabled","isOther","getDayClassNames","theme","getClass","getSlotClassNames","DAY_FORMAT","WEEK_FORMAT","buildNavLinkAttrs","isTabbable","dateStr","navLinks","zonedDate","handleInteraction","customAction","navLinkDayClick","navLinkWeekClick","zoomTo","navLinkHint","_scrollbarWidths","_isRtlScrollbarOnLeft","getIsRtlScrollbarOnLeft","computeIsRtlScrollbarOnLeft","outerEl","border","padding","overflow","innerEl","getScrollbarWidths","computeScrollbarWidths","computeScrollbarWidthsForEl","clientHeight","offsetWidth","clientWidth","computeEdges","getPadding","computedStyle","window","getComputedStyle","borderLeft","borderLeftWidth","borderRight","borderRightWidth","borderTop","borderTopWidth","borderBottom","borderBottomWidth","badScrollbarWidths","scrollbarLeftRight","scrollbarBottom","scrollbarLeft","scrollbarRight","paddingLeft","paddingRight","paddingTop","paddingBottom","computeInnerRect","goWithinPadding","doFromWindowViewport","outerRect","computeRect","edges","pageXOffset","pageYOffset","computeClippedClientRect","clippingParents","getClippingParents","clippingParent","intersection","overflowY","overflowX","PositionCache","originEl","els","isHorizontal","isVertical","originClientRect","buildElHorizontals","buildElVerticals","originClientLeft","lefts","rights","originClientTop","tops","bottoms","leftPosition","topPosition","leftIndex","topIndex","otherCache","similarNumArrays","ScrollController","getScrollHeight","getClientHeight","getScrollWidth","getClientWidth","getMaxScrollTop","getMaxScrollLeft","getScrollTop","getScrollLeft","ElementScrollController","scrollTop","scrollLeft","scrollWidth","scrollHeight","WindowScrollController","scroll","DateComponent","positionLeft","positionTop","elWidth","elHeight","SegHierarchy","getEntryThickness","entry","thickness","strictOrder","allowReslicing","maxCoord","maxStackCnt","levelCoords","entriesByLevel","stackCnts","inputs","hiddenEntries","insertEntry","findInsertion","isInsertionValid","insertEntryAt","handleInvalidInsertion","levelCoord","stackCnt","touchingEntry","hiddenEntry","intersectSpans","splitEntry","barrier","entrySpan","barrierSpan","lateral","insertAt","level","buildEntryKey","newEntry","levelCnt","candidateCoord","touchingLevel","touchingLateral","trackingLevel","trackingCoord","trackingEntry","trackingEntries","searchRes","binarySearch","getEntrySpanEnd","lateralIndex","trackingEntryBottom","destLevel","destLateral","rects","entries","groupIntersectingEntries","merges","filteredMerges","hungryMerge","merge","joinSpans","searchVal","getItemVal","middleIndex","middleVal","ElementDragging","bool","computeFallbackHeaderFormat","datesRepDistinctDays","CLASS_NAME","renderInner$1","text","dayMeta","dayHeaderFormat","navLinkAttrs","colCnt","extraRenderProps","role","colSpan","extraDataAttrs","dayHeaderContent","dayHeaderClassNames","dayHeaderDidMount","dayHeaderWillUnmount","InnerContainer","isSticky","WEEKDAY_FORMAT","dateMeta","initialNowDate","initialNowQueriedMs","computeTiming","currentState","prevProps","unroundedNow","currentUnitStart","nextUnitStart","waitMs","buildDayRange","createDayHeaderFormatter","dates","renderIntro","explicitFormat","dateCnt","DaySeriesModel","dateProfileGenerator","indices","dayIndex","cnt","firstIndex","getDateDayIndex","lastIndex","clippedFirstIndex","clippedLastIndex","ceil","dayOffset","DayTableModel","daySeries","breakOnWeeks","daysPerRow","firstDay","rowCnt","cells","buildCells","headerDates","buildHeaderDates","rows","row","col","buildCell","seriesSeg","sliceRange","nextIndex","firstCol","lastCol","Slicer","sliceBusinessHours","_sliceBusinessHours","sliceDateSelection","_sliceDateSpan","_sliceEventStore","sliceEventDrag","_sliceInteraction","sliceEventResize","forceDayIfListItem","extraArgs","eventSegs","dateSelectionSegs","businessHourSegs","fgEventSegs","bgEventSegs","computeActiveRange","rangeRes","sliceEventRanges","affectedInstances","activeDateSpanRange","eventRanges","sliceEventRange","isComponentAllDay","isInteractionValid","isNewPropsValid","isDateSelectionValid","calendarState","isPropsValid","dateSpanMeta","filterConfig","isInteractionPropsValid","isDateSelectionPropsValid","subjectEventStore","subjectDefs","subjectInstances","subjectConfigs","selectionConfig","otherEventStore","otherDefs","otherInstances","otherConfigs","subjectInstanceId","subjectInstance","subjectRange","subjectConfig","subjectDef","allConstraintsPass","eventOverlap","eventOverlapFunc","otherInstanceId","otherInstance","otherOverlap","calendarEventStore","subjectAllow","subjectDateSpan","origDef","origInstance","relevantEventStore","relevantDefs","relevantInstances","selectionRange","selectOverlap","selectOverlapFunc","relevantInstanceId","relevantInstance","selectionAllow","fullDateSpan","businessHoursUnexpanded","anyRangesContainRange","constraintToRanges","eventStoreToRanges","outerRanges","VISIBLE_HIDDEN_RE","liquid","liquidIsAbsolute","isAbsolute","overcomeLeft","overcomeRight","overcomeBottom","marginLeft","marginRight","marginBottom","maxHeight","realClientWidth","getYScrollbarWidth","childEl","realClientHeight","getXScrollbarWidth","RefMap","masterCallback","currentMap","depths","callbackMap","handleValue","removed","added","refCallback","computeShrinkWidth","chunkEls","shrinkCells","largestWidth","shrinkCell","getSectionHasLiquidHeight","sectionConfig","getAllowYScrolling","renderChunkContent","chunkConfig","isHeader","expandRows","content","tableClassName","syncRowHeights","minWidth","tableMinWidth","tableColGroupNode","rowContent","isColPropsEqual","cols0","cols1","renderMicroColGroup","cols","shrinkWidth","colNodes","colProps","sanitizeShrinkWidth","hasShrinkWidth","getScrollGridClassNames","getSectionClassNames","wholeTableVGrow","renderScrollShim","getStickyHeaderDates","stickyHeaderDates","viewHeight","getStickyFooterScrollbar","stickyFooterScrollbar","processCols","scrollerRefs","scrollerElRefs","_handleScrollerEl","forceYScrollbars","scrollerClientWidths","scrollerClientHeights","handleSizing","safeSetState","computeScrollerDims","sectionConfigs","sections","microColGroupNode","collapsibleWidth","currentConfig","configCnt","configI","headSectionNodes","bodySectionNodes","footSectionNodes","renderSection","isBuggy","roleAttrs","outerContent","renderChunkTd","chunk","needsYScrolling","isLiquid","sectionKey","rowSyncHeights","reportRowHeightChange","createRef","scrollerEl","section","getSectionByKey","scrollerElRef","addResizeHandler","removeResizeHandler","getAll","scrollbarWidth","scroller","harnessEl","timeText","disableDragging","disableResizing","isDateSelecting","eventContent","eventClassNames","eventDidMount","eventWillUnmount","eventTimeFormat","defaultTimeFormat","renderInnerContent$1","eventContentArg","innerProps","NowIndicatorContainer","isAxis","nowIndicatorContent","nowIndicatorClassNames","nowIndicatorDidMount","nowIndicatorWillUnmount","DAY_NUM_FORMAT","refineRenderProps","isMonthStart","showDayNumber","monthStartFormat","dayCellContent","dayCellClassNames","dayCellDidMount","dayCellWillUnmount","hasCustomDayCellContent","dayNumberText","renderInnerContent","renderFill","fillType","WeekNumberContainer","weekNumberFormat","defaultFormat","weekNumberContent","renderInner","weekNumberClassNames","weekNumberDidMount","weekNumberWillUnmount","PADDING_FROM_VIEWPORT","titleId","handleRootEl","rootEl","handleDocumentMouseDown","handleCloseClick","handleDocumentKeyDown","onClose","extraAttrs","getIconClass","closeHint","updateSize","alignmentEl","alignGridTop","alignmentRect","popoverDims","popoverTop","popoverLeft","origin","offsetParent","registerInteractiveComponent","useEventCenter","unregisterInteractiveComponent","startDate","dayPopoverFormat","forceTimed","extraDateSpan","dayEl","layer","isPopoverOpen","popoverId","handleLinkEl","linkEl","handleClick","moreLinkClick","computeRange","buildPublicSeg","allDayDate","allSegs","hiddenSegs","handlePopoverClose","moreLinkText","moreCnt","hint","moreLinkHint","shortText","moreLinkContent","renderMoreLinkInner","moreLinkClassNames","moreLinkDidMount","moreLinkWillUnmount","alignmentElRef","popoverContent","updateParentEl","computeEarliestSegStart","computeLatestSegEnd","pickEarliestStart","seg0","seg1","pickLatestEnd","MINIMAL_RAW_EN_LOCALE","code","doy","buttonText","prev","next","prevYear","nextYear","today","list","timeHint","eventHint","allDayText","noEventsText","buttonHints","viewHint","eventCnt","createPlugin","premiumReleaseDate","deps","reducers","isLoadingFuncs","contextInit","eventDragMutationMassagers","dateSelectionTransformers","datePointTransforms","views","viewPropsTransformers","externalDefTransforms","viewContainerAppends","eventDropTransformers","componentInteractions","calendarInteractions","themeClasses","namedTimeZonedImpl","initialView","elementDraggingImpl","optionChangeHandlers","scrollGridImpl","listenerRefiners","optionRefiners","propSetHandlers","root","tableCellShaded","buttonGroup","button","buttonActive","close","computeEventSourcesLoading","eventSourceDef$2","ignoreRange","successCallback","arrayEventSourcePlugin","eventSourceDef$1","errorCallback","funcEventSourcePlugin","JSON_FEED_EVENT_SOURCE_REFINERS","extraParams","startParam","endParam","timeZoneParam","eventSourceDef","requestParams","buildRequestParams","jsonFeedEventSourcePlugin","customRequestParams","SIMPLE_RECURRING_REFINERS","startRecur","endRecur","recurring","recurringData","clippedFramingRange","expandRanges","simpleRecurringEventsPlugin","dowHash","dayMarker","instanceStarts","instanceStart","changeHandlerPlugin","handleEventSources","unfoundSources","newInputs","inputFound","unfoundSource","newInput","addEventSource","handleDateProfile","handleEventStore","globalPlugins","touchMouseIgnoreWait","ignoreMouseDepth","listenerCnt","isWindowTouchMoveCancelled","subjectEl","handleSelector","shouldIgnoreMove","shouldWatchScroll","isTouchDragging","wasTouchScroll","handleMouseDown","shouldIgnoreMouse","isPrimaryMouseButton","tryStart","createEventFromMouse","initScrollWatch","handleMouseMove","handleMouseUp","recordCoords","cleanup","handleTouchStart","createEventFromTouch","targetEl","handleTouchMove","handleTouchEnd","handleTouchScroll","startIgnoringMouse","handleScroll","pageX","prevScrollX","prevPageX","pageY","prevScrollY","prevPageY","isTouch","origPageX","origPageY","passive","listenerCreated","listenerDestroyed","querySubjectEl","downEl","destroyScrollWatch","isFirst","touches","ctrlKey","onWindowTouchMove","isVisible","sourceEl","mirrorEl","sourceElRect","zIndex","revertDuration","origScreenX","origScreenY","updateElPosition","needsRevertAnimation","done","doRevertAnimation","finalSourceElRect","transition","getMirrorEl","cloneNode","visibility","boxSizing","margin","scrollController","doesListening","handleScrollChange","origScrollTop","origScrollLeft","clientRect","computeClientRect","getEventTarget","setScrollTop","setScrollLeft","getTime","performance","AutoScroller","isEnabled","scrollQuery","edgeThreshold","maxVelocity","pointerScreenX","pointerScreenY","isAnimating","scrollCaches","everMovedUp","everMovedDown","everMovedLeft","everMovedRight","animate","edge","computeBestEdge","handleSide","msSinceRequest","requestAnimation","scrollStartEl","buildCaches","handleMove","yDelta","xDelta","scrollCache","destroy","invDistance","distance","velocity","bestSide","leftDist","rightDist","topDist","bottomDist","canScrollUp","canScrollDown","canScrollLeft","canScrollRight","queryScrollEls","query","getRootNode","minDistance","touchScrollAllowed","mirrorNeedsRevert","isInteracting","isDelayEnded","isDistanceSurpassed","delayTimeoutId","onPointerDown","pointer","mirror","setIsVisible","startDelay","handleDistanceSurpassed","onPointerMove","distanceSq","autoScroller","onPointerUp","stop","tryStopDrag","handleDelayEnd","tryStartDrag","cancelTouchScroll","stopDrag","origRect","scrollEl","isIgnoredClipping","node","tagName","dragging","droppableStore","useSubjectCenter","requireInitial","initialHit","movingHit","finalHit","handlePointerDown","prepareHits","processFirstCoord","setIgnoreMove","handleDragStart","handleDragMove","handlePointerUp","releaseHits","handleDragEnd","subjectRect","origPoint","adjustedPoint","queryHitForOffset","slicedSubjectRect","coordAdjust","forceHandle","hit","isHitsEqual","offsetTrackers","interactionSettings","offsetLeft","offsetTop","bestHit","offsetTracker","isWithinClipping","originLeft","computeLeft","originTop","computeTop","queryHit","componentId","hit0","hit1","buildDatePointApiWithContext","buildDatePointApi","isValidDateDownEl","hitDragging","dragSelection","canSelect","getComponentTouchDelay$1","handleHitUpdate","isFinal","isInvalid","disallowed","joinHitsIntoSelection","selectMinDistance","dragScroll","selectLongPressDelay","longPressDelay","dateSpan0","dateSpan1","subjectSeg","receivingContext","validMutation","mutatedRelevantEvents","origTarget","initialContext","eventInstanceId","eventDragMinDistance","getComponentTouchDelay","fixedMirrorParent","dragRevertDuration","isValidSegDownEl","receivingOptions","droppable","computeEventMutation","displayDrag","setMirrorNeedsRevert","setMirrorIsVisible","clearDrag","updatedEventApi","eventChangeArg","transformed","eventRemoveArg","draggedEl","addedEventDef","addedEventInstance","addedEventApi","eventAddArg","SELECTOR","nextContext","prevContext","initialCalendar","massagers","massager","eventLongPressDelay","draggingSegEl","draggingSeg","segEl","querySegEl","computeMutation","isFromStart","isRecentPointerDateSelect","matchesCancel","matchesEvent","onSelect","selectInfo","onDocumentPointerDown","unselectCancel","onDocumentPointerUp","documentPointer","unselectAuto","OPTION_REFINERS","LISTENER_REFINERS","dateClick","eventDragStart","eventDragStop","eventResizeStart","eventResizeStop","drop","eventLeave","dataAttrPrefix","headerElRef","headerRowContent","bodyContent","isHeightAuto","forPrint","dayMinWidth","ScrollGrid","chunks","colGroups","splitSegsByRow","byRow","splitSegsByFirstCol","byCol","splitInteractionByRow","DEFAULT_TABLE_EVENT_TIME_FORMAT","hasListItemDisplay","compileSegs","invisibleSegs","singlePlacements","isForcedInvisible","placement","DEFAULT_WEEK_NUM_FORMAT","rootElRef","dayNumberId","shouldDisplayMonthStart","renderTopInner","innerElRef","minHeight","showWeekNumber","forceDayTop","fgContentElRef","fgContent","marginTop","moreMarginTop","bgContent","currentStart","currentEnd","currentEndIncl","currentFirstYear","getYear","currentFirstMonth","getMonth","currentLastYear","currentLastMonth","getDay","generateSegKey","generateSegUid","computeFgSegPlacement","dayMaxEvents","dayMaxEventRows","segHeights","maxContentHeight","hierarchy","segEntry","segUid","hiddenConsumes","segInputs","unknownHeightSegs","eventHeight","addSegs","segRects","toRects","singleColPlacements","multiColPlacements","leftoverMargins","placeRects","moreCnts","moreMarginTops","absoluteTop","resliceSeg","hiddenSpan","allRects","rectsByEachCol","groupRectsByEachCol","currentHeight","currentMarginTop","multiPlacements","isFirstCol","spanStart","spanEnd","forceHidden","excludeHidden","touchingEntryId","hiddenEntryId","cellElRefs","frameElRefs","fgElRefs","segHarnessRefs","framePositions","handleResize","isForced","updateSizing","businessHoursByCol","bgEventSegsByCol","highlightSegsByCol","getHighlightSegs","mirrorSegsByCol","getMirrorSegs","eventOrder","eventOrderStrict","cell","normalFgNodes","renderFgSegs","mirrorFgNodes","buildMirrorPlacements","showDayNumbers","showWeekNumbers","renderFillSegs","cellMinHeight","prevState","currentProps","segPlacements","nodes","leftRightCss","isExternalSizingChange","frameEls","newPositionCache","similarTo","oldSegHeights","newSegHeights","querySegHeights","limitByContentHeight","computeMaxContentHeight","segElMap","firstKey","fcContainerEl","elMap","mirrorSegs","colPlacements","topsByInstanceId","buildAbsoluteTopHash","placements","splitBusinessHourSegs","splitBgEventSegs","splitFgEventSegs","splitDateSelectionSegs","rowRefs","businessHourSegsByRow","bgEventSegsByRow","fgEventSegsByRow","dateSelectionSegsByRow","eventDragByRow","eventResizeByRow","renderRowIntro","isSegAllDay","firstCellEl","getCellEls","rowPositions","collect","rowObj","colPositions","leftToIndex","topToIndex","getCellRange","getCellEl","needsScrollReset","limitViaBalanced","colGroupNode","requestScrollReset","flushScrollReset","getScrollSubjectEl","dayTableModel","slicer","tableRef","sliceProps","headerAlignElRef","buildDayTableModel","headerRef","headerContent","dayHeaders","contentArg","weekNumbers","renderHScrollLayout","renderSimpleLayout","buildDayTableRenderRange","snapToWeek","fixedWeekCount","endOfWeek","startOfWeek","lastMonthRenderStart","startOfMonth","dayGrid","dateProfileGeneratorClass","dayGridDay","dayGridWeek","dayGridMonth","dayGridYear","timed","DEFAULT_SLAT_LABEL_FORMAT","TimeColsAxisCell","isLabeled","isoTimeStr","labelFormat","slotLabelFormat","slotLabelContent","slotLabelClassNames","slotLabelDidMount","slotLabelWillUnmount","slatMetas","slatMeta","AUTO_ALL_DAY_MAX_EVENT_ROWS","allDaySplitter","slatCoords","handleScrollTopRequest","renderHeadAxis","rowKey","frameHeight","renderTableRowAxis","rowHeight","allDayContent","renderAllDayInner","allDayClassNames","allDayDidMount","allDayWillUnmount","handleSlatCoords","timeContent","isNowIndicator","nowIndicator","nowIndicatorTop","safeComputeTop","positions","slotDuration","startOfDayDate","timeMs","computeTimeTop","when","slatIndex","slatRemainder","slatCoverage","getHeight","slatElRefs","axis","slotLaneContent","slotLaneClassNames","slotLaneDidMount","slotLaneWillUnmount","onCoords","collectSlatEls","splitSegsByCol","segsByCol","splitInteractionByCol","renderPlainFgSegs","buildPositioning","hiddenGroups","web","buildWeb","stretchWeb","webToRects","buildNode","cacheable","siblingRange","findNextLevelSegs","nextLevelRes","buildNodes","nextLevelNodes","lateralStart","lateralEnd","pairs","cmpDescPressures","extractNode","subjectLevel","subjectLateral","subjectEntry","afterSubject","searchIndex","topLevelNodes","totalThickness","stretchNode","startCoord","prevThickness","endCoord","allThickness","thicknessFraction","newChildren","newThickness","processNode","stackDepth","stackForward","processNodes","keyFunc","workFunc","cache","computeSegVCoords","colDate","eventMinHeight","vcoords","computeDateTop","computeFgSegPlacements","segVCoords","eventMaxStack","dumbSegs","segRect","dumbSeg","DEFAULT_TIME_FORMAT","isShort","isSelectMirror","selectMirror","interactionAffectedInstances","sortedFgSegs","renderNowIndicator","nowIndicatorSegs","segIsInvisible","forcedKey","renderPositionedFgSegs","eventShortHeight","renderHiddenGroups","segPlacement","vStyle","computeSegVStyle","hStyle","computeSegHStyle","isInset","hiddenGroup","positionCss","compileSegsFromEntries","segHCoords","shouldOverlap","slotEventOverlap","nearCoord","farCoord","hiddenInstances","segEntries","splitNowIndicatorSegs","nowIndicatorSegsByRow","updateCoords","onColCoords","collectCellEls","processSlotOptions","handleScrollRequest","request","onScrollTopRequest","handleColCoords","colCoords","onSlatCoords","scrollResponder","createScrollResponder","update","detach","snapDuration","snapsPerSlot","colIndex","slatTop","slatHeight","partial","localSnapIndex","snapIndex","dayDate","snapDurationOverride","dayRanges","buildDayRanges","timeColsRef","sliceNowDate","STOCK_SUB_DURATIONS","buildSlatMetas","explicitLabelInterval","dayStart","slatTime","slatIterator","labelInterval","computeLabelInterval","metas","slotsPerLabel","buildTimeColsModel","slotLabelInterval","hasAttachedAxis","hasDetachedAxis","allDaySlot","getAllDayMaxEventProps","timeGridContent","timeGrid","timeGridDay","timeGridWeek","textId","cellId","listDayFormat","sideText","listDaySideFormat","sideNavLinkAttrs","timeHeaderId","eventHeaderId","dateHeaderId","renderEventInnerContent","buildTimeContent","interactiveAttrs","doAllDay","computeDateVars","eventStoreToSegs","_eventStoreToSegs","dateHeaderIdRoot","setRootEl","dayDates","renderSegList","renderEmptyMessage","noEventsContent","renderNoEventsInner","noEventsClassNames","noEventsDidMount","noEventsWillUnmount","segsByDay","groupSegsByDay","innerNodes","daySegs","dayStr","eventRangesToSegs","eventRangeToSegs","viewEnd","createFalsableFormatter","buttonTextKey","listDay","listWeek","listMonth","listYear","labelId","slicedProps","tableHeight","tableWidth","isoDateStr","titleFormat","splitDateProfileByMonth","buildMonthFormat","scrollElRef","firstMonthElRef","monthHPadding","colCount","multiMonthMinWidth","multiMonthMaxColumns","monthWidthPct","monthTableWidth","isLegitSingleCol","monthDateProfiles","monthTitleFormat","multiMonthTitleFormat","rootClassNames","monthDateProfile","monthStr","firstMonthEl","monthEl","oneMonthDuration","monthStart","monthEnd","YEAR_MONTH_FORMATTER","YEAR_FORMATTER","formatOverride","multiMonth","multiMonthYear","UPGRADE_WINDOW","INVALID_LICENSE_URL","OUTDATED_LICENSE_URL","PRESET_LICENSE_KEYS","CSS","background","borderStyle","borderWidth","fontSize","borderTopRightRadius","buildLicenseWarning","schedulerLicenseKey","currentUrl","location","isImmuneUrl","processLicenseKey","purchaseDate","releaseDate","mockSchedulerReleaseDate","minPurchaseDate","getScrollCanvasOrigin","getScrollFromLeftEdge","computedStyles","getRtlScrollSystem","setScrollFromLeftEdge","_rtlScrollSystem","detectRtlScrollSystem","system","STICKY_SELECTOR","elGeoms","queryElGeoms","viewportWidth","assignStickyPositions","canvasOrigin","parentBound","elRect","textAlign","naturalBound","parseFloat","parentWidth","xScrollbarWidth","yScrollbarWidth","handleScroller","scrollerRef","isScrollbarOnLeft","simulateScrollLeft","snapshot","restoredScrollLeft","needsXScrolling","WHEEL_EVENT_NAMES","isScrolling","isTouching","isRecentlyWheeled","isRecentlyScrolled","wheelWaiter","_handleWheelWaited","scrollWaiter","_handleScrollWaited","startScroll","handleWheel","endScroll","clear","ScrollSyncer","scrollEls","scrollListeners","bindScroller","scrollListener","onScroll","isWheel","masterEl","assignMaster","otherEl","onScrollEnd","listener","SCROLLGRID_RESIZE_INTERVAL","compileColGroupStats","compileColGroupStat","isColGroupStatsEqual","renderMicroColGroups","clippedScrollerRefs","chunkElRefs","_handleChunkEl","scrollSyncersBySection","scrollSyncersByColumn","rowUnstableMap","rowInnerMaxHeightMap","anyRowHeightsChanged","recentSizingCnt","shrinkWidths","forceXScrollbars","sectionRowMaxHeights","isForcedResize","sectionRowMaxHeightsChanged","allowSizing","otherState","computeSectionRowMaxHeights","computeShrinkWidths","updateStickyScrolling","handleRowHeightChange","rowEl","isStable","innerMaxHeight","getRowInnerMaxHeight","has","colGroupStats","colGroup","microColGroupNodes","stat","getDims","renderMacroColGroup","sectionIndex","renderChunk","colGroupStat","chunkIndex","rowHeights","sectionCnt","chunksPerSection","sideScrollIndex","isVScrollSide","isLastSection","allowXScrolling","allowYScrolling","chunkVGrow","totalColMinWidth","getStickyScrolling","initStickyScrolling","getScrollSyncersBySection","initScrollSyncer","destroyScrollSyncer","getScrollSyncersByColumn","updateScrollSyncers","destroyScrollSyncers","lastSizingDate","hasShrinkCol","newHeightMap","sectionI","assignableHeights","rowHeightsByChunk","chunkI","chunkEl","isEqualRowCnt","isOuterContent","rowHeightsAcrossChunks","chunkHeightSums","sumNumbers","maxTotalSum","rowInChunkCnt","rowInChunkTotalHeight","rowInChunkHeightOthers","rowInChunkHeightFirst","rowInChunkHeights","sideScrollI","lastSectionI","currentScrollers","scrollerEls","argsByKey","stickyScrolling","scrollElsBySection","scrollElsByColumn","scrollElMap","scrollSyncer","forceScrollLeft","forceScrollTop","getChunkConfigByIndex","numbers","sum","innerHeights","getElHeight","totalColWidth","colGroupConfig","sumColProp","total","COL_GROUP_STAT_EQUALITY","stat0","stat1","COLLAPSIBLE_WIDTH_THRESHOLD","contexts","undoFuncs","attachGlobalHandlers","removeGlobalHandlers","handleBeforePrint","handleAfterPrint","freezeScrollgridWidths","freezeScrollGridWidth","unfreezeScrollGridWidth","MIN_AUTO_LABELS","MAX_AUTO_SLOTS_PER_LABEL","MAX_AUTO_CELLS","MAX_TIMELINE_SLOTS","buildTimelineDateProfile","allOptions","tDateProfile","validateLabelAndSlot","ensureLabelInterval","ensureSlotDuration","rawFormats","computeHeaderFormats","headerFormats","rawFormat","isTimeScale","slotUnit","emphasizeWeeks","currentRangeAs","rawSnapDuration","timeWindowMs","normalizedStart","normalizeDate","normalizedEnd","normalizedRange","slotDates","snapDiff","snapDiffToIndex","snapIndexToDiff","snapCnt","slotCnt","isWeekStarts","buildIsWeekStarts","cellRows","buildCellRows","normalDate","normalizeRange","dayRange","labelCnt","countDurationsBetween","tryLabelInterval","trySlotDuration","format1","format2","weekNumbersVisible","format0","prevWeekNumber","slotDate","weekNumber","isWeekStart","formats","slotAsDays","guessedSlotUnit","rowUnitsFromFormats","getLargestUnit","rowCells","leadingCell","isLastRow","isSuperRow","newCell","rowUnit","colspan","buildCellObject","weekStart","buildCellNavLinkAttrs","rowLevel","omitTimeZoneOffset","rowInnerHeight","cellDate","rowInnerHeights","isLast","isChrono","slatRootEl","slatEls","outerCoordCache","innerCoordCache","snapCoverage","computeDateSnapCoverage","slotCoverage","slotIndex","getWidth","dateToCoord","coord","snapDiffInt","coordToCss","hcoord","coordsToCss","hcoords","timerUnit","isDateInRange","onMaxCushionWidth","computeMaxCushionWidth","isEm","isDay","onScrollLeftRequest","coords","coordFromLeft","durationToCoord","slatWidth","computeSegHCoords","timelineCoords","rangeToCoords","eventInstanceHeights","moreLinkHeights","crudePlacements","hiddenPlacements","moreLinkInputs","moreLinkCrudePlacements","extractSeg","sortedSegs","visibleRects","visiblePlacements","segIndex","highlightSeg","eventResizeSegs","renderSegs","resourceId","harnessElRefs","moreElRefs","fgSegs","fgSegHCoords","eventMinWidth","fgPlacements","fgHeight","onHeightChange","moreEl","syncParentMinHeight","isoStr","slatsRef","handeEl","handleCoords","slats","slatHit","positionToHit","scrollGridRef","slotCushionMaxWidth","handleScrollLeftRequest","scrollGrid","handleMaxCushionWidth","slotMinWidth","slatCols","buildSlatCols","computeFallbackSlotMinWidth","timeline","timelineDay","timelineWeek","timelineMonth","timelineYear","PRIVATE_ID_PREFIX","RESOURCE_REFINERS","parentId","eventEditable","eventStartEditable","eventDurationEditable","eventConstraint","eventAllow","eventBackgroundColor","eventBorderColor","eventTextColor","eventColor","parseResource","store","childInput","getPublicId","_resource","oldResource","propValue","resourceStore","resourceHash","internalResource","thisResourceId","childApis","resourceIds","internal","collapseEventColor","buildResourceApis","resourceApis","DEFAULT_RESOURCE_ORDER","handleResourceStore","calendarData","refineRenderProps$1","resourceLabelContent","resourceLabelClassNames","resourceLabelDidMount","resourceLabelWillUnmount","buildDateFormat","dateFormat","renderResourceRow","resources","datesAboveResources","renderDayAndResourceRows","renderResourceAndDayRows","resourceCells","buildTr","dateCells","renderDateCell","keyPostfix","ResourceIndex","indicesById","ids","AbstractResourceDayTableModel","resourceIndex","dateCol","resourceCol","computeCol","ResourceDayTableModel","dateI","resourceI","dateStartI","dateEndI","DayResourceTableModel","NO_SEGS","joinDateSelection","joinSegs","joinBusinessHours","joinFgEvents","joinBgEvents","joinEventDrags","joinInteractions","joinEventResizes","propSets","resourceDayTable","dateSelectionSets","businessHoursSets","fgEventSets","bgEventSets","segGroups","resourceCnt","transformedSegs","transformSeg","interactions","anyInteractions","resourceDayTableModel","flattenResources","orderSpecs","buildRowNodes","groupSpecs","isVGrouping","expansions","expansionDefault","complexNodes","buildHierarchy","flatNodes","flattenNodes","rowSpans","complexNode","group","firstRowIndex","rowSpanIndex","firstRow","firstRowSpans","isExpanded","hasChildren","resourceFields","maxDepth","resourceNodes","buildResourceNodes","builtNodes","resourceNode","insertResourceNode","nodeHash","buildResourceFields","insertResourceNodeInSiblings","groupNode","ensureGroupNodes","groupSpec","newGroupIndex","groupValue","siblings","isGroupsEqual","group0","group1","massageEventDragMutation","eventMutation","resource0","resource1","resourceMutation","matchResourceId","setResourceId","applyEventDefMutation","computeResourceEditable","resourceEditable","source","eventResourceEditable","transformEventDrop","getResourceById","newResource","filterResources","viewProps","calendarProps","optionDefaults","needsResourceData","filterResourcesWithEvents","resourceEntityExpansions","doFilterResourcesWithEvents","instancesInRange","filterEventInstancesInRange","hasEvents","computeHasEvents","computeAncestorHasEvents","eventInstances","transformIsDraggable","eventUi","currentViewType","buildResourceEventUis","injectResourceEventUis","resourceEventUis","injectResourceEventUi","origEventUi","unshift","registerResourceSourceDef","getResourceSourceDef","getResourceSourceDefs","RESOURCE_SOURCE_REFINERS","parseResourceSource","inputObj","warnUnknownProps","buildResourceSourceMeta","reduceResourceSource","createSource","initialResources","refetchResourcesOnNavigate","resourceSourceInput","handleRangeChange","fetchId","doesSourceIgnoreRange","sourceDef","resourceSource","rawResources","reduceResourceStore","receiveRawResources","addResource","removeResource","setResourceProp","setResourceExtendedProp","existingStore","nextStore","additions","childResourceId","existingResource","reduceResourceEntityExpansions","reduceResources","generateEventDefResourceMembers","ensureStringArray","items","transformDateSelectionJoin","resourceId0","resourceId1","transformDatePoint","transformDateSpan","isPropsValidWithResources","combinedProps","splitter","sets","filterConstraints","transformExternalDef","scrollTo","resourceApi","rawResource","getResources","getTopLevelResources","refetchResources","handleResources","newSourceInput","oldSourceInput","resourceOrder","resourceGroupField","resourceAreaWidth","resourceAreaColumns","resourcesInitiallyExpanded","resourceAreaHeaderClassNames","resourceAreaHeaderContent","resourceAreaHeaderDidMount","resourceAreaHeaderWillUnmount","resourceGroupLabelClassNames","resourceGroupLabelContent","resourceGroupLabelDidMount","resourceGroupLabelWillUnmount","resourceLaneClassNames","resourceLaneContent","resourceLaneDidMount","resourceLaneWillUnmount","resourceGroupLaneClassNames","resourceGroupLaneContent","resourceGroupLaneDidMount","resourceGroupLaneWillUnmount","resourcesSet","resourceAdd","resourceChange","resourceRemove","setResources","publicArg","colRanges","computeColRanges","colRange","slicers","joiner","allowAcrossResources","joinProps","buildResourceDayTableModel","resourceOrderSpecs","dayTable","resourceDayGrid","resourceDayGridDay","resourceDayGridWeek","resourceDayGridMonth","buildNowIndicatorSegs","nonResourceSegs","expandSegs","buildResourceTimeColsModel","resourceTimeGrid","resourceTimeGridDay","resourceTimeGridWeek","ExpanderIcon","onExpanderClick","iconClassNames","colSpec","fieldValue","isMain","cellContent","renderResourceInner","cellClassNames","cellDidMount","cellWillUnmount","innerHeight","rowSpan","renderGroupInner","colSpecs","innerInnerRef","spreadsheetColCnt","labelContent","renderCellInner","labelClassNames","labelDidMount","labelWillUnmount","SPREADSHEET_COL_MIN_WIDTH","resizerElRefs","_handleColResizerEl","colDraggings","superHeaderRendering","rowNodes","headerDefault","headerClassNames","headerDidMount","headerWillUnmount","isLastCol","resizerEl","initColResizing","onColWidthChange","ElementDraggingImpl","startWidth","currentWidths","allCells","setAutoScrollEnabled","handleHeightChange","renderHooks","laneContent","laneClassNames","laneDidMount","laneWillUnmount","rowElRefs","fallbackBusinessHours","onRowHeightChange","onRowCoords","collectRowEls","rowNode","computeHasResourceBusinessHours","resourceSplitter","bgSlicer","handleRowCoords","rowCoords","hasResourceBusinessHours","bgLaneProps","bgSlicedProps","rowIndex","MIN_RESOURCE_AREA_WIDTH","timeBodyScrollerElRef","spreadsheetHeaderChunkElRef","ensureScrollGridResizeId","resourceAreaWidthOverride","ensureScrollGridResize","spreadsheetHeaderRows","timeHeaderContent","spreadsheetBodyRows","timeBodyContent","spreadsheetCols","timeCols","timeBodyScrollerEl","initSpreadsheetResizing","destroySpreadsheetResizing","spreadsheetHeadEl","dragStartWidth","viewWidth","spreadsheetResizerDragging","newWidth","processColOptions","hasNesting","layoutRef","renderedRowNodes","buildRowIndex","layout","forceTimeScroll","rowId","rowIdToIndex","fromBottom","forceResourceScroll","handleColWidthChange","colWidths","spreadsheetColWidths","buildSpreadsheetCols","renderSpreadsheetRows","resourceScroll","queryResourceScroll","trBottoms","getResourceScroll","elBottom","forcedWidths","fallbackWidth","allColSpecs","plainColSpecs","groupColSpecs","mainColSpec","hGroupField","allOrderSpecs","plainOrderSpecs","orderSpec","isGroup","resourceTimeline","resourceTimelineDay","resourceTimelineWeek","resourceTimelineMonth","resourceTimelineYear","FullCalendar","SearchJob","ScheduleExistingJobAdd","DateTimepicker","mainEventList","scheduleList","userTimeFilter","hideBtn","sendEmailPopup","eventOperation","dropEvents","showTodayButton","schedulerDisplayDate","rangeStartDateTime","rangeEndDateTime","showTiltle","scheduleStartDt","selectedDate","scheduleEndDt","resourceLabelText","oneDay","slotWidth","timelineFourDay","agendaDay","resourceArr","cellNumber","scheduleData","getTimeViewData","taskId","requestId","visitId","schdulelmntdate","changeViewCall","changeView","compareDate","scheduleDate","subView","d2","tempStartDate","tempEndDate","showAlert","endDt","startDt","oldAssignee","newAssignee","visitStartDateTime","visitEndDateTime","configureCalenarEvents","sDate","eDate","jobId","mainObject","element","timeFilter","usarsFilter","SchedulerComponent","VisitMapLocation","ScheduleListing","Chip","taskList","userFilterlist","applyedUserFilters","defaultSubView","firstName","loadRouterWise","manageRouterQuery","user","stime","etime","getUnSchJobs","getDayOneJobVisist","getJoblist","getUserOndayTaskList","err","getTaskList","getTeamList","empLi","abc","reload","getFilterWiseData","global","factory","module","exports","noGlobal","getProto","getPrototypeOf","class2type","toString","hasOwn","fnToString","ObjectFunctionString","support","isFunction","isWindow","preservedScriptAttributes","src","noModule","DOMEval","doc","script","toType","version","jQuery","fn","init","rtrim","isArrayLike","jquery","toArray","pushStack","elems","ret","prevObject","each","elem","first","eq","last","extend","copyIsArray","clone","isPlainObject","expando","random","msg","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","grep","invert","callbackInverse","callbackExpect","iterator","Sizzle","Expr","getText","isXML","tokenize","compile","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","push_native","booleans","whitespace","identifier","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escaped","escapedWhitespace","high","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","dir","seed","nid","groups","newSelector","newContext","ownerDocument","getElementById","getElementsByTagName","getElementsByClassName","qsa","toSelector","testContext","qsaError","cacheLength","markFunction","assert","addHandle","attrHandle","siblingCheck","cur","diff","sourceIndex","createInputPseudo","createButtonPseudo","createDisabledPseudo","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","hasCompare","subWindow","attachEvent","createComment","getById","getElementsByName","attrId","find","getAttributeNode","tag","tmp","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","elements","attr","specified","escape","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matched","matcher","unmatched","lang","elemLang","activeElement","hasFocus","selectedIndex","radio","checkbox","file","password","image","submit","reset","combinator","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","filters","parseOnly","soFar","preFilters","cached","compiled","unique","isXMLDoc","escapeSelector","until","truncate","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","contents","sibling","targets","prevAll","addBack","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","rnothtmlwhite","createOptions","object","flag","Identity","Thrower","ex","adoptValue","reject","noValue","promise","fail","Callbacks","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","empty","disable","lock","fireWith","Deferred","tuples","always","deferred","pipe","fns","newDefer","returned","progress","notify","onFulfilled","onRejected","onProgress","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","readyException","readyList","completed","catch","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","bulk","rmsPrefix","rdashAlpha","fcamelCase","all","letter","camelCase","string","acceptData","owner","Data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","getData","JSON","dataAttr","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","setter","clearQueue","count","defer","pnum","rcssNum","cssExpand","isAttached","composed","isHiddenWithinTree","css","swap","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","show","values","hide","toggle","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","tr","td","_default","setGlobalEval","refElements","optgroup","tbody","tfoot","colgroup","caption","th","buildFragment","scripts","ignored","wrap","attached","fragment","createDocumentFragment","htmlPrefilter","checkClone","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","types","one","origFn","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","Event","handleObjIn","eventHandle","handleObj","namespaces","origType","elemData","handle","triggered","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","handlerQueue","fix","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","originalEvent","load","noBubble","click","beforeunload","returnValue","relatedTarget","timeStamp","isSimulated","altKey","bubbles","cancelable","changedTouches","detail","eventPhase","metaKey","shiftKey","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","which","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rxhtmlTag","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","pdataOld","pdataCur","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","append","prepend","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","rboxStyle","curCSS","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","measure","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","cssPrefixes","emptyStyle","vendorProps","vendorPropName","capName","finalPropName","final","cssProps","rdisplayswap","rcustomProp","cssShow","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","getWidthOrHeight","boxSizingNeeded","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","isCustomProp","isFinite","scrollboxSizeBuggy","suffix","expanded","propHooks","run","percent","eased","pos","fx","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","defaultPrefilter","opts","oldfire","propTween","restoreDisplay","isBox","anim","dataShow","unqueued","propFilter","specialEasing","properties","stopped","prefilters","currentTime","tweens","originalProperties","originalOptions","gotoEnd","complete","timer","tweener","prefilter","speed","opt","speeds","fadeTo","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","timeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","classesToArray","removeProp","propFix","tabindex","addClass","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","isSuccess","conv2","conv","responseFields","dataFilter","throws","active","lastModified","etag","isLocal","protocol","processData","async","contentType","accepts","ajaxSetup","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","beforeSend","send","nativeStatusText","modified","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","parentOffset","Height","Width","defaultExtra","funcName","hover","fnOver","fnOut","unbind","delegate","undelegate","proxy","holdReady","hold","parseJSON","isNumeric","_jQuery","_$","noConflict","listTitle","showJobDetail","domProps","getIcons","dateStatus","company","eventsArray","_m","discard","addNewVisit","Button","SheduleVisit","visitData","assignToList","itemList","showMap","userLocation","latitude","longitude","mainId","showDetails","isrequest","isTasK","_f","customerName","cardTititle","addressLine1","city","zip","totalJobVisit","summary","employeeLocation","markerA","indexA","locationObj","lastName","addedDate","Vue","libraries","orgId","selectedEmpId","places","setBountCall","currentPlace","isSocketLoaded","lat","lng","scheduledList","lastEmpData","clickonmap1","getEmployeeLocation","getLocationdetail","loadSocket","updateStaffLocation","clickonmap","setBound","bounds","fitBoud","__WEBPACK_EXTERNAL_MODULE_0__","__WEBPACK_EXTERNAL_MODULE_3__","modules","installedModules","__webpack_require__","moduleId","__esModule","property","extendStatics","setPrototypeOf","__proto__","__extends","compensateScroll","rowEls","scrollbarWidths","uncompensateScroll","distributeHeight","availableHeight","shouldRedistribute","minOffset1","minOffset2","flexEls","flexOffsets","flexHeights","usedHeight","undistributeHeight","minOffset","naturalOffset","outerHeight","naturalHeight","newHeight","matchCellWidths","maxInnerWidth","innerWidth","outerWidth","subtractInnerElHeight","both","getScrollParent","scrollParent","getOuterRect","getClientRect","getCssFloat","getContentRect","widths","leftRightWidth","bottomWidth","sanitizeScrollbarWidth","getIsLeftRtlScrollbars","_isLeftRtlScrollbars","computeIsLeftRtlScrollbars","getEvX","getEvY","getEvIsTouch","obj2","obj1fallback","obj2fallback","val2","diffDayTime","stripTime","diffDay","diffByUnit","computeGreatestUnit","unitsDesc","computeRangeAs","computeDurationGreatestUnit","durationInput","isDuration","as","divideRangeByDuration","durationHasTime","asMonths","asDays","divideDurationByDuration","dur1","dur2","months1","months2","isNativeDate","isTimeString","_i","dayIDs","hasOwnPropMethod","mergeProps","propObjs","complexProps","complexObjs","copyOwnProps","name_1","hasOwnProp","applyAll","functions","thisObj","removeMatching","testFunc","firstDefined","htmlEscape","stripHtmlEntities","cssToStr","statements","attrsToStr","capitaliseFirstLetter","methodName","debounce","immediate","timestamp","later","callNow","moment_ext_1","UnzonedRange","isMoment","stripZone","startMs","endMs","compareUnzonedRanges","intersect","otherRange","intersectsWith","containsRange","containsDate","constrainDate","equals","getStart","utc","getEnd","range2","tslib_1","ParsableModelMixin_1","Class_1","EventDefParser_1","EventSource","_super","calendar","_this","uuid","rawInput","applyProps","normalizeId","timezone","removeEventDefsById","eventDefId","removeAllEventDefs","getPrimitive","otherSource","parseEventDefs","rawEventDefs","calendarTransform","sourceTransform","applyManualStandardProps","rawProps","defineStandardProps","copyVerbatimStandardProps","mixInto","rendering","allDayDefault","Mixin_1","ListenerMixin","listenTo","other","getListenerNamespace","stopListeningTo","listenerId","EventDef_1","EventInstance_1","EventDateProfile_1","SingleEventDef","buildInstances","buildInstance","isAllDay","rezone","superSuccess","miscProps","util_1","ambigDateOfMonthRegex","ambigTimeOrZoneRegex","newMomentProto","oldMomentProto","momentProperties","oldMomentFormat","mom","formatStr","momentExt","makeMoment","parseAsUTC","parseZone","isAmbigTime","isAmbigZone","ambigMatch","isSingleString","_ambigTime","_ambigZone","utcOffset","_fullCalendar","hasTime","weekCalc","_locale","_fullCalendar_weekCalc","isoWeek","dayHours","wasAmbigTime","hasZone","local","keepLocalTime","tzo","ComponentFootprint","unzonedRange","toLegacy","msToMoment","EmitterMixin","_prepareIntercept","intercept","triggerWith","_getView","Mixin","destClass","getOwnPropertyNames","mixOver","UnzonedRange_1","EventDateProfile","buildUnzonedRange","forcedAllDay","isAfter","isStandardProp","DragListener_1","HitDragListener","handleInteractionStart","hitsNeeded","computeScrollBounds","origHit","subjectCenter","handleHitOver","handleDrag","dx","dy","handleHitOut","handleHitDone","isOrig","handleInteractionEnd","isCancelled","hitsNotNeeded","handleScrollEnd","isHitPropsWithin","subHit","superHit","internalApiVersion","date_formatting_1","formatDate","queryMostGranularFormatUnit","locale_1","datepickerLocale","getMomentLocaleData","populateInstanceComputableOptions","util_2","eventDefsToEventInstances","eventFootprintToComponentFootprint","eventInstanceToEventRange","eventInstanceToUnzonedRange","eventRangeToEventFootprint","EmitterMixin_1","ListenerMixin_1","Model_1","Model","Constraints_1","Constraints","DateProfileGenerator_1","ComponentFootprint_1","BusinessHourGenerator_1","BusinessHourGenerator","EventPeriod_1","EventPeriod","EventManager_1","EventManager","EventDef","EventDefMutation_1","EventDefMutation","EventDefParser","EventInstance","EventRange_1","EventRange","RecurringEventDef_1","RecurringEventDef","SingleEventDef_1","EventDefDateMutation_1","EventDefDateMutation","EventSourceParser_1","EventSourceParser","EventSource_1","ThemeRegistry_1","defineThemeSystem","getThemeSystemClass","EventInstanceGroup_1","EventInstanceGroup","ArrayEventSource_1","ArrayEventSource","FuncEventSource_1","FuncEventSource","JsonFeedEventSource_1","JsonFeedEventSource","EventFootprint_1","EventFootprint","Class","CoordCache_1","CoordCache","Iterator_1","Iterator","DragListener","HitDragListener_1","MouseFollower_1","MouseFollower","ParsableModelMixin","Popover_1","Popover","Promise_1","TaskQueue_1","TaskQueue","RenderQueue_1","RenderQueue","Scroller_1","Scroller","Theme_1","Component_1","Component","DateComponent_1","InteractiveDateComponent_1","InteractiveDateComponent","Calendar_1","Calendar","View_1","View","ViewRegistry_1","defineView","getViewConfig","DayTableMixin_1","DayTableMixin","BusinessHourRenderer_1","BusinessHourRenderer","EventRenderer_1","EventRenderer","FillRenderer_1","FillRenderer","HelperRenderer_1","HelperRenderer","ExternalDropping_1","ExternalDropping","EventResizing_1","EventResizing","EventPointing_1","EventPointing","EventDragging_1","EventDragging","DateSelecting_1","DateSelecting","DateClicking_1","DateClicking","Interaction_1","StandardInteractionsMixin_1","StandardInteractionsMixin","AgendaView_1","AgendaView","TimeGrid_1","TimeGrid","TimeGridEventRenderer_1","TimeGridEventRenderer","TimeGridFillRenderer_1","TimeGridFillRenderer","TimeGridHelperRenderer_1","TimeGridHelperRenderer","DayGrid_1","DayGrid","DayGridEventRenderer_1","DayGridEventRenderer","DayGridFillRenderer_1","DayGridFillRenderer","DayGridHelperRenderer_1","DayGridHelperRenderer","BasicView_1","BasicView","BasicViewDateProfileGenerator_1","BasicViewDateProfileGenerator","MonthView_1","MonthView","MonthViewDateProfileGenerator_1","MonthViewDateProfileGenerator","ListView_1","ListView","ListEventPointing_1","ListEventPointing","ListEventRenderer_1","ListEventRenderer","eventFootprint","componentFootprint","getAllEventRanges","sliceNormalRenderRanges","sliceRenderRanges","isInverse","sliceInverseRenderRanges","slicedEventRanges","unzonedRanges","ownerDef","getEventDef","hasInverseRendering","explicitEventDef","PromiseStub","construct","executor","attachImmediatelyResolvingThen","attachImmediatelyRejectingThen","onResolve","onReject","optionsManager","processIconOverride","getCustomButtonIconClass","exportHooks","globalEmitter","neededCount","GlobalEmitter","mouseIgnoreDepth","needed","unneeded","touchstart","touchcancel","handleTouchCancel","touchend","mousedown","mousemove","mouseup","selectstart","handleSelectStart","contextmenu","handleContextMenu","handleTouchMoveProxy","handleScrollProxy","stopTouch","skipMouseIgnore","startTouchMouseIgnore","viewName","viewConfig","viewHash","options_1","localeOptionHash","locales","dpComputableOptions","dpOptions","prevText","nextText","currentText","monthYearFormat","showMonthAfterYear","yearSuffix","momComputableOptions","dayOfMonthFormat","momOptions","fcOptions","longDateFormat","isRTL","mediumTimeFormat","smallTimeFormat","extraSmallTimeFormat","hourFormat","noMeridiemTimeFormat","instanceComputableOptions","smallDayDateFormat","weekFormat","weekNumberTitle","smallWeekFormat","localeCode","dpLocaleCode","weekHeader","jqDatePicker","datepicker","regional","setDefaults","newFcOptions","mergeOptions","globalDefaults","localeData","englishDefaults","titleRangeSeparator","columnHeader","weekNumberCalculation","scrollTime","minTime","maxTime","lazyFetching","timezoneParam","agendaEventMinHeight","dragOpacity","dropAccept","eventLimit","eventLimitText","eventLimitClick","handleWindowResize","windowResizeDelay","rtlDefaults","buttonIcons","themeButtonIcons","complexOptions","optionObjs","getEventLegacy","members","SubClass","mixin","generateId","rawId","getRendering","getConstraint","getOverlap","isStartExplicitlyEditable","isDurationExplicitlyEditable","isExplicitlyEditable","_id","applyMiscProps","sourceClasses","registerClass","EventSourceClass","createFromRawProps","dateMutation","defMutation","dateProps","verbatimStandardProps","createFromDiff","mutateSingle","origDateProfile","buildNewDateProfile","setDateMutation","isEmpty","dateProfile0","dateProfile1","dateDelta","endDiff","subtractDates","setDateDelta","setEndDelta","eventDateProfile","shouldRezone","applyTimezone","setStartDelta","renderEl","applyOverflow","setHeight","lockOverflow","GlobalEmitter_1","_view","_options","segSelector","dateSelectingClass","dateClicking","dateClickingClass","dateSelecting","eventPointingClass","eventPointing","eventDraggingClass","eventDragging","eventResizingClass","eventResizing","externalDroppingClass","externalDropping","setElement","bindToEl","bindAllSegHandlersToEl","endInteractions","executeEventUnrender","bindGlobalHandlers","bindToDocument","unbindGlobalHandlers","unbindFromDocument","bindDateHandlerToEl","eventInteraction","bindSegHandlerToEl","shouldIgnoreEventPointing","shouldIgnoreTouch","selectedEvent","canStartSelection","canStartResize","isEventDefDraggable","footprint","isEventDefResizable","canStartDrag","isEventDefSelected","isEventDefStartEditable","isEditable","isEventDefGenerallyEditable","isEventDefResizableFromStart","isEventDefResizableFromEnd","isResizable","isEventInstanceGroupAllowed","eventInstanceGroup","eventFootprints","eventRangesToEventFootprints","validUnzonedRange","isExternalInstanceGroupAllowed","isSelectionFootprintAllowed","batchRenderDepth","initRenderQueue","bindBaseRenderHandlers","renderQueue","onRenderQueueStart","onRenderQueueStop","startBatchRender","stopBatchRender","freezeContentHeight","addScroll","queryScroll","updateViewSize","popScroll","thawContentHeight","pause","resume","requestRender","actionType","whenSizeUpdated","computeTitle","currentUnzonedRange","activeUnzonedRange","computeTitleFormat","setDate","newDateProfile","unsetDate","unset","fetchInitialEvents","requestEvents","bindEventChanges","resetEvents","unbindEventChanges","setEvents","eventsPayload","unsetEvents","requestDateRender","executeDateRender","requestDateUnrender","executeDateUnrender","isDateInit","startNowIndicator","stopNowIndicator","triggerViewRender","triggerViewDestroy","publiclyTrigger","requestEventsRender","executeEventRender","triggerAfterEventsRendered","requestEventsUnrender","triggerBeforeEventsDestroyed","requestBusinessHoursRender","businessHourGenerator","renderBusinessHours","requestBusinessHoursUnrender","unrenderBusinessHours","processUnselect","handleDocumentMousedown","getNowIndicatorUnit","nowIndicatorTimeoutID","nowIndicatorIntervalID","setInterval","updateNowIndicator","isDatesRendered","unrenderNowIndicator","isNowIndicatorRendered","clearInterval","totalHeight","isAuto","isResize","queuedScroll","applyQueuedScroll","applyScroll","queryDateScroll","computeInitialDateScroll","applyDateScroll","reportEventDrop","eventManager","undoFunc","mutateEventsWithId","triggerEventDrop","reportExternalDrop","singleEventDef","addEventDef","triggerExternalDrop","reportEventResize","resizeDelta","triggerEventResize","renderSelectionFootprint","reportSelection","triggerSelect","footprintToDateProfile","unrenderSelection","selectEventInstance","selectedEventInstance","unselectEventInstance","getEventSegs","processRangeUnselect","processEventUnselect","ignore","triggerBaseRendered","triggerBaseUnrendered","triggerDayClick","isDateInOtherMonth","getUnzonedRangeOption","parseUnzonedRange","inputUnzonedRange","out","initialEvents","intervalStart","intervalEnd","fillRenderer","rangeUpdated","computeEventTimeFormat","computeDisplayEventTime","computeDisplayEventEnd","instanceGroup","_getDateProfile","renderBgRanges","renderFgRanges","unrender","unrenderBgRanges","unrenderFgRanges","eventFootprintsToSegs","renderFgSegEls","unrenderFgSegs","renderBgSegs","bgSegs","unrenderBgSegs","getSegs","getClasses","getBgClasses","getCss","getBgColor","filterEl","filterEventRenderEl","hasEventRenderHandlers","hasPublicHandlers","renderedSegs","beforeFgSegHtml","fgSegHtml","getSegClasses","legacy","custom","getTimeText","displayEnd","_getTimeText","getStylingObjs","eventClassName","getSkinCss","getBorderColor","getTextColor","getFallbackStylingObjs","compareEventSegs","seg2","f1","f2","cf1","cf2","r1","r2","englishMoment","PART_SEPARATOR","SPECIAL_TOKEN_MARKER","MAYBE_MARKER","MAYBE_REGEXP","specialTokens","largeTokenMap","Y","renderFakeFormatString","getParsedFormatString","fakeFormatString","date2","renderParsedFormat","parsedFormat","leftI","rightI","middleI","sameUnits","unzonedDate1","unzonedDate2","renderedParts1","renderFakeFormatStringParts","renderedParts2","leftStr","rightStr","middleStr1","middleStr2","middleStr","isSame","processMaybeMarkers","parsedFormatStrCache","parseFormatString","chunkFormatString","buildFakeFormatString","buildSameUnits","chunker","splitStringLiteral","maybe","tokenInfo","units","fakePart","fakeRender","fakeParts","candidate","best","_watchers","applyGlobalWatchers","constructed","_globalWatchArgs","setProps","changeset","names","changedProps","changedCnt","depList","startFunc","stopFunc","unwatch","_watchDeps","watcher","queuedChangeCnt","depCnt","satisfyCnt","bindTuples","isCallingStop","onBeforeDepChange","depName","isOptional","onDepChange","flash","propDefs","standardPropMap","manualProps","zonedDayStart","instanceEnd","unzonedDate","unzonedEnd","isBefore","setDow","dowNumbers","msToUtcMoment","buildPrev","buildNext","renderUnzonedRange","isDateAllDay","dateIncrementInput","dateIncrementDuration","alignment","visibleUnzonedRange","setRawEventDefs","currentTimezone","StandardTheme_1","JqueryUiTheme_1","themeClassHash","themeName","themeClass","themeSetting","forcedOffsetParentEl","offsetParentEl","boundingRect","queryBoundingRect","ensureBuilt","getHorizontalIndex","leftOffset","getVerticalIndex","topOffset","getLeftOffset","getLeftPosition","getRightOffset","getRightPosition","getTopOffset","getTopPosition","getBottomOffset","getBottomPosition","scrollParentEl","isPointInBounds","isLeftInBounds","isTopInBounds","isGeneric","shouldCancelTouchScroll","scrollAlwaysKills","isAutoScroll","scrollSensitivity","scrollSpeed","scrollIntervalMs","startInteraction","extraOptions","originX","originY","bindHandlers","initAutoScroll","endInteraction","endDrag","destroyAutoScroll","unbindHandlers","drag","dragstop","touchmove","startDrag","updateAutoScroll","initialEv","handleDebouncedScroll","endAutoScroll","scrollBounds","topCloseness","bottomCloseness","leftCloseness","rightCloseness","sensitivity","topVel","leftVel","setScrollVel","scrollTopVel","scrollLeftVel","constrainScrollVel","scrollIntervalId","scrollIntervalFunc","frac","updateDayTable","dayIndices","updateDayTableCols","computeColCnt","colHeadFormat","computeColHeadFormat","getCellDate","getCellDayIndex","getColDayIndex","sliceRangeByRow","rowFirst","rowLast","segFirst","segLast","computeDayRange","rangeFirst","rangeLast","firstRowDayIndex","lastRowDayIndex","sliceRangeByDay","renderHeadHtml","renderHeadTrHtml","renderHeadIntroHtml","renderIntroHtml","renderHeadDateCellsHtml","htmls","renderHeadDateCellHtml","otherAttrs","innerHtml","isDateValid","getDayClasses","buildGotoAnchorHtml","forceOff","renderBgTrHtml","renderBgIntroHtml","renderBgCellsHtml","renderBgCellHtml","bookendCells","trEl","introHtml","buildEventInstanceGroup","hasAllDayBusinessHours","renderEventFootprints","fillSegTag","elsByFill","renderFootprint","componentFootprintToSegs","buildSegEls","attachSegEls","reportEls","buildSegHtml","eventRenderer","renderComponentFootprint","fabricateEventFootprint","renderEventDraggingFootprints","sourceSeg","renderEventResizingFootprints","helperEls","dummyInstance","dummyEvent","handleMouseover","handleMouseout","mousedOverSeg","cellWeekNumbersVisible","bottomCoordPadding","isRigid","leftCol","rightCol","renderDates","renderGrid","unrenderDates","removeSegPopover","headContainerEl","renderDayRowHtml","cellEls","rowCoordCache","colCoordCache","getIsNumbersVisible","renderNumberTrHtml","getIsDayNumbersVisible","renderNumberIntroHtml","renderNumberCellsHtml","renderNumberCellHtml","weekCalcFirstDoW","isDayNumberVisible","firstDayOfWeek","getCellHit","getHitFootprint","getHitEl","getOwnEventSegs","popoverSegs","renderDrag","renderHighlight","helperRenderer","unrenderDrag","unrenderHighlight","renderEventResize","unrenderEventResize","segPopover","limitRows","levelLimit","rowLevelLimit","rowStructs","unlimitRow","computeRowLevelLimit","limitRow","trHeight","trEls","tbodyEl","iterInnerHeights","levelSegs","cellMatrix","limitedNodes","segsBelow","totalSegsBelow","colSegsBelow","rowspan","segMoreNodes","moreTd","moreWrap","moreLink","rowStruct","moreNodes","emptyCellsUntil","endCol","getCellSegs","renderMoreLink","segLevels","moreEls","limitedEls","getMoreLinkText","clickOption","reslicedAllSegs","resliceDaySegs","reslicedHiddenSegs","showSegPopover","topEl","renderSegPopoverContent","autoHide","viewportConstrain","triggerBeforeEventSegsDestroyed","triggerAfterEventSegsRendered","segContainer","dayEnd","newSegs","startLevel","segMatrix","eventRendererClass","businessHourRendererClass","helperRendererClass","fillRendererClass","instantiateDayGrid","hasRigidRows","colWeekNumbersVisible","addChild","subclass","makeDayGridSubclass","dayGridClass","renderSkeleton","dayGridContainerEl","dayGridEl","renderSkeletonHtml","unrenderSkeleton","weekNumberStyleAttr","weekNumberWidth","scrollerHeight","headRowEl","computeScrollerHeight","setGridHeight","SuperClass","_calendar","peerEventInstances","getPeerEventInstances","peerEventRanges","peerEventFootprints","constraintVal","overlapVal","eventAllowFunc","isFootprintAllowed","getEventInstancesWithoutId","selectAllowFunc","getEventInstances","subjectEventInstance","constraintFootprints","overlapEventFootprints","constraintValToFootprints","isFootprintWithinConstraints","collectOverlapEventFootprints","isOverlapsAllowedByFunc","isOverlapEventInstancesAllowed","footprintContainsFootprint","buildCurrentBusinessFootprints","parseEventDefToInstances","eventInstancesToFootprints","parseFootprints","getEventInstancesWithId","targetFootprint","footprintsIntersect","currentPeriod","eventRangeToEventFootprints","outerFootprint","innerFootprint","footprint0","footprint1","overlapFunc","overlapEventInstance","overlapEventDef","subjectLegacyInstance","BUSINESS_HOUR_EVENT_DEFAULTS","rawComplexDef","buildEventDefs","requireDow","buildEventDef","fullRawDef","pendingCnt","freezeDepth","stuntedReleaseCnt","releaseCnt","requestsByUid","eventDefsByUid","eventDefsById","eventInstanceGroupsById","isWithinRange","requestSources","requestSource","thaw","addEventDefs","tryRelease","purgeSource","removeEventDef","purgeAllSources","completedCnt","getEventDefByUid","eventDefUid","getEventDefsById","addEventInstance","removeEventInstancesForDef","matchingInstances","currentEventInstance","release","whenReleased","stickySource","otherSources","setPeriod","addSource","removeSource","doomedSource","removeAllSources","refetchSource","refetchAllSources","getSources","multiQuerySources","matchInputs","matchingSources","querySources","matchInput","getSourceById","isSourcesEquivalent","eventPeriod","unbindPeriod","bindPeriod","eventId","eventDefMutation","buildMutatedEventInstanceGroup","defCopy","allInstances","source0","source1","StandardTheme","widget","widgetHeader","widgetContent","cornerLeft","cornerRight","stateDefault","stateActive","stateDisabled","stateHover","stateDown","popoverHeader","headerRow","dayRow","listView","JqueryUiTheme","pushLoading","popLoading","onSuccess","onError","AJAX_DEFAULTS","callbackRes","errorThrown","proxyCall","isFollowing","isHidden","y0","x0","topDelta","leftDelta","updatePosition","shouldRevert","top0","left0","getEl","additionalClass","sourceOffset","documentMousedown","viewportTop","viewportLeft","viewportOffset","windowEl","viewportEl","getIsIdle","canRunNext","runRemaining","task","runTask","waitsByNamespace","taskFunc","waitNamespace","delayWait","clearWait","compoundTask","startWait","spawnWait","waitId","newTask","shouldAppend","hitsNeededDepth","childrenByUid","businessHourRenderer","child","callChildren","_getCalendar","convertEventsPayloadToLegacyArray","getBusinessHourSegs","getOwnBusinessHourSegs","iterChildren","showEventsWithId","hideEventsWithId","renderedHelper","getSafeHitFootprint","eventFootprintToSegs","gotoOptions","finalOptions","stringify","getAllDayHtml","noThemeHighlight","legacyEvents","Toolbar_1","OptionsManager_1","ViewSpecManager_1","overrides","loadingLevel","ignoreUpdateViewSize","freezeContentHeightDepth","viewsByType","viewSpecManager","initMomentInternals","initCurrentDate","initEventManager","getView","triggerInfo","optHandler","newOptionHash","instantiateView","getViewSpec","isValidViewType","recordOverrides","renderView","newDate","defaultDateInput","prevInfo","nextInfo","gotoDate","incrementDate","getDate","contentEl","elementVisible","calcSize","initialRender","anchorEl","themeSystem","widgetClass","initToolbars","renderHeader","renderFooter","resize","windowResizeProxy","windowResize","clearView","toolbarsManager","bindViewHandlers","setToolbarsTitle","updateToolbarButtons","unbindViewHandlers","newView","oldView","currentView","reinitView","getSuggestedViewHeight","suggestedViewHeight","_calcSize","contentHeightInput","heightInput","queryToolbarsHeight","forceFreezeContentHeight","computeHeaderOptions","computeFooterOptions","extraClasses","setToolbarOptions","todayInfo","accumulator","toolbar","toolbarHeight","zonedStartInput","zonedEndInput","buildSelectFootprint","_week","monthNames","_months","monthNamesShort","_monthsShort","dayNames","_weekdays","dayNamesShort","_weekdaysShort","localizeMoment","getIsAmbigTimezone","adjustedZonedDate","timeAdjust","asMilliseconds","ignoreEnd","humanizeDuration","humanize","rawSources","singleRawSource","rawSource","getEventEnd","zonedStart","rerenderEvents","refetchEvents","renderEvents","eventInputs","renderEvent","removeEvents","legacyQuery","legacyInstances","idMap","filterLegacyEventInstances","clientEvents","legacyEventInstances","updateEvents","eventPropsArray","updateEvent","eventProps","getEventSources","removeEventSources","sourceMultiQuery","removeEventSource","sourceQuery","refetchEventSources","defaults","legacyEventInstance","dragListener","dragstart","sortstart","accept","listenToExternalDrag","getDraggedElMeta","interactionStart","hitOver","mutatedEventInstanceGroup","isAllowed","hitFootprint","computeExternalDrop","hitOut","hitDone","interactionEnd","stick","buildDragListener","resizeMutation","dragStart","segResizeStart","origHitFootprint","computeEventStartResizeMutation","computeEventEndResizeMutation","segResizeStop","startFootprint","endFootprint","origEventFootprint","getSelectionDelay","handleMousedown","buildSelectListener","mouseFollower","segDragStart","origFootprint","computeEventDropMutation","segDragStop","computeEventDateMutation","getDelay","selectionFootprint","computeSelection","wholeFootprint","computeSelectionFootprint","dayClickHit","agendaTimeGridMethods","agendaDayGridMethods","AGENDA_ALL_DAY_EVENT_LIMIT","instantiateTimeGrid","timeGridClass","timeGridWrapEl","timeGridEl","axisStyleAttr","axisWidth","colEls","noScrollRowEls","bottomRuleEl","getTotalSlatHeight","dayEventsPayload","timedEventsPayload","groupEventFootprintsByAllDay","AGENDA_STOCK_SUB_DURATIONS","processOptions","sliceRangeByTimes","renderSlats","renderColumns","unrenderColumns","slatContainerEl","renderSlatRowHtml","slatCoordCache","axisHtml","slotTime","slotIterator","renderContentSkeleton","unrenderContentSkeleton","skeletonEl","cellHtml","contentSkeletonEl","colContainerEls","helperContainerEls","fgContainerEls","bgContainerEls","highlightContainerEls","businessContainerEls","groupSegsByCol","attachSegsByCol","containerEls","nowIndicatorEls","updateSegVerticals","businessSegs","computeSegVerticals","assignSegVerticals","generateSegVerticalCss","snapTop","snapBottom","snap","computeSnapTime","renderFgSegsIntoContainers","updateFgSegCoords","fullTimeText","startTimeText","isResizableFromStart","isResizableFromEnd","skinCss","zonedEnd","computeFgSegHorizontals","assignFgSegHorizontals","levels","level0","buildSlotSegLevels","computeForwardSlotSegs","computeSlotSegPressures","computeFgSegForwardBack","seriesBackwardPressure","seriesBackwardCoord","forwardSegs","forwardCoord","sortForwardSegs","backwardCoord","compareForwardSegs","forwardPressure","generateFgSegHorizontalCss","computeSlotSegCollisions","forwardSeg","otherSegs","isSlotSegCollision","helperNodes","renderSegRows","segRows","groupSegRows","renderSegRow","rowSegs","buildSegLevels","loneCellMatrix","isDaySegCollision","compareDaySegCols","titleHtml","timeHtml","otherSeg","skeletonTopEl","skeletonTop","renderFillRow","startCol","tableEl","dayHeaderHtml","mainFormat","altFormat","bgColor","fullCalendar","_element","Toolbar","toolbarOptions","newToolbarOptions","sectionEl","buttonStr","calendarCustomButtons","calendarButtonTextOverrides","calendarButtonText","buttonGroupStr","groupEl","groupChildren","isOnlyButtons","buttonClick","buttonIcon","buttonInnerHtml","buttonClasses","buttonEl","buttonAriaAttr","buttonTextOverride","buttonTextDefault","updateTitle","activateButton","deactivateButton","disableButton","enableButton","getViewsWithButtons","OptionsManager","dynamicOverrides","compute","optionCnt","localeDefaults","dirDefaults","rawOptions","clearCache","ViewSpecManager","viewSpecCache","buildViewSpec","requestedViewType","viewOverrides","specChain","defaultsChain","overridesChain","buildViewSpecOptions","buildViewSpecButtonText","queryButtonText","Bootstrap3Theme_1","Bootstrap4Theme_1","Bootstrap3Theme","tableGrid","tableList","tableListHeading","popover","Bootstrap4Theme","noEventsMessage","listDayAltFormat","textsColor","font","iconClass","chipText","require","validateEmail","email","ReFormatDate","newDateArray","checkSpeialChar","specialChars","specialChar","includes","LARGE_ARRAY_SIZE","HASH_UNDEFINED","HOT_COUNT","HOT_SPAN","MAX_SAFE_INTEGER","argsTag","arrayTag","asyncTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","nullTag","objectTag","proxyTag","regexpTag","setTag","stringTag","undefinedTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reRegExpChar","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","freeSelf","Function","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","binding","nodeIsTypedArray","isTypedArray","thisArg","baseTimes","iteratee","baseUnary","getValue","overArg","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","IE_PROTO","nativeObjectToString","objectCtorString","reIsNative","Buffer","Uint8Array","allocUnsafe","getPrototype","objectCreate","propertyIsEnumerable","symToStringTag","toStringTag","getNative","nativeIsBuffer","isBuffer","nativeMax","nativeNow","nativeCreate","baseCreate","Hash","hashClear","__data__","hashDelete","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","isIndex","assignMergeValue","baseAssignValue","assignValue","objValue","baseFor","createBaseFor","baseGetTag","getRawTag","objectToString","baseIsArguments","isObjectLike","baseIsNative","isMasked","toSource","baseIsTypedArray","isLength","baseKeysIn","nativeKeysIn","isProto","isPrototype","baseMerge","srcIndex","customizer","srcValue","baseMergeDeep","newValue","safeGet","keysIn","mergeFunc","stacked","isCommon","isTyped","isArrayLikeObject","copyArray","cloneBuffer","cloneTypedArray","initCloneObject","baseRest","setToString","overRest","baseSetToString","constant","buffer","isDeep","cloneArrayBuffer","arrayBuffer","byteLength","typedArray","byteOffset","copyObject","createAssigner","assigner","guard","isIterateeCall","fromRight","keysFunc","iterable","customDefaultsMerge","isKeyable","isOwn","unmasked","otherArgs","shortOut","lastCalled","stamp","stubFalse","defaultsDeep","mergeWith","lableText","showcharLimit","inputValue","textMaxlength","inputTypeText","inputType","isPointer","textRight","showError","showDate","isOtp","placholderText","setReadOnly","setAutoFocust","inputId","keyPressAction","_k","enterkeyPressAction","blurAction","inputChangeAction","$$a","$$el","$$c","$$i","change","keyup","onClickInputAction","_q","composing","hidePassword","showTime","disabledBtn","fieldError","inputext","jsCoreDateCreator","dateString","dateParam","getDayAccordingToLimits","limit","currentDate1","setTime","getFullYear","setHours","toUTCString","getDisplayText","sfDate","getStringDate","requestDt","todayDate","diffTime","toFixed"],"mappings":"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kBACA,sBAGA,YACA,wBAGA,OAFA,8BACA,iCAAA6wG,aAAArzG,4CAAAm8B,iBACA,EACA,6BAEA,OADA,+BACA,EAEA,yBACA,CACA,wBAGA,OAFA,8BACA,iCAAAk3E,aAAArzG,4CAAAm8B,iBACA,EACA,6BAEA,OADA,+BACA,EAEA,uBAGAz2B,cAEA,2EAEA4tG,4BACA,6EAKA,GAHAC,4BACA,6CACA,2CACA,uEAoBA,8EACA,0CACA,kCAAAp2G,UAAA6C,qCACAC,6BACA,CACAyyG,YACA/wG,YACAg9B,UACA60E,6CACAC,kDAEAvzG,IACA,mCACA,kCAAA/C,UAAA6C,aACA,iCAAAqzG,aAAArzG,kBAAAm8B,mBAEA,KACA,kCAAAh/B,UAAA6C,oBAGA,2CACA,aAzCA,CACA,4CACA,kCAAA7C,UAAA6C,qCACAC,wBACA,CACA0yG,UACAe,qBACAC,mBACAH,cACAC,eAEAvzG,IACA,mCACA,kCAAA/C,UAAA6C,aACA,iCAAAqzG,aAAArzG,kBAAAm8B,mBAEA,KACA,kCAAAh/B,UAAA6C,iBA2BA4zG,yBAGA,GADA,eACA,gCAEA,4CACA,6BACA,4BACA,aACA,0BACA,0CACAC,oCACA,wCACAC,oCACA,OACAjd,aACAv+D,SACAp5B,SACA2G,OACAs2B,SACA5gB,OACA9c,KACAoG,QACAkvG,SAEAC,cACAA,iBACAA,oBACAA,gBACAA,6CACAA,8CACAA,UACAA,QACAA,QACA,yBACA,mDACA,sCACAH,oCACA,oCACAC,oCACA,OACAjd,aACAv+D,SACAp5B,SACA2G,OACAs2B,SACA5gB,OACA9c,KACAoG,QACAkvG,SAEA,aACAC,aACAA,oBAEAA,eACAA,iBAEAA,6CACAA,gFACAA,yFACAA,UACAA,QACAA,QACAA,oBACA,2BASA,4CACA,6BACA,0BAEA,0CACAH,oCACA,wCACAC,oCACA,OACAjd,aACAv+D,SACAp5B,SACA2G,OACAs2B,SACA5gB,QAEAy4F,sCACA,6BACAA,eAEAA,6CAEAA,8CACAA,UACAA,QACAA,QACA,yBACA,mDACA,sCACAH,oCACA,oCACAC,oCACA,OACAjd,aACAv+D,SACAp5B,SACA2G,OACAs2B,SACA5gB,QAEA,6BACAy4F,eAEAA,6CAEAA,gFACAA,yFACAA,UACAA,QACAA,QACA,qBAKA,kCAAA72G,UAAA6C,cAEAuC,iBACA,YACA,iDAEA,uFAGA,yGAEA,cACA6nC,qDAGA,gEACAA,mBAGAA,aACA6pE,gBACA,CACA,4CACA,qHAEA,gEACA7pE,mBAGAA,aACA6pE,cAIAC,cAEA,sBACA,kCAAA/2G,UAAA6C,aACA,+DACA,oCAAA0xG,2CAAAC,uCAAAzzG,iBAAAoD,yBAAAI,4BAGAyyG,eACA,sBACA,kCAAAh3G,UAAA6C,aACA,+DACA,oCAAA0xG,2CAAAC,uCAAAzzG,mBAAAoD,yBAAAI,6BAGA/B,gBACA,yCACA,uCACA,2CCvxB0X,MCQtX,I,UAAY,eACd,GACA,EACA,GACA,EACA,KACA,KACA,OAIa,M,kCCiDA,IACfzB,WACAC,YACAi2G,sBACAC,yBACAC,wBAEAC,aAEA52G,OACA,OACAsD,aACAH,YACAY,6CACAC,6CACAlB,YACAe,UACAC,WACA+yG,YACAvyG,YACAV,cACAswG,mBACAE,iBACAjwG,aACA2yG,kBACAC,sBACAn0G,gBACAsB,kBACAP,yBACAM,oBACA+yG,sBACA3yG,wBAGAvC,UACA,kBACA,wBACA,+BACA,iCACA,oDAGA,4BACA,8BACA,8CAGA,6BACA,+BACA,6CACA,6CAGA,6BACA,+BACA,iDAGA,4BACA,8BACA,+CACA,wDAKAC,UACAq0C,wDACA,kBACA,mEACA,kBACA,mBAEA,4EACAlnC,0BACAA,sCACA,mCACA,4BACA,uCACA,mCACA,kBACA,oBAEA,gCAEA,2BACA,8DACA,kCAAA1P,UAAA6C,uBACA,wBACA,uBACA,6DACA,uEACA,mEACA,mBACA,0CAIA,4CAHA,oEACA,kEACA,oBAOA,oEACA,gEACA,mBAGA,yDACA,8BAGA,qCAcA,GAbA,kCAAA7C,UAAA6C,uBACA,eAIA,kBACA,qBACA,oEACA,kEACA,oCACA8J,gBACA,0BACA,KACA,wBACA,2BACA,SACA,0BACA,4BACAugB,YAGA,oBAEA,yBACA,2BACA,SACA,GACA3pB,eACAk0G,iBAEAvqF,UACA,oBAEA,yDACA,8BAGA,uCACA,kCAAAltB,UAAA6C,uBACA,kBACA,eACA,gDACA,wBACA,oEACA,kEACA,oBAEA,oEACA,gEACA,mBAEA,oCACA,8BAEA,iCACA,kCAAA7C,UAAA6C,uBACA,uCACA,mCACA,kBACA,kBACA,oCACA,8BAEA,qCACA,kCAAA7C,UAAA6C,uBACA,eACA8J,gBACA,kCAAA3M,UAAA6C,uBACA,0BACA,OAEA,oBACA6M,yCAGAjN,SACAi1G,iBACA,kBACA,wBACA,4BACA,8BACA,8CAGA,6BACA,+BACA,6CACA,6CAGA,6BACA,+BACA,iDAGA,4BACA,8BACA,+CACA,uDAGA,kBACA,mEACA,kBACA,mBAEA,4EACA,qBAEA9yG,gBACA,iBACA,iBACA,2CACA,yCAEA,aAEA,eADA,GAMAhB,uBACA,kEAEAK,cACA,6CAEA0zG,oBACA,mBAAA/1C,OAAAg2C,oCAAAC,2BAAAC,6BAEAnyG,aACA,mBAAA5E,kBAAAkrC,QAAAqpE,aAEAyC,eACA,kCAAA/3G,UAAA6C,uBACAC,8BACAC,IACA,gEACA,kCAAA/C,UAAA6C,cAEA,KACA,8BACA,kCAAA7C,UAAA6C,gBAIAm1G,qBACA,mDACA,2EACA,kCAAAh4G,UAAA6C,uBACAC,6BACAszG,EACAD,EACA,+BACA,KACA,kCAAAn2G,UAAA6C,cAEA,KACA,8BACA,kCAAA7C,UAAA6C,gBAIAo1G,aACA,kCAAAj4G,UAAA6C,uBACA,mDACA,2EACAC,yBACAszG,EACAD,EACA,+BACApzG,IACA,kBACA,eACA,SACAE,0CACA,iBACA,8EACA,kCAAAjD,UAAA6C,cAEA,KACA,8BACA,kCAAA7C,UAAA6C,gBAIAq1G,uBACA,kCAAAl4G,UAAA6C,uBACAC,wBACA,qBACA,mBACA,+BACAC,IACA,8BACA,4BACA,yDACA,iDACAE,kGACAA,gGAEA,eACA,kCAAAjD,UAAA6C,cAEAs1G,IACA,8BACA,iCAAAjC,aAAArzG,kBAAAm8B,gBACA,kCAAAh/B,UAAA6C,gBAIAu1G,cACA,kCAAAp4G,UAAA6C,uBACAC,oBACA,qBACA,mBACA,+BACAC,IACA,8BACA,4BACA,yDACA,iDACAE,kGACAA,gGAEA,eACA,kCAAAjD,UAAA6C,cAEAs1G,IACA,8BACA,iCAAAjC,aAAArzG,kBAAAm8B,gBACA,kCAAAh/B,UAAA6C,gBAIAw1G,cACAv1G,wBACA,SACAC,IACA,gDAEA,2BACAu1G,iBACAA,2DAGA,iCACA,yCACAA,cACAhvG,cACA,mDACA,OACAA,iBAGA,WACA,wBACA,SACA/F,eACAE,eACAtD,aAEAo4G,oBACA,CACA,SACAh1G,eACAE,eACAtD,aAEAo4G,gBAGA,oBAGA,SAQA,GAPA,8BACA,4BACAhjD,YAKA,8BACA,OACAhyD,eACAk0G,iBAEAliD,UACA,yBAEA,wBAIA,CACA,SACAhyD,eACAE,eACAtD,aAEA,gCACA,SAMA,GALA,8BACA,4BACA+sB,YAGA,8BACA,SACA,GACA3pB,eACAk0G,iBAEAvqF,UACA,yBAEA,oBAGA,gBACA,kCAAAltB,UAAA6C,cAGA,KACA,8BACA,kCAAA7C,UAAA6C,gBAIAW,4BACA,oBAIA,uBACA,SACA,KACA,uDACA,iCAQA,CACA,iCACA,2CACA,qCAXA,CACA,kCAAAxD,UAAA6C,uBACA,eACA21G,KACA,iCACA,2CACA,sCASA,eACAA,KACA,kCAAAx4G,UAAA6C,uBACA,6DAGA,8BACA,8CACA4O,YAIA,sCACA,iCAEA,iCAGA,0BACA,4BACA,2CAIA9E,gBACA,GACA,0BAEA,KACA,6BAEA8rG,oBACA,kBACA,iBAGAj2G,gBACA,8BACA,kCACA,iCACA,qCACA,mCACAkN,yCACAknC,6DCnkBkW,MCQ9V,I,UAAY,eACd,GACA33C,EACA4B,GACA,EACA,KACA,KACA,OAIa,gB,uDCnBf;;;;;;;;;;;;;IAaA,SAAY63G,EAAQC,GAEnB,aAE6D,kBAAnBC,EAAOC,QAShDD,EAAOC,QAAUH,EAAOhpG,SACvBipG,EAASD,GAAQ,GACjB,SAAU5sG,GACT,IAAMA,EAAE4D,SACP,MAAM,IAAI0N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CA0V,OACAozH,wBAEA,aACA36B,iBACAA,aACAA,kBACAA,uBAEAA,aACAA,eACAA,gBACAA,wBAEAA,gBACAA,yFACAA,UACAA,QACAA,QACA46B,gBAMA,4CACA,6BACA,mDACA,0CACA/6B,kCACA,wCACAC,kCACA,OACAr1G,KACAoG,QACAkvG,QACAz7E,SACAu+D,aACA16D,SACAj9B,SACA2G,OACA0V,OACAozH,YAEA36B,cACAA,iBACAA,gBACAA,sBACAA,8CACAA,0BACAA,sBACAA,QACAA,oBACA46B,cACA,CACA,sCACA/6B,kCACA,oCACAC,kCACA,OACAr1G,KACAoG,QACAkvG,QACAz7E,SACAu+D,aACA16D,SACAj9B,SACA2G,OACA0V,OACAozH,wBAEA,aACA36B,aACAA,kBACAA,uBAEAA,eACAA,gBACAA,wBAEAA,oBACAA,gBACAA,yFACAA,0BACAA,sBACAA,QACA46B,WAKA,eACAzuI,oBACAA,cACA,kCASA,cAEA,qCACA,2DACA,kCACA,qDACA,iCACA,qDACA,qCAEA,gCAEA,mDACA,mFAEA,+BAIAsuI,YACA,kBACA,kFACA,UACA,+EACA,cACA,4FACA,WACA,8FADA,GAIAF,iBAEA,6DACA,wCACA,gCACA,EACA,mBAAArwI,qBAAAkrC,QAAAspE,yBAEA,qCAAAv1G,UAAAm7B,gEAEA,oCAWA,sCACA,6BACA,EACA,mBAAAp6B,kBAAAkrC,QAAAqpE,qBAAA1zC,OAAAx/C,UAEA,qCAAApiB,UAAAm7B,6DAhBA,CACA,4BACA,EACA,eAGA,mBAAAp6B,mBAAAkrC,QAAAupE,yBAFA,mBAAAz0G,iBAAAkrC,QAAA2qE,qBAKA,qCAAA52G,UAAAm7B,6DCxRuX,I,YCOnXj4B,EAAY,eACd,EACAjE,EACA4B,GACA,EACA,KACA,WACA,MAIa,OAAAqC,E,2CClBf,IAAIjE,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACF,EAAG,MAAM,CAACE,YAAY,2BAA2BC,YAAY,CAAC,MAAQ,SAAS,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oBACA,6BACA,GACAC,wBAAAr6B,kBAAAkrC,QAAAqpE,wBAAA1zC,OAAAx/C,uBACAw0B,8BAEA,qCAAA52C,UAAAm7B,0DAIAw2G,UACA,4CAEA0C,sBAGA,gBACA,yBACA,yBACA,OACAd,sBACA97B,sBACA67B,oBACAD,0BACA9vI,6BAEA,gCAGA,kDACA,aAAAywI,eAAAC,iBACA,mBACAtnI,gBACA,iBACA,MAGA2nI,oBACA,qBAgDA,4CACA,6BACA,OACAlC,oBACAC,sBACAC,eACA5qI,kBACA8qI,sBACAC,UACA1wI,cACA2G,UACAyyB,cACAw3G,4BACAE,4BACAb,4BACAx8B,kBACAw9B,8BACAC,mBAEA,8BAnEA,CACA,SACA,4CACA,6BACA,oFAmBA,2DAEA,OACAb,oBACAC,sBACAC,gBACA5qI,kBACA8qI,aACAC,UACA1wI,kBACA2G,cACAyyB,kBACAw3G,gBACAE,gBACAb,gBACAx8B,WACAw9B,iBACAC,YAEAxB,eAtCA,CACA,OACAW,oBACAC,sBACAC,eACA5qI,kBACA8qI,sBACAC,UACA1wI,cACA2G,UACAyyB,cACAw3G,4BACAE,4BACAb,4BACAx8B,kBACAw9B,8BACAC,mBAEAxB,WAwBA,oBAwBA,gBACA,kDACA,aAAAuC,eAAAC,iBACAtnI,gBACA,iBACA,MACA,yBACA,mBAGA4nI,aACA,uBACA,sDACA,wBAGA,wBACA,oBACA,0BAIA,wBAAA/zI,WACA,oBACA,iCACA,WAEA,gBAEA,+BAKAg0I,uBACA,qBAEA,oCACA,sBAcAC,cACA,kCAAAz0I,UAAA6C,2BACA8J,gBACA,kCAAA3M,UAAA6C,aACA,4BAAA9B,iBAAAkrC,QAAA2qE,iBACAhgE,8BACA,MAEA89F,WACA,qCACA,SACA,4CACAC,sBACA,+BACA,6BACAC,KACA,OAAAZ,2BAAAC,6BACAU,YAGA,mCACA,yCACAC,KACA,OAAAZ,uCAAAC,yCACAU,aAGA,OACA3iI,mBAKAxP,gBACA,cACA,iCACA,uBCxYwX,I,wBCQpXU,EAAY,eACd,EACAjE,EACA4B,GACA,EACA,KACA,WACA,MAIa,OA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MAAOnlH,GASvD,MAPI,iBAAiBjrB,KAAK2qB,KACtBr0B,EAAMo0B,QAAQ,QAEVztB,EAAIid,WACJjd,EAAI8R,IAAI,EAAG,QAAQ2b,QAAQ,SAG5B,IAAIksH,EAAer7I,QAAQjF,EAAO2G,IAEtC4jJ,EApBuC,CAqBhDlH,EAAuBp+I,SACzB6xG,EAAQ7xG,QAAUslJ,GAIV,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACC,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEH,SAAU1zC,EAAQC,EAASo8B,GAEjC9hI,OAAOC,eAAeylG,EAAS,aAAc,CAAE3yG,OAAO,IACtD,IAAIm8I,EAAiBpN,EAAoB,GACrCoQ,EAAuBpQ,EAAoB,IAC3C4H,EAAmB5H,EAAoB,IACvCyR,EAAgBzR,EAAoB,GACpCuK,EAASvK,EAAoB,IAC7BkQ,EAA6B,WAC7B,SAASA,EAAYqZ,EAAc4Z,GAC/Bj5K,KAAKq/J,aAAeA,EACp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","file":"js/chunk-be632656.0b29e59e.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"popup_overlay px-4\"},[_c('div',{staticClass:\"custom_dialog rounded-xl\",staticStyle:{\"width\":\"800px\",\"max-height\":\"92%\"}},[_c('div',{staticClass:\"bg-white sticky top-0\"},[_c('div',{staticClass:\"bg-primary flex justify-center items-center p-2 text-center\"},[_c('div',{staticClass:\"font-medium text-white heading-2\"},[_vm._v(\" Search Job \")]),_c('div',{staticClass:\"text-primary heading-4 cursor-pointer bg-white px-2.5 py-1 rounded-xl absolute right-3\",on:{\"click\":function($event){return _vm.closePopup([], true)}}},[_c('i',{staticClass:\"fa-solid fa-times\"})])])]),_c('div',{staticClass:\"mt-2 p-2 pb-0\"},[_c('div',{staticClass:\"flex flex-wrap\"},[_c('div',{staticClass:\"flex flex-wrap justify-between\"},[_c('div',{staticClass:\"w-72 mb-4\"},[_c('SearchTextInput',{attrs:{\"placeholderText\":`Search Job...`},on:{\"searchCall\":_vm.searchCall}})],1),_c('span',{staticClass:\"flex ml-4\"},_vm._l((_vm.entStatusList),function(status,index){return _c('div',{key:index},[_c('StatusBtn',{staticClass:\"whitespace-nowrap\",attrs:{\"selected\":status.selected,\"btnText\":status.displayText},on:{\"buttonAction\":function($event){return _vm.toggleActiveAndInactiveA(index, status)}}})],1)}),0)])])]),_c('div',{staticClass:\"overflow-auto\",staticStyle:{\"max-height\":\"60vh\"}},[(_vm.visitLIst.length > 0)?_c('div',{staticStyle:{\"overflow-y\":\"auto\",\"white-space\":\"nowrap\"}},_vm._l((_vm.visitLIst),function(data,index){return _c('div',{key:index,staticClass:\"cust_card m-2 heading-3 border-b border-gray1 bg-white text-sm px-2 py-2 items-center hover:bg-gray1 cursor-pointer\",on:{\"click\":function($event){return _vm.closePopup(data, false)}}},[_c('div',{},[_c('p',{staticClass:\"text-gray4 heading-6\"},[_vm._v(\"#\"+_vm._s(data.jobNumber))]),_c('p',{staticClass:\"text-text1 heading-5 py-1 font-semibold\"},[_vm._v(_vm._s(data.jobTitle))]),_c('p',{staticClass:\"text-gray4 heading-6\"},[_vm._v(_vm._s(data.companyName))])])])}),0):_c('div',{staticClass:\"p-4 pt-0\"},[_c('NoRecords',{attrs:{\"alertMessage\":`No records found.`}})],1)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n Search Job\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n 0\">\n \n \n #{{data.jobNumber}}\n {{data.jobTitle}}\n {{data.companyName}}\n \n \n \n \n \n \n \n \n \n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./searchJob.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./searchJob.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./searchJob.vue?vue&type=template&id=e6c1f824&scoped=true&\"\nimport script from \"./searchJob.vue?vue&type=script&lang=js&\"\nexport * from \"./searchJob.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 \"e6c1f824\",\n null\n \n)\n\nexport default component.exports","var n,l,u,i,t,r,o,f,e,c={},s=[],a=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function h(n,l){for(var u in l)n[u]=l[u];return n}function v(n){var l=n.parentNode;l&&l.removeChild(n)}function y(l,u,i){var t,r,o,f={};for(o in u)\"key\"==o?t=u[o]:\"ref\"==o?r=u[o]:f[o]=u[o];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===f[o]&&(f[o]=l.defaultProps[o]);return p(l,f,t,r,null)}function p(n,i,t,r,o){var f={type:n,props:i,key:t,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++u:o};return null==o&&null!=l.vnode&&l.vnode(f),f}function d(){return{current:null}}function _(n){return n.children}function k(n,l,u,i,t){var r;for(r in u)\"children\"===r||\"key\"===r||r in l||g(n,r,null,u[r],i);for(r in l)t&&\"function\"!=typeof l[r]||\"children\"===r||\"key\"===r||\"value\"===r||\"checked\"===r||u[r]===l[r]||g(n,r,l[r],u[r],i)}function b(n,l,u){\"-\"===l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||a.test(l)?u:u+\"px\"}function g(n,l,u,i,t){var r;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof i&&(n.style.cssText=i=\"\"),i)for(l in i)u&&l in u||b(n.style,l,\"\");if(u)for(l in u)i&&u[l]===i[l]||b(n.style,l,u[l])}else if(\"o\"===l[0]&&\"n\"===l[1])r=l!==(l=l.replace(/Capture$/,\"\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?i||n.addEventListener(l,r?w:m,r):n.removeEventListener(l,r?w:m,r);else if(\"dangerouslySetInnerHTML\"!==l){if(t)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!==l&&\"height\"!==l&&\"href\"!==l&&\"list\"!==l&&\"form\"!==l&&\"tabIndex\"!==l&&\"download\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&-1==l.indexOf(\"-\")?n.removeAttribute(l):n.setAttribute(l,u))}}function m(n){t=!0;try{return this.l[n.type+!1](l.event?l.event(n):n)}finally{t=!1}}function w(n){t=!0;try{return this.l[n.type+!0](l.event?l.event(n):n)}finally{t=!1}}function x(n,l){this.props=n,this.context=l}function A(n,l){if(null==l)return n.__?A(n.__,n.__.__k.indexOf(n)+1):null;for(var u;ll&&r.sort(function(n,l){return n.__v.__b-l.__v.__b}));$.__r=0}function H(n,l,u,i,t,r,o,f,e,a){var h,v,y,d,k,b,g,m=i&&i.__k||s,w=m.length;for(u.__k=[],h=0;h0?p(d.type,d.props,d.key,d.ref?d.ref:null,d.__v):d)){if(d.__=u,d.__b=u.__b+1,null===(y=m[h])||y&&d.key==y.key&&d.type===y.type)m[h]=void 0;else for(v=0;v=0;l--)if((u=n.__k[l])&&(i=L(u)))return i;return null}function M(n,u,i,t,r,o,f,e,c){var s,a,v,y,p,d,k,b,g,m,w,A,P,C,T,$=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,o=[e]),(s=l.__b)&&s(u);try{n:if(\"function\"==typeof $){if(b=u.props,g=(s=$.contextType)&&t[s.__c],m=s?g?g.props.value:s.__:t,i.__c?k=(a=u.__c=i.__c).__=a.__E:(\"prototype\"in $&&$.prototype.render?u.__c=a=new $(b,m):(u.__c=a=new x(b,m),a.constructor=$,a.render=B),g&&g.sub(a),a.props=b,a.state||(a.state={}),a.context=m,a.__n=t,v=a.__d=!0,a.__h=[],a._sb=[]),null==a.__s&&(a.__s=a.state),null!=$.getDerivedStateFromProps&&(a.__s==a.state&&(a.__s=h({},a.__s)),h(a.__s,$.getDerivedStateFromProps(b,a.__s))),y=a.props,p=a.state,a.__v=u,v)null==$.getDerivedStateFromProps&&null!=a.componentWillMount&&a.componentWillMount(),null!=a.componentDidMount&&a.__h.push(a.componentDidMount);else{if(null==$.getDerivedStateFromProps&&b!==y&&null!=a.componentWillReceiveProps&&a.componentWillReceiveProps(b,m),!a.__e&&null!=a.shouldComponentUpdate&&!1===a.shouldComponentUpdate(b,a.__s,m)||u.__v===i.__v){for(u.__v!==i.__v&&(a.props=b,a.state=a.__s,a.__d=!1),u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),w=0;w2&&(f.children=arguments.length>3?n.call(arguments,2):i),p(l.type,f,t||l.key,r||l.ref,null)}function G(n,l){var u={__c:l=\"__cC\"+e++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,T(n)})},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=s.slice,l={__e:function(n,l,u,i){for(var t,r,o;l=l.__;)if((t=l.__c)&&!t.__)try{if((r=t.constructor)&&null!=r.getDerivedStateFromError&&(t.setState(r.getDerivedStateFromError(n)),o=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),o=t.__d),o)return t.__E=t}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},t=!1,x.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=h({},this.state),\"function\"==typeof n&&(n=n(h({},u),this.props)),n&&h(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),T(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),T(this))},x.prototype.render=_,r=[],f=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,$.__r=0,e=0;export{x as Component,_ as Fragment,F as cloneElement,G as createContext,y as createElement,d as createRef,y as h,E as hydrate,i as isValidElement,l as options,D as render,j as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"mt-2\"},[_c('div',{},[_c('div',{staticClass:\"mb-1 flex-wrap flex\"},_vm._l((_vm.employeeList),function(status,index){return _c('div',{key:index,class:`${index === 0 ? 'left-0 sticky' : ''}`},[(_vm.activeUer !== status.userDetailId)?_c('div',{on:{\"click\":function($event){return _vm.toggleActiveAndInactiveB(index)}}},[(status.fullName.toLowerCase() === 'all')?_c('Chip',{class:`${status.selected ? 'bg-gray2' : '' } py-1 cursor-pointer`,attrs:{\"chipText\":status.fullName}}):_c('Chip',{class:`${status.selected ? 'activeView' : '' } py-1 cursor-pointer`,attrs:{\"chipText\":status.fullName}})],1):_c('div',{on:{\"click\":function($event){return _vm.toggleActiveAndInactiveB(index)}}},[_c('Chip',{class:`${status.selected ? 'activeView' : '' } py-1 cursor-pointer`,attrs:{\"chipText\":'Me'}})],1)])}),0),_c('div',{staticClass:\"flex flex-wrap text-text1\"},[_c('div',{staticClass:\"flex mb-1 flex-wrap lg:flex-nowrap w-full justify-between\"},[_c('div',{staticClass:\"hidden lg:block heading-2 w-full font-bold text-center\"},[_c('div',{staticClass:\"xl:ml-72\"},[_c('span',[(_vm.showGoto)?_c('span',{staticClass:\"text-primary font-semibold heading-4 cursor-pointer\",on:{\"click\":function($event){return _vm.selectedDateByPicker()}}},[_vm._v(\" Go to current Month \")]):_vm._e()]),_c('span',{staticClass:\"whitespace-nowrap\"},[_vm._v(_vm._s(_vm.shwoTitle))])])]),_c('div',{staticClass:\"text-center flex sm:justify-end flex-wrap sm:flex-nowrap gap-1 mb-1 md:mb-0\"},[_c('div',{on:{\"click\":function($event){return _vm.$router.push({name: 'schedule'})}}},[_c('Chip',{class:`${false ? 'activeView' : '' } py-1 cursor-pointer`,staticStyle:{\"font-size\":\"16px\"},attrs:{\"chipText\":`1 Day`}})],1),_c('div',[_c('Chip',{class:`${true ? 'activeView' : '' } py-1 cursor-pointer`,staticStyle:{\"font-size\":\"16px\"},attrs:{\"chipText\":`Month`}})],1),_c('div',{on:{\"click\":function($event){return _vm.goDateCall('prev')}}},[_c('Chip',{staticClass:\"py-1 cursor-pointer activeView\",staticStyle:{\"font-size\":\"16px\"},attrs:{\"iconClass\":'fa fa-chevron-left',\"chipText\":``}})],1),_c('div',{on:{\"click\":function($event){return _vm.goDateCall('next')}}},[_c('Chip',{staticClass:\"py-1 cursor-pointer activeView\",staticStyle:{\"font-size\":\"16px\"},attrs:{\"iconClass\":'fa fa-chevron-right',\"chipText\":``}})],1)])])])]),_c('div',{staticClass:\"cust_card bg-white pb-10\",staticStyle:{\"overflow\":\"auto\",\"height\":\"100vh\"}},[_c('div',{style:(` max-height: fit-content; min-height: ${_vm.schedulerSectionHeight}px;`)},[(!_vm.isUnSchJob && _vm.isLoad && _vm.isReady)?_c('SchedulerComponent',{staticClass:\"left-container\",attrs:{\"titleDvalue\":_vm.titleDate,\"startTime\":_vm.startTime,\"defaultView\":_vm.defaultView,\"teamListData\":_vm.teamListData,\"scheduleData\":_vm.eventList},on:{\"titleHandler\":_vm.titleHandler}}):_vm._e()],1),_c('div',{staticClass:\"p-4\",staticStyle:{\"width\":\"100%\",\"height\":\"700px\"}},[_c('VisitMapLocation',{staticClass:\"left-container\",attrs:{\"scheduledList\":_vm.eventList,\"unscheduleventList\":_vm.unscheduleventList,\"lastEmpData\":_vm.empArray,\"isUnSchedule\":_vm.isUnSchJob}})],1),_c('div',{staticClass:\"p-4\"},[_c('ScheduleListing',{attrs:{\"listTitle\":'Schedule List',\"scheduled\":true,\"scheduleData\":_vm.eventList}})],1),_c('div',{staticClass:\"p-4\"},[_c('ScheduleListing',{attrs:{\"listTitle\":'Unschedule list',\"scheduled\":false,\"scheduleData\":_vm.unscheduleventList}})],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"fullCalBox relative\"},[(_vm.isReady && _vm.resourceList.length > 0 || _vm.selectedView === 'agendaDay' || _vm.selectedView === 'timelineFourDay' || _vm.selectedView === 'month')?_c('div',{staticClass:\"cust_card bg-white p-4\",attrs:{\"id\":\"schedulerSection\"}},[_c('full-calendar',{ref:\"calendar\",attrs:{\"config\":_vm.config,\"events\":_vm.events},on:{\"event-render\":_vm.eventRender,\"event-resize\":function($event){return _vm.sendReminderPopup($event, 'resize')},\"event-drop\":function($event){return _vm.sendReminderPopup($event, 'drop')},\"day-click\":_vm.dayCLick,\"event-selected\":_vm.eventSelected}})],1):_vm._e(),(_vm.createJobPopup)?_c('div',{staticClass:\"popup_overlay px-4\"},[_c('div',{staticClass:\"custom_dialog rounded-xl\",staticStyle:{\"width\":\"400px\",\"overflow\":\"auto\",\"max-height\":\"90%\"}},[_c('div',{staticClass:\"relative bg-white p-2 text-center\"},[_c('div',{staticClass:\"font-medium text-black heading-3 p-4\"},[_vm._v(\" \"+_vm._s(_vm.newJobObj.dateTitle)+\" \")]),_c('div',{staticClass:\"divider\"}),_c('div',{staticClass:\"hover:bg-blue-50 p-3 cursor-pointer\",on:{\"click\":function($event){return _vm.createTask()}}},[_c('span',{staticClass:\"font-semibold text-primary heading-5\"},[_vm._v(\"Create new Task\")])]),_c('div',{staticClass:\"dividerLight\"}),_c('div',{staticClass:\"hover:bg-blue-50 p-3 cursor-pointer\",on:{\"click\":function($event){return _vm.createNewJob()}}},[_c('span',{staticClass:\"font-semibold text-primary heading-5\"},[_vm._v(\"Create new Job\")])]),_c('div',{staticClass:\"dividerLight\"}),_c('div',{staticClass:\"hover:bg-blue-50 p-3 cursor-pointer\",on:{\"click\":function($event){return _vm.existingJob()}}},[_c('span',{staticClass:\"font-semibold text-primary heading-5\"},[_vm._v(\"Add to existing Job\")])]),_c('div',{staticClass:\"dividerLight\"}),_c('div',{staticClass:\"hover:bg-blue-50 p-3 cursor-pointer\",on:{\"click\":function($event){return _vm.cancelPopup()}}},[_c('span',{staticClass:\"font-semibold text-primary heading-5\"},[_vm._v(\"Cancel\")])])])])]):_vm._e(),(_vm.selectedDatePicker)?_c('div',{staticClass:\"popup_overlay px-4\"},[_c('div',{staticClass:\"custom_dialog rounded-xl\"},[_c('DateTimepicker',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.closeDatePicker),expression:\"closeDatePicker\"}],attrs:{\"title\":'',\"showOnlyDate\":true,\"hideGoToday\":true,\"hideBtn\":true,\"roundedCard\":true},on:{\"input\":function($event){return _vm.updateDate()}},model:{value:(_vm.currentViewDate),callback:function ($$v) {_vm.currentViewDate=$$v},expression:\"currentViewDate\"}})],1)]):_vm._e(),(_vm.searchJobPopup)?_c('SearchJob'):_vm._e(),(_vm.openAddSchedulePage)?_c('ScheduleExistingJobAdd',{attrs:{\"detail\":_vm.selectedExisitngObject,\"startTime\":this.newJobObj.selectedStartTime,\"endTime\":this.newJobObj.selectedEndTime}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"calendar\",attrs:{\"id\":\"calendar\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n\n\n\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--13-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--1-0!../../vue-loader/lib/index.js??vue-loader-options!./FullCalendar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--13-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--1-0!../../vue-loader/lib/index.js??vue-loader-options!./FullCalendar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FullCalendar.vue?vue&type=template&id=41e9886e&\"\nimport script from \"./FullCalendar.vue?vue&type=script&lang=js&\"\nexport * from \"./FullCalendar.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../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","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=[],e=n.__b,a=n.__r,v=n.diffed,l=n.__c,m=n.unmount;function d(t,u){n.__h&&n.__h(r,t,o||u),o=0;var i=r.__H||(r.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({__V:c}),i.__[t]}function p(n){return o=1,y(B,n)}function y(n,u,i){var o=d(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):B(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){r.u=!0;var f=r.shouldComponentUpdate;r.shouldComponentUpdate=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return n.__c});if(u.every(function(n){return!n.__N}))return!f||f.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!f||f.call(this,n,t,r))}}return o.__N||o.__}function h(u,i){var o=d(t++,3);!n.__s&&z(o.__H,i)&&(o.__=u,o.i=i,r.__H.__h.push(o))}function s(u,i){var o=d(t++,4);!n.__s&&z(o.__H,i)&&(o.__=u,o.i=i,r.__h.push(o))}function _(n){return o=5,F(function(){return{current:n}},[])}function A(n,t,r){o=6,s(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function F(n,r){var u=d(t++,7);return z(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function T(n,t){return o=8,F(function(){return n},t)}function q(n){var u=r.context[n.__c],i=d(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function x(t,r){n.useDebugValue&&n.useDebugValue(r?r(t):t)}function P(n){var u=d(t++,10),i=p();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function V(){var n=d(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function b(){for(var t;t=f.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(k),t.__H.__h.forEach(w),t.__H.__h=[]}catch(r){t.__H.__h=[],n.__e(r,t.__v)}}n.__b=function(n){r=null,e&&e(n)},n.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=c,n.__N=n.i=void 0})):(i.__h.forEach(k),i.__h.forEach(w),i.__h=[])),u=r},n.diffed=function(t){v&&v(t);var o=t.__c;o&&o.__H&&(o.__H.__h.length&&(1!==f.push(o)&&i===n.requestAnimationFrame||((i=n.requestAnimationFrame)||j)(b)),o.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==c&&(n.__=n.__V),n.i=void 0,n.__V=c})),u=r=null},n.__c=function(t,r){r.some(function(t){try{t.__h.forEach(k),t.__h=t.__h.filter(function(n){return!n.__||w(n)})}catch(u){r.some(function(n){n.__h&&(n.__h=[])}),r=[],n.__e(u,t.__v)}}),l&&l(t,r)},n.unmount=function(t){m&&m(t);var r,u=t.__c;u&&u.__H&&(u.__H.__.forEach(function(n){try{k(n)}catch(n){r=n}}),u.__H=void 0,r&&n.__e(r,u.__v))};var g=\"function\"==typeof requestAnimationFrame;function j(n){var t,r=function(){clearTimeout(u),g&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);g&&(t=requestAnimationFrame(r))}function k(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function w(n){var t=r;n.__c=n.__(),r=t}function z(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function B(n,t){return\"function\"==typeof t?t(n):t}export{T as useCallback,q as useContext,x as useDebugValue,h as useEffect,P as useErrorBoundary,V as useId,A as useImperativeHandle,s as useLayoutEffect,F as useMemo,y as useReducer,_ as useRef,p as useState};\n//# sourceMappingURL=hooks.module.js.map\n","import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as l,createRef as c,cloneElement as f}from\"preact\";export{Component,Fragment,createContext,createElement,createRef}from\"preact\";import{useState as a,useId as s,useReducer as h,useEffect as v,useLayoutEffect as d,useRef as p,useImperativeHandle as m,useMemo as y,useCallback as _,useContext as b,useDebugValue as S}from\"preact/hooks\";export*from\"preact/hooks\";function g(n,t){for(var e in t)n[e]=t[e];return n}function C(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n,t){return n===t&&(0!==n||1/n==1/t)||n!=n&&t!=t}function w(n){this.props=n}function R(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:C(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.prototype.isReactComponent=!0,u.__f=!0,u}(w.prototype=new n).isPureReactComponent=!0,w.prototype.shouldComponentUpdate=function(n,t){return C(this.props,n)||C(this.state,t)};var x=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),x&&x(n)};var N=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function k(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=N,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var A=function(n,t){return null==n?null:r(r(n).map(t))},O={map:A,forEach:A,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},T=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);T(n,t,e,r)};var I=e.unmount;function L(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return L(n,t,e)})),n}function U(n,t,e){return n&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return U(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.insertBefore(n.__e,n.__d),n.__c.__e=!0,n.__c.__P=e)),n}function D(){this.__u=0,this.t=null,this.__b=null}function F(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function M(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return t(r,o)}return o.displayName=\"Lazy\",o.__f=!0,o}function V(){this.u=null,this.o=null}e.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),I&&I(n)},(D.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=F(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=U(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}},c=!0===t.__h;r.__u++||c||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},D.prototype.componentWillUnmount=function(){this.t=[]},D.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=L(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__h=null),[t(u,null,e.__a?null:n.children),i]};var W=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]>>1,1),e.i.removeChild(n)}}),o(t(P,{context:e.context},n.__v),e.l)):e.l&&e.componentWillUnmount()}function j(n,e){var r=t($,{__v:n,i:e});return r.containerInfo=e,r}(V.prototype=new n).__a=function(n){var t=this,e=F(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),W(t,n,r)):u()};e?e(o):o()}},V.prototype.render=function(n){this.u=null,this.o=new Map;var t=r(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},V.prototype.componentDidUpdate=V.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){W(n,e,t)})};var z=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,H=\"undefined\"!=typeof document,Z=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function Y(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function q(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var G=e.event;function J(){}function K(){return this.cancelBubble}function Q(){return this.defaultPrevented}e.event=function(n){return G&&(n=G(n)),n.persist=J,n.isPropagationStopped=K,n.isDefaultPrevented=Q,n.nativeEvent=n};var X,nn={configurable:!0,get:function(){return this.class}},tn=e.vnode;e.vnode=function(n){var t=n.type,e=n.props,u=e;if(\"string\"==typeof t){var o=-1===t.indexOf(\"-\");for(var i in u={},e){var l=e[i];H&&\"children\"===i&&\"noscript\"===t||\"value\"===i&&\"defaultValue\"in e&&null==l||(\"defaultValue\"===i&&\"value\"in e&&null==e.value?i=\"value\":\"download\"===i&&!0===l?l=\"\":/ondoubleclick/i.test(i)?i=\"ondblclick\":/^onchange(textarea|input)/i.test(i+t)&&!Z(e.type)?i=\"oninput\":/^onfocus$/i.test(i)?i=\"onfocusin\":/^onblur$/i.test(i)?i=\"onfocusout\":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)?i=i.toLowerCase():o&&B.test(i)?i=i.replace(/[A-Z0-9]/g,\"-$&\").toLowerCase():null===l&&(l=void 0),/^oninput$/i.test(i)&&(i=i.toLowerCase(),u[i]&&(i=\"oninputCapture\")),u[i]=l)}\"select\"==t&&u.multiple&&Array.isArray(u.value)&&(u.value=r(e.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),\"select\"==t&&null!=u.defaultValue&&(u.value=r(e.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),n.props=u,e.class!=e.className&&(nn.enumerable=\"className\"in e,null!=e.className&&(u.class=e.className),Object.defineProperty(u,\"className\",nn))}n.$$typeof=z,tn&&tn(n)};var en=e.__r;e.__r=function(n){en&&en(n),X=n.__c};var rn={ReactCurrentDispatcher:{current:{readContext:function(n){return X.__n[n.__c].props.value}}}},un=\"17.0.2\";function on(n){return t.bind(null,n)}function ln(n){return!!n&&n.$$typeof===z}function cn(n){return ln(n)?f.apply(null,arguments):n}function fn(n){return!!n.__k&&(o(null,n),!0)}function an(n){return n&&(n.base||1===n.nodeType&&n)||null}var sn=function(n,t){return n(t)},hn=function(n,t){return n(t)},vn=u;function dn(n){n()}function pn(n){return n}function mn(){return[!1,dn]}var yn=d;function _n(n,t){var e=t(),r=a({h:{__:e,v:t}}),u=r[0].h,o=r[1];return d(function(){u.__=e,u.v=t,E(u.__,t())||o({h:u})},[n,e,t]),v(function(){return E(u.__,u.v())||o({h:u}),n(function(){E(u.__,u.v())||o({h:u})})},[n]),e}var bn={useState:a,useId:s,useReducer:h,useEffect:v,useLayoutEffect:d,useInsertionEffect:yn,useTransition:mn,useDeferredValue:pn,useSyncExternalStore:_n,startTransition:dn,useRef:p,useImperativeHandle:m,useMemo:y,useCallback:_,useContext:b,useDebugValue:S,version:\"17.0.2\",Children:O,render:Y,hydrate:q,unmountComponentAtNode:fn,createPortal:j,createElement:t,createContext:l,createFactory:on,cloneElement:cn,createRef:c,Fragment:u,isValidElement:ln,findDOMNode:an,Component:n,PureComponent:w,memo:R,forwardRef:k,flushSync:hn,unstable_batchedUpdates:sn,StrictMode:vn,Suspense:D,SuspenseList:V,lazy:M,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:rn};export{O as Children,w as PureComponent,vn as StrictMode,D as Suspense,V as SuspenseList,rn as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,cn as cloneElement,on as createFactory,j as createPortal,bn as default,an as findDOMNode,hn as flushSync,k as forwardRef,q as hydrate,ln as isValidElement,M as lazy,R as memo,Y as render,dn as startTransition,fn as unmountComponentAtNode,sn as unstable_batchedUpdates,pn as useDeferredValue,yn as useInsertionEffect,_n as useSyncExternalStore,mn as useTransition,un as version};\n//# sourceMappingURL=compat.module.js.map\n","import * as preact from 'preact';\nimport { Component, createElement, isValidElement, Fragment } from 'preact';\nimport { createPortal } from 'preact/compat';\n\nconst styleTexts = [];\nconst styleEls = new Map();\nfunction injectStyles(styleText) {\n styleTexts.push(styleText);\n styleEls.forEach((styleEl) => {\n appendStylesTo(styleEl, styleText);\n });\n}\nfunction ensureElHasStyles(el) {\n if (el.isConnected && // sometimes true if SSR system simulates DOM\n el.getRootNode // sometimes undefined if SSR system simulates DOM\n ) {\n registerStylesRoot(el.getRootNode());\n }\n}\nfunction registerStylesRoot(rootNode) {\n let styleEl = styleEls.get(rootNode);\n if (!styleEl || !styleEl.isConnected) {\n styleEl = rootNode.querySelector('style[data-fullcalendar]');\n if (!styleEl) {\n styleEl = document.createElement('style');\n styleEl.setAttribute('data-fullcalendar', '');\n const nonce = getNonceValue();\n if (nonce) {\n styleEl.nonce = nonce;\n }\n const parentEl = rootNode === document ? document.head : rootNode;\n const insertBefore = rootNode === document\n ? parentEl.querySelector('script,link[rel=stylesheet],link[as=style],style')\n : parentEl.firstChild;\n parentEl.insertBefore(styleEl, insertBefore);\n }\n styleEls.set(rootNode, styleEl);\n hydrateStylesRoot(styleEl);\n }\n}\nfunction hydrateStylesRoot(styleEl) {\n for (const styleText of styleTexts) {\n appendStylesTo(styleEl, styleText);\n }\n}\nfunction appendStylesTo(styleEl, styleText) {\n const { sheet } = styleEl;\n const ruleCnt = sheet.cssRules.length;\n styleText.split('}').forEach((styleStr, i) => {\n styleStr = styleStr.trim();\n if (styleStr) {\n sheet.insertRule(styleStr + '}', ruleCnt + i);\n }\n });\n}\n// nonce\n// -------------------------------------------------------------------------------------------------\nlet queriedNonceValue;\nfunction getNonceValue() {\n if (queriedNonceValue === undefined) {\n queriedNonceValue = queryNonceValue();\n }\n return queriedNonceValue;\n}\n/*\nTODO: discourage meta tag and instead put nonce attribute on placeholder ","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SchedulerComponent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SchedulerComponent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SchedulerComponent.vue?vue&type=template&id=64622638&\"\nimport script from \"./SchedulerComponent.vue?vue&type=script&lang=js&\"\nexport * from \"./SchedulerComponent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SchedulerComponent.vue?vue&type=style&index=0&id=64622638&prod&lang=css&\"\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","\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Go to current Month\n \n {{shwoTitle}}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dashboard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dashboard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./dashboard.vue?vue&type=template&id=4cd32dc8&\"\nimport script from \"./dashboard.vue?vue&type=script&lang=js&\"\nexport * from \"./dashboard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./dashboard.vue?vue&type=style&index=0&id=4cd32dc8&prod&lang=css&\"\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","/*!\n * jQuery JavaScript Library v3.4.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2019-05-01T21:04Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar document = window.document;\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.4.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android <=4.0 only\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code, options ) {\n\t\tDOMEval( code, { nonce: options && options.nonce } );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android <=4.0 only\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.4\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2019-04-08\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\n\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( (m = match[1]) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[2] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t(nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\") ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 && rdescend.test( selector ) ) {\n\n\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[i] = \"#\" + nid + \" \" + toSelector( groups[i] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement(\"fieldset\");\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem.namespaceURI,\n\t\tdocElem = (elem.ownerDocument || elem).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9-11, Edge\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\tif ( preferredDoc !== document &&\n\t\t(subWindow = document.defaultView) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( el ) {\n\t\tel.appendChild( document.createComment(\"\") );\n\t\treturn !el.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t});\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( (elem = elems[i++]) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( el ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll(\":enabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll(\":disabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( el ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === document ? -1 :\n\t\t\t\tb === document ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn (sel + \"\").replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( (oldCache = uniqueCache[ key ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context === document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( el ) {\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement(\"fieldset\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( el ) {\n\treturn el.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n};\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( typeof elem.contentDocument !== \"undefined\" ) {\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\nvar swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// Support: IE <=9 only\n\toption: [ 1, \"\", \"\" ],\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"\" ],\n\tcol: [ 2, \"\", \"\" ],\n\ttr: [ 2, \"\", \"\" ],\n\ttd: [ 3, \"\", \"\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\n// Support: IE <=9 only\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"x\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n} )();\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tvar event = jQuery.event.fix( nativeEvent );\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\t\t\thandlers = ( dataPriv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t/* eslint-disable max-len */\n\n\t// See https://github.com/eslint/eslint/issues/3229\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,\n\n\t/* eslint-enable */\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./scheduleListing.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./scheduleListing.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./scheduleListing.vue?vue&type=template&id=3a6aac2b&scoped=true&\"\nimport script from \"./scheduleListing.vue?vue&type=script&lang=js&\"\nexport * from \"./scheduleListing.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 \"3a6aac2b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"popup_overlay px-4\"},[_c('div',{staticClass:\"custom_dialog rounded-xl\",staticStyle:{\"width\":\"1000px\",\"overflow\":\"auto\",\"max-height\":\"85%\"}},[_c('div',{staticClass:\"relative\"},[_c('div',{},[_vm._m(0),_c('div',{staticClass:\"p-4\"},[_c('SheduleVisit',{attrs:{\"isFromSchedule\":true,\"sTime\":_vm.startTime,\"eTime\":_vm.endTime,\"isSelect\":true,\"title\":'Schedule',\"showEmployeeSelection\":true,\"showJobItemSelection\":true,\"type\":'oneVisit'}})],1)]),_c('div',{staticClass:\"sticky bottom-0 bg-white w-full flex justify-end pr-3\"},[_c('div',{staticClass:\"text-rigth flex gap-2 mb-3\"},[_c('Button',{attrs:{\"btnSize\":'medium',\"textColor\":'text1',\"btnColor\":'gray1',\"btnText\":'Discard'},on:{\"buttonAction\":function($event){return _vm.discard()}}}),_c('Button',{attrs:{\"btnSize\":'medium',\"textColor\":'white',\"btnColor\":'success',\"btnText\":'Save'},on:{\"buttonAction\":function($event){return _vm.addNewVisit()}}})],1)])])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"bg-primary flex justify-between p-3\"},[_c('div',{staticClass:\"font-medium text-white heading-3\"},[_vm._v(\" Schedule Visit \")])])\n}]\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n Schedule Visit\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./scheduleExistingJobAdd.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./scheduleExistingJobAdd.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./scheduleExistingJobAdd.vue?vue&type=template&id=5172667c&scoped=true&\"\nimport script from \"./scheduleExistingJobAdd.vue?vue&type=script&lang=js&\"\nexport * from \"./scheduleExistingJobAdd.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 \"5172667c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showMap)?_c('div',{staticClass:\"relative\"},[_c('gmap-map',{ref:\"gmap\",staticStyle:{\"width\":\"100%\",\"height\":\"665px\"},attrs:{\"center\":_vm.center,\"zoom\":11}},[_c('gmap-marker',{attrs:{\"position\":_vm.center,\"clickable\":false}}),_vm._l((_vm.userLocation),function(marker,index){return _c('gmap-custom-marker',{key:index,attrs:{\"marker\":{latitude: marker.latitude, longitude: marker.longitude, mainId: marker.mainId, object: marker}}},[_c('div',{class:`staff-popup card rounded ${marker.type === 'request' ? 'bg-request' : marker.type === 'task' ? 'bg-task' : 'bg-primary'} `,on:{\"click\":function($event){return _vm.showDetails(marker)}}},[_c('div',{staticClass:\"chip_parent_box w-full\",staticStyle:{\"padding\":\"4px 0px 4px 0px\"}},[(!marker.isrequest && !marker.isTasK)?_c('p',{staticClass:\"text-white heading-6\"},[_vm._v(\"Job #\"+_vm._s(marker.mainId))]):_vm._e(),(marker.isrequest && !marker.isTasK)?_c('p',{staticClass:\"text-white heading-6\"},[_vm._v(\"Request #\"+_vm._s(marker.mainId))]):_vm._e(),(!marker.isrequest && marker.isTasK)?_c('p',{staticClass:\"text-white heading-6\"},[_vm._v(\"Task #\"+_vm._s(marker.mainId))]):_vm._e(),_c('p',{staticClass:\"text-white px-4\"},[(marker.start !== '')?_c('span',[_vm._v(_vm._s(_vm._f(\"filterForLocationTime\")(marker.start)))]):_vm._e(),(marker.end !== '')?_c('span',[_vm._v(\"-\"+_vm._s(_vm._f(\"leaveTimeFilterForActivity\")(marker.end)))]):_vm._e(),(marker.start === '' && marker.end === '')?_c('span',{staticClass:\"overFlowParaA\"},[(marker.title !== '' && !marker.isTasK)?_c('span',[_vm._v(_vm._s(marker.title))]):_vm._e(),(marker.title === '' && !marker.isTasK)?_c('span',[_vm._v(\"Request for \"+_vm._s(marker.customerName))]):_vm._e()]):_vm._e()]),_c('div',{staticClass:\"chip_tooltiptext whitespace-pre-line card rounded-xl bg-white text-left p-2 heading-4\"},[(!marker.isTasK && !marker.isrequest)?_c('div',{staticClass:\"heading-5 text-blue1\"},[_c('router-link',{staticClass:\"cursor-pointer\",attrs:{\"to\":{ name: 'jobDetail', params: { jobId: marker.mainId}}}},[_vm._v(\"Job #\"+_vm._s(marker.mainId))])],1):_vm._e(),_vm._v(\" \"+_vm._s(_vm.cardTititle)+\" \"),(!marker.isTasK && marker.isrequest)?_c('div',{staticClass:\"heading-5 text-blue1\"},[_c('router-link',{staticClass:\"cursor-pointer\",attrs:{\"to\":{ name: 'requestDetail', params: { requestId: marker.mainId}}}},[_vm._v(\"Request #\"+_vm._s(marker.mainId))])],1):_vm._e(),(marker.isTasK)?_c('div',{staticClass:\"heading-5 text-blue1\"},[_c('router-link',{staticClass:\"cursor-pointer\",attrs:{\"to\":{ name: 'TaskDetail', params: { taskId: marker.mainId}, query: {date: marker.start}}}},[_vm._v(\"Task #\"+_vm._s(marker.mainId))])],1):_vm._e(),_c('div',{staticClass:\"text-text2 heading-6\"},[(marker.title !== '')?_c('p',{staticClass:\"mb-1\"},[_c('span',{staticClass:\"font-semibold heading-7\"},[_vm._v(\" Title: \")]),_vm._v(\" \"+_vm._s(marker.title))]):_vm._e(),(marker.customerName !== '')?_c('p',{staticClass:\"mb-1\"},[_c('span',{staticClass:\"font-semibold heading-7\"},[_vm._v(\" Customer: \")]),_vm._v(\" \"+_vm._s(marker.customerName))]):_vm._e(),(marker.start !== '')?_c('p',{staticClass:\"mb-1\"},[_c('span',[_c('span',{staticClass:\"font-semibold heading-7\"},[_vm._v(\" Schedule: \")]),_vm._v(\" \"+_vm._s(_vm._f(\"filterForLocationTime\")(marker.start))+\" \")]),(marker.end !== '')?_c('span',[_vm._v(\"-\"+_vm._s(_vm._f(\"leaveTimeFilterForActivity\")(marker.end)))]):_vm._e(),(marker.start === '' && marker.end === '')?_c('span',{staticClass:\"overFlowParaA\"},[_vm._v(_vm._s(marker.title))]):_vm._e()]):_vm._e(),(marker.addressLine1 !== '')?_c('p',{staticClass:\"mb-1\"},[_c('span',{staticClass:\"font-semibold heading-7\"},[_vm._v(\" Address: \")]),_c('span',[_vm._v(_vm._s(marker.addressLine1 !== '' ? marker.addressLine1 : ''))]),_c('span',[_vm._v(_vm._s(marker.city !== undefined ? ', '+ marker.city : ''))]),_c('span',[_vm._v(_vm._s(marker.state !== undefined ? ', '+ marker.state : ''))]),_c('span',[_vm._v(_vm._s(marker.zip !== undefined ? ', '+ marker.zip : ''))])]):_vm._e(),(marker.assignToList !== '')?_c('p',{staticClass:\"mb-1\"},[_c('span',{staticClass:\"font-semibold heading-7\"},[_vm._v(\"Assign to:\")]),_vm._v(\" \"+_vm._s(marker.assignToList))]):_vm._e(),(marker.visitId > 0)?_c('p',{staticClass:\"mb-1\"},[_c('span',{staticClass:\"font-semibold heading-7\"},[_vm._v(\"Visit id:\")]),_vm._v(\" \"+_vm._s(marker.visitId))]):_vm._e(),(marker.totalJobVisit > 0)?_c('p',{staticClass:\"mb-1\"},[_c('span',{staticClass:\"font-semibold heading-7\"},[_vm._v(\"Total Visit:\")]),_vm._v(\" \"+_vm._s(marker.totalJobVisit))]):_vm._e(),(marker.summary !== '')?_c('p',{staticClass:\"mb-1\"},[_c('span',{staticClass:\"font-semibold heading-7\"},[_vm._v(\" Summary: \")]),_vm._v(\" \"+_vm._s(marker.summary))]):_vm._e()])])])])])}),_vm._l((_vm.employeeLocation),function(markerA,indexA){return _c('gmap-custom-marker',{key:indexA + `A`,attrs:{\"marker\":{latitude: markerA.locationObj.latitude, longitude: markerA.locationObj.longitude}}},[_c('div',{staticClass:\"staff-popupA\"},[_c('div',{staticClass:\"text-blue1 heading-2 icon_parent_box\"},[_c('span',[_c('i',{staticClass:\"fa-solid fa-location-pin\",staticStyle:{\"height\":\"45px\",\"width\":\"40px\"}})]),_c('div',{staticClass:\"absolute top-0 flex items-center justify-center bg-white rounded-full short_name font-bold\",staticStyle:{\"width\":\"24px\",\"height\":\"24px\"}},[_c('span',{staticStyle:{\"text-transform\":\"uppercase\"}},[_vm._v(_vm._s(markerA.firstName.charAt(0))+_vm._s(markerA.lastName.charAt(0)))])]),_c('div',{staticClass:\"tooltiptext whitespace-pre-line text-primary bg-white rounded p-2 heading-4\"},[_c('p',{staticClass:\"text-primary whitespace-nowrap\"},[_vm._v(_vm._s(markerA.firstName)+\" \"+_vm._s(markerA.lastName))]),(markerA.addedDate !== '')?_c('p',{staticClass:\"text-primary whitespace-nowrap\"},[_vm._v(\" \"+_vm._s(_vm._f(\"filterForLocationTime\")(markerA.addedDate))+\" \")]):_vm._e()])])])])})],2)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n Job #{{marker.mainId}}\n Request #{{marker.mainId}}\n Task #{{marker.mainId}}\n \n {{marker.start | filterForLocationTime}}\n -{{marker.end | leaveTimeFilterForActivity}}\n \n {{marker.title}}\n Request for {{marker.customerName}}\n \n \n \n \n Job #{{marker.mainId}}\n \n \n {{cardTititle}}\n \n Request #{{marker.mainId}}\n \n \n \n Task #{{marker.mainId}}\n \n \n \n \n Title: \n {{marker.title}}\n \n Customer: \n {{marker.customerName}}\n \n \n Schedule: \n {{marker.start | filterForLocationTime}}\n \n -{{marker.end | leaveTimeFilterForActivity}}\n {{marker.title}}\n \n \n Address: \n {{marker.addressLine1 !== '' ? marker.addressLine1 : '' }}\n {{marker.city !== undefined ? ', '+ marker.city : '' }}\n {{marker.state !== undefined ? ', '+ marker.state : '' }}\n {{marker.zip !== undefined ? ', '+ marker.zip : '' }}\n \n \n Assign to:\n {{marker.assignToList}}\n 0\" >\n Visit id:\n {{marker.visitId}}\n 0\" >\n Total Visit:\n {{marker.totalJobVisit}}\n \n Summary: \n {{marker.summary}}\n \n \n \n \n \n \n \n \n \n \n \n \n {{markerA.firstName.charAt(0)}}{{markerA.lastName.charAt(0)}}\n \n\n \n {{markerA.firstName}} {{markerA.lastName}}\n \n {{markerA.addedDate | filterForLocationTime}}\n \n \n \n \n \n \n \n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./visitMapLocation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./visitMapLocation.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./visitMapLocation.vue?vue&type=template&id=13928c99&scoped=true&\"\nimport script from \"./visitMapLocation.vue?vue&type=script&lang=js&\"\nexport * from \"./visitMapLocation.vue?vue&type=script&lang=js&\"\nimport style0 from \"./visitMapLocation.vue?vue&type=style&index=0&id=13928c99&prod&scoped=true&lang=css&\"\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 \"13928c99\",\n null\n \n)\n\nexport default component.exports","/*!\n * FullCalendar v3.10.1\n * Docs & License: https://fullcalendar.io/\n * (c) 2019 Adam Shaw\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"moment\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"moment\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"FullCalendar\"] = factory(require(\"moment\"), require(\"jquery\"));\n\telse\n\t\troot[\"FullCalendar\"] = factory(root[\"moment\"], root[\"jQuery\"]);\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 256);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n/***/ }),\n/* 1 */,\n/* 2 */\n/***/ (function(module, exports) {\n\n/*\r\nderived from:\r\nhttps://github.com/Microsoft/tslib/blob/v1.6.0/tslib.js\r\n\nonly include the helpers we need, to keep down filesize\r\n*/\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b)\r\n if (b.hasOwnProperty(p))\r\n d[p] = b[p]; };\r\nexports.__extends = function (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\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar $ = __webpack_require__(3);\r\n/* FullCalendar-specific DOM Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Given the scrollbar widths of some other container, create borders/margins on rowEls in order to match the left\r\n// and right space that was offset by the scrollbars. A 1-pixel border first, then margin beyond that.\r\nfunction compensateScroll(rowEls, scrollbarWidths) {\r\n if (scrollbarWidths.left) {\r\n rowEls.css({\r\n 'border-left-width': 1,\r\n 'margin-left': scrollbarWidths.left - 1\r\n });\r\n }\r\n if (scrollbarWidths.right) {\r\n rowEls.css({\r\n 'border-right-width': 1,\r\n 'margin-right': scrollbarWidths.right - 1\r\n });\r\n }\r\n}\r\nexports.compensateScroll = compensateScroll;\r\n// Undoes compensateScroll and restores all borders/margins\r\nfunction uncompensateScroll(rowEls) {\r\n rowEls.css({\r\n 'margin-left': '',\r\n 'margin-right': '',\r\n 'border-left-width': '',\r\n 'border-right-width': ''\r\n });\r\n}\r\nexports.uncompensateScroll = uncompensateScroll;\r\n// Make the mouse cursor express that an event is not allowed in the current area\r\nfunction disableCursor() {\r\n $('body').addClass('fc-not-allowed');\r\n}\r\nexports.disableCursor = disableCursor;\r\n// Returns the mouse cursor to its original look\r\nfunction enableCursor() {\r\n $('body').removeClass('fc-not-allowed');\r\n}\r\nexports.enableCursor = enableCursor;\r\n// Given a total available height to fill, have `els` (essentially child rows) expand to accomodate.\r\n// By default, all elements that are shorter than the recommended height are expanded uniformly, not considering\r\n// any other els that are already too tall. if `shouldRedistribute` is on, it considers these tall rows and\r\n// reduces the available height.\r\nfunction distributeHeight(els, availableHeight, shouldRedistribute) {\r\n // *FLOORING NOTE*: we floor in certain places because zoom can give inaccurate floating-point dimensions,\r\n // and it is better to be shorter than taller, to avoid creating unnecessary scrollbars.\r\n var minOffset1 = Math.floor(availableHeight / els.length); // for non-last element\r\n var minOffset2 = Math.floor(availableHeight - minOffset1 * (els.length - 1)); // for last element *FLOORING NOTE*\r\n var flexEls = []; // elements that are allowed to expand. array of DOM nodes\r\n var flexOffsets = []; // amount of vertical space it takes up\r\n var flexHeights = []; // actual css height\r\n var usedHeight = 0;\r\n undistributeHeight(els); // give all elements their natural height\r\n // find elements that are below the recommended height (expandable).\r\n // important to query for heights in a single first pass (to avoid reflow oscillation).\r\n els.each(function (i, el) {\r\n var minOffset = i === els.length - 1 ? minOffset2 : minOffset1;\r\n var naturalOffset = $(el).outerHeight(true);\r\n if (naturalOffset < minOffset) {\r\n flexEls.push(el);\r\n flexOffsets.push(naturalOffset);\r\n flexHeights.push($(el).height());\r\n }\r\n else {\r\n // this element stretches past recommended height (non-expandable). mark the space as occupied.\r\n usedHeight += naturalOffset;\r\n }\r\n });\r\n // readjust the recommended height to only consider the height available to non-maxed-out rows.\r\n if (shouldRedistribute) {\r\n availableHeight -= usedHeight;\r\n minOffset1 = Math.floor(availableHeight / flexEls.length);\r\n minOffset2 = Math.floor(availableHeight - minOffset1 * (flexEls.length - 1)); // *FLOORING NOTE*\r\n }\r\n // assign heights to all expandable elements\r\n $(flexEls).each(function (i, el) {\r\n var minOffset = i === flexEls.length - 1 ? minOffset2 : minOffset1;\r\n var naturalOffset = flexOffsets[i];\r\n var naturalHeight = flexHeights[i];\r\n var newHeight = minOffset - (naturalOffset - naturalHeight); // subtract the margin/padding\r\n if (naturalOffset < minOffset) { // we check this again because redistribution might have changed things\r\n $(el).height(newHeight);\r\n }\r\n });\r\n}\r\nexports.distributeHeight = distributeHeight;\r\n// Undoes distrubuteHeight, restoring all els to their natural height\r\nfunction undistributeHeight(els) {\r\n els.height('');\r\n}\r\nexports.undistributeHeight = undistributeHeight;\r\n// Given `els`, a jQuery set of cells, find the cell with the largest natural width and set the widths of all the\r\n// cells to be that width.\r\n// PREREQUISITE: if you want a cell to take up width, it needs to have a single inner element w/ display:inline\r\nfunction matchCellWidths(els) {\r\n var maxInnerWidth = 0;\r\n els.find('> *').each(function (i, innerEl) {\r\n var innerWidth = $(innerEl).outerWidth();\r\n if (innerWidth > maxInnerWidth) {\r\n maxInnerWidth = innerWidth;\r\n }\r\n });\r\n maxInnerWidth++; // sometimes not accurate of width the text needs to stay on one line. insurance\r\n els.width(maxInnerWidth);\r\n return maxInnerWidth;\r\n}\r\nexports.matchCellWidths = matchCellWidths;\r\n// Given one element that resides inside another,\r\n// Subtracts the height of the inner element from the outer element.\r\nfunction subtractInnerElHeight(outerEl, innerEl) {\r\n var both = outerEl.add(innerEl);\r\n var diff;\r\n // effin' IE8/9/10/11 sometimes returns 0 for dimensions. this weird hack was the only thing that worked\r\n both.css({\r\n position: 'relative',\r\n left: -1 // ensure reflow in case the el was already relative. negative is less likely to cause new scroll\r\n });\r\n diff = outerEl.outerHeight() - innerEl.outerHeight(); // grab the dimensions\r\n both.css({ position: '', left: '' }); // undo hack\r\n return diff;\r\n}\r\nexports.subtractInnerElHeight = subtractInnerElHeight;\r\n/* Element Geom Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// borrowed from https://github.com/jquery/jquery-ui/blob/1.11.0/ui/core.js#L51\r\nfunction getScrollParent(el) {\r\n var position = el.css('position');\r\n var scrollParent = el.parents().filter(function () {\r\n var parent = $(this);\r\n return (/(auto|scroll)/).test(parent.css('overflow') + parent.css('overflow-y') + parent.css('overflow-x'));\r\n }).eq(0);\r\n return position === 'fixed' || !scrollParent.length ? $(el[0].ownerDocument || document) : scrollParent;\r\n}\r\nexports.getScrollParent = getScrollParent;\r\n// Queries the outer bounding area of a jQuery element.\r\n// Returns a rectangle with absolute coordinates: left, right (exclusive), top, bottom (exclusive).\r\n// Origin is optional.\r\nfunction getOuterRect(el, origin) {\r\n var offset = el.offset();\r\n var left = offset.left - (origin ? origin.left : 0);\r\n var top = offset.top - (origin ? origin.top : 0);\r\n return {\r\n left: left,\r\n right: left + el.outerWidth(),\r\n top: top,\r\n bottom: top + el.outerHeight()\r\n };\r\n}\r\nexports.getOuterRect = getOuterRect;\r\n// Queries the area within the margin/border/scrollbars of a jQuery element. Does not go within the padding.\r\n// Returns a rectangle with absolute coordinates: left, right (exclusive), top, bottom (exclusive).\r\n// Origin is optional.\r\n// WARNING: given element can't have borders\r\n// NOTE: should use clientLeft/clientTop, but very unreliable cross-browser.\r\nfunction getClientRect(el, origin) {\r\n var offset = el.offset();\r\n var scrollbarWidths = getScrollbarWidths(el);\r\n var left = offset.left + getCssFloat(el, 'border-left-width') + scrollbarWidths.left - (origin ? origin.left : 0);\r\n var top = offset.top + getCssFloat(el, 'border-top-width') + scrollbarWidths.top - (origin ? origin.top : 0);\r\n return {\r\n left: left,\r\n right: left + el[0].clientWidth,\r\n top: top,\r\n bottom: top + el[0].clientHeight // clientHeight includes padding but NOT scrollbars\r\n };\r\n}\r\nexports.getClientRect = getClientRect;\r\n// Queries the area within the margin/border/padding of a jQuery element. Assumed not to have scrollbars.\r\n// Returns a rectangle with absolute coordinates: left, right (exclusive), top, bottom (exclusive).\r\n// Origin is optional.\r\nfunction getContentRect(el, origin) {\r\n var offset = el.offset(); // just outside of border, margin not included\r\n var left = offset.left + getCssFloat(el, 'border-left-width') + getCssFloat(el, 'padding-left') -\r\n (origin ? origin.left : 0);\r\n var top = offset.top + getCssFloat(el, 'border-top-width') + getCssFloat(el, 'padding-top') -\r\n (origin ? origin.top : 0);\r\n return {\r\n left: left,\r\n right: left + el.width(),\r\n top: top,\r\n bottom: top + el.height()\r\n };\r\n}\r\nexports.getContentRect = getContentRect;\r\n// Returns the computed left/right/top/bottom scrollbar widths for the given jQuery element.\r\n// WARNING: given element can't have borders (which will cause offsetWidth/offsetHeight to be larger).\r\n// NOTE: should use clientLeft/clientTop, but very unreliable cross-browser.\r\nfunction getScrollbarWidths(el) {\r\n var leftRightWidth = el[0].offsetWidth - el[0].clientWidth;\r\n var bottomWidth = el[0].offsetHeight - el[0].clientHeight;\r\n var widths;\r\n leftRightWidth = sanitizeScrollbarWidth(leftRightWidth);\r\n bottomWidth = sanitizeScrollbarWidth(bottomWidth);\r\n widths = { left: 0, right: 0, top: 0, bottom: bottomWidth };\r\n if (getIsLeftRtlScrollbars() && el.css('direction') === 'rtl') { // is the scrollbar on the left side?\r\n widths.left = leftRightWidth;\r\n }\r\n else {\r\n widths.right = leftRightWidth;\r\n }\r\n return widths;\r\n}\r\nexports.getScrollbarWidths = getScrollbarWidths;\r\n// The scrollbar width computations in getScrollbarWidths are sometimes flawed when it comes to\r\n// retina displays, rounding, and IE11. Massage them into a usable value.\r\nfunction sanitizeScrollbarWidth(width) {\r\n width = Math.max(0, width); // no negatives\r\n width = Math.round(width);\r\n return width;\r\n}\r\n// Logic for determining if, when the element is right-to-left, the scrollbar appears on the left side\r\nvar _isLeftRtlScrollbars = null;\r\nfunction getIsLeftRtlScrollbars() {\r\n if (_isLeftRtlScrollbars === null) {\r\n _isLeftRtlScrollbars = computeIsLeftRtlScrollbars();\r\n }\r\n return _isLeftRtlScrollbars;\r\n}\r\nfunction computeIsLeftRtlScrollbars() {\r\n var el = $('')\r\n .css({\r\n position: 'absolute',\r\n top: -1000,\r\n left: 0,\r\n border: 0,\r\n padding: 0,\r\n overflow: 'scroll',\r\n direction: 'rtl'\r\n })\r\n .appendTo('body');\r\n var innerEl = el.children();\r\n var res = innerEl.offset().left > el.offset().left; // is the inner div shifted to accommodate a left scrollbar?\r\n el.remove();\r\n return res;\r\n}\r\n// Retrieves a jQuery element's computed CSS value as a floating-point number.\r\n// If the queried value is non-numeric (ex: IE can return \"medium\" for border width), will just return zero.\r\nfunction getCssFloat(el, prop) {\r\n return parseFloat(el.css(prop)) || 0;\r\n}\r\n/* Mouse / Touch Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac)\r\nfunction isPrimaryMouseButton(ev) {\r\n return ev.which === 1 && !ev.ctrlKey;\r\n}\r\nexports.isPrimaryMouseButton = isPrimaryMouseButton;\r\nfunction getEvX(ev) {\r\n var touches = ev.originalEvent.touches;\r\n // on mobile FF, pageX for touch events is present, but incorrect,\r\n // so, look at touch coordinates first.\r\n if (touches && touches.length) {\r\n return touches[0].pageX;\r\n }\r\n return ev.pageX;\r\n}\r\nexports.getEvX = getEvX;\r\nfunction getEvY(ev) {\r\n var touches = ev.originalEvent.touches;\r\n // on mobile FF, pageX for touch events is present, but incorrect,\r\n // so, look at touch coordinates first.\r\n if (touches && touches.length) {\r\n return touches[0].pageY;\r\n }\r\n return ev.pageY;\r\n}\r\nexports.getEvY = getEvY;\r\nfunction getEvIsTouch(ev) {\r\n return /^touch/.test(ev.type);\r\n}\r\nexports.getEvIsTouch = getEvIsTouch;\r\nfunction preventSelection(el) {\r\n el.addClass('fc-unselectable')\r\n .on('selectstart', preventDefault);\r\n}\r\nexports.preventSelection = preventSelection;\r\nfunction allowSelection(el) {\r\n el.removeClass('fc-unselectable')\r\n .off('selectstart', preventDefault);\r\n}\r\nexports.allowSelection = allowSelection;\r\n// Stops a mouse/touch event from doing it's native browser action\r\nfunction preventDefault(ev) {\r\n ev.preventDefault();\r\n}\r\nexports.preventDefault = preventDefault;\r\n/* General Geometry Utils\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false\r\nfunction intersectRects(rect1, rect2) {\r\n var res = {\r\n left: Math.max(rect1.left, rect2.left),\r\n right: Math.min(rect1.right, rect2.right),\r\n top: Math.max(rect1.top, rect2.top),\r\n bottom: Math.min(rect1.bottom, rect2.bottom)\r\n };\r\n if (res.left < res.right && res.top < res.bottom) {\r\n return res;\r\n }\r\n return false;\r\n}\r\nexports.intersectRects = intersectRects;\r\n// Returns a new point that will have been moved to reside within the given rectangle\r\nfunction constrainPoint(point, rect) {\r\n return {\r\n left: Math.min(Math.max(point.left, rect.left), rect.right),\r\n top: Math.min(Math.max(point.top, rect.top), rect.bottom)\r\n };\r\n}\r\nexports.constrainPoint = constrainPoint;\r\n// Returns a point that is the center of the given rectangle\r\nfunction getRectCenter(rect) {\r\n return {\r\n left: (rect.left + rect.right) / 2,\r\n top: (rect.top + rect.bottom) / 2\r\n };\r\n}\r\nexports.getRectCenter = getRectCenter;\r\n// Subtracts point2's coordinates from point1's coordinates, returning a delta\r\nfunction diffPoints(point1, point2) {\r\n return {\r\n left: point1.left - point2.left,\r\n top: point1.top - point2.top\r\n };\r\n}\r\nexports.diffPoints = diffPoints;\r\n/* Object Ordering by Field\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nfunction parseFieldSpecs(input) {\r\n var specs = [];\r\n var tokens = [];\r\n var i;\r\n var token;\r\n if (typeof input === 'string') {\r\n tokens = input.split(/\\s*,\\s*/);\r\n }\r\n else if (typeof input === 'function') {\r\n tokens = [input];\r\n }\r\n else if ($.isArray(input)) {\r\n tokens = input;\r\n }\r\n for (i = 0; i < tokens.length; i++) {\r\n token = tokens[i];\r\n if (typeof token === 'string') {\r\n specs.push(token.charAt(0) === '-' ?\r\n { field: token.substring(1), order: -1 } :\r\n { field: token, order: 1 });\r\n }\r\n else if (typeof token === 'function') {\r\n specs.push({ func: token });\r\n }\r\n }\r\n return specs;\r\n}\r\nexports.parseFieldSpecs = parseFieldSpecs;\r\nfunction compareByFieldSpecs(obj1, obj2, fieldSpecs, obj1fallback, obj2fallback) {\r\n var i;\r\n var cmp;\r\n for (i = 0; i < fieldSpecs.length; i++) {\r\n cmp = compareByFieldSpec(obj1, obj2, fieldSpecs[i], obj1fallback, obj2fallback);\r\n if (cmp) {\r\n return cmp;\r\n }\r\n }\r\n return 0;\r\n}\r\nexports.compareByFieldSpecs = compareByFieldSpecs;\r\nfunction compareByFieldSpec(obj1, obj2, fieldSpec, obj1fallback, obj2fallback) {\r\n if (fieldSpec.func) {\r\n return fieldSpec.func(obj1, obj2);\r\n }\r\n var val1 = obj1[fieldSpec.field];\r\n var val2 = obj2[fieldSpec.field];\r\n if (val1 == null && obj1fallback) {\r\n val1 = obj1fallback[fieldSpec.field];\r\n }\r\n if (val2 == null && obj2fallback) {\r\n val2 = obj2fallback[fieldSpec.field];\r\n }\r\n return flexibleCompare(val1, val2) * (fieldSpec.order || 1);\r\n}\r\nexports.compareByFieldSpec = compareByFieldSpec;\r\nfunction flexibleCompare(a, b) {\r\n if (!a && !b) {\r\n return 0;\r\n }\r\n if (b == null) {\r\n return -1;\r\n }\r\n if (a == null) {\r\n return 1;\r\n }\r\n if ($.type(a) === 'string' || $.type(b) === 'string') {\r\n return String(a).localeCompare(String(b));\r\n }\r\n return a - b;\r\n}\r\nexports.flexibleCompare = flexibleCompare;\r\n/* Date Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nexports.dayIDs = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\r\nexports.unitsDesc = ['year', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; // descending\r\n// Diffs the two moments into a Duration where full-days are recorded first, then the remaining time.\r\n// Moments will have their timezones normalized.\r\nfunction diffDayTime(a, b) {\r\n return moment.duration({\r\n days: a.clone().stripTime().diff(b.clone().stripTime(), 'days'),\r\n ms: a.time() - b.time() // time-of-day from day start. disregards timezone\r\n });\r\n}\r\nexports.diffDayTime = diffDayTime;\r\n// Diffs the two moments via their start-of-day (regardless of timezone). Produces whole-day durations.\r\nfunction diffDay(a, b) {\r\n return moment.duration({\r\n days: a.clone().stripTime().diff(b.clone().stripTime(), 'days')\r\n });\r\n}\r\nexports.diffDay = diffDay;\r\n// Diffs two moments, producing a duration, made of a whole-unit-increment of the given unit. Uses rounding.\r\nfunction diffByUnit(a, b, unit) {\r\n return moment.duration(Math.round(a.diff(b, unit, true)), // returnFloat=true\r\n unit);\r\n}\r\nexports.diffByUnit = diffByUnit;\r\n// Computes the unit name of the largest whole-unit period of time.\r\n// For example, 48 hours will be \"days\" whereas 49 hours will be \"hours\".\r\n// Accepts start/end, a range object, or an original duration object.\r\nfunction computeGreatestUnit(start, end) {\r\n var i;\r\n var unit;\r\n var val;\r\n for (i = 0; i < exports.unitsDesc.length; i++) {\r\n unit = exports.unitsDesc[i];\r\n val = computeRangeAs(unit, start, end);\r\n if (val >= 1 && isInt(val)) {\r\n break;\r\n }\r\n }\r\n return unit; // will be \"milliseconds\" if nothing else matches\r\n}\r\nexports.computeGreatestUnit = computeGreatestUnit;\r\n// like computeGreatestUnit, but has special abilities to interpret the source input for clues\r\nfunction computeDurationGreatestUnit(duration, durationInput) {\r\n var unit = computeGreatestUnit(duration);\r\n // prevent days:7 from being interpreted as a week\r\n if (unit === 'week' && typeof durationInput === 'object' && durationInput.days) {\r\n unit = 'day';\r\n }\r\n return unit;\r\n}\r\nexports.computeDurationGreatestUnit = computeDurationGreatestUnit;\r\n// Computes the number of units (like \"hours\") in the given range.\r\n// Range can be a {start,end} object, separate start/end args, or a Duration.\r\n// Results are based on Moment's .as() and .diff() methods, so results can depend on internal handling\r\n// of month-diffing logic (which tends to vary from version to version).\r\nfunction computeRangeAs(unit, start, end) {\r\n if (end != null) { // given start, end\r\n return end.diff(start, unit, true);\r\n }\r\n else if (moment.isDuration(start)) { // given duration\r\n return start.as(unit);\r\n }\r\n else { // given { start, end } range object\r\n return start.end.diff(start.start, unit, true);\r\n }\r\n}\r\n// Intelligently divides a range (specified by a start/end params) by a duration\r\nfunction divideRangeByDuration(start, end, dur) {\r\n var months;\r\n if (durationHasTime(dur)) {\r\n return (end - start) / dur;\r\n }\r\n months = dur.asMonths();\r\n if (Math.abs(months) >= 1 && isInt(months)) {\r\n return end.diff(start, 'months', true) / months;\r\n }\r\n return end.diff(start, 'days', true) / dur.asDays();\r\n}\r\nexports.divideRangeByDuration = divideRangeByDuration;\r\n// Intelligently divides one duration by another\r\nfunction divideDurationByDuration(dur1, dur2) {\r\n var months1;\r\n var months2;\r\n if (durationHasTime(dur1) || durationHasTime(dur2)) {\r\n return dur1 / dur2;\r\n }\r\n months1 = dur1.asMonths();\r\n months2 = dur2.asMonths();\r\n if (Math.abs(months1) >= 1 && isInt(months1) &&\r\n Math.abs(months2) >= 1 && isInt(months2)) {\r\n return months1 / months2;\r\n }\r\n return dur1.asDays() / dur2.asDays();\r\n}\r\nexports.divideDurationByDuration = divideDurationByDuration;\r\n// Intelligently multiplies a duration by a number\r\nfunction multiplyDuration(dur, n) {\r\n var months;\r\n if (durationHasTime(dur)) {\r\n return moment.duration(dur * n);\r\n }\r\n months = dur.asMonths();\r\n if (Math.abs(months) >= 1 && isInt(months)) {\r\n return moment.duration({ months: months * n });\r\n }\r\n return moment.duration({ days: dur.asDays() * n });\r\n}\r\nexports.multiplyDuration = multiplyDuration;\r\n// Returns a boolean about whether the given duration has any time parts (hours/minutes/seconds/ms)\r\nfunction durationHasTime(dur) {\r\n return Boolean(dur.hours() || dur.minutes() || dur.seconds() || dur.milliseconds());\r\n}\r\nexports.durationHasTime = durationHasTime;\r\nfunction isNativeDate(input) {\r\n return Object.prototype.toString.call(input) === '[object Date]' || input instanceof Date;\r\n}\r\nexports.isNativeDate = isNativeDate;\r\n// Returns a boolean about whether the given input is a time string, like \"06:40:00\" or \"06:00\"\r\nfunction isTimeString(str) {\r\n return typeof str === 'string' &&\r\n /^\\d+\\:\\d+(?:\\:\\d+\\.?(?:\\d{3})?)?$/.test(str);\r\n}\r\nexports.isTimeString = isTimeString;\r\n/* Logging and Debug\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nfunction log() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var console = window.console;\r\n if (console && console.log) {\r\n return console.log.apply(console, args);\r\n }\r\n}\r\nexports.log = log;\r\nfunction warn() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var console = window.console;\r\n if (console && console.warn) {\r\n return console.warn.apply(console, args);\r\n }\r\n else {\r\n return log.apply(null, args);\r\n }\r\n}\r\nexports.warn = warn;\r\n/* General Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar hasOwnPropMethod = {}.hasOwnProperty;\r\n// Merges an array of objects into a single object.\r\n// The second argument allows for an array of property names who's object values will be merged together.\r\nfunction mergeProps(propObjs, complexProps) {\r\n var dest = {};\r\n var i;\r\n var name;\r\n var complexObjs;\r\n var j;\r\n var val;\r\n var props;\r\n if (complexProps) {\r\n for (i = 0; i < complexProps.length; i++) {\r\n name = complexProps[i];\r\n complexObjs = [];\r\n // collect the trailing object values, stopping when a non-object is discovered\r\n for (j = propObjs.length - 1; j >= 0; j--) {\r\n val = propObjs[j][name];\r\n if (typeof val === 'object') {\r\n complexObjs.unshift(val);\r\n }\r\n else if (val !== undefined) {\r\n dest[name] = val; // if there were no objects, this value will be used\r\n break;\r\n }\r\n }\r\n // if the trailing values were objects, use the merged value\r\n if (complexObjs.length) {\r\n dest[name] = mergeProps(complexObjs);\r\n }\r\n }\r\n }\r\n // copy values into the destination, going from last to first\r\n for (i = propObjs.length - 1; i >= 0; i--) {\r\n props = propObjs[i];\r\n for (name in props) {\r\n if (!(name in dest)) { // if already assigned by previous props or complex props, don't reassign\r\n dest[name] = props[name];\r\n }\r\n }\r\n }\r\n return dest;\r\n}\r\nexports.mergeProps = mergeProps;\r\nfunction copyOwnProps(src, dest) {\r\n for (var name_1 in src) {\r\n if (hasOwnProp(src, name_1)) {\r\n dest[name_1] = src[name_1];\r\n }\r\n }\r\n}\r\nexports.copyOwnProps = copyOwnProps;\r\nfunction hasOwnProp(obj, name) {\r\n return hasOwnPropMethod.call(obj, name);\r\n}\r\nexports.hasOwnProp = hasOwnProp;\r\nfunction applyAll(functions, thisObj, args) {\r\n if ($.isFunction(functions)) {\r\n functions = [functions];\r\n }\r\n if (functions) {\r\n var i = void 0;\r\n var ret = void 0;\r\n for (i = 0; i < functions.length; i++) {\r\n ret = functions[i].apply(thisObj, args) || ret;\r\n }\r\n return ret;\r\n }\r\n}\r\nexports.applyAll = applyAll;\r\nfunction removeMatching(array, testFunc) {\r\n var removeCnt = 0;\r\n var i = 0;\r\n while (i < array.length) {\r\n if (testFunc(array[i])) { // truthy value means *remove*\r\n array.splice(i, 1);\r\n removeCnt++;\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n return removeCnt;\r\n}\r\nexports.removeMatching = removeMatching;\r\nfunction removeExact(array, exactVal) {\r\n var removeCnt = 0;\r\n var i = 0;\r\n while (i < array.length) {\r\n if (array[i] === exactVal) {\r\n array.splice(i, 1);\r\n removeCnt++;\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n return removeCnt;\r\n}\r\nexports.removeExact = removeExact;\r\nfunction isArraysEqual(a0, a1) {\r\n var len = a0.length;\r\n var i;\r\n if (len == null || len !== a1.length) { // not array? or not same length?\r\n return false;\r\n }\r\n for (i = 0; i < len; i++) {\r\n if (a0[i] !== a1[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nexports.isArraysEqual = isArraysEqual;\r\nfunction firstDefined() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n for (var i = 0; i < args.length; i++) {\r\n if (args[i] !== undefined) {\r\n return args[i];\r\n }\r\n }\r\n}\r\nexports.firstDefined = firstDefined;\r\nfunction htmlEscape(s) {\r\n return (s + '').replace(/&/g, '&')\r\n .replace(//g, '>')\r\n .replace(/'/g, ''')\r\n .replace(/\"/g, '"')\r\n .replace(/\\n/g, '');\r\n}\r\nexports.htmlEscape = htmlEscape;\r\nfunction stripHtmlEntities(text) {\r\n return text.replace(/&.*?;/g, '');\r\n}\r\nexports.stripHtmlEntities = stripHtmlEntities;\r\n// Given a hash of CSS properties, returns a string of CSS.\r\n// Uses property names as-is (no camel-case conversion). Will not make statements for null/undefined values.\r\nfunction cssToStr(cssProps) {\r\n var statements = [];\r\n $.each(cssProps, function (name, val) {\r\n if (val != null) {\r\n statements.push(name + ':' + val);\r\n }\r\n });\r\n return statements.join(';');\r\n}\r\nexports.cssToStr = cssToStr;\r\n// Given an object hash of HTML attribute names to values,\r\n// generates a string that can be injected between < > in HTML\r\nfunction attrsToStr(attrs) {\r\n var parts = [];\r\n $.each(attrs, function (name, val) {\r\n if (val != null) {\r\n parts.push(name + '=\"' + htmlEscape(val) + '\"');\r\n }\r\n });\r\n return parts.join(' ');\r\n}\r\nexports.attrsToStr = attrsToStr;\r\nfunction capitaliseFirstLetter(str) {\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n}\r\nexports.capitaliseFirstLetter = capitaliseFirstLetter;\r\nfunction compareNumbers(a, b) {\r\n return a - b;\r\n}\r\nexports.compareNumbers = compareNumbers;\r\nfunction isInt(n) {\r\n return n % 1 === 0;\r\n}\r\nexports.isInt = isInt;\r\n// Returns a method bound to the given object context.\r\n// Just like one of the jQuery.proxy signatures, but without the undesired behavior of treating the same method with\r\n// different contexts as identical when binding/unbinding events.\r\nfunction proxy(obj, methodName) {\r\n var method = obj[methodName];\r\n return function () {\r\n return method.apply(obj, arguments);\r\n };\r\n}\r\nexports.proxy = proxy;\r\n// Returns a function, that, as long as it continues to be invoked, will not\r\n// be triggered. The function will be called after it stops being called for\r\n// N milliseconds. If `immediate` is passed, trigger the function on the\r\n// leading edge, instead of the trailing.\r\n// https://github.com/jashkenas/underscore/blob/1.6.0/underscore.js#L714\r\nfunction debounce(func, wait, immediate) {\r\n if (immediate === void 0) { immediate = false; }\r\n var timeout;\r\n var args;\r\n var context;\r\n var timestamp;\r\n var result;\r\n var later = function () {\r\n var last = +new Date() - timestamp;\r\n if (last < wait) {\r\n timeout = setTimeout(later, wait - last);\r\n }\r\n else {\r\n timeout = null;\r\n if (!immediate) {\r\n result = func.apply(context, args);\r\n context = args = null;\r\n }\r\n }\r\n };\r\n return function () {\r\n context = this;\r\n args = arguments;\r\n timestamp = +new Date();\r\n var callNow = immediate && !timeout;\r\n if (!timeout) {\r\n timeout = setTimeout(later, wait);\r\n }\r\n if (callNow) {\r\n result = func.apply(context, args);\r\n context = args = null;\r\n }\r\n return result;\r\n };\r\n}\r\nexports.debounce = debounce;\r\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar moment_ext_1 = __webpack_require__(11);\r\nvar UnzonedRange = /** @class */ (function () {\r\n function UnzonedRange(startInput, endInput) {\r\n // TODO: move these into footprint.\r\n // Especially, doesn't make sense for null startMs/endMs.\r\n this.isStart = true;\r\n this.isEnd = true;\r\n if (moment.isMoment(startInput)) {\r\n startInput = startInput.clone().stripZone();\r\n }\r\n if (moment.isMoment(endInput)) {\r\n endInput = endInput.clone().stripZone();\r\n }\r\n if (startInput) {\r\n this.startMs = startInput.valueOf();\r\n }\r\n if (endInput) {\r\n this.endMs = endInput.valueOf();\r\n }\r\n }\r\n /*\r\n SIDEEFFECT: will mutate eventRanges.\r\n Will return a new array result.\r\n Only works for non-open-ended ranges.\r\n */\r\n UnzonedRange.invertRanges = function (ranges, constraintRange) {\r\n var invertedRanges = [];\r\n var startMs = constraintRange.startMs; // the end of the previous range. the start of the new range\r\n var i;\r\n var dateRange;\r\n // ranges need to be in order. required for our date-walking algorithm\r\n ranges.sort(compareUnzonedRanges);\r\n for (i = 0; i < ranges.length; i++) {\r\n dateRange = ranges[i];\r\n // add the span of time before the event (if there is any)\r\n if (dateRange.startMs > startMs) { // compare millisecond time (skip any ambig logic)\r\n invertedRanges.push(new UnzonedRange(startMs, dateRange.startMs));\r\n }\r\n if (dateRange.endMs > startMs) {\r\n startMs = dateRange.endMs;\r\n }\r\n }\r\n // add the span of time after the last event (if there is any)\r\n if (startMs < constraintRange.endMs) { // compare millisecond time (skip any ambig logic)\r\n invertedRanges.push(new UnzonedRange(startMs, constraintRange.endMs));\r\n }\r\n return invertedRanges;\r\n };\r\n UnzonedRange.prototype.intersect = function (otherRange) {\r\n var startMs = this.startMs;\r\n var endMs = this.endMs;\r\n var newRange = null;\r\n if (otherRange.startMs != null) {\r\n if (startMs == null) {\r\n startMs = otherRange.startMs;\r\n }\r\n else {\r\n startMs = Math.max(startMs, otherRange.startMs);\r\n }\r\n }\r\n if (otherRange.endMs != null) {\r\n if (endMs == null) {\r\n endMs = otherRange.endMs;\r\n }\r\n else {\r\n endMs = Math.min(endMs, otherRange.endMs);\r\n }\r\n }\r\n if (startMs == null || endMs == null || startMs < endMs) {\r\n newRange = new UnzonedRange(startMs, endMs);\r\n newRange.isStart = this.isStart && startMs === this.startMs;\r\n newRange.isEnd = this.isEnd && endMs === this.endMs;\r\n }\r\n return newRange;\r\n };\r\n UnzonedRange.prototype.intersectsWith = function (otherRange) {\r\n return (this.endMs == null || otherRange.startMs == null || this.endMs > otherRange.startMs) &&\r\n (this.startMs == null || otherRange.endMs == null || this.startMs < otherRange.endMs);\r\n };\r\n UnzonedRange.prototype.containsRange = function (innerRange) {\r\n return (this.startMs == null || (innerRange.startMs != null && innerRange.startMs >= this.startMs)) &&\r\n (this.endMs == null || (innerRange.endMs != null && innerRange.endMs <= this.endMs));\r\n };\r\n // `date` can be a moment, a Date, or a millisecond time.\r\n UnzonedRange.prototype.containsDate = function (date) {\r\n var ms = date.valueOf();\r\n return (this.startMs == null || ms >= this.startMs) &&\r\n (this.endMs == null || ms < this.endMs);\r\n };\r\n // If the given date is not within the given range, move it inside.\r\n // (If it's past the end, make it one millisecond before the end).\r\n // `date` can be a moment, a Date, or a millisecond time.\r\n // Returns a MS-time.\r\n UnzonedRange.prototype.constrainDate = function (date) {\r\n var ms = date.valueOf();\r\n if (this.startMs != null && ms < this.startMs) {\r\n ms = this.startMs;\r\n }\r\n if (this.endMs != null && ms >= this.endMs) {\r\n ms = this.endMs - 1;\r\n }\r\n return ms;\r\n };\r\n UnzonedRange.prototype.equals = function (otherRange) {\r\n return this.startMs === otherRange.startMs && this.endMs === otherRange.endMs;\r\n };\r\n UnzonedRange.prototype.clone = function () {\r\n var range = new UnzonedRange(this.startMs, this.endMs);\r\n range.isStart = this.isStart;\r\n range.isEnd = this.isEnd;\r\n return range;\r\n };\r\n // Returns an ambig-zoned moment from startMs.\r\n // BEWARE: returned moment is not localized.\r\n // Formatting and start-of-week will be default.\r\n UnzonedRange.prototype.getStart = function () {\r\n if (this.startMs != null) {\r\n return moment_ext_1.default.utc(this.startMs).stripZone();\r\n }\r\n return null;\r\n };\r\n // Returns an ambig-zoned moment from startMs.\r\n // BEWARE: returned moment is not localized.\r\n // Formatting and start-of-week will be default.\r\n UnzonedRange.prototype.getEnd = function () {\r\n if (this.endMs != null) {\r\n return moment_ext_1.default.utc(this.endMs).stripZone();\r\n }\r\n return null;\r\n };\r\n UnzonedRange.prototype.as = function (unit) {\r\n return moment.utc(this.endMs).diff(moment.utc(this.startMs), unit, true);\r\n };\r\n return UnzonedRange;\r\n}());\r\nexports.default = UnzonedRange;\r\n/*\r\nOnly works for non-open-ended ranges.\r\n*/\r\nfunction compareUnzonedRanges(range1, range2) {\r\n return range1.startMs - range2.startMs; // earlier ranges go first\r\n}\r\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar ParsableModelMixin_1 = __webpack_require__(52);\r\nvar Class_1 = __webpack_require__(35);\r\nvar EventDefParser_1 = __webpack_require__(36);\r\nvar EventSource = /** @class */ (function (_super) {\r\n tslib_1.__extends(EventSource, _super);\r\n // can we do away with calendar? at least for the abstract?\r\n // useful for buildEventDef\r\n function EventSource(calendar) {\r\n var _this = _super.call(this) || this;\r\n _this.calendar = calendar;\r\n _this.className = [];\r\n _this.uid = String(EventSource.uuid++);\r\n return _this;\r\n }\r\n /*\r\n rawInput can be any data type!\r\n */\r\n EventSource.parse = function (rawInput, calendar) {\r\n var source = new this(calendar);\r\n if (typeof rawInput === 'object') {\r\n if (source.applyProps(rawInput)) {\r\n return source;\r\n }\r\n }\r\n return false;\r\n };\r\n EventSource.normalizeId = function (id) {\r\n if (id) {\r\n return String(id);\r\n }\r\n return null;\r\n };\r\n EventSource.prototype.fetch = function (start, end, timezone) {\r\n // subclasses must implement. must return a promise.\r\n };\r\n EventSource.prototype.removeEventDefsById = function (eventDefId) {\r\n // optional for subclasses to implement\r\n };\r\n EventSource.prototype.removeAllEventDefs = function () {\r\n // optional for subclasses to implement\r\n };\r\n /*\r\n For compairing/matching\r\n */\r\n EventSource.prototype.getPrimitive = function (otherSource) {\r\n // subclasses must implement\r\n };\r\n EventSource.prototype.parseEventDefs = function (rawEventDefs) {\r\n var i;\r\n var eventDef;\r\n var eventDefs = [];\r\n for (i = 0; i < rawEventDefs.length; i++) {\r\n eventDef = this.parseEventDef(rawEventDefs[i]);\r\n if (eventDef) {\r\n eventDefs.push(eventDef);\r\n }\r\n }\r\n return eventDefs;\r\n };\r\n EventSource.prototype.parseEventDef = function (rawInput) {\r\n var calendarTransform = this.calendar.opt('eventDataTransform');\r\n var sourceTransform = this.eventDataTransform;\r\n if (calendarTransform) {\r\n rawInput = calendarTransform(rawInput, this.calendar);\r\n }\r\n if (sourceTransform) {\r\n rawInput = sourceTransform(rawInput, this.calendar);\r\n }\r\n return EventDefParser_1.default.parse(rawInput, this);\r\n };\r\n EventSource.prototype.applyManualStandardProps = function (rawProps) {\r\n if (rawProps.id != null) {\r\n this.id = EventSource.normalizeId(rawProps.id);\r\n }\r\n // TODO: converge with EventDef\r\n if ($.isArray(rawProps.className)) {\r\n this.className = rawProps.className;\r\n }\r\n else if (typeof rawProps.className === 'string') {\r\n this.className = rawProps.className.split(/\\s+/);\r\n }\r\n return true;\r\n };\r\n EventSource.uuid = 0;\r\n EventSource.defineStandardProps = ParsableModelMixin_1.default.defineStandardProps;\r\n EventSource.copyVerbatimStandardProps = ParsableModelMixin_1.default.copyVerbatimStandardProps;\r\n return EventSource;\r\n}(Class_1.default));\r\nexports.default = EventSource;\r\nParsableModelMixin_1.default.mixInto(EventSource);\r\n// Parsing\r\n// ---------------------------------------------------------------------------------------------------------------------\r\nEventSource.defineStandardProps({\r\n // manually process...\r\n id: false,\r\n className: false,\r\n // automatically transfer...\r\n color: true,\r\n backgroundColor: true,\r\n borderColor: true,\r\n textColor: true,\r\n editable: true,\r\n startEditable: true,\r\n durationEditable: true,\r\n rendering: true,\r\n overlap: true,\r\n constraint: true,\r\n allDayDefault: true,\r\n eventDataTransform: true\r\n});\r\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\r\nUtility methods for easily listening to events on another object,\r\nand more importantly, easily unlistening from them.\r\n\nUSAGE:\r\n import { default as ListenerMixin, ListenerInterface } from './ListenerMixin'\r\nin class:\r\n listenTo: ListenerInterface['listenTo']\r\n stopListeningTo: ListenerInterface['stopListeningTo']\r\nafter class:\r\n ListenerMixin.mixInto(TheClass)\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar Mixin_1 = __webpack_require__(15);\r\nvar guid = 0;\r\nvar ListenerMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(ListenerMixin, _super);\r\n function ListenerMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /*\r\n Given an `other` object that has on/off methods, bind the given `callback` to an event by the given name.\r\n The `callback` will be called with the `this` context of the object that .listenTo is being called on.\r\n Can be called:\r\n .listenTo(other, eventName, callback)\r\n OR\r\n .listenTo(other, {\r\n eventName1: callback1,\r\n eventName2: callback2\r\n })\r\n */\r\n ListenerMixin.prototype.listenTo = function (other, arg, callback) {\r\n if (typeof arg === 'object') { // given dictionary of callbacks\r\n for (var eventName in arg) {\r\n if (arg.hasOwnProperty(eventName)) {\r\n this.listenTo(other, eventName, arg[eventName]);\r\n }\r\n }\r\n }\r\n else if (typeof arg === 'string') {\r\n other.on(arg + '.' + this.getListenerNamespace(), // use event namespacing to identify this object\r\n $.proxy(callback, this) // always use `this` context\r\n // the usually-undesired jQuery guid behavior doesn't matter,\r\n // because we always unbind via namespace\r\n );\r\n }\r\n };\r\n /*\r\n Causes the current object to stop listening to events on the `other` object.\r\n `eventName` is optional. If omitted, will stop listening to ALL events on `other`.\r\n */\r\n ListenerMixin.prototype.stopListeningTo = function (other, eventName) {\r\n other.off((eventName || '') + '.' + this.getListenerNamespace());\r\n };\r\n /*\r\n Returns a string, unique to this object, to be used for event namespacing\r\n */\r\n ListenerMixin.prototype.getListenerNamespace = function () {\r\n if (this.listenerId == null) {\r\n this.listenerId = guid++;\r\n }\r\n return '_listener' + this.listenerId;\r\n };\r\n return ListenerMixin;\r\n}(Mixin_1.default));\r\nexports.default = ListenerMixin;\r\n\n\n/***/ }),\n/* 8 */,\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar EventDef_1 = __webpack_require__(37);\r\nvar EventInstance_1 = __webpack_require__(53);\r\nvar EventDateProfile_1 = __webpack_require__(16);\r\nvar SingleEventDef = /** @class */ (function (_super) {\r\n tslib_1.__extends(SingleEventDef, _super);\r\n function SingleEventDef() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /*\r\n Will receive start/end params, but will be ignored.\r\n */\r\n SingleEventDef.prototype.buildInstances = function () {\r\n return [this.buildInstance()];\r\n };\r\n SingleEventDef.prototype.buildInstance = function () {\r\n return new EventInstance_1.default(this, // definition\r\n this.dateProfile);\r\n };\r\n SingleEventDef.prototype.isAllDay = function () {\r\n return this.dateProfile.isAllDay();\r\n };\r\n SingleEventDef.prototype.clone = function () {\r\n var def = _super.prototype.clone.call(this);\r\n def.dateProfile = this.dateProfile;\r\n return def;\r\n };\r\n SingleEventDef.prototype.rezone = function () {\r\n var calendar = this.source.calendar;\r\n var dateProfile = this.dateProfile;\r\n this.dateProfile = new EventDateProfile_1.default(calendar.moment(dateProfile.start), dateProfile.end ? calendar.moment(dateProfile.end) : null, calendar);\r\n };\r\n /*\r\n NOTE: if super-method fails, should still attempt to apply\r\n */\r\n SingleEventDef.prototype.applyManualStandardProps = function (rawProps) {\r\n var superSuccess = _super.prototype.applyManualStandardProps.call(this, rawProps);\r\n var dateProfile = EventDateProfile_1.default.parse(rawProps, this.source); // returns null on failure\r\n if (dateProfile) {\r\n this.dateProfile = dateProfile;\r\n // make sure `date` shows up in the legacy event objects as-is\r\n if (rawProps.date != null) {\r\n this.miscProps.date = rawProps.date;\r\n }\r\n return superSuccess;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n return SingleEventDef;\r\n}(EventDef_1.default));\r\nexports.default = SingleEventDef;\r\n// Parsing\r\n// ---------------------------------------------------------------------------------------------------------------------\r\nSingleEventDef.defineStandardProps({\r\n start: false,\r\n date: false,\r\n end: false,\r\n allDay: false\r\n});\r\n\n\n/***/ }),\n/* 10 */,\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar ambigDateOfMonthRegex = /^\\s*\\d{4}-\\d\\d$/;\r\nvar ambigTimeOrZoneRegex = /^\\s*\\d{4}-(?:(\\d\\d-\\d\\d)|(W\\d\\d$)|(W\\d\\d-\\d)|(\\d\\d\\d))((T| )(\\d\\d(:\\d\\d(:\\d\\d(\\.\\d+)?)?)?)?)?$/;\r\nvar newMomentProto = moment.fn; // where we will attach our new methods\r\nexports.newMomentProto = newMomentProto;\r\nvar oldMomentProto = $.extend({}, newMomentProto); // copy of original moment methods\r\nexports.oldMomentProto = oldMomentProto;\r\n// tell momentjs to transfer these properties upon clone\r\nvar momentProperties = moment.momentProperties;\r\nmomentProperties.push('_fullCalendar');\r\nmomentProperties.push('_ambigTime');\r\nmomentProperties.push('_ambigZone');\r\n/*\r\nCall this if you want Moment's original format method to be used\r\n*/\r\nfunction oldMomentFormat(mom, formatStr) {\r\n return oldMomentProto.format.call(mom, formatStr); // oldMomentProto defined in moment-ext.js\r\n}\r\nexports.oldMomentFormat = oldMomentFormat;\r\n// Creating\r\n// -------------------------------------------------------------------------------------------------\r\n// Creates a new moment, similar to the vanilla moment(...) constructor, but with\r\n// extra features (ambiguous time, enhanced formatting). When given an existing moment,\r\n// it will function as a clone (and retain the zone of the moment). Anything else will\r\n// result in a moment in the local zone.\r\nvar momentExt = function () {\r\n return makeMoment(arguments);\r\n};\r\nexports.default = momentExt;\r\n// Sames as momentExt, but forces the resulting moment to be in the UTC timezone.\r\nmomentExt.utc = function () {\r\n var mom = makeMoment(arguments, true);\r\n // Force it into UTC because makeMoment doesn't guarantee it\r\n // (if given a pre-existing moment for example)\r\n if (mom.hasTime()) { // don't give ambiguously-timed moments a UTC zone\r\n mom.utc();\r\n }\r\n return mom;\r\n};\r\n// Same as momentExt, but when given an ISO8601 string, the timezone offset is preserved.\r\n// ISO8601 strings with no timezone offset will become ambiguously zoned.\r\nmomentExt.parseZone = function () {\r\n return makeMoment(arguments, true, true);\r\n};\r\n// Builds an enhanced moment from args. When given an existing moment, it clones. When given a\r\n// native Date, or called with no arguments (the current time), the resulting moment will be local.\r\n// Anything else needs to be \"parsed\" (a string or an array), and will be affected by:\r\n// parseAsUTC - if there is no zone information, should we parse the input in UTC?\r\n// parseZone - if there is zone information, should we force the zone of the moment?\r\nfunction makeMoment(args, parseAsUTC, parseZone) {\r\n if (parseAsUTC === void 0) { parseAsUTC = false; }\r\n if (parseZone === void 0) { parseZone = false; }\r\n var input = args[0];\r\n var isSingleString = args.length === 1 && typeof input === 'string';\r\n var isAmbigTime;\r\n var isAmbigZone;\r\n var ambigMatch;\r\n var mom;\r\n if (moment.isMoment(input) || util_1.isNativeDate(input) || input === undefined) {\r\n mom = moment.apply(null, args);\r\n }\r\n else { // \"parsing\" is required\r\n isAmbigTime = false;\r\n isAmbigZone = false;\r\n if (isSingleString) {\r\n if (ambigDateOfMonthRegex.test(input)) {\r\n // accept strings like '2014-05', but convert to the first of the month\r\n input += '-01';\r\n args = [input]; // for when we pass it on to moment's constructor\r\n isAmbigTime = true;\r\n isAmbigZone = true;\r\n }\r\n else if ((ambigMatch = ambigTimeOrZoneRegex.exec(input))) {\r\n isAmbigTime = !ambigMatch[5]; // no time part?\r\n isAmbigZone = true;\r\n }\r\n }\r\n else if ($.isArray(input)) {\r\n // arrays have no timezone information, so assume ambiguous zone\r\n isAmbigZone = true;\r\n }\r\n // otherwise, probably a string with a format\r\n if (parseAsUTC || isAmbigTime) {\r\n mom = moment.utc.apply(moment, args);\r\n }\r\n else {\r\n mom = moment.apply(null, args);\r\n }\r\n if (isAmbigTime) {\r\n mom._ambigTime = true;\r\n mom._ambigZone = true; // ambiguous time always means ambiguous zone\r\n }\r\n else if (parseZone) { // let's record the inputted zone somehow\r\n if (isAmbigZone) {\r\n mom._ambigZone = true;\r\n }\r\n else if (isSingleString) {\r\n mom.utcOffset(input); // if not a valid zone, will assign UTC\r\n }\r\n }\r\n }\r\n mom._fullCalendar = true; // flag for extended functionality\r\n return mom;\r\n}\r\n// Week Number\r\n// -------------------------------------------------------------------------------------------------\r\n// Returns the week number, considering the locale's custom week number calcuation\r\n// `weeks` is an alias for `week`\r\nnewMomentProto.week = newMomentProto.weeks = function (input) {\r\n var weekCalc = this._locale._fullCalendar_weekCalc;\r\n if (input == null && typeof weekCalc === 'function') { // custom function only works for getter\r\n return weekCalc(this);\r\n }\r\n else if (weekCalc === 'ISO') {\r\n return oldMomentProto.isoWeek.apply(this, arguments); // ISO getter/setter\r\n }\r\n return oldMomentProto.week.apply(this, arguments); // local getter/setter\r\n};\r\n// Time-of-day\r\n// -------------------------------------------------------------------------------------------------\r\n// GETTER\r\n// Returns a Duration with the hours/minutes/seconds/ms values of the moment.\r\n// If the moment has an ambiguous time, a duration of 00:00 will be returned.\r\n//\r\n// SETTER\r\n// You can supply a Duration, a Moment, or a Duration-like argument.\r\n// When setting the time, and the moment has an ambiguous time, it then becomes unambiguous.\r\nnewMomentProto.time = function (time) {\r\n // Fallback to the original method (if there is one) if this moment wasn't created via FullCalendar.\r\n // `time` is a generic enough method name where this precaution is necessary to avoid collisions w/ other plugins.\r\n if (!this._fullCalendar) {\r\n return oldMomentProto.time.apply(this, arguments);\r\n }\r\n if (time == null) { // getter\r\n return moment.duration({\r\n hours: this.hours(),\r\n minutes: this.minutes(),\r\n seconds: this.seconds(),\r\n milliseconds: this.milliseconds()\r\n });\r\n }\r\n else { // setter\r\n this._ambigTime = false; // mark that the moment now has a time\r\n if (!moment.isDuration(time) && !moment.isMoment(time)) {\r\n time = moment.duration(time);\r\n }\r\n // The day value should cause overflow (so 24 hours becomes 00:00:00 of next day).\r\n // Only for Duration times, not Moment times.\r\n var dayHours = 0;\r\n if (moment.isDuration(time)) {\r\n dayHours = Math.floor(time.asDays()) * 24;\r\n }\r\n // We need to set the individual fields.\r\n // Can't use startOf('day') then add duration. In case of DST at start of day.\r\n return this.hours(dayHours + time.hours())\r\n .minutes(time.minutes())\r\n .seconds(time.seconds())\r\n .milliseconds(time.milliseconds());\r\n }\r\n};\r\n// Converts the moment to UTC, stripping out its time-of-day and timezone offset,\r\n// but preserving its YMD. A moment with a stripped time will display no time\r\n// nor timezone offset when .format() is called.\r\nnewMomentProto.stripTime = function () {\r\n if (!this._ambigTime) {\r\n this.utc(true); // keepLocalTime=true (for keeping *date* value)\r\n // set time to zero\r\n this.set({\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0,\r\n ms: 0\r\n });\r\n // Mark the time as ambiguous. This needs to happen after the .utc() call, which might call .utcOffset(),\r\n // which clears all ambig flags.\r\n this._ambigTime = true;\r\n this._ambigZone = true; // if ambiguous time, also ambiguous timezone offset\r\n }\r\n return this; // for chaining\r\n};\r\n// Returns if the moment has a non-ambiguous time (boolean)\r\nnewMomentProto.hasTime = function () {\r\n return !this._ambigTime;\r\n};\r\n// Timezone\r\n// -------------------------------------------------------------------------------------------------\r\n// Converts the moment to UTC, stripping out its timezone offset, but preserving its\r\n// YMD and time-of-day. A moment with a stripped timezone offset will display no\r\n// timezone offset when .format() is called.\r\nnewMomentProto.stripZone = function () {\r\n var wasAmbigTime;\r\n if (!this._ambigZone) {\r\n wasAmbigTime = this._ambigTime;\r\n this.utc(true); // keepLocalTime=true (for keeping date and time values)\r\n // the above call to .utc()/.utcOffset() unfortunately might clear the ambig flags, so restore\r\n this._ambigTime = wasAmbigTime || false;\r\n // Mark the zone as ambiguous. This needs to happen after the .utc() call, which might call .utcOffset(),\r\n // which clears the ambig flags.\r\n this._ambigZone = true;\r\n }\r\n return this; // for chaining\r\n};\r\n// Returns of the moment has a non-ambiguous timezone offset (boolean)\r\nnewMomentProto.hasZone = function () {\r\n return !this._ambigZone;\r\n};\r\n// implicitly marks a zone\r\nnewMomentProto.local = function (keepLocalTime) {\r\n // for when converting from ambiguously-zoned to local,\r\n // keep the time values when converting from UTC -> local\r\n oldMomentProto.local.call(this, this._ambigZone || keepLocalTime);\r\n // ensure non-ambiguous\r\n // this probably already happened via local() -> utcOffset(), but don't rely on Moment's internals\r\n this._ambigTime = false;\r\n this._ambigZone = false;\r\n return this; // for chaining\r\n};\r\n// implicitly marks a zone\r\nnewMomentProto.utc = function (keepLocalTime) {\r\n oldMomentProto.utc.call(this, keepLocalTime);\r\n // ensure non-ambiguous\r\n // this probably already happened via utc() -> utcOffset(), but don't rely on Moment's internals\r\n this._ambigTime = false;\r\n this._ambigZone = false;\r\n return this;\r\n};\r\n// implicitly marks a zone (will probably get called upon .utc() and .local())\r\nnewMomentProto.utcOffset = function (tzo) {\r\n if (tzo != null) { // setter\r\n // these assignments needs to happen before the original zone method is called.\r\n // I forget why, something to do with a browser crash.\r\n this._ambigTime = false;\r\n this._ambigZone = false;\r\n }\r\n return oldMomentProto.utcOffset.apply(this, arguments);\r\n};\r\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*\r\nMeant to be immutable\r\n*/\r\nvar ComponentFootprint = /** @class */ (function () {\r\n function ComponentFootprint(unzonedRange, isAllDay) {\r\n this.isAllDay = false; // component can choose to ignore this\r\n this.unzonedRange = unzonedRange;\r\n this.isAllDay = isAllDay;\r\n }\r\n /*\r\n Only works for non-open-ended ranges.\r\n */\r\n ComponentFootprint.prototype.toLegacy = function (calendar) {\r\n return {\r\n start: calendar.msToMoment(this.unzonedRange.startMs, this.isAllDay),\r\n end: calendar.msToMoment(this.unzonedRange.endMs, this.isAllDay)\r\n };\r\n };\r\n return ComponentFootprint;\r\n}());\r\nexports.default = ComponentFootprint;\r\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\r\nUSAGE:\r\n import { default as EmitterMixin, EmitterInterface } from './EmitterMixin'\r\nin class:\r\n on: EmitterInterface['on']\r\n one: EmitterInterface['one']\r\n off: EmitterInterface['off']\r\n trigger: EmitterInterface['trigger']\r\n triggerWith: EmitterInterface['triggerWith']\r\n hasHandlers: EmitterInterface['hasHandlers']\r\nafter class:\r\n EmitterMixin.mixInto(TheClass)\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar Mixin_1 = __webpack_require__(15);\r\nvar EmitterMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(EmitterMixin, _super);\r\n function EmitterMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // jQuery-ification via $(this) allows a non-DOM object to have\r\n // the same event handling capabilities (including namespaces).\r\n EmitterMixin.prototype.on = function (types, handler) {\r\n $(this).on(types, this._prepareIntercept(handler));\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype.one = function (types, handler) {\r\n $(this).one(types, this._prepareIntercept(handler));\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype._prepareIntercept = function (handler) {\r\n // handlers are always called with an \"event\" object as their first param.\r\n // sneak the `this` context and arguments into the extra parameter object\r\n // and forward them on to the original handler.\r\n var intercept = function (ev, extra) {\r\n return handler.apply(extra.context || this, extra.args || []);\r\n };\r\n // mimick jQuery's internal \"proxy\" system (risky, I know)\r\n // causing all functions with the same .guid to appear to be the same.\r\n // https://github.com/jquery/jquery/blob/2.2.4/src/core.js#L448\r\n // this is needed for calling .off with the original non-intercept handler.\r\n if (!handler.guid) {\r\n handler.guid = $.guid++;\r\n }\r\n intercept.guid = handler.guid;\r\n return intercept;\r\n };\r\n EmitterMixin.prototype.off = function (types, handler) {\r\n $(this).off(types, handler);\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype.trigger = function (types) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n // pass in \"extra\" info to the intercept\r\n $(this).triggerHandler(types, { args: args });\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype.triggerWith = function (types, context, args) {\r\n // `triggerHandler` is less reliant on the DOM compared to `trigger`.\r\n // pass in \"extra\" info to the intercept.\r\n $(this).triggerHandler(types, { context: context, args: args });\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype.hasHandlers = function (type) {\r\n var hash = $._data(this, 'events'); // http://blog.jquery.com/2012/08/09/jquery-1-8-released/\r\n return hash && hash[type] && hash[type].length > 0;\r\n };\r\n return EmitterMixin;\r\n}(Mixin_1.default));\r\nexports.default = EmitterMixin;\r\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Interaction = /** @class */ (function () {\r\n function Interaction(component) {\r\n this.view = component._getView();\r\n this.component = component;\r\n }\r\n Interaction.prototype.opt = function (name) {\r\n return this.view.opt(name);\r\n };\r\n Interaction.prototype.end = function () {\r\n // subclasses can implement\r\n };\r\n return Interaction;\r\n}());\r\nexports.default = Interaction;\r\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Mixin = /** @class */ (function () {\r\n function Mixin() {\r\n }\r\n Mixin.mixInto = function (destClass) {\r\n var _this = this;\r\n Object.getOwnPropertyNames(this.prototype).forEach(function (name) {\r\n if (!destClass.prototype[name]) { // if destination class doesn't already define it\r\n destClass.prototype[name] = _this.prototype[name];\r\n }\r\n });\r\n };\r\n /*\r\n will override existing methods\r\n TODO: remove! not used anymore\r\n */\r\n Mixin.mixOver = function (destClass) {\r\n var _this = this;\r\n Object.getOwnPropertyNames(this.prototype).forEach(function (name) {\r\n destClass.prototype[name] = _this.prototype[name];\r\n });\r\n };\r\n return Mixin;\r\n}());\r\nexports.default = Mixin;\r\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\n/*\r\nMeant to be immutable\r\n*/\r\nvar EventDateProfile = /** @class */ (function () {\r\n function EventDateProfile(start, end, calendar) {\r\n this.start = start;\r\n this.end = end || null;\r\n this.unzonedRange = this.buildUnzonedRange(calendar);\r\n }\r\n /*\r\n Needs an EventSource object\r\n */\r\n EventDateProfile.parse = function (rawProps, source) {\r\n var startInput = rawProps.start || rawProps.date;\r\n var endInput = rawProps.end;\r\n if (!startInput) {\r\n return false;\r\n }\r\n var calendar = source.calendar;\r\n var start = calendar.moment(startInput);\r\n var end = endInput ? calendar.moment(endInput) : null;\r\n var forcedAllDay = rawProps.allDay;\r\n var forceEventDuration = calendar.opt('forceEventDuration');\r\n if (!start.isValid()) {\r\n return false;\r\n }\r\n if (forcedAllDay == null) {\r\n forcedAllDay = source.allDayDefault;\r\n if (forcedAllDay == null) {\r\n forcedAllDay = calendar.opt('allDayDefault');\r\n }\r\n }\r\n if (forcedAllDay === true) {\r\n start.stripTime();\r\n if (end) {\r\n end.stripTime();\r\n }\r\n }\r\n else if (forcedAllDay === false) {\r\n if (!start.hasTime()) {\r\n start.time(0);\r\n }\r\n if (end && !end.hasTime()) {\r\n end.time(0);\r\n }\r\n }\r\n if (end && (!end.isValid() || !end.isAfter(start))) {\r\n end = null;\r\n }\r\n if (!end && forceEventDuration) {\r\n end = calendar.getDefaultEventEnd(!start.hasTime(), start);\r\n }\r\n return new EventDateProfile(start, end, calendar);\r\n };\r\n EventDateProfile.isStandardProp = function (propName) {\r\n return propName === 'start' || propName === 'date' || propName === 'end' || propName === 'allDay';\r\n };\r\n EventDateProfile.prototype.isAllDay = function () {\r\n return !(this.start.hasTime() || (this.end && this.end.hasTime()));\r\n };\r\n /*\r\n Needs a Calendar object\r\n */\r\n EventDateProfile.prototype.buildUnzonedRange = function (calendar) {\r\n var startMs = this.start.clone().stripZone().valueOf();\r\n var endMs = this.getEnd(calendar).stripZone().valueOf();\r\n return new UnzonedRange_1.default(startMs, endMs);\r\n };\r\n /*\r\n Needs a Calendar object\r\n */\r\n EventDateProfile.prototype.getEnd = function (calendar) {\r\n return this.end ?\r\n this.end.clone() :\r\n // derive the end from the start and allDay. compute allDay if necessary\r\n calendar.getDefaultEventEnd(this.isAllDay(), this.start);\r\n };\r\n return EventDateProfile;\r\n}());\r\nexports.default = EventDateProfile;\r\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar DragListener_1 = __webpack_require__(59);\r\n/* Tracks mouse movements over a component and raises events about which hit the mouse is over.\r\n------------------------------------------------------------------------------------------------------------------------\r\noptions:\r\n- subjectEl\r\n- subjectCenter\r\n*/\r\nvar HitDragListener = /** @class */ (function (_super) {\r\n tslib_1.__extends(HitDragListener, _super);\r\n function HitDragListener(component, options) {\r\n var _this = _super.call(this, options) || this;\r\n _this.component = component;\r\n return _this;\r\n }\r\n // Called when drag listening starts (but a real drag has not necessarily began).\r\n // ev might be undefined if dragging was started manually.\r\n HitDragListener.prototype.handleInteractionStart = function (ev) {\r\n var subjectEl = this.subjectEl;\r\n var subjectRect;\r\n var origPoint;\r\n var point;\r\n this.component.hitsNeeded();\r\n this.computeScrollBounds(); // for autoscroll\r\n if (ev) {\r\n origPoint = { left: util_1.getEvX(ev), top: util_1.getEvY(ev) };\r\n point = origPoint;\r\n // constrain the point to bounds of the element being dragged\r\n if (subjectEl) {\r\n subjectRect = util_1.getOuterRect(subjectEl); // used for centering as well\r\n point = util_1.constrainPoint(point, subjectRect);\r\n }\r\n this.origHit = this.queryHit(point.left, point.top);\r\n // treat the center of the subject as the collision point?\r\n if (subjectEl && this.options.subjectCenter) {\r\n // only consider the area the subject overlaps the hit. best for large subjects.\r\n // TODO: skip this if hit didn't supply left/right/top/bottom\r\n if (this.origHit) {\r\n subjectRect = util_1.intersectRects(this.origHit, subjectRect) ||\r\n subjectRect; // in case there is no intersection\r\n }\r\n point = util_1.getRectCenter(subjectRect);\r\n }\r\n this.coordAdjust = util_1.diffPoints(point, origPoint); // point - origPoint\r\n }\r\n else {\r\n this.origHit = null;\r\n this.coordAdjust = null;\r\n }\r\n // call the super-method. do it after origHit has been computed\r\n _super.prototype.handleInteractionStart.call(this, ev);\r\n };\r\n // Called when the actual drag has started\r\n HitDragListener.prototype.handleDragStart = function (ev) {\r\n var hit;\r\n _super.prototype.handleDragStart.call(this, ev);\r\n // might be different from this.origHit if the min-distance is large\r\n hit = this.queryHit(util_1.getEvX(ev), util_1.getEvY(ev));\r\n // report the initial hit the mouse is over\r\n // especially important if no min-distance and drag starts immediately\r\n if (hit) {\r\n this.handleHitOver(hit);\r\n }\r\n };\r\n // Called when the drag moves\r\n HitDragListener.prototype.handleDrag = function (dx, dy, ev) {\r\n var hit;\r\n _super.prototype.handleDrag.call(this, dx, dy, ev);\r\n hit = this.queryHit(util_1.getEvX(ev), util_1.getEvY(ev));\r\n if (!isHitsEqual(hit, this.hit)) { // a different hit than before?\r\n if (this.hit) {\r\n this.handleHitOut();\r\n }\r\n if (hit) {\r\n this.handleHitOver(hit);\r\n }\r\n }\r\n };\r\n // Called when dragging has been stopped\r\n HitDragListener.prototype.handleDragEnd = function (ev) {\r\n this.handleHitDone();\r\n _super.prototype.handleDragEnd.call(this, ev);\r\n };\r\n // Called when a the mouse has just moved over a new hit\r\n HitDragListener.prototype.handleHitOver = function (hit) {\r\n var isOrig = isHitsEqual(hit, this.origHit);\r\n this.hit = hit;\r\n this.trigger('hitOver', this.hit, isOrig, this.origHit);\r\n };\r\n // Called when the mouse has just moved out of a hit\r\n HitDragListener.prototype.handleHitOut = function () {\r\n if (this.hit) {\r\n this.trigger('hitOut', this.hit);\r\n this.handleHitDone();\r\n this.hit = null;\r\n }\r\n };\r\n // Called after a hitOut. Also called before a dragStop\r\n HitDragListener.prototype.handleHitDone = function () {\r\n if (this.hit) {\r\n this.trigger('hitDone', this.hit);\r\n }\r\n };\r\n // Called when the interaction ends, whether there was a real drag or not\r\n HitDragListener.prototype.handleInteractionEnd = function (ev, isCancelled) {\r\n _super.prototype.handleInteractionEnd.call(this, ev, isCancelled);\r\n this.origHit = null;\r\n this.hit = null;\r\n this.component.hitsNotNeeded();\r\n };\r\n // Called when scrolling has stopped, whether through auto scroll, or the user scrolling\r\n HitDragListener.prototype.handleScrollEnd = function () {\r\n _super.prototype.handleScrollEnd.call(this);\r\n // hits' absolute positions will be in new places after a user's scroll.\r\n // HACK for recomputing.\r\n if (this.isDragging) {\r\n this.component.releaseHits();\r\n this.component.prepareHits();\r\n }\r\n };\r\n // Gets the hit underneath the coordinates for the given mouse event\r\n HitDragListener.prototype.queryHit = function (left, top) {\r\n if (this.coordAdjust) {\r\n left += this.coordAdjust.left;\r\n top += this.coordAdjust.top;\r\n }\r\n return this.component.queryHit(left, top);\r\n };\r\n return HitDragListener;\r\n}(DragListener_1.default));\r\nexports.default = HitDragListener;\r\n// Returns `true` if the hits are identically equal. `false` otherwise. Must be from the same component.\r\n// Two null values will be considered equal, as two \"out of the component\" states are the same.\r\nfunction isHitsEqual(hit0, hit1) {\r\n if (!hit0 && !hit1) {\r\n return true;\r\n }\r\n if (hit0 && hit1) {\r\n return hit0.component === hit1.component &&\r\n isHitPropsWithin(hit0, hit1) &&\r\n isHitPropsWithin(hit1, hit0); // ensures all props are identical\r\n }\r\n return false;\r\n}\r\n// Returns true if all of subHit's non-standard properties are within superHit\r\nfunction isHitPropsWithin(subHit, superHit) {\r\n for (var propName in subHit) {\r\n if (!/^(component|left|right|top|bottom)$/.test(propName)) {\r\n if (subHit[propName] !== superHit[propName]) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.version = '3.10.1';\r\n// When introducing internal API incompatibilities (where fullcalendar plugins would break),\r\n// the minor version of the calendar should be upped (ex: 2.7.2 -> 2.8.0)\r\n// and the below integer should be incremented.\r\nexports.internalApiVersion = 12;\r\nvar util_1 = __webpack_require__(4);\r\nexports.applyAll = util_1.applyAll;\r\nexports.debounce = util_1.debounce;\r\nexports.isInt = util_1.isInt;\r\nexports.htmlEscape = util_1.htmlEscape;\r\nexports.cssToStr = util_1.cssToStr;\r\nexports.proxy = util_1.proxy;\r\nexports.capitaliseFirstLetter = util_1.capitaliseFirstLetter;\r\nexports.getOuterRect = util_1.getOuterRect;\r\nexports.getClientRect = util_1.getClientRect;\r\nexports.getContentRect = util_1.getContentRect;\r\nexports.getScrollbarWidths = util_1.getScrollbarWidths;\r\nexports.preventDefault = util_1.preventDefault;\r\nexports.parseFieldSpecs = util_1.parseFieldSpecs;\r\nexports.compareByFieldSpecs = util_1.compareByFieldSpecs;\r\nexports.compareByFieldSpec = util_1.compareByFieldSpec;\r\nexports.flexibleCompare = util_1.flexibleCompare;\r\nexports.computeGreatestUnit = util_1.computeGreatestUnit;\r\nexports.divideRangeByDuration = util_1.divideRangeByDuration;\r\nexports.divideDurationByDuration = util_1.divideDurationByDuration;\r\nexports.multiplyDuration = util_1.multiplyDuration;\r\nexports.durationHasTime = util_1.durationHasTime;\r\nexports.log = util_1.log;\r\nexports.warn = util_1.warn;\r\nexports.removeExact = util_1.removeExact;\r\nexports.intersectRects = util_1.intersectRects;\r\nexports.allowSelection = util_1.allowSelection;\r\nexports.attrsToStr = util_1.attrsToStr;\r\nexports.compareNumbers = util_1.compareNumbers;\r\nexports.compensateScroll = util_1.compensateScroll;\r\nexports.computeDurationGreatestUnit = util_1.computeDurationGreatestUnit;\r\nexports.constrainPoint = util_1.constrainPoint;\r\nexports.copyOwnProps = util_1.copyOwnProps;\r\nexports.diffByUnit = util_1.diffByUnit;\r\nexports.diffDay = util_1.diffDay;\r\nexports.diffDayTime = util_1.diffDayTime;\r\nexports.diffPoints = util_1.diffPoints;\r\nexports.disableCursor = util_1.disableCursor;\r\nexports.distributeHeight = util_1.distributeHeight;\r\nexports.enableCursor = util_1.enableCursor;\r\nexports.firstDefined = util_1.firstDefined;\r\nexports.getEvIsTouch = util_1.getEvIsTouch;\r\nexports.getEvX = util_1.getEvX;\r\nexports.getEvY = util_1.getEvY;\r\nexports.getRectCenter = util_1.getRectCenter;\r\nexports.getScrollParent = util_1.getScrollParent;\r\nexports.hasOwnProp = util_1.hasOwnProp;\r\nexports.isArraysEqual = util_1.isArraysEqual;\r\nexports.isNativeDate = util_1.isNativeDate;\r\nexports.isPrimaryMouseButton = util_1.isPrimaryMouseButton;\r\nexports.isTimeString = util_1.isTimeString;\r\nexports.matchCellWidths = util_1.matchCellWidths;\r\nexports.mergeProps = util_1.mergeProps;\r\nexports.preventSelection = util_1.preventSelection;\r\nexports.removeMatching = util_1.removeMatching;\r\nexports.stripHtmlEntities = util_1.stripHtmlEntities;\r\nexports.subtractInnerElHeight = util_1.subtractInnerElHeight;\r\nexports.uncompensateScroll = util_1.uncompensateScroll;\r\nexports.undistributeHeight = util_1.undistributeHeight;\r\nexports.dayIDs = util_1.dayIDs;\r\nexports.unitsDesc = util_1.unitsDesc;\r\nvar date_formatting_1 = __webpack_require__(49);\r\nexports.formatDate = date_formatting_1.formatDate;\r\nexports.formatRange = date_formatting_1.formatRange;\r\nexports.queryMostGranularFormatUnit = date_formatting_1.queryMostGranularFormatUnit;\r\nvar locale_1 = __webpack_require__(32);\r\nexports.datepickerLocale = locale_1.datepickerLocale;\r\nexports.locale = locale_1.locale;\r\nexports.getMomentLocaleData = locale_1.getMomentLocaleData;\r\nexports.populateInstanceComputableOptions = locale_1.populateInstanceComputableOptions;\r\nvar util_2 = __webpack_require__(19);\r\nexports.eventDefsToEventInstances = util_2.eventDefsToEventInstances;\r\nexports.eventFootprintToComponentFootprint = util_2.eventFootprintToComponentFootprint;\r\nexports.eventInstanceToEventRange = util_2.eventInstanceToEventRange;\r\nexports.eventInstanceToUnzonedRange = util_2.eventInstanceToUnzonedRange;\r\nexports.eventRangeToEventFootprint = util_2.eventRangeToEventFootprint;\r\nvar moment_ext_1 = __webpack_require__(11);\r\nexports.moment = moment_ext_1.default;\r\nvar EmitterMixin_1 = __webpack_require__(13);\r\nexports.EmitterMixin = EmitterMixin_1.default;\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nexports.ListenerMixin = ListenerMixin_1.default;\r\nvar Model_1 = __webpack_require__(51);\r\nexports.Model = Model_1.default;\r\nvar Constraints_1 = __webpack_require__(217);\r\nexports.Constraints = Constraints_1.default;\r\nvar DateProfileGenerator_1 = __webpack_require__(55);\r\nexports.DateProfileGenerator = DateProfileGenerator_1.default;\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nexports.UnzonedRange = UnzonedRange_1.default;\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nexports.ComponentFootprint = ComponentFootprint_1.default;\r\nvar BusinessHourGenerator_1 = __webpack_require__(218);\r\nexports.BusinessHourGenerator = BusinessHourGenerator_1.default;\r\nvar EventPeriod_1 = __webpack_require__(219);\r\nexports.EventPeriod = EventPeriod_1.default;\r\nvar EventManager_1 = __webpack_require__(220);\r\nexports.EventManager = EventManager_1.default;\r\nvar EventDef_1 = __webpack_require__(37);\r\nexports.EventDef = EventDef_1.default;\r\nvar EventDefMutation_1 = __webpack_require__(39);\r\nexports.EventDefMutation = EventDefMutation_1.default;\r\nvar EventDefParser_1 = __webpack_require__(36);\r\nexports.EventDefParser = EventDefParser_1.default;\r\nvar EventInstance_1 = __webpack_require__(53);\r\nexports.EventInstance = EventInstance_1.default;\r\nvar EventRange_1 = __webpack_require__(50);\r\nexports.EventRange = EventRange_1.default;\r\nvar RecurringEventDef_1 = __webpack_require__(54);\r\nexports.RecurringEventDef = RecurringEventDef_1.default;\r\nvar SingleEventDef_1 = __webpack_require__(9);\r\nexports.SingleEventDef = SingleEventDef_1.default;\r\nvar EventDefDateMutation_1 = __webpack_require__(40);\r\nexports.EventDefDateMutation = EventDefDateMutation_1.default;\r\nvar EventDateProfile_1 = __webpack_require__(16);\r\nexports.EventDateProfile = EventDateProfile_1.default;\r\nvar EventSourceParser_1 = __webpack_require__(38);\r\nexports.EventSourceParser = EventSourceParser_1.default;\r\nvar EventSource_1 = __webpack_require__(6);\r\nexports.EventSource = EventSource_1.default;\r\nvar ThemeRegistry_1 = __webpack_require__(57);\r\nexports.defineThemeSystem = ThemeRegistry_1.defineThemeSystem;\r\nexports.getThemeSystemClass = ThemeRegistry_1.getThemeSystemClass;\r\nvar EventInstanceGroup_1 = __webpack_require__(20);\r\nexports.EventInstanceGroup = EventInstanceGroup_1.default;\r\nvar ArrayEventSource_1 = __webpack_require__(56);\r\nexports.ArrayEventSource = ArrayEventSource_1.default;\r\nvar FuncEventSource_1 = __webpack_require__(223);\r\nexports.FuncEventSource = FuncEventSource_1.default;\r\nvar JsonFeedEventSource_1 = __webpack_require__(224);\r\nexports.JsonFeedEventSource = JsonFeedEventSource_1.default;\r\nvar EventFootprint_1 = __webpack_require__(34);\r\nexports.EventFootprint = EventFootprint_1.default;\r\nvar Class_1 = __webpack_require__(35);\r\nexports.Class = Class_1.default;\r\nvar Mixin_1 = __webpack_require__(15);\r\nexports.Mixin = Mixin_1.default;\r\nvar CoordCache_1 = __webpack_require__(58);\r\nexports.CoordCache = CoordCache_1.default;\r\nvar Iterator_1 = __webpack_require__(225);\r\nexports.Iterator = Iterator_1.default;\r\nvar DragListener_1 = __webpack_require__(59);\r\nexports.DragListener = DragListener_1.default;\r\nvar HitDragListener_1 = __webpack_require__(17);\r\nexports.HitDragListener = HitDragListener_1.default;\r\nvar MouseFollower_1 = __webpack_require__(226);\r\nexports.MouseFollower = MouseFollower_1.default;\r\nvar ParsableModelMixin_1 = __webpack_require__(52);\r\nexports.ParsableModelMixin = ParsableModelMixin_1.default;\r\nvar Popover_1 = __webpack_require__(227);\r\nexports.Popover = Popover_1.default;\r\nvar Promise_1 = __webpack_require__(21);\r\nexports.Promise = Promise_1.default;\r\nvar TaskQueue_1 = __webpack_require__(228);\r\nexports.TaskQueue = TaskQueue_1.default;\r\nvar RenderQueue_1 = __webpack_require__(229);\r\nexports.RenderQueue = RenderQueue_1.default;\r\nvar Scroller_1 = __webpack_require__(41);\r\nexports.Scroller = Scroller_1.default;\r\nvar Theme_1 = __webpack_require__(22);\r\nexports.Theme = Theme_1.default;\r\nvar Component_1 = __webpack_require__(230);\r\nexports.Component = Component_1.default;\r\nvar DateComponent_1 = __webpack_require__(231);\r\nexports.DateComponent = DateComponent_1.default;\r\nvar InteractiveDateComponent_1 = __webpack_require__(42);\r\nexports.InteractiveDateComponent = InteractiveDateComponent_1.default;\r\nvar Calendar_1 = __webpack_require__(232);\r\nexports.Calendar = Calendar_1.default;\r\nvar View_1 = __webpack_require__(43);\r\nexports.View = View_1.default;\r\nvar ViewRegistry_1 = __webpack_require__(24);\r\nexports.defineView = ViewRegistry_1.defineView;\r\nexports.getViewConfig = ViewRegistry_1.getViewConfig;\r\nvar DayTableMixin_1 = __webpack_require__(60);\r\nexports.DayTableMixin = DayTableMixin_1.default;\r\nvar BusinessHourRenderer_1 = __webpack_require__(61);\r\nexports.BusinessHourRenderer = BusinessHourRenderer_1.default;\r\nvar EventRenderer_1 = __webpack_require__(44);\r\nexports.EventRenderer = EventRenderer_1.default;\r\nvar FillRenderer_1 = __webpack_require__(62);\r\nexports.FillRenderer = FillRenderer_1.default;\r\nvar HelperRenderer_1 = __webpack_require__(63);\r\nexports.HelperRenderer = HelperRenderer_1.default;\r\nvar ExternalDropping_1 = __webpack_require__(233);\r\nexports.ExternalDropping = ExternalDropping_1.default;\r\nvar EventResizing_1 = __webpack_require__(234);\r\nexports.EventResizing = EventResizing_1.default;\r\nvar EventPointing_1 = __webpack_require__(64);\r\nexports.EventPointing = EventPointing_1.default;\r\nvar EventDragging_1 = __webpack_require__(235);\r\nexports.EventDragging = EventDragging_1.default;\r\nvar DateSelecting_1 = __webpack_require__(236);\r\nexports.DateSelecting = DateSelecting_1.default;\r\nvar DateClicking_1 = __webpack_require__(237);\r\nexports.DateClicking = DateClicking_1.default;\r\nvar Interaction_1 = __webpack_require__(14);\r\nexports.Interaction = Interaction_1.default;\r\nvar StandardInteractionsMixin_1 = __webpack_require__(65);\r\nexports.StandardInteractionsMixin = StandardInteractionsMixin_1.default;\r\nvar AgendaView_1 = __webpack_require__(238);\r\nexports.AgendaView = AgendaView_1.default;\r\nvar TimeGrid_1 = __webpack_require__(239);\r\nexports.TimeGrid = TimeGrid_1.default;\r\nvar TimeGridEventRenderer_1 = __webpack_require__(240);\r\nexports.TimeGridEventRenderer = TimeGridEventRenderer_1.default;\r\nvar TimeGridFillRenderer_1 = __webpack_require__(242);\r\nexports.TimeGridFillRenderer = TimeGridFillRenderer_1.default;\r\nvar TimeGridHelperRenderer_1 = __webpack_require__(241);\r\nexports.TimeGridHelperRenderer = TimeGridHelperRenderer_1.default;\r\nvar DayGrid_1 = __webpack_require__(66);\r\nexports.DayGrid = DayGrid_1.default;\r\nvar DayGridEventRenderer_1 = __webpack_require__(243);\r\nexports.DayGridEventRenderer = DayGridEventRenderer_1.default;\r\nvar DayGridFillRenderer_1 = __webpack_require__(245);\r\nexports.DayGridFillRenderer = DayGridFillRenderer_1.default;\r\nvar DayGridHelperRenderer_1 = __webpack_require__(244);\r\nexports.DayGridHelperRenderer = DayGridHelperRenderer_1.default;\r\nvar BasicView_1 = __webpack_require__(67);\r\nexports.BasicView = BasicView_1.default;\r\nvar BasicViewDateProfileGenerator_1 = __webpack_require__(68);\r\nexports.BasicViewDateProfileGenerator = BasicViewDateProfileGenerator_1.default;\r\nvar MonthView_1 = __webpack_require__(246);\r\nexports.MonthView = MonthView_1.default;\r\nvar MonthViewDateProfileGenerator_1 = __webpack_require__(247);\r\nexports.MonthViewDateProfileGenerator = MonthViewDateProfileGenerator_1.default;\r\nvar ListView_1 = __webpack_require__(248);\r\nexports.ListView = ListView_1.default;\r\nvar ListEventPointing_1 = __webpack_require__(250);\r\nexports.ListEventPointing = ListEventPointing_1.default;\r\nvar ListEventRenderer_1 = __webpack_require__(249);\r\nexports.ListEventRenderer = ListEventRenderer_1.default;\r\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventRange_1 = __webpack_require__(50);\r\nvar EventFootprint_1 = __webpack_require__(34);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nfunction eventDefsToEventInstances(eventDefs, unzonedRange) {\r\n var eventInstances = [];\r\n var i;\r\n for (i = 0; i < eventDefs.length; i++) {\r\n eventInstances.push.apply(eventInstances, // append\r\n eventDefs[i].buildInstances(unzonedRange));\r\n }\r\n return eventInstances;\r\n}\r\nexports.eventDefsToEventInstances = eventDefsToEventInstances;\r\nfunction eventInstanceToEventRange(eventInstance) {\r\n return new EventRange_1.default(eventInstance.dateProfile.unzonedRange, eventInstance.def, eventInstance);\r\n}\r\nexports.eventInstanceToEventRange = eventInstanceToEventRange;\r\nfunction eventRangeToEventFootprint(eventRange) {\r\n return new EventFootprint_1.default(new ComponentFootprint_1.default(eventRange.unzonedRange, eventRange.eventDef.isAllDay()), eventRange.eventDef, eventRange.eventInstance // might not exist\r\n );\r\n}\r\nexports.eventRangeToEventFootprint = eventRangeToEventFootprint;\r\nfunction eventInstanceToUnzonedRange(eventInstance) {\r\n return eventInstance.dateProfile.unzonedRange;\r\n}\r\nexports.eventInstanceToUnzonedRange = eventInstanceToUnzonedRange;\r\nfunction eventFootprintToComponentFootprint(eventFootprint) {\r\n return eventFootprint.componentFootprint;\r\n}\r\nexports.eventFootprintToComponentFootprint = eventFootprintToComponentFootprint;\r\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar util_1 = __webpack_require__(19);\r\nvar EventRange_1 = __webpack_require__(50);\r\n/*\r\nIt's expected that there will be at least one EventInstance,\r\nOR that an explicitEventDef is assigned.\r\n*/\r\nvar EventInstanceGroup = /** @class */ (function () {\r\n function EventInstanceGroup(eventInstances) {\r\n this.eventInstances = eventInstances || [];\r\n }\r\n EventInstanceGroup.prototype.getAllEventRanges = function (constraintRange) {\r\n if (constraintRange) {\r\n return this.sliceNormalRenderRanges(constraintRange);\r\n }\r\n else {\r\n return this.eventInstances.map(util_1.eventInstanceToEventRange);\r\n }\r\n };\r\n EventInstanceGroup.prototype.sliceRenderRanges = function (constraintRange) {\r\n if (this.isInverse()) {\r\n return this.sliceInverseRenderRanges(constraintRange);\r\n }\r\n else {\r\n return this.sliceNormalRenderRanges(constraintRange);\r\n }\r\n };\r\n EventInstanceGroup.prototype.sliceNormalRenderRanges = function (constraintRange) {\r\n var eventInstances = this.eventInstances;\r\n var i;\r\n var eventInstance;\r\n var slicedRange;\r\n var slicedEventRanges = [];\r\n for (i = 0; i < eventInstances.length; i++) {\r\n eventInstance = eventInstances[i];\r\n slicedRange = eventInstance.dateProfile.unzonedRange.intersect(constraintRange);\r\n if (slicedRange) {\r\n slicedEventRanges.push(new EventRange_1.default(slicedRange, eventInstance.def, eventInstance));\r\n }\r\n }\r\n return slicedEventRanges;\r\n };\r\n EventInstanceGroup.prototype.sliceInverseRenderRanges = function (constraintRange) {\r\n var unzonedRanges = this.eventInstances.map(util_1.eventInstanceToUnzonedRange);\r\n var ownerDef = this.getEventDef();\r\n unzonedRanges = UnzonedRange_1.default.invertRanges(unzonedRanges, constraintRange);\r\n return unzonedRanges.map(function (unzonedRange) {\r\n return new EventRange_1.default(unzonedRange, ownerDef); // don't give an EventInstance\r\n });\r\n };\r\n EventInstanceGroup.prototype.isInverse = function () {\r\n return this.getEventDef().hasInverseRendering();\r\n };\r\n EventInstanceGroup.prototype.getEventDef = function () {\r\n return this.explicitEventDef || this.eventInstances[0].def;\r\n };\r\n return EventInstanceGroup;\r\n}());\r\nexports.default = EventInstanceGroup;\r\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar PromiseStub = {\r\n construct: function (executor) {\r\n var deferred = $.Deferred();\r\n var promise = deferred.promise();\r\n if (typeof executor === 'function') {\r\n executor(function (val) {\r\n deferred.resolve(val);\r\n attachImmediatelyResolvingThen(promise, val);\r\n }, function () {\r\n deferred.reject();\r\n attachImmediatelyRejectingThen(promise);\r\n });\r\n }\r\n return promise;\r\n },\r\n resolve: function (val) {\r\n var deferred = $.Deferred().resolve(val);\r\n var promise = deferred.promise();\r\n attachImmediatelyResolvingThen(promise, val);\r\n return promise;\r\n },\r\n reject: function () {\r\n var deferred = $.Deferred().reject();\r\n var promise = deferred.promise();\r\n attachImmediatelyRejectingThen(promise);\r\n return promise;\r\n }\r\n};\r\nexports.default = PromiseStub;\r\nfunction attachImmediatelyResolvingThen(promise, val) {\r\n promise.then = function (onResolve) {\r\n if (typeof onResolve === 'function') {\r\n return PromiseStub.resolve(onResolve(val));\r\n }\r\n return promise;\r\n };\r\n}\r\nfunction attachImmediatelyRejectingThen(promise) {\r\n promise.then = function (onResolve, onReject) {\r\n if (typeof onReject === 'function') {\r\n onReject();\r\n }\r\n return promise;\r\n };\r\n}\r\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar Theme = /** @class */ (function () {\r\n function Theme(optionsManager) {\r\n this.optionsManager = optionsManager;\r\n this.processIconOverride();\r\n }\r\n Theme.prototype.processIconOverride = function () {\r\n if (this.iconOverrideOption) {\r\n this.setIconOverride(this.optionsManager.get(this.iconOverrideOption));\r\n }\r\n };\r\n Theme.prototype.setIconOverride = function (iconOverrideHash) {\r\n var iconClassesCopy;\r\n var buttonName;\r\n if ($.isPlainObject(iconOverrideHash)) {\r\n iconClassesCopy = $.extend({}, this.iconClasses);\r\n for (buttonName in iconOverrideHash) {\r\n iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]);\r\n }\r\n this.iconClasses = iconClassesCopy;\r\n }\r\n else if (iconOverrideHash === false) {\r\n this.iconClasses = {};\r\n }\r\n };\r\n Theme.prototype.applyIconOverridePrefix = function (className) {\r\n var prefix = this.iconOverridePrefix;\r\n if (prefix && className.indexOf(prefix) !== 0) { // if not already present\r\n className = prefix + className;\r\n }\r\n return className;\r\n };\r\n Theme.prototype.getClass = function (key) {\r\n return this.classes[key] || '';\r\n };\r\n Theme.prototype.getIconClass = function (buttonName) {\r\n var className = this.iconClasses[buttonName];\r\n if (className) {\r\n return this.baseIconClass + ' ' + className;\r\n }\r\n return '';\r\n };\r\n Theme.prototype.getCustomButtonIconClass = function (customButtonProps) {\r\n var className;\r\n if (this.iconOverrideCustomButtonOption) {\r\n className = customButtonProps[this.iconOverrideCustomButtonOption];\r\n if (className) {\r\n return this.baseIconClass + ' ' + this.applyIconOverridePrefix(className);\r\n }\r\n }\r\n return '';\r\n };\r\n return Theme;\r\n}());\r\nexports.default = Theme;\r\nTheme.prototype.classes = {};\r\nTheme.prototype.iconClasses = {};\r\nTheme.prototype.baseIconClass = '';\r\nTheme.prototype.iconOverridePrefix = '';\r\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar exportHooks = __webpack_require__(18);\r\nvar EmitterMixin_1 = __webpack_require__(13);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nexportHooks.touchMouseIgnoreWait = 500;\r\nvar globalEmitter = null;\r\nvar neededCount = 0;\r\n/*\r\nListens to document and window-level user-interaction events, like touch events and mouse events,\r\nand fires these events as-is to whoever is observing a GlobalEmitter.\r\nBest when used as a singleton via GlobalEmitter.get()\r\n\nNormalizes mouse/touch events. For examples:\r\n- ignores the the simulated mouse events that happen after a quick tap: mousemove+mousedown+mouseup+click\r\n- compensates for various buggy scenarios where a touchend does not fire\r\n*/\r\nvar GlobalEmitter = /** @class */ (function () {\r\n function GlobalEmitter() {\r\n this.isTouching = false;\r\n this.mouseIgnoreDepth = 0;\r\n }\r\n // gets the singleton\r\n GlobalEmitter.get = function () {\r\n if (!globalEmitter) {\r\n globalEmitter = new GlobalEmitter();\r\n globalEmitter.bind();\r\n }\r\n return globalEmitter;\r\n };\r\n // called when an object knows it will need a GlobalEmitter in the near future.\r\n GlobalEmitter.needed = function () {\r\n GlobalEmitter.get(); // ensures globalEmitter\r\n neededCount++;\r\n };\r\n // called when the object that originally called needed() doesn't need a GlobalEmitter anymore.\r\n GlobalEmitter.unneeded = function () {\r\n neededCount--;\r\n if (!neededCount) { // nobody else needs it\r\n globalEmitter.unbind();\r\n globalEmitter = null;\r\n }\r\n };\r\n GlobalEmitter.prototype.bind = function () {\r\n var _this = this;\r\n this.listenTo($(document), {\r\n touchstart: this.handleTouchStart,\r\n touchcancel: this.handleTouchCancel,\r\n touchend: this.handleTouchEnd,\r\n mousedown: this.handleMouseDown,\r\n mousemove: this.handleMouseMove,\r\n mouseup: this.handleMouseUp,\r\n click: this.handleClick,\r\n selectstart: this.handleSelectStart,\r\n contextmenu: this.handleContextMenu\r\n });\r\n // because we need to call preventDefault\r\n // because https://www.chromestatus.com/features/5093566007214080\r\n // TODO: investigate performance because this is a global handler\r\n window.addEventListener('touchmove', this.handleTouchMoveProxy = function (ev) {\r\n _this.handleTouchMove($.Event(ev));\r\n }, { passive: false } // allows preventDefault()\r\n );\r\n // attach a handler to get called when ANY scroll action happens on the page.\r\n // this was impossible to do with normal on/off because 'scroll' doesn't bubble.\r\n // http://stackoverflow.com/a/32954565/96342\r\n window.addEventListener('scroll', this.handleScrollProxy = function (ev) {\r\n _this.handleScroll($.Event(ev));\r\n }, true // useCapture\r\n );\r\n };\r\n GlobalEmitter.prototype.unbind = function () {\r\n this.stopListeningTo($(document));\r\n window.removeEventListener('touchmove', this.handleTouchMoveProxy, { passive: false } // use same options as addEventListener\r\n );\r\n window.removeEventListener('scroll', this.handleScrollProxy, true // useCapture\r\n );\r\n };\r\n // Touch Handlers\r\n // -----------------------------------------------------------------------------------------------------------------\r\n GlobalEmitter.prototype.handleTouchStart = function (ev) {\r\n // if a previous touch interaction never ended with a touchend, then implicitly end it,\r\n // but since a new touch interaction is about to begin, don't start the mouse ignore period.\r\n this.stopTouch(ev, true); // skipMouseIgnore=true\r\n this.isTouching = true;\r\n this.trigger('touchstart', ev);\r\n };\r\n GlobalEmitter.prototype.handleTouchMove = function (ev) {\r\n if (this.isTouching) {\r\n this.trigger('touchmove', ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleTouchCancel = function (ev) {\r\n if (this.isTouching) {\r\n this.trigger('touchcancel', ev);\r\n // Have touchcancel fire an artificial touchend. That way, handlers won't need to listen to both.\r\n // If touchend fires later, it won't have any effect b/c isTouching will be false.\r\n this.stopTouch(ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleTouchEnd = function (ev) {\r\n this.stopTouch(ev);\r\n };\r\n // Mouse Handlers\r\n // -----------------------------------------------------------------------------------------------------------------\r\n GlobalEmitter.prototype.handleMouseDown = function (ev) {\r\n if (!this.shouldIgnoreMouse()) {\r\n this.trigger('mousedown', ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleMouseMove = function (ev) {\r\n if (!this.shouldIgnoreMouse()) {\r\n this.trigger('mousemove', ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleMouseUp = function (ev) {\r\n if (!this.shouldIgnoreMouse()) {\r\n this.trigger('mouseup', ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleClick = function (ev) {\r\n if (!this.shouldIgnoreMouse()) {\r\n this.trigger('click', ev);\r\n }\r\n };\r\n // Misc Handlers\r\n // -----------------------------------------------------------------------------------------------------------------\r\n GlobalEmitter.prototype.handleSelectStart = function (ev) {\r\n this.trigger('selectstart', ev);\r\n };\r\n GlobalEmitter.prototype.handleContextMenu = function (ev) {\r\n this.trigger('contextmenu', ev);\r\n };\r\n GlobalEmitter.prototype.handleScroll = function (ev) {\r\n this.trigger('scroll', ev);\r\n };\r\n // Utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n GlobalEmitter.prototype.stopTouch = function (ev, skipMouseIgnore) {\r\n if (skipMouseIgnore === void 0) { skipMouseIgnore = false; }\r\n if (this.isTouching) {\r\n this.isTouching = false;\r\n this.trigger('touchend', ev);\r\n if (!skipMouseIgnore) {\r\n this.startTouchMouseIgnore();\r\n }\r\n }\r\n };\r\n GlobalEmitter.prototype.startTouchMouseIgnore = function () {\r\n var _this = this;\r\n var wait = exportHooks.touchMouseIgnoreWait;\r\n if (wait) {\r\n this.mouseIgnoreDepth++;\r\n setTimeout(function () {\r\n _this.mouseIgnoreDepth--;\r\n }, wait);\r\n }\r\n };\r\n GlobalEmitter.prototype.shouldIgnoreMouse = function () {\r\n return this.isTouching || Boolean(this.mouseIgnoreDepth);\r\n };\r\n return GlobalEmitter;\r\n}());\r\nexports.default = GlobalEmitter;\r\nListenerMixin_1.default.mixInto(GlobalEmitter);\r\nEmitterMixin_1.default.mixInto(GlobalEmitter);\r\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar exportHooks = __webpack_require__(18);\r\nexports.viewHash = {};\r\nexportHooks.views = exports.viewHash;\r\nfunction defineView(viewName, viewConfig) {\r\n exports.viewHash[viewName] = viewConfig;\r\n}\r\nexports.defineView = defineView;\r\nfunction getViewConfig(viewName) {\r\n return exports.viewHash[viewName];\r\n}\r\nexports.getViewConfig = getViewConfig;\r\n\n\n/***/ }),\n/* 25 */,\n/* 26 */,\n/* 27 */,\n/* 28 */,\n/* 29 */,\n/* 30 */,\n/* 31 */,\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar exportHooks = __webpack_require__(18);\r\nvar options_1 = __webpack_require__(33);\r\nvar util_1 = __webpack_require__(4);\r\nexports.localeOptionHash = {};\r\nexportHooks.locales = exports.localeOptionHash;\r\n// NOTE: can't guarantee any of these computations will run because not every locale has datepicker\r\n// configs, so make sure there are English fallbacks for these in the defaults file.\r\nvar dpComputableOptions = {\r\n buttonText: function (dpOptions) {\r\n return {\r\n // the translations sometimes wrongly contain HTML entities\r\n prev: util_1.stripHtmlEntities(dpOptions.prevText),\r\n next: util_1.stripHtmlEntities(dpOptions.nextText),\r\n today: util_1.stripHtmlEntities(dpOptions.currentText)\r\n };\r\n },\r\n // Produces format strings like \"MMMM YYYY\" -> \"September 2014\"\r\n monthYearFormat: function (dpOptions) {\r\n return dpOptions.showMonthAfterYear ?\r\n 'YYYY[' + dpOptions.yearSuffix + '] MMMM' :\r\n 'MMMM YYYY[' + dpOptions.yearSuffix + ']';\r\n }\r\n};\r\nvar momComputableOptions = {\r\n // Produces format strings like \"ddd M/D\" -> \"Fri 9/15\"\r\n dayOfMonthFormat: function (momOptions, fcOptions) {\r\n var format = momOptions.longDateFormat('l'); // for the format like \"M/D/YYYY\"\r\n // strip the year off the edge, as well as other misc non-whitespace chars\r\n format = format.replace(/^Y+[^\\w\\s]*|[^\\w\\s]*Y+$/g, '');\r\n if (fcOptions.isRTL) {\r\n format += ' ddd'; // for RTL, add day-of-week to end\r\n }\r\n else {\r\n format = 'ddd ' + format; // for LTR, add day-of-week to beginning\r\n }\r\n return format;\r\n },\r\n // Produces format strings like \"h:mma\" -> \"6:00pm\"\r\n mediumTimeFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(/\\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand\r\n },\r\n // Produces format strings like \"h(:mm)a\" -> \"6pm\" / \"6:30pm\"\r\n smallTimeFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(':mm', '(:mm)')\r\n .replace(/(\\Wmm)$/, '($1)') // like above, but for foreign locales\r\n .replace(/\\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand\r\n },\r\n // Produces format strings like \"h(:mm)t\" -> \"6p\" / \"6:30p\"\r\n extraSmallTimeFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(':mm', '(:mm)')\r\n .replace(/(\\Wmm)$/, '($1)') // like above, but for foreign locales\r\n .replace(/\\s*a$/i, 't'); // convert to AM/PM/am/pm to lowercase one-letter. remove any spaces beforehand\r\n },\r\n // Produces format strings like \"ha\" / \"H\" -> \"6pm\" / \"18\"\r\n hourFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(':mm', '')\r\n .replace(/(\\Wmm)$/, '') // like above, but for foreign locales\r\n .replace(/\\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand\r\n },\r\n // Produces format strings like \"h:mm\" -> \"6:30\" (with no AM/PM)\r\n noMeridiemTimeFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(/\\s*a$/i, ''); // remove trailing AM/PM\r\n }\r\n};\r\n// options that should be computed off live calendar options (considers override options)\r\n// TODO: best place for this? related to locale?\r\n// TODO: flipping text based on isRTL is a bad idea because the CSS `direction` might want to handle it\r\nvar instanceComputableOptions = {\r\n // Produces format strings for results like \"Mo 16\"\r\n smallDayDateFormat: function (options) {\r\n return options.isRTL ?\r\n 'D dd' :\r\n 'dd D';\r\n },\r\n // Produces format strings for results like \"Wk 5\"\r\n weekFormat: function (options) {\r\n return options.isRTL ?\r\n 'w[ ' + options.weekNumberTitle + ']' :\r\n '[' + options.weekNumberTitle + ' ]w';\r\n },\r\n // Produces format strings for results like \"Wk5\"\r\n smallWeekFormat: function (options) {\r\n return options.isRTL ?\r\n 'w[' + options.weekNumberTitle + ']' :\r\n '[' + options.weekNumberTitle + ']w';\r\n }\r\n};\r\n// TODO: make these computable properties in optionsManager\r\nfunction populateInstanceComputableOptions(options) {\r\n $.each(instanceComputableOptions, function (name, func) {\r\n if (options[name] == null) {\r\n options[name] = func(options);\r\n }\r\n });\r\n}\r\nexports.populateInstanceComputableOptions = populateInstanceComputableOptions;\r\n// Initialize jQuery UI datepicker translations while using some of the translations\r\n// Will set this as the default locales for datepicker.\r\nfunction datepickerLocale(localeCode, dpLocaleCode, dpOptions) {\r\n // get the FullCalendar internal option hash for this locale. create if necessary\r\n var fcOptions = exports.localeOptionHash[localeCode] || (exports.localeOptionHash[localeCode] = {});\r\n // transfer some simple options from datepicker to fc\r\n fcOptions.isRTL = dpOptions.isRTL;\r\n fcOptions.weekNumberTitle = dpOptions.weekHeader;\r\n // compute some more complex options from datepicker\r\n $.each(dpComputableOptions, function (name, func) {\r\n fcOptions[name] = func(dpOptions);\r\n });\r\n var jqDatePicker = $.datepicker;\r\n // is jQuery UI Datepicker is on the page?\r\n if (jqDatePicker) {\r\n // Register the locale data.\r\n // FullCalendar and MomentJS use locale codes like \"pt-br\" but Datepicker\r\n // does it like \"pt-BR\" or if it doesn't have the locale, maybe just \"pt\".\r\n // Make an alias so the locale can be referenced either way.\r\n jqDatePicker.regional[dpLocaleCode] =\r\n jqDatePicker.regional[localeCode] = // alias\r\n dpOptions;\r\n // Alias 'en' to the default locale data. Do this every time.\r\n jqDatePicker.regional.en = jqDatePicker.regional[''];\r\n // Set as Datepicker's global defaults.\r\n jqDatePicker.setDefaults(dpOptions);\r\n }\r\n}\r\nexports.datepickerLocale = datepickerLocale;\r\n// Sets FullCalendar-specific translations. Will set the locales as the global default.\r\nfunction locale(localeCode, newFcOptions) {\r\n var fcOptions;\r\n var momOptions;\r\n // get the FullCalendar internal option hash for this locale. create if necessary\r\n fcOptions = exports.localeOptionHash[localeCode] || (exports.localeOptionHash[localeCode] = {});\r\n // provided new options for this locales? merge them in\r\n if (newFcOptions) {\r\n fcOptions = exports.localeOptionHash[localeCode] = options_1.mergeOptions([fcOptions, newFcOptions]);\r\n }\r\n // compute locale options that weren't defined.\r\n // always do this. newFcOptions can be undefined when initializing from i18n file,\r\n // so no way to tell if this is an initialization or a default-setting.\r\n momOptions = getMomentLocaleData(localeCode); // will fall back to en\r\n $.each(momComputableOptions, function (name, func) {\r\n if (fcOptions[name] == null) {\r\n fcOptions[name] = (func)(momOptions, fcOptions);\r\n }\r\n });\r\n // set it as the default locale for FullCalendar\r\n options_1.globalDefaults.locale = localeCode;\r\n}\r\nexports.locale = locale;\r\n// Returns moment's internal locale data. If doesn't exist, returns English.\r\nfunction getMomentLocaleData(localeCode) {\r\n return moment.localeData(localeCode) || moment.localeData('en');\r\n}\r\nexports.getMomentLocaleData = getMomentLocaleData;\r\n// Initialize English by forcing computation of moment-derived options.\r\n// Also, sets it as the default.\r\nlocale('en', options_1.englishDefaults);\r\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = __webpack_require__(4);\r\nexports.globalDefaults = {\r\n titleRangeSeparator: ' \\u2013 ',\r\n monthYearFormat: 'MMMM YYYY',\r\n defaultTimedEventDuration: '02:00:00',\r\n defaultAllDayEventDuration: { days: 1 },\r\n forceEventDuration: false,\r\n nextDayThreshold: '09:00:00',\r\n // display\r\n columnHeader: true,\r\n defaultView: 'month',\r\n aspectRatio: 1.35,\r\n header: {\r\n left: 'title',\r\n center: '',\r\n right: 'today prev,next'\r\n },\r\n weekends: true,\r\n weekNumbers: false,\r\n weekNumberTitle: 'W',\r\n weekNumberCalculation: 'local',\r\n // editable: false,\r\n // nowIndicator: false,\r\n scrollTime: '06:00:00',\r\n minTime: '00:00:00',\r\n maxTime: '24:00:00',\r\n showNonCurrentDates: true,\r\n // event ajax\r\n lazyFetching: true,\r\n startParam: 'start',\r\n endParam: 'end',\r\n timezoneParam: 'timezone',\r\n timezone: false,\r\n // allDayDefault: undefined,\r\n // locale\r\n locale: null,\r\n isRTL: false,\r\n buttonText: {\r\n prev: 'prev',\r\n next: 'next',\r\n prevYear: 'prev year',\r\n nextYear: 'next year',\r\n year: 'year',\r\n today: 'today',\r\n month: 'month',\r\n week: 'week',\r\n day: 'day'\r\n },\r\n // buttonIcons: null,\r\n allDayText: 'all-day',\r\n // allows setting a min-height to the event segment to prevent short events overlapping each other\r\n agendaEventMinHeight: 0,\r\n // jquery-ui theming\r\n theme: false,\r\n // themeButtonIcons: null,\r\n // eventResizableFromStart: false,\r\n dragOpacity: .75,\r\n dragRevertDuration: 500,\r\n dragScroll: true,\r\n // selectable: false,\r\n unselectAuto: true,\r\n // selectMinDistance: 0,\r\n dropAccept: '*',\r\n eventOrder: 'title',\r\n // eventRenderWait: null,\r\n eventLimit: false,\r\n eventLimitText: 'more',\r\n eventLimitClick: 'popover',\r\n dayPopoverFormat: 'LL',\r\n handleWindowResize: true,\r\n windowResizeDelay: 100,\r\n longPressDelay: 1000\r\n};\r\nexports.englishDefaults = {\r\n dayPopoverFormat: 'dddd, MMMM D'\r\n};\r\nexports.rtlDefaults = {\r\n header: {\r\n left: 'next,prev today',\r\n center: '',\r\n right: 'title'\r\n },\r\n buttonIcons: {\r\n prev: 'right-single-arrow',\r\n next: 'left-single-arrow',\r\n prevYear: 'right-double-arrow',\r\n nextYear: 'left-double-arrow'\r\n },\r\n themeButtonIcons: {\r\n prev: 'circle-triangle-e',\r\n next: 'circle-triangle-w',\r\n nextYear: 'seek-prev',\r\n prevYear: 'seek-next'\r\n }\r\n};\r\nvar complexOptions = [\r\n 'header',\r\n 'footer',\r\n 'buttonText',\r\n 'buttonIcons',\r\n 'themeButtonIcons'\r\n];\r\n// Merges an array of option objects into a single object\r\nfunction mergeOptions(optionObjs) {\r\n return util_1.mergeProps(optionObjs, complexOptions);\r\n}\r\nexports.mergeOptions = mergeOptions;\r\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventFootprint = /** @class */ (function () {\r\n function EventFootprint(componentFootprint, eventDef, eventInstance) {\r\n this.componentFootprint = componentFootprint;\r\n this.eventDef = eventDef;\r\n if (eventInstance) {\r\n this.eventInstance = eventInstance;\r\n }\r\n }\r\n EventFootprint.prototype.getEventLegacy = function () {\r\n return (this.eventInstance || this.eventDef).toLegacy();\r\n };\r\n return EventFootprint;\r\n}());\r\nexports.default = EventFootprint;\r\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\n// Class that all other classes will inherit from\r\nvar Class = /** @class */ (function () {\r\n function Class() {\r\n }\r\n // Called on a class to create a subclass.\r\n // LIMITATION: cannot provide a constructor!\r\n Class.extend = function (members) {\r\n var SubClass = /** @class */ (function (_super) {\r\n tslib_1.__extends(SubClass, _super);\r\n function SubClass() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return SubClass;\r\n }(this));\r\n util_1.copyOwnProps(members, SubClass.prototype);\r\n return SubClass;\r\n };\r\n // Adds new member variables/methods to the class's prototype.\r\n // Can be called with another class, or a plain object hash containing new members.\r\n Class.mixin = function (members) {\r\n util_1.copyOwnProps(members, this.prototype);\r\n };\r\n return Class;\r\n}());\r\nexports.default = Class;\r\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar SingleEventDef_1 = __webpack_require__(9);\r\nvar RecurringEventDef_1 = __webpack_require__(54);\r\nexports.default = {\r\n parse: function (eventInput, source) {\r\n if (util_1.isTimeString(eventInput.start) || moment.isDuration(eventInput.start) ||\r\n util_1.isTimeString(eventInput.end) || moment.isDuration(eventInput.end)) {\r\n return RecurringEventDef_1.default.parse(eventInput, source);\r\n }\r\n else {\r\n return SingleEventDef_1.default.parse(eventInput, source);\r\n }\r\n }\r\n};\r\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar ParsableModelMixin_1 = __webpack_require__(52);\r\nvar EventDef = /** @class */ (function () {\r\n function EventDef(source) {\r\n this.source = source;\r\n this.className = [];\r\n this.miscProps = {};\r\n }\r\n EventDef.parse = function (rawInput, source) {\r\n var def = new this(source);\r\n if (def.applyProps(rawInput)) {\r\n return def;\r\n }\r\n return false;\r\n };\r\n EventDef.normalizeId = function (id) {\r\n return String(id);\r\n };\r\n EventDef.generateId = function () {\r\n return '_fc' + (EventDef.uuid++);\r\n };\r\n EventDef.prototype.clone = function () {\r\n var copy = new this.constructor(this.source);\r\n copy.id = this.id;\r\n copy.rawId = this.rawId;\r\n copy.uid = this.uid; // not really unique anymore :(\r\n EventDef.copyVerbatimStandardProps(this, copy);\r\n copy.className = this.className.slice(); // copy\r\n copy.miscProps = $.extend({}, this.miscProps);\r\n return copy;\r\n };\r\n EventDef.prototype.hasInverseRendering = function () {\r\n return this.getRendering() === 'inverse-background';\r\n };\r\n EventDef.prototype.hasBgRendering = function () {\r\n var rendering = this.getRendering();\r\n return rendering === 'inverse-background' || rendering === 'background';\r\n };\r\n EventDef.prototype.getRendering = function () {\r\n if (this.rendering != null) {\r\n return this.rendering;\r\n }\r\n return this.source.rendering;\r\n };\r\n EventDef.prototype.getConstraint = function () {\r\n if (this.constraint != null) {\r\n return this.constraint;\r\n }\r\n if (this.source.constraint != null) {\r\n return this.source.constraint;\r\n }\r\n return this.source.calendar.opt('eventConstraint'); // what about View option?\r\n };\r\n EventDef.prototype.getOverlap = function () {\r\n if (this.overlap != null) {\r\n return this.overlap;\r\n }\r\n if (this.source.overlap != null) {\r\n return this.source.overlap;\r\n }\r\n return this.source.calendar.opt('eventOverlap'); // what about View option?\r\n };\r\n EventDef.prototype.isStartExplicitlyEditable = function () {\r\n if (this.startEditable != null) {\r\n return this.startEditable;\r\n }\r\n return this.source.startEditable;\r\n };\r\n EventDef.prototype.isDurationExplicitlyEditable = function () {\r\n if (this.durationEditable != null) {\r\n return this.durationEditable;\r\n }\r\n return this.source.durationEditable;\r\n };\r\n EventDef.prototype.isExplicitlyEditable = function () {\r\n if (this.editable != null) {\r\n return this.editable;\r\n }\r\n return this.source.editable;\r\n };\r\n EventDef.prototype.toLegacy = function () {\r\n var obj = $.extend({}, this.miscProps);\r\n obj._id = this.uid;\r\n obj.source = this.source;\r\n obj.className = this.className.slice(); // copy\r\n obj.allDay = this.isAllDay();\r\n if (this.rawId != null) {\r\n obj.id = this.rawId;\r\n }\r\n EventDef.copyVerbatimStandardProps(this, obj);\r\n return obj;\r\n };\r\n EventDef.prototype.applyManualStandardProps = function (rawProps) {\r\n if (rawProps.id != null) {\r\n this.id = EventDef.normalizeId((this.rawId = rawProps.id));\r\n }\r\n else {\r\n this.id = EventDef.generateId();\r\n }\r\n if (rawProps._id != null) { // accept this prop, even tho somewhat internal\r\n this.uid = String(rawProps._id);\r\n }\r\n else {\r\n this.uid = EventDef.generateId();\r\n }\r\n // TODO: converge with EventSource\r\n if ($.isArray(rawProps.className)) {\r\n this.className = rawProps.className;\r\n }\r\n if (typeof rawProps.className === 'string') {\r\n this.className = rawProps.className.split(/\\s+/);\r\n }\r\n return true;\r\n };\r\n EventDef.prototype.applyMiscProps = function (rawProps) {\r\n $.extend(this.miscProps, rawProps);\r\n };\r\n EventDef.uuid = 0;\r\n EventDef.defineStandardProps = ParsableModelMixin_1.default.defineStandardProps;\r\n EventDef.copyVerbatimStandardProps = ParsableModelMixin_1.default.copyVerbatimStandardProps;\r\n return EventDef;\r\n}());\r\nexports.default = EventDef;\r\nParsableModelMixin_1.default.mixInto(EventDef);\r\nEventDef.defineStandardProps({\r\n // not automatically assigned (`false`)\r\n _id: false,\r\n id: false,\r\n className: false,\r\n source: false,\r\n // automatically assigned (`true`)\r\n title: true,\r\n url: true,\r\n rendering: true,\r\n constraint: true,\r\n overlap: true,\r\n editable: true,\r\n startEditable: true,\r\n durationEditable: true,\r\n color: true,\r\n backgroundColor: true,\r\n borderColor: true,\r\n textColor: true\r\n});\r\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.default = {\r\n sourceClasses: [],\r\n registerClass: function (EventSourceClass) {\r\n this.sourceClasses.unshift(EventSourceClass); // give highest priority\r\n },\r\n parse: function (rawInput, calendar) {\r\n var sourceClasses = this.sourceClasses;\r\n var i;\r\n var eventSource;\r\n for (i = 0; i < sourceClasses.length; i++) {\r\n eventSource = sourceClasses[i].parse(rawInput, calendar);\r\n if (eventSource) {\r\n return eventSource;\r\n }\r\n }\r\n }\r\n};\r\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = __webpack_require__(4);\r\nvar EventDateProfile_1 = __webpack_require__(16);\r\nvar EventDef_1 = __webpack_require__(37);\r\nvar EventDefDateMutation_1 = __webpack_require__(40);\r\nvar SingleEventDef_1 = __webpack_require__(9);\r\nvar EventDefMutation = /** @class */ (function () {\r\n function EventDefMutation() {\r\n }\r\n EventDefMutation.createFromRawProps = function (eventInstance, rawProps, largeUnit) {\r\n var eventDef = eventInstance.def;\r\n var dateProps = {};\r\n var standardProps = {};\r\n var miscProps = {};\r\n var verbatimStandardProps = {};\r\n var eventDefId = null;\r\n var className = null;\r\n var propName;\r\n var dateProfile;\r\n var dateMutation;\r\n var defMutation;\r\n for (propName in rawProps) {\r\n if (EventDateProfile_1.default.isStandardProp(propName)) {\r\n dateProps[propName] = rawProps[propName];\r\n }\r\n else if (eventDef.isStandardProp(propName)) {\r\n standardProps[propName] = rawProps[propName];\r\n }\r\n else if (eventDef.miscProps[propName] !== rawProps[propName]) { // only if changed\r\n miscProps[propName] = rawProps[propName];\r\n }\r\n }\r\n dateProfile = EventDateProfile_1.default.parse(dateProps, eventDef.source);\r\n if (dateProfile) { // no failure?\r\n dateMutation = EventDefDateMutation_1.default.createFromDiff(eventInstance.dateProfile, dateProfile, largeUnit);\r\n }\r\n if (standardProps.id !== eventDef.id) {\r\n eventDefId = standardProps.id; // only apply if there's a change\r\n }\r\n if (!util_1.isArraysEqual(standardProps.className, eventDef.className)) {\r\n className = standardProps.className; // only apply if there's a change\r\n }\r\n EventDef_1.default.copyVerbatimStandardProps(standardProps, // src\r\n verbatimStandardProps // dest\r\n );\r\n defMutation = new EventDefMutation();\r\n defMutation.eventDefId = eventDefId;\r\n defMutation.className = className;\r\n defMutation.verbatimStandardProps = verbatimStandardProps;\r\n defMutation.miscProps = miscProps;\r\n if (dateMutation) {\r\n defMutation.dateMutation = dateMutation;\r\n }\r\n return defMutation;\r\n };\r\n /*\r\n eventDef assumed to be a SingleEventDef.\r\n returns an undo function.\r\n */\r\n EventDefMutation.prototype.mutateSingle = function (eventDef) {\r\n var origDateProfile;\r\n if (this.dateMutation) {\r\n origDateProfile = eventDef.dateProfile;\r\n eventDef.dateProfile = this.dateMutation.buildNewDateProfile(origDateProfile, eventDef.source.calendar);\r\n }\r\n // can't undo\r\n // TODO: more DRY with EventDef::applyManualStandardProps\r\n if (this.eventDefId != null) {\r\n eventDef.id = EventDef_1.default.normalizeId((eventDef.rawId = this.eventDefId));\r\n }\r\n // can't undo\r\n // TODO: more DRY with EventDef::applyManualStandardProps\r\n if (this.className) {\r\n eventDef.className = this.className;\r\n }\r\n // can't undo\r\n if (this.verbatimStandardProps) {\r\n SingleEventDef_1.default.copyVerbatimStandardProps(this.verbatimStandardProps, // src\r\n eventDef // dest\r\n );\r\n }\r\n // can't undo\r\n if (this.miscProps) {\r\n eventDef.applyMiscProps(this.miscProps);\r\n }\r\n if (origDateProfile) {\r\n return function () {\r\n eventDef.dateProfile = origDateProfile;\r\n };\r\n }\r\n else {\r\n return function () { };\r\n }\r\n };\r\n EventDefMutation.prototype.setDateMutation = function (dateMutation) {\r\n if (dateMutation && !dateMutation.isEmpty()) {\r\n this.dateMutation = dateMutation;\r\n }\r\n else {\r\n this.dateMutation = null;\r\n }\r\n };\r\n EventDefMutation.prototype.isEmpty = function () {\r\n return !this.dateMutation;\r\n };\r\n return EventDefMutation;\r\n}());\r\nexports.default = EventDefMutation;\r\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = __webpack_require__(4);\r\nvar EventDateProfile_1 = __webpack_require__(16);\r\nvar EventDefDateMutation = /** @class */ (function () {\r\n function EventDefDateMutation() {\r\n this.clearEnd = false;\r\n this.forceTimed = false;\r\n this.forceAllDay = false;\r\n }\r\n EventDefDateMutation.createFromDiff = function (dateProfile0, dateProfile1, largeUnit) {\r\n var clearEnd = dateProfile0.end && !dateProfile1.end;\r\n var forceTimed = dateProfile0.isAllDay() && !dateProfile1.isAllDay();\r\n var forceAllDay = !dateProfile0.isAllDay() && dateProfile1.isAllDay();\r\n var dateDelta;\r\n var endDiff;\r\n var endDelta;\r\n var mutation;\r\n // subtracts the dates in the appropriate way, returning a duration\r\n function subtractDates(date1, date0) {\r\n if (largeUnit) {\r\n return util_1.diffByUnit(date1, date0, largeUnit); // poorly named\r\n }\r\n else if (dateProfile1.isAllDay()) {\r\n return util_1.diffDay(date1, date0); // poorly named\r\n }\r\n else {\r\n return util_1.diffDayTime(date1, date0); // poorly named\r\n }\r\n }\r\n dateDelta = subtractDates(dateProfile1.start, dateProfile0.start);\r\n if (dateProfile1.end) {\r\n // use unzonedRanges because dateProfile0.end might be null\r\n endDiff = subtractDates(dateProfile1.unzonedRange.getEnd(), dateProfile0.unzonedRange.getEnd());\r\n endDelta = endDiff.subtract(dateDelta);\r\n }\r\n mutation = new EventDefDateMutation();\r\n mutation.clearEnd = clearEnd;\r\n mutation.forceTimed = forceTimed;\r\n mutation.forceAllDay = forceAllDay;\r\n mutation.setDateDelta(dateDelta);\r\n mutation.setEndDelta(endDelta);\r\n return mutation;\r\n };\r\n /*\r\n returns an undo function.\r\n */\r\n EventDefDateMutation.prototype.buildNewDateProfile = function (eventDateProfile, calendar) {\r\n var start = eventDateProfile.start.clone();\r\n var end = null;\r\n var shouldRezone = false;\r\n if (eventDateProfile.end && !this.clearEnd) {\r\n end = eventDateProfile.end.clone();\r\n }\r\n else if (this.endDelta && !end) {\r\n end = calendar.getDefaultEventEnd(eventDateProfile.isAllDay(), start);\r\n }\r\n if (this.forceTimed) {\r\n shouldRezone = true;\r\n if (!start.hasTime()) {\r\n start.time(0);\r\n }\r\n if (end && !end.hasTime()) {\r\n end.time(0);\r\n }\r\n }\r\n else if (this.forceAllDay) {\r\n if (start.hasTime()) {\r\n start.stripTime();\r\n }\r\n if (end && end.hasTime()) {\r\n end.stripTime();\r\n }\r\n }\r\n if (this.dateDelta) {\r\n shouldRezone = true;\r\n start.add(this.dateDelta);\r\n if (end) {\r\n end.add(this.dateDelta);\r\n }\r\n }\r\n // do this before adding startDelta to start, so we can work off of start\r\n if (this.endDelta) {\r\n shouldRezone = true;\r\n end.add(this.endDelta);\r\n }\r\n if (this.startDelta) {\r\n shouldRezone = true;\r\n start.add(this.startDelta);\r\n }\r\n if (shouldRezone) {\r\n start = calendar.applyTimezone(start);\r\n if (end) {\r\n end = calendar.applyTimezone(end);\r\n }\r\n }\r\n // TODO: okay to access calendar option?\r\n if (!end && calendar.opt('forceEventDuration')) {\r\n end = calendar.getDefaultEventEnd(eventDateProfile.isAllDay(), start);\r\n }\r\n return new EventDateProfile_1.default(start, end, calendar);\r\n };\r\n EventDefDateMutation.prototype.setDateDelta = function (dateDelta) {\r\n if (dateDelta && dateDelta.valueOf()) {\r\n this.dateDelta = dateDelta;\r\n }\r\n else {\r\n this.dateDelta = null;\r\n }\r\n };\r\n EventDefDateMutation.prototype.setStartDelta = function (startDelta) {\r\n if (startDelta && startDelta.valueOf()) {\r\n this.startDelta = startDelta;\r\n }\r\n else {\r\n this.startDelta = null;\r\n }\r\n };\r\n EventDefDateMutation.prototype.setEndDelta = function (endDelta) {\r\n if (endDelta && endDelta.valueOf()) {\r\n this.endDelta = endDelta;\r\n }\r\n else {\r\n this.endDelta = null;\r\n }\r\n };\r\n EventDefDateMutation.prototype.isEmpty = function () {\r\n return !this.clearEnd && !this.forceTimed && !this.forceAllDay &&\r\n !this.dateDelta && !this.startDelta && !this.endDelta;\r\n };\r\n return EventDefDateMutation;\r\n}());\r\nexports.default = EventDefDateMutation;\r\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Class_1 = __webpack_require__(35);\r\n/*\r\nEmbodies a div that has potential scrollbars\r\n*/\r\nvar Scroller = /** @class */ (function (_super) {\r\n tslib_1.__extends(Scroller, _super);\r\n function Scroller(options) {\r\n var _this = _super.call(this) || this;\r\n options = options || {};\r\n _this.overflowX = options.overflowX || options.overflow || 'auto';\r\n _this.overflowY = options.overflowY || options.overflow || 'auto';\r\n return _this;\r\n }\r\n Scroller.prototype.render = function () {\r\n this.el = this.renderEl();\r\n this.applyOverflow();\r\n };\r\n Scroller.prototype.renderEl = function () {\r\n return (this.scrollEl = $(''));\r\n };\r\n // sets to natural height, unlocks overflow\r\n Scroller.prototype.clear = function () {\r\n this.setHeight('auto');\r\n this.applyOverflow();\r\n };\r\n Scroller.prototype.destroy = function () {\r\n this.el.remove();\r\n };\r\n // Overflow\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Scroller.prototype.applyOverflow = function () {\r\n this.scrollEl.css({\r\n 'overflow-x': this.overflowX,\r\n 'overflow-y': this.overflowY\r\n });\r\n };\r\n // Causes any 'auto' overflow values to resolves to 'scroll' or 'hidden'.\r\n // Useful for preserving scrollbar widths regardless of future resizes.\r\n // Can pass in scrollbarWidths for optimization.\r\n Scroller.prototype.lockOverflow = function (scrollbarWidths) {\r\n var overflowX = this.overflowX;\r\n var overflowY = this.overflowY;\r\n scrollbarWidths = scrollbarWidths || this.getScrollbarWidths();\r\n if (overflowX === 'auto') {\r\n overflowX = (scrollbarWidths.top || scrollbarWidths.bottom || // horizontal scrollbars?\r\n // OR scrolling pane with massless scrollbars?\r\n this.scrollEl[0].scrollWidth - 1 > this.scrollEl[0].clientWidth\r\n // subtract 1 because of IE off-by-one issue\r\n ) ? 'scroll' : 'hidden';\r\n }\r\n if (overflowY === 'auto') {\r\n overflowY = (scrollbarWidths.left || scrollbarWidths.right || // vertical scrollbars?\r\n // OR scrolling pane with massless scrollbars?\r\n this.scrollEl[0].scrollHeight - 1 > this.scrollEl[0].clientHeight\r\n // subtract 1 because of IE off-by-one issue\r\n ) ? 'scroll' : 'hidden';\r\n }\r\n this.scrollEl.css({ 'overflow-x': overflowX, 'overflow-y': overflowY });\r\n };\r\n // Getters / Setters\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Scroller.prototype.setHeight = function (height) {\r\n this.scrollEl.height(height);\r\n };\r\n Scroller.prototype.getScrollTop = function () {\r\n return this.scrollEl.scrollTop();\r\n };\r\n Scroller.prototype.setScrollTop = function (top) {\r\n this.scrollEl.scrollTop(top);\r\n };\r\n Scroller.prototype.getClientWidth = function () {\r\n return this.scrollEl[0].clientWidth;\r\n };\r\n Scroller.prototype.getClientHeight = function () {\r\n return this.scrollEl[0].clientHeight;\r\n };\r\n Scroller.prototype.getScrollbarWidths = function () {\r\n return util_1.getScrollbarWidths(this.scrollEl);\r\n };\r\n return Scroller;\r\n}(Class_1.default));\r\nexports.default = Scroller;\r\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar DateComponent_1 = __webpack_require__(231);\r\nvar GlobalEmitter_1 = __webpack_require__(23);\r\nvar InteractiveDateComponent = /** @class */ (function (_super) {\r\n tslib_1.__extends(InteractiveDateComponent, _super);\r\n function InteractiveDateComponent(_view, _options) {\r\n var _this = _super.call(this, _view, _options) || this;\r\n // self-config, overridable by subclasses\r\n _this.segSelector = '.fc-event-container > *'; // what constitutes an event element?\r\n if (_this.dateSelectingClass) {\r\n _this.dateClicking = new _this.dateClickingClass(_this);\r\n }\r\n if (_this.dateSelectingClass) {\r\n _this.dateSelecting = new _this.dateSelectingClass(_this);\r\n }\r\n if (_this.eventPointingClass) {\r\n _this.eventPointing = new _this.eventPointingClass(_this);\r\n }\r\n if (_this.eventDraggingClass && _this.eventPointing) {\r\n _this.eventDragging = new _this.eventDraggingClass(_this, _this.eventPointing);\r\n }\r\n if (_this.eventResizingClass && _this.eventPointing) {\r\n _this.eventResizing = new _this.eventResizingClass(_this, _this.eventPointing);\r\n }\r\n if (_this.externalDroppingClass) {\r\n _this.externalDropping = new _this.externalDroppingClass(_this);\r\n }\r\n return _this;\r\n }\r\n // Sets the container element that the view should render inside of, does global DOM-related initializations,\r\n // and renders all the non-date-related content inside.\r\n InteractiveDateComponent.prototype.setElement = function (el) {\r\n _super.prototype.setElement.call(this, el);\r\n if (this.dateClicking) {\r\n this.dateClicking.bindToEl(el);\r\n }\r\n if (this.dateSelecting) {\r\n this.dateSelecting.bindToEl(el);\r\n }\r\n this.bindAllSegHandlersToEl(el);\r\n };\r\n InteractiveDateComponent.prototype.removeElement = function () {\r\n this.endInteractions();\r\n _super.prototype.removeElement.call(this);\r\n };\r\n InteractiveDateComponent.prototype.executeEventUnrender = function () {\r\n this.endInteractions();\r\n _super.prototype.executeEventUnrender.call(this);\r\n };\r\n InteractiveDateComponent.prototype.bindGlobalHandlers = function () {\r\n _super.prototype.bindGlobalHandlers.call(this);\r\n if (this.externalDropping) {\r\n this.externalDropping.bindToDocument();\r\n }\r\n };\r\n InteractiveDateComponent.prototype.unbindGlobalHandlers = function () {\r\n _super.prototype.unbindGlobalHandlers.call(this);\r\n if (this.externalDropping) {\r\n this.externalDropping.unbindFromDocument();\r\n }\r\n };\r\n InteractiveDateComponent.prototype.bindDateHandlerToEl = function (el, name, handler) {\r\n var _this = this;\r\n // attach a handler to the grid's root element.\r\n // jQuery will take care of unregistering them when removeElement gets called.\r\n this.el.on(name, function (ev) {\r\n if (!$(ev.target).is(_this.segSelector + ':not(.fc-helper),' + // directly on an event element\r\n _this.segSelector + ':not(.fc-helper) *,' + // within an event element\r\n '.fc-more,' + // a \"more..\" link\r\n 'a[data-goto]' // a clickable nav link\r\n )) {\r\n return handler.call(_this, ev);\r\n }\r\n });\r\n };\r\n InteractiveDateComponent.prototype.bindAllSegHandlersToEl = function (el) {\r\n [\r\n this.eventPointing,\r\n this.eventDragging,\r\n this.eventResizing\r\n ].forEach(function (eventInteraction) {\r\n if (eventInteraction) {\r\n eventInteraction.bindToEl(el);\r\n }\r\n });\r\n };\r\n InteractiveDateComponent.prototype.bindSegHandlerToEl = function (el, name, handler) {\r\n var _this = this;\r\n el.on(name, this.segSelector, function (ev) {\r\n var segEl = $(ev.currentTarget);\r\n if (!segEl.is('.fc-helper')) {\r\n var seg = segEl.data('fc-seg'); // grab segment data. put there by View::renderEventsPayload\r\n if (seg && !_this.shouldIgnoreEventPointing()) {\r\n return handler.call(_this, seg, ev); // context will be the Grid\r\n }\r\n }\r\n });\r\n };\r\n InteractiveDateComponent.prototype.shouldIgnoreMouse = function () {\r\n // HACK\r\n // This will still work even though bindDateHandlerToEl doesn't use GlobalEmitter.\r\n return GlobalEmitter_1.default.get().shouldIgnoreMouse();\r\n };\r\n InteractiveDateComponent.prototype.shouldIgnoreTouch = function () {\r\n var view = this._getView();\r\n // On iOS (and Android?) when a new selection is initiated overtop another selection,\r\n // the touchend never fires because the elements gets removed mid-touch-interaction (my theory).\r\n // HACK: simply don't allow this to happen.\r\n // ALSO: prevent selection when an *event* is already raised.\r\n return view.isSelected || view.selectedEvent;\r\n };\r\n InteractiveDateComponent.prototype.shouldIgnoreEventPointing = function () {\r\n // only call the handlers if there is not a drag/resize in progress\r\n return (this.eventDragging && this.eventDragging.isDragging) ||\r\n (this.eventResizing && this.eventResizing.isResizing);\r\n };\r\n InteractiveDateComponent.prototype.canStartSelection = function (seg, ev) {\r\n return util_1.getEvIsTouch(ev) &&\r\n !this.canStartResize(seg, ev) &&\r\n (this.isEventDefDraggable(seg.footprint.eventDef) ||\r\n this.isEventDefResizable(seg.footprint.eventDef));\r\n };\r\n InteractiveDateComponent.prototype.canStartDrag = function (seg, ev) {\r\n return !this.canStartResize(seg, ev) &&\r\n this.isEventDefDraggable(seg.footprint.eventDef);\r\n };\r\n InteractiveDateComponent.prototype.canStartResize = function (seg, ev) {\r\n var view = this._getView();\r\n var eventDef = seg.footprint.eventDef;\r\n return (!util_1.getEvIsTouch(ev) || view.isEventDefSelected(eventDef)) &&\r\n this.isEventDefResizable(eventDef) &&\r\n $(ev.target).is('.fc-resizer');\r\n };\r\n // Kills all in-progress dragging.\r\n // Useful for when public API methods that result in re-rendering are invoked during a drag.\r\n // Also useful for when touch devices misbehave and don't fire their touchend.\r\n InteractiveDateComponent.prototype.endInteractions = function () {\r\n [\r\n this.dateClicking,\r\n this.dateSelecting,\r\n this.eventPointing,\r\n this.eventDragging,\r\n this.eventResizing\r\n ].forEach(function (interaction) {\r\n if (interaction) {\r\n interaction.end();\r\n }\r\n });\r\n };\r\n // Event Drag-n-Drop\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Computes if the given event is allowed to be dragged by the user\r\n InteractiveDateComponent.prototype.isEventDefDraggable = function (eventDef) {\r\n return this.isEventDefStartEditable(eventDef);\r\n };\r\n InteractiveDateComponent.prototype.isEventDefStartEditable = function (eventDef) {\r\n var isEditable = eventDef.isStartExplicitlyEditable();\r\n if (isEditable == null) {\r\n isEditable = this.opt('eventStartEditable');\r\n if (isEditable == null) {\r\n isEditable = this.isEventDefGenerallyEditable(eventDef);\r\n }\r\n }\r\n return isEditable;\r\n };\r\n InteractiveDateComponent.prototype.isEventDefGenerallyEditable = function (eventDef) {\r\n var isEditable = eventDef.isExplicitlyEditable();\r\n if (isEditable == null) {\r\n isEditable = this.opt('editable');\r\n }\r\n return isEditable;\r\n };\r\n // Event Resizing\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Computes if the given event is allowed to be resized from its starting edge\r\n InteractiveDateComponent.prototype.isEventDefResizableFromStart = function (eventDef) {\r\n return this.opt('eventResizableFromStart') && this.isEventDefResizable(eventDef);\r\n };\r\n // Computes if the given event is allowed to be resized from its ending edge\r\n InteractiveDateComponent.prototype.isEventDefResizableFromEnd = function (eventDef) {\r\n return this.isEventDefResizable(eventDef);\r\n };\r\n // Computes if the given event is allowed to be resized by the user at all\r\n InteractiveDateComponent.prototype.isEventDefResizable = function (eventDef) {\r\n var isResizable = eventDef.isDurationExplicitlyEditable();\r\n if (isResizable == null) {\r\n isResizable = this.opt('eventDurationEditable');\r\n if (isResizable == null) {\r\n isResizable = this.isEventDefGenerallyEditable(eventDef);\r\n }\r\n }\r\n return isResizable;\r\n };\r\n // Event Mutation / Constraints\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Diffs the two dates, returning a duration, based on granularity of the grid\r\n // TODO: port isTimeScale into this system?\r\n InteractiveDateComponent.prototype.diffDates = function (a, b) {\r\n if (this.largeUnit) {\r\n return util_1.diffByUnit(a, b, this.largeUnit);\r\n }\r\n else {\r\n return util_1.diffDayTime(a, b);\r\n }\r\n };\r\n // is it allowed, in relation to the view's validRange?\r\n // NOTE: very similar to isExternalInstanceGroupAllowed\r\n InteractiveDateComponent.prototype.isEventInstanceGroupAllowed = function (eventInstanceGroup) {\r\n var view = this._getView();\r\n var dateProfile = this.dateProfile;\r\n var eventFootprints = this.eventRangesToEventFootprints(eventInstanceGroup.getAllEventRanges());\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n // TODO: just use getAllEventRanges directly\r\n if (!dateProfile.validUnzonedRange.containsRange(eventFootprints[i].componentFootprint.unzonedRange)) {\r\n return false;\r\n }\r\n }\r\n return view.calendar.constraints.isEventInstanceGroupAllowed(eventInstanceGroup);\r\n };\r\n // NOTE: very similar to isEventInstanceGroupAllowed\r\n // when it's a completely anonymous external drag, no event.\r\n InteractiveDateComponent.prototype.isExternalInstanceGroupAllowed = function (eventInstanceGroup) {\r\n var view = this._getView();\r\n var dateProfile = this.dateProfile;\r\n var eventFootprints = this.eventRangesToEventFootprints(eventInstanceGroup.getAllEventRanges());\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n if (!dateProfile.validUnzonedRange.containsRange(eventFootprints[i].componentFootprint.unzonedRange)) {\r\n return false;\r\n }\r\n }\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n // treat it as a selection\r\n // TODO: pass in eventInstanceGroup instead\r\n // because we don't want calendar's constraint system to depend on a component's\r\n // determination of footprints.\r\n if (!view.calendar.constraints.isSelectionFootprintAllowed(eventFootprints[i].componentFootprint)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n return InteractiveDateComponent;\r\n}(DateComponent_1.default));\r\nexports.default = InteractiveDateComponent;\r\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar RenderQueue_1 = __webpack_require__(229);\r\nvar DateProfileGenerator_1 = __webpack_require__(55);\r\nvar InteractiveDateComponent_1 = __webpack_require__(42);\r\nvar GlobalEmitter_1 = __webpack_require__(23);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\n/* An abstract class from which other views inherit from\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar View = /** @class */ (function (_super) {\r\n tslib_1.__extends(View, _super);\r\n function View(calendar, viewSpec) {\r\n var _this = _super.call(this, null, viewSpec.options) || this;\r\n _this.batchRenderDepth = 0;\r\n _this.isSelected = false; // boolean whether a range of time is user-selected or not\r\n _this.calendar = calendar;\r\n _this.viewSpec = viewSpec;\r\n // shortcuts\r\n _this.type = viewSpec.type;\r\n // .name is deprecated\r\n _this.name = _this.type;\r\n _this.initRenderQueue();\r\n _this.initHiddenDays();\r\n _this.dateProfileGenerator = new _this.dateProfileGeneratorClass(_this);\r\n _this.bindBaseRenderHandlers();\r\n _this.eventOrderSpecs = util_1.parseFieldSpecs(_this.opt('eventOrder'));\r\n // legacy\r\n if (_this['initialize']) {\r\n _this['initialize']();\r\n }\r\n return _this;\r\n }\r\n View.prototype._getView = function () {\r\n return this;\r\n };\r\n // Retrieves an option with the given name\r\n View.prototype.opt = function (name) {\r\n return this.options[name];\r\n };\r\n /* Render Queue\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.initRenderQueue = function () {\r\n this.renderQueue = new RenderQueue_1.default({\r\n event: this.opt('eventRenderWait')\r\n });\r\n this.renderQueue.on('start', this.onRenderQueueStart.bind(this));\r\n this.renderQueue.on('stop', this.onRenderQueueStop.bind(this));\r\n this.on('before:change', this.startBatchRender);\r\n this.on('change', this.stopBatchRender);\r\n };\r\n View.prototype.onRenderQueueStart = function () {\r\n this.calendar.freezeContentHeight();\r\n this.addScroll(this.queryScroll());\r\n };\r\n View.prototype.onRenderQueueStop = function () {\r\n if (this.calendar.updateViewSize()) { // success?\r\n this.popScroll();\r\n }\r\n this.calendar.thawContentHeight();\r\n };\r\n View.prototype.startBatchRender = function () {\r\n if (!(this.batchRenderDepth++)) {\r\n this.renderQueue.pause();\r\n }\r\n };\r\n View.prototype.stopBatchRender = function () {\r\n if (!(--this.batchRenderDepth)) {\r\n this.renderQueue.resume();\r\n }\r\n };\r\n View.prototype.requestRender = function (func, namespace, actionType) {\r\n this.renderQueue.queue(func, namespace, actionType);\r\n };\r\n // given func will auto-bind to `this`\r\n View.prototype.whenSizeUpdated = function (func) {\r\n if (this.renderQueue.isRunning) {\r\n this.renderQueue.one('stop', func.bind(this));\r\n }\r\n else {\r\n func.call(this);\r\n }\r\n };\r\n /* Title and Date Formatting\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Computes what the title at the top of the calendar should be for this view\r\n View.prototype.computeTitle = function (dateProfile) {\r\n var unzonedRange;\r\n // for views that span a large unit of time, show the proper interval, ignoring stray days before and after\r\n if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) {\r\n unzonedRange = dateProfile.currentUnzonedRange;\r\n }\r\n else { // for day units or smaller, use the actual day range\r\n unzonedRange = dateProfile.activeUnzonedRange;\r\n }\r\n return this.formatRange({\r\n start: this.calendar.msToMoment(unzonedRange.startMs, dateProfile.isRangeAllDay),\r\n end: this.calendar.msToMoment(unzonedRange.endMs, dateProfile.isRangeAllDay)\r\n }, dateProfile.isRangeAllDay, this.opt('titleFormat') || this.computeTitleFormat(dateProfile), this.opt('titleRangeSeparator'));\r\n };\r\n // Generates the format string that should be used to generate the title for the current date range.\r\n // Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`.\r\n View.prototype.computeTitleFormat = function (dateProfile) {\r\n var currentRangeUnit = dateProfile.currentRangeUnit;\r\n if (currentRangeUnit === 'year') {\r\n return 'YYYY';\r\n }\r\n else if (currentRangeUnit === 'month') {\r\n return this.opt('monthYearFormat'); // like \"September 2014\"\r\n }\r\n else if (dateProfile.currentUnzonedRange.as('days') > 1) {\r\n return 'll'; // multi-day range. shorter, like \"Sep 9 - 10 2014\"\r\n }\r\n else {\r\n return 'LL'; // one day. longer, like \"September 9 2014\"\r\n }\r\n };\r\n // Date Setting/Unsetting\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.setDate = function (date) {\r\n var currentDateProfile = this.get('dateProfile');\r\n var newDateProfile = this.dateProfileGenerator.build(date, undefined, true); // forceToValid=true\r\n if (!currentDateProfile ||\r\n !currentDateProfile.activeUnzonedRange.equals(newDateProfile.activeUnzonedRange)) {\r\n this.set('dateProfile', newDateProfile);\r\n }\r\n };\r\n View.prototype.unsetDate = function () {\r\n this.unset('dateProfile');\r\n };\r\n // Event Data\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.fetchInitialEvents = function (dateProfile) {\r\n var calendar = this.calendar;\r\n var forceAllDay = dateProfile.isRangeAllDay && !this.usesMinMaxTime;\r\n return calendar.requestEvents(calendar.msToMoment(dateProfile.activeUnzonedRange.startMs, forceAllDay), calendar.msToMoment(dateProfile.activeUnzonedRange.endMs, forceAllDay));\r\n };\r\n View.prototype.bindEventChanges = function () {\r\n this.listenTo(this.calendar, 'eventsReset', this.resetEvents); // TODO: make this a real event\r\n };\r\n View.prototype.unbindEventChanges = function () {\r\n this.stopListeningTo(this.calendar, 'eventsReset');\r\n };\r\n View.prototype.setEvents = function (eventsPayload) {\r\n this.set('currentEvents', eventsPayload);\r\n this.set('hasEvents', true);\r\n };\r\n View.prototype.unsetEvents = function () {\r\n this.unset('currentEvents');\r\n this.unset('hasEvents');\r\n };\r\n View.prototype.resetEvents = function (eventsPayload) {\r\n this.startBatchRender();\r\n this.unsetEvents();\r\n this.setEvents(eventsPayload);\r\n this.stopBatchRender();\r\n };\r\n // Date High-level Rendering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.requestDateRender = function (dateProfile) {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.executeDateRender(dateProfile);\r\n }, 'date', 'init');\r\n };\r\n View.prototype.requestDateUnrender = function () {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.executeDateUnrender();\r\n }, 'date', 'destroy');\r\n };\r\n // if dateProfile not specified, uses current\r\n View.prototype.executeDateRender = function (dateProfile) {\r\n _super.prototype.executeDateRender.call(this, dateProfile);\r\n if (this['render']) {\r\n this['render'](); // TODO: deprecate\r\n }\r\n this.trigger('datesRendered');\r\n this.addScroll({ isDateInit: true });\r\n this.startNowIndicator(); // shouldn't render yet because updateSize will be called soon\r\n };\r\n View.prototype.executeDateUnrender = function () {\r\n this.unselect();\r\n this.stopNowIndicator();\r\n this.trigger('before:datesUnrendered');\r\n if (this['destroy']) {\r\n this['destroy'](); // TODO: deprecate\r\n }\r\n _super.prototype.executeDateUnrender.call(this);\r\n };\r\n // \"Base\" rendering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.bindBaseRenderHandlers = function () {\r\n var _this = this;\r\n this.on('datesRendered', function () {\r\n _this.whenSizeUpdated(_this.triggerViewRender);\r\n });\r\n this.on('before:datesUnrendered', function () {\r\n _this.triggerViewDestroy();\r\n });\r\n };\r\n View.prototype.triggerViewRender = function () {\r\n this.publiclyTrigger('viewRender', {\r\n context: this,\r\n args: [this, this.el]\r\n });\r\n };\r\n View.prototype.triggerViewDestroy = function () {\r\n this.publiclyTrigger('viewDestroy', {\r\n context: this,\r\n args: [this, this.el]\r\n });\r\n };\r\n // Event High-level Rendering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.requestEventsRender = function (eventsPayload) {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.executeEventRender(eventsPayload);\r\n _this.whenSizeUpdated(_this.triggerAfterEventsRendered);\r\n }, 'event', 'init');\r\n };\r\n View.prototype.requestEventsUnrender = function () {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.triggerBeforeEventsDestroyed();\r\n _this.executeEventUnrender();\r\n }, 'event', 'destroy');\r\n };\r\n // Business Hour High-level Rendering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.requestBusinessHoursRender = function (businessHourGenerator) {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.renderBusinessHours(businessHourGenerator);\r\n }, 'businessHours', 'init');\r\n };\r\n View.prototype.requestBusinessHoursUnrender = function () {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.unrenderBusinessHours();\r\n }, 'businessHours', 'destroy');\r\n };\r\n // Misc view rendering utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Binds DOM handlers to elements that reside outside the view container, such as the document\r\n View.prototype.bindGlobalHandlers = function () {\r\n _super.prototype.bindGlobalHandlers.call(this);\r\n this.listenTo(GlobalEmitter_1.default.get(), {\r\n touchstart: this.processUnselect,\r\n mousedown: this.handleDocumentMousedown\r\n });\r\n };\r\n // Unbinds DOM handlers from elements that reside outside the view container\r\n View.prototype.unbindGlobalHandlers = function () {\r\n _super.prototype.unbindGlobalHandlers.call(this);\r\n this.stopListeningTo(GlobalEmitter_1.default.get());\r\n };\r\n /* Now Indicator\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Immediately render the current time indicator and begins re-rendering it at an interval,\r\n // which is defined by this.getNowIndicatorUnit().\r\n // TODO: somehow do this for the current whole day's background too\r\n View.prototype.startNowIndicator = function () {\r\n var _this = this;\r\n var unit;\r\n var update;\r\n var delay; // ms wait value\r\n if (this.opt('nowIndicator')) {\r\n unit = this.getNowIndicatorUnit();\r\n if (unit) {\r\n update = util_1.proxy(this, 'updateNowIndicator'); // bind to `this`\r\n this.initialNowDate = this.calendar.getNow();\r\n this.initialNowQueriedMs = new Date().valueOf();\r\n // wait until the beginning of the next interval\r\n delay = this.initialNowDate.clone().startOf(unit).add(1, unit).valueOf() - this.initialNowDate.valueOf();\r\n this.nowIndicatorTimeoutID = setTimeout(function () {\r\n _this.nowIndicatorTimeoutID = null;\r\n update();\r\n delay = +moment.duration(1, unit);\r\n delay = Math.max(100, delay); // prevent too frequent\r\n _this.nowIndicatorIntervalID = setInterval(update, delay); // update every interval\r\n }, delay);\r\n }\r\n // rendering will be initiated in updateSize\r\n }\r\n };\r\n // rerenders the now indicator, computing the new current time from the amount of time that has passed\r\n // since the initial getNow call.\r\n View.prototype.updateNowIndicator = function () {\r\n if (this.isDatesRendered &&\r\n this.initialNowDate // activated before?\r\n ) {\r\n this.unrenderNowIndicator(); // won't unrender if unnecessary\r\n this.renderNowIndicator(this.initialNowDate.clone().add(new Date().valueOf() - this.initialNowQueriedMs) // add ms\r\n );\r\n this.isNowIndicatorRendered = true;\r\n }\r\n };\r\n // Immediately unrenders the view's current time indicator and stops any re-rendering timers.\r\n // Won't cause side effects if indicator isn't rendered.\r\n View.prototype.stopNowIndicator = function () {\r\n if (this.isNowIndicatorRendered) {\r\n if (this.nowIndicatorTimeoutID) {\r\n clearTimeout(this.nowIndicatorTimeoutID);\r\n this.nowIndicatorTimeoutID = null;\r\n }\r\n if (this.nowIndicatorIntervalID) {\r\n clearInterval(this.nowIndicatorIntervalID);\r\n this.nowIndicatorIntervalID = null;\r\n }\r\n this.unrenderNowIndicator();\r\n this.isNowIndicatorRendered = false;\r\n }\r\n };\r\n /* Dimensions\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n if (this['setHeight']) { // for legacy API\r\n this['setHeight'](totalHeight, isAuto);\r\n }\r\n else {\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n }\r\n this.updateNowIndicator();\r\n };\r\n /* Scroller\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.addScroll = function (scroll) {\r\n var queuedScroll = this.queuedScroll || (this.queuedScroll = {});\r\n $.extend(queuedScroll, scroll);\r\n };\r\n View.prototype.popScroll = function () {\r\n this.applyQueuedScroll();\r\n this.queuedScroll = null;\r\n };\r\n View.prototype.applyQueuedScroll = function () {\r\n if (this.queuedScroll) {\r\n this.applyScroll(this.queuedScroll);\r\n }\r\n };\r\n View.prototype.queryScroll = function () {\r\n var scroll = {};\r\n if (this.isDatesRendered) {\r\n $.extend(scroll, this.queryDateScroll());\r\n }\r\n return scroll;\r\n };\r\n View.prototype.applyScroll = function (scroll) {\r\n if (scroll.isDateInit && this.isDatesRendered) {\r\n $.extend(scroll, this.computeInitialDateScroll());\r\n }\r\n if (this.isDatesRendered) {\r\n this.applyDateScroll(scroll);\r\n }\r\n };\r\n View.prototype.computeInitialDateScroll = function () {\r\n return {}; // subclasses must implement\r\n };\r\n View.prototype.queryDateScroll = function () {\r\n return {}; // subclasses must implement\r\n };\r\n View.prototype.applyDateScroll = function (scroll) {\r\n // subclasses must implement\r\n };\r\n /* Event Drag-n-Drop\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.reportEventDrop = function (eventInstance, eventMutation, el, ev) {\r\n var eventManager = this.calendar.eventManager;\r\n var undoFunc = eventManager.mutateEventsWithId(eventInstance.def.id, eventMutation);\r\n var dateMutation = eventMutation.dateMutation;\r\n // update the EventInstance, for handlers\r\n if (dateMutation) {\r\n eventInstance.dateProfile = dateMutation.buildNewDateProfile(eventInstance.dateProfile, this.calendar);\r\n }\r\n this.triggerEventDrop(eventInstance, \r\n // a drop doesn't necessarily mean a date mutation (ex: resource change)\r\n (dateMutation && dateMutation.dateDelta) || moment.duration(), undoFunc, el, ev);\r\n };\r\n // Triggers event-drop handlers that have subscribed via the API\r\n View.prototype.triggerEventDrop = function (eventInstance, dateDelta, undoFunc, el, ev) {\r\n this.publiclyTrigger('eventDrop', {\r\n context: el[0],\r\n args: [\r\n eventInstance.toLegacy(),\r\n dateDelta,\r\n undoFunc,\r\n ev,\r\n {},\r\n this\r\n ]\r\n });\r\n };\r\n /* External Element Drag-n-Drop\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Must be called when an external element, via jQuery UI, has been dropped onto the calendar.\r\n // `meta` is the parsed data that has been embedded into the dragging event.\r\n // `dropLocation` is an object that contains the new zoned start/end/allDay values for the event.\r\n View.prototype.reportExternalDrop = function (singleEventDef, isEvent, isSticky, el, ev, ui) {\r\n if (isEvent) {\r\n this.calendar.eventManager.addEventDef(singleEventDef, isSticky);\r\n }\r\n this.triggerExternalDrop(singleEventDef, isEvent, el, ev, ui);\r\n };\r\n // Triggers external-drop handlers that have subscribed via the API\r\n View.prototype.triggerExternalDrop = function (singleEventDef, isEvent, el, ev, ui) {\r\n // trigger 'drop' regardless of whether element represents an event\r\n this.publiclyTrigger('drop', {\r\n context: el[0],\r\n args: [\r\n singleEventDef.dateProfile.start.clone(),\r\n ev,\r\n ui,\r\n this\r\n ]\r\n });\r\n if (isEvent) {\r\n // signal an external event landed\r\n this.publiclyTrigger('eventReceive', {\r\n context: this,\r\n args: [\r\n singleEventDef.buildInstance().toLegacy(),\r\n this\r\n ]\r\n });\r\n }\r\n };\r\n /* Event Resizing\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Must be called when an event in the view has been resized to a new length\r\n View.prototype.reportEventResize = function (eventInstance, eventMutation, el, ev) {\r\n var eventManager = this.calendar.eventManager;\r\n var undoFunc = eventManager.mutateEventsWithId(eventInstance.def.id, eventMutation);\r\n // update the EventInstance, for handlers\r\n eventInstance.dateProfile = eventMutation.dateMutation.buildNewDateProfile(eventInstance.dateProfile, this.calendar);\r\n var resizeDelta = eventMutation.dateMutation.endDelta || eventMutation.dateMutation.startDelta;\r\n this.triggerEventResize(eventInstance, resizeDelta, undoFunc, el, ev);\r\n };\r\n // Triggers event-resize handlers that have subscribed via the API\r\n View.prototype.triggerEventResize = function (eventInstance, resizeDelta, undoFunc, el, ev) {\r\n this.publiclyTrigger('eventResize', {\r\n context: el[0],\r\n args: [\r\n eventInstance.toLegacy(),\r\n resizeDelta,\r\n undoFunc,\r\n ev,\r\n {},\r\n this\r\n ]\r\n });\r\n };\r\n /* Selection (time range)\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Selects a date span on the view. `start` and `end` are both Moments.\r\n // `ev` is the native mouse event that begin the interaction.\r\n View.prototype.select = function (footprint, ev) {\r\n this.unselect(ev);\r\n this.renderSelectionFootprint(footprint);\r\n this.reportSelection(footprint, ev);\r\n };\r\n View.prototype.renderSelectionFootprint = function (footprint) {\r\n if (this['renderSelection']) { // legacy method in custom view classes\r\n this['renderSelection'](footprint.toLegacy(this.calendar));\r\n }\r\n else {\r\n _super.prototype.renderSelectionFootprint.call(this, footprint);\r\n }\r\n };\r\n // Called when a new selection is made. Updates internal state and triggers handlers.\r\n View.prototype.reportSelection = function (footprint, ev) {\r\n this.isSelected = true;\r\n this.triggerSelect(footprint, ev);\r\n };\r\n // Triggers handlers to 'select'\r\n View.prototype.triggerSelect = function (footprint, ev) {\r\n var dateProfile = this.calendar.footprintToDateProfile(footprint); // abuse of \"Event\"DateProfile?\r\n this.publiclyTrigger('select', {\r\n context: this,\r\n args: [\r\n dateProfile.start,\r\n dateProfile.end,\r\n ev,\r\n this\r\n ]\r\n });\r\n };\r\n // Undoes a selection. updates in the internal state and triggers handlers.\r\n // `ev` is the native mouse event that began the interaction.\r\n View.prototype.unselect = function (ev) {\r\n if (this.isSelected) {\r\n this.isSelected = false;\r\n if (this['destroySelection']) {\r\n this['destroySelection'](); // TODO: deprecate\r\n }\r\n this.unrenderSelection();\r\n this.publiclyTrigger('unselect', {\r\n context: this,\r\n args: [ev, this]\r\n });\r\n }\r\n };\r\n /* Event Selection\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.selectEventInstance = function (eventInstance) {\r\n if (!this.selectedEventInstance ||\r\n this.selectedEventInstance !== eventInstance) {\r\n this.unselectEventInstance();\r\n this.getEventSegs().forEach(function (seg) {\r\n if (seg.footprint.eventInstance === eventInstance &&\r\n seg.el // necessary?\r\n ) {\r\n seg.el.addClass('fc-selected');\r\n }\r\n });\r\n this.selectedEventInstance = eventInstance;\r\n }\r\n };\r\n View.prototype.unselectEventInstance = function () {\r\n if (this.selectedEventInstance) {\r\n this.getEventSegs().forEach(function (seg) {\r\n if (seg.el) { // necessary?\r\n seg.el.removeClass('fc-selected');\r\n }\r\n });\r\n this.selectedEventInstance = null;\r\n }\r\n };\r\n View.prototype.isEventDefSelected = function (eventDef) {\r\n // event references might change on refetchEvents(), while selectedEventInstance doesn't,\r\n // so compare IDs\r\n return this.selectedEventInstance && this.selectedEventInstance.def.id === eventDef.id;\r\n };\r\n /* Mouse / Touch Unselecting (time range & event unselection)\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // TODO: move consistently to down/start or up/end?\r\n // TODO: don't kill previous selection if touch scrolling\r\n View.prototype.handleDocumentMousedown = function (ev) {\r\n if (util_1.isPrimaryMouseButton(ev)) {\r\n this.processUnselect(ev);\r\n }\r\n };\r\n View.prototype.processUnselect = function (ev) {\r\n this.processRangeUnselect(ev);\r\n this.processEventUnselect(ev);\r\n };\r\n View.prototype.processRangeUnselect = function (ev) {\r\n var ignore;\r\n // is there a time-range selection?\r\n if (this.isSelected && this.opt('unselectAuto')) {\r\n // only unselect if the clicked element is not identical to or inside of an 'unselectCancel' element\r\n ignore = this.opt('unselectCancel');\r\n if (!ignore || !$(ev.target).closest(ignore).length) {\r\n this.unselect(ev);\r\n }\r\n }\r\n };\r\n View.prototype.processEventUnselect = function (ev) {\r\n if (this.selectedEventInstance) {\r\n if (!$(ev.target).closest('.fc-selected').length) {\r\n this.unselectEventInstance();\r\n }\r\n }\r\n };\r\n /* Triggers\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.triggerBaseRendered = function () {\r\n this.publiclyTrigger('viewRender', {\r\n context: this,\r\n args: [this, this.el]\r\n });\r\n };\r\n View.prototype.triggerBaseUnrendered = function () {\r\n this.publiclyTrigger('viewDestroy', {\r\n context: this,\r\n args: [this, this.el]\r\n });\r\n };\r\n // Triggers handlers to 'dayClick'\r\n // Span has start/end of the clicked area. Only the start is useful.\r\n View.prototype.triggerDayClick = function (footprint, dayEl, ev) {\r\n var dateProfile = this.calendar.footprintToDateProfile(footprint); // abuse of \"Event\"DateProfile?\r\n this.publiclyTrigger('dayClick', {\r\n context: dayEl,\r\n args: [dateProfile.start, ev, this]\r\n });\r\n };\r\n /* Date Utils\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // For DateComponent::getDayClasses\r\n View.prototype.isDateInOtherMonth = function (date, dateProfile) {\r\n return false;\r\n };\r\n // Arguments after name will be forwarded to a hypothetical function value\r\n // WARNING: passed-in arguments will be given to generator functions as-is and can cause side-effects.\r\n // Always clone your objects if you fear mutation.\r\n View.prototype.getUnzonedRangeOption = function (name) {\r\n var val = this.opt(name);\r\n if (typeof val === 'function') {\r\n val = val.apply(null, Array.prototype.slice.call(arguments, 1));\r\n }\r\n if (val) {\r\n return this.calendar.parseUnzonedRange(val);\r\n }\r\n };\r\n /* Hidden Days\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Initializes internal variables related to calculating hidden days-of-week\r\n View.prototype.initHiddenDays = function () {\r\n var hiddenDays = this.opt('hiddenDays') || []; // array of day-of-week indices that are hidden\r\n var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool)\r\n var dayCnt = 0;\r\n var i;\r\n if (this.opt('weekends') === false) {\r\n hiddenDays.push(0, 6); // 0=sunday, 6=saturday\r\n }\r\n for (i = 0; i < 7; i++) {\r\n if (!(isHiddenDayHash[i] = $.inArray(i, hiddenDays) !== -1)) {\r\n dayCnt++;\r\n }\r\n }\r\n if (!dayCnt) {\r\n throw new Error('invalid hiddenDays'); // all days were hidden? bad.\r\n }\r\n this.isHiddenDayHash = isHiddenDayHash;\r\n };\r\n // Remove days from the beginning and end of the range that are computed as hidden.\r\n // If the whole range is trimmed off, returns null\r\n View.prototype.trimHiddenDays = function (inputUnzonedRange) {\r\n var start = inputUnzonedRange.getStart();\r\n var end = inputUnzonedRange.getEnd();\r\n if (start) {\r\n start = this.skipHiddenDays(start);\r\n }\r\n if (end) {\r\n end = this.skipHiddenDays(end, -1, true);\r\n }\r\n if (start === null || end === null || start < end) {\r\n return new UnzonedRange_1.default(start, end);\r\n }\r\n return null;\r\n };\r\n // Is the current day hidden?\r\n // `day` is a day-of-week index (0-6), or a Moment\r\n View.prototype.isHiddenDay = function (day) {\r\n if (moment.isMoment(day)) {\r\n day = day.day();\r\n }\r\n return this.isHiddenDayHash[day];\r\n };\r\n // Incrementing the current day until it is no longer a hidden day, returning a copy.\r\n // DOES NOT CONSIDER validUnzonedRange!\r\n // If the initial value of `date` is not a hidden day, don't do anything.\r\n // Pass `isExclusive` as `true` if you are dealing with an end date.\r\n // `inc` defaults to `1` (increment one day forward each time)\r\n View.prototype.skipHiddenDays = function (date, inc, isExclusive) {\r\n if (inc === void 0) { inc = 1; }\r\n if (isExclusive === void 0) { isExclusive = false; }\r\n var out = date.clone();\r\n while (this.isHiddenDayHash[(out.day() + (isExclusive ? inc : 0) + 7) % 7]) {\r\n out.add(inc, 'days');\r\n }\r\n return out;\r\n };\r\n return View;\r\n}(InteractiveDateComponent_1.default));\r\nexports.default = View;\r\nView.prototype.usesMinMaxTime = false;\r\nView.prototype.dateProfileGeneratorClass = DateProfileGenerator_1.default;\r\nView.watch('displayingDates', ['isInDom', 'dateProfile'], function (deps) {\r\n this.requestDateRender(deps.dateProfile);\r\n}, function () {\r\n this.requestDateUnrender();\r\n});\r\nView.watch('displayingBusinessHours', ['displayingDates', 'businessHourGenerator'], function (deps) {\r\n this.requestBusinessHoursRender(deps.businessHourGenerator);\r\n}, function () {\r\n this.requestBusinessHoursUnrender();\r\n});\r\nView.watch('initialEvents', ['dateProfile'], function (deps) {\r\n return this.fetchInitialEvents(deps.dateProfile);\r\n});\r\nView.watch('bindingEvents', ['initialEvents'], function (deps) {\r\n this.setEvents(deps.initialEvents);\r\n this.bindEventChanges();\r\n}, function () {\r\n this.unbindEventChanges();\r\n this.unsetEvents();\r\n});\r\nView.watch('displayingEvents', ['displayingDates', 'hasEvents'], function () {\r\n this.requestEventsRender(this.get('currentEvents'));\r\n}, function () {\r\n this.requestEventsUnrender();\r\n});\r\nView.watch('title', ['dateProfile'], function (deps) {\r\n return (this.title = this.computeTitle(deps.dateProfile)); // assign to View for legacy reasons\r\n});\r\nView.watch('legacyDateProps', ['dateProfile'], function (deps) {\r\n var calendar = this.calendar;\r\n var dateProfile = deps.dateProfile;\r\n // DEPRECATED, but we need to keep it updated...\r\n this.start = calendar.msToMoment(dateProfile.activeUnzonedRange.startMs, dateProfile.isRangeAllDay);\r\n this.end = calendar.msToMoment(dateProfile.activeUnzonedRange.endMs, dateProfile.isRangeAllDay);\r\n this.intervalStart = calendar.msToMoment(dateProfile.currentUnzonedRange.startMs, dateProfile.isRangeAllDay);\r\n this.intervalEnd = calendar.msToMoment(dateProfile.currentUnzonedRange.endMs, dateProfile.isRangeAllDay);\r\n});\r\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventRenderer = /** @class */ (function () {\r\n function EventRenderer(component, fillRenderer) {\r\n this.view = component._getView();\r\n this.component = component;\r\n this.fillRenderer = fillRenderer;\r\n }\r\n EventRenderer.prototype.opt = function (name) {\r\n return this.view.opt(name);\r\n };\r\n // Updates values that rely on options and also relate to range\r\n EventRenderer.prototype.rangeUpdated = function () {\r\n var displayEventTime;\r\n var displayEventEnd;\r\n this.eventTimeFormat =\r\n this.opt('eventTimeFormat') ||\r\n this.opt('timeFormat') || // deprecated\r\n this.computeEventTimeFormat();\r\n displayEventTime = this.opt('displayEventTime');\r\n if (displayEventTime == null) {\r\n displayEventTime = this.computeDisplayEventTime(); // might be based off of range\r\n }\r\n displayEventEnd = this.opt('displayEventEnd');\r\n if (displayEventEnd == null) {\r\n displayEventEnd = this.computeDisplayEventEnd(); // might be based off of range\r\n }\r\n this.displayEventTime = displayEventTime;\r\n this.displayEventEnd = displayEventEnd;\r\n };\r\n EventRenderer.prototype.render = function (eventsPayload) {\r\n var dateProfile = this.component._getDateProfile();\r\n var eventDefId;\r\n var instanceGroup;\r\n var eventRanges;\r\n var bgRanges = [];\r\n var fgRanges = [];\r\n for (eventDefId in eventsPayload) {\r\n instanceGroup = eventsPayload[eventDefId];\r\n eventRanges = instanceGroup.sliceRenderRanges(dateProfile.activeUnzonedRange);\r\n if (instanceGroup.getEventDef().hasBgRendering()) {\r\n bgRanges.push.apply(bgRanges, eventRanges);\r\n }\r\n else {\r\n fgRanges.push.apply(fgRanges, eventRanges);\r\n }\r\n }\r\n this.renderBgRanges(bgRanges);\r\n this.renderFgRanges(fgRanges);\r\n };\r\n EventRenderer.prototype.unrender = function () {\r\n this.unrenderBgRanges();\r\n this.unrenderFgRanges();\r\n };\r\n EventRenderer.prototype.renderFgRanges = function (eventRanges) {\r\n var eventFootprints = this.component.eventRangesToEventFootprints(eventRanges);\r\n var segs = this.component.eventFootprintsToSegs(eventFootprints);\r\n // render an `.el` on each seg\r\n // returns a subset of the segs. segs that were actually rendered\r\n segs = this.renderFgSegEls(segs);\r\n if (this.renderFgSegs(segs) !== false) { // no failure?\r\n this.fgSegs = segs;\r\n }\r\n };\r\n EventRenderer.prototype.unrenderFgRanges = function () {\r\n this.unrenderFgSegs(this.fgSegs || []);\r\n this.fgSegs = null;\r\n };\r\n EventRenderer.prototype.renderBgRanges = function (eventRanges) {\r\n var eventFootprints = this.component.eventRangesToEventFootprints(eventRanges);\r\n var segs = this.component.eventFootprintsToSegs(eventFootprints);\r\n if (this.renderBgSegs(segs) !== false) { // no failure?\r\n this.bgSegs = segs;\r\n }\r\n };\r\n EventRenderer.prototype.unrenderBgRanges = function () {\r\n this.unrenderBgSegs();\r\n this.bgSegs = null;\r\n };\r\n EventRenderer.prototype.getSegs = function () {\r\n return (this.bgSegs || []).concat(this.fgSegs || []);\r\n };\r\n // Renders foreground event segments onto the grid\r\n EventRenderer.prototype.renderFgSegs = function (segs) {\r\n // subclasses must implement\r\n // segs already has rendered els, and has been filtered.\r\n return false; // signal failure if not implemented\r\n };\r\n // Unrenders all currently rendered foreground segments\r\n EventRenderer.prototype.unrenderFgSegs = function (segs) {\r\n // subclasses must implement\r\n };\r\n EventRenderer.prototype.renderBgSegs = function (segs) {\r\n var _this = this;\r\n if (this.fillRenderer) {\r\n this.fillRenderer.renderSegs('bgEvent', segs, {\r\n getClasses: function (seg) {\r\n return _this.getBgClasses(seg.footprint.eventDef);\r\n },\r\n getCss: function (seg) {\r\n return {\r\n 'background-color': _this.getBgColor(seg.footprint.eventDef)\r\n };\r\n },\r\n filterEl: function (seg, el) {\r\n return _this.filterEventRenderEl(seg.footprint, el);\r\n }\r\n });\r\n }\r\n else {\r\n return false; // signal failure if no fillRenderer\r\n }\r\n };\r\n EventRenderer.prototype.unrenderBgSegs = function () {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.unrender('bgEvent');\r\n }\r\n };\r\n // Renders and assigns an `el` property for each foreground event segment.\r\n // Only returns segments that successfully rendered.\r\n EventRenderer.prototype.renderFgSegEls = function (segs, disableResizing) {\r\n var _this = this;\r\n if (disableResizing === void 0) { disableResizing = false; }\r\n var hasEventRenderHandlers = this.view.hasPublicHandlers('eventRender');\r\n var html = '';\r\n var renderedSegs = [];\r\n var i;\r\n if (segs.length) { // don't build an empty html string\r\n // build a large concatenation of event segment HTML\r\n for (i = 0; i < segs.length; i++) {\r\n this.beforeFgSegHtml(segs[i]);\r\n html += this.fgSegHtml(segs[i], disableResizing);\r\n }\r\n // Grab individual elements from the combined HTML string. Use each as the default rendering.\r\n // Then, compute the 'el' for each segment. An el might be null if the eventRender callback returned false.\r\n $(html).each(function (i, node) {\r\n var seg = segs[i];\r\n var el = $(node);\r\n if (hasEventRenderHandlers) { // optimization\r\n el = _this.filterEventRenderEl(seg.footprint, el);\r\n }\r\n if (el) {\r\n el.data('fc-seg', seg); // used by handlers\r\n seg.el = el;\r\n renderedSegs.push(seg);\r\n }\r\n });\r\n }\r\n return renderedSegs;\r\n };\r\n EventRenderer.prototype.beforeFgSegHtml = function (seg) {\r\n };\r\n // Generates the HTML for the default rendering of a foreground event segment. Used by renderFgSegEls()\r\n EventRenderer.prototype.fgSegHtml = function (seg, disableResizing) {\r\n // subclasses should implement\r\n };\r\n // Generic utility for generating the HTML classNames for an event segment's element\r\n EventRenderer.prototype.getSegClasses = function (seg, isDraggable, isResizable) {\r\n var classes = [\r\n 'fc-event',\r\n seg.isStart ? 'fc-start' : 'fc-not-start',\r\n seg.isEnd ? 'fc-end' : 'fc-not-end'\r\n ].concat(this.getClasses(seg.footprint.eventDef));\r\n if (isDraggable) {\r\n classes.push('fc-draggable');\r\n }\r\n if (isResizable) {\r\n classes.push('fc-resizable');\r\n }\r\n // event is currently selected? attach a className.\r\n if (this.view.isEventDefSelected(seg.footprint.eventDef)) {\r\n classes.push('fc-selected');\r\n }\r\n return classes;\r\n };\r\n // Given an event and the default element used for rendering, returns the element that should actually be used.\r\n // Basically runs events and elements through the eventRender hook.\r\n EventRenderer.prototype.filterEventRenderEl = function (eventFootprint, el) {\r\n var legacy = eventFootprint.getEventLegacy();\r\n var custom = this.view.publiclyTrigger('eventRender', {\r\n context: legacy,\r\n args: [legacy, el, this.view]\r\n });\r\n if (custom === false) { // means don't render at all\r\n el = null;\r\n }\r\n else if (custom && custom !== true) {\r\n el = $(custom);\r\n }\r\n return el;\r\n };\r\n // Compute the text that should be displayed on an event's element.\r\n // `range` can be the Event object itself, or something range-like, with at least a `start`.\r\n // If event times are disabled, or the event has no time, will return a blank string.\r\n // If not specified, formatStr will default to the eventTimeFormat setting,\r\n // and displayEnd will default to the displayEventEnd setting.\r\n EventRenderer.prototype.getTimeText = function (eventFootprint, formatStr, displayEnd) {\r\n return this._getTimeText(eventFootprint.eventInstance.dateProfile.start, eventFootprint.eventInstance.dateProfile.end, eventFootprint.componentFootprint.isAllDay, formatStr, displayEnd);\r\n };\r\n EventRenderer.prototype._getTimeText = function (start, end, isAllDay, formatStr, displayEnd) {\r\n if (formatStr == null) {\r\n formatStr = this.eventTimeFormat;\r\n }\r\n if (displayEnd == null) {\r\n displayEnd = this.displayEventEnd;\r\n }\r\n if (this.displayEventTime && !isAllDay) {\r\n if (displayEnd && end) {\r\n return this.view.formatRange({ start: start, end: end }, false, // allDay\r\n formatStr);\r\n }\r\n else {\r\n return start.format(formatStr);\r\n }\r\n }\r\n return '';\r\n };\r\n EventRenderer.prototype.computeEventTimeFormat = function () {\r\n return this.opt('smallTimeFormat');\r\n };\r\n EventRenderer.prototype.computeDisplayEventTime = function () {\r\n return true;\r\n };\r\n EventRenderer.prototype.computeDisplayEventEnd = function () {\r\n return true;\r\n };\r\n EventRenderer.prototype.getBgClasses = function (eventDef) {\r\n var classNames = this.getClasses(eventDef);\r\n classNames.push('fc-bgevent');\r\n return classNames;\r\n };\r\n EventRenderer.prototype.getClasses = function (eventDef) {\r\n var objs = this.getStylingObjs(eventDef);\r\n var i;\r\n var classNames = [];\r\n for (i = 0; i < objs.length; i++) {\r\n classNames.push.apply(// append\r\n classNames, objs[i].eventClassName || objs[i].className || []);\r\n }\r\n return classNames;\r\n };\r\n // Utility for generating event skin-related CSS properties\r\n EventRenderer.prototype.getSkinCss = function (eventDef) {\r\n return {\r\n 'background-color': this.getBgColor(eventDef),\r\n 'border-color': this.getBorderColor(eventDef),\r\n color: this.getTextColor(eventDef)\r\n };\r\n };\r\n // Queries for caller-specified color, then falls back to default\r\n EventRenderer.prototype.getBgColor = function (eventDef) {\r\n var objs = this.getStylingObjs(eventDef);\r\n var i;\r\n var val;\r\n for (i = 0; i < objs.length && !val; i++) {\r\n val = objs[i].eventBackgroundColor || objs[i].eventColor ||\r\n objs[i].backgroundColor || objs[i].color;\r\n }\r\n if (!val) {\r\n val = this.opt('eventBackgroundColor') || this.opt('eventColor');\r\n }\r\n return val;\r\n };\r\n // Queries for caller-specified color, then falls back to default\r\n EventRenderer.prototype.getBorderColor = function (eventDef) {\r\n var objs = this.getStylingObjs(eventDef);\r\n var i;\r\n var val;\r\n for (i = 0; i < objs.length && !val; i++) {\r\n val = objs[i].eventBorderColor || objs[i].eventColor ||\r\n objs[i].borderColor || objs[i].color;\r\n }\r\n if (!val) {\r\n val = this.opt('eventBorderColor') || this.opt('eventColor');\r\n }\r\n return val;\r\n };\r\n // Queries for caller-specified color, then falls back to default\r\n EventRenderer.prototype.getTextColor = function (eventDef) {\r\n var objs = this.getStylingObjs(eventDef);\r\n var i;\r\n var val;\r\n for (i = 0; i < objs.length && !val; i++) {\r\n val = objs[i].eventTextColor ||\r\n objs[i].textColor;\r\n }\r\n if (!val) {\r\n val = this.opt('eventTextColor');\r\n }\r\n return val;\r\n };\r\n EventRenderer.prototype.getStylingObjs = function (eventDef) {\r\n var objs = this.getFallbackStylingObjs(eventDef);\r\n objs.unshift(eventDef);\r\n return objs;\r\n };\r\n EventRenderer.prototype.getFallbackStylingObjs = function (eventDef) {\r\n return [eventDef.source];\r\n };\r\n EventRenderer.prototype.sortEventSegs = function (segs) {\r\n segs.sort(util_1.proxy(this, 'compareEventSegs'));\r\n };\r\n // A cmp function for determining which segments should take visual priority\r\n EventRenderer.prototype.compareEventSegs = function (seg1, seg2) {\r\n var f1 = seg1.footprint;\r\n var f2 = seg2.footprint;\r\n var cf1 = f1.componentFootprint;\r\n var cf2 = f2.componentFootprint;\r\n var r1 = cf1.unzonedRange;\r\n var r2 = cf2.unzonedRange;\r\n return r1.startMs - r2.startMs || // earlier events go first\r\n (r2.endMs - r2.startMs) - (r1.endMs - r1.startMs) || // tie? longer events go first\r\n cf2.isAllDay - cf1.isAllDay || // tie? put all-day events first (booleans cast to 0/1)\r\n util_1.compareByFieldSpecs(f1.eventDef, f2.eventDef, this.view.eventOrderSpecs, f1.eventDef.miscProps, f2.eventDef.miscProps);\r\n };\r\n return EventRenderer;\r\n}());\r\nexports.default = EventRenderer;\r\n\n\n/***/ }),\n/* 45 */,\n/* 46 */,\n/* 47 */,\n/* 48 */,\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment_ext_1 = __webpack_require__(11);\r\n// Plugin\r\n// -------------------------------------------------------------------------------------------------\r\nmoment_ext_1.newMomentProto.format = function () {\r\n if (this._fullCalendar && arguments[0]) { // an enhanced moment? and a format string provided?\r\n return formatDate(this, arguments[0]); // our extended formatting\r\n }\r\n if (this._ambigTime) {\r\n return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD');\r\n }\r\n if (this._ambigZone) {\r\n return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD[T]HH:mm:ss');\r\n }\r\n if (this._fullCalendar) { // enhanced non-ambig moment?\r\n // moment.format() doesn't ensure english, but we want to.\r\n return moment_ext_1.oldMomentFormat(englishMoment(this));\r\n }\r\n return moment_ext_1.oldMomentProto.format.apply(this, arguments);\r\n};\r\nmoment_ext_1.newMomentProto.toISOString = function () {\r\n if (this._ambigTime) {\r\n return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD');\r\n }\r\n if (this._ambigZone) {\r\n return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD[T]HH:mm:ss');\r\n }\r\n if (this._fullCalendar) { // enhanced non-ambig moment?\r\n // depending on browser, moment might not output english. ensure english.\r\n // https://github.com/moment/moment/blob/2.18.1/src/lib/moment/format.js#L22\r\n return moment_ext_1.oldMomentProto.toISOString.apply(englishMoment(this), arguments);\r\n }\r\n return moment_ext_1.oldMomentProto.toISOString.apply(this, arguments);\r\n};\r\nfunction englishMoment(mom) {\r\n if (mom.locale() !== 'en') {\r\n return mom.clone().locale('en');\r\n }\r\n return mom;\r\n}\r\n// Config\r\n// ---------------------------------------------------------------------------------------------------------------------\r\n/*\r\nInserted between chunks in the fake (\"intermediate\") formatting string.\r\nImportant that it passes as whitespace (\\s) because moment often identifies non-standalone months\r\nvia a regexp with an \\s.\r\n*/\r\nvar PART_SEPARATOR = '\\u000b'; // vertical tab\r\n/*\r\nInserted as the first character of a literal-text chunk to indicate that the literal text is not actually literal text,\r\nbut rather, a \"special\" token that has custom rendering (see specialTokens map).\r\n*/\r\nvar SPECIAL_TOKEN_MARKER = '\\u001f'; // information separator 1\r\n/*\r\nInserted at the beginning and end of a span of text that must have non-zero numeric characters.\r\nHandling of these markers is done in a post-processing step at the very end of text rendering.\r\n*/\r\nvar MAYBE_MARKER = '\\u001e'; // information separator 2\r\nvar MAYBE_REGEXP = new RegExp(MAYBE_MARKER + '([^' + MAYBE_MARKER + ']*)' + MAYBE_MARKER, 'g'); // must be global\r\n/*\r\nAddition formatting tokens we want recognized\r\n*/\r\nvar specialTokens = {\r\n t: function (date) {\r\n return moment_ext_1.oldMomentFormat(date, 'a').charAt(0);\r\n },\r\n T: function (date) {\r\n return moment_ext_1.oldMomentFormat(date, 'A').charAt(0);\r\n }\r\n};\r\n/*\r\nThe first characters of formatting tokens for units that are 1 day or larger.\r\n`value` is for ranking relative size (lower means bigger).\r\n`unit` is a normalized unit, used for comparing moments.\r\n*/\r\nvar largeTokenMap = {\r\n Y: { value: 1, unit: 'year' },\r\n M: { value: 2, unit: 'month' },\r\n W: { value: 3, unit: 'week' },\r\n w: { value: 3, unit: 'week' },\r\n D: { value: 4, unit: 'day' },\r\n d: { value: 4, unit: 'day' } // day of week\r\n};\r\n// Single Date Formatting\r\n// ---------------------------------------------------------------------------------------------------------------------\r\n/*\r\nFormats `date` with a Moment formatting string, but allow our non-zero areas and special token\r\n*/\r\nfunction formatDate(date, formatStr) {\r\n return renderFakeFormatString(getParsedFormatString(formatStr).fakeFormatString, date);\r\n}\r\nexports.formatDate = formatDate;\r\n// Date Range Formatting\r\n// -------------------------------------------------------------------------------------------------\r\n// TODO: make it work with timezone offset\r\n/*\r\nUsing a formatting string meant for a single date, generate a range string, like\r\n\"Sep 2 - 9 2013\", that intelligently inserts a separator where the dates differ.\r\nIf the dates are the same as far as the format string is concerned, just return a single\r\nrendering of one date, without any separator.\r\n*/\r\nfunction formatRange(date1, date2, formatStr, separator, isRTL) {\r\n var localeData;\r\n date1 = moment_ext_1.default.parseZone(date1);\r\n date2 = moment_ext_1.default.parseZone(date2);\r\n localeData = date1.localeData();\r\n // Expand localized format strings, like \"LL\" -> \"MMMM D YYYY\".\r\n // BTW, this is not important for `formatDate` because it is impossible to put custom tokens\r\n // or non-zero areas in Moment's localized format strings.\r\n formatStr = localeData.longDateFormat(formatStr) || formatStr;\r\n return renderParsedFormat(getParsedFormatString(formatStr), date1, date2, separator || ' - ', isRTL);\r\n}\r\nexports.formatRange = formatRange;\r\n/*\r\nRenders a range with an already-parsed format string.\r\n*/\r\nfunction renderParsedFormat(parsedFormat, date1, date2, separator, isRTL) {\r\n var sameUnits = parsedFormat.sameUnits;\r\n var unzonedDate1 = date1.clone().stripZone(); // for same-unit comparisons\r\n var unzonedDate2 = date2.clone().stripZone(); // \"\r\n var renderedParts1 = renderFakeFormatStringParts(parsedFormat.fakeFormatString, date1);\r\n var renderedParts2 = renderFakeFormatStringParts(parsedFormat.fakeFormatString, date2);\r\n var leftI;\r\n var leftStr = '';\r\n var rightI;\r\n var rightStr = '';\r\n var middleI;\r\n var middleStr1 = '';\r\n var middleStr2 = '';\r\n var middleStr = '';\r\n // Start at the leftmost side of the formatting string and continue until you hit a token\r\n // that is not the same between dates.\r\n for (leftI = 0; leftI < sameUnits.length && (!sameUnits[leftI] || unzonedDate1.isSame(unzonedDate2, sameUnits[leftI])); leftI++) {\r\n leftStr += renderedParts1[leftI];\r\n }\r\n // Similarly, start at the rightmost side of the formatting string and move left\r\n for (rightI = sameUnits.length - 1; rightI > leftI && (!sameUnits[rightI] || unzonedDate1.isSame(unzonedDate2, sameUnits[rightI])); rightI--) {\r\n // If current chunk is on the boundary of unique date-content, and is a special-case\r\n // date-formatting postfix character, then don't consume it. Consider it unique date-content.\r\n // TODO: make configurable\r\n if (rightI - 1 === leftI && renderedParts1[rightI] === '.') {\r\n break;\r\n }\r\n rightStr = renderedParts1[rightI] + rightStr;\r\n }\r\n // The area in the middle is different for both of the dates.\r\n // Collect them distinctly so we can jam them together later.\r\n for (middleI = leftI; middleI <= rightI; middleI++) {\r\n middleStr1 += renderedParts1[middleI];\r\n middleStr2 += renderedParts2[middleI];\r\n }\r\n if (middleStr1 || middleStr2) {\r\n if (isRTL) {\r\n middleStr = middleStr2 + separator + middleStr1;\r\n }\r\n else {\r\n middleStr = middleStr1 + separator + middleStr2;\r\n }\r\n }\r\n return processMaybeMarkers(leftStr + middleStr + rightStr);\r\n}\r\n// Format String Parsing\r\n// ---------------------------------------------------------------------------------------------------------------------\r\nvar parsedFormatStrCache = {};\r\n/*\r\nReturns a parsed format string, leveraging a cache.\r\n*/\r\nfunction getParsedFormatString(formatStr) {\r\n return parsedFormatStrCache[formatStr] ||\r\n (parsedFormatStrCache[formatStr] = parseFormatString(formatStr));\r\n}\r\n/*\r\nParses a format string into the following:\r\n- fakeFormatString: a momentJS formatting string, littered with special control characters that get post-processed.\r\n- sameUnits: for every part in fakeFormatString, if the part is a token, the value will be a unit string (like \"day\"),\r\n that indicates how similar a range's start & end must be in order to share the same formatted text.\r\n If not a token, then the value is null.\r\n Always a flat array (not nested liked \"chunks\").\r\n*/\r\nfunction parseFormatString(formatStr) {\r\n var chunks = chunkFormatString(formatStr);\r\n return {\r\n fakeFormatString: buildFakeFormatString(chunks),\r\n sameUnits: buildSameUnits(chunks)\r\n };\r\n}\r\n/*\r\nBreak the formatting string into an array of chunks.\r\nA 'maybe' chunk will have nested chunks.\r\n*/\r\nfunction chunkFormatString(formatStr) {\r\n var chunks = [];\r\n var match;\r\n // TODO: more descrimination\r\n // \\4 is a backreference to the first character of a multi-character set.\r\n var chunker = /\\[([^\\]]*)\\]|\\(([^\\)]*)\\)|(LTS|LT|(\\w)\\4*o?)|([^\\w\\[\\(]+)/g;\r\n while ((match = chunker.exec(formatStr))) {\r\n if (match[1]) { // a literal string inside [ ... ]\r\n chunks.push.apply(chunks, // append\r\n splitStringLiteral(match[1]));\r\n }\r\n else if (match[2]) { // non-zero formatting inside ( ... )\r\n chunks.push({ maybe: chunkFormatString(match[2]) });\r\n }\r\n else if (match[3]) { // a formatting token\r\n chunks.push({ token: match[3] });\r\n }\r\n else if (match[5]) { // an unenclosed literal string\r\n chunks.push.apply(chunks, // append\r\n splitStringLiteral(match[5]));\r\n }\r\n }\r\n return chunks;\r\n}\r\n/*\r\nPotentially splits a literal-text string into multiple parts. For special cases.\r\n*/\r\nfunction splitStringLiteral(s) {\r\n if (s === '. ') {\r\n return ['.', ' ']; // for locales with periods bound to the end of each year/month/date\r\n }\r\n else {\r\n return [s];\r\n }\r\n}\r\n/*\r\nGiven chunks parsed from a real format string, generate a fake (aka \"intermediate\") format string with special control\r\ncharacters that will eventually be given to moment for formatting, and then post-processed.\r\n*/\r\nfunction buildFakeFormatString(chunks) {\r\n var parts = [];\r\n var i;\r\n var chunk;\r\n for (i = 0; i < chunks.length; i++) {\r\n chunk = chunks[i];\r\n if (typeof chunk === 'string') {\r\n parts.push('[' + chunk + ']');\r\n }\r\n else if (chunk.token) {\r\n if (chunk.token in specialTokens) {\r\n parts.push(SPECIAL_TOKEN_MARKER + // useful during post-processing\r\n '[' + chunk.token + ']' // preserve as literal text\r\n );\r\n }\r\n else {\r\n parts.push(chunk.token); // unprotected text implies a format string\r\n }\r\n }\r\n else if (chunk.maybe) {\r\n parts.push(MAYBE_MARKER + // useful during post-processing\r\n buildFakeFormatString(chunk.maybe) +\r\n MAYBE_MARKER);\r\n }\r\n }\r\n return parts.join(PART_SEPARATOR);\r\n}\r\n/*\r\nGiven parsed chunks from a real formatting string, generates an array of unit strings (like \"day\") that indicate\r\nin which regard two dates must be similar in order to share range formatting text.\r\nThe `chunks` can be nested (because of \"maybe\" chunks), however, the returned array will be flat.\r\n*/\r\nfunction buildSameUnits(chunks) {\r\n var units = [];\r\n var i;\r\n var chunk;\r\n var tokenInfo;\r\n for (i = 0; i < chunks.length; i++) {\r\n chunk = chunks[i];\r\n if (chunk.token) {\r\n tokenInfo = largeTokenMap[chunk.token.charAt(0)];\r\n units.push(tokenInfo ? tokenInfo.unit : 'second'); // default to a very strict same-second\r\n }\r\n else if (chunk.maybe) {\r\n units.push.apply(units, // append\r\n buildSameUnits(chunk.maybe));\r\n }\r\n else {\r\n units.push(null);\r\n }\r\n }\r\n return units;\r\n}\r\n// Rendering to text\r\n// ---------------------------------------------------------------------------------------------------------------------\r\n/*\r\nFormats a date with a fake format string, post-processes the control characters, then returns.\r\n*/\r\nfunction renderFakeFormatString(fakeFormatString, date) {\r\n return processMaybeMarkers(renderFakeFormatStringParts(fakeFormatString, date).join(''));\r\n}\r\n/*\r\nFormats a date into parts that will have been post-processed, EXCEPT for the \"maybe\" markers.\r\n*/\r\nfunction renderFakeFormatStringParts(fakeFormatString, date) {\r\n var parts = [];\r\n var fakeRender = moment_ext_1.oldMomentFormat(date, fakeFormatString);\r\n var fakeParts = fakeRender.split(PART_SEPARATOR);\r\n var i;\r\n var fakePart;\r\n for (i = 0; i < fakeParts.length; i++) {\r\n fakePart = fakeParts[i];\r\n if (fakePart.charAt(0) === SPECIAL_TOKEN_MARKER) {\r\n parts.push(\r\n // the literal string IS the token's name.\r\n // call special token's registered function.\r\n specialTokens[fakePart.substring(1)](date));\r\n }\r\n else {\r\n parts.push(fakePart);\r\n }\r\n }\r\n return parts;\r\n}\r\n/*\r\nAccepts an almost-finally-formatted string and processes the \"maybe\" control characters, returning a new string.\r\n*/\r\nfunction processMaybeMarkers(s) {\r\n return s.replace(MAYBE_REGEXP, function (m0, m1) {\r\n if (m1.match(/[1-9]/)) { // any non-zero numeric characters?\r\n return m1;\r\n }\r\n else {\r\n return '';\r\n }\r\n });\r\n}\r\n// Misc Utils\r\n// -------------------------------------------------------------------------------------------------\r\n/*\r\nReturns a unit string, either 'year', 'month', 'day', or null for the most granular formatting token in the string.\r\n*/\r\nfunction queryMostGranularFormatUnit(formatStr) {\r\n var chunks = chunkFormatString(formatStr);\r\n var i;\r\n var chunk;\r\n var candidate;\r\n var best;\r\n for (i = 0; i < chunks.length; i++) {\r\n chunk = chunks[i];\r\n if (chunk.token) {\r\n candidate = largeTokenMap[chunk.token.charAt(0)];\r\n if (candidate) {\r\n if (!best || candidate.value > best.value) {\r\n best = candidate;\r\n }\r\n }\r\n }\r\n }\r\n if (best) {\r\n return best.unit;\r\n }\r\n return null;\r\n}\r\nexports.queryMostGranularFormatUnit = queryMostGranularFormatUnit;\r\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventRange = /** @class */ (function () {\r\n function EventRange(unzonedRange, eventDef, eventInstance) {\r\n this.unzonedRange = unzonedRange;\r\n this.eventDef = eventDef;\r\n if (eventInstance) {\r\n this.eventInstance = eventInstance;\r\n }\r\n }\r\n return EventRange;\r\n}());\r\nexports.default = EventRange;\r\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Class_1 = __webpack_require__(35);\r\nvar EmitterMixin_1 = __webpack_require__(13);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar Model = /** @class */ (function (_super) {\r\n tslib_1.__extends(Model, _super);\r\n function Model() {\r\n var _this = _super.call(this) || this;\r\n _this._watchers = {};\r\n _this._props = {};\r\n _this.applyGlobalWatchers();\r\n _this.constructed();\r\n return _this;\r\n }\r\n Model.watch = function (name) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n // subclasses should make a masked-copy of the superclass's map\r\n // TODO: write test\r\n if (!this.prototype.hasOwnProperty('_globalWatchArgs')) {\r\n this.prototype._globalWatchArgs = Object.create(this.prototype._globalWatchArgs);\r\n }\r\n this.prototype._globalWatchArgs[name] = args;\r\n };\r\n Model.prototype.constructed = function () {\r\n // useful for monkeypatching. TODO: BaseClass?\r\n };\r\n Model.prototype.applyGlobalWatchers = function () {\r\n var map = this._globalWatchArgs;\r\n var name;\r\n for (name in map) {\r\n this.watch.apply(this, [name].concat(map[name]));\r\n }\r\n };\r\n Model.prototype.has = function (name) {\r\n return name in this._props;\r\n };\r\n Model.prototype.get = function (name) {\r\n if (name === undefined) {\r\n return this._props;\r\n }\r\n return this._props[name];\r\n };\r\n Model.prototype.set = function (name, val) {\r\n var newProps;\r\n if (typeof name === 'string') {\r\n newProps = {};\r\n newProps[name] = val === undefined ? null : val;\r\n }\r\n else {\r\n newProps = name;\r\n }\r\n this.setProps(newProps);\r\n };\r\n Model.prototype.reset = function (newProps) {\r\n var oldProps = this._props;\r\n var changeset = {}; // will have undefined's to signal unsets\r\n var name;\r\n for (name in oldProps) {\r\n changeset[name] = undefined;\r\n }\r\n for (name in newProps) {\r\n changeset[name] = newProps[name];\r\n }\r\n this.setProps(changeset);\r\n };\r\n Model.prototype.unset = function (name) {\r\n var newProps = {};\r\n var names;\r\n var i;\r\n if (typeof name === 'string') {\r\n names = [name];\r\n }\r\n else {\r\n names = name;\r\n }\r\n for (i = 0; i < names.length; i++) {\r\n newProps[names[i]] = undefined;\r\n }\r\n this.setProps(newProps);\r\n };\r\n Model.prototype.setProps = function (newProps) {\r\n var changedProps = {};\r\n var changedCnt = 0;\r\n var name;\r\n var val;\r\n for (name in newProps) {\r\n val = newProps[name];\r\n // a change in value?\r\n // if an object, don't check equality, because might have been mutated internally.\r\n // TODO: eventually enforce immutability.\r\n if (typeof val === 'object' ||\r\n val !== this._props[name]) {\r\n changedProps[name] = val;\r\n changedCnt++;\r\n }\r\n }\r\n if (changedCnt) {\r\n this.trigger('before:batchChange', changedProps);\r\n for (name in changedProps) {\r\n val = changedProps[name];\r\n this.trigger('before:change', name, val);\r\n this.trigger('before:change:' + name, val);\r\n }\r\n for (name in changedProps) {\r\n val = changedProps[name];\r\n if (val === undefined) {\r\n delete this._props[name];\r\n }\r\n else {\r\n this._props[name] = val;\r\n }\r\n this.trigger('change:' + name, val);\r\n this.trigger('change', name, val);\r\n }\r\n this.trigger('batchChange', changedProps);\r\n }\r\n };\r\n Model.prototype.watch = function (name, depList, startFunc, stopFunc) {\r\n var _this = this;\r\n this.unwatch(name);\r\n this._watchers[name] = this._watchDeps(depList, function (deps) {\r\n var res = startFunc.call(_this, deps);\r\n if (res && res.then) {\r\n _this.unset(name); // put in an unset state while resolving\r\n res.then(function (val) {\r\n _this.set(name, val);\r\n });\r\n }\r\n else {\r\n _this.set(name, res);\r\n }\r\n }, function (deps) {\r\n _this.unset(name);\r\n if (stopFunc) {\r\n stopFunc.call(_this, deps);\r\n }\r\n });\r\n };\r\n Model.prototype.unwatch = function (name) {\r\n var watcher = this._watchers[name];\r\n if (watcher) {\r\n delete this._watchers[name];\r\n watcher.teardown();\r\n }\r\n };\r\n Model.prototype._watchDeps = function (depList, startFunc, stopFunc) {\r\n var _this = this;\r\n var queuedChangeCnt = 0;\r\n var depCnt = depList.length;\r\n var satisfyCnt = 0;\r\n var values = {}; // what's passed as the `deps` arguments\r\n var bindTuples = []; // array of [ eventName, handlerFunc ] arrays\r\n var isCallingStop = false;\r\n var onBeforeDepChange = function (depName, val, isOptional) {\r\n queuedChangeCnt++;\r\n if (queuedChangeCnt === 1) { // first change to cause a \"stop\" ?\r\n if (satisfyCnt === depCnt) { // all deps previously satisfied?\r\n isCallingStop = true;\r\n stopFunc(values);\r\n isCallingStop = false;\r\n }\r\n }\r\n };\r\n var onDepChange = function (depName, val, isOptional) {\r\n if (val === undefined) { // unsetting a value?\r\n // required dependency that was previously set?\r\n if (!isOptional && values[depName] !== undefined) {\r\n satisfyCnt--;\r\n }\r\n delete values[depName];\r\n }\r\n else { // setting a value?\r\n // required dependency that was previously unset?\r\n if (!isOptional && values[depName] === undefined) {\r\n satisfyCnt++;\r\n }\r\n values[depName] = val;\r\n }\r\n queuedChangeCnt--;\r\n if (!queuedChangeCnt) { // last change to cause a \"start\"?\r\n // now finally satisfied or satisfied all along?\r\n if (satisfyCnt === depCnt) {\r\n // if the stopFunc initiated another value change, ignore it.\r\n // it will be processed by another change event anyway.\r\n if (!isCallingStop) {\r\n startFunc(values);\r\n }\r\n }\r\n }\r\n };\r\n // intercept for .on() that remembers handlers\r\n var bind = function (eventName, handler) {\r\n _this.on(eventName, handler);\r\n bindTuples.push([eventName, handler]);\r\n };\r\n // listen to dependency changes\r\n depList.forEach(function (depName) {\r\n var isOptional = false;\r\n if (depName.charAt(0) === '?') { // TODO: more DRY\r\n depName = depName.substring(1);\r\n isOptional = true;\r\n }\r\n bind('before:change:' + depName, function (val) {\r\n onBeforeDepChange(depName, val, isOptional);\r\n });\r\n bind('change:' + depName, function (val) {\r\n onDepChange(depName, val, isOptional);\r\n });\r\n });\r\n // process current dependency values\r\n depList.forEach(function (depName) {\r\n var isOptional = false;\r\n if (depName.charAt(0) === '?') { // TODO: more DRY\r\n depName = depName.substring(1);\r\n isOptional = true;\r\n }\r\n if (_this.has(depName)) {\r\n values[depName] = _this.get(depName);\r\n satisfyCnt++;\r\n }\r\n else if (isOptional) {\r\n satisfyCnt++;\r\n }\r\n });\r\n // initially satisfied\r\n if (satisfyCnt === depCnt) {\r\n startFunc(values);\r\n }\r\n return {\r\n teardown: function () {\r\n // remove all handlers\r\n for (var i = 0; i < bindTuples.length; i++) {\r\n _this.off(bindTuples[i][0], bindTuples[i][1]);\r\n }\r\n bindTuples = null;\r\n // was satisfied, so call stopFunc\r\n if (satisfyCnt === depCnt) {\r\n stopFunc();\r\n }\r\n },\r\n flash: function () {\r\n if (satisfyCnt === depCnt) {\r\n stopFunc();\r\n startFunc(values);\r\n }\r\n }\r\n };\r\n };\r\n Model.prototype.flash = function (name) {\r\n var watcher = this._watchers[name];\r\n if (watcher) {\r\n watcher.flash();\r\n }\r\n };\r\n return Model;\r\n}(Class_1.default));\r\nexports.default = Model;\r\nModel.prototype._globalWatchArgs = {}; // mutation protection in Model.watch\r\nEmitterMixin_1.default.mixInto(Model);\r\nListenerMixin_1.default.mixInto(Model);\r\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\r\nUSAGE:\r\n import { default as ParsableModelMixin, ParsableModelInterface } from './ParsableModelMixin'\r\nin class:\r\n applyProps: ParsableModelInterface['applyProps']\r\n applyManualStandardProps: ParsableModelInterface['applyManualStandardProps']\r\n applyMiscProps: ParsableModelInterface['applyMiscProps']\r\n isStandardProp: ParsableModelInterface['isStandardProp']\r\n static defineStandardProps = ParsableModelMixin.defineStandardProps\r\n static copyVerbatimStandardProps = ParsableModelMixin.copyVerbatimStandardProps\r\nafter class:\r\n ParsableModelMixin.mixInto(TheClass)\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar Mixin_1 = __webpack_require__(15);\r\nvar ParsableModelMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(ParsableModelMixin, _super);\r\n function ParsableModelMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ParsableModelMixin.defineStandardProps = function (propDefs) {\r\n var proto = this.prototype;\r\n if (!proto.hasOwnProperty('standardPropMap')) {\r\n proto.standardPropMap = Object.create(proto.standardPropMap);\r\n }\r\n util_1.copyOwnProps(propDefs, proto.standardPropMap);\r\n };\r\n ParsableModelMixin.copyVerbatimStandardProps = function (src, dest) {\r\n var map = this.prototype.standardPropMap;\r\n var propName;\r\n for (propName in map) {\r\n if (src[propName] != null && // in the src object?\r\n map[propName] === true // false means \"copy verbatim\"\r\n ) {\r\n dest[propName] = src[propName];\r\n }\r\n }\r\n };\r\n /*\r\n Returns true/false for success.\r\n Meant to be only called ONCE, at object creation.\r\n */\r\n ParsableModelMixin.prototype.applyProps = function (rawProps) {\r\n var standardPropMap = this.standardPropMap;\r\n var manualProps = {};\r\n var miscProps = {};\r\n var propName;\r\n for (propName in rawProps) {\r\n if (standardPropMap[propName] === true) { // copy verbatim\r\n this[propName] = rawProps[propName];\r\n }\r\n else if (standardPropMap[propName] === false) {\r\n manualProps[propName] = rawProps[propName];\r\n }\r\n else {\r\n miscProps[propName] = rawProps[propName];\r\n }\r\n }\r\n this.applyMiscProps(miscProps);\r\n return this.applyManualStandardProps(manualProps);\r\n };\r\n /*\r\n If subclasses override, they must call this supermethod and return the boolean response.\r\n Meant to be only called ONCE, at object creation.\r\n */\r\n ParsableModelMixin.prototype.applyManualStandardProps = function (rawProps) {\r\n return true;\r\n };\r\n /*\r\n Can be called even after initial object creation.\r\n */\r\n ParsableModelMixin.prototype.applyMiscProps = function (rawProps) {\r\n // subclasses can implement\r\n };\r\n /*\r\n TODO: why is this a method when defineStandardProps is static\r\n */\r\n ParsableModelMixin.prototype.isStandardProp = function (propName) {\r\n return propName in this.standardPropMap;\r\n };\r\n return ParsableModelMixin;\r\n}(Mixin_1.default));\r\nexports.default = ParsableModelMixin;\r\nParsableModelMixin.prototype.standardPropMap = {}; // will be cloned by defineStandardProps\r\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventInstance = /** @class */ (function () {\r\n function EventInstance(def, dateProfile) {\r\n this.def = def;\r\n this.dateProfile = dateProfile;\r\n }\r\n EventInstance.prototype.toLegacy = function () {\r\n var dateProfile = this.dateProfile;\r\n var obj = this.def.toLegacy();\r\n obj.start = dateProfile.start.clone();\r\n obj.end = dateProfile.end ? dateProfile.end.clone() : null;\r\n return obj;\r\n };\r\n return EventInstance;\r\n}());\r\nexports.default = EventInstance;\r\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar EventDef_1 = __webpack_require__(37);\r\nvar EventInstance_1 = __webpack_require__(53);\r\nvar EventDateProfile_1 = __webpack_require__(16);\r\nvar RecurringEventDef = /** @class */ (function (_super) {\r\n tslib_1.__extends(RecurringEventDef, _super);\r\n function RecurringEventDef() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n RecurringEventDef.prototype.isAllDay = function () {\r\n return !this.startTime && !this.endTime;\r\n };\r\n RecurringEventDef.prototype.buildInstances = function (unzonedRange) {\r\n var calendar = this.source.calendar;\r\n var unzonedDate = unzonedRange.getStart();\r\n var unzonedEnd = unzonedRange.getEnd();\r\n var zonedDayStart;\r\n var instanceStart;\r\n var instanceEnd;\r\n var instances = [];\r\n while (unzonedDate.isBefore(unzonedEnd)) {\r\n // if everyday, or this particular day-of-week\r\n if (!this.dowHash || this.dowHash[unzonedDate.day()]) {\r\n zonedDayStart = calendar.applyTimezone(unzonedDate);\r\n instanceStart = zonedDayStart.clone();\r\n instanceEnd = null;\r\n if (this.startTime) {\r\n instanceStart.time(this.startTime);\r\n }\r\n else {\r\n instanceStart.stripTime();\r\n }\r\n if (this.endTime) {\r\n instanceEnd = zonedDayStart.clone().time(this.endTime);\r\n }\r\n instances.push(new EventInstance_1.default(this, // definition\r\n new EventDateProfile_1.default(instanceStart, instanceEnd, calendar)));\r\n }\r\n unzonedDate.add(1, 'days');\r\n }\r\n return instances;\r\n };\r\n RecurringEventDef.prototype.setDow = function (dowNumbers) {\r\n if (!this.dowHash) {\r\n this.dowHash = {};\r\n }\r\n for (var i = 0; i < dowNumbers.length; i++) {\r\n this.dowHash[dowNumbers[i]] = true;\r\n }\r\n };\r\n RecurringEventDef.prototype.clone = function () {\r\n var def = _super.prototype.clone.call(this);\r\n if (def.startTime) {\r\n def.startTime = moment.duration(this.startTime);\r\n }\r\n if (def.endTime) {\r\n def.endTime = moment.duration(this.endTime);\r\n }\r\n if (this.dowHash) {\r\n def.dowHash = $.extend({}, this.dowHash);\r\n }\r\n return def;\r\n };\r\n return RecurringEventDef;\r\n}(EventDef_1.default));\r\nexports.default = RecurringEventDef;\r\n/*\r\nHACK to work with TypeScript mixins\r\nNOTE: if super-method fails, should still attempt to apply\r\n*/\r\nRecurringEventDef.prototype.applyProps = function (rawProps) {\r\n var superSuccess = EventDef_1.default.prototype.applyProps.call(this, rawProps);\r\n if (rawProps.start) {\r\n this.startTime = moment.duration(rawProps.start);\r\n }\r\n if (rawProps.end) {\r\n this.endTime = moment.duration(rawProps.end);\r\n }\r\n if (rawProps.dow) {\r\n this.setDow(rawProps.dow);\r\n }\r\n return superSuccess;\r\n};\r\n// Parsing\r\n// ---------------------------------------------------------------------------------------------------------------------\r\nRecurringEventDef.defineStandardProps({\r\n start: false,\r\n end: false,\r\n dow: false\r\n});\r\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar DateProfileGenerator = /** @class */ (function () {\r\n function DateProfileGenerator(_view) {\r\n this._view = _view;\r\n }\r\n DateProfileGenerator.prototype.opt = function (name) {\r\n return this._view.opt(name);\r\n };\r\n DateProfileGenerator.prototype.trimHiddenDays = function (unzonedRange) {\r\n return this._view.trimHiddenDays(unzonedRange);\r\n };\r\n DateProfileGenerator.prototype.msToUtcMoment = function (ms, forceAllDay) {\r\n return this._view.calendar.msToUtcMoment(ms, forceAllDay);\r\n };\r\n /* Date Range Computation\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Builds a structure with info about what the dates/ranges will be for the \"prev\" view.\r\n DateProfileGenerator.prototype.buildPrev = function (currentDateProfile) {\r\n var prevDate = currentDateProfile.date.clone()\r\n .startOf(currentDateProfile.currentRangeUnit)\r\n .subtract(currentDateProfile.dateIncrement);\r\n return this.build(prevDate, -1);\r\n };\r\n // Builds a structure with info about what the dates/ranges will be for the \"next\" view.\r\n DateProfileGenerator.prototype.buildNext = function (currentDateProfile) {\r\n var nextDate = currentDateProfile.date.clone()\r\n .startOf(currentDateProfile.currentRangeUnit)\r\n .add(currentDateProfile.dateIncrement);\r\n return this.build(nextDate, 1);\r\n };\r\n // Builds a structure holding dates/ranges for rendering around the given date.\r\n // Optional direction param indicates whether the date is being incremented/decremented\r\n // from its previous value. decremented = -1, incremented = 1 (default).\r\n DateProfileGenerator.prototype.build = function (date, direction, forceToValid) {\r\n if (forceToValid === void 0) { forceToValid = false; }\r\n var isDateAllDay = !date.hasTime();\r\n var validUnzonedRange;\r\n var minTime = null;\r\n var maxTime = null;\r\n var currentInfo;\r\n var isRangeAllDay;\r\n var renderUnzonedRange;\r\n var activeUnzonedRange;\r\n var isValid;\r\n validUnzonedRange = this.buildValidRange();\r\n validUnzonedRange = this.trimHiddenDays(validUnzonedRange);\r\n if (forceToValid) {\r\n date = this.msToUtcMoment(validUnzonedRange.constrainDate(date), // returns MS\r\n isDateAllDay);\r\n }\r\n currentInfo = this.buildCurrentRangeInfo(date, direction);\r\n isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit);\r\n renderUnzonedRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.unzonedRange), currentInfo.unit, isRangeAllDay);\r\n renderUnzonedRange = this.trimHiddenDays(renderUnzonedRange);\r\n activeUnzonedRange = renderUnzonedRange.clone();\r\n if (!this.opt('showNonCurrentDates')) {\r\n activeUnzonedRange = activeUnzonedRange.intersect(currentInfo.unzonedRange);\r\n }\r\n minTime = moment.duration(this.opt('minTime'));\r\n maxTime = moment.duration(this.opt('maxTime'));\r\n activeUnzonedRange = this.adjustActiveRange(activeUnzonedRange, minTime, maxTime);\r\n activeUnzonedRange = activeUnzonedRange.intersect(validUnzonedRange); // might return null\r\n if (activeUnzonedRange) {\r\n date = this.msToUtcMoment(activeUnzonedRange.constrainDate(date), // returns MS\r\n isDateAllDay);\r\n }\r\n // it's invalid if the originally requested date is not contained,\r\n // or if the range is completely outside of the valid range.\r\n isValid = currentInfo.unzonedRange.intersectsWith(validUnzonedRange);\r\n return {\r\n // constraint for where prev/next operations can go and where events can be dragged/resized to.\r\n // an object with optional start and end properties.\r\n validUnzonedRange: validUnzonedRange,\r\n // range the view is formally responsible for.\r\n // for example, a month view might have 1st-31st, excluding padded dates\r\n currentUnzonedRange: currentInfo.unzonedRange,\r\n // name of largest unit being displayed, like \"month\" or \"week\"\r\n currentRangeUnit: currentInfo.unit,\r\n isRangeAllDay: isRangeAllDay,\r\n // dates that display events and accept drag-n-drop\r\n // will be `null` if no dates accept events\r\n activeUnzonedRange: activeUnzonedRange,\r\n // date range with a rendered skeleton\r\n // includes not-active days that need some sort of DOM\r\n renderUnzonedRange: renderUnzonedRange,\r\n // Duration object that denotes the first visible time of any given day\r\n minTime: minTime,\r\n // Duration object that denotes the exclusive visible end time of any given day\r\n maxTime: maxTime,\r\n isValid: isValid,\r\n date: date,\r\n // how far the current date will move for a prev/next operation\r\n dateIncrement: this.buildDateIncrement(currentInfo.duration)\r\n // pass a fallback (might be null) ^\r\n };\r\n };\r\n // Builds an object with optional start/end properties.\r\n // Indicates the minimum/maximum dates to display.\r\n // not responsible for trimming hidden days.\r\n DateProfileGenerator.prototype.buildValidRange = function () {\r\n return this._view.getUnzonedRangeOption('validRange', this._view.calendar.getNow()) ||\r\n new UnzonedRange_1.default(); // completely open-ended\r\n };\r\n // Builds a structure with info about the \"current\" range, the range that is\r\n // highlighted as being the current month for example.\r\n // See build() for a description of `direction`.\r\n // Guaranteed to have `range` and `unit` properties. `duration` is optional.\r\n // TODO: accept a MS-time instead of a moment `date`?\r\n DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) {\r\n var viewSpec = this._view.viewSpec;\r\n var duration = null;\r\n var unit = null;\r\n var unzonedRange = null;\r\n var dayCount;\r\n if (viewSpec.duration) {\r\n duration = viewSpec.duration;\r\n unit = viewSpec.durationUnit;\r\n unzonedRange = this.buildRangeFromDuration(date, direction, duration, unit);\r\n }\r\n else if ((dayCount = this.opt('dayCount'))) {\r\n unit = 'day';\r\n unzonedRange = this.buildRangeFromDayCount(date, direction, dayCount);\r\n }\r\n else if ((unzonedRange = this.buildCustomVisibleRange(date))) {\r\n unit = util_1.computeGreatestUnit(unzonedRange.getStart(), unzonedRange.getEnd());\r\n }\r\n else {\r\n duration = this.getFallbackDuration();\r\n unit = util_1.computeGreatestUnit(duration);\r\n unzonedRange = this.buildRangeFromDuration(date, direction, duration, unit);\r\n }\r\n return { duration: duration, unit: unit, unzonedRange: unzonedRange };\r\n };\r\n DateProfileGenerator.prototype.getFallbackDuration = function () {\r\n return moment.duration({ days: 1 });\r\n };\r\n // Returns a new activeUnzonedRange to have time values (un-ambiguate)\r\n // minTime or maxTime causes the range to expand.\r\n DateProfileGenerator.prototype.adjustActiveRange = function (unzonedRange, minTime, maxTime) {\r\n var start = unzonedRange.getStart();\r\n var end = unzonedRange.getEnd();\r\n if (this._view.usesMinMaxTime) {\r\n if (minTime < 0) {\r\n start.time(0).add(minTime);\r\n }\r\n if (maxTime > 24 * 60 * 60 * 1000) { // beyond 24 hours?\r\n end.time(maxTime - (24 * 60 * 60 * 1000));\r\n }\r\n }\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n // Builds the \"current\" range when it is specified as an explicit duration.\r\n // `unit` is the already-computed computeGreatestUnit value of duration.\r\n // TODO: accept a MS-time instead of a moment `date`?\r\n DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) {\r\n var alignment = this.opt('dateAlignment');\r\n var dateIncrementInput;\r\n var dateIncrementDuration;\r\n var start;\r\n var end;\r\n var res;\r\n // compute what the alignment should be\r\n if (!alignment) {\r\n dateIncrementInput = this.opt('dateIncrement');\r\n if (dateIncrementInput) {\r\n dateIncrementDuration = moment.duration(dateIncrementInput);\r\n // use the smaller of the two units\r\n if (dateIncrementDuration < duration) {\r\n alignment = util_1.computeDurationGreatestUnit(dateIncrementDuration, dateIncrementInput);\r\n }\r\n else {\r\n alignment = unit;\r\n }\r\n }\r\n else {\r\n alignment = unit;\r\n }\r\n }\r\n // if the view displays a single day or smaller\r\n if (duration.as('days') <= 1) {\r\n if (this._view.isHiddenDay(start)) {\r\n start = this._view.skipHiddenDays(start, direction);\r\n start.startOf('day');\r\n }\r\n }\r\n function computeRes() {\r\n start = date.clone().startOf(alignment);\r\n end = start.clone().add(duration);\r\n res = new UnzonedRange_1.default(start, end);\r\n }\r\n computeRes();\r\n // if range is completely enveloped by hidden days, go past the hidden days\r\n if (!this.trimHiddenDays(res)) {\r\n date = this._view.skipHiddenDays(date, direction);\r\n computeRes();\r\n }\r\n return res;\r\n };\r\n // Builds the \"current\" range when a dayCount is specified.\r\n // TODO: accept a MS-time instead of a moment `date`?\r\n DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) {\r\n var customAlignment = this.opt('dateAlignment');\r\n var runningCount = 0;\r\n var start;\r\n var end;\r\n if (customAlignment || direction !== -1) {\r\n start = date.clone();\r\n if (customAlignment) {\r\n start.startOf(customAlignment);\r\n }\r\n start.startOf('day');\r\n start = this._view.skipHiddenDays(start);\r\n end = start.clone();\r\n do {\r\n end.add(1, 'day');\r\n if (!this._view.isHiddenDay(end)) {\r\n runningCount++;\r\n }\r\n } while (runningCount < dayCount);\r\n }\r\n else {\r\n end = date.clone().startOf('day').add(1, 'day');\r\n end = this._view.skipHiddenDays(end, -1, true);\r\n start = end.clone();\r\n do {\r\n start.add(-1, 'day');\r\n if (!this._view.isHiddenDay(start)) {\r\n runningCount++;\r\n }\r\n } while (runningCount < dayCount);\r\n }\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n // Builds a normalized range object for the \"visible\" range,\r\n // which is a way to define the currentUnzonedRange and activeUnzonedRange at the same time.\r\n // TODO: accept a MS-time instead of a moment `date`?\r\n DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) {\r\n var visibleUnzonedRange = this._view.getUnzonedRangeOption('visibleRange', this._view.calendar.applyTimezone(date) // correct zone. also generates new obj that avoids mutations\r\n );\r\n if (visibleUnzonedRange && (visibleUnzonedRange.startMs == null || visibleUnzonedRange.endMs == null)) {\r\n return null;\r\n }\r\n return visibleUnzonedRange;\r\n };\r\n // Computes the range that will represent the element/cells for *rendering*,\r\n // but which may have voided days/times.\r\n // not responsible for trimming hidden days.\r\n DateProfileGenerator.prototype.buildRenderRange = function (currentUnzonedRange, currentRangeUnit, isRangeAllDay) {\r\n return currentUnzonedRange.clone();\r\n };\r\n // Compute the duration value that should be added/substracted to the current date\r\n // when a prev/next operation happens.\r\n DateProfileGenerator.prototype.buildDateIncrement = function (fallback) {\r\n var dateIncrementInput = this.opt('dateIncrement');\r\n var customAlignment;\r\n if (dateIncrementInput) {\r\n return moment.duration(dateIncrementInput);\r\n }\r\n else if ((customAlignment = this.opt('dateAlignment'))) {\r\n return moment.duration(1, customAlignment);\r\n }\r\n else if (fallback) {\r\n return fallback;\r\n }\r\n else {\r\n return moment.duration({ days: 1 });\r\n }\r\n };\r\n return DateProfileGenerator;\r\n}());\r\nexports.default = DateProfileGenerator;\r\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Promise_1 = __webpack_require__(21);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar SingleEventDef_1 = __webpack_require__(9);\r\nvar ArrayEventSource = /** @class */ (function (_super) {\r\n tslib_1.__extends(ArrayEventSource, _super);\r\n function ArrayEventSource(calendar) {\r\n var _this = _super.call(this, calendar) || this;\r\n _this.eventDefs = []; // for if setRawEventDefs is never called\r\n return _this;\r\n }\r\n ArrayEventSource.parse = function (rawInput, calendar) {\r\n var rawProps;\r\n // normalize raw input\r\n if ($.isArray(rawInput.events)) { // extended form\r\n rawProps = rawInput;\r\n }\r\n else if ($.isArray(rawInput)) { // short form\r\n rawProps = { events: rawInput };\r\n }\r\n if (rawProps) {\r\n return EventSource_1.default.parse.call(this, rawProps, calendar);\r\n }\r\n return false;\r\n };\r\n ArrayEventSource.prototype.setRawEventDefs = function (rawEventDefs) {\r\n this.rawEventDefs = rawEventDefs;\r\n this.eventDefs = this.parseEventDefs(rawEventDefs);\r\n };\r\n ArrayEventSource.prototype.fetch = function (start, end, timezone) {\r\n var eventDefs = this.eventDefs;\r\n var i;\r\n if (this.currentTimezone != null &&\r\n this.currentTimezone !== timezone) {\r\n for (i = 0; i < eventDefs.length; i++) {\r\n if (eventDefs[i] instanceof SingleEventDef_1.default) {\r\n eventDefs[i].rezone();\r\n }\r\n }\r\n }\r\n this.currentTimezone = timezone;\r\n return Promise_1.default.resolve(eventDefs);\r\n };\r\n ArrayEventSource.prototype.addEventDef = function (eventDef) {\r\n this.eventDefs.push(eventDef);\r\n };\r\n /*\r\n eventDefId already normalized to a string\r\n */\r\n ArrayEventSource.prototype.removeEventDefsById = function (eventDefId) {\r\n return util_1.removeMatching(this.eventDefs, function (eventDef) {\r\n return eventDef.id === eventDefId;\r\n });\r\n };\r\n ArrayEventSource.prototype.removeAllEventDefs = function () {\r\n this.eventDefs = [];\r\n };\r\n ArrayEventSource.prototype.getPrimitive = function () {\r\n return this.rawEventDefs;\r\n };\r\n ArrayEventSource.prototype.applyManualStandardProps = function (rawProps) {\r\n var superSuccess = _super.prototype.applyManualStandardProps.call(this, rawProps);\r\n this.setRawEventDefs(rawProps.events);\r\n return superSuccess;\r\n };\r\n return ArrayEventSource;\r\n}(EventSource_1.default));\r\nexports.default = ArrayEventSource;\r\nArrayEventSource.defineStandardProps({\r\n events: false // don't automatically transfer\r\n});\r\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar StandardTheme_1 = __webpack_require__(221);\r\nvar JqueryUiTheme_1 = __webpack_require__(222);\r\nvar themeClassHash = {};\r\nfunction defineThemeSystem(themeName, themeClass) {\r\n themeClassHash[themeName] = themeClass;\r\n}\r\nexports.defineThemeSystem = defineThemeSystem;\r\nfunction getThemeSystemClass(themeSetting) {\r\n if (!themeSetting) {\r\n return StandardTheme_1.default;\r\n }\r\n else if (themeSetting === true) {\r\n return JqueryUiTheme_1.default;\r\n }\r\n else {\r\n return themeClassHash[themeSetting];\r\n }\r\n}\r\nexports.getThemeSystemClass = getThemeSystemClass;\r\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\n/*\r\nA cache for the left/right/top/bottom/width/height values for one or more elements.\r\nWorks with both offset (from topleft document) and position (from offsetParent).\r\n\noptions:\r\n- els\r\n- isHorizontal\r\n- isVertical\r\n*/\r\nvar CoordCache = /** @class */ (function () {\r\n function CoordCache(options) {\r\n this.isHorizontal = false; // whether to query for left/right/width\r\n this.isVertical = false; // whether to query for top/bottom/height\r\n this.els = $(options.els);\r\n this.isHorizontal = options.isHorizontal;\r\n this.isVertical = options.isVertical;\r\n this.forcedOffsetParentEl = options.offsetParent ? $(options.offsetParent) : null;\r\n }\r\n // Queries the els for coordinates and stores them.\r\n // Call this method before using and of the get* methods below.\r\n CoordCache.prototype.build = function () {\r\n var offsetParentEl = this.forcedOffsetParentEl;\r\n if (!offsetParentEl && this.els.length > 0) {\r\n offsetParentEl = this.els.eq(0).offsetParent();\r\n }\r\n this.origin = offsetParentEl ?\r\n offsetParentEl.offset() :\r\n null;\r\n this.boundingRect = this.queryBoundingRect();\r\n if (this.isHorizontal) {\r\n this.buildElHorizontals();\r\n }\r\n if (this.isVertical) {\r\n this.buildElVerticals();\r\n }\r\n };\r\n // Destroys all internal data about coordinates, freeing memory\r\n CoordCache.prototype.clear = function () {\r\n this.origin = null;\r\n this.boundingRect = null;\r\n this.lefts = null;\r\n this.rights = null;\r\n this.tops = null;\r\n this.bottoms = null;\r\n };\r\n // When called, if coord caches aren't built, builds them\r\n CoordCache.prototype.ensureBuilt = function () {\r\n if (!this.origin) {\r\n this.build();\r\n }\r\n };\r\n // Populates the left/right internal coordinate arrays\r\n CoordCache.prototype.buildElHorizontals = function () {\r\n var lefts = [];\r\n var rights = [];\r\n this.els.each(function (i, node) {\r\n var el = $(node);\r\n var left = el.offset().left;\r\n var width = el.outerWidth();\r\n lefts.push(left);\r\n rights.push(left + width);\r\n });\r\n this.lefts = lefts;\r\n this.rights = rights;\r\n };\r\n // Populates the top/bottom internal coordinate arrays\r\n CoordCache.prototype.buildElVerticals = function () {\r\n var tops = [];\r\n var bottoms = [];\r\n this.els.each(function (i, node) {\r\n var el = $(node);\r\n var top = el.offset().top;\r\n var height = el.outerHeight();\r\n tops.push(top);\r\n bottoms.push(top + height);\r\n });\r\n this.tops = tops;\r\n this.bottoms = bottoms;\r\n };\r\n // Given a left offset (from document left), returns the index of the el that it horizontally intersects.\r\n // If no intersection is made, returns undefined.\r\n CoordCache.prototype.getHorizontalIndex = function (leftOffset) {\r\n this.ensureBuilt();\r\n var lefts = this.lefts;\r\n var rights = this.rights;\r\n var len = lefts.length;\r\n var i;\r\n for (i = 0; i < len; i++) {\r\n if (leftOffset >= lefts[i] && leftOffset < rights[i]) {\r\n return i;\r\n }\r\n }\r\n };\r\n // Given a top offset (from document top), returns the index of the el that it vertically intersects.\r\n // If no intersection is made, returns undefined.\r\n CoordCache.prototype.getVerticalIndex = function (topOffset) {\r\n this.ensureBuilt();\r\n var tops = this.tops;\r\n var bottoms = this.bottoms;\r\n var len = tops.length;\r\n var i;\r\n for (i = 0; i < len; i++) {\r\n if (topOffset >= tops[i] && topOffset < bottoms[i]) {\r\n return i;\r\n }\r\n }\r\n };\r\n // Gets the left offset (from document left) of the element at the given index\r\n CoordCache.prototype.getLeftOffset = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.lefts[leftIndex];\r\n };\r\n // Gets the left position (from offsetParent left) of the element at the given index\r\n CoordCache.prototype.getLeftPosition = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.lefts[leftIndex] - this.origin.left;\r\n };\r\n // Gets the right offset (from document left) of the element at the given index.\r\n // This value is NOT relative to the document's right edge, like the CSS concept of \"right\" would be.\r\n CoordCache.prototype.getRightOffset = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.rights[leftIndex];\r\n };\r\n // Gets the right position (from offsetParent left) of the element at the given index.\r\n // This value is NOT relative to the offsetParent's right edge, like the CSS concept of \"right\" would be.\r\n CoordCache.prototype.getRightPosition = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.rights[leftIndex] - this.origin.left;\r\n };\r\n // Gets the width of the element at the given index\r\n CoordCache.prototype.getWidth = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.rights[leftIndex] - this.lefts[leftIndex];\r\n };\r\n // Gets the top offset (from document top) of the element at the given index\r\n CoordCache.prototype.getTopOffset = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.tops[topIndex];\r\n };\r\n // Gets the top position (from offsetParent top) of the element at the given position\r\n CoordCache.prototype.getTopPosition = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.tops[topIndex] - this.origin.top;\r\n };\r\n // Gets the bottom offset (from the document top) of the element at the given index.\r\n // This value is NOT relative to the offsetParent's bottom edge, like the CSS concept of \"bottom\" would be.\r\n CoordCache.prototype.getBottomOffset = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.bottoms[topIndex];\r\n };\r\n // Gets the bottom position (from the offsetParent top) of the element at the given index.\r\n // This value is NOT relative to the offsetParent's bottom edge, like the CSS concept of \"bottom\" would be.\r\n CoordCache.prototype.getBottomPosition = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.bottoms[topIndex] - this.origin.top;\r\n };\r\n // Gets the height of the element at the given index\r\n CoordCache.prototype.getHeight = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.bottoms[topIndex] - this.tops[topIndex];\r\n };\r\n // Bounding Rect\r\n // TODO: decouple this from CoordCache\r\n // Compute and return what the elements' bounding rectangle is, from the user's perspective.\r\n // Right now, only returns a rectangle if constrained by an overflow:scroll element.\r\n // Returns null if there are no elements\r\n CoordCache.prototype.queryBoundingRect = function () {\r\n var scrollParentEl;\r\n if (this.els.length > 0) {\r\n scrollParentEl = util_1.getScrollParent(this.els.eq(0));\r\n if (!scrollParentEl.is(document) &&\r\n !scrollParentEl.is('html,body') // don't consider these bounding rects. solves issue 3615\r\n ) {\r\n return util_1.getClientRect(scrollParentEl);\r\n }\r\n }\r\n return null;\r\n };\r\n CoordCache.prototype.isPointInBounds = function (leftOffset, topOffset) {\r\n return this.isLeftInBounds(leftOffset) && this.isTopInBounds(topOffset);\r\n };\r\n CoordCache.prototype.isLeftInBounds = function (leftOffset) {\r\n return !this.boundingRect || (leftOffset >= this.boundingRect.left && leftOffset < this.boundingRect.right);\r\n };\r\n CoordCache.prototype.isTopInBounds = function (topOffset) {\r\n return !this.boundingRect || (topOffset >= this.boundingRect.top && topOffset < this.boundingRect.bottom);\r\n };\r\n return CoordCache;\r\n}());\r\nexports.default = CoordCache;\r\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar GlobalEmitter_1 = __webpack_require__(23);\r\n/* Tracks a drag's mouse movement, firing various handlers\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// TODO: use Emitter\r\nvar DragListener = /** @class */ (function () {\r\n function DragListener(options) {\r\n this.isInteracting = false;\r\n this.isDistanceSurpassed = false;\r\n this.isDelayEnded = false;\r\n this.isDragging = false;\r\n this.isTouch = false;\r\n this.isGeneric = false; // initiated by 'dragstart' (jqui)\r\n this.shouldCancelTouchScroll = true;\r\n this.scrollAlwaysKills = false;\r\n this.isAutoScroll = false;\r\n // defaults\r\n this.scrollSensitivity = 30; // pixels from edge for scrolling to start\r\n this.scrollSpeed = 200; // pixels per second, at maximum speed\r\n this.scrollIntervalMs = 50; // millisecond wait between scroll increment\r\n this.options = options || {};\r\n }\r\n // Interaction (high-level)\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.startInteraction = function (ev, extraOptions) {\r\n if (extraOptions === void 0) { extraOptions = {}; }\r\n if (ev.type === 'mousedown') {\r\n if (GlobalEmitter_1.default.get().shouldIgnoreMouse()) {\r\n return;\r\n }\r\n else if (!util_1.isPrimaryMouseButton(ev)) {\r\n return;\r\n }\r\n else {\r\n ev.preventDefault(); // prevents native selection in most browsers\r\n }\r\n }\r\n if (!this.isInteracting) {\r\n // process options\r\n this.delay = util_1.firstDefined(extraOptions.delay, this.options.delay, 0);\r\n this.minDistance = util_1.firstDefined(extraOptions.distance, this.options.distance, 0);\r\n this.subjectEl = this.options.subjectEl;\r\n util_1.preventSelection($('body'));\r\n this.isInteracting = true;\r\n this.isTouch = util_1.getEvIsTouch(ev);\r\n this.isGeneric = ev.type === 'dragstart';\r\n this.isDelayEnded = false;\r\n this.isDistanceSurpassed = false;\r\n this.originX = util_1.getEvX(ev);\r\n this.originY = util_1.getEvY(ev);\r\n this.scrollEl = util_1.getScrollParent($(ev.target));\r\n this.bindHandlers();\r\n this.initAutoScroll();\r\n this.handleInteractionStart(ev);\r\n this.startDelay(ev);\r\n if (!this.minDistance) {\r\n this.handleDistanceSurpassed(ev);\r\n }\r\n }\r\n };\r\n DragListener.prototype.handleInteractionStart = function (ev) {\r\n this.trigger('interactionStart', ev);\r\n };\r\n DragListener.prototype.endInteraction = function (ev, isCancelled) {\r\n if (this.isInteracting) {\r\n this.endDrag(ev);\r\n if (this.delayTimeoutId) {\r\n clearTimeout(this.delayTimeoutId);\r\n this.delayTimeoutId = null;\r\n }\r\n this.destroyAutoScroll();\r\n this.unbindHandlers();\r\n this.isInteracting = false;\r\n this.handleInteractionEnd(ev, isCancelled);\r\n util_1.allowSelection($('body'));\r\n }\r\n };\r\n DragListener.prototype.handleInteractionEnd = function (ev, isCancelled) {\r\n this.trigger('interactionEnd', ev, isCancelled || false);\r\n };\r\n // Binding To DOM\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.bindHandlers = function () {\r\n // some browsers (Safari in iOS 10) don't allow preventDefault on touch events that are bound after touchstart,\r\n // so listen to the GlobalEmitter singleton, which is always bound, instead of the document directly.\r\n var globalEmitter = GlobalEmitter_1.default.get();\r\n if (this.isGeneric) {\r\n this.listenTo($(document), {\r\n drag: this.handleMove,\r\n dragstop: this.endInteraction\r\n });\r\n }\r\n else if (this.isTouch) {\r\n this.listenTo(globalEmitter, {\r\n touchmove: this.handleTouchMove,\r\n touchend: this.endInteraction,\r\n scroll: this.handleTouchScroll\r\n });\r\n }\r\n else {\r\n this.listenTo(globalEmitter, {\r\n mousemove: this.handleMouseMove,\r\n mouseup: this.endInteraction\r\n });\r\n }\r\n this.listenTo(globalEmitter, {\r\n selectstart: util_1.preventDefault,\r\n contextmenu: util_1.preventDefault // long taps would open menu on Chrome dev tools\r\n });\r\n };\r\n DragListener.prototype.unbindHandlers = function () {\r\n this.stopListeningTo(GlobalEmitter_1.default.get());\r\n this.stopListeningTo($(document)); // for isGeneric\r\n };\r\n // Drag (high-level)\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // extraOptions ignored if drag already started\r\n DragListener.prototype.startDrag = function (ev, extraOptions) {\r\n this.startInteraction(ev, extraOptions); // ensure interaction began\r\n if (!this.isDragging) {\r\n this.isDragging = true;\r\n this.handleDragStart(ev);\r\n }\r\n };\r\n DragListener.prototype.handleDragStart = function (ev) {\r\n this.trigger('dragStart', ev);\r\n };\r\n DragListener.prototype.handleMove = function (ev) {\r\n var dx = util_1.getEvX(ev) - this.originX;\r\n var dy = util_1.getEvY(ev) - this.originY;\r\n var minDistance = this.minDistance;\r\n var distanceSq; // current distance from the origin, squared\r\n if (!this.isDistanceSurpassed) {\r\n distanceSq = dx * dx + dy * dy;\r\n if (distanceSq >= minDistance * minDistance) { // use pythagorean theorem\r\n this.handleDistanceSurpassed(ev);\r\n }\r\n }\r\n if (this.isDragging) {\r\n this.handleDrag(dx, dy, ev);\r\n }\r\n };\r\n // Called while the mouse is being moved and when we know a legitimate drag is taking place\r\n DragListener.prototype.handleDrag = function (dx, dy, ev) {\r\n this.trigger('drag', dx, dy, ev);\r\n this.updateAutoScroll(ev); // will possibly cause scrolling\r\n };\r\n DragListener.prototype.endDrag = function (ev) {\r\n if (this.isDragging) {\r\n this.isDragging = false;\r\n this.handleDragEnd(ev);\r\n }\r\n };\r\n DragListener.prototype.handleDragEnd = function (ev) {\r\n this.trigger('dragEnd', ev);\r\n };\r\n // Delay\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.startDelay = function (initialEv) {\r\n var _this = this;\r\n if (this.delay) {\r\n this.delayTimeoutId = setTimeout(function () {\r\n _this.handleDelayEnd(initialEv);\r\n }, this.delay);\r\n }\r\n else {\r\n this.handleDelayEnd(initialEv);\r\n }\r\n };\r\n DragListener.prototype.handleDelayEnd = function (initialEv) {\r\n this.isDelayEnded = true;\r\n if (this.isDistanceSurpassed) {\r\n this.startDrag(initialEv);\r\n }\r\n };\r\n // Distance\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.handleDistanceSurpassed = function (ev) {\r\n this.isDistanceSurpassed = true;\r\n if (this.isDelayEnded) {\r\n this.startDrag(ev);\r\n }\r\n };\r\n // Mouse / Touch\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.handleTouchMove = function (ev) {\r\n // prevent inertia and touchmove-scrolling while dragging\r\n if (this.isDragging && this.shouldCancelTouchScroll) {\r\n ev.preventDefault();\r\n }\r\n this.handleMove(ev);\r\n };\r\n DragListener.prototype.handleMouseMove = function (ev) {\r\n this.handleMove(ev);\r\n };\r\n // Scrolling (unrelated to auto-scroll)\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.handleTouchScroll = function (ev) {\r\n // if the drag is being initiated by touch, but a scroll happens before\r\n // the drag-initiating delay is over, cancel the drag\r\n if (!this.isDragging || this.scrollAlwaysKills) {\r\n this.endInteraction(ev, true); // isCancelled=true\r\n }\r\n };\r\n // Utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Triggers a callback. Calls a function in the option hash of the same name.\r\n // Arguments beyond the first `name` are forwarded on.\r\n DragListener.prototype.trigger = function (name) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n if (this.options[name]) {\r\n this.options[name].apply(this, args);\r\n }\r\n // makes _methods callable by event name. TODO: kill this\r\n if (this['_' + name]) {\r\n this['_' + name].apply(this, args);\r\n }\r\n };\r\n // Auto-scroll\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.initAutoScroll = function () {\r\n var scrollEl = this.scrollEl;\r\n this.isAutoScroll =\r\n this.options.scroll &&\r\n scrollEl &&\r\n !scrollEl.is(window) &&\r\n !scrollEl.is(document);\r\n if (this.isAutoScroll) {\r\n // debounce makes sure rapid calls don't happen\r\n this.listenTo(scrollEl, 'scroll', util_1.debounce(this.handleDebouncedScroll, 100));\r\n }\r\n };\r\n DragListener.prototype.destroyAutoScroll = function () {\r\n this.endAutoScroll(); // kill any animation loop\r\n // remove the scroll handler if there is a scrollEl\r\n if (this.isAutoScroll) {\r\n this.stopListeningTo(this.scrollEl, 'scroll'); // will probably get removed by unbindHandlers too :(\r\n }\r\n };\r\n // Computes and stores the bounding rectangle of scrollEl\r\n DragListener.prototype.computeScrollBounds = function () {\r\n if (this.isAutoScroll) {\r\n this.scrollBounds = util_1.getOuterRect(this.scrollEl);\r\n // TODO: use getClientRect in future. but prevents auto scrolling when on top of scrollbars\r\n }\r\n };\r\n // Called when the dragging is in progress and scrolling should be updated\r\n DragListener.prototype.updateAutoScroll = function (ev) {\r\n var sensitivity = this.scrollSensitivity;\r\n var bounds = this.scrollBounds;\r\n var topCloseness;\r\n var bottomCloseness;\r\n var leftCloseness;\r\n var rightCloseness;\r\n var topVel = 0;\r\n var leftVel = 0;\r\n if (bounds) { // only scroll if scrollEl exists\r\n // compute closeness to edges. valid range is from 0.0 - 1.0\r\n topCloseness = (sensitivity - (util_1.getEvY(ev) - bounds.top)) / sensitivity;\r\n bottomCloseness = (sensitivity - (bounds.bottom - util_1.getEvY(ev))) / sensitivity;\r\n leftCloseness = (sensitivity - (util_1.getEvX(ev) - bounds.left)) / sensitivity;\r\n rightCloseness = (sensitivity - (bounds.right - util_1.getEvX(ev))) / sensitivity;\r\n // translate vertical closeness into velocity.\r\n // mouse must be completely in bounds for velocity to happen.\r\n if (topCloseness >= 0 && topCloseness <= 1) {\r\n topVel = topCloseness * this.scrollSpeed * -1; // negative. for scrolling up\r\n }\r\n else if (bottomCloseness >= 0 && bottomCloseness <= 1) {\r\n topVel = bottomCloseness * this.scrollSpeed;\r\n }\r\n // translate horizontal closeness into velocity\r\n if (leftCloseness >= 0 && leftCloseness <= 1) {\r\n leftVel = leftCloseness * this.scrollSpeed * -1; // negative. for scrolling left\r\n }\r\n else if (rightCloseness >= 0 && rightCloseness <= 1) {\r\n leftVel = rightCloseness * this.scrollSpeed;\r\n }\r\n }\r\n this.setScrollVel(topVel, leftVel);\r\n };\r\n // Sets the speed-of-scrolling for the scrollEl\r\n DragListener.prototype.setScrollVel = function (topVel, leftVel) {\r\n this.scrollTopVel = topVel;\r\n this.scrollLeftVel = leftVel;\r\n this.constrainScrollVel(); // massages into realistic values\r\n // if there is non-zero velocity, and an animation loop hasn't already started, then START\r\n if ((this.scrollTopVel || this.scrollLeftVel) && !this.scrollIntervalId) {\r\n this.scrollIntervalId = setInterval(util_1.proxy(this, 'scrollIntervalFunc'), // scope to `this`\r\n this.scrollIntervalMs);\r\n }\r\n };\r\n // Forces scrollTopVel and scrollLeftVel to be zero if scrolling has already gone all the way\r\n DragListener.prototype.constrainScrollVel = function () {\r\n var el = this.scrollEl;\r\n if (this.scrollTopVel < 0) { // scrolling up?\r\n if (el.scrollTop() <= 0) { // already scrolled all the way up?\r\n this.scrollTopVel = 0;\r\n }\r\n }\r\n else if (this.scrollTopVel > 0) { // scrolling down?\r\n if (el.scrollTop() + el[0].clientHeight >= el[0].scrollHeight) { // already scrolled all the way down?\r\n this.scrollTopVel = 0;\r\n }\r\n }\r\n if (this.scrollLeftVel < 0) { // scrolling left?\r\n if (el.scrollLeft() <= 0) { // already scrolled all the left?\r\n this.scrollLeftVel = 0;\r\n }\r\n }\r\n else if (this.scrollLeftVel > 0) { // scrolling right?\r\n if (el.scrollLeft() + el[0].clientWidth >= el[0].scrollWidth) { // already scrolled all the way right?\r\n this.scrollLeftVel = 0;\r\n }\r\n }\r\n };\r\n // This function gets called during every iteration of the scrolling animation loop\r\n DragListener.prototype.scrollIntervalFunc = function () {\r\n var el = this.scrollEl;\r\n var frac = this.scrollIntervalMs / 1000; // considering animation frequency, what the vel should be mult'd by\r\n // change the value of scrollEl's scroll\r\n if (this.scrollTopVel) {\r\n el.scrollTop(el.scrollTop() + this.scrollTopVel * frac);\r\n }\r\n if (this.scrollLeftVel) {\r\n el.scrollLeft(el.scrollLeft() + this.scrollLeftVel * frac);\r\n }\r\n this.constrainScrollVel(); // since the scroll values changed, recompute the velocities\r\n // if scrolled all the way, which causes the vels to be zero, stop the animation loop\r\n if (!this.scrollTopVel && !this.scrollLeftVel) {\r\n this.endAutoScroll();\r\n }\r\n };\r\n // Kills any existing scrolling animation loop\r\n DragListener.prototype.endAutoScroll = function () {\r\n if (this.scrollIntervalId) {\r\n clearInterval(this.scrollIntervalId);\r\n this.scrollIntervalId = null;\r\n this.handleScrollEnd();\r\n }\r\n };\r\n // Get called when the scrollEl is scrolled (NOTE: this is delayed via debounce)\r\n DragListener.prototype.handleDebouncedScroll = function () {\r\n // recompute all coordinates, but *only* if this is *not* part of our scrolling animation\r\n if (!this.scrollIntervalId) {\r\n this.handleScrollEnd();\r\n }\r\n };\r\n DragListener.prototype.handleScrollEnd = function () {\r\n // Called when scrolling has stopped, whether through auto scroll, or the user scrolling\r\n };\r\n return DragListener;\r\n}());\r\nexports.default = DragListener;\r\nListenerMixin_1.default.mixInto(DragListener);\r\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar Mixin_1 = __webpack_require__(15);\r\n/*\r\nA set of rendering and date-related methods for a visual component comprised of one or more rows of day columns.\r\nPrerequisite: the object being mixed into needs to be a *Grid*\r\n*/\r\nvar DayTableMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayTableMixin, _super);\r\n function DayTableMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Populates internal variables used for date calculation and rendering\r\n DayTableMixin.prototype.updateDayTable = function () {\r\n var t = this;\r\n var view = t.view;\r\n var calendar = view.calendar;\r\n var date = calendar.msToUtcMoment(t.dateProfile.renderUnzonedRange.startMs, true);\r\n var end = calendar.msToUtcMoment(t.dateProfile.renderUnzonedRange.endMs, true);\r\n var dayIndex = -1;\r\n var dayIndices = [];\r\n var dayDates = [];\r\n var daysPerRow;\r\n var firstDay;\r\n var rowCnt;\r\n while (date.isBefore(end)) { // loop each day from start to end\r\n if (view.isHiddenDay(date)) {\r\n dayIndices.push(dayIndex + 0.5); // mark that it's between indices\r\n }\r\n else {\r\n dayIndex++;\r\n dayIndices.push(dayIndex);\r\n dayDates.push(date.clone());\r\n }\r\n date.add(1, 'days');\r\n }\r\n if (this.breakOnWeeks) {\r\n // count columns until the day-of-week repeats\r\n firstDay = dayDates[0].day();\r\n for (daysPerRow = 1; daysPerRow < dayDates.length; daysPerRow++) {\r\n if (dayDates[daysPerRow].day() === firstDay) {\r\n break;\r\n }\r\n }\r\n rowCnt = Math.ceil(dayDates.length / daysPerRow);\r\n }\r\n else {\r\n rowCnt = 1;\r\n daysPerRow = dayDates.length;\r\n }\r\n this.dayDates = dayDates;\r\n this.dayIndices = dayIndices;\r\n this.daysPerRow = daysPerRow;\r\n this.rowCnt = rowCnt;\r\n this.updateDayTableCols();\r\n };\r\n // Computes and assigned the colCnt property and updates any options that may be computed from it\r\n DayTableMixin.prototype.updateDayTableCols = function () {\r\n this.colCnt = this.computeColCnt();\r\n this.colHeadFormat =\r\n this.opt('columnHeaderFormat') ||\r\n this.opt('columnFormat') || // deprecated\r\n this.computeColHeadFormat();\r\n };\r\n // Determines how many columns there should be in the table\r\n DayTableMixin.prototype.computeColCnt = function () {\r\n return this.daysPerRow;\r\n };\r\n // Computes the ambiguously-timed moment for the given cell\r\n DayTableMixin.prototype.getCellDate = function (row, col) {\r\n return this.dayDates[this.getCellDayIndex(row, col)].clone();\r\n };\r\n // Computes the ambiguously-timed date range for the given cell\r\n DayTableMixin.prototype.getCellRange = function (row, col) {\r\n var start = this.getCellDate(row, col);\r\n var end = start.clone().add(1, 'days');\r\n return { start: start, end: end };\r\n };\r\n // Returns the number of day cells, chronologically, from the first of the grid (0-based)\r\n DayTableMixin.prototype.getCellDayIndex = function (row, col) {\r\n return row * this.daysPerRow + this.getColDayIndex(col);\r\n };\r\n // Returns the numner of day cells, chronologically, from the first cell in *any given row*\r\n DayTableMixin.prototype.getColDayIndex = function (col) {\r\n if (this.isRTL) {\r\n return this.colCnt - 1 - col;\r\n }\r\n else {\r\n return col;\r\n }\r\n };\r\n // Given a date, returns its chronolocial cell-index from the first cell of the grid.\r\n // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets.\r\n // If before the first offset, returns a negative number.\r\n // If after the last offset, returns an offset past the last cell offset.\r\n // Only works for *start* dates of cells. Will not work for exclusive end dates for cells.\r\n DayTableMixin.prototype.getDateDayIndex = function (date) {\r\n var dayIndices = this.dayIndices;\r\n var dayOffset = date.diff(this.dayDates[0], 'days');\r\n if (dayOffset < 0) {\r\n return dayIndices[0] - 1;\r\n }\r\n else if (dayOffset >= dayIndices.length) {\r\n return dayIndices[dayIndices.length - 1] + 1;\r\n }\r\n else {\r\n return dayIndices[dayOffset];\r\n }\r\n };\r\n /* Options\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Computes a default column header formatting string if `colFormat` is not explicitly defined\r\n DayTableMixin.prototype.computeColHeadFormat = function () {\r\n // if more than one week row, or if there are a lot of columns with not much space,\r\n // put just the day numbers will be in each cell\r\n if (this.rowCnt > 1 || this.colCnt > 10) {\r\n return 'ddd'; // \"Sat\"\r\n }\r\n else if (this.colCnt > 1) {\r\n return this.opt('dayOfMonthFormat'); // \"Sat 12/10\"\r\n }\r\n else {\r\n return 'dddd'; // \"Saturday\"\r\n }\r\n };\r\n /* Slicing\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Slices up a date range into a segment for every week-row it intersects with\r\n DayTableMixin.prototype.sliceRangeByRow = function (unzonedRange) {\r\n var daysPerRow = this.daysPerRow;\r\n var normalRange = this.view.computeDayRange(unzonedRange); // make whole-day range, considering nextDayThreshold\r\n var rangeFirst = this.getDateDayIndex(normalRange.start); // inclusive first index\r\n var rangeLast = this.getDateDayIndex(normalRange.end.clone().subtract(1, 'days')); // inclusive last index\r\n var segs = [];\r\n var row;\r\n var rowFirst;\r\n var rowLast; // inclusive day-index range for current row\r\n var segFirst;\r\n var segLast; // inclusive day-index range for segment\r\n for (row = 0; row < this.rowCnt; row++) {\r\n rowFirst = row * daysPerRow;\r\n rowLast = rowFirst + daysPerRow - 1;\r\n // intersect segment's offset range with the row's\r\n segFirst = Math.max(rangeFirst, rowFirst);\r\n segLast = Math.min(rangeLast, rowLast);\r\n // deal with in-between indices\r\n segFirst = Math.ceil(segFirst); // in-between starts round to next cell\r\n segLast = Math.floor(segLast); // in-between ends round to prev cell\r\n if (segFirst <= segLast) { // was there any intersection with the current row?\r\n segs.push({\r\n row: row,\r\n // normalize to start of row\r\n firstRowDayIndex: segFirst - rowFirst,\r\n lastRowDayIndex: segLast - rowFirst,\r\n // must be matching integers to be the segment's start/end\r\n isStart: segFirst === rangeFirst,\r\n isEnd: segLast === rangeLast\r\n });\r\n }\r\n }\r\n return segs;\r\n };\r\n // Slices up a date range into a segment for every day-cell it intersects with.\r\n // TODO: make more DRY with sliceRangeByRow somehow.\r\n DayTableMixin.prototype.sliceRangeByDay = function (unzonedRange) {\r\n var daysPerRow = this.daysPerRow;\r\n var normalRange = this.view.computeDayRange(unzonedRange); // make whole-day range, considering nextDayThreshold\r\n var rangeFirst = this.getDateDayIndex(normalRange.start); // inclusive first index\r\n var rangeLast = this.getDateDayIndex(normalRange.end.clone().subtract(1, 'days')); // inclusive last index\r\n var segs = [];\r\n var row;\r\n var rowFirst;\r\n var rowLast; // inclusive day-index range for current row\r\n var i;\r\n var segFirst;\r\n var segLast; // inclusive day-index range for segment\r\n for (row = 0; row < this.rowCnt; row++) {\r\n rowFirst = row * daysPerRow;\r\n rowLast = rowFirst + daysPerRow - 1;\r\n for (i = rowFirst; i <= rowLast; i++) {\r\n // intersect segment's offset range with the row's\r\n segFirst = Math.max(rangeFirst, i);\r\n segLast = Math.min(rangeLast, i);\r\n // deal with in-between indices\r\n segFirst = Math.ceil(segFirst); // in-between starts round to next cell\r\n segLast = Math.floor(segLast); // in-between ends round to prev cell\r\n if (segFirst <= segLast) { // was there any intersection with the current row?\r\n segs.push({\r\n row: row,\r\n // normalize to start of row\r\n firstRowDayIndex: segFirst - rowFirst,\r\n lastRowDayIndex: segLast - rowFirst,\r\n // must be matching integers to be the segment's start/end\r\n isStart: segFirst === rangeFirst,\r\n isEnd: segLast === rangeLast\r\n });\r\n }\r\n }\r\n }\r\n return segs;\r\n };\r\n /* Header Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayTableMixin.prototype.renderHeadHtml = function () {\r\n var theme = this.view.calendar.theme;\r\n return '' +\r\n '' +\r\n '' +\r\n '' +\r\n this.renderHeadTrHtml() +\r\n '' +\r\n '' +\r\n '';\r\n };\r\n DayTableMixin.prototype.renderHeadIntroHtml = function () {\r\n return this.renderIntroHtml(); // fall back to generic\r\n };\r\n DayTableMixin.prototype.renderHeadTrHtml = function () {\r\n return '' +\r\n '' +\r\n (this.isRTL ? '' : this.renderHeadIntroHtml()) +\r\n this.renderHeadDateCellsHtml() +\r\n (this.isRTL ? this.renderHeadIntroHtml() : '') +\r\n '';\r\n };\r\n DayTableMixin.prototype.renderHeadDateCellsHtml = function () {\r\n var htmls = [];\r\n var col;\r\n var date;\r\n for (col = 0; col < this.colCnt; col++) {\r\n date = this.getCellDate(0, col);\r\n htmls.push(this.renderHeadDateCellHtml(date));\r\n }\r\n return htmls.join('');\r\n };\r\n // TODO: when internalApiVersion, accept an object for HTML attributes\r\n // (colspan should be no different)\r\n DayTableMixin.prototype.renderHeadDateCellHtml = function (date, colspan, otherAttrs) {\r\n var t = this;\r\n var view = t.view;\r\n var isDateValid = t.dateProfile.activeUnzonedRange.containsDate(date); // TODO: called too frequently. cache somehow.\r\n var classNames = [\r\n 'fc-day-header',\r\n view.calendar.theme.getClass('widgetHeader')\r\n ];\r\n var innerHtml;\r\n if (typeof t.opt('columnHeaderHtml') === 'function') {\r\n innerHtml = t.opt('columnHeaderHtml')(date);\r\n }\r\n else if (typeof t.opt('columnHeaderText') === 'function') {\r\n innerHtml = util_1.htmlEscape(t.opt('columnHeaderText')(date));\r\n }\r\n else {\r\n innerHtml = util_1.htmlEscape(date.format(t.colHeadFormat));\r\n }\r\n // if only one row of days, the classNames on the header can represent the specific days beneath\r\n if (t.rowCnt === 1) {\r\n classNames = classNames.concat(\r\n // includes the day-of-week class\r\n // noThemeHighlight=true (don't highlight the header)\r\n t.getDayClasses(date, true));\r\n }\r\n else {\r\n classNames.push('fc-' + util_1.dayIDs[date.day()]); // only add the day-of-week class\r\n }\r\n return '' +\r\n ' 1 ?\r\n ' colspan=\"' + colspan + '\"' :\r\n '') +\r\n (otherAttrs ?\r\n ' ' + otherAttrs :\r\n '') +\r\n '>' +\r\n (isDateValid ?\r\n // don't make a link if the heading could represent multiple days, or if there's only one day (forceOff)\r\n view.buildGotoAnchorHtml({ date: date, forceOff: t.rowCnt > 1 || t.colCnt === 1 }, innerHtml) :\r\n // if not valid, display text, but no link\r\n innerHtml) +\r\n '';\r\n };\r\n /* Background Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayTableMixin.prototype.renderBgTrHtml = function (row) {\r\n return '' +\r\n '' +\r\n (this.isRTL ? '' : this.renderBgIntroHtml(row)) +\r\n this.renderBgCellsHtml(row) +\r\n (this.isRTL ? this.renderBgIntroHtml(row) : '') +\r\n '';\r\n };\r\n DayTableMixin.prototype.renderBgIntroHtml = function (row) {\r\n return this.renderIntroHtml(); // fall back to generic\r\n };\r\n DayTableMixin.prototype.renderBgCellsHtml = function (row) {\r\n var htmls = [];\r\n var col;\r\n var date;\r\n for (col = 0; col < this.colCnt; col++) {\r\n date = this.getCellDate(row, col);\r\n htmls.push(this.renderBgCellHtml(date));\r\n }\r\n return htmls.join('');\r\n };\r\n DayTableMixin.prototype.renderBgCellHtml = function (date, otherAttrs) {\r\n var t = this;\r\n var view = t.view;\r\n var isDateValid = t.dateProfile.activeUnzonedRange.containsDate(date); // TODO: called too frequently. cache somehow.\r\n var classes = t.getDayClasses(date);\r\n classes.unshift('fc-day', view.calendar.theme.getClass('widgetContent'));\r\n return '';\r\n };\r\n /* Generic\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayTableMixin.prototype.renderIntroHtml = function () {\r\n // Generates the default HTML intro for any row. User classes should override\r\n };\r\n // TODO: a generic method for dealing with , RTL, intro\r\n // when increment internalApiVersion\r\n // wrapTr (scheduler)\r\n /* Utils\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Applies the generic \"intro\" and \"outro\" HTML to the given cells.\r\n // Intro means the leftmost cell when the calendar is LTR and the rightmost cell when RTL. Vice-versa for outro.\r\n DayTableMixin.prototype.bookendCells = function (trEl) {\r\n var introHtml = this.renderIntroHtml();\r\n if (introHtml) {\r\n if (this.isRTL) {\r\n trEl.append(introHtml);\r\n }\r\n else {\r\n trEl.prepend(introHtml);\r\n }\r\n }\r\n };\r\n return DayTableMixin;\r\n}(Mixin_1.default));\r\nexports.default = DayTableMixin;\r\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BusinessHourRenderer = /** @class */ (function () {\r\n /*\r\n component implements:\r\n - eventRangesToEventFootprints\r\n - eventFootprintsToSegs\r\n */\r\n function BusinessHourRenderer(component, fillRenderer) {\r\n this.component = component;\r\n this.fillRenderer = fillRenderer;\r\n }\r\n BusinessHourRenderer.prototype.render = function (businessHourGenerator) {\r\n var component = this.component;\r\n var unzonedRange = component._getDateProfile().activeUnzonedRange;\r\n var eventInstanceGroup = businessHourGenerator.buildEventInstanceGroup(component.hasAllDayBusinessHours, unzonedRange);\r\n var eventFootprints = eventInstanceGroup ?\r\n component.eventRangesToEventFootprints(eventInstanceGroup.sliceRenderRanges(unzonedRange)) :\r\n [];\r\n this.renderEventFootprints(eventFootprints);\r\n };\r\n BusinessHourRenderer.prototype.renderEventFootprints = function (eventFootprints) {\r\n var segs = this.component.eventFootprintsToSegs(eventFootprints);\r\n this.renderSegs(segs);\r\n this.segs = segs;\r\n };\r\n BusinessHourRenderer.prototype.renderSegs = function (segs) {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.renderSegs('businessHours', segs, {\r\n getClasses: function (seg) {\r\n return ['fc-nonbusiness', 'fc-bgevent'];\r\n }\r\n });\r\n }\r\n };\r\n BusinessHourRenderer.prototype.unrender = function () {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.unrender('businessHours');\r\n }\r\n this.segs = null;\r\n };\r\n BusinessHourRenderer.prototype.getSegs = function () {\r\n return this.segs || [];\r\n };\r\n return BusinessHourRenderer;\r\n}());\r\nexports.default = BusinessHourRenderer;\r\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar FillRenderer = /** @class */ (function () {\r\n function FillRenderer(component) {\r\n this.fillSegTag = 'div';\r\n this.component = component;\r\n this.elsByFill = {};\r\n }\r\n FillRenderer.prototype.renderFootprint = function (type, componentFootprint, props) {\r\n this.renderSegs(type, this.component.componentFootprintToSegs(componentFootprint), props);\r\n };\r\n FillRenderer.prototype.renderSegs = function (type, segs, props) {\r\n var els;\r\n segs = this.buildSegEls(type, segs, props); // assignes `.el` to each seg. returns successfully rendered segs\r\n els = this.attachSegEls(type, segs);\r\n if (els) {\r\n this.reportEls(type, els);\r\n }\r\n return segs;\r\n };\r\n // Unrenders a specific type of fill that is currently rendered on the grid\r\n FillRenderer.prototype.unrender = function (type) {\r\n var el = this.elsByFill[type];\r\n if (el) {\r\n el.remove();\r\n delete this.elsByFill[type];\r\n }\r\n };\r\n // Renders and assigns an `el` property for each fill segment. Generic enough to work with different types.\r\n // Only returns segments that successfully rendered.\r\n FillRenderer.prototype.buildSegEls = function (type, segs, props) {\r\n var _this = this;\r\n var html = '';\r\n var renderedSegs = [];\r\n var i;\r\n if (segs.length) {\r\n // build a large concatenation of segment HTML\r\n for (i = 0; i < segs.length; i++) {\r\n html += this.buildSegHtml(type, segs[i], props);\r\n }\r\n // Grab individual elements from the combined HTML string. Use each as the default rendering.\r\n // Then, compute the 'el' for each segment.\r\n $(html).each(function (i, node) {\r\n var seg = segs[i];\r\n var el = $(node);\r\n // allow custom filter methods per-type\r\n if (props.filterEl) {\r\n el = props.filterEl(seg, el);\r\n }\r\n if (el) { // custom filters did not cancel the render\r\n el = $(el); // allow custom filter to return raw DOM node\r\n // correct element type? (would be bad if a non-TD were inserted into a table for example)\r\n if (el.is(_this.fillSegTag)) {\r\n seg.el = el;\r\n renderedSegs.push(seg);\r\n }\r\n }\r\n });\r\n }\r\n return renderedSegs;\r\n };\r\n // Builds the HTML needed for one fill segment. Generic enough to work with different types.\r\n FillRenderer.prototype.buildSegHtml = function (type, seg, props) {\r\n // custom hooks per-type\r\n var classes = props.getClasses ? props.getClasses(seg) : [];\r\n var css = util_1.cssToStr(props.getCss ? props.getCss(seg) : {});\r\n return '<' + this.fillSegTag +\r\n (classes.length ? ' class=\"' + classes.join(' ') + '\"' : '') +\r\n (css ? ' style=\"' + css + '\"' : '') +\r\n ' />';\r\n };\r\n // Should return wrapping DOM structure\r\n FillRenderer.prototype.attachSegEls = function (type, segs) {\r\n // subclasses must implement\r\n };\r\n FillRenderer.prototype.reportEls = function (type, nodes) {\r\n if (this.elsByFill[type]) {\r\n this.elsByFill[type] = this.elsByFill[type].add(nodes);\r\n }\r\n else {\r\n this.elsByFill[type] = $(nodes);\r\n }\r\n };\r\n return FillRenderer;\r\n}());\r\nexports.default = FillRenderer;\r\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar SingleEventDef_1 = __webpack_require__(9);\r\nvar EventFootprint_1 = __webpack_require__(34);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar HelperRenderer = /** @class */ (function () {\r\n function HelperRenderer(component, eventRenderer) {\r\n this.view = component._getView();\r\n this.component = component;\r\n this.eventRenderer = eventRenderer;\r\n }\r\n HelperRenderer.prototype.renderComponentFootprint = function (componentFootprint) {\r\n this.renderEventFootprints([\r\n this.fabricateEventFootprint(componentFootprint)\r\n ]);\r\n };\r\n HelperRenderer.prototype.renderEventDraggingFootprints = function (eventFootprints, sourceSeg, isTouch) {\r\n this.renderEventFootprints(eventFootprints, sourceSeg, 'fc-dragging', isTouch ? null : this.view.opt('dragOpacity'));\r\n };\r\n HelperRenderer.prototype.renderEventResizingFootprints = function (eventFootprints, sourceSeg, isTouch) {\r\n this.renderEventFootprints(eventFootprints, sourceSeg, 'fc-resizing');\r\n };\r\n HelperRenderer.prototype.renderEventFootprints = function (eventFootprints, sourceSeg, extraClassNames, opacity) {\r\n var segs = this.component.eventFootprintsToSegs(eventFootprints);\r\n var classNames = 'fc-helper ' + (extraClassNames || '');\r\n var i;\r\n // assigns each seg's el and returns a subset of segs that were rendered\r\n segs = this.eventRenderer.renderFgSegEls(segs);\r\n for (i = 0; i < segs.length; i++) {\r\n segs[i].el.addClass(classNames);\r\n }\r\n if (opacity != null) {\r\n for (i = 0; i < segs.length; i++) {\r\n segs[i].el.css('opacity', opacity);\r\n }\r\n }\r\n this.helperEls = this.renderSegs(segs, sourceSeg);\r\n };\r\n /*\r\n Must return all mock event elements\r\n */\r\n HelperRenderer.prototype.renderSegs = function (segs, sourceSeg) {\r\n // Subclasses must implement\r\n };\r\n HelperRenderer.prototype.unrender = function () {\r\n if (this.helperEls) {\r\n this.helperEls.remove();\r\n this.helperEls = null;\r\n }\r\n };\r\n HelperRenderer.prototype.fabricateEventFootprint = function (componentFootprint) {\r\n var calendar = this.view.calendar;\r\n var eventDateProfile = calendar.footprintToDateProfile(componentFootprint);\r\n var dummyEvent = new SingleEventDef_1.default(new EventSource_1.default(calendar));\r\n var dummyInstance;\r\n dummyEvent.dateProfile = eventDateProfile;\r\n dummyInstance = dummyEvent.buildInstance();\r\n return new EventFootprint_1.default(componentFootprint, dummyEvent, dummyInstance);\r\n };\r\n return HelperRenderer;\r\n}());\r\nexports.default = HelperRenderer;\r\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar GlobalEmitter_1 = __webpack_require__(23);\r\nvar Interaction_1 = __webpack_require__(14);\r\nvar EventPointing = /** @class */ (function (_super) {\r\n tslib_1.__extends(EventPointing, _super);\r\n function EventPointing() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /*\r\n component must implement:\r\n - publiclyTrigger\r\n */\r\n EventPointing.prototype.bindToEl = function (el) {\r\n var component = this.component;\r\n component.bindSegHandlerToEl(el, 'click', this.handleClick.bind(this));\r\n component.bindSegHandlerToEl(el, 'mouseenter', this.handleMouseover.bind(this));\r\n component.bindSegHandlerToEl(el, 'mouseleave', this.handleMouseout.bind(this));\r\n };\r\n EventPointing.prototype.handleClick = function (seg, ev) {\r\n var res = this.component.publiclyTrigger('eventClick', {\r\n context: seg.el[0],\r\n args: [seg.footprint.getEventLegacy(), ev, this.view]\r\n });\r\n if (res === false) {\r\n ev.preventDefault();\r\n }\r\n };\r\n // Updates internal state and triggers handlers for when an event element is moused over\r\n EventPointing.prototype.handleMouseover = function (seg, ev) {\r\n if (!GlobalEmitter_1.default.get().shouldIgnoreMouse() &&\r\n !this.mousedOverSeg) {\r\n this.mousedOverSeg = seg;\r\n // TODO: move to EventSelecting's responsibility\r\n if (this.view.isEventDefResizable(seg.footprint.eventDef)) {\r\n seg.el.addClass('fc-allow-mouse-resize');\r\n }\r\n this.component.publiclyTrigger('eventMouseover', {\r\n context: seg.el[0],\r\n args: [seg.footprint.getEventLegacy(), ev, this.view]\r\n });\r\n }\r\n };\r\n // Updates internal state and triggers handlers for when an event element is moused out.\r\n // Can be given no arguments, in which case it will mouseout the segment that was previously moused over.\r\n EventPointing.prototype.handleMouseout = function (seg, ev) {\r\n if (this.mousedOverSeg) {\r\n this.mousedOverSeg = null;\r\n // TODO: move to EventSelecting's responsibility\r\n if (this.view.isEventDefResizable(seg.footprint.eventDef)) {\r\n seg.el.removeClass('fc-allow-mouse-resize');\r\n }\r\n this.component.publiclyTrigger('eventMouseout', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev || {},\r\n this.view\r\n ]\r\n });\r\n }\r\n };\r\n EventPointing.prototype.end = function () {\r\n if (this.mousedOverSeg) {\r\n this.handleMouseout(this.mousedOverSeg);\r\n }\r\n };\r\n return EventPointing;\r\n}(Interaction_1.default));\r\nexports.default = EventPointing;\r\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Mixin_1 = __webpack_require__(15);\r\nvar DateClicking_1 = __webpack_require__(237);\r\nvar DateSelecting_1 = __webpack_require__(236);\r\nvar EventPointing_1 = __webpack_require__(64);\r\nvar EventDragging_1 = __webpack_require__(235);\r\nvar EventResizing_1 = __webpack_require__(234);\r\nvar ExternalDropping_1 = __webpack_require__(233);\r\nvar StandardInteractionsMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(StandardInteractionsMixin, _super);\r\n function StandardInteractionsMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return StandardInteractionsMixin;\r\n}(Mixin_1.default));\r\nexports.default = StandardInteractionsMixin;\r\nStandardInteractionsMixin.prototype.dateClickingClass = DateClicking_1.default;\r\nStandardInteractionsMixin.prototype.dateSelectingClass = DateSelecting_1.default;\r\nStandardInteractionsMixin.prototype.eventPointingClass = EventPointing_1.default;\r\nStandardInteractionsMixin.prototype.eventDraggingClass = EventDragging_1.default;\r\nStandardInteractionsMixin.prototype.eventResizingClass = EventResizing_1.default;\r\nStandardInteractionsMixin.prototype.externalDroppingClass = ExternalDropping_1.default;\r\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar CoordCache_1 = __webpack_require__(58);\r\nvar Popover_1 = __webpack_require__(227);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar EventFootprint_1 = __webpack_require__(34);\r\nvar BusinessHourRenderer_1 = __webpack_require__(61);\r\nvar StandardInteractionsMixin_1 = __webpack_require__(65);\r\nvar InteractiveDateComponent_1 = __webpack_require__(42);\r\nvar DayTableMixin_1 = __webpack_require__(60);\r\nvar DayGridEventRenderer_1 = __webpack_require__(243);\r\nvar DayGridHelperRenderer_1 = __webpack_require__(244);\r\nvar DayGridFillRenderer_1 = __webpack_require__(245);\r\n/* A component that renders a grid of whole-days that runs horizontally. There can be multiple rows, one per week.\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar DayGrid = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayGrid, _super);\r\n function DayGrid(view) {\r\n var _this = _super.call(this, view) || this;\r\n _this.cellWeekNumbersVisible = false; // display week numbers in day cell?\r\n _this.bottomCoordPadding = 0; // hack for extending the hit area for the last row of the coordinate grid\r\n // isRigid determines whether the individual rows should ignore the contents and be a constant height.\r\n // Relies on the view's colCnt and rowCnt. In the future, this component should probably be self-sufficient.\r\n _this.isRigid = false;\r\n _this.hasAllDayBusinessHours = true;\r\n return _this;\r\n }\r\n // Slices up the given span (unzoned start/end with other misc data) into an array of segments\r\n DayGrid.prototype.componentFootprintToSegs = function (componentFootprint) {\r\n var segs = this.sliceRangeByRow(componentFootprint.unzonedRange);\r\n var i;\r\n var seg;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n if (this.isRTL) {\r\n seg.leftCol = this.daysPerRow - 1 - seg.lastRowDayIndex;\r\n seg.rightCol = this.daysPerRow - 1 - seg.firstRowDayIndex;\r\n }\r\n else {\r\n seg.leftCol = seg.firstRowDayIndex;\r\n seg.rightCol = seg.lastRowDayIndex;\r\n }\r\n }\r\n return segs;\r\n };\r\n /* Date Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayGrid.prototype.renderDates = function (dateProfile) {\r\n this.dateProfile = dateProfile;\r\n this.updateDayTable();\r\n this.renderGrid();\r\n };\r\n DayGrid.prototype.unrenderDates = function () {\r\n this.removeSegPopover();\r\n };\r\n // Renders the rows and columns into the component's `this.el`, which should already be assigned.\r\n DayGrid.prototype.renderGrid = function () {\r\n var view = this.view;\r\n var rowCnt = this.rowCnt;\r\n var colCnt = this.colCnt;\r\n var html = '';\r\n var row;\r\n var col;\r\n if (this.headContainerEl) {\r\n this.headContainerEl.html(this.renderHeadHtml());\r\n }\r\n for (row = 0; row < rowCnt; row++) {\r\n html += this.renderDayRowHtml(row, this.isRigid);\r\n }\r\n this.el.html(html);\r\n this.rowEls = this.el.find('.fc-row');\r\n this.cellEls = this.el.find('.fc-day, .fc-disabled-day');\r\n this.rowCoordCache = new CoordCache_1.default({\r\n els: this.rowEls,\r\n isVertical: true\r\n });\r\n this.colCoordCache = new CoordCache_1.default({\r\n els: this.cellEls.slice(0, this.colCnt),\r\n isHorizontal: true\r\n });\r\n // trigger dayRender with each cell's element\r\n for (row = 0; row < rowCnt; row++) {\r\n for (col = 0; col < colCnt; col++) {\r\n this.publiclyTrigger('dayRender', {\r\n context: view,\r\n args: [\r\n this.getCellDate(row, col),\r\n this.getCellEl(row, col),\r\n view\r\n ]\r\n });\r\n }\r\n }\r\n };\r\n // Generates the HTML for a single row, which is a div that wraps a table.\r\n // `row` is the row number.\r\n DayGrid.prototype.renderDayRowHtml = function (row, isRigid) {\r\n var theme = this.view.calendar.theme;\r\n var classes = ['fc-row', 'fc-week', theme.getClass('dayRow')];\r\n if (isRigid) {\r\n classes.push('fc-rigid');\r\n }\r\n return '' +\r\n '' +\r\n '' +\r\n '' +\r\n this.renderBgTrHtml(row) +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n (this.getIsNumbersVisible() ?\r\n '' +\r\n this.renderNumberTrHtml(row) +\r\n '' :\r\n '') +\r\n '' +\r\n '' +\r\n '';\r\n };\r\n DayGrid.prototype.getIsNumbersVisible = function () {\r\n return this.getIsDayNumbersVisible() || this.cellWeekNumbersVisible;\r\n };\r\n DayGrid.prototype.getIsDayNumbersVisible = function () {\r\n return this.rowCnt > 1;\r\n };\r\n /* Grid Number Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayGrid.prototype.renderNumberTrHtml = function (row) {\r\n return '' +\r\n '' +\r\n (this.isRTL ? '' : this.renderNumberIntroHtml(row)) +\r\n this.renderNumberCellsHtml(row) +\r\n (this.isRTL ? this.renderNumberIntroHtml(row) : '') +\r\n '';\r\n };\r\n DayGrid.prototype.renderNumberIntroHtml = function (row) {\r\n return this.renderIntroHtml();\r\n };\r\n DayGrid.prototype.renderNumberCellsHtml = function (row) {\r\n var htmls = [];\r\n var col;\r\n var date;\r\n for (col = 0; col < this.colCnt; col++) {\r\n date = this.getCellDate(row, col);\r\n htmls.push(this.renderNumberCellHtml(date));\r\n }\r\n return htmls.join('');\r\n };\r\n // Generates the HTML for the s of the \"number\" row in the DayGrid's content skeleton.\r\n // The number row will only exist if either day numbers or week numbers are turned on.\r\n DayGrid.prototype.renderNumberCellHtml = function (date) {\r\n var view = this.view;\r\n var html = '';\r\n var isDateValid = this.dateProfile.activeUnzonedRange.containsDate(date); // TODO: called too frequently. cache somehow.\r\n var isDayNumberVisible = this.getIsDayNumbersVisible() && isDateValid;\r\n var classes;\r\n var weekCalcFirstDoW;\r\n if (!isDayNumberVisible && !this.cellWeekNumbersVisible) {\r\n // no numbers in day cell (week number must be along the side)\r\n return ''; // will create an empty space above events :(\r\n }\r\n classes = this.getDayClasses(date);\r\n classes.unshift('fc-day-top');\r\n if (this.cellWeekNumbersVisible) {\r\n // To determine the day of week number change under ISO, we cannot\r\n // rely on moment.js methods such as firstDayOfWeek() or weekday(),\r\n // because they rely on the locale's dow (possibly overridden by\r\n // our firstDay option), which may not be Monday. We cannot change\r\n // dow, because that would affect the calendar start day as well.\r\n if (date._locale._fullCalendar_weekCalc === 'ISO') {\r\n weekCalcFirstDoW = 1; // Monday by ISO 8601 definition\r\n }\r\n else {\r\n weekCalcFirstDoW = date._locale.firstDayOfWeek();\r\n }\r\n }\r\n html += '';\r\n if (this.cellWeekNumbersVisible && (date.day() === weekCalcFirstDoW)) {\r\n html += view.buildGotoAnchorHtml({ date: date, type: 'week' }, { 'class': 'fc-week-number' }, date.format('w') // inner HTML\r\n );\r\n }\r\n if (isDayNumberVisible) {\r\n html += view.buildGotoAnchorHtml(date, { 'class': 'fc-day-number' }, date.format('D') // inner HTML\r\n );\r\n }\r\n html += '';\r\n return html;\r\n };\r\n /* Hit System\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayGrid.prototype.prepareHits = function () {\r\n this.colCoordCache.build();\r\n this.rowCoordCache.build();\r\n this.rowCoordCache.bottoms[this.rowCnt - 1] += this.bottomCoordPadding; // hack\r\n };\r\n DayGrid.prototype.releaseHits = function () {\r\n this.colCoordCache.clear();\r\n this.rowCoordCache.clear();\r\n };\r\n DayGrid.prototype.queryHit = function (leftOffset, topOffset) {\r\n if (this.colCoordCache.isLeftInBounds(leftOffset) && this.rowCoordCache.isTopInBounds(topOffset)) {\r\n var col = this.colCoordCache.getHorizontalIndex(leftOffset);\r\n var row = this.rowCoordCache.getVerticalIndex(topOffset);\r\n if (row != null && col != null) {\r\n return this.getCellHit(row, col);\r\n }\r\n }\r\n };\r\n DayGrid.prototype.getHitFootprint = function (hit) {\r\n var range = this.getCellRange(hit.row, hit.col);\r\n return new ComponentFootprint_1.default(new UnzonedRange_1.default(range.start, range.end), true // all-day?\r\n );\r\n };\r\n DayGrid.prototype.getHitEl = function (hit) {\r\n return this.getCellEl(hit.row, hit.col);\r\n };\r\n /* Cell System\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // FYI: the first column is the leftmost column, regardless of date\r\n DayGrid.prototype.getCellHit = function (row, col) {\r\n return {\r\n row: row,\r\n col: col,\r\n component: this,\r\n left: this.colCoordCache.getLeftOffset(col),\r\n right: this.colCoordCache.getRightOffset(col),\r\n top: this.rowCoordCache.getTopOffset(row),\r\n bottom: this.rowCoordCache.getBottomOffset(row)\r\n };\r\n };\r\n DayGrid.prototype.getCellEl = function (row, col) {\r\n return this.cellEls.eq(row * this.colCnt + col);\r\n };\r\n /* Event Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Unrenders all events currently rendered on the grid\r\n DayGrid.prototype.executeEventUnrender = function () {\r\n this.removeSegPopover(); // removes the \"more..\" events popover\r\n _super.prototype.executeEventUnrender.call(this);\r\n };\r\n // Retrieves all rendered segment objects currently rendered on the grid\r\n DayGrid.prototype.getOwnEventSegs = function () {\r\n // append the segments from the \"more...\" popover\r\n return _super.prototype.getOwnEventSegs.call(this).concat(this.popoverSegs || []);\r\n };\r\n /* Event Drag Visualization\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of an event or external element being dragged.\r\n // `eventLocation` has zoned start and end (optional)\r\n DayGrid.prototype.renderDrag = function (eventFootprints, seg, isTouch) {\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n this.renderHighlight(eventFootprints[i].componentFootprint);\r\n }\r\n // render drags from OTHER components as helpers\r\n if (eventFootprints.length && seg && seg.component !== this) {\r\n this.helperRenderer.renderEventDraggingFootprints(eventFootprints, seg, isTouch);\r\n return true; // signal helpers rendered\r\n }\r\n };\r\n // Unrenders any visual indication of a hovering event\r\n DayGrid.prototype.unrenderDrag = function () {\r\n this.unrenderHighlight();\r\n this.helperRenderer.unrender();\r\n };\r\n /* Event Resize Visualization\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of an event being resized\r\n DayGrid.prototype.renderEventResize = function (eventFootprints, seg, isTouch) {\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n this.renderHighlight(eventFootprints[i].componentFootprint);\r\n }\r\n this.helperRenderer.renderEventResizingFootprints(eventFootprints, seg, isTouch);\r\n };\r\n // Unrenders a visual indication of an event being resized\r\n DayGrid.prototype.unrenderEventResize = function () {\r\n this.unrenderHighlight();\r\n this.helperRenderer.unrender();\r\n };\r\n /* More+ Link Popover\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayGrid.prototype.removeSegPopover = function () {\r\n if (this.segPopover) {\r\n this.segPopover.hide(); // in handler, will call segPopover's removeElement\r\n }\r\n };\r\n // Limits the number of \"levels\" (vertically stacking layers of events) for each row of the grid.\r\n // `levelLimit` can be false (don't limit), a number, or true (should be computed).\r\n DayGrid.prototype.limitRows = function (levelLimit) {\r\n var rowStructs = this.eventRenderer.rowStructs || [];\r\n var row; // row #\r\n var rowLevelLimit;\r\n for (row = 0; row < rowStructs.length; row++) {\r\n this.unlimitRow(row);\r\n if (!levelLimit) {\r\n rowLevelLimit = false;\r\n }\r\n else if (typeof levelLimit === 'number') {\r\n rowLevelLimit = levelLimit;\r\n }\r\n else {\r\n rowLevelLimit = this.computeRowLevelLimit(row);\r\n }\r\n if (rowLevelLimit !== false) {\r\n this.limitRow(row, rowLevelLimit);\r\n }\r\n }\r\n };\r\n // Computes the number of levels a row will accomodate without going outside its bounds.\r\n // Assumes the row is \"rigid\" (maintains a constant height regardless of what is inside).\r\n // `row` is the row number.\r\n DayGrid.prototype.computeRowLevelLimit = function (row) {\r\n var rowEl = this.rowEls.eq(row); // the containing \"fake\" row div\r\n var rowHeight = rowEl.height(); // TODO: cache somehow?\r\n var trEls = this.eventRenderer.rowStructs[row].tbodyEl.children();\r\n var i;\r\n var trEl;\r\n var trHeight;\r\n function iterInnerHeights(i, childNode) {\r\n trHeight = Math.max(trHeight, $(childNode).outerHeight());\r\n }\r\n // Reveal one level at a time and stop when we find one out of bounds\r\n for (i = 0; i < trEls.length; i++) {\r\n trEl = trEls.eq(i).removeClass('fc-limited'); // reset to original state (reveal)\r\n // with rowspans>1 and IE8, trEl.outerHeight() would return the height of the largest cell,\r\n // so instead, find the tallest inner content element.\r\n trHeight = 0;\r\n trEl.find('> td > :first-child').each(iterInnerHeights);\r\n if (trEl.position().top + trHeight > rowHeight) {\r\n return i;\r\n }\r\n }\r\n return false; // should not limit at all\r\n };\r\n // Limits the given grid row to the maximum number of levels and injects \"more\" links if necessary.\r\n // `row` is the row number.\r\n // `levelLimit` is a number for the maximum (inclusive) number of levels allowed.\r\n DayGrid.prototype.limitRow = function (row, levelLimit) {\r\n var _this = this;\r\n var rowStruct = this.eventRenderer.rowStructs[row];\r\n var moreNodes = []; // array of \"more\" links and DOM nodes\r\n var col = 0; // col #, left-to-right (not chronologically)\r\n var levelSegs; // array of segment objects in the last allowable level, ordered left-to-right\r\n var cellMatrix; // a matrix (by level, then column) of all jQuery elements in the row\r\n var limitedNodes; // array of temporarily hidden level and segment DOM nodes\r\n var i;\r\n var seg;\r\n var segsBelow; // array of segment objects below `seg` in the current `col`\r\n var totalSegsBelow; // total number of segments below `seg` in any of the columns `seg` occupies\r\n var colSegsBelow; // array of segment arrays, below seg, one for each column (offset from segs's first column)\r\n var td;\r\n var rowspan;\r\n var segMoreNodes; // array of \"more\" cells that will stand-in for the current seg's cell\r\n var j;\r\n var moreTd;\r\n var moreWrap;\r\n var moreLink;\r\n // Iterates through empty level cells and places \"more\" links inside if need be\r\n var emptyCellsUntil = function (endCol) {\r\n while (col < endCol) {\r\n segsBelow = _this.getCellSegs(row, col, levelLimit);\r\n if (segsBelow.length) {\r\n td = cellMatrix[levelLimit - 1][col];\r\n moreLink = _this.renderMoreLink(row, col, segsBelow);\r\n moreWrap = $('').append(moreLink);\r\n td.append(moreWrap);\r\n moreNodes.push(moreWrap[0]);\r\n }\r\n col++;\r\n }\r\n };\r\n if (levelLimit && levelLimit < rowStruct.segLevels.length) { // is it actually over the limit?\r\n levelSegs = rowStruct.segLevels[levelLimit - 1];\r\n cellMatrix = rowStruct.cellMatrix;\r\n limitedNodes = rowStruct.tbodyEl.children().slice(levelLimit) // get level elements past the limit\r\n .addClass('fc-limited').get(); // hide elements and get a simple DOM-nodes array\r\n // iterate though segments in the last allowable level\r\n for (i = 0; i < levelSegs.length; i++) {\r\n seg = levelSegs[i];\r\n emptyCellsUntil(seg.leftCol); // process empty cells before the segment\r\n // determine *all* segments below `seg` that occupy the same columns\r\n colSegsBelow = [];\r\n totalSegsBelow = 0;\r\n while (col <= seg.rightCol) {\r\n segsBelow = this.getCellSegs(row, col, levelLimit);\r\n colSegsBelow.push(segsBelow);\r\n totalSegsBelow += segsBelow.length;\r\n col++;\r\n }\r\n if (totalSegsBelow) { // do we need to replace this segment with one or many \"more\" links?\r\n td = cellMatrix[levelLimit - 1][seg.leftCol]; // the segment's parent cell\r\n rowspan = td.attr('rowspan') || 1;\r\n segMoreNodes = [];\r\n // make a replacement for each column the segment occupies. will be one for each colspan\r\n for (j = 0; j < colSegsBelow.length; j++) {\r\n moreTd = $('').attr('rowspan', rowspan);\r\n segsBelow = colSegsBelow[j];\r\n moreLink = this.renderMoreLink(row, seg.leftCol + j, [seg].concat(segsBelow) // count seg as hidden too\r\n );\r\n moreWrap = $('').append(moreLink);\r\n moreTd.append(moreWrap);\r\n segMoreNodes.push(moreTd[0]);\r\n moreNodes.push(moreTd[0]);\r\n }\r\n td.addClass('fc-limited').after($(segMoreNodes)); // hide original and inject replacements\r\n limitedNodes.push(td[0]);\r\n }\r\n }\r\n emptyCellsUntil(this.colCnt); // finish off the level\r\n rowStruct.moreEls = $(moreNodes); // for easy undoing later\r\n rowStruct.limitedEls = $(limitedNodes); // for easy undoing later\r\n }\r\n };\r\n // Reveals all levels and removes all \"more\"-related elements for a grid's row.\r\n // `row` is a row number.\r\n DayGrid.prototype.unlimitRow = function (row) {\r\n var rowStruct = this.eventRenderer.rowStructs[row];\r\n if (rowStruct.moreEls) {\r\n rowStruct.moreEls.remove();\r\n rowStruct.moreEls = null;\r\n }\r\n if (rowStruct.limitedEls) {\r\n rowStruct.limitedEls.removeClass('fc-limited');\r\n rowStruct.limitedEls = null;\r\n }\r\n };\r\n // Renders an element that represents hidden event element for a cell.\r\n // Responsible for attaching click handler as well.\r\n DayGrid.prototype.renderMoreLink = function (row, col, hiddenSegs) {\r\n var _this = this;\r\n var view = this.view;\r\n return $('')\r\n .text(this.getMoreLinkText(hiddenSegs.length))\r\n .on('click', function (ev) {\r\n var clickOption = _this.opt('eventLimitClick');\r\n var date = _this.getCellDate(row, col);\r\n var moreEl = $(ev.currentTarget);\r\n var dayEl = _this.getCellEl(row, col);\r\n var allSegs = _this.getCellSegs(row, col);\r\n // rescope the segments to be within the cell's date\r\n var reslicedAllSegs = _this.resliceDaySegs(allSegs, date);\r\n var reslicedHiddenSegs = _this.resliceDaySegs(hiddenSegs, date);\r\n if (typeof clickOption === 'function') {\r\n // the returned value can be an atomic option\r\n clickOption = _this.publiclyTrigger('eventLimitClick', {\r\n context: view,\r\n args: [\r\n {\r\n date: date.clone(),\r\n dayEl: dayEl,\r\n moreEl: moreEl,\r\n segs: reslicedAllSegs,\r\n hiddenSegs: reslicedHiddenSegs\r\n },\r\n ev,\r\n view\r\n ]\r\n });\r\n }\r\n if (clickOption === 'popover') {\r\n _this.showSegPopover(row, col, moreEl, reslicedAllSegs);\r\n }\r\n else if (typeof clickOption === 'string') { // a view name\r\n view.calendar.zoomTo(date, clickOption);\r\n }\r\n });\r\n };\r\n // Reveals the popover that displays all events within a cell\r\n DayGrid.prototype.showSegPopover = function (row, col, moreLink, segs) {\r\n var _this = this;\r\n var view = this.view;\r\n var moreWrap = moreLink.parent(); // the wrapper around the \r\n var topEl; // the element we want to match the top coordinate of\r\n var options;\r\n if (this.rowCnt === 1) {\r\n topEl = view.el; // will cause the popover to cover any sort of header\r\n }\r\n else {\r\n topEl = this.rowEls.eq(row); // will align with top of row\r\n }\r\n options = {\r\n className: 'fc-more-popover ' + view.calendar.theme.getClass('popover'),\r\n content: this.renderSegPopoverContent(row, col, segs),\r\n parentEl: view.el,\r\n top: topEl.offset().top,\r\n autoHide: true,\r\n viewportConstrain: this.opt('popoverViewportConstrain'),\r\n hide: function () {\r\n // kill everything when the popover is hidden\r\n // notify events to be removed\r\n if (_this.popoverSegs) {\r\n _this.triggerBeforeEventSegsDestroyed(_this.popoverSegs);\r\n }\r\n _this.segPopover.removeElement();\r\n _this.segPopover = null;\r\n _this.popoverSegs = null;\r\n }\r\n };\r\n // Determine horizontal coordinate.\r\n // We use the moreWrap instead of the to avoid border confusion.\r\n if (this.isRTL) {\r\n options.right = moreWrap.offset().left + moreWrap.outerWidth() + 1; // +1 to be over cell border\r\n }\r\n else {\r\n options.left = moreWrap.offset().left - 1; // -1 to be over cell border\r\n }\r\n this.segPopover = new Popover_1.default(options);\r\n this.segPopover.show();\r\n // the popover doesn't live within the grid's container element, and thus won't get the event\r\n // delegated-handlers for free. attach event-related handlers to the popover.\r\n this.bindAllSegHandlersToEl(this.segPopover.el);\r\n this.triggerAfterEventSegsRendered(segs);\r\n };\r\n // Builds the inner DOM contents of the segment popover\r\n DayGrid.prototype.renderSegPopoverContent = function (row, col, segs) {\r\n var view = this.view;\r\n var theme = view.calendar.theme;\r\n var title = this.getCellDate(row, col).format(this.opt('dayPopoverFormat'));\r\n var content = $('' +\r\n '' +\r\n '' +\r\n util_1.htmlEscape(title) +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '');\r\n var segContainer = content.find('.fc-event-container');\r\n var i;\r\n // render each seg's `el` and only return the visible segs\r\n segs = this.eventRenderer.renderFgSegEls(segs, true); // disableResizing=true\r\n this.popoverSegs = segs;\r\n for (i = 0; i < segs.length; i++) {\r\n // because segments in the popover are not part of a grid coordinate system, provide a hint to any\r\n // grids that want to do drag-n-drop about which cell it came from\r\n this.hitsNeeded();\r\n segs[i].hit = this.getCellHit(row, col);\r\n this.hitsNotNeeded();\r\n segContainer.append(segs[i].el);\r\n }\r\n return content;\r\n };\r\n // Given the events within an array of segment objects, reslice them to be in a single day\r\n DayGrid.prototype.resliceDaySegs = function (segs, dayDate) {\r\n var dayStart = dayDate.clone();\r\n var dayEnd = dayStart.clone().add(1, 'days');\r\n var dayRange = new UnzonedRange_1.default(dayStart, dayEnd);\r\n var newSegs = [];\r\n var i;\r\n var seg;\r\n var slicedRange;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n slicedRange = seg.footprint.componentFootprint.unzonedRange.intersect(dayRange);\r\n if (slicedRange) {\r\n newSegs.push($.extend({}, seg, {\r\n footprint: new EventFootprint_1.default(new ComponentFootprint_1.default(slicedRange, seg.footprint.componentFootprint.isAllDay), seg.footprint.eventDef, seg.footprint.eventInstance),\r\n isStart: seg.isStart && slicedRange.isStart,\r\n isEnd: seg.isEnd && slicedRange.isEnd\r\n }));\r\n }\r\n }\r\n // force an order because eventsToSegs doesn't guarantee one\r\n // TODO: research if still needed\r\n this.eventRenderer.sortEventSegs(newSegs);\r\n return newSegs;\r\n };\r\n // Generates the text that should be inside a \"more\" link, given the number of events it represents\r\n DayGrid.prototype.getMoreLinkText = function (num) {\r\n var opt = this.opt('eventLimitText');\r\n if (typeof opt === 'function') {\r\n return opt(num);\r\n }\r\n else {\r\n return '+' + num + ' ' + opt;\r\n }\r\n };\r\n // Returns segments within a given cell.\r\n // If `startLevel` is specified, returns only events including and below that level. Otherwise returns all segs.\r\n DayGrid.prototype.getCellSegs = function (row, col, startLevel) {\r\n var segMatrix = this.eventRenderer.rowStructs[row].segMatrix;\r\n var level = startLevel || 0;\r\n var segs = [];\r\n var seg;\r\n while (level < segMatrix.length) {\r\n seg = segMatrix[level][col];\r\n if (seg) {\r\n segs.push(seg);\r\n }\r\n level++;\r\n }\r\n return segs;\r\n };\r\n return DayGrid;\r\n}(InteractiveDateComponent_1.default));\r\nexports.default = DayGrid;\r\nDayGrid.prototype.eventRendererClass = DayGridEventRenderer_1.default;\r\nDayGrid.prototype.businessHourRendererClass = BusinessHourRenderer_1.default;\r\nDayGrid.prototype.helperRendererClass = DayGridHelperRenderer_1.default;\r\nDayGrid.prototype.fillRendererClass = DayGridFillRenderer_1.default;\r\nStandardInteractionsMixin_1.default.mixInto(DayGrid);\r\nDayTableMixin_1.default.mixInto(DayGrid);\r\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Scroller_1 = __webpack_require__(41);\r\nvar View_1 = __webpack_require__(43);\r\nvar BasicViewDateProfileGenerator_1 = __webpack_require__(68);\r\nvar DayGrid_1 = __webpack_require__(66);\r\n/* An abstract class for the \"basic\" views, as well as month view. Renders one or more rows of day cells.\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// It is a manager for a DayGrid subcomponent, which does most of the heavy lifting.\r\n// It is responsible for managing width/height.\r\nvar BasicView = /** @class */ (function (_super) {\r\n tslib_1.__extends(BasicView, _super);\r\n function BasicView(calendar, viewSpec) {\r\n var _this = _super.call(this, calendar, viewSpec) || this;\r\n _this.dayGrid = _this.instantiateDayGrid();\r\n _this.dayGrid.isRigid = _this.hasRigidRows();\r\n if (_this.opt('weekNumbers')) {\r\n if (_this.opt('weekNumbersWithinDays')) {\r\n _this.dayGrid.cellWeekNumbersVisible = true;\r\n _this.dayGrid.colWeekNumbersVisible = false;\r\n }\r\n else {\r\n _this.dayGrid.cellWeekNumbersVisible = false;\r\n _this.dayGrid.colWeekNumbersVisible = true;\r\n }\r\n }\r\n _this.addChild(_this.dayGrid);\r\n _this.scroller = new Scroller_1.default({\r\n overflowX: 'hidden',\r\n overflowY: 'auto'\r\n });\r\n return _this;\r\n }\r\n // Generates the DayGrid object this view needs. Draws from this.dayGridClass\r\n BasicView.prototype.instantiateDayGrid = function () {\r\n // generate a subclass on the fly with BasicView-specific behavior\r\n // TODO: cache this subclass\r\n var subclass = makeDayGridSubclass(this.dayGridClass);\r\n return new subclass(this);\r\n };\r\n BasicView.prototype.executeDateRender = function (dateProfile) {\r\n this.dayGrid.breakOnWeeks = /year|month|week/.test(dateProfile.currentRangeUnit);\r\n _super.prototype.executeDateRender.call(this, dateProfile);\r\n };\r\n BasicView.prototype.renderSkeleton = function () {\r\n var dayGridContainerEl;\r\n var dayGridEl;\r\n this.el.addClass('fc-basic-view').html(this.renderSkeletonHtml());\r\n this.scroller.render();\r\n dayGridContainerEl = this.scroller.el.addClass('fc-day-grid-container');\r\n dayGridEl = $('').appendTo(dayGridContainerEl);\r\n this.el.find('.fc-body > tr > td').append(dayGridContainerEl);\r\n this.dayGrid.headContainerEl = this.el.find('.fc-head-container');\r\n this.dayGrid.setElement(dayGridEl);\r\n };\r\n BasicView.prototype.unrenderSkeleton = function () {\r\n this.dayGrid.removeElement();\r\n this.scroller.destroy();\r\n };\r\n // Builds the HTML skeleton for the view.\r\n // The day-grid component will render inside of a container defined by this HTML.\r\n BasicView.prototype.renderSkeletonHtml = function () {\r\n var theme = this.calendar.theme;\r\n return '' +\r\n '' +\r\n (this.opt('columnHeader') ?\r\n '' +\r\n '' +\r\n ' ' +\r\n '' +\r\n '' :\r\n '') +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '';\r\n };\r\n // Generates an HTML attribute string for setting the width of the week number column, if it is known\r\n BasicView.prototype.weekNumberStyleAttr = function () {\r\n if (this.weekNumberWidth != null) {\r\n return 'style=\"width:' + this.weekNumberWidth + 'px\"';\r\n }\r\n return '';\r\n };\r\n // Determines whether each row should have a constant height\r\n BasicView.prototype.hasRigidRows = function () {\r\n var eventLimit = this.opt('eventLimit');\r\n return eventLimit && typeof eventLimit !== 'number';\r\n };\r\n /* Dimensions\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Refreshes the horizontal dimensions of the view\r\n BasicView.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n var eventLimit = this.opt('eventLimit');\r\n var headRowEl = this.dayGrid.headContainerEl.find('.fc-row');\r\n var scrollerHeight;\r\n var scrollbarWidths;\r\n // hack to give the view some height prior to dayGrid's columns being rendered\r\n // TODO: separate setting height from scroller VS dayGrid.\r\n if (!this.dayGrid.rowEls) {\r\n if (!isAuto) {\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n }\r\n return;\r\n }\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n if (this.dayGrid.colWeekNumbersVisible) {\r\n // Make sure all week number cells running down the side have the same width.\r\n // Record the width for cells created later.\r\n this.weekNumberWidth = util_1.matchCellWidths(this.el.find('.fc-week-number'));\r\n }\r\n // reset all heights to be natural\r\n this.scroller.clear();\r\n util_1.uncompensateScroll(headRowEl);\r\n this.dayGrid.removeSegPopover(); // kill the \"more\" popover if displayed\r\n // is the event limit a constant level number?\r\n if (eventLimit && typeof eventLimit === 'number') {\r\n this.dayGrid.limitRows(eventLimit); // limit the levels first so the height can redistribute after\r\n }\r\n // distribute the height to the rows\r\n // (totalHeight is a \"recommended\" value if isAuto)\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.setGridHeight(scrollerHeight, isAuto);\r\n // is the event limit dynamically calculated?\r\n if (eventLimit && typeof eventLimit !== 'number') {\r\n this.dayGrid.limitRows(eventLimit); // limit the levels after the grid's row heights have been set\r\n }\r\n if (!isAuto) { // should we force dimensions of the scroll container?\r\n this.scroller.setHeight(scrollerHeight);\r\n scrollbarWidths = this.scroller.getScrollbarWidths();\r\n if (scrollbarWidths.left || scrollbarWidths.right) { // using scrollbars?\r\n util_1.compensateScroll(headRowEl, scrollbarWidths);\r\n // doing the scrollbar compensation might have created text overflow which created more height. redo\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n }\r\n // guarantees the same scrollbar widths\r\n this.scroller.lockOverflow(scrollbarWidths);\r\n }\r\n };\r\n // given a desired total height of the view, returns what the height of the scroller should be\r\n BasicView.prototype.computeScrollerHeight = function (totalHeight) {\r\n return totalHeight -\r\n util_1.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller\r\n };\r\n // Sets the height of just the DayGrid component in this view\r\n BasicView.prototype.setGridHeight = function (height, isAuto) {\r\n if (isAuto) {\r\n util_1.undistributeHeight(this.dayGrid.rowEls); // let the rows be their natural height with no expanding\r\n }\r\n else {\r\n util_1.distributeHeight(this.dayGrid.rowEls, height, true); // true = compensate for height-hogging rows\r\n }\r\n };\r\n /* Scroll\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n BasicView.prototype.computeInitialDateScroll = function () {\r\n return { top: 0 };\r\n };\r\n BasicView.prototype.queryDateScroll = function () {\r\n return { top: this.scroller.getScrollTop() };\r\n };\r\n BasicView.prototype.applyDateScroll = function (scroll) {\r\n if (scroll.top !== undefined) {\r\n this.scroller.setScrollTop(scroll.top);\r\n }\r\n };\r\n return BasicView;\r\n}(View_1.default));\r\nexports.default = BasicView;\r\nBasicView.prototype.dateProfileGeneratorClass = BasicViewDateProfileGenerator_1.default;\r\nBasicView.prototype.dayGridClass = DayGrid_1.default;\r\n// customize the rendering behavior of BasicView's dayGrid\r\nfunction makeDayGridSubclass(SuperClass) {\r\n return /** @class */ (function (_super) {\r\n tslib_1.__extends(SubClass, _super);\r\n function SubClass() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.colWeekNumbersVisible = false; // display week numbers along the side?\r\n return _this;\r\n }\r\n // Generates the HTML that will go before the day-of week header cells\r\n SubClass.prototype.renderHeadIntroHtml = function () {\r\n var view = this.view;\r\n if (this.colWeekNumbersVisible) {\r\n return '' +\r\n '' +\r\n '' + // needed for matchCellWidths\r\n util_1.htmlEscape(this.opt('weekNumberTitle')) +\r\n '' +\r\n '';\r\n }\r\n return '';\r\n };\r\n // Generates the HTML that will go before content-skeleton cells that display the day/week numbers\r\n SubClass.prototype.renderNumberIntroHtml = function (row) {\r\n var view = this.view;\r\n var weekStart = this.getCellDate(row, 0);\r\n if (this.colWeekNumbersVisible) {\r\n return '' +\r\n '' +\r\n view.buildGotoAnchorHtml(// aside from link, important for matchCellWidths\r\n { date: weekStart, type: 'week', forceOff: this.colCnt === 1 }, weekStart.format('w') // inner HTML\r\n ) +\r\n '';\r\n }\r\n return '';\r\n };\r\n // Generates the HTML that goes before the day bg cells for each day-row\r\n SubClass.prototype.renderBgIntroHtml = function () {\r\n var view = this.view;\r\n if (this.colWeekNumbersVisible) {\r\n return '';\r\n }\r\n return '';\r\n };\r\n // Generates the HTML that goes before every other type of row generated by DayGrid.\r\n // Affects helper-skeleton and highlight-skeleton rows.\r\n SubClass.prototype.renderIntroHtml = function () {\r\n var view = this.view;\r\n if (this.colWeekNumbersVisible) {\r\n return '';\r\n }\r\n return '';\r\n };\r\n SubClass.prototype.getIsNumbersVisible = function () {\r\n return DayGrid_1.default.prototype.getIsNumbersVisible.apply(this, arguments) || this.colWeekNumbersVisible;\r\n };\r\n return SubClass;\r\n }(SuperClass));\r\n}\r\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar DateProfileGenerator_1 = __webpack_require__(55);\r\nvar BasicViewDateProfileGenerator = /** @class */ (function (_super) {\r\n tslib_1.__extends(BasicViewDateProfileGenerator, _super);\r\n function BasicViewDateProfileGenerator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Computes the date range that will be rendered.\r\n BasicViewDateProfileGenerator.prototype.buildRenderRange = function (currentUnzonedRange, currentRangeUnit, isRangeAllDay) {\r\n var renderUnzonedRange = _super.prototype.buildRenderRange.call(this, currentUnzonedRange, currentRangeUnit, isRangeAllDay); // an UnzonedRange\r\n var start = this.msToUtcMoment(renderUnzonedRange.startMs, isRangeAllDay);\r\n var end = this.msToUtcMoment(renderUnzonedRange.endMs, isRangeAllDay);\r\n // year and month views should be aligned with weeks. this is already done for week\r\n if (/^(year|month)$/.test(currentRangeUnit)) {\r\n start.startOf('week');\r\n // make end-of-week if not already\r\n if (end.weekday()) {\r\n end.add(1, 'week').startOf('week'); // exclusively move backwards\r\n }\r\n }\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n return BasicViewDateProfileGenerator;\r\n}(DateProfileGenerator_1.default));\r\nexports.default = BasicViewDateProfileGenerator;\r\n\n\n/***/ }),\n/* 69 */,\n/* 70 */,\n/* 71 */,\n/* 72 */,\n/* 73 */,\n/* 74 */,\n/* 75 */,\n/* 76 */,\n/* 77 */,\n/* 78 */,\n/* 79 */,\n/* 80 */,\n/* 81 */,\n/* 82 */,\n/* 83 */,\n/* 84 */,\n/* 85 */,\n/* 86 */,\n/* 87 */,\n/* 88 */,\n/* 89 */,\n/* 90 */,\n/* 91 */,\n/* 92 */,\n/* 93 */,\n/* 94 */,\n/* 95 */,\n/* 96 */,\n/* 97 */,\n/* 98 */,\n/* 99 */,\n/* 100 */,\n/* 101 */,\n/* 102 */,\n/* 103 */,\n/* 104 */,\n/* 105 */,\n/* 106 */,\n/* 107 */,\n/* 108 */,\n/* 109 */,\n/* 110 */,\n/* 111 */,\n/* 112 */,\n/* 113 */,\n/* 114 */,\n/* 115 */,\n/* 116 */,\n/* 117 */,\n/* 118 */,\n/* 119 */,\n/* 120 */,\n/* 121 */,\n/* 122 */,\n/* 123 */,\n/* 124 */,\n/* 125 */,\n/* 126 */,\n/* 127 */,\n/* 128 */,\n/* 129 */,\n/* 130 */,\n/* 131 */,\n/* 132 */,\n/* 133 */,\n/* 134 */,\n/* 135 */,\n/* 136 */,\n/* 137 */,\n/* 138 */,\n/* 139 */,\n/* 140 */,\n/* 141 */,\n/* 142 */,\n/* 143 */,\n/* 144 */,\n/* 145 */,\n/* 146 */,\n/* 147 */,\n/* 148 */,\n/* 149 */,\n/* 150 */,\n/* 151 */,\n/* 152 */,\n/* 153 */,\n/* 154 */,\n/* 155 */,\n/* 156 */,\n/* 157 */,\n/* 158 */,\n/* 159 */,\n/* 160 */,\n/* 161 */,\n/* 162 */,\n/* 163 */,\n/* 164 */,\n/* 165 */,\n/* 166 */,\n/* 167 */,\n/* 168 */,\n/* 169 */,\n/* 170 */,\n/* 171 */,\n/* 172 */,\n/* 173 */,\n/* 174 */,\n/* 175 */,\n/* 176 */,\n/* 177 */,\n/* 178 */,\n/* 179 */,\n/* 180 */,\n/* 181 */,\n/* 182 */,\n/* 183 */,\n/* 184 */,\n/* 185 */,\n/* 186 */,\n/* 187 */,\n/* 188 */,\n/* 189 */,\n/* 190 */,\n/* 191 */,\n/* 192 */,\n/* 193 */,\n/* 194 */,\n/* 195 */,\n/* 196 */,\n/* 197 */,\n/* 198 */,\n/* 199 */,\n/* 200 */,\n/* 201 */,\n/* 202 */,\n/* 203 */,\n/* 204 */,\n/* 205 */,\n/* 206 */,\n/* 207 */,\n/* 208 */,\n/* 209 */,\n/* 210 */,\n/* 211 */,\n/* 212 */,\n/* 213 */,\n/* 214 */,\n/* 215 */,\n/* 216 */,\n/* 217 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar EventDefParser_1 = __webpack_require__(36);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar util_1 = __webpack_require__(19);\r\nvar Constraints = /** @class */ (function () {\r\n function Constraints(eventManager, _calendar) {\r\n this.eventManager = eventManager;\r\n this._calendar = _calendar;\r\n }\r\n Constraints.prototype.opt = function (name) {\r\n return this._calendar.opt(name);\r\n };\r\n /*\r\n determines if eventInstanceGroup is allowed,\r\n in relation to other EVENTS and business hours.\r\n */\r\n Constraints.prototype.isEventInstanceGroupAllowed = function (eventInstanceGroup) {\r\n var eventDef = eventInstanceGroup.getEventDef();\r\n var eventFootprints = this.eventRangesToEventFootprints(eventInstanceGroup.getAllEventRanges());\r\n var i;\r\n var peerEventInstances = this.getPeerEventInstances(eventDef);\r\n var peerEventRanges = peerEventInstances.map(util_1.eventInstanceToEventRange);\r\n var peerEventFootprints = this.eventRangesToEventFootprints(peerEventRanges);\r\n var constraintVal = eventDef.getConstraint();\r\n var overlapVal = eventDef.getOverlap();\r\n var eventAllowFunc = this.opt('eventAllow');\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n if (!this.isFootprintAllowed(eventFootprints[i].componentFootprint, peerEventFootprints, constraintVal, overlapVal, eventFootprints[i].eventInstance)) {\r\n return false;\r\n }\r\n }\r\n if (eventAllowFunc) {\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n if (eventAllowFunc(eventFootprints[i].componentFootprint.toLegacy(this._calendar), eventFootprints[i].getEventLegacy()) === false) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n Constraints.prototype.getPeerEventInstances = function (eventDef) {\r\n return this.eventManager.getEventInstancesWithoutId(eventDef.id);\r\n };\r\n Constraints.prototype.isSelectionFootprintAllowed = function (componentFootprint) {\r\n var peerEventInstances = this.eventManager.getEventInstances();\r\n var peerEventRanges = peerEventInstances.map(util_1.eventInstanceToEventRange);\r\n var peerEventFootprints = this.eventRangesToEventFootprints(peerEventRanges);\r\n var selectAllowFunc;\r\n if (this.isFootprintAllowed(componentFootprint, peerEventFootprints, this.opt('selectConstraint'), this.opt('selectOverlap'))) {\r\n selectAllowFunc = this.opt('selectAllow');\r\n if (selectAllowFunc) {\r\n return selectAllowFunc(componentFootprint.toLegacy(this._calendar)) !== false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Constraints.prototype.isFootprintAllowed = function (componentFootprint, peerEventFootprints, constraintVal, overlapVal, subjectEventInstance // optional\r\n ) {\r\n var constraintFootprints; // ComponentFootprint[]\r\n var overlapEventFootprints; // EventFootprint[]\r\n if (constraintVal != null) {\r\n constraintFootprints = this.constraintValToFootprints(constraintVal, componentFootprint.isAllDay);\r\n if (!this.isFootprintWithinConstraints(componentFootprint, constraintFootprints)) {\r\n return false;\r\n }\r\n }\r\n overlapEventFootprints = this.collectOverlapEventFootprints(peerEventFootprints, componentFootprint);\r\n if (overlapVal === false) {\r\n if (overlapEventFootprints.length) {\r\n return false;\r\n }\r\n }\r\n else if (typeof overlapVal === 'function') {\r\n if (!isOverlapsAllowedByFunc(overlapEventFootprints, overlapVal, subjectEventInstance)) {\r\n return false;\r\n }\r\n }\r\n if (subjectEventInstance) {\r\n if (!isOverlapEventInstancesAllowed(overlapEventFootprints, subjectEventInstance)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n // Constraint\r\n // ------------------------------------------------------------------------------------------------\r\n Constraints.prototype.isFootprintWithinConstraints = function (componentFootprint, constraintFootprints) {\r\n var i;\r\n for (i = 0; i < constraintFootprints.length; i++) {\r\n if (this.footprintContainsFootprint(constraintFootprints[i], componentFootprint)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Constraints.prototype.constraintValToFootprints = function (constraintVal, isAllDay) {\r\n var eventInstances;\r\n if (constraintVal === 'businessHours') {\r\n return this.buildCurrentBusinessFootprints(isAllDay);\r\n }\r\n else if (typeof constraintVal === 'object') {\r\n eventInstances = this.parseEventDefToInstances(constraintVal); // handles recurring events\r\n if (!eventInstances) { // invalid input. fallback to parsing footprint directly\r\n return this.parseFootprints(constraintVal);\r\n }\r\n else {\r\n return this.eventInstancesToFootprints(eventInstances);\r\n }\r\n }\r\n else if (constraintVal != null) { // an ID\r\n eventInstances = this.eventManager.getEventInstancesWithId(constraintVal);\r\n return this.eventInstancesToFootprints(eventInstances);\r\n }\r\n };\r\n // returns ComponentFootprint[]\r\n // uses current view's range\r\n Constraints.prototype.buildCurrentBusinessFootprints = function (isAllDay) {\r\n var view = this._calendar.view;\r\n var businessHourGenerator = view.get('businessHourGenerator');\r\n var unzonedRange = view.dateProfile.activeUnzonedRange;\r\n var eventInstanceGroup = businessHourGenerator.buildEventInstanceGroup(isAllDay, unzonedRange);\r\n if (eventInstanceGroup) {\r\n return this.eventInstancesToFootprints(eventInstanceGroup.eventInstances);\r\n }\r\n else {\r\n return [];\r\n }\r\n };\r\n // conversion util\r\n Constraints.prototype.eventInstancesToFootprints = function (eventInstances) {\r\n var eventRanges = eventInstances.map(util_1.eventInstanceToEventRange);\r\n var eventFootprints = this.eventRangesToEventFootprints(eventRanges);\r\n return eventFootprints.map(util_1.eventFootprintToComponentFootprint);\r\n };\r\n // Overlap\r\n // ------------------------------------------------------------------------------------------------\r\n Constraints.prototype.collectOverlapEventFootprints = function (peerEventFootprints, targetFootprint) {\r\n var overlapEventFootprints = [];\r\n var i;\r\n for (i = 0; i < peerEventFootprints.length; i++) {\r\n if (this.footprintsIntersect(targetFootprint, peerEventFootprints[i].componentFootprint)) {\r\n overlapEventFootprints.push(peerEventFootprints[i]);\r\n }\r\n }\r\n return overlapEventFootprints;\r\n };\r\n // Conversion: eventDefs -> eventInstances -> eventRanges -> eventFootprints -> componentFootprints\r\n // ------------------------------------------------------------------------------------------------\r\n // NOTE: this might seem like repetitive code with the Grid class, however, this code is related to\r\n // constraints whereas the Grid code is related to rendering. Each approach might want to convert\r\n // eventRanges -> eventFootprints in a different way. Regardless, there are opportunities to make\r\n // this more DRY.\r\n /*\r\n Returns false on invalid input.\r\n */\r\n Constraints.prototype.parseEventDefToInstances = function (eventInput) {\r\n var eventManager = this.eventManager;\r\n var eventDef = EventDefParser_1.default.parse(eventInput, new EventSource_1.default(this._calendar));\r\n if (!eventDef) { // invalid\r\n return false;\r\n }\r\n return eventDef.buildInstances(eventManager.currentPeriod.unzonedRange);\r\n };\r\n Constraints.prototype.eventRangesToEventFootprints = function (eventRanges) {\r\n var i;\r\n var eventFootprints = [];\r\n for (i = 0; i < eventRanges.length; i++) {\r\n eventFootprints.push.apply(// footprints\r\n eventFootprints, this.eventRangeToEventFootprints(eventRanges[i]));\r\n }\r\n return eventFootprints;\r\n };\r\n Constraints.prototype.eventRangeToEventFootprints = function (eventRange) {\r\n return [util_1.eventRangeToEventFootprint(eventRange)];\r\n };\r\n /*\r\n Parses footprints directly.\r\n Very similar to EventDateProfile::parse :(\r\n */\r\n Constraints.prototype.parseFootprints = function (rawInput) {\r\n var start;\r\n var end;\r\n if (rawInput.start) {\r\n start = this._calendar.moment(rawInput.start);\r\n if (!start.isValid()) {\r\n start = null;\r\n }\r\n }\r\n if (rawInput.end) {\r\n end = this._calendar.moment(rawInput.end);\r\n if (!end.isValid()) {\r\n end = null;\r\n }\r\n }\r\n return [\r\n new ComponentFootprint_1.default(new UnzonedRange_1.default(start, end), (start && !start.hasTime()) || (end && !end.hasTime()) // isAllDay\r\n )\r\n ];\r\n };\r\n // Footprint Utils\r\n // ----------------------------------------------------------------------------------------\r\n Constraints.prototype.footprintContainsFootprint = function (outerFootprint, innerFootprint) {\r\n return outerFootprint.unzonedRange.containsRange(innerFootprint.unzonedRange);\r\n };\r\n Constraints.prototype.footprintsIntersect = function (footprint0, footprint1) {\r\n return footprint0.unzonedRange.intersectsWith(footprint1.unzonedRange);\r\n };\r\n return Constraints;\r\n}());\r\nexports.default = Constraints;\r\n// optional subjectEventInstance\r\nfunction isOverlapsAllowedByFunc(overlapEventFootprints, overlapFunc, subjectEventInstance) {\r\n var i;\r\n for (i = 0; i < overlapEventFootprints.length; i++) {\r\n if (!overlapFunc(overlapEventFootprints[i].eventInstance.toLegacy(), subjectEventInstance ? subjectEventInstance.toLegacy() : null)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isOverlapEventInstancesAllowed(overlapEventFootprints, subjectEventInstance) {\r\n var subjectLegacyInstance = subjectEventInstance.toLegacy();\r\n var i;\r\n var overlapEventInstance;\r\n var overlapEventDef;\r\n var overlapVal;\r\n for (i = 0; i < overlapEventFootprints.length; i++) {\r\n overlapEventInstance = overlapEventFootprints[i].eventInstance;\r\n overlapEventDef = overlapEventInstance.def;\r\n // don't need to pass in calendar, because don't want to consider global eventOverlap property,\r\n // because we already considered that earlier in the process.\r\n overlapVal = overlapEventDef.getOverlap();\r\n if (overlapVal === false) {\r\n return false;\r\n }\r\n else if (typeof overlapVal === 'function') {\r\n if (!overlapVal(overlapEventInstance.toLegacy(), subjectLegacyInstance)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n\n\n/***/ }),\n/* 218 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(19);\r\nvar EventInstanceGroup_1 = __webpack_require__(20);\r\nvar RecurringEventDef_1 = __webpack_require__(54);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar BUSINESS_HOUR_EVENT_DEFAULTS = {\r\n start: '09:00',\r\n end: '17:00',\r\n dow: [1, 2, 3, 4, 5],\r\n rendering: 'inverse-background'\r\n // classNames are defined in businessHoursSegClasses\r\n};\r\nvar BusinessHourGenerator = /** @class */ (function () {\r\n function BusinessHourGenerator(rawComplexDef, calendar) {\r\n this.rawComplexDef = rawComplexDef;\r\n this.calendar = calendar;\r\n }\r\n BusinessHourGenerator.prototype.buildEventInstanceGroup = function (isAllDay, unzonedRange) {\r\n var eventDefs = this.buildEventDefs(isAllDay);\r\n var eventInstanceGroup;\r\n if (eventDefs.length) {\r\n eventInstanceGroup = new EventInstanceGroup_1.default(util_1.eventDefsToEventInstances(eventDefs, unzonedRange));\r\n // so that inverse-background rendering can happen even when no eventRanges in view\r\n eventInstanceGroup.explicitEventDef = eventDefs[0];\r\n return eventInstanceGroup;\r\n }\r\n };\r\n BusinessHourGenerator.prototype.buildEventDefs = function (isAllDay) {\r\n var rawComplexDef = this.rawComplexDef;\r\n var rawDefs = [];\r\n var requireDow = false;\r\n var i;\r\n var defs = [];\r\n if (rawComplexDef === true) {\r\n rawDefs = [{}]; // will get BUSINESS_HOUR_EVENT_DEFAULTS verbatim\r\n }\r\n else if ($.isPlainObject(rawComplexDef)) {\r\n rawDefs = [rawComplexDef];\r\n }\r\n else if ($.isArray(rawComplexDef)) {\r\n rawDefs = rawComplexDef;\r\n requireDow = true; // every sub-definition NEEDS a day-of-week\r\n }\r\n for (i = 0; i < rawDefs.length; i++) {\r\n if (!requireDow || rawDefs[i].dow) {\r\n defs.push(this.buildEventDef(isAllDay, rawDefs[i]));\r\n }\r\n }\r\n return defs;\r\n };\r\n BusinessHourGenerator.prototype.buildEventDef = function (isAllDay, rawDef) {\r\n var fullRawDef = $.extend({}, BUSINESS_HOUR_EVENT_DEFAULTS, rawDef);\r\n if (isAllDay) {\r\n fullRawDef.start = null;\r\n fullRawDef.end = null;\r\n }\r\n return RecurringEventDef_1.default.parse(fullRawDef, new EventSource_1.default(this.calendar) // dummy source\r\n );\r\n };\r\n return BusinessHourGenerator;\r\n}());\r\nexports.default = BusinessHourGenerator;\r\n\n\n/***/ }),\n/* 219 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Promise_1 = __webpack_require__(21);\r\nvar EmitterMixin_1 = __webpack_require__(13);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar EventInstanceGroup_1 = __webpack_require__(20);\r\nvar EventPeriod = /** @class */ (function () {\r\n function EventPeriod(start, end, timezone) {\r\n this.pendingCnt = 0;\r\n this.freezeDepth = 0;\r\n this.stuntedReleaseCnt = 0;\r\n this.releaseCnt = 0;\r\n this.start = start;\r\n this.end = end;\r\n this.timezone = timezone;\r\n this.unzonedRange = new UnzonedRange_1.default(start.clone().stripZone(), end.clone().stripZone());\r\n this.requestsByUid = {};\r\n this.eventDefsByUid = {};\r\n this.eventDefsById = {};\r\n this.eventInstanceGroupsById = {};\r\n }\r\n EventPeriod.prototype.isWithinRange = function (start, end) {\r\n // TODO: use a range util function?\r\n return !start.isBefore(this.start) && !end.isAfter(this.end);\r\n };\r\n // Requesting and Purging\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventPeriod.prototype.requestSources = function (sources) {\r\n this.freeze();\r\n for (var i = 0; i < sources.length; i++) {\r\n this.requestSource(sources[i]);\r\n }\r\n this.thaw();\r\n };\r\n EventPeriod.prototype.requestSource = function (source) {\r\n var _this = this;\r\n var request = { source: source, status: 'pending', eventDefs: null };\r\n this.requestsByUid[source.uid] = request;\r\n this.pendingCnt += 1;\r\n source.fetch(this.start, this.end, this.timezone).then(function (eventDefs) {\r\n if (request.status !== 'cancelled') {\r\n request.status = 'completed';\r\n request.eventDefs = eventDefs;\r\n _this.addEventDefs(eventDefs);\r\n _this.pendingCnt--;\r\n _this.tryRelease();\r\n }\r\n }, function () {\r\n if (request.status !== 'cancelled') {\r\n request.status = 'failed';\r\n _this.pendingCnt--;\r\n _this.tryRelease();\r\n }\r\n });\r\n };\r\n EventPeriod.prototype.purgeSource = function (source) {\r\n var request = this.requestsByUid[source.uid];\r\n if (request) {\r\n delete this.requestsByUid[source.uid];\r\n if (request.status === 'pending') {\r\n request.status = 'cancelled';\r\n this.pendingCnt--;\r\n this.tryRelease();\r\n }\r\n else if (request.status === 'completed') {\r\n request.eventDefs.forEach(this.removeEventDef.bind(this));\r\n }\r\n }\r\n };\r\n EventPeriod.prototype.purgeAllSources = function () {\r\n var requestsByUid = this.requestsByUid;\r\n var uid;\r\n var request;\r\n var completedCnt = 0;\r\n for (uid in requestsByUid) {\r\n request = requestsByUid[uid];\r\n if (request.status === 'pending') {\r\n request.status = 'cancelled';\r\n }\r\n else if (request.status === 'completed') {\r\n completedCnt++;\r\n }\r\n }\r\n this.requestsByUid = {};\r\n this.pendingCnt = 0;\r\n if (completedCnt) {\r\n this.removeAllEventDefs(); // might release\r\n }\r\n };\r\n // Event Definitions\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventPeriod.prototype.getEventDefByUid = function (eventDefUid) {\r\n return this.eventDefsByUid[eventDefUid];\r\n };\r\n EventPeriod.prototype.getEventDefsById = function (eventDefId) {\r\n var a = this.eventDefsById[eventDefId];\r\n if (a) {\r\n return a.slice(); // clone\r\n }\r\n return [];\r\n };\r\n EventPeriod.prototype.addEventDefs = function (eventDefs) {\r\n for (var i = 0; i < eventDefs.length; i++) {\r\n this.addEventDef(eventDefs[i]);\r\n }\r\n };\r\n EventPeriod.prototype.addEventDef = function (eventDef) {\r\n var eventDefsById = this.eventDefsById;\r\n var eventDefId = eventDef.id;\r\n var eventDefs = eventDefsById[eventDefId] || (eventDefsById[eventDefId] = []);\r\n var eventInstances = eventDef.buildInstances(this.unzonedRange);\r\n var i;\r\n eventDefs.push(eventDef);\r\n this.eventDefsByUid[eventDef.uid] = eventDef;\r\n for (i = 0; i < eventInstances.length; i++) {\r\n this.addEventInstance(eventInstances[i], eventDefId);\r\n }\r\n };\r\n EventPeriod.prototype.removeEventDefsById = function (eventDefId) {\r\n var _this = this;\r\n this.getEventDefsById(eventDefId).forEach(function (eventDef) {\r\n _this.removeEventDef(eventDef);\r\n });\r\n };\r\n EventPeriod.prototype.removeAllEventDefs = function () {\r\n var isEmpty = $.isEmptyObject(this.eventDefsByUid);\r\n this.eventDefsByUid = {};\r\n this.eventDefsById = {};\r\n this.eventInstanceGroupsById = {};\r\n if (!isEmpty) {\r\n this.tryRelease();\r\n }\r\n };\r\n EventPeriod.prototype.removeEventDef = function (eventDef) {\r\n var eventDefsById = this.eventDefsById;\r\n var eventDefs = eventDefsById[eventDef.id];\r\n delete this.eventDefsByUid[eventDef.uid];\r\n if (eventDefs) {\r\n util_1.removeExact(eventDefs, eventDef);\r\n if (!eventDefs.length) {\r\n delete eventDefsById[eventDef.id];\r\n }\r\n this.removeEventInstancesForDef(eventDef);\r\n }\r\n };\r\n // Event Instances\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventPeriod.prototype.getEventInstances = function () {\r\n var eventInstanceGroupsById = this.eventInstanceGroupsById;\r\n var eventInstances = [];\r\n var id;\r\n for (id in eventInstanceGroupsById) {\r\n eventInstances.push.apply(eventInstances, // append\r\n eventInstanceGroupsById[id].eventInstances);\r\n }\r\n return eventInstances;\r\n };\r\n EventPeriod.prototype.getEventInstancesWithId = function (eventDefId) {\r\n var eventInstanceGroup = this.eventInstanceGroupsById[eventDefId];\r\n if (eventInstanceGroup) {\r\n return eventInstanceGroup.eventInstances.slice(); // clone\r\n }\r\n return [];\r\n };\r\n EventPeriod.prototype.getEventInstancesWithoutId = function (eventDefId) {\r\n var eventInstanceGroupsById = this.eventInstanceGroupsById;\r\n var matchingInstances = [];\r\n var id;\r\n for (id in eventInstanceGroupsById) {\r\n if (id !== eventDefId) {\r\n matchingInstances.push.apply(matchingInstances, // append\r\n eventInstanceGroupsById[id].eventInstances);\r\n }\r\n }\r\n return matchingInstances;\r\n };\r\n EventPeriod.prototype.addEventInstance = function (eventInstance, eventDefId) {\r\n var eventInstanceGroupsById = this.eventInstanceGroupsById;\r\n var eventInstanceGroup = eventInstanceGroupsById[eventDefId] ||\r\n (eventInstanceGroupsById[eventDefId] = new EventInstanceGroup_1.default());\r\n eventInstanceGroup.eventInstances.push(eventInstance);\r\n this.tryRelease();\r\n };\r\n EventPeriod.prototype.removeEventInstancesForDef = function (eventDef) {\r\n var eventInstanceGroupsById = this.eventInstanceGroupsById;\r\n var eventInstanceGroup = eventInstanceGroupsById[eventDef.id];\r\n var removeCnt;\r\n if (eventInstanceGroup) {\r\n removeCnt = util_1.removeMatching(eventInstanceGroup.eventInstances, function (currentEventInstance) {\r\n return currentEventInstance.def === eventDef;\r\n });\r\n if (!eventInstanceGroup.eventInstances.length) {\r\n delete eventInstanceGroupsById[eventDef.id];\r\n }\r\n if (removeCnt) {\r\n this.tryRelease();\r\n }\r\n }\r\n };\r\n // Releasing and Freezing\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventPeriod.prototype.tryRelease = function () {\r\n if (!this.pendingCnt) {\r\n if (!this.freezeDepth) {\r\n this.release();\r\n }\r\n else {\r\n this.stuntedReleaseCnt++;\r\n }\r\n }\r\n };\r\n EventPeriod.prototype.release = function () {\r\n this.releaseCnt++;\r\n this.trigger('release', this.eventInstanceGroupsById);\r\n };\r\n EventPeriod.prototype.whenReleased = function () {\r\n var _this = this;\r\n if (this.releaseCnt) {\r\n return Promise_1.default.resolve(this.eventInstanceGroupsById);\r\n }\r\n else {\r\n return Promise_1.default.construct(function (onResolve) {\r\n _this.one('release', onResolve);\r\n });\r\n }\r\n };\r\n EventPeriod.prototype.freeze = function () {\r\n if (!(this.freezeDepth++)) {\r\n this.stuntedReleaseCnt = 0;\r\n }\r\n };\r\n EventPeriod.prototype.thaw = function () {\r\n if (!(--this.freezeDepth) && this.stuntedReleaseCnt && !this.pendingCnt) {\r\n this.release();\r\n }\r\n };\r\n return EventPeriod;\r\n}());\r\nexports.default = EventPeriod;\r\nEmitterMixin_1.default.mixInto(EventPeriod);\r\n\n\n/***/ }),\n/* 220 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventPeriod_1 = __webpack_require__(219);\r\nvar ArrayEventSource_1 = __webpack_require__(56);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar EventSourceParser_1 = __webpack_require__(38);\r\nvar SingleEventDef_1 = __webpack_require__(9);\r\nvar EventInstanceGroup_1 = __webpack_require__(20);\r\nvar EmitterMixin_1 = __webpack_require__(13);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar EventManager = /** @class */ (function () {\r\n function EventManager(calendar) {\r\n this.calendar = calendar;\r\n this.stickySource = new ArrayEventSource_1.default(calendar);\r\n this.otherSources = [];\r\n }\r\n EventManager.prototype.requestEvents = function (start, end, timezone, force) {\r\n if (force ||\r\n !this.currentPeriod ||\r\n !this.currentPeriod.isWithinRange(start, end) ||\r\n timezone !== this.currentPeriod.timezone) {\r\n this.setPeriod(// will change this.currentPeriod\r\n new EventPeriod_1.default(start, end, timezone));\r\n }\r\n return this.currentPeriod.whenReleased();\r\n };\r\n // Source Adding/Removing\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.addSource = function (eventSource) {\r\n this.otherSources.push(eventSource);\r\n if (this.currentPeriod) {\r\n this.currentPeriod.requestSource(eventSource); // might release\r\n }\r\n };\r\n EventManager.prototype.removeSource = function (doomedSource) {\r\n util_1.removeExact(this.otherSources, doomedSource);\r\n if (this.currentPeriod) {\r\n this.currentPeriod.purgeSource(doomedSource); // might release\r\n }\r\n };\r\n EventManager.prototype.removeAllSources = function () {\r\n this.otherSources = [];\r\n if (this.currentPeriod) {\r\n this.currentPeriod.purgeAllSources(); // might release\r\n }\r\n };\r\n // Source Refetching\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.refetchSource = function (eventSource) {\r\n var currentPeriod = this.currentPeriod;\r\n if (currentPeriod) {\r\n currentPeriod.freeze();\r\n currentPeriod.purgeSource(eventSource);\r\n currentPeriod.requestSource(eventSource);\r\n currentPeriod.thaw();\r\n }\r\n };\r\n EventManager.prototype.refetchAllSources = function () {\r\n var currentPeriod = this.currentPeriod;\r\n if (currentPeriod) {\r\n currentPeriod.freeze();\r\n currentPeriod.purgeAllSources();\r\n currentPeriod.requestSources(this.getSources());\r\n currentPeriod.thaw();\r\n }\r\n };\r\n // Source Querying\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.getSources = function () {\r\n return [this.stickySource].concat(this.otherSources);\r\n };\r\n // like querySources, but accepts multple match criteria (like multiple IDs)\r\n EventManager.prototype.multiQuerySources = function (matchInputs) {\r\n // coerce into an array\r\n if (!matchInputs) {\r\n matchInputs = [];\r\n }\r\n else if (!$.isArray(matchInputs)) {\r\n matchInputs = [matchInputs];\r\n }\r\n var matchingSources = [];\r\n var i;\r\n // resolve raw inputs to real event source objects\r\n for (i = 0; i < matchInputs.length; i++) {\r\n matchingSources.push.apply(// append\r\n matchingSources, this.querySources(matchInputs[i]));\r\n }\r\n return matchingSources;\r\n };\r\n // matchInput can either by a real event source object, an ID, or the function/URL for the source.\r\n // returns an array of matching source objects.\r\n EventManager.prototype.querySources = function (matchInput) {\r\n var sources = this.otherSources;\r\n var i;\r\n var source;\r\n // given a proper event source object\r\n for (i = 0; i < sources.length; i++) {\r\n source = sources[i];\r\n if (source === matchInput) {\r\n return [source];\r\n }\r\n }\r\n // an ID match\r\n source = this.getSourceById(EventSource_1.default.normalizeId(matchInput));\r\n if (source) {\r\n return [source];\r\n }\r\n // parse as an event source\r\n matchInput = EventSourceParser_1.default.parse(matchInput, this.calendar);\r\n if (matchInput) {\r\n return $.grep(sources, function (source) {\r\n return isSourcesEquivalent(matchInput, source);\r\n });\r\n }\r\n };\r\n /*\r\n ID assumed to already be normalized\r\n */\r\n EventManager.prototype.getSourceById = function (id) {\r\n return $.grep(this.otherSources, function (source) {\r\n return source.id && source.id === id;\r\n })[0];\r\n };\r\n // Event-Period\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.setPeriod = function (eventPeriod) {\r\n if (this.currentPeriod) {\r\n this.unbindPeriod(this.currentPeriod);\r\n this.currentPeriod = null;\r\n }\r\n this.currentPeriod = eventPeriod;\r\n this.bindPeriod(eventPeriod);\r\n eventPeriod.requestSources(this.getSources());\r\n };\r\n EventManager.prototype.bindPeriod = function (eventPeriod) {\r\n this.listenTo(eventPeriod, 'release', function (eventsPayload) {\r\n this.trigger('release', eventsPayload);\r\n });\r\n };\r\n EventManager.prototype.unbindPeriod = function (eventPeriod) {\r\n this.stopListeningTo(eventPeriod);\r\n };\r\n // Event Getting/Adding/Removing\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.getEventDefByUid = function (uid) {\r\n if (this.currentPeriod) {\r\n return this.currentPeriod.getEventDefByUid(uid);\r\n }\r\n };\r\n EventManager.prototype.addEventDef = function (eventDef, isSticky) {\r\n if (isSticky) {\r\n this.stickySource.addEventDef(eventDef);\r\n }\r\n if (this.currentPeriod) {\r\n this.currentPeriod.addEventDef(eventDef); // might release\r\n }\r\n };\r\n EventManager.prototype.removeEventDefsById = function (eventId) {\r\n this.getSources().forEach(function (eventSource) {\r\n eventSource.removeEventDefsById(eventId);\r\n });\r\n if (this.currentPeriod) {\r\n this.currentPeriod.removeEventDefsById(eventId); // might release\r\n }\r\n };\r\n EventManager.prototype.removeAllEventDefs = function () {\r\n this.getSources().forEach(function (eventSource) {\r\n eventSource.removeAllEventDefs();\r\n });\r\n if (this.currentPeriod) {\r\n this.currentPeriod.removeAllEventDefs();\r\n }\r\n };\r\n // Event Mutating\r\n // -----------------------------------------------------------------------------------------------------------------\r\n /*\r\n Returns an undo function.\r\n */\r\n EventManager.prototype.mutateEventsWithId = function (eventDefId, eventDefMutation) {\r\n var currentPeriod = this.currentPeriod;\r\n var eventDefs;\r\n var undoFuncs = [];\r\n if (currentPeriod) {\r\n currentPeriod.freeze();\r\n eventDefs = currentPeriod.getEventDefsById(eventDefId);\r\n eventDefs.forEach(function (eventDef) {\r\n // add/remove esp because id might change\r\n currentPeriod.removeEventDef(eventDef);\r\n undoFuncs.push(eventDefMutation.mutateSingle(eventDef));\r\n currentPeriod.addEventDef(eventDef);\r\n });\r\n currentPeriod.thaw();\r\n return function () {\r\n currentPeriod.freeze();\r\n for (var i = 0; i < eventDefs.length; i++) {\r\n currentPeriod.removeEventDef(eventDefs[i]);\r\n undoFuncs[i]();\r\n currentPeriod.addEventDef(eventDefs[i]);\r\n }\r\n currentPeriod.thaw();\r\n };\r\n }\r\n return function () { };\r\n };\r\n /*\r\n copies and then mutates\r\n */\r\n EventManager.prototype.buildMutatedEventInstanceGroup = function (eventDefId, eventDefMutation) {\r\n var eventDefs = this.getEventDefsById(eventDefId);\r\n var i;\r\n var defCopy;\r\n var allInstances = [];\r\n for (i = 0; i < eventDefs.length; i++) {\r\n defCopy = eventDefs[i].clone();\r\n if (defCopy instanceof SingleEventDef_1.default) {\r\n eventDefMutation.mutateSingle(defCopy);\r\n allInstances.push.apply(allInstances, // append\r\n defCopy.buildInstances());\r\n }\r\n }\r\n return new EventInstanceGroup_1.default(allInstances);\r\n };\r\n // Freezing\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.freeze = function () {\r\n if (this.currentPeriod) {\r\n this.currentPeriod.freeze();\r\n }\r\n };\r\n EventManager.prototype.thaw = function () {\r\n if (this.currentPeriod) {\r\n this.currentPeriod.thaw();\r\n }\r\n };\r\n // methods that simply forward to EventPeriod\r\n EventManager.prototype.getEventDefsById = function (eventDefId) {\r\n return this.currentPeriod.getEventDefsById(eventDefId);\r\n };\r\n EventManager.prototype.getEventInstances = function () {\r\n return this.currentPeriod.getEventInstances();\r\n };\r\n EventManager.prototype.getEventInstancesWithId = function (eventDefId) {\r\n return this.currentPeriod.getEventInstancesWithId(eventDefId);\r\n };\r\n EventManager.prototype.getEventInstancesWithoutId = function (eventDefId) {\r\n return this.currentPeriod.getEventInstancesWithoutId(eventDefId);\r\n };\r\n return EventManager;\r\n}());\r\nexports.default = EventManager;\r\nEmitterMixin_1.default.mixInto(EventManager);\r\nListenerMixin_1.default.mixInto(EventManager);\r\nfunction isSourcesEquivalent(source0, source1) {\r\n return source0.getPrimitive() === source1.getPrimitive();\r\n}\r\n\n\n/***/ }),\n/* 221 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Theme_1 = __webpack_require__(22);\r\nvar StandardTheme = /** @class */ (function (_super) {\r\n tslib_1.__extends(StandardTheme, _super);\r\n function StandardTheme() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return StandardTheme;\r\n}(Theme_1.default));\r\nexports.default = StandardTheme;\r\nStandardTheme.prototype.classes = {\r\n widget: 'fc-unthemed',\r\n widgetHeader: 'fc-widget-header',\r\n widgetContent: 'fc-widget-content',\r\n buttonGroup: 'fc-button-group',\r\n button: 'fc-button',\r\n cornerLeft: 'fc-corner-left',\r\n cornerRight: 'fc-corner-right',\r\n stateDefault: 'fc-state-default',\r\n stateActive: 'fc-state-active',\r\n stateDisabled: 'fc-state-disabled',\r\n stateHover: 'fc-state-hover',\r\n stateDown: 'fc-state-down',\r\n popoverHeader: 'fc-widget-header',\r\n popoverContent: 'fc-widget-content',\r\n // day grid\r\n headerRow: 'fc-widget-header',\r\n dayRow: 'fc-widget-content',\r\n // list view\r\n listView: 'fc-widget-content'\r\n};\r\nStandardTheme.prototype.baseIconClass = 'fc-icon';\r\nStandardTheme.prototype.iconClasses = {\r\n close: 'fc-icon-x',\r\n prev: 'fc-icon-left-single-arrow',\r\n next: 'fc-icon-right-single-arrow',\r\n prevYear: 'fc-icon-left-double-arrow',\r\n nextYear: 'fc-icon-right-double-arrow'\r\n};\r\nStandardTheme.prototype.iconOverrideOption = 'buttonIcons';\r\nStandardTheme.prototype.iconOverrideCustomButtonOption = 'icon';\r\nStandardTheme.prototype.iconOverridePrefix = 'fc-icon-';\r\n\n\n/***/ }),\n/* 222 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Theme_1 = __webpack_require__(22);\r\nvar JqueryUiTheme = /** @class */ (function (_super) {\r\n tslib_1.__extends(JqueryUiTheme, _super);\r\n function JqueryUiTheme() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return JqueryUiTheme;\r\n}(Theme_1.default));\r\nexports.default = JqueryUiTheme;\r\nJqueryUiTheme.prototype.classes = {\r\n widget: 'ui-widget',\r\n widgetHeader: 'ui-widget-header',\r\n widgetContent: 'ui-widget-content',\r\n buttonGroup: 'fc-button-group',\r\n button: 'ui-button',\r\n cornerLeft: 'ui-corner-left',\r\n cornerRight: 'ui-corner-right',\r\n stateDefault: 'ui-state-default',\r\n stateActive: 'ui-state-active',\r\n stateDisabled: 'ui-state-disabled',\r\n stateHover: 'ui-state-hover',\r\n stateDown: 'ui-state-down',\r\n today: 'ui-state-highlight',\r\n popoverHeader: 'ui-widget-header',\r\n popoverContent: 'ui-widget-content',\r\n // day grid\r\n headerRow: 'ui-widget-header',\r\n dayRow: 'ui-widget-content',\r\n // list view\r\n listView: 'ui-widget-content'\r\n};\r\nJqueryUiTheme.prototype.baseIconClass = 'ui-icon';\r\nJqueryUiTheme.prototype.iconClasses = {\r\n close: 'ui-icon-closethick',\r\n prev: 'ui-icon-circle-triangle-w',\r\n next: 'ui-icon-circle-triangle-e',\r\n prevYear: 'ui-icon-seek-prev',\r\n nextYear: 'ui-icon-seek-next'\r\n};\r\nJqueryUiTheme.prototype.iconOverrideOption = 'themeButtonIcons';\r\nJqueryUiTheme.prototype.iconOverrideCustomButtonOption = 'themeIcon';\r\nJqueryUiTheme.prototype.iconOverridePrefix = 'ui-icon-';\r\n\n\n/***/ }),\n/* 223 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar Promise_1 = __webpack_require__(21);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar FuncEventSource = /** @class */ (function (_super) {\r\n tslib_1.__extends(FuncEventSource, _super);\r\n function FuncEventSource() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n FuncEventSource.parse = function (rawInput, calendar) {\r\n var rawProps;\r\n // normalize raw input\r\n if ($.isFunction(rawInput.events)) { // extended form\r\n rawProps = rawInput;\r\n }\r\n else if ($.isFunction(rawInput)) { // short form\r\n rawProps = { events: rawInput };\r\n }\r\n if (rawProps) {\r\n return EventSource_1.default.parse.call(this, rawProps, calendar);\r\n }\r\n return false;\r\n };\r\n FuncEventSource.prototype.fetch = function (start, end, timezone) {\r\n var _this = this;\r\n this.calendar.pushLoading();\r\n return Promise_1.default.construct(function (onResolve) {\r\n _this.func.call(_this.calendar, start.clone(), end.clone(), timezone, function (rawEventDefs) {\r\n _this.calendar.popLoading();\r\n onResolve(_this.parseEventDefs(rawEventDefs));\r\n });\r\n });\r\n };\r\n FuncEventSource.prototype.getPrimitive = function () {\r\n return this.func;\r\n };\r\n FuncEventSource.prototype.applyManualStandardProps = function (rawProps) {\r\n var superSuccess = _super.prototype.applyManualStandardProps.call(this, rawProps);\r\n this.func = rawProps.events;\r\n return superSuccess;\r\n };\r\n return FuncEventSource;\r\n}(EventSource_1.default));\r\nexports.default = FuncEventSource;\r\nFuncEventSource.defineStandardProps({\r\n events: false // don't automatically transfer\r\n});\r\n\n\n/***/ }),\n/* 224 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Promise_1 = __webpack_require__(21);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar JsonFeedEventSource = /** @class */ (function (_super) {\r\n tslib_1.__extends(JsonFeedEventSource, _super);\r\n function JsonFeedEventSource() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n JsonFeedEventSource.parse = function (rawInput, calendar) {\r\n var rawProps;\r\n // normalize raw input\r\n if (typeof rawInput.url === 'string') { // extended form\r\n rawProps = rawInput;\r\n }\r\n else if (typeof rawInput === 'string') { // short form\r\n rawProps = { url: rawInput };\r\n }\r\n if (rawProps) {\r\n return EventSource_1.default.parse.call(this, rawProps, calendar);\r\n }\r\n return false;\r\n };\r\n JsonFeedEventSource.prototype.fetch = function (start, end, timezone) {\r\n var _this = this;\r\n var ajaxSettings = this.ajaxSettings;\r\n var onSuccess = ajaxSettings.success;\r\n var onError = ajaxSettings.error;\r\n var requestParams = this.buildRequestParams(start, end, timezone);\r\n // todo: eventually handle the promise's then,\r\n // don't intercept success/error\r\n // tho will be a breaking API change\r\n this.calendar.pushLoading();\r\n return Promise_1.default.construct(function (onResolve, onReject) {\r\n $.ajax($.extend({}, // destination\r\n JsonFeedEventSource.AJAX_DEFAULTS, ajaxSettings, {\r\n url: _this.url,\r\n data: requestParams,\r\n success: function (rawEventDefs, status, xhr) {\r\n var callbackRes;\r\n _this.calendar.popLoading();\r\n if (rawEventDefs) {\r\n callbackRes = util_1.applyAll(onSuccess, _this, [rawEventDefs, status, xhr]); // redirect `this`\r\n if ($.isArray(callbackRes)) {\r\n rawEventDefs = callbackRes;\r\n }\r\n onResolve(_this.parseEventDefs(rawEventDefs));\r\n }\r\n else {\r\n onReject();\r\n }\r\n },\r\n error: function (xhr, statusText, errorThrown) {\r\n _this.calendar.popLoading();\r\n util_1.applyAll(onError, _this, [xhr, statusText, errorThrown]); // redirect `this`\r\n onReject();\r\n }\r\n }));\r\n });\r\n };\r\n JsonFeedEventSource.prototype.buildRequestParams = function (start, end, timezone) {\r\n var calendar = this.calendar;\r\n var ajaxSettings = this.ajaxSettings;\r\n var startParam;\r\n var endParam;\r\n var timezoneParam;\r\n var customRequestParams;\r\n var params = {};\r\n startParam = this.startParam;\r\n if (startParam == null) {\r\n startParam = calendar.opt('startParam');\r\n }\r\n endParam = this.endParam;\r\n if (endParam == null) {\r\n endParam = calendar.opt('endParam');\r\n }\r\n timezoneParam = this.timezoneParam;\r\n if (timezoneParam == null) {\r\n timezoneParam = calendar.opt('timezoneParam');\r\n }\r\n // retrieve any outbound GET/POST $.ajax data from the options\r\n if ($.isFunction(ajaxSettings.data)) {\r\n // supplied as a function that returns a key/value object\r\n customRequestParams = ajaxSettings.data();\r\n }\r\n else {\r\n // probably supplied as a straight key/value object\r\n customRequestParams = ajaxSettings.data || {};\r\n }\r\n $.extend(params, customRequestParams);\r\n params[startParam] = start.format();\r\n params[endParam] = end.format();\r\n if (timezone && timezone !== 'local') {\r\n params[timezoneParam] = timezone;\r\n }\r\n return params;\r\n };\r\n JsonFeedEventSource.prototype.getPrimitive = function () {\r\n return this.url;\r\n };\r\n JsonFeedEventSource.prototype.applyMiscProps = function (rawProps) {\r\n this.ajaxSettings = rawProps;\r\n };\r\n JsonFeedEventSource.AJAX_DEFAULTS = {\r\n dataType: 'json',\r\n cache: false\r\n };\r\n return JsonFeedEventSource;\r\n}(EventSource_1.default));\r\nexports.default = JsonFeedEventSource;\r\nJsonFeedEventSource.defineStandardProps({\r\n // automatically transfer (true)...\r\n url: true,\r\n startParam: true,\r\n endParam: true,\r\n timezoneParam: true\r\n});\r\n\n\n/***/ }),\n/* 225 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Iterator = /** @class */ (function () {\r\n function Iterator(items) {\r\n this.items = items || [];\r\n }\r\n /* Calls a method on every item passing the arguments through */\r\n Iterator.prototype.proxyCall = function (methodName) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var results = [];\r\n this.items.forEach(function (item) {\r\n results.push(item[methodName].apply(item, args));\r\n });\r\n return results;\r\n };\r\n return Iterator;\r\n}());\r\nexports.default = Iterator;\r\n\n\n/***/ }),\n/* 226 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\n/* Creates a clone of an element and lets it track the mouse as it moves\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar MouseFollower = /** @class */ (function () {\r\n function MouseFollower(sourceEl, options) {\r\n this.isFollowing = false;\r\n this.isHidden = false;\r\n this.isAnimating = false; // doing the revert animation?\r\n this.options = options = options || {};\r\n this.sourceEl = sourceEl;\r\n this.parentEl = options.parentEl ? $(options.parentEl) : sourceEl.parent(); // default to sourceEl's parent\r\n }\r\n // Causes the element to start following the mouse\r\n MouseFollower.prototype.start = function (ev) {\r\n if (!this.isFollowing) {\r\n this.isFollowing = true;\r\n this.y0 = util_1.getEvY(ev);\r\n this.x0 = util_1.getEvX(ev);\r\n this.topDelta = 0;\r\n this.leftDelta = 0;\r\n if (!this.isHidden) {\r\n this.updatePosition();\r\n }\r\n if (util_1.getEvIsTouch(ev)) {\r\n this.listenTo($(document), 'touchmove', this.handleMove);\r\n }\r\n else {\r\n this.listenTo($(document), 'mousemove', this.handleMove);\r\n }\r\n }\r\n };\r\n // Causes the element to stop following the mouse. If shouldRevert is true, will animate back to original position.\r\n // `callback` gets invoked when the animation is complete. If no animation, it is invoked immediately.\r\n MouseFollower.prototype.stop = function (shouldRevert, callback) {\r\n var _this = this;\r\n var revertDuration = this.options.revertDuration;\r\n var complete = function () {\r\n _this.isAnimating = false;\r\n _this.removeElement();\r\n _this.top0 = _this.left0 = null; // reset state for future updatePosition calls\r\n if (callback) {\r\n callback();\r\n }\r\n };\r\n if (this.isFollowing && !this.isAnimating) { // disallow more than one stop animation at a time\r\n this.isFollowing = false;\r\n this.stopListeningTo($(document));\r\n if (shouldRevert && revertDuration && !this.isHidden) { // do a revert animation?\r\n this.isAnimating = true;\r\n this.el.animate({\r\n top: this.top0,\r\n left: this.left0\r\n }, {\r\n duration: revertDuration,\r\n complete: complete\r\n });\r\n }\r\n else {\r\n complete();\r\n }\r\n }\r\n };\r\n // Gets the tracking element. Create it if necessary\r\n MouseFollower.prototype.getEl = function () {\r\n var el = this.el;\r\n if (!el) {\r\n el = this.el = this.sourceEl.clone()\r\n .addClass(this.options.additionalClass || '')\r\n .css({\r\n position: 'absolute',\r\n visibility: '',\r\n display: this.isHidden ? 'none' : '',\r\n margin: 0,\r\n right: 'auto',\r\n bottom: 'auto',\r\n width: this.sourceEl.width(),\r\n height: this.sourceEl.height(),\r\n opacity: this.options.opacity || '',\r\n zIndex: this.options.zIndex\r\n });\r\n // we don't want long taps or any mouse interaction causing selection/menus.\r\n // would use preventSelection(), but that prevents selectstart, causing problems.\r\n el.addClass('fc-unselectable');\r\n el.appendTo(this.parentEl);\r\n }\r\n return el;\r\n };\r\n // Removes the tracking element if it has already been created\r\n MouseFollower.prototype.removeElement = function () {\r\n if (this.el) {\r\n this.el.remove();\r\n this.el = null;\r\n }\r\n };\r\n // Update the CSS position of the tracking element\r\n MouseFollower.prototype.updatePosition = function () {\r\n var sourceOffset;\r\n var origin;\r\n this.getEl(); // ensure this.el\r\n // make sure origin info was computed\r\n if (this.top0 == null) {\r\n sourceOffset = this.sourceEl.offset();\r\n origin = this.el.offsetParent().offset();\r\n this.top0 = sourceOffset.top - origin.top;\r\n this.left0 = sourceOffset.left - origin.left;\r\n }\r\n this.el.css({\r\n top: this.top0 + this.topDelta,\r\n left: this.left0 + this.leftDelta\r\n });\r\n };\r\n // Gets called when the user moves the mouse\r\n MouseFollower.prototype.handleMove = function (ev) {\r\n this.topDelta = util_1.getEvY(ev) - this.y0;\r\n this.leftDelta = util_1.getEvX(ev) - this.x0;\r\n if (!this.isHidden) {\r\n this.updatePosition();\r\n }\r\n };\r\n // Temporarily makes the tracking element invisible. Can be called before following starts\r\n MouseFollower.prototype.hide = function () {\r\n if (!this.isHidden) {\r\n this.isHidden = true;\r\n if (this.el) {\r\n this.el.hide();\r\n }\r\n }\r\n };\r\n // Show the tracking element after it has been temporarily hidden\r\n MouseFollower.prototype.show = function () {\r\n if (this.isHidden) {\r\n this.isHidden = false;\r\n this.updatePosition();\r\n this.getEl().show();\r\n }\r\n };\r\n return MouseFollower;\r\n}());\r\nexports.default = MouseFollower;\r\nListenerMixin_1.default.mixInto(MouseFollower);\r\n\n\n/***/ }),\n/* 227 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* A rectangular panel that is absolutely positioned over other content\r\n------------------------------------------------------------------------------------------------------------------------\r\nOptions:\r\n - className (string)\r\n - content (HTML string or jQuery element set)\r\n - parentEl\r\n - top\r\n - left\r\n - right (the x coord of where the right edge should be. not a \"CSS\" right)\r\n - autoHide (boolean)\r\n - show (callback)\r\n - hide (callback)\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar Popover = /** @class */ (function () {\r\n function Popover(options) {\r\n this.isHidden = true;\r\n this.margin = 10; // the space required between the popover and the edges of the scroll container\r\n this.options = options || {};\r\n }\r\n // Shows the popover on the specified position. Renders it if not already\r\n Popover.prototype.show = function () {\r\n if (this.isHidden) {\r\n if (!this.el) {\r\n this.render();\r\n }\r\n this.el.show();\r\n this.position();\r\n this.isHidden = false;\r\n this.trigger('show');\r\n }\r\n };\r\n // Hides the popover, through CSS, but does not remove it from the DOM\r\n Popover.prototype.hide = function () {\r\n if (!this.isHidden) {\r\n this.el.hide();\r\n this.isHidden = true;\r\n this.trigger('hide');\r\n }\r\n };\r\n // Creates `this.el` and renders content inside of it\r\n Popover.prototype.render = function () {\r\n var _this = this;\r\n var options = this.options;\r\n this.el = $('')\r\n .addClass(options.className || '')\r\n .css({\r\n // position initially to the top left to avoid creating scrollbars\r\n top: 0,\r\n left: 0\r\n })\r\n .append(options.content)\r\n .appendTo(options.parentEl);\r\n // when a click happens on anything inside with a 'fc-close' className, hide the popover\r\n this.el.on('click', '.fc-close', function () {\r\n _this.hide();\r\n });\r\n if (options.autoHide) {\r\n this.listenTo($(document), 'mousedown', this.documentMousedown);\r\n }\r\n };\r\n // Triggered when the user clicks *anywhere* in the document, for the autoHide feature\r\n Popover.prototype.documentMousedown = function (ev) {\r\n // only hide the popover if the click happened outside the popover\r\n if (this.el && !$(ev.target).closest(this.el).length) {\r\n this.hide();\r\n }\r\n };\r\n // Hides and unregisters any handlers\r\n Popover.prototype.removeElement = function () {\r\n this.hide();\r\n if (this.el) {\r\n this.el.remove();\r\n this.el = null;\r\n }\r\n this.stopListeningTo($(document), 'mousedown');\r\n };\r\n // Positions the popover optimally, using the top/left/right options\r\n Popover.prototype.position = function () {\r\n var options = this.options;\r\n var origin = this.el.offsetParent().offset();\r\n var width = this.el.outerWidth();\r\n var height = this.el.outerHeight();\r\n var windowEl = $(window);\r\n var viewportEl = util_1.getScrollParent(this.el);\r\n var viewportTop;\r\n var viewportLeft;\r\n var viewportOffset;\r\n var top; // the \"position\" (not \"offset\") values for the popover\r\n var left; //\r\n // compute top and left\r\n top = options.top || 0;\r\n if (options.left !== undefined) {\r\n left = options.left;\r\n }\r\n else if (options.right !== undefined) {\r\n left = options.right - width; // derive the left value from the right value\r\n }\r\n else {\r\n left = 0;\r\n }\r\n if (viewportEl.is(window) || viewportEl.is(document)) { // normalize getScrollParent's result\r\n viewportEl = windowEl;\r\n viewportTop = 0; // the window is always at the top left\r\n viewportLeft = 0; // (and .offset() won't work if called here)\r\n }\r\n else {\r\n viewportOffset = viewportEl.offset();\r\n viewportTop = viewportOffset.top;\r\n viewportLeft = viewportOffset.left;\r\n }\r\n // if the window is scrolled, it causes the visible area to be further down\r\n viewportTop += windowEl.scrollTop();\r\n viewportLeft += windowEl.scrollLeft();\r\n // constrain to the view port. if constrained by two edges, give precedence to top/left\r\n if (options.viewportConstrain !== false) {\r\n top = Math.min(top, viewportTop + viewportEl.outerHeight() - height - this.margin);\r\n top = Math.max(top, viewportTop + this.margin);\r\n left = Math.min(left, viewportLeft + viewportEl.outerWidth() - width - this.margin);\r\n left = Math.max(left, viewportLeft + this.margin);\r\n }\r\n this.el.css({\r\n top: top - origin.top,\r\n left: left - origin.left\r\n });\r\n };\r\n // Triggers a callback. Calls a function in the option hash of the same name.\r\n // Arguments beyond the first `name` are forwarded on.\r\n // TODO: better code reuse for this. Repeat code\r\n Popover.prototype.trigger = function (name) {\r\n if (this.options[name]) {\r\n this.options[name].apply(this, Array.prototype.slice.call(arguments, 1));\r\n }\r\n };\r\n return Popover;\r\n}());\r\nexports.default = Popover;\r\nListenerMixin_1.default.mixInto(Popover);\r\n\n\n/***/ }),\n/* 228 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EmitterMixin_1 = __webpack_require__(13);\r\nvar TaskQueue = /** @class */ (function () {\r\n function TaskQueue() {\r\n this.q = [];\r\n this.isPaused = false;\r\n this.isRunning = false;\r\n }\r\n TaskQueue.prototype.queue = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n this.q.push.apply(this.q, args); // append\r\n this.tryStart();\r\n };\r\n TaskQueue.prototype.pause = function () {\r\n this.isPaused = true;\r\n };\r\n TaskQueue.prototype.resume = function () {\r\n this.isPaused = false;\r\n this.tryStart();\r\n };\r\n TaskQueue.prototype.getIsIdle = function () {\r\n return !this.isRunning && !this.isPaused;\r\n };\r\n TaskQueue.prototype.tryStart = function () {\r\n if (!this.isRunning && this.canRunNext()) {\r\n this.isRunning = true;\r\n this.trigger('start');\r\n this.runRemaining();\r\n }\r\n };\r\n TaskQueue.prototype.canRunNext = function () {\r\n return !this.isPaused && this.q.length;\r\n };\r\n TaskQueue.prototype.runRemaining = function () {\r\n var _this = this;\r\n var task;\r\n var res;\r\n do {\r\n task = this.q.shift(); // always freshly reference q. might have been reassigned.\r\n res = this.runTask(task);\r\n if (res && res.then) {\r\n res.then(function () {\r\n if (_this.canRunNext()) {\r\n _this.runRemaining();\r\n }\r\n });\r\n return; // prevent marking as stopped\r\n }\r\n } while (this.canRunNext());\r\n this.trigger('stop'); // not really a 'stop' ... more of a 'drained'\r\n this.isRunning = false;\r\n // if 'stop' handler added more tasks.... TODO: write test for this\r\n this.tryStart();\r\n };\r\n TaskQueue.prototype.runTask = function (task) {\r\n return task(); // task *is* the function, but subclasses can change the format of a task\r\n };\r\n return TaskQueue;\r\n}());\r\nexports.default = TaskQueue;\r\nEmitterMixin_1.default.mixInto(TaskQueue);\r\n\n\n/***/ }),\n/* 229 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar TaskQueue_1 = __webpack_require__(228);\r\nvar RenderQueue = /** @class */ (function (_super) {\r\n tslib_1.__extends(RenderQueue, _super);\r\n function RenderQueue(waitsByNamespace) {\r\n var _this = _super.call(this) || this;\r\n _this.waitsByNamespace = waitsByNamespace || {};\r\n return _this;\r\n }\r\n RenderQueue.prototype.queue = function (taskFunc, namespace, type) {\r\n var task = {\r\n func: taskFunc,\r\n namespace: namespace,\r\n type: type\r\n };\r\n var waitMs;\r\n if (namespace) {\r\n waitMs = this.waitsByNamespace[namespace];\r\n }\r\n if (this.waitNamespace) {\r\n if (namespace === this.waitNamespace && waitMs != null) {\r\n this.delayWait(waitMs);\r\n }\r\n else {\r\n this.clearWait();\r\n this.tryStart();\r\n }\r\n }\r\n if (this.compoundTask(task)) { // appended to queue?\r\n if (!this.waitNamespace && waitMs != null) {\r\n this.startWait(namespace, waitMs);\r\n }\r\n else {\r\n this.tryStart();\r\n }\r\n }\r\n };\r\n RenderQueue.prototype.startWait = function (namespace, waitMs) {\r\n this.waitNamespace = namespace;\r\n this.spawnWait(waitMs);\r\n };\r\n RenderQueue.prototype.delayWait = function (waitMs) {\r\n clearTimeout(this.waitId);\r\n this.spawnWait(waitMs);\r\n };\r\n RenderQueue.prototype.spawnWait = function (waitMs) {\r\n var _this = this;\r\n this.waitId = setTimeout(function () {\r\n _this.waitNamespace = null;\r\n _this.tryStart();\r\n }, waitMs);\r\n };\r\n RenderQueue.prototype.clearWait = function () {\r\n if (this.waitNamespace) {\r\n clearTimeout(this.waitId);\r\n this.waitId = null;\r\n this.waitNamespace = null;\r\n }\r\n };\r\n RenderQueue.prototype.canRunNext = function () {\r\n if (!_super.prototype.canRunNext.call(this)) {\r\n return false;\r\n }\r\n // waiting for a certain namespace to stop receiving tasks?\r\n if (this.waitNamespace) {\r\n var q = this.q;\r\n // if there was a different namespace task in the meantime,\r\n // that forces all previously-waiting tasks to suddenly execute.\r\n // TODO: find a way to do this in constant time.\r\n for (var i = 0; i < q.length; i++) {\r\n if (q[i].namespace !== this.waitNamespace) {\r\n return true; // allow execution\r\n }\r\n }\r\n return false;\r\n }\r\n return true;\r\n };\r\n RenderQueue.prototype.runTask = function (task) {\r\n task.func();\r\n };\r\n RenderQueue.prototype.compoundTask = function (newTask) {\r\n var q = this.q;\r\n var shouldAppend = true;\r\n var i;\r\n var task;\r\n if (newTask.namespace && newTask.type === 'destroy') {\r\n // remove all init/add/remove ops with same namespace, regardless of order\r\n for (i = q.length - 1; i >= 0; i--) {\r\n task = q[i];\r\n if (task.namespace === newTask.namespace) {\r\n switch (task.type) {\r\n case 'init':\r\n shouldAppend = false;\r\n // the latest destroy is cancelled out by not doing the init\r\n /* falls through */\r\n case 'add':\r\n /* falls through */\r\n case 'remove':\r\n q.splice(i, 1); // remove task\r\n }\r\n }\r\n }\r\n }\r\n if (shouldAppend) {\r\n q.push(newTask);\r\n }\r\n return shouldAppend;\r\n };\r\n return RenderQueue;\r\n}(TaskQueue_1.default));\r\nexports.default = RenderQueue;\r\n\n\n/***/ }),\n/* 230 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Model_1 = __webpack_require__(51);\r\nvar Component = /** @class */ (function (_super) {\r\n tslib_1.__extends(Component, _super);\r\n function Component() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Component.prototype.setElement = function (el) {\r\n this.el = el;\r\n this.bindGlobalHandlers();\r\n this.renderSkeleton();\r\n this.set('isInDom', true);\r\n };\r\n Component.prototype.removeElement = function () {\r\n this.unset('isInDom');\r\n this.unrenderSkeleton();\r\n this.unbindGlobalHandlers();\r\n this.el.remove();\r\n // NOTE: don't null-out this.el in case the View was destroyed within an API callback.\r\n // We don't null-out the View's other jQuery element references upon destroy,\r\n // so we shouldn't kill this.el either.\r\n };\r\n Component.prototype.bindGlobalHandlers = function () {\r\n // subclasses can override\r\n };\r\n Component.prototype.unbindGlobalHandlers = function () {\r\n // subclasses can override\r\n };\r\n /*\r\n NOTE: Can't have a `render` method. Read the deprecation notice in View::executeDateRender\r\n */\r\n // Renders the basic structure of the view before any content is rendered\r\n Component.prototype.renderSkeleton = function () {\r\n // subclasses should implement\r\n };\r\n // Unrenders the basic structure of the view\r\n Component.prototype.unrenderSkeleton = function () {\r\n // subclasses should implement\r\n };\r\n return Component;\r\n}(Model_1.default));\r\nexports.default = Component;\r\n\n\n/***/ }),\n/* 231 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar moment_ext_1 = __webpack_require__(11);\r\nvar date_formatting_1 = __webpack_require__(49);\r\nvar Component_1 = __webpack_require__(230);\r\nvar util_2 = __webpack_require__(19);\r\nvar DateComponent = /** @class */ (function (_super) {\r\n tslib_1.__extends(DateComponent, _super);\r\n function DateComponent(_view, _options) {\r\n var _this = _super.call(this) || this;\r\n _this.isRTL = false; // frequently accessed options\r\n _this.hitsNeededDepth = 0; // necessary because multiple callers might need the same hits\r\n _this.hasAllDayBusinessHours = false; // TODO: unify with largeUnit and isTimeScale?\r\n _this.isDatesRendered = false;\r\n // hack to set options prior to the this.opt calls\r\n if (_view) {\r\n _this['view'] = _view;\r\n }\r\n if (_options) {\r\n _this['options'] = _options;\r\n }\r\n _this.uid = String(DateComponent.guid++);\r\n _this.childrenByUid = {};\r\n _this.nextDayThreshold = moment.duration(_this.opt('nextDayThreshold'));\r\n _this.isRTL = _this.opt('isRTL');\r\n if (_this.fillRendererClass) {\r\n _this.fillRenderer = new _this.fillRendererClass(_this);\r\n }\r\n if (_this.eventRendererClass) { // fillRenderer is optional -----v\r\n _this.eventRenderer = new _this.eventRendererClass(_this, _this.fillRenderer);\r\n }\r\n if (_this.helperRendererClass && _this.eventRenderer) {\r\n _this.helperRenderer = new _this.helperRendererClass(_this, _this.eventRenderer);\r\n }\r\n if (_this.businessHourRendererClass && _this.fillRenderer) {\r\n _this.businessHourRenderer = new _this.businessHourRendererClass(_this, _this.fillRenderer);\r\n }\r\n return _this;\r\n }\r\n DateComponent.prototype.addChild = function (child) {\r\n if (!this.childrenByUid[child.uid]) {\r\n this.childrenByUid[child.uid] = child;\r\n return true;\r\n }\r\n return false;\r\n };\r\n DateComponent.prototype.removeChild = function (child) {\r\n if (this.childrenByUid[child.uid]) {\r\n delete this.childrenByUid[child.uid];\r\n return true;\r\n }\r\n return false;\r\n };\r\n // TODO: only do if isInDom?\r\n // TODO: make part of Component, along with children/batch-render system?\r\n DateComponent.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n this.callChildren('updateSize', arguments);\r\n };\r\n // Options\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.opt = function (name) {\r\n return this._getView().opt(name); // default implementation\r\n };\r\n DateComponent.prototype.publiclyTrigger = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var calendar = this._getCalendar();\r\n return calendar.publiclyTrigger.apply(calendar, args);\r\n };\r\n DateComponent.prototype.hasPublicHandlers = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var calendar = this._getCalendar();\r\n return calendar.hasPublicHandlers.apply(calendar, args);\r\n };\r\n // Date\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.executeDateRender = function (dateProfile) {\r\n this.dateProfile = dateProfile; // for rendering\r\n this.renderDates(dateProfile);\r\n this.isDatesRendered = true;\r\n this.callChildren('executeDateRender', arguments);\r\n };\r\n DateComponent.prototype.executeDateUnrender = function () {\r\n this.callChildren('executeDateUnrender', arguments);\r\n this.dateProfile = null;\r\n this.unrenderDates();\r\n this.isDatesRendered = false;\r\n };\r\n // date-cell content only\r\n DateComponent.prototype.renderDates = function (dateProfile) {\r\n // subclasses should implement\r\n };\r\n // date-cell content only\r\n DateComponent.prototype.unrenderDates = function () {\r\n // subclasses should override\r\n };\r\n // Now-Indicator\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Returns a string unit, like 'second' or 'minute' that defined how often the current time indicator\r\n // should be refreshed. If something falsy is returned, no time indicator is rendered at all.\r\n DateComponent.prototype.getNowIndicatorUnit = function () {\r\n // subclasses should implement\r\n };\r\n // Renders a current time indicator at the given datetime\r\n DateComponent.prototype.renderNowIndicator = function (date) {\r\n this.callChildren('renderNowIndicator', arguments);\r\n };\r\n // Undoes the rendering actions from renderNowIndicator\r\n DateComponent.prototype.unrenderNowIndicator = function () {\r\n this.callChildren('unrenderNowIndicator', arguments);\r\n };\r\n // Business Hours\r\n // ---------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.renderBusinessHours = function (businessHourGenerator) {\r\n if (this.businessHourRenderer) {\r\n this.businessHourRenderer.render(businessHourGenerator);\r\n }\r\n this.callChildren('renderBusinessHours', arguments);\r\n };\r\n // Unrenders previously-rendered business-hours\r\n DateComponent.prototype.unrenderBusinessHours = function () {\r\n this.callChildren('unrenderBusinessHours', arguments);\r\n if (this.businessHourRenderer) {\r\n this.businessHourRenderer.unrender();\r\n }\r\n };\r\n // Event Displaying\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.executeEventRender = function (eventsPayload) {\r\n if (this.eventRenderer) {\r\n this.eventRenderer.rangeUpdated(); // poorly named now\r\n this.eventRenderer.render(eventsPayload);\r\n }\r\n else if (this['renderEvents']) { // legacy\r\n this['renderEvents'](convertEventsPayloadToLegacyArray(eventsPayload));\r\n }\r\n this.callChildren('executeEventRender', arguments);\r\n };\r\n DateComponent.prototype.executeEventUnrender = function () {\r\n this.callChildren('executeEventUnrender', arguments);\r\n if (this.eventRenderer) {\r\n this.eventRenderer.unrender();\r\n }\r\n else if (this['destroyEvents']) { // legacy\r\n this['destroyEvents']();\r\n }\r\n };\r\n DateComponent.prototype.getBusinessHourSegs = function () {\r\n var segs = this.getOwnBusinessHourSegs();\r\n this.iterChildren(function (child) {\r\n segs.push.apply(segs, child.getBusinessHourSegs());\r\n });\r\n return segs;\r\n };\r\n DateComponent.prototype.getOwnBusinessHourSegs = function () {\r\n if (this.businessHourRenderer) {\r\n return this.businessHourRenderer.getSegs();\r\n }\r\n return [];\r\n };\r\n DateComponent.prototype.getEventSegs = function () {\r\n var segs = this.getOwnEventSegs();\r\n this.iterChildren(function (child) {\r\n segs.push.apply(segs, child.getEventSegs());\r\n });\r\n return segs;\r\n };\r\n DateComponent.prototype.getOwnEventSegs = function () {\r\n if (this.eventRenderer) {\r\n return this.eventRenderer.getSegs();\r\n }\r\n return [];\r\n };\r\n // Event Rendering Triggering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.triggerAfterEventsRendered = function () {\r\n this.triggerAfterEventSegsRendered(this.getEventSegs());\r\n this.publiclyTrigger('eventAfterAllRender', {\r\n context: this,\r\n args: [this]\r\n });\r\n };\r\n DateComponent.prototype.triggerAfterEventSegsRendered = function (segs) {\r\n var _this = this;\r\n // an optimization, because getEventLegacy is expensive\r\n if (this.hasPublicHandlers('eventAfterRender')) {\r\n segs.forEach(function (seg) {\r\n var legacy;\r\n if (seg.el) { // necessary?\r\n legacy = seg.footprint.getEventLegacy();\r\n _this.publiclyTrigger('eventAfterRender', {\r\n context: legacy,\r\n args: [legacy, seg.el, _this]\r\n });\r\n }\r\n });\r\n }\r\n };\r\n DateComponent.prototype.triggerBeforeEventsDestroyed = function () {\r\n this.triggerBeforeEventSegsDestroyed(this.getEventSegs());\r\n };\r\n DateComponent.prototype.triggerBeforeEventSegsDestroyed = function (segs) {\r\n var _this = this;\r\n if (this.hasPublicHandlers('eventDestroy')) {\r\n segs.forEach(function (seg) {\r\n var legacy;\r\n if (seg.el) { // necessary?\r\n legacy = seg.footprint.getEventLegacy();\r\n _this.publiclyTrigger('eventDestroy', {\r\n context: legacy,\r\n args: [legacy, seg.el, _this]\r\n });\r\n }\r\n });\r\n }\r\n };\r\n // Event Rendering Utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Hides all rendered event segments linked to the given event\r\n // RECURSIVE with subcomponents\r\n DateComponent.prototype.showEventsWithId = function (eventDefId) {\r\n this.getEventSegs().forEach(function (seg) {\r\n if (seg.footprint.eventDef.id === eventDefId &&\r\n seg.el // necessary?\r\n ) {\r\n seg.el.css('visibility', '');\r\n }\r\n });\r\n this.callChildren('showEventsWithId', arguments);\r\n };\r\n // Shows all rendered event segments linked to the given event\r\n // RECURSIVE with subcomponents\r\n DateComponent.prototype.hideEventsWithId = function (eventDefId) {\r\n this.getEventSegs().forEach(function (seg) {\r\n if (seg.footprint.eventDef.id === eventDefId &&\r\n seg.el // necessary?\r\n ) {\r\n seg.el.css('visibility', 'hidden');\r\n }\r\n });\r\n this.callChildren('hideEventsWithId', arguments);\r\n };\r\n // Drag-n-Drop Rendering (for both events and external elements)\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Renders a visual indication of a event or external-element drag over the given drop zone.\r\n // If an external-element, seg will be `null`.\r\n // Must return elements used for any mock events.\r\n DateComponent.prototype.renderDrag = function (eventFootprints, seg, isTouch) {\r\n var renderedHelper = false;\r\n this.iterChildren(function (child) {\r\n if (child.renderDrag(eventFootprints, seg, isTouch)) {\r\n renderedHelper = true;\r\n }\r\n });\r\n return renderedHelper;\r\n };\r\n // Unrenders a visual indication of an event or external-element being dragged.\r\n DateComponent.prototype.unrenderDrag = function () {\r\n this.callChildren('unrenderDrag', arguments);\r\n };\r\n // Event Resizing\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Renders a visual indication of an event being resized.\r\n DateComponent.prototype.renderEventResize = function (eventFootprints, seg, isTouch) {\r\n this.callChildren('renderEventResize', arguments);\r\n };\r\n // Unrenders a visual indication of an event being resized.\r\n DateComponent.prototype.unrenderEventResize = function () {\r\n this.callChildren('unrenderEventResize', arguments);\r\n };\r\n // Selection\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Renders a visual indication of the selection\r\n // TODO: rename to `renderSelection` after legacy is gone\r\n DateComponent.prototype.renderSelectionFootprint = function (componentFootprint) {\r\n this.renderHighlight(componentFootprint);\r\n this.callChildren('renderSelectionFootprint', arguments);\r\n };\r\n // Unrenders a visual indication of selection\r\n DateComponent.prototype.unrenderSelection = function () {\r\n this.unrenderHighlight();\r\n this.callChildren('unrenderSelection', arguments);\r\n };\r\n // Highlight\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Renders an emphasis on the given date range. Given a span (unzoned start/end and other misc data)\r\n DateComponent.prototype.renderHighlight = function (componentFootprint) {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.renderFootprint('highlight', componentFootprint, {\r\n getClasses: function () {\r\n return ['fc-highlight'];\r\n }\r\n });\r\n }\r\n this.callChildren('renderHighlight', arguments);\r\n };\r\n // Unrenders the emphasis on a date range\r\n DateComponent.prototype.unrenderHighlight = function () {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.unrender('highlight');\r\n }\r\n this.callChildren('unrenderHighlight', arguments);\r\n };\r\n // Hit Areas\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // just because all DateComponents support this interface\r\n // doesn't mean they need to have their own internal coord system. they can defer to sub-components.\r\n DateComponent.prototype.hitsNeeded = function () {\r\n if (!(this.hitsNeededDepth++)) {\r\n this.prepareHits();\r\n }\r\n this.callChildren('hitsNeeded', arguments);\r\n };\r\n DateComponent.prototype.hitsNotNeeded = function () {\r\n if (this.hitsNeededDepth && !(--this.hitsNeededDepth)) {\r\n this.releaseHits();\r\n }\r\n this.callChildren('hitsNotNeeded', arguments);\r\n };\r\n DateComponent.prototype.prepareHits = function () {\r\n // subclasses can implement\r\n };\r\n DateComponent.prototype.releaseHits = function () {\r\n // subclasses can implement\r\n };\r\n // Given coordinates from the topleft of the document, return data about the date-related area underneath.\r\n // Can return an object with arbitrary properties (although top/right/left/bottom are encouraged).\r\n // Must have a `grid` property, a reference to this current grid. TODO: avoid this\r\n // The returned object will be processed by getHitFootprint and getHitEl.\r\n DateComponent.prototype.queryHit = function (leftOffset, topOffset) {\r\n var childrenByUid = this.childrenByUid;\r\n var uid;\r\n var hit;\r\n for (uid in childrenByUid) {\r\n hit = childrenByUid[uid].queryHit(leftOffset, topOffset);\r\n if (hit) {\r\n break;\r\n }\r\n }\r\n return hit;\r\n };\r\n DateComponent.prototype.getSafeHitFootprint = function (hit) {\r\n var footprint = this.getHitFootprint(hit);\r\n if (!this.dateProfile.activeUnzonedRange.containsRange(footprint.unzonedRange)) {\r\n return null;\r\n }\r\n return footprint;\r\n };\r\n DateComponent.prototype.getHitFootprint = function (hit) {\r\n // what about being abstract!?\r\n };\r\n // Given position-level information about a date-related area within the grid,\r\n // should return a jQuery element that best represents it. passed to dayClick callback.\r\n DateComponent.prototype.getHitEl = function (hit) {\r\n // what about being abstract!?\r\n };\r\n /* Converting eventRange -> eventFootprint\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DateComponent.prototype.eventRangesToEventFootprints = function (eventRanges) {\r\n var eventFootprints = [];\r\n var i;\r\n for (i = 0; i < eventRanges.length; i++) {\r\n eventFootprints.push.apply(// append\r\n eventFootprints, this.eventRangeToEventFootprints(eventRanges[i]));\r\n }\r\n return eventFootprints;\r\n };\r\n DateComponent.prototype.eventRangeToEventFootprints = function (eventRange) {\r\n return [util_2.eventRangeToEventFootprint(eventRange)];\r\n };\r\n /* Converting componentFootprint/eventFootprint -> segs\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DateComponent.prototype.eventFootprintsToSegs = function (eventFootprints) {\r\n var segs = [];\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n segs.push.apply(segs, this.eventFootprintToSegs(eventFootprints[i]));\r\n }\r\n return segs;\r\n };\r\n // Given an event's span (unzoned start/end and other misc data), and the event itself,\r\n // slices into segments and attaches event-derived properties to them.\r\n // eventSpan - { start, end, isStart, isEnd, otherthings... }\r\n DateComponent.prototype.eventFootprintToSegs = function (eventFootprint) {\r\n var unzonedRange = eventFootprint.componentFootprint.unzonedRange;\r\n var segs;\r\n var i;\r\n var seg;\r\n segs = this.componentFootprintToSegs(eventFootprint.componentFootprint);\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n if (!unzonedRange.isStart) {\r\n seg.isStart = false;\r\n }\r\n if (!unzonedRange.isEnd) {\r\n seg.isEnd = false;\r\n }\r\n seg.footprint = eventFootprint;\r\n // TODO: rename to seg.eventFootprint\r\n }\r\n return segs;\r\n };\r\n DateComponent.prototype.componentFootprintToSegs = function (componentFootprint) {\r\n return [];\r\n };\r\n // Utils\r\n // ---------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.callChildren = function (methodName, args) {\r\n this.iterChildren(function (child) {\r\n child[methodName].apply(child, args);\r\n });\r\n };\r\n DateComponent.prototype.iterChildren = function (func) {\r\n var childrenByUid = this.childrenByUid;\r\n var uid;\r\n for (uid in childrenByUid) {\r\n func(childrenByUid[uid]);\r\n }\r\n };\r\n DateComponent.prototype._getCalendar = function () {\r\n var t = this;\r\n return t.calendar || t.view.calendar;\r\n };\r\n DateComponent.prototype._getView = function () {\r\n return this.view;\r\n };\r\n DateComponent.prototype._getDateProfile = function () {\r\n return this._getView().get('dateProfile');\r\n };\r\n // Generates HTML for an anchor to another view into the calendar.\r\n // Will either generate an tag or a non-clickable tag, depending on enabled settings.\r\n // `gotoOptions` can either be a moment input, or an object with the form:\r\n // { date, type, forceOff }\r\n // `type` is a view-type like \"day\" or \"week\". default value is \"day\".\r\n // `attrs` and `innerHtml` are use to generate the rest of the HTML tag.\r\n DateComponent.prototype.buildGotoAnchorHtml = function (gotoOptions, attrs, innerHtml) {\r\n var date;\r\n var type;\r\n var forceOff;\r\n var finalOptions;\r\n if ($.isPlainObject(gotoOptions)) {\r\n date = gotoOptions.date;\r\n type = gotoOptions.type;\r\n forceOff = gotoOptions.forceOff;\r\n }\r\n else {\r\n date = gotoOptions; // a single moment input\r\n }\r\n date = moment_ext_1.default(date); // if a string, parse it\r\n finalOptions = {\r\n date: date.format('YYYY-MM-DD'),\r\n type: type || 'day'\r\n };\r\n if (typeof attrs === 'string') {\r\n innerHtml = attrs;\r\n attrs = null;\r\n }\r\n attrs = attrs ? ' ' + util_1.attrsToStr(attrs) : ''; // will have a leading space\r\n innerHtml = innerHtml || '';\r\n if (!forceOff && this.opt('navLinks')) {\r\n return '' +\r\n innerHtml +\r\n '';\r\n }\r\n else {\r\n return '' +\r\n innerHtml +\r\n '';\r\n }\r\n };\r\n DateComponent.prototype.getAllDayHtml = function () {\r\n return this.opt('allDayHtml') || util_1.htmlEscape(this.opt('allDayText'));\r\n };\r\n // Computes HTML classNames for a single-day element\r\n DateComponent.prototype.getDayClasses = function (date, noThemeHighlight) {\r\n var view = this._getView();\r\n var classes = [];\r\n var today;\r\n if (!this.dateProfile.activeUnzonedRange.containsDate(date)) {\r\n classes.push('fc-disabled-day'); // TODO: jQuery UI theme?\r\n }\r\n else {\r\n classes.push('fc-' + util_1.dayIDs[date.day()]);\r\n if (view.isDateInOtherMonth(date, this.dateProfile)) { // TODO: use DateComponent subclass somehow\r\n classes.push('fc-other-month');\r\n }\r\n today = view.calendar.getNow();\r\n if (date.isSame(today, 'day')) {\r\n classes.push('fc-today');\r\n if (noThemeHighlight !== true) {\r\n classes.push(view.calendar.theme.getClass('today'));\r\n }\r\n }\r\n else if (date < today) {\r\n classes.push('fc-past');\r\n }\r\n else {\r\n classes.push('fc-future');\r\n }\r\n }\r\n return classes;\r\n };\r\n // Utility for formatting a range. Accepts a range object, formatting string, and optional separator.\r\n // Displays all-day ranges naturally, with an inclusive end. Takes the current isRTL into account.\r\n // The timezones of the dates within `range` will be respected.\r\n DateComponent.prototype.formatRange = function (range, isAllDay, formatStr, separator) {\r\n var end = range.end;\r\n if (isAllDay) {\r\n end = end.clone().subtract(1); // convert to inclusive. last ms of previous day\r\n }\r\n return date_formatting_1.formatRange(range.start, end, formatStr, separator, this.isRTL);\r\n };\r\n // Compute the number of the give units in the \"current\" range.\r\n // Will return a floating-point number. Won't round.\r\n DateComponent.prototype.currentRangeAs = function (unit) {\r\n return this._getDateProfile().currentUnzonedRange.as(unit);\r\n };\r\n // Returns the date range of the full days the given range visually appears to occupy.\r\n // Returns a plain object with start/end, NOT an UnzonedRange!\r\n DateComponent.prototype.computeDayRange = function (unzonedRange) {\r\n var calendar = this._getCalendar();\r\n var startDay = calendar.msToUtcMoment(unzonedRange.startMs, true); // the beginning of the day the range starts\r\n var end = calendar.msToUtcMoment(unzonedRange.endMs);\r\n var endTimeMS = +end.time(); // # of milliseconds into `endDay`\r\n var endDay = end.clone().stripTime(); // the beginning of the day the range exclusively ends\r\n // If the end time is actually inclusively part of the next day and is equal to or\r\n // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`.\r\n // Otherwise, leaving it as inclusive will cause it to exclude `endDay`.\r\n if (endTimeMS && endTimeMS >= this.nextDayThreshold) {\r\n endDay.add(1, 'days');\r\n }\r\n // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day.\r\n if (endDay <= startDay) {\r\n endDay = startDay.clone().add(1, 'days');\r\n }\r\n return { start: startDay, end: endDay };\r\n };\r\n // Does the given range visually appear to occupy more than one day?\r\n DateComponent.prototype.isMultiDayRange = function (unzonedRange) {\r\n var dayRange = this.computeDayRange(unzonedRange);\r\n return dayRange.end.diff(dayRange.start, 'days') > 1;\r\n };\r\n DateComponent.guid = 0; // TODO: better system for this?\r\n return DateComponent;\r\n}(Component_1.default));\r\nexports.default = DateComponent;\r\n// legacy\r\nfunction convertEventsPayloadToLegacyArray(eventsPayload) {\r\n var eventDefId;\r\n var eventInstances;\r\n var legacyEvents = [];\r\n var i;\r\n for (eventDefId in eventsPayload) {\r\n eventInstances = eventsPayload[eventDefId].eventInstances;\r\n for (i = 0; i < eventInstances.length; i++) {\r\n legacyEvents.push(eventInstances[i].toLegacy());\r\n }\r\n }\r\n return legacyEvents;\r\n}\r\n\n\n/***/ }),\n/* 232 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar options_1 = __webpack_require__(33);\r\nvar Iterator_1 = __webpack_require__(225);\r\nvar GlobalEmitter_1 = __webpack_require__(23);\r\nvar EmitterMixin_1 = __webpack_require__(13);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar Toolbar_1 = __webpack_require__(257);\r\nvar OptionsManager_1 = __webpack_require__(258);\r\nvar ViewSpecManager_1 = __webpack_require__(259);\r\nvar Constraints_1 = __webpack_require__(217);\r\nvar locale_1 = __webpack_require__(32);\r\nvar moment_ext_1 = __webpack_require__(11);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar EventDateProfile_1 = __webpack_require__(16);\r\nvar EventManager_1 = __webpack_require__(220);\r\nvar BusinessHourGenerator_1 = __webpack_require__(218);\r\nvar EventSourceParser_1 = __webpack_require__(38);\r\nvar EventDefParser_1 = __webpack_require__(36);\r\nvar SingleEventDef_1 = __webpack_require__(9);\r\nvar EventDefMutation_1 = __webpack_require__(39);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar ThemeRegistry_1 = __webpack_require__(57);\r\nvar Calendar = /** @class */ (function () {\r\n function Calendar(el, overrides) {\r\n this.loadingLevel = 0; // number of simultaneous loading tasks\r\n this.ignoreUpdateViewSize = 0;\r\n this.freezeContentHeightDepth = 0;\r\n // declare the current calendar instance relies on GlobalEmitter. needed for garbage collection.\r\n // unneeded() is called in destroy.\r\n GlobalEmitter_1.default.needed();\r\n this.el = el;\r\n this.viewsByType = {};\r\n this.optionsManager = new OptionsManager_1.default(this, overrides);\r\n this.viewSpecManager = new ViewSpecManager_1.default(this.optionsManager, this);\r\n this.initMomentInternals(); // needs to happen after options hash initialized\r\n this.initCurrentDate();\r\n this.initEventManager();\r\n this.constraints = new Constraints_1.default(this.eventManager, this);\r\n this.constructed();\r\n }\r\n Calendar.prototype.constructed = function () {\r\n // useful for monkeypatching. used?\r\n };\r\n Calendar.prototype.getView = function () {\r\n return this.view;\r\n };\r\n Calendar.prototype.publiclyTrigger = function (name, triggerInfo) {\r\n var optHandler = this.opt(name);\r\n var context;\r\n var args;\r\n if ($.isPlainObject(triggerInfo)) {\r\n context = triggerInfo.context;\r\n args = triggerInfo.args;\r\n }\r\n else if ($.isArray(triggerInfo)) {\r\n args = triggerInfo;\r\n }\r\n if (context == null) {\r\n context = this.el[0]; // fallback context\r\n }\r\n if (!args) {\r\n args = [];\r\n }\r\n this.triggerWith(name, context, args); // Emitter's method\r\n if (optHandler) {\r\n return optHandler.apply(context, args);\r\n }\r\n };\r\n Calendar.prototype.hasPublicHandlers = function (name) {\r\n return this.hasHandlers(name) ||\r\n this.opt(name); // handler specified in options\r\n };\r\n // Options Public API\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // public getter/setter\r\n Calendar.prototype.option = function (name, value) {\r\n var newOptionHash;\r\n if (typeof name === 'string') {\r\n if (value === undefined) { // getter\r\n return this.optionsManager.get(name);\r\n }\r\n else { // setter for individual option\r\n newOptionHash = {};\r\n newOptionHash[name] = value;\r\n this.optionsManager.add(newOptionHash);\r\n }\r\n }\r\n else if (typeof name === 'object') { // compound setter with object input\r\n this.optionsManager.add(name);\r\n }\r\n };\r\n // private getter\r\n Calendar.prototype.opt = function (name) {\r\n return this.optionsManager.get(name);\r\n };\r\n // View\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Given a view name for a custom view or a standard view, creates a ready-to-go View object\r\n Calendar.prototype.instantiateView = function (viewType) {\r\n var spec = this.viewSpecManager.getViewSpec(viewType);\r\n if (!spec) {\r\n throw new Error(\"View type \\\"\" + viewType + \"\\\" is not valid\");\r\n }\r\n return new spec['class'](this, spec);\r\n };\r\n // Returns a boolean about whether the view is okay to instantiate at some point\r\n Calendar.prototype.isValidViewType = function (viewType) {\r\n return Boolean(this.viewSpecManager.getViewSpec(viewType));\r\n };\r\n Calendar.prototype.changeView = function (viewName, dateOrRange) {\r\n if (dateOrRange) {\r\n if (dateOrRange.start && dateOrRange.end) { // a range\r\n this.optionsManager.recordOverrides({\r\n visibleRange: dateOrRange\r\n });\r\n }\r\n else { // a date\r\n this.currentDate = this.moment(dateOrRange).stripZone(); // just like gotoDate\r\n }\r\n }\r\n this.renderView(viewName);\r\n };\r\n // Forces navigation to a view for the given date.\r\n // `viewType` can be a specific view name or a generic one like \"week\" or \"day\".\r\n Calendar.prototype.zoomTo = function (newDate, viewType) {\r\n var spec;\r\n viewType = viewType || 'day'; // day is default zoom\r\n spec = this.viewSpecManager.getViewSpec(viewType) ||\r\n this.viewSpecManager.getUnitViewSpec(viewType);\r\n this.currentDate = newDate.clone();\r\n this.renderView(spec ? spec.type : null);\r\n };\r\n // Current Date\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.initCurrentDate = function () {\r\n var defaultDateInput = this.opt('defaultDate');\r\n // compute the initial ambig-timezone date\r\n if (defaultDateInput != null) {\r\n this.currentDate = this.moment(defaultDateInput).stripZone();\r\n }\r\n else {\r\n this.currentDate = this.getNow(); // getNow already returns unzoned\r\n }\r\n };\r\n Calendar.prototype.prev = function () {\r\n var view = this.view;\r\n var prevInfo = view.dateProfileGenerator.buildPrev(view.get('dateProfile'));\r\n if (prevInfo.isValid) {\r\n this.currentDate = prevInfo.date;\r\n this.renderView();\r\n }\r\n };\r\n Calendar.prototype.next = function () {\r\n var view = this.view;\r\n var nextInfo = view.dateProfileGenerator.buildNext(view.get('dateProfile'));\r\n if (nextInfo.isValid) {\r\n this.currentDate = nextInfo.date;\r\n this.renderView();\r\n }\r\n };\r\n Calendar.prototype.prevYear = function () {\r\n this.currentDate.add(-1, 'years');\r\n this.renderView();\r\n };\r\n Calendar.prototype.nextYear = function () {\r\n this.currentDate.add(1, 'years');\r\n this.renderView();\r\n };\r\n Calendar.prototype.today = function () {\r\n this.currentDate = this.getNow(); // should deny like prev/next?\r\n this.renderView();\r\n };\r\n Calendar.prototype.gotoDate = function (zonedDateInput) {\r\n this.currentDate = this.moment(zonedDateInput).stripZone();\r\n this.renderView();\r\n };\r\n Calendar.prototype.incrementDate = function (delta) {\r\n this.currentDate.add(moment.duration(delta));\r\n this.renderView();\r\n };\r\n // for external API\r\n Calendar.prototype.getDate = function () {\r\n return this.applyTimezone(this.currentDate); // infuse the calendar's timezone\r\n };\r\n // Loading Triggering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Should be called when any type of async data fetching begins\r\n Calendar.prototype.pushLoading = function () {\r\n if (!(this.loadingLevel++)) {\r\n this.publiclyTrigger('loading', [true, this.view]);\r\n }\r\n };\r\n // Should be called when any type of async data fetching completes\r\n Calendar.prototype.popLoading = function () {\r\n if (!(--this.loadingLevel)) {\r\n this.publiclyTrigger('loading', [false, this.view]);\r\n }\r\n };\r\n // High-level Rendering\r\n // -----------------------------------------------------------------------------------\r\n Calendar.prototype.render = function () {\r\n if (!this.contentEl) {\r\n this.initialRender();\r\n }\r\n else if (this.elementVisible()) {\r\n // mainly for the public API\r\n this.calcSize();\r\n this.updateViewSize();\r\n }\r\n };\r\n Calendar.prototype.initialRender = function () {\r\n var _this = this;\r\n var el = this.el;\r\n el.addClass('fc');\r\n // event delegation for nav links\r\n el.on('click.fc', 'a[data-goto]', function (ev) {\r\n var anchorEl = $(ev.currentTarget);\r\n var gotoOptions = anchorEl.data('goto'); // will automatically parse JSON\r\n var date = _this.moment(gotoOptions.date);\r\n var viewType = gotoOptions.type;\r\n // property like \"navLinkDayClick\". might be a string or a function\r\n var customAction = _this.view.opt('navLink' + util_1.capitaliseFirstLetter(viewType) + 'Click');\r\n if (typeof customAction === 'function') {\r\n customAction(date, ev);\r\n }\r\n else {\r\n if (typeof customAction === 'string') {\r\n viewType = customAction;\r\n }\r\n _this.zoomTo(date, viewType);\r\n }\r\n });\r\n // called immediately, and upon option change\r\n this.optionsManager.watch('settingTheme', ['?theme', '?themeSystem'], function (opts) {\r\n var themeClass = ThemeRegistry_1.getThemeSystemClass(opts.themeSystem || opts.theme);\r\n var theme = new themeClass(_this.optionsManager);\r\n var widgetClass = theme.getClass('widget');\r\n _this.theme = theme;\r\n if (widgetClass) {\r\n el.addClass(widgetClass);\r\n }\r\n }, function () {\r\n var widgetClass = _this.theme.getClass('widget');\r\n _this.theme = null;\r\n if (widgetClass) {\r\n el.removeClass(widgetClass);\r\n }\r\n });\r\n this.optionsManager.watch('settingBusinessHourGenerator', ['?businessHours'], function (deps) {\r\n _this.businessHourGenerator = new BusinessHourGenerator_1.default(deps.businessHours, _this);\r\n if (_this.view) {\r\n _this.view.set('businessHourGenerator', _this.businessHourGenerator);\r\n }\r\n }, function () {\r\n _this.businessHourGenerator = null;\r\n });\r\n // called immediately, and upon option change.\r\n // HACK: locale often affects isRTL, so we explicitly listen to that too.\r\n this.optionsManager.watch('applyingDirClasses', ['?isRTL', '?locale'], function (opts) {\r\n el.toggleClass('fc-ltr', !opts.isRTL);\r\n el.toggleClass('fc-rtl', opts.isRTL);\r\n });\r\n this.contentEl = $(\"\").prependTo(el);\r\n this.initToolbars();\r\n this.renderHeader();\r\n this.renderFooter();\r\n this.renderView(this.opt('defaultView'));\r\n if (this.opt('handleWindowResize')) {\r\n $(window).resize(this.windowResizeProxy = util_1.debounce(// prevents rapid calls\r\n this.windowResize.bind(this), this.opt('windowResizeDelay')));\r\n }\r\n };\r\n Calendar.prototype.destroy = function () {\r\n if (this.view) {\r\n this.clearView();\r\n }\r\n this.toolbarsManager.proxyCall('removeElement');\r\n this.contentEl.remove();\r\n this.el.removeClass('fc fc-ltr fc-rtl');\r\n // removes theme-related root className\r\n this.optionsManager.unwatch('settingTheme');\r\n this.optionsManager.unwatch('settingBusinessHourGenerator');\r\n this.el.off('.fc'); // unbind nav link handlers\r\n if (this.windowResizeProxy) {\r\n $(window).unbind('resize', this.windowResizeProxy);\r\n this.windowResizeProxy = null;\r\n }\r\n GlobalEmitter_1.default.unneeded();\r\n };\r\n Calendar.prototype.elementVisible = function () {\r\n return this.el.is(':visible');\r\n };\r\n // Render Queue\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.bindViewHandlers = function (view) {\r\n var _this = this;\r\n view.watch('titleForCalendar', ['title'], function (deps) {\r\n if (view === _this.view) { // hack\r\n _this.setToolbarsTitle(deps.title);\r\n }\r\n });\r\n view.watch('dateProfileForCalendar', ['dateProfile'], function (deps) {\r\n if (view === _this.view) { // hack\r\n _this.currentDate = deps.dateProfile.date; // might have been constrained by view dates\r\n _this.updateToolbarButtons(deps.dateProfile);\r\n }\r\n });\r\n };\r\n Calendar.prototype.unbindViewHandlers = function (view) {\r\n view.unwatch('titleForCalendar');\r\n view.unwatch('dateProfileForCalendar');\r\n };\r\n // View Rendering\r\n // -----------------------------------------------------------------------------------\r\n // Renders a view because of a date change, view-type change, or for the first time.\r\n // If not given a viewType, keep the current view but render different dates.\r\n // Accepts an optional scroll state to restore to.\r\n Calendar.prototype.renderView = function (viewType) {\r\n var oldView = this.view;\r\n var newView;\r\n this.freezeContentHeight();\r\n if (oldView && viewType && oldView.type !== viewType) {\r\n this.clearView();\r\n }\r\n // if viewType changed, or the view was never created, create a fresh view\r\n if (!this.view && viewType) {\r\n newView = this.view =\r\n this.viewsByType[viewType] ||\r\n (this.viewsByType[viewType] = this.instantiateView(viewType));\r\n this.bindViewHandlers(newView);\r\n newView.startBatchRender(); // so that setElement+setDate rendering are joined\r\n newView.setElement($(\"\").appendTo(this.contentEl));\r\n this.toolbarsManager.proxyCall('activateButton', viewType);\r\n }\r\n if (this.view) {\r\n // prevent unnecessary change firing\r\n if (this.view.get('businessHourGenerator') !== this.businessHourGenerator) {\r\n this.view.set('businessHourGenerator', this.businessHourGenerator);\r\n }\r\n this.view.setDate(this.currentDate);\r\n if (newView) {\r\n newView.stopBatchRender();\r\n }\r\n }\r\n this.thawContentHeight();\r\n };\r\n // Unrenders the current view and reflects this change in the Header.\r\n // Unregsiters the `view`, but does not remove from viewByType hash.\r\n Calendar.prototype.clearView = function () {\r\n var currentView = this.view;\r\n this.toolbarsManager.proxyCall('deactivateButton', currentView.type);\r\n this.unbindViewHandlers(currentView);\r\n currentView.removeElement();\r\n currentView.unsetDate(); // so bindViewHandlers doesn't fire with old values next time\r\n this.view = null;\r\n };\r\n // Destroys the view, including the view object. Then, re-instantiates it and renders it.\r\n // Maintains the same scroll state.\r\n // TODO: maintain any other user-manipulated state.\r\n Calendar.prototype.reinitView = function () {\r\n var oldView = this.view;\r\n var scroll = oldView.queryScroll(); // wouldn't be so complicated if Calendar owned the scroll\r\n this.freezeContentHeight();\r\n this.clearView();\r\n this.calcSize();\r\n this.renderView(oldView.type); // needs the type to freshly render\r\n this.view.applyScroll(scroll);\r\n this.thawContentHeight();\r\n };\r\n // Resizing\r\n // -----------------------------------------------------------------------------------\r\n Calendar.prototype.getSuggestedViewHeight = function () {\r\n if (this.suggestedViewHeight == null) {\r\n this.calcSize();\r\n }\r\n return this.suggestedViewHeight;\r\n };\r\n Calendar.prototype.isHeightAuto = function () {\r\n return this.opt('contentHeight') === 'auto' || this.opt('height') === 'auto';\r\n };\r\n Calendar.prototype.updateViewSize = function (isResize) {\r\n if (isResize === void 0) { isResize = false; }\r\n var view = this.view;\r\n var scroll;\r\n if (!this.ignoreUpdateViewSize && view) {\r\n if (isResize) {\r\n this.calcSize();\r\n scroll = view.queryScroll();\r\n }\r\n this.ignoreUpdateViewSize++;\r\n view.updateSize(this.getSuggestedViewHeight(), this.isHeightAuto(), isResize);\r\n this.ignoreUpdateViewSize--;\r\n if (isResize) {\r\n view.applyScroll(scroll);\r\n }\r\n return true; // signal success\r\n }\r\n };\r\n Calendar.prototype.calcSize = function () {\r\n if (this.elementVisible()) {\r\n this._calcSize();\r\n }\r\n };\r\n Calendar.prototype._calcSize = function () {\r\n var contentHeightInput = this.opt('contentHeight');\r\n var heightInput = this.opt('height');\r\n if (typeof contentHeightInput === 'number') { // exists and not 'auto'\r\n this.suggestedViewHeight = contentHeightInput;\r\n }\r\n else if (typeof contentHeightInput === 'function') { // exists and is a function\r\n this.suggestedViewHeight = contentHeightInput();\r\n }\r\n else if (typeof heightInput === 'number') { // exists and not 'auto'\r\n this.suggestedViewHeight = heightInput - this.queryToolbarsHeight();\r\n }\r\n else if (typeof heightInput === 'function') { // exists and is a function\r\n this.suggestedViewHeight = heightInput() - this.queryToolbarsHeight();\r\n }\r\n else if (heightInput === 'parent') { // set to height of parent element\r\n this.suggestedViewHeight = this.el.parent().height() - this.queryToolbarsHeight();\r\n }\r\n else {\r\n this.suggestedViewHeight = Math.round(this.contentEl.width() /\r\n Math.max(this.opt('aspectRatio'), .5));\r\n }\r\n };\r\n Calendar.prototype.windowResize = function (ev) {\r\n if (\r\n // the purpose: so we don't process jqui \"resize\" events that have bubbled up\r\n // cast to any because .target, which is Element, can't be compared to window for some reason.\r\n ev.target === window &&\r\n this.view &&\r\n this.view.isDatesRendered) {\r\n if (this.updateViewSize(true)) { // isResize=true, returns true on success\r\n this.publiclyTrigger('windowResize', [this.view]);\r\n }\r\n }\r\n };\r\n /* Height \"Freezing\"\r\n -----------------------------------------------------------------------------*/\r\n Calendar.prototype.freezeContentHeight = function () {\r\n if (!(this.freezeContentHeightDepth++)) {\r\n this.forceFreezeContentHeight();\r\n }\r\n };\r\n Calendar.prototype.forceFreezeContentHeight = function () {\r\n this.contentEl.css({\r\n width: '100%',\r\n height: this.contentEl.height(),\r\n overflow: 'hidden'\r\n });\r\n };\r\n Calendar.prototype.thawContentHeight = function () {\r\n this.freezeContentHeightDepth--;\r\n // always bring back to natural height\r\n this.contentEl.css({\r\n width: '',\r\n height: '',\r\n overflow: ''\r\n });\r\n // but if there are future thaws, re-freeze\r\n if (this.freezeContentHeightDepth) {\r\n this.forceFreezeContentHeight();\r\n }\r\n };\r\n // Toolbar\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.initToolbars = function () {\r\n this.header = new Toolbar_1.default(this, this.computeHeaderOptions());\r\n this.footer = new Toolbar_1.default(this, this.computeFooterOptions());\r\n this.toolbarsManager = new Iterator_1.default([this.header, this.footer]);\r\n };\r\n Calendar.prototype.computeHeaderOptions = function () {\r\n return {\r\n extraClasses: 'fc-header-toolbar',\r\n layout: this.opt('header')\r\n };\r\n };\r\n Calendar.prototype.computeFooterOptions = function () {\r\n return {\r\n extraClasses: 'fc-footer-toolbar',\r\n layout: this.opt('footer')\r\n };\r\n };\r\n // can be called repeatedly and Header will rerender\r\n Calendar.prototype.renderHeader = function () {\r\n var header = this.header;\r\n header.setToolbarOptions(this.computeHeaderOptions());\r\n header.render();\r\n if (header.el) {\r\n this.el.prepend(header.el);\r\n }\r\n };\r\n // can be called repeatedly and Footer will rerender\r\n Calendar.prototype.renderFooter = function () {\r\n var footer = this.footer;\r\n footer.setToolbarOptions(this.computeFooterOptions());\r\n footer.render();\r\n if (footer.el) {\r\n this.el.append(footer.el);\r\n }\r\n };\r\n Calendar.prototype.setToolbarsTitle = function (title) {\r\n this.toolbarsManager.proxyCall('updateTitle', title);\r\n };\r\n Calendar.prototype.updateToolbarButtons = function (dateProfile) {\r\n var now = this.getNow();\r\n var view = this.view;\r\n var todayInfo = view.dateProfileGenerator.build(now);\r\n var prevInfo = view.dateProfileGenerator.buildPrev(view.get('dateProfile'));\r\n var nextInfo = view.dateProfileGenerator.buildNext(view.get('dateProfile'));\r\n this.toolbarsManager.proxyCall((todayInfo.isValid && !dateProfile.currentUnzonedRange.containsDate(now)) ?\r\n 'enableButton' :\r\n 'disableButton', 'today');\r\n this.toolbarsManager.proxyCall(prevInfo.isValid ?\r\n 'enableButton' :\r\n 'disableButton', 'prev');\r\n this.toolbarsManager.proxyCall(nextInfo.isValid ?\r\n 'enableButton' :\r\n 'disableButton', 'next');\r\n };\r\n Calendar.prototype.queryToolbarsHeight = function () {\r\n return this.toolbarsManager.items.reduce(function (accumulator, toolbar) {\r\n var toolbarHeight = toolbar.el ? toolbar.el.outerHeight(true) : 0; // includes margin\r\n return accumulator + toolbarHeight;\r\n }, 0);\r\n };\r\n // Selection\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // this public method receives start/end dates in any format, with any timezone\r\n Calendar.prototype.select = function (zonedStartInput, zonedEndInput) {\r\n this.view.select(this.buildSelectFootprint.apply(this, arguments));\r\n };\r\n Calendar.prototype.unselect = function () {\r\n if (this.view) {\r\n this.view.unselect();\r\n }\r\n };\r\n // Given arguments to the select method in the API, returns a span (unzoned start/end and other info)\r\n Calendar.prototype.buildSelectFootprint = function (zonedStartInput, zonedEndInput) {\r\n var start = this.moment(zonedStartInput).stripZone();\r\n var end;\r\n if (zonedEndInput) {\r\n end = this.moment(zonedEndInput).stripZone();\r\n }\r\n else if (start.hasTime()) {\r\n end = start.clone().add(this.defaultTimedEventDuration);\r\n }\r\n else {\r\n end = start.clone().add(this.defaultAllDayEventDuration);\r\n }\r\n return new ComponentFootprint_1.default(new UnzonedRange_1.default(start, end), !start.hasTime());\r\n };\r\n // Date Utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.initMomentInternals = function () {\r\n var _this = this;\r\n this.defaultAllDayEventDuration = moment.duration(this.opt('defaultAllDayEventDuration'));\r\n this.defaultTimedEventDuration = moment.duration(this.opt('defaultTimedEventDuration'));\r\n // Called immediately, and when any of the options change.\r\n // Happens before any internal objects rebuild or rerender, because this is very core.\r\n this.optionsManager.watch('buildingMomentLocale', [\r\n '?locale', '?monthNames', '?monthNamesShort', '?dayNames', '?dayNamesShort',\r\n '?firstDay', '?weekNumberCalculation'\r\n ], function (opts) {\r\n var weekNumberCalculation = opts.weekNumberCalculation;\r\n var firstDay = opts.firstDay;\r\n var _week;\r\n // normalize\r\n if (weekNumberCalculation === 'iso') {\r\n weekNumberCalculation = 'ISO'; // normalize\r\n }\r\n var localeData = Object.create(// make a cheap copy\r\n locale_1.getMomentLocaleData(opts.locale) // will fall back to en\r\n );\r\n if (opts.monthNames) {\r\n localeData._months = opts.monthNames;\r\n }\r\n if (opts.monthNamesShort) {\r\n localeData._monthsShort = opts.monthNamesShort;\r\n }\r\n if (opts.dayNames) {\r\n localeData._weekdays = opts.dayNames;\r\n }\r\n if (opts.dayNamesShort) {\r\n localeData._weekdaysShort = opts.dayNamesShort;\r\n }\r\n if (firstDay == null && weekNumberCalculation === 'ISO') {\r\n firstDay = 1;\r\n }\r\n if (firstDay != null) {\r\n _week = Object.create(localeData._week); // _week: { dow: # }\r\n _week.dow = firstDay;\r\n localeData._week = _week;\r\n }\r\n if ( // whitelist certain kinds of input\r\n weekNumberCalculation === 'ISO' ||\r\n weekNumberCalculation === 'local' ||\r\n typeof weekNumberCalculation === 'function') {\r\n localeData._fullCalendar_weekCalc = weekNumberCalculation; // moment-ext will know what to do with it\r\n }\r\n _this.localeData = localeData;\r\n // If the internal current date object already exists, move to new locale.\r\n // We do NOT need to do this technique for event dates, because this happens when converting to \"segments\".\r\n if (_this.currentDate) {\r\n _this.localizeMoment(_this.currentDate); // sets to localeData\r\n }\r\n });\r\n };\r\n // Builds a moment using the settings of the current calendar: timezone and locale.\r\n // Accepts anything the vanilla moment() constructor accepts.\r\n Calendar.prototype.moment = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var mom;\r\n if (this.opt('timezone') === 'local') {\r\n mom = moment_ext_1.default.apply(null, args);\r\n // Force the moment to be local, because momentExt doesn't guarantee it.\r\n if (mom.hasTime()) { // don't give ambiguously-timed moments a local zone\r\n mom.local();\r\n }\r\n }\r\n else if (this.opt('timezone') === 'UTC') {\r\n mom = moment_ext_1.default.utc.apply(null, args); // process as UTC\r\n }\r\n else {\r\n mom = moment_ext_1.default.parseZone.apply(null, args); // let the input decide the zone\r\n }\r\n this.localizeMoment(mom); // TODO\r\n return mom;\r\n };\r\n Calendar.prototype.msToMoment = function (ms, forceAllDay) {\r\n var mom = moment_ext_1.default.utc(ms); // TODO: optimize by using Date.UTC\r\n if (forceAllDay) {\r\n mom.stripTime();\r\n }\r\n else {\r\n mom = this.applyTimezone(mom); // may or may not apply locale\r\n }\r\n this.localizeMoment(mom);\r\n return mom;\r\n };\r\n Calendar.prototype.msToUtcMoment = function (ms, forceAllDay) {\r\n var mom = moment_ext_1.default.utc(ms); // TODO: optimize by using Date.UTC\r\n if (forceAllDay) {\r\n mom.stripTime();\r\n }\r\n this.localizeMoment(mom);\r\n return mom;\r\n };\r\n // Updates the given moment's locale settings to the current calendar locale settings.\r\n Calendar.prototype.localizeMoment = function (mom) {\r\n mom._locale = this.localeData;\r\n };\r\n // Returns a boolean about whether or not the calendar knows how to calculate\r\n // the timezone offset of arbitrary dates in the current timezone.\r\n Calendar.prototype.getIsAmbigTimezone = function () {\r\n return this.opt('timezone') !== 'local' && this.opt('timezone') !== 'UTC';\r\n };\r\n // Returns a copy of the given date in the current timezone. Has no effect on dates without times.\r\n Calendar.prototype.applyTimezone = function (date) {\r\n if (!date.hasTime()) {\r\n return date.clone();\r\n }\r\n var zonedDate = this.moment(date.toArray());\r\n var timeAdjust = date.time().asMilliseconds() - zonedDate.time().asMilliseconds();\r\n var adjustedZonedDate;\r\n // Safari sometimes has problems with this coersion when near DST. Adjust if necessary. (bug #2396)\r\n if (timeAdjust) { // is the time result different than expected?\r\n adjustedZonedDate = zonedDate.clone().add(timeAdjust); // add milliseconds\r\n if (date.time().asMilliseconds() - adjustedZonedDate.time().asMilliseconds() === 0) { // does it match perfectly now?\r\n zonedDate = adjustedZonedDate;\r\n }\r\n }\r\n return zonedDate;\r\n };\r\n /*\r\n Assumes the footprint is non-open-ended.\r\n */\r\n Calendar.prototype.footprintToDateProfile = function (componentFootprint, ignoreEnd) {\r\n if (ignoreEnd === void 0) { ignoreEnd = false; }\r\n var start = moment_ext_1.default.utc(componentFootprint.unzonedRange.startMs);\r\n var end;\r\n if (!ignoreEnd) {\r\n end = moment_ext_1.default.utc(componentFootprint.unzonedRange.endMs);\r\n }\r\n if (componentFootprint.isAllDay) {\r\n start.stripTime();\r\n if (end) {\r\n end.stripTime();\r\n }\r\n }\r\n else {\r\n start = this.applyTimezone(start);\r\n if (end) {\r\n end = this.applyTimezone(end);\r\n }\r\n }\r\n this.localizeMoment(start);\r\n if (end) {\r\n this.localizeMoment(end);\r\n }\r\n return new EventDateProfile_1.default(start, end, this);\r\n };\r\n // Returns a moment for the current date, as defined by the client's computer or from the `now` option.\r\n // Will return an moment with an ambiguous timezone.\r\n Calendar.prototype.getNow = function () {\r\n var now = this.opt('now');\r\n if (typeof now === 'function') {\r\n now = now();\r\n }\r\n return this.moment(now).stripZone();\r\n };\r\n // Produces a human-readable string for the given duration.\r\n // Side-effect: changes the locale of the given duration.\r\n Calendar.prototype.humanizeDuration = function (duration) {\r\n return duration.locale(this.opt('locale')).humanize();\r\n };\r\n // will return `null` if invalid range\r\n Calendar.prototype.parseUnzonedRange = function (rangeInput) {\r\n var start = null;\r\n var end = null;\r\n if (rangeInput.start) {\r\n start = this.moment(rangeInput.start).stripZone();\r\n }\r\n if (rangeInput.end) {\r\n end = this.moment(rangeInput.end).stripZone();\r\n }\r\n if (!start && !end) {\r\n return null;\r\n }\r\n if (start && end && end.isBefore(start)) {\r\n return null;\r\n }\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n // Event-Date Utilities\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.initEventManager = function () {\r\n var _this = this;\r\n var eventManager = new EventManager_1.default(this);\r\n var rawSources = this.opt('eventSources') || [];\r\n var singleRawSource = this.opt('events');\r\n this.eventManager = eventManager;\r\n if (singleRawSource) {\r\n rawSources.unshift(singleRawSource);\r\n }\r\n eventManager.on('release', function (eventsPayload) {\r\n _this.trigger('eventsReset', eventsPayload);\r\n });\r\n eventManager.freeze();\r\n rawSources.forEach(function (rawSource) {\r\n var source = EventSourceParser_1.default.parse(rawSource, _this);\r\n if (source) {\r\n eventManager.addSource(source);\r\n }\r\n });\r\n eventManager.thaw();\r\n };\r\n Calendar.prototype.requestEvents = function (start, end) {\r\n return this.eventManager.requestEvents(start, end, this.opt('timezone'), !this.opt('lazyFetching'));\r\n };\r\n // Get an event's normalized end date. If not present, calculate it from the defaults.\r\n Calendar.prototype.getEventEnd = function (event) {\r\n if (event.end) {\r\n return event.end.clone();\r\n }\r\n else {\r\n return this.getDefaultEventEnd(event.allDay, event.start);\r\n }\r\n };\r\n // Given an event's allDay status and start date, return what its fallback end date should be.\r\n // TODO: rename to computeDefaultEventEnd\r\n Calendar.prototype.getDefaultEventEnd = function (allDay, zonedStart) {\r\n var end = zonedStart.clone();\r\n if (allDay) {\r\n end.stripTime().add(this.defaultAllDayEventDuration);\r\n }\r\n else {\r\n end.add(this.defaultTimedEventDuration);\r\n }\r\n if (this.getIsAmbigTimezone()) {\r\n end.stripZone(); // we don't know what the tzo should be\r\n }\r\n return end;\r\n };\r\n // Public Events API\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.rerenderEvents = function () {\r\n this.view.flash('displayingEvents');\r\n };\r\n Calendar.prototype.refetchEvents = function () {\r\n this.eventManager.refetchAllSources();\r\n };\r\n Calendar.prototype.renderEvents = function (eventInputs, isSticky) {\r\n this.eventManager.freeze();\r\n for (var i = 0; i < eventInputs.length; i++) {\r\n this.renderEvent(eventInputs[i], isSticky);\r\n }\r\n this.eventManager.thaw();\r\n };\r\n Calendar.prototype.renderEvent = function (eventInput, isSticky) {\r\n if (isSticky === void 0) { isSticky = false; }\r\n var eventManager = this.eventManager;\r\n var eventDef = EventDefParser_1.default.parse(eventInput, eventInput.source || eventManager.stickySource);\r\n if (eventDef) {\r\n eventManager.addEventDef(eventDef, isSticky);\r\n }\r\n };\r\n // legacyQuery operates on legacy event instance objects\r\n Calendar.prototype.removeEvents = function (legacyQuery) {\r\n var eventManager = this.eventManager;\r\n var legacyInstances = [];\r\n var idMap = {};\r\n var eventDef;\r\n var i;\r\n if (legacyQuery == null) { // shortcut for removing all\r\n eventManager.removeAllEventDefs(); // persist=true\r\n }\r\n else {\r\n eventManager.getEventInstances().forEach(function (eventInstance) {\r\n legacyInstances.push(eventInstance.toLegacy());\r\n });\r\n legacyInstances = filterLegacyEventInstances(legacyInstances, legacyQuery);\r\n // compute unique IDs\r\n for (i = 0; i < legacyInstances.length; i++) {\r\n eventDef = this.eventManager.getEventDefByUid(legacyInstances[i]._id);\r\n idMap[eventDef.id] = true;\r\n }\r\n eventManager.freeze();\r\n for (i in idMap) { // reuse `i` as an \"id\"\r\n eventManager.removeEventDefsById(i); // persist=true\r\n }\r\n eventManager.thaw();\r\n }\r\n };\r\n // legacyQuery operates on legacy event instance objects\r\n Calendar.prototype.clientEvents = function (legacyQuery) {\r\n var legacyEventInstances = [];\r\n this.eventManager.getEventInstances().forEach(function (eventInstance) {\r\n legacyEventInstances.push(eventInstance.toLegacy());\r\n });\r\n return filterLegacyEventInstances(legacyEventInstances, legacyQuery);\r\n };\r\n Calendar.prototype.updateEvents = function (eventPropsArray) {\r\n this.eventManager.freeze();\r\n for (var i = 0; i < eventPropsArray.length; i++) {\r\n this.updateEvent(eventPropsArray[i]);\r\n }\r\n this.eventManager.thaw();\r\n };\r\n Calendar.prototype.updateEvent = function (eventProps) {\r\n var eventDef = this.eventManager.getEventDefByUid(eventProps._id);\r\n var eventInstance;\r\n var eventDefMutation;\r\n if (eventDef instanceof SingleEventDef_1.default) {\r\n eventInstance = eventDef.buildInstance();\r\n eventDefMutation = EventDefMutation_1.default.createFromRawProps(eventInstance, eventProps, // raw props\r\n null // largeUnit -- who uses it?\r\n );\r\n this.eventManager.mutateEventsWithId(eventDef.id, eventDefMutation); // will release\r\n }\r\n };\r\n // Public Event Sources API\r\n // ------------------------------------------------------------------------------------\r\n Calendar.prototype.getEventSources = function () {\r\n return this.eventManager.otherSources.slice(); // clone\r\n };\r\n Calendar.prototype.getEventSourceById = function (id) {\r\n return this.eventManager.getSourceById(EventSource_1.default.normalizeId(id));\r\n };\r\n Calendar.prototype.addEventSource = function (sourceInput) {\r\n var source = EventSourceParser_1.default.parse(sourceInput, this);\r\n if (source) {\r\n this.eventManager.addSource(source);\r\n }\r\n };\r\n Calendar.prototype.removeEventSources = function (sourceMultiQuery) {\r\n var eventManager = this.eventManager;\r\n var sources;\r\n var i;\r\n if (sourceMultiQuery == null) {\r\n this.eventManager.removeAllSources();\r\n }\r\n else {\r\n sources = eventManager.multiQuerySources(sourceMultiQuery);\r\n eventManager.freeze();\r\n for (i = 0; i < sources.length; i++) {\r\n eventManager.removeSource(sources[i]);\r\n }\r\n eventManager.thaw();\r\n }\r\n };\r\n Calendar.prototype.removeEventSource = function (sourceQuery) {\r\n var eventManager = this.eventManager;\r\n var sources = eventManager.querySources(sourceQuery);\r\n var i;\r\n eventManager.freeze();\r\n for (i = 0; i < sources.length; i++) {\r\n eventManager.removeSource(sources[i]);\r\n }\r\n eventManager.thaw();\r\n };\r\n Calendar.prototype.refetchEventSources = function (sourceMultiQuery) {\r\n var eventManager = this.eventManager;\r\n var sources = eventManager.multiQuerySources(sourceMultiQuery);\r\n var i;\r\n eventManager.freeze();\r\n for (i = 0; i < sources.length; i++) {\r\n eventManager.refetchSource(sources[i]);\r\n }\r\n eventManager.thaw();\r\n };\r\n // not for internal use. use options module directly instead.\r\n Calendar.defaults = options_1.globalDefaults;\r\n Calendar.englishDefaults = options_1.englishDefaults;\r\n Calendar.rtlDefaults = options_1.rtlDefaults;\r\n return Calendar;\r\n}());\r\nexports.default = Calendar;\r\nEmitterMixin_1.default.mixInto(Calendar);\r\nListenerMixin_1.default.mixInto(Calendar);\r\nfunction filterLegacyEventInstances(legacyEventInstances, legacyQuery) {\r\n if (legacyQuery == null) {\r\n return legacyEventInstances;\r\n }\r\n else if ($.isFunction(legacyQuery)) {\r\n return legacyEventInstances.filter(legacyQuery);\r\n }\r\n else { // an event ID\r\n legacyQuery += ''; // normalize to string\r\n return legacyEventInstances.filter(function (legacyEventInstance) {\r\n // soft comparison because id not be normalized to string\r\n // tslint:disable-next-line\r\n return legacyEventInstance.id == legacyQuery ||\r\n legacyEventInstance._id === legacyQuery; // can specify internal id, but must exactly match\r\n });\r\n }\r\n}\r\n\n\n/***/ }),\n/* 233 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar exportHooks = __webpack_require__(18);\r\nvar util_1 = __webpack_require__(4);\r\nvar moment_ext_1 = __webpack_require__(11);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar HitDragListener_1 = __webpack_require__(17);\r\nvar SingleEventDef_1 = __webpack_require__(9);\r\nvar EventInstanceGroup_1 = __webpack_require__(20);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar Interaction_1 = __webpack_require__(14);\r\nvar ExternalDropping = /** @class */ (function (_super) {\r\n tslib_1.__extends(ExternalDropping, _super);\r\n function ExternalDropping() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.isDragging = false; // jqui-dragging an external element? boolean\r\n return _this;\r\n }\r\n /*\r\n component impements:\r\n - eventRangesToEventFootprints\r\n - isEventInstanceGroupAllowed\r\n - isExternalInstanceGroupAllowed\r\n - renderDrag\r\n - unrenderDrag\r\n */\r\n ExternalDropping.prototype.end = function () {\r\n if (this.dragListener) {\r\n this.dragListener.endInteraction();\r\n }\r\n };\r\n ExternalDropping.prototype.bindToDocument = function () {\r\n this.listenTo($(document), {\r\n dragstart: this.handleDragStart,\r\n sortstart: this.handleDragStart // jqui\r\n });\r\n };\r\n ExternalDropping.prototype.unbindFromDocument = function () {\r\n this.stopListeningTo($(document));\r\n };\r\n // Called when a jQuery UI drag is initiated anywhere in the DOM\r\n ExternalDropping.prototype.handleDragStart = function (ev, ui) {\r\n var el;\r\n var accept;\r\n if (this.opt('droppable')) { // only listen if this setting is on\r\n el = $((ui ? ui.item : null) || ev.target);\r\n // Test that the dragged element passes the dropAccept selector or filter function.\r\n // FYI, the default is \"*\" (matches all)\r\n accept = this.opt('dropAccept');\r\n if ($.isFunction(accept) ? accept.call(el[0], el) : el.is(accept)) {\r\n if (!this.isDragging) { // prevent double-listening if fired twice\r\n this.listenToExternalDrag(el, ev, ui);\r\n }\r\n }\r\n }\r\n };\r\n // Called when a jQuery UI drag starts and it needs to be monitored for dropping\r\n ExternalDropping.prototype.listenToExternalDrag = function (el, ev, ui) {\r\n var _this = this;\r\n var component = this.component;\r\n var view = this.view;\r\n var meta = getDraggedElMeta(el); // extra data about event drop, including possible event to create\r\n var singleEventDef; // a null value signals an unsuccessful drag\r\n // listener that tracks mouse movement over date-associated pixel regions\r\n var dragListener = this.dragListener = new HitDragListener_1.default(component, {\r\n interactionStart: function () {\r\n _this.isDragging = true;\r\n },\r\n hitOver: function (hit) {\r\n var isAllowed = true;\r\n var hitFootprint = hit.component.getSafeHitFootprint(hit); // hit might not belong to this grid\r\n var mutatedEventInstanceGroup;\r\n if (hitFootprint) {\r\n singleEventDef = _this.computeExternalDrop(hitFootprint, meta);\r\n if (singleEventDef) {\r\n mutatedEventInstanceGroup = new EventInstanceGroup_1.default(singleEventDef.buildInstances());\r\n isAllowed = meta.eventProps ? // isEvent?\r\n component.isEventInstanceGroupAllowed(mutatedEventInstanceGroup) :\r\n component.isExternalInstanceGroupAllowed(mutatedEventInstanceGroup);\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n if (!isAllowed) {\r\n singleEventDef = null;\r\n util_1.disableCursor();\r\n }\r\n if (singleEventDef) {\r\n component.renderDrag(// called without a seg parameter\r\n component.eventRangesToEventFootprints(mutatedEventInstanceGroup.sliceRenderRanges(component.dateProfile.renderUnzonedRange, view.calendar)));\r\n }\r\n },\r\n hitOut: function () {\r\n singleEventDef = null; // signal unsuccessful\r\n },\r\n hitDone: function () {\r\n util_1.enableCursor();\r\n component.unrenderDrag();\r\n },\r\n interactionEnd: function (ev) {\r\n if (singleEventDef) { // element was dropped on a valid hit\r\n view.reportExternalDrop(singleEventDef, Boolean(meta.eventProps), // isEvent\r\n Boolean(meta.stick), // isSticky\r\n el, ev, ui);\r\n }\r\n _this.isDragging = false;\r\n _this.dragListener = null;\r\n }\r\n });\r\n dragListener.startDrag(ev); // start listening immediately\r\n };\r\n // Given a hit to be dropped upon, and misc data associated with the jqui drag (guaranteed to be a plain object),\r\n // returns the zoned start/end dates for the event that would result from the hypothetical drop. end might be null.\r\n // Returning a null value signals an invalid drop hit.\r\n // DOES NOT consider overlap/constraint.\r\n // Assumes both footprints are non-open-ended.\r\n ExternalDropping.prototype.computeExternalDrop = function (componentFootprint, meta) {\r\n var calendar = this.view.calendar;\r\n var start = moment_ext_1.default.utc(componentFootprint.unzonedRange.startMs).stripZone();\r\n var end;\r\n var eventDef;\r\n if (componentFootprint.isAllDay) {\r\n // if dropped on an all-day span, and element's metadata specified a time, set it\r\n if (meta.startTime) {\r\n start.time(meta.startTime);\r\n }\r\n else {\r\n start.stripTime();\r\n }\r\n }\r\n if (meta.duration) {\r\n end = start.clone().add(meta.duration);\r\n }\r\n start = calendar.applyTimezone(start);\r\n if (end) {\r\n end = calendar.applyTimezone(end);\r\n }\r\n eventDef = SingleEventDef_1.default.parse($.extend({}, meta.eventProps, {\r\n start: start,\r\n end: end\r\n }), new EventSource_1.default(calendar));\r\n return eventDef;\r\n };\r\n return ExternalDropping;\r\n}(Interaction_1.default));\r\nexports.default = ExternalDropping;\r\nListenerMixin_1.default.mixInto(ExternalDropping);\r\n/* External-Dragging-Element Data\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Require all HTML5 data-* attributes used by FullCalendar to have this prefix.\r\n// A value of '' will query attributes like data-event. A value of 'fc' will query attributes like data-fc-event.\r\nexportHooks.dataAttrPrefix = '';\r\n// Given a jQuery element that might represent a dragged FullCalendar event, returns an intermediate data structure\r\n// to be used for Event Object creation.\r\n// A defined `.eventProps`, even when empty, indicates that an event should be created.\r\nfunction getDraggedElMeta(el) {\r\n var prefix = exportHooks.dataAttrPrefix;\r\n var eventProps; // properties for creating the event, not related to date/time\r\n var startTime; // a Duration\r\n var duration;\r\n var stick;\r\n if (prefix) {\r\n prefix += '-';\r\n }\r\n eventProps = el.data(prefix + 'event') || null;\r\n if (eventProps) {\r\n if (typeof eventProps === 'object') {\r\n eventProps = $.extend({}, eventProps); // make a copy\r\n }\r\n else { // something like 1 or true. still signal event creation\r\n eventProps = {};\r\n }\r\n // pluck special-cased date/time properties\r\n startTime = eventProps.start;\r\n if (startTime == null) {\r\n startTime = eventProps.time;\r\n } // accept 'time' as well\r\n duration = eventProps.duration;\r\n stick = eventProps.stick;\r\n delete eventProps.start;\r\n delete eventProps.time;\r\n delete eventProps.duration;\r\n delete eventProps.stick;\r\n }\r\n // fallback to standalone attribute values for each of the date/time properties\r\n if (startTime == null) {\r\n startTime = el.data(prefix + 'start');\r\n }\r\n if (startTime == null) {\r\n startTime = el.data(prefix + 'time');\r\n } // accept 'time' as well\r\n if (duration == null) {\r\n duration = el.data(prefix + 'duration');\r\n }\r\n if (stick == null) {\r\n stick = el.data(prefix + 'stick');\r\n }\r\n // massage into correct data types\r\n startTime = startTime != null ? moment.duration(startTime) : null;\r\n duration = duration != null ? moment.duration(duration) : null;\r\n stick = Boolean(stick);\r\n return { eventProps: eventProps, startTime: startTime, duration: duration, stick: stick };\r\n}\r\n\n\n/***/ }),\n/* 234 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventDefMutation_1 = __webpack_require__(39);\r\nvar EventDefDateMutation_1 = __webpack_require__(40);\r\nvar HitDragListener_1 = __webpack_require__(17);\r\nvar Interaction_1 = __webpack_require__(14);\r\nvar EventResizing = /** @class */ (function (_super) {\r\n tslib_1.__extends(EventResizing, _super);\r\n /*\r\n component impements:\r\n - bindSegHandlerToEl\r\n - publiclyTrigger\r\n - diffDates\r\n - eventRangesToEventFootprints\r\n - isEventInstanceGroupAllowed\r\n - getSafeHitFootprint\r\n */\r\n function EventResizing(component, eventPointing) {\r\n var _this = _super.call(this, component) || this;\r\n _this.isResizing = false;\r\n _this.eventPointing = eventPointing;\r\n return _this;\r\n }\r\n EventResizing.prototype.end = function () {\r\n if (this.dragListener) {\r\n this.dragListener.endInteraction();\r\n }\r\n };\r\n EventResizing.prototype.bindToEl = function (el) {\r\n var component = this.component;\r\n component.bindSegHandlerToEl(el, 'mousedown', this.handleMouseDown.bind(this));\r\n component.bindSegHandlerToEl(el, 'touchstart', this.handleTouchStart.bind(this));\r\n };\r\n EventResizing.prototype.handleMouseDown = function (seg, ev) {\r\n if (this.component.canStartResize(seg, ev)) {\r\n this.buildDragListener(seg, $(ev.target).is('.fc-start-resizer'))\r\n .startInteraction(ev, { distance: 5 });\r\n }\r\n };\r\n EventResizing.prototype.handleTouchStart = function (seg, ev) {\r\n if (this.component.canStartResize(seg, ev)) {\r\n this.buildDragListener(seg, $(ev.target).is('.fc-start-resizer'))\r\n .startInteraction(ev);\r\n }\r\n };\r\n // Creates a listener that tracks the user as they resize an event segment.\r\n // Generic enough to work with any type of Grid.\r\n EventResizing.prototype.buildDragListener = function (seg, isStart) {\r\n var _this = this;\r\n var component = this.component;\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var eventManager = calendar.eventManager;\r\n var el = seg.el;\r\n var eventDef = seg.footprint.eventDef;\r\n var eventInstance = seg.footprint.eventInstance;\r\n var isDragging;\r\n var resizeMutation; // zoned event date properties. falsy if invalid resize\r\n // Tracks mouse movement over the *grid's* coordinate map\r\n var dragListener = this.dragListener = new HitDragListener_1.default(component, {\r\n scroll: this.opt('dragScroll'),\r\n subjectEl: el,\r\n interactionStart: function () {\r\n isDragging = false;\r\n },\r\n dragStart: function (ev) {\r\n isDragging = true;\r\n // ensure a mouseout on the manipulated event has been reported\r\n _this.eventPointing.handleMouseout(seg, ev);\r\n _this.segResizeStart(seg, ev);\r\n },\r\n hitOver: function (hit, isOrig, origHit) {\r\n var isAllowed = true;\r\n var origHitFootprint = component.getSafeHitFootprint(origHit);\r\n var hitFootprint = component.getSafeHitFootprint(hit);\r\n var mutatedEventInstanceGroup;\r\n if (origHitFootprint && hitFootprint) {\r\n resizeMutation = isStart ?\r\n _this.computeEventStartResizeMutation(origHitFootprint, hitFootprint, seg.footprint) :\r\n _this.computeEventEndResizeMutation(origHitFootprint, hitFootprint, seg.footprint);\r\n if (resizeMutation) {\r\n mutatedEventInstanceGroup = eventManager.buildMutatedEventInstanceGroup(eventDef.id, resizeMutation);\r\n isAllowed = component.isEventInstanceGroupAllowed(mutatedEventInstanceGroup);\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n if (!isAllowed) {\r\n resizeMutation = null;\r\n util_1.disableCursor();\r\n }\r\n else if (resizeMutation.isEmpty()) {\r\n // no change. (FYI, event dates might have zones)\r\n resizeMutation = null;\r\n }\r\n if (resizeMutation) {\r\n view.hideEventsWithId(seg.footprint.eventDef.id);\r\n view.renderEventResize(component.eventRangesToEventFootprints(mutatedEventInstanceGroup.sliceRenderRanges(component.dateProfile.renderUnzonedRange, calendar)), seg);\r\n }\r\n },\r\n hitOut: function () {\r\n resizeMutation = null;\r\n },\r\n hitDone: function () {\r\n view.unrenderEventResize(seg);\r\n view.showEventsWithId(seg.footprint.eventDef.id);\r\n util_1.enableCursor();\r\n },\r\n interactionEnd: function (ev) {\r\n if (isDragging) {\r\n _this.segResizeStop(seg, ev);\r\n }\r\n if (resizeMutation) { // valid date to resize to?\r\n // no need to re-show original, will rerender all anyways. esp important if eventRenderWait\r\n view.reportEventResize(eventInstance, resizeMutation, el, ev);\r\n }\r\n _this.dragListener = null;\r\n }\r\n });\r\n return dragListener;\r\n };\r\n // Called before event segment resizing starts\r\n EventResizing.prototype.segResizeStart = function (seg, ev) {\r\n this.isResizing = true;\r\n this.component.publiclyTrigger('eventResizeStart', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev,\r\n {},\r\n this.view\r\n ]\r\n });\r\n };\r\n // Called after event segment resizing stops\r\n EventResizing.prototype.segResizeStop = function (seg, ev) {\r\n this.isResizing = false;\r\n this.component.publiclyTrigger('eventResizeStop', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev,\r\n {},\r\n this.view\r\n ]\r\n });\r\n };\r\n // Returns new date-information for an event segment being resized from its start\r\n EventResizing.prototype.computeEventStartResizeMutation = function (startFootprint, endFootprint, origEventFootprint) {\r\n var origRange = origEventFootprint.componentFootprint.unzonedRange;\r\n var startDelta = this.component.diffDates(endFootprint.unzonedRange.getStart(), startFootprint.unzonedRange.getStart());\r\n var dateMutation;\r\n var eventDefMutation;\r\n if (origRange.getStart().add(startDelta) < origRange.getEnd()) {\r\n dateMutation = new EventDefDateMutation_1.default();\r\n dateMutation.setStartDelta(startDelta);\r\n eventDefMutation = new EventDefMutation_1.default();\r\n eventDefMutation.setDateMutation(dateMutation);\r\n return eventDefMutation;\r\n }\r\n return false;\r\n };\r\n // Returns new date-information for an event segment being resized from its end\r\n EventResizing.prototype.computeEventEndResizeMutation = function (startFootprint, endFootprint, origEventFootprint) {\r\n var origRange = origEventFootprint.componentFootprint.unzonedRange;\r\n var endDelta = this.component.diffDates(endFootprint.unzonedRange.getEnd(), startFootprint.unzonedRange.getEnd());\r\n var dateMutation;\r\n var eventDefMutation;\r\n if (origRange.getEnd().add(endDelta) > origRange.getStart()) {\r\n dateMutation = new EventDefDateMutation_1.default();\r\n dateMutation.setEndDelta(endDelta);\r\n eventDefMutation = new EventDefMutation_1.default();\r\n eventDefMutation.setDateMutation(dateMutation);\r\n return eventDefMutation;\r\n }\r\n return false;\r\n };\r\n return EventResizing;\r\n}(Interaction_1.default));\r\nexports.default = EventResizing;\r\n\n\n/***/ }),\n/* 235 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventDefMutation_1 = __webpack_require__(39);\r\nvar EventDefDateMutation_1 = __webpack_require__(40);\r\nvar DragListener_1 = __webpack_require__(59);\r\nvar HitDragListener_1 = __webpack_require__(17);\r\nvar MouseFollower_1 = __webpack_require__(226);\r\nvar Interaction_1 = __webpack_require__(14);\r\nvar EventDragging = /** @class */ (function (_super) {\r\n tslib_1.__extends(EventDragging, _super);\r\n /*\r\n component implements:\r\n - bindSegHandlerToEl\r\n - publiclyTrigger\r\n - diffDates\r\n - eventRangesToEventFootprints\r\n - isEventInstanceGroupAllowed\r\n */\r\n function EventDragging(component, eventPointing) {\r\n var _this = _super.call(this, component) || this;\r\n _this.isDragging = false;\r\n _this.eventPointing = eventPointing;\r\n return _this;\r\n }\r\n EventDragging.prototype.end = function () {\r\n if (this.dragListener) {\r\n this.dragListener.endInteraction();\r\n }\r\n };\r\n EventDragging.prototype.getSelectionDelay = function () {\r\n var delay = this.opt('eventLongPressDelay');\r\n if (delay == null) {\r\n delay = this.opt('longPressDelay'); // fallback\r\n }\r\n return delay;\r\n };\r\n EventDragging.prototype.bindToEl = function (el) {\r\n var component = this.component;\r\n component.bindSegHandlerToEl(el, 'mousedown', this.handleMousedown.bind(this));\r\n component.bindSegHandlerToEl(el, 'touchstart', this.handleTouchStart.bind(this));\r\n };\r\n EventDragging.prototype.handleMousedown = function (seg, ev) {\r\n if (!this.component.shouldIgnoreMouse() &&\r\n this.component.canStartDrag(seg, ev)) {\r\n this.buildDragListener(seg).startInteraction(ev, { distance: 5 });\r\n }\r\n };\r\n EventDragging.prototype.handleTouchStart = function (seg, ev) {\r\n var component = this.component;\r\n var settings = {\r\n delay: this.view.isEventDefSelected(seg.footprint.eventDef) ? // already selected?\r\n 0 : this.getSelectionDelay()\r\n };\r\n if (component.canStartDrag(seg, ev)) {\r\n this.buildDragListener(seg).startInteraction(ev, settings);\r\n }\r\n else if (component.canStartSelection(seg, ev)) {\r\n this.buildSelectListener(seg).startInteraction(ev, settings);\r\n }\r\n };\r\n // seg isn't draggable, but let's use a generic DragListener\r\n // simply for the delay, so it can be selected.\r\n // Has side effect of setting/unsetting `dragListener`\r\n EventDragging.prototype.buildSelectListener = function (seg) {\r\n var _this = this;\r\n var view = this.view;\r\n var eventDef = seg.footprint.eventDef;\r\n var eventInstance = seg.footprint.eventInstance; // null for inverse-background events\r\n if (this.dragListener) {\r\n return this.dragListener;\r\n }\r\n var dragListener = this.dragListener = new DragListener_1.default({\r\n dragStart: function (ev) {\r\n if (dragListener.isTouch &&\r\n !view.isEventDefSelected(eventDef) &&\r\n eventInstance) {\r\n // if not previously selected, will fire after a delay. then, select the event\r\n view.selectEventInstance(eventInstance);\r\n }\r\n },\r\n interactionEnd: function (ev) {\r\n _this.dragListener = null;\r\n }\r\n });\r\n return dragListener;\r\n };\r\n // Builds a listener that will track user-dragging on an event segment.\r\n // Generic enough to work with any type of Grid.\r\n // Has side effect of setting/unsetting `dragListener`\r\n EventDragging.prototype.buildDragListener = function (seg) {\r\n var _this = this;\r\n var component = this.component;\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var eventManager = calendar.eventManager;\r\n var el = seg.el;\r\n var eventDef = seg.footprint.eventDef;\r\n var eventInstance = seg.footprint.eventInstance; // null for inverse-background events\r\n var isDragging;\r\n var mouseFollower; // A clone of the original element that will move with the mouse\r\n var eventDefMutation;\r\n if (this.dragListener) {\r\n return this.dragListener;\r\n }\r\n // Tracks mouse movement over the *view's* coordinate map. Allows dragging and dropping between subcomponents\r\n // of the view.\r\n var dragListener = this.dragListener = new HitDragListener_1.default(view, {\r\n scroll: this.opt('dragScroll'),\r\n subjectEl: el,\r\n subjectCenter: true,\r\n interactionStart: function (ev) {\r\n seg.component = component; // for renderDrag\r\n isDragging = false;\r\n mouseFollower = new MouseFollower_1.default(seg.el, {\r\n additionalClass: 'fc-dragging',\r\n parentEl: view.el,\r\n opacity: dragListener.isTouch ? null : _this.opt('dragOpacity'),\r\n revertDuration: _this.opt('dragRevertDuration'),\r\n zIndex: 2 // one above the .fc-view\r\n });\r\n mouseFollower.hide(); // don't show until we know this is a real drag\r\n mouseFollower.start(ev);\r\n },\r\n dragStart: function (ev) {\r\n if (dragListener.isTouch &&\r\n !view.isEventDefSelected(eventDef) &&\r\n eventInstance) {\r\n // if not previously selected, will fire after a delay. then, select the event\r\n view.selectEventInstance(eventInstance);\r\n }\r\n isDragging = true;\r\n // ensure a mouseout on the manipulated event has been reported\r\n _this.eventPointing.handleMouseout(seg, ev);\r\n _this.segDragStart(seg, ev);\r\n view.hideEventsWithId(seg.footprint.eventDef.id);\r\n },\r\n hitOver: function (hit, isOrig, origHit) {\r\n var isAllowed = true;\r\n var origFootprint;\r\n var footprint;\r\n var mutatedEventInstanceGroup;\r\n // starting hit could be forced (DayGrid.limit)\r\n if (seg.hit) {\r\n origHit = seg.hit;\r\n }\r\n // hit might not belong to this grid, so query origin grid\r\n origFootprint = origHit.component.getSafeHitFootprint(origHit);\r\n footprint = hit.component.getSafeHitFootprint(hit);\r\n if (origFootprint && footprint) {\r\n eventDefMutation = _this.computeEventDropMutation(origFootprint, footprint, eventDef);\r\n if (eventDefMutation) {\r\n mutatedEventInstanceGroup = eventManager.buildMutatedEventInstanceGroup(eventDef.id, eventDefMutation);\r\n isAllowed = component.isEventInstanceGroupAllowed(mutatedEventInstanceGroup);\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n if (!isAllowed) {\r\n eventDefMutation = null;\r\n util_1.disableCursor();\r\n }\r\n // if a valid drop location, have the subclass render a visual indication\r\n if (eventDefMutation &&\r\n view.renderDrag(// truthy if rendered something\r\n component.eventRangesToEventFootprints(mutatedEventInstanceGroup.sliceRenderRanges(component.dateProfile.renderUnzonedRange, calendar)), seg, dragListener.isTouch)) {\r\n mouseFollower.hide(); // if the subclass is already using a mock event \"helper\", hide our own\r\n }\r\n else {\r\n mouseFollower.show(); // otherwise, have the helper follow the mouse (no snapping)\r\n }\r\n if (isOrig) {\r\n // needs to have moved hits to be a valid drop\r\n eventDefMutation = null;\r\n }\r\n },\r\n hitOut: function () {\r\n view.unrenderDrag(seg); // unrender whatever was done in renderDrag\r\n mouseFollower.show(); // show in case we are moving out of all hits\r\n eventDefMutation = null;\r\n },\r\n hitDone: function () {\r\n util_1.enableCursor();\r\n },\r\n interactionEnd: function (ev) {\r\n delete seg.component; // prevent side effects\r\n // do revert animation if hasn't changed. calls a callback when finished (whether animation or not)\r\n mouseFollower.stop(!eventDefMutation, function () {\r\n if (isDragging) {\r\n view.unrenderDrag(seg);\r\n _this.segDragStop(seg, ev);\r\n }\r\n view.showEventsWithId(seg.footprint.eventDef.id);\r\n if (eventDefMutation) {\r\n // no need to re-show original, will rerender all anyways. esp important if eventRenderWait\r\n view.reportEventDrop(eventInstance, eventDefMutation, el, ev);\r\n }\r\n });\r\n _this.dragListener = null;\r\n }\r\n });\r\n return dragListener;\r\n };\r\n // Called before event segment dragging starts\r\n EventDragging.prototype.segDragStart = function (seg, ev) {\r\n this.isDragging = true;\r\n this.component.publiclyTrigger('eventDragStart', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev,\r\n {},\r\n this.view\r\n ]\r\n });\r\n };\r\n // Called after event segment dragging stops\r\n EventDragging.prototype.segDragStop = function (seg, ev) {\r\n this.isDragging = false;\r\n this.component.publiclyTrigger('eventDragStop', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev,\r\n {},\r\n this.view\r\n ]\r\n });\r\n };\r\n // DOES NOT consider overlap/constraint\r\n EventDragging.prototype.computeEventDropMutation = function (startFootprint, endFootprint, eventDef) {\r\n var eventDefMutation = new EventDefMutation_1.default();\r\n eventDefMutation.setDateMutation(this.computeEventDateMutation(startFootprint, endFootprint));\r\n return eventDefMutation;\r\n };\r\n EventDragging.prototype.computeEventDateMutation = function (startFootprint, endFootprint) {\r\n var date0 = startFootprint.unzonedRange.getStart();\r\n var date1 = endFootprint.unzonedRange.getStart();\r\n var clearEnd = false;\r\n var forceTimed = false;\r\n var forceAllDay = false;\r\n var dateDelta;\r\n var dateMutation;\r\n if (startFootprint.isAllDay !== endFootprint.isAllDay) {\r\n clearEnd = true;\r\n if (endFootprint.isAllDay) {\r\n forceAllDay = true;\r\n date0.stripTime();\r\n }\r\n else {\r\n forceTimed = true;\r\n }\r\n }\r\n dateDelta = this.component.diffDates(date1, date0);\r\n dateMutation = new EventDefDateMutation_1.default();\r\n dateMutation.clearEnd = clearEnd;\r\n dateMutation.forceTimed = forceTimed;\r\n dateMutation.forceAllDay = forceAllDay;\r\n dateMutation.setDateDelta(dateDelta);\r\n return dateMutation;\r\n };\r\n return EventDragging;\r\n}(Interaction_1.default));\r\nexports.default = EventDragging;\r\n\n\n/***/ }),\n/* 236 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar HitDragListener_1 = __webpack_require__(17);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar Interaction_1 = __webpack_require__(14);\r\nvar DateSelecting = /** @class */ (function (_super) {\r\n tslib_1.__extends(DateSelecting, _super);\r\n /*\r\n component must implement:\r\n - bindDateHandlerToEl\r\n - getSafeHitFootprint\r\n - renderHighlight\r\n - unrenderHighlight\r\n */\r\n function DateSelecting(component) {\r\n var _this = _super.call(this, component) || this;\r\n _this.dragListener = _this.buildDragListener();\r\n return _this;\r\n }\r\n DateSelecting.prototype.end = function () {\r\n this.dragListener.endInteraction();\r\n };\r\n DateSelecting.prototype.getDelay = function () {\r\n var delay = this.opt('selectLongPressDelay');\r\n if (delay == null) {\r\n delay = this.opt('longPressDelay'); // fallback\r\n }\r\n return delay;\r\n };\r\n DateSelecting.prototype.bindToEl = function (el) {\r\n var _this = this;\r\n var component = this.component;\r\n var dragListener = this.dragListener;\r\n component.bindDateHandlerToEl(el, 'mousedown', function (ev) {\r\n if (_this.opt('selectable') && !component.shouldIgnoreMouse()) {\r\n dragListener.startInteraction(ev, {\r\n distance: _this.opt('selectMinDistance')\r\n });\r\n }\r\n });\r\n component.bindDateHandlerToEl(el, 'touchstart', function (ev) {\r\n if (_this.opt('selectable') && !component.shouldIgnoreTouch()) {\r\n dragListener.startInteraction(ev, {\r\n delay: _this.getDelay()\r\n });\r\n }\r\n });\r\n util_1.preventSelection(el);\r\n };\r\n // Creates a listener that tracks the user's drag across day elements, for day selecting.\r\n DateSelecting.prototype.buildDragListener = function () {\r\n var _this = this;\r\n var component = this.component;\r\n var selectionFootprint; // null if invalid selection\r\n var dragListener = new HitDragListener_1.default(component, {\r\n scroll: this.opt('dragScroll'),\r\n interactionStart: function () {\r\n selectionFootprint = null;\r\n },\r\n dragStart: function (ev) {\r\n _this.view.unselect(ev); // since we could be rendering a new selection, we want to clear any old one\r\n },\r\n hitOver: function (hit, isOrig, origHit) {\r\n var origHitFootprint;\r\n var hitFootprint;\r\n if (origHit) { // click needs to have started on a hit\r\n origHitFootprint = component.getSafeHitFootprint(origHit);\r\n hitFootprint = component.getSafeHitFootprint(hit);\r\n if (origHitFootprint && hitFootprint) {\r\n selectionFootprint = _this.computeSelection(origHitFootprint, hitFootprint);\r\n }\r\n else {\r\n selectionFootprint = null;\r\n }\r\n if (selectionFootprint) {\r\n component.renderSelectionFootprint(selectionFootprint);\r\n }\r\n else if (selectionFootprint === false) {\r\n util_1.disableCursor();\r\n }\r\n }\r\n },\r\n hitOut: function () {\r\n selectionFootprint = null;\r\n component.unrenderSelection();\r\n },\r\n hitDone: function () {\r\n util_1.enableCursor();\r\n },\r\n interactionEnd: function (ev, isCancelled) {\r\n if (!isCancelled && selectionFootprint) {\r\n // the selection will already have been rendered. just report it\r\n _this.view.reportSelection(selectionFootprint, ev);\r\n }\r\n }\r\n });\r\n return dragListener;\r\n };\r\n // Given the first and last date-spans of a selection, returns another date-span object.\r\n // Subclasses can override and provide additional data in the span object. Will be passed to renderSelectionFootprint().\r\n // Will return false if the selection is invalid and this should be indicated to the user.\r\n // Will return null/undefined if a selection invalid but no error should be reported.\r\n DateSelecting.prototype.computeSelection = function (footprint0, footprint1) {\r\n var wholeFootprint = this.computeSelectionFootprint(footprint0, footprint1);\r\n if (wholeFootprint && !this.isSelectionFootprintAllowed(wholeFootprint)) {\r\n return false;\r\n }\r\n return wholeFootprint;\r\n };\r\n // Given two spans, must return the combination of the two.\r\n // TODO: do this separation of concerns (combining VS validation) for event dnd/resize too.\r\n // Assumes both footprints are non-open-ended.\r\n DateSelecting.prototype.computeSelectionFootprint = function (footprint0, footprint1) {\r\n var ms = [\r\n footprint0.unzonedRange.startMs,\r\n footprint0.unzonedRange.endMs,\r\n footprint1.unzonedRange.startMs,\r\n footprint1.unzonedRange.endMs\r\n ];\r\n ms.sort(util_1.compareNumbers);\r\n return new ComponentFootprint_1.default(new UnzonedRange_1.default(ms[0], ms[3]), footprint0.isAllDay);\r\n };\r\n DateSelecting.prototype.isSelectionFootprintAllowed = function (componentFootprint) {\r\n return this.component.dateProfile.validUnzonedRange.containsRange(componentFootprint.unzonedRange) &&\r\n this.view.calendar.constraints.isSelectionFootprintAllowed(componentFootprint);\r\n };\r\n return DateSelecting;\r\n}(Interaction_1.default));\r\nexports.default = DateSelecting;\r\n\n\n/***/ }),\n/* 237 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar HitDragListener_1 = __webpack_require__(17);\r\nvar Interaction_1 = __webpack_require__(14);\r\nvar DateClicking = /** @class */ (function (_super) {\r\n tslib_1.__extends(DateClicking, _super);\r\n /*\r\n component must implement:\r\n - bindDateHandlerToEl\r\n - getSafeHitFootprint\r\n - getHitEl\r\n */\r\n function DateClicking(component) {\r\n var _this = _super.call(this, component) || this;\r\n _this.dragListener = _this.buildDragListener();\r\n return _this;\r\n }\r\n DateClicking.prototype.end = function () {\r\n this.dragListener.endInteraction();\r\n };\r\n DateClicking.prototype.bindToEl = function (el) {\r\n var component = this.component;\r\n var dragListener = this.dragListener;\r\n component.bindDateHandlerToEl(el, 'mousedown', function (ev) {\r\n if (!component.shouldIgnoreMouse()) {\r\n dragListener.startInteraction(ev);\r\n }\r\n });\r\n component.bindDateHandlerToEl(el, 'touchstart', function (ev) {\r\n if (!component.shouldIgnoreTouch()) {\r\n dragListener.startInteraction(ev);\r\n }\r\n });\r\n };\r\n // Creates a listener that tracks the user's drag across day elements, for day clicking.\r\n DateClicking.prototype.buildDragListener = function () {\r\n var _this = this;\r\n var component = this.component;\r\n var dayClickHit; // null if invalid dayClick\r\n var dragListener = new HitDragListener_1.default(component, {\r\n scroll: this.opt('dragScroll'),\r\n interactionStart: function () {\r\n dayClickHit = dragListener.origHit;\r\n },\r\n hitOver: function (hit, isOrig, origHit) {\r\n // if user dragged to another cell at any point, it can no longer be a dayClick\r\n if (!isOrig) {\r\n dayClickHit = null;\r\n }\r\n },\r\n hitOut: function () {\r\n dayClickHit = null;\r\n },\r\n interactionEnd: function (ev, isCancelled) {\r\n var componentFootprint;\r\n if (!isCancelled && dayClickHit) {\r\n componentFootprint = component.getSafeHitFootprint(dayClickHit);\r\n if (componentFootprint) {\r\n _this.view.triggerDayClick(componentFootprint, component.getHitEl(dayClickHit), ev);\r\n }\r\n }\r\n }\r\n });\r\n // because dragListener won't be called with any time delay, \"dragging\" will begin immediately,\r\n // which will kill any touchmoving/scrolling. Prevent this.\r\n dragListener.shouldCancelTouchScroll = false;\r\n dragListener.scrollAlwaysKills = true;\r\n return dragListener;\r\n };\r\n return DateClicking;\r\n}(Interaction_1.default));\r\nexports.default = DateClicking;\r\n\n\n/***/ }),\n/* 238 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar moment = __webpack_require__(0);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Scroller_1 = __webpack_require__(41);\r\nvar View_1 = __webpack_require__(43);\r\nvar TimeGrid_1 = __webpack_require__(239);\r\nvar DayGrid_1 = __webpack_require__(66);\r\nvar AGENDA_ALL_DAY_EVENT_LIMIT = 5;\r\nvar agendaTimeGridMethods;\r\nvar agendaDayGridMethods;\r\n/* An abstract class for all agenda-related views. Displays one more columns with time slots running vertically.\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Is a manager for the TimeGrid subcomponent and possibly the DayGrid subcomponent (if allDaySlot is on).\r\n// Responsible for managing width/height.\r\nvar AgendaView = /** @class */ (function (_super) {\r\n tslib_1.__extends(AgendaView, _super);\r\n function AgendaView(calendar, viewSpec) {\r\n var _this = _super.call(this, calendar, viewSpec) || this;\r\n _this.usesMinMaxTime = true; // indicates that minTime/maxTime affects rendering\r\n _this.timeGrid = _this.instantiateTimeGrid();\r\n _this.addChild(_this.timeGrid);\r\n if (_this.opt('allDaySlot')) { // should we display the \"all-day\" area?\r\n _this.dayGrid = _this.instantiateDayGrid(); // the all-day subcomponent of this view\r\n _this.addChild(_this.dayGrid);\r\n }\r\n _this.scroller = new Scroller_1.default({\r\n overflowX: 'hidden',\r\n overflowY: 'auto'\r\n });\r\n return _this;\r\n }\r\n // Instantiates the TimeGrid object this view needs. Draws from this.timeGridClass\r\n AgendaView.prototype.instantiateTimeGrid = function () {\r\n var timeGrid = new this.timeGridClass(this);\r\n util_1.copyOwnProps(agendaTimeGridMethods, timeGrid);\r\n return timeGrid;\r\n };\r\n // Instantiates the DayGrid object this view might need. Draws from this.dayGridClass\r\n AgendaView.prototype.instantiateDayGrid = function () {\r\n var dayGrid = new this.dayGridClass(this);\r\n util_1.copyOwnProps(agendaDayGridMethods, dayGrid);\r\n return dayGrid;\r\n };\r\n /* Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n AgendaView.prototype.renderSkeleton = function () {\r\n var timeGridWrapEl;\r\n var timeGridEl;\r\n this.el.addClass('fc-agenda-view').html(this.renderSkeletonHtml());\r\n this.scroller.render();\r\n timeGridWrapEl = this.scroller.el.addClass('fc-time-grid-container');\r\n timeGridEl = $('').appendTo(timeGridWrapEl);\r\n this.el.find('.fc-body > tr > td').append(timeGridWrapEl);\r\n this.timeGrid.headContainerEl = this.el.find('.fc-head-container');\r\n this.timeGrid.setElement(timeGridEl);\r\n if (this.dayGrid) {\r\n this.dayGrid.setElement(this.el.find('.fc-day-grid'));\r\n // have the day-grid extend it's coordinate area over the dividing the two grids\r\n this.dayGrid.bottomCoordPadding = this.dayGrid.el.next('hr').outerHeight();\r\n }\r\n };\r\n AgendaView.prototype.unrenderSkeleton = function () {\r\n this.timeGrid.removeElement();\r\n if (this.dayGrid) {\r\n this.dayGrid.removeElement();\r\n }\r\n this.scroller.destroy();\r\n };\r\n // Builds the HTML skeleton for the view.\r\n // The day-grid and time-grid components will render inside containers defined by this HTML.\r\n AgendaView.prototype.renderSkeletonHtml = function () {\r\n var theme = this.calendar.theme;\r\n return '' +\r\n '' +\r\n (this.opt('columnHeader') ?\r\n '' +\r\n '' +\r\n ' ' +\r\n '' +\r\n '' :\r\n '') +\r\n '' +\r\n '' +\r\n '' +\r\n (this.dayGrid ?\r\n '' +\r\n '' :\r\n '') +\r\n '' +\r\n '' +\r\n '' +\r\n '';\r\n };\r\n // Generates an HTML attribute string for setting the width of the axis, if it is known\r\n AgendaView.prototype.axisStyleAttr = function () {\r\n if (this.axisWidth != null) {\r\n return 'style=\"width:' + this.axisWidth + 'px\"';\r\n }\r\n return '';\r\n };\r\n /* Now Indicator\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n AgendaView.prototype.getNowIndicatorUnit = function () {\r\n return this.timeGrid.getNowIndicatorUnit();\r\n };\r\n /* Dimensions\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Adjusts the vertical dimensions of the view to the specified values\r\n AgendaView.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n var eventLimit;\r\n var scrollerHeight;\r\n var scrollbarWidths;\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n // make all axis cells line up, and record the width so newly created axis cells will have it\r\n this.axisWidth = util_1.matchCellWidths(this.el.find('.fc-axis'));\r\n // hack to give the view some height prior to timeGrid's columns being rendered\r\n // TODO: separate setting height from scroller VS timeGrid.\r\n if (!this.timeGrid.colEls) {\r\n if (!isAuto) {\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n }\r\n return;\r\n }\r\n // set of fake row elements that must compensate when scroller has scrollbars\r\n var noScrollRowEls = this.el.find('.fc-row:not(.fc-scroller *)');\r\n // reset all dimensions back to the original state\r\n this.timeGrid.bottomRuleEl.hide(); // .show() will be called later if this is necessary\r\n this.scroller.clear(); // sets height to 'auto' and clears overflow\r\n util_1.uncompensateScroll(noScrollRowEls);\r\n // limit number of events in the all-day area\r\n if (this.dayGrid) {\r\n this.dayGrid.removeSegPopover(); // kill the \"more\" popover if displayed\r\n eventLimit = this.opt('eventLimit');\r\n if (eventLimit && typeof eventLimit !== 'number') {\r\n eventLimit = AGENDA_ALL_DAY_EVENT_LIMIT; // make sure \"auto\" goes to a real number\r\n }\r\n if (eventLimit) {\r\n this.dayGrid.limitRows(eventLimit);\r\n }\r\n }\r\n if (!isAuto) { // should we force dimensions of the scroll container?\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n scrollbarWidths = this.scroller.getScrollbarWidths();\r\n if (scrollbarWidths.left || scrollbarWidths.right) { // using scrollbars?\r\n // make the all-day and header rows lines up\r\n util_1.compensateScroll(noScrollRowEls, scrollbarWidths);\r\n // the scrollbar compensation might have changed text flow, which might affect height, so recalculate\r\n // and reapply the desired height to the scroller.\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n }\r\n // guarantees the same scrollbar widths\r\n this.scroller.lockOverflow(scrollbarWidths);\r\n // if there's any space below the slats, show the horizontal rule.\r\n // this won't cause any new overflow, because lockOverflow already called.\r\n if (this.timeGrid.getTotalSlatHeight() < scrollerHeight) {\r\n this.timeGrid.bottomRuleEl.show();\r\n }\r\n }\r\n };\r\n // given a desired total height of the view, returns what the height of the scroller should be\r\n AgendaView.prototype.computeScrollerHeight = function (totalHeight) {\r\n return totalHeight -\r\n util_1.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller\r\n };\r\n /* Scroll\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Computes the initial pre-configured scroll state prior to allowing the user to change it\r\n AgendaView.prototype.computeInitialDateScroll = function () {\r\n var scrollTime = moment.duration(this.opt('scrollTime'));\r\n var top = this.timeGrid.computeTimeTop(scrollTime);\r\n // zoom can give weird floating-point values. rather scroll a little bit further\r\n top = Math.ceil(top);\r\n if (top) {\r\n top++; // to overcome top border that slots beyond the first have. looks better\r\n }\r\n return { top: top };\r\n };\r\n AgendaView.prototype.queryDateScroll = function () {\r\n return { top: this.scroller.getScrollTop() };\r\n };\r\n AgendaView.prototype.applyDateScroll = function (scroll) {\r\n if (scroll.top !== undefined) {\r\n this.scroller.setScrollTop(scroll.top);\r\n }\r\n };\r\n /* Hit Areas\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // forward all hit-related method calls to the grids (dayGrid might not be defined)\r\n AgendaView.prototype.getHitFootprint = function (hit) {\r\n // TODO: hit.component is set as a hack to identify where the hit came from\r\n return hit.component.getHitFootprint(hit);\r\n };\r\n AgendaView.prototype.getHitEl = function (hit) {\r\n // TODO: hit.component is set as a hack to identify where the hit came from\r\n return hit.component.getHitEl(hit);\r\n };\r\n /* Event Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n AgendaView.prototype.executeEventRender = function (eventsPayload) {\r\n var dayEventsPayload = {};\r\n var timedEventsPayload = {};\r\n var id;\r\n var eventInstanceGroup;\r\n // separate the events into all-day and timed\r\n for (id in eventsPayload) {\r\n eventInstanceGroup = eventsPayload[id];\r\n if (eventInstanceGroup.getEventDef().isAllDay()) {\r\n dayEventsPayload[id] = eventInstanceGroup;\r\n }\r\n else {\r\n timedEventsPayload[id] = eventInstanceGroup;\r\n }\r\n }\r\n this.timeGrid.executeEventRender(timedEventsPayload);\r\n if (this.dayGrid) {\r\n this.dayGrid.executeEventRender(dayEventsPayload);\r\n }\r\n };\r\n /* Dragging/Resizing Routing\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // A returned value of `true` signals that a mock \"helper\" event has been rendered.\r\n AgendaView.prototype.renderDrag = function (eventFootprints, seg, isTouch) {\r\n var groups = groupEventFootprintsByAllDay(eventFootprints);\r\n var renderedHelper = false;\r\n renderedHelper = this.timeGrid.renderDrag(groups.timed, seg, isTouch);\r\n if (this.dayGrid) {\r\n renderedHelper = this.dayGrid.renderDrag(groups.allDay, seg, isTouch) || renderedHelper;\r\n }\r\n return renderedHelper;\r\n };\r\n AgendaView.prototype.renderEventResize = function (eventFootprints, seg, isTouch) {\r\n var groups = groupEventFootprintsByAllDay(eventFootprints);\r\n this.timeGrid.renderEventResize(groups.timed, seg, isTouch);\r\n if (this.dayGrid) {\r\n this.dayGrid.renderEventResize(groups.allDay, seg, isTouch);\r\n }\r\n };\r\n /* Selection\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of a selection\r\n AgendaView.prototype.renderSelectionFootprint = function (componentFootprint) {\r\n if (!componentFootprint.isAllDay) {\r\n this.timeGrid.renderSelectionFootprint(componentFootprint);\r\n }\r\n else if (this.dayGrid) {\r\n this.dayGrid.renderSelectionFootprint(componentFootprint);\r\n }\r\n };\r\n return AgendaView;\r\n}(View_1.default));\r\nexports.default = AgendaView;\r\nAgendaView.prototype.timeGridClass = TimeGrid_1.default;\r\nAgendaView.prototype.dayGridClass = DayGrid_1.default;\r\n// Will customize the rendering behavior of the AgendaView's timeGrid\r\nagendaTimeGridMethods = {\r\n // Generates the HTML that will go before the day-of week header cells\r\n renderHeadIntroHtml: function () {\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var weekStart = calendar.msToUtcMoment(this.dateProfile.renderUnzonedRange.startMs, true);\r\n var weekText;\r\n if (this.opt('weekNumbers')) {\r\n weekText = weekStart.format(this.opt('smallWeekFormat'));\r\n return '' +\r\n '' +\r\n view.buildGotoAnchorHtml(// aside from link, important for matchCellWidths\r\n { date: weekStart, type: 'week', forceOff: this.colCnt > 1 }, util_1.htmlEscape(weekText) // inner HTML\r\n ) +\r\n '';\r\n }\r\n else {\r\n return '';\r\n }\r\n },\r\n // Generates the HTML that goes before the bg of the TimeGrid slot area. Long vertical column.\r\n renderBgIntroHtml: function () {\r\n var view = this.view;\r\n return '';\r\n },\r\n // Generates the HTML that goes before all other types of cells.\r\n // Affects content-skeleton, helper-skeleton, highlight-skeleton for both the time-grid and day-grid.\r\n renderIntroHtml: function () {\r\n var view = this.view;\r\n return '';\r\n }\r\n};\r\n// Will customize the rendering behavior of the AgendaView's dayGrid\r\nagendaDayGridMethods = {\r\n // Generates the HTML that goes before the all-day cells\r\n renderBgIntroHtml: function () {\r\n var view = this.view;\r\n return '' +\r\n '' +\r\n '' + // needed for matchCellWidths\r\n view.getAllDayHtml() +\r\n '' +\r\n '';\r\n },\r\n // Generates the HTML that goes before all other types of cells.\r\n // Affects content-skeleton, helper-skeleton, highlight-skeleton for both the time-grid and day-grid.\r\n renderIntroHtml: function () {\r\n var view = this.view;\r\n return '';\r\n }\r\n};\r\nfunction groupEventFootprintsByAllDay(eventFootprints) {\r\n var allDay = [];\r\n var timed = [];\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n if (eventFootprints[i].componentFootprint.isAllDay) {\r\n allDay.push(eventFootprints[i]);\r\n }\r\n else {\r\n timed.push(eventFootprints[i]);\r\n }\r\n }\r\n return { allDay: allDay, timed: timed };\r\n}\r\n\n\n/***/ }),\n/* 239 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar InteractiveDateComponent_1 = __webpack_require__(42);\r\nvar BusinessHourRenderer_1 = __webpack_require__(61);\r\nvar StandardInteractionsMixin_1 = __webpack_require__(65);\r\nvar DayTableMixin_1 = __webpack_require__(60);\r\nvar CoordCache_1 = __webpack_require__(58);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar TimeGridEventRenderer_1 = __webpack_require__(240);\r\nvar TimeGridHelperRenderer_1 = __webpack_require__(241);\r\nvar TimeGridFillRenderer_1 = __webpack_require__(242);\r\n/* A component that renders one or more columns of vertical time slots\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// We mixin DayTable, even though there is only a single row of days\r\n// potential nice values for the slot-duration and interval-duration\r\n// from largest to smallest\r\nvar AGENDA_STOCK_SUB_DURATIONS = [\r\n { hours: 1 },\r\n { minutes: 30 },\r\n { minutes: 15 },\r\n { seconds: 30 },\r\n { seconds: 15 }\r\n];\r\nvar TimeGrid = /** @class */ (function (_super) {\r\n tslib_1.__extends(TimeGrid, _super);\r\n function TimeGrid(view) {\r\n var _this = _super.call(this, view) || this;\r\n _this.processOptions();\r\n return _this;\r\n }\r\n // Slices up the given span (unzoned start/end with other misc data) into an array of segments\r\n TimeGrid.prototype.componentFootprintToSegs = function (componentFootprint) {\r\n var segs = this.sliceRangeByTimes(componentFootprint.unzonedRange);\r\n var i;\r\n for (i = 0; i < segs.length; i++) {\r\n if (this.isRTL) {\r\n segs[i].col = this.daysPerRow - 1 - segs[i].dayIndex;\r\n }\r\n else {\r\n segs[i].col = segs[i].dayIndex;\r\n }\r\n }\r\n return segs;\r\n };\r\n /* Date Handling\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.sliceRangeByTimes = function (unzonedRange) {\r\n var segs = [];\r\n var segRange;\r\n var dayIndex;\r\n for (dayIndex = 0; dayIndex < this.daysPerRow; dayIndex++) {\r\n segRange = unzonedRange.intersect(this.dayRanges[dayIndex]);\r\n if (segRange) {\r\n segs.push({\r\n startMs: segRange.startMs,\r\n endMs: segRange.endMs,\r\n isStart: segRange.isStart,\r\n isEnd: segRange.isEnd,\r\n dayIndex: dayIndex\r\n });\r\n }\r\n }\r\n return segs;\r\n };\r\n /* Options\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Parses various options into properties of this object\r\n TimeGrid.prototype.processOptions = function () {\r\n var slotDuration = this.opt('slotDuration');\r\n var snapDuration = this.opt('snapDuration');\r\n var input;\r\n slotDuration = moment.duration(slotDuration);\r\n snapDuration = snapDuration ? moment.duration(snapDuration) : slotDuration;\r\n this.slotDuration = slotDuration;\r\n this.snapDuration = snapDuration;\r\n this.snapsPerSlot = slotDuration / snapDuration; // TODO: ensure an integer multiple?\r\n // might be an array value (for TimelineView).\r\n // if so, getting the most granular entry (the last one probably).\r\n input = this.opt('slotLabelFormat');\r\n if ($.isArray(input)) {\r\n input = input[input.length - 1];\r\n }\r\n this.labelFormat = input ||\r\n this.opt('smallTimeFormat'); // the computed default\r\n input = this.opt('slotLabelInterval');\r\n this.labelInterval = input ?\r\n moment.duration(input) :\r\n this.computeLabelInterval(slotDuration);\r\n };\r\n // Computes an automatic value for slotLabelInterval\r\n TimeGrid.prototype.computeLabelInterval = function (slotDuration) {\r\n var i;\r\n var labelInterval;\r\n var slotsPerLabel;\r\n // find the smallest stock label interval that results in more than one slots-per-label\r\n for (i = AGENDA_STOCK_SUB_DURATIONS.length - 1; i >= 0; i--) {\r\n labelInterval = moment.duration(AGENDA_STOCK_SUB_DURATIONS[i]);\r\n slotsPerLabel = util_1.divideDurationByDuration(labelInterval, slotDuration);\r\n if (util_1.isInt(slotsPerLabel) && slotsPerLabel > 1) {\r\n return labelInterval;\r\n }\r\n }\r\n return moment.duration(slotDuration); // fall back. clone\r\n };\r\n /* Date Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.renderDates = function (dateProfile) {\r\n this.dateProfile = dateProfile;\r\n this.updateDayTable();\r\n this.renderSlats();\r\n this.renderColumns();\r\n };\r\n TimeGrid.prototype.unrenderDates = function () {\r\n // this.unrenderSlats(); // don't need this because repeated .html() calls clear\r\n this.unrenderColumns();\r\n };\r\n TimeGrid.prototype.renderSkeleton = function () {\r\n var theme = this.view.calendar.theme;\r\n this.el.html('' +\r\n '' +\r\n '');\r\n this.bottomRuleEl = this.el.find('hr');\r\n };\r\n TimeGrid.prototype.renderSlats = function () {\r\n var theme = this.view.calendar.theme;\r\n this.slatContainerEl = this.el.find('> .fc-slats')\r\n .html(// avoids needing ::unrenderSlats()\r\n '' +\r\n this.renderSlatRowHtml() +\r\n '');\r\n this.slatEls = this.slatContainerEl.find('tr');\r\n this.slatCoordCache = new CoordCache_1.default({\r\n els: this.slatEls,\r\n isVertical: true\r\n });\r\n };\r\n // Generates the HTML for the horizontal \"slats\" that run width-wise. Has a time axis on a side. Depends on RTL.\r\n TimeGrid.prototype.renderSlatRowHtml = function () {\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var theme = calendar.theme;\r\n var isRTL = this.isRTL;\r\n var dateProfile = this.dateProfile;\r\n var html = '';\r\n var slotTime = moment.duration(+dateProfile.minTime); // wish there was .clone() for durations\r\n var slotIterator = moment.duration(0);\r\n var slotDate; // will be on the view's first day, but we only care about its time\r\n var isLabeled;\r\n var axisHtml;\r\n // Calculate the time for each slot\r\n while (slotTime < dateProfile.maxTime) {\r\n slotDate = calendar.msToUtcMoment(dateProfile.renderUnzonedRange.startMs).time(slotTime);\r\n isLabeled = util_1.isInt(util_1.divideDurationByDuration(slotIterator, this.labelInterval));\r\n axisHtml =\r\n '' +\r\n (isLabeled ?\r\n '' + // for matchCellWidths\r\n util_1.htmlEscape(slotDate.format(this.labelFormat)) +\r\n '' :\r\n '') +\r\n '';\r\n html +=\r\n '' +\r\n (!isRTL ? axisHtml : '') +\r\n '' +\r\n (isRTL ? axisHtml : '') +\r\n '';\r\n slotTime.add(this.slotDuration);\r\n slotIterator.add(this.slotDuration);\r\n }\r\n return html;\r\n };\r\n TimeGrid.prototype.renderColumns = function () {\r\n var dateProfile = this.dateProfile;\r\n var theme = this.view.calendar.theme;\r\n this.dayRanges = this.dayDates.map(function (dayDate) {\r\n return new UnzonedRange_1.default(dayDate.clone().add(dateProfile.minTime), dayDate.clone().add(dateProfile.maxTime));\r\n });\r\n if (this.headContainerEl) {\r\n this.headContainerEl.html(this.renderHeadHtml());\r\n }\r\n this.el.find('> .fc-bg').html('' +\r\n this.renderBgTrHtml(0) + // row=0\r\n '');\r\n this.colEls = this.el.find('.fc-day, .fc-disabled-day');\r\n this.colCoordCache = new CoordCache_1.default({\r\n els: this.colEls,\r\n isHorizontal: true\r\n });\r\n this.renderContentSkeleton();\r\n };\r\n TimeGrid.prototype.unrenderColumns = function () {\r\n this.unrenderContentSkeleton();\r\n };\r\n /* Content Skeleton\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders the DOM that the view's content will live in\r\n TimeGrid.prototype.renderContentSkeleton = function () {\r\n var cellHtml = '';\r\n var i;\r\n var skeletonEl;\r\n for (i = 0; i < this.colCnt; i++) {\r\n cellHtml +=\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '';\r\n }\r\n skeletonEl = this.contentSkeletonEl = $('' +\r\n '' +\r\n '' + cellHtml + '' +\r\n '' +\r\n '');\r\n this.colContainerEls = skeletonEl.find('.fc-content-col');\r\n this.helperContainerEls = skeletonEl.find('.fc-helper-container');\r\n this.fgContainerEls = skeletonEl.find('.fc-event-container:not(.fc-helper-container)');\r\n this.bgContainerEls = skeletonEl.find('.fc-bgevent-container');\r\n this.highlightContainerEls = skeletonEl.find('.fc-highlight-container');\r\n this.businessContainerEls = skeletonEl.find('.fc-business-container');\r\n this.bookendCells(skeletonEl.find('tr')); // TODO: do this on string level\r\n this.el.append(skeletonEl);\r\n };\r\n TimeGrid.prototype.unrenderContentSkeleton = function () {\r\n if (this.contentSkeletonEl) { // defensive :(\r\n this.contentSkeletonEl.remove();\r\n this.contentSkeletonEl = null;\r\n this.colContainerEls = null;\r\n this.helperContainerEls = null;\r\n this.fgContainerEls = null;\r\n this.bgContainerEls = null;\r\n this.highlightContainerEls = null;\r\n this.businessContainerEls = null;\r\n }\r\n };\r\n // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's col\r\n TimeGrid.prototype.groupSegsByCol = function (segs) {\r\n var segsByCol = [];\r\n var i;\r\n for (i = 0; i < this.colCnt; i++) {\r\n segsByCol.push([]);\r\n }\r\n for (i = 0; i < segs.length; i++) {\r\n segsByCol[segs[i].col].push(segs[i]);\r\n }\r\n return segsByCol;\r\n };\r\n // Given segments grouped by column, insert the segments' elements into a parallel array of container\r\n // elements, each living within a column.\r\n TimeGrid.prototype.attachSegsByCol = function (segsByCol, containerEls) {\r\n var col;\r\n var segs;\r\n var i;\r\n for (col = 0; col < this.colCnt; col++) { // iterate each column grouping\r\n segs = segsByCol[col];\r\n for (i = 0; i < segs.length; i++) {\r\n containerEls.eq(col).append(segs[i].el);\r\n }\r\n }\r\n };\r\n /* Now Indicator\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.getNowIndicatorUnit = function () {\r\n return 'minute'; // will refresh on the minute\r\n };\r\n TimeGrid.prototype.renderNowIndicator = function (date) {\r\n // HACK: if date columns not ready for some reason (scheduler)\r\n if (!this.colContainerEls) {\r\n return;\r\n }\r\n // seg system might be overkill, but it handles scenario where line needs to be rendered\r\n // more than once because of columns with the same date (resources columns for example)\r\n var segs = this.componentFootprintToSegs(new ComponentFootprint_1.default(new UnzonedRange_1.default(date, date.valueOf() + 1), // protect against null range\r\n false // all-day\r\n ));\r\n var top = this.computeDateTop(date, date);\r\n var nodes = [];\r\n var i;\r\n // render lines within the columns\r\n for (i = 0; i < segs.length; i++) {\r\n nodes.push($('')\r\n .css('top', top)\r\n .appendTo(this.colContainerEls.eq(segs[i].col))[0]);\r\n }\r\n // render an arrow over the axis\r\n if (segs.length > 0) { // is the current time in view?\r\n nodes.push($('')\r\n .css('top', top)\r\n .appendTo(this.el.find('.fc-content-skeleton'))[0]);\r\n }\r\n this.nowIndicatorEls = $(nodes);\r\n };\r\n TimeGrid.prototype.unrenderNowIndicator = function () {\r\n if (this.nowIndicatorEls) {\r\n this.nowIndicatorEls.remove();\r\n this.nowIndicatorEls = null;\r\n }\r\n };\r\n /* Coordinates\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n this.slatCoordCache.build();\r\n if (isResize) {\r\n this.updateSegVerticals([].concat(this.eventRenderer.getSegs(), this.businessSegs || []));\r\n }\r\n };\r\n TimeGrid.prototype.getTotalSlatHeight = function () {\r\n return this.slatContainerEl.outerHeight();\r\n };\r\n // Computes the top coordinate, relative to the bounds of the grid, of the given date.\r\n // `ms` can be a millisecond UTC time OR a UTC moment.\r\n // A `startOfDayDate` must be given for avoiding ambiguity over how to treat midnight.\r\n TimeGrid.prototype.computeDateTop = function (ms, startOfDayDate) {\r\n return this.computeTimeTop(moment.duration(ms - startOfDayDate.clone().stripTime()));\r\n };\r\n // Computes the top coordinate, relative to the bounds of the grid, of the given time (a Duration).\r\n TimeGrid.prototype.computeTimeTop = function (time) {\r\n var len = this.slatEls.length;\r\n var dateProfile = this.dateProfile;\r\n var slatCoverage = (time - dateProfile.minTime) / this.slotDuration; // floating-point value of # of slots covered\r\n var slatIndex;\r\n var slatRemainder;\r\n // compute a floating-point number for how many slats should be progressed through.\r\n // from 0 to number of slats (inclusive)\r\n // constrained because minTime/maxTime might be customized.\r\n slatCoverage = Math.max(0, slatCoverage);\r\n slatCoverage = Math.min(len, slatCoverage);\r\n // an integer index of the furthest whole slat\r\n // from 0 to number slats (*exclusive*, so len-1)\r\n slatIndex = Math.floor(slatCoverage);\r\n slatIndex = Math.min(slatIndex, len - 1);\r\n // how much further through the slatIndex slat (from 0.0-1.0) must be covered in addition.\r\n // could be 1.0 if slatCoverage is covering *all* the slots\r\n slatRemainder = slatCoverage - slatIndex;\r\n return this.slatCoordCache.getTopPosition(slatIndex) +\r\n this.slatCoordCache.getHeight(slatIndex) * slatRemainder;\r\n };\r\n // Refreshes the CSS top/bottom coordinates for each segment element.\r\n // Works when called after initial render, after a window resize/zoom for example.\r\n TimeGrid.prototype.updateSegVerticals = function (segs) {\r\n this.computeSegVerticals(segs);\r\n this.assignSegVerticals(segs);\r\n };\r\n // For each segment in an array, computes and assigns its top and bottom properties\r\n TimeGrid.prototype.computeSegVerticals = function (segs) {\r\n var eventMinHeight = this.opt('agendaEventMinHeight');\r\n var i;\r\n var seg;\r\n var dayDate;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n dayDate = this.dayDates[seg.dayIndex];\r\n seg.top = this.computeDateTop(seg.startMs, dayDate);\r\n seg.bottom = Math.max(seg.top + eventMinHeight, this.computeDateTop(seg.endMs, dayDate));\r\n }\r\n };\r\n // Given segments that already have their top/bottom properties computed, applies those values to\r\n // the segments' elements.\r\n TimeGrid.prototype.assignSegVerticals = function (segs) {\r\n var i;\r\n var seg;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n seg.el.css(this.generateSegVerticalCss(seg));\r\n }\r\n };\r\n // Generates an object with CSS properties for the top/bottom coordinates of a segment element\r\n TimeGrid.prototype.generateSegVerticalCss = function (seg) {\r\n return {\r\n top: seg.top,\r\n bottom: -seg.bottom // flipped because needs to be space beyond bottom edge of event container\r\n };\r\n };\r\n /* Hit System\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.prepareHits = function () {\r\n this.colCoordCache.build();\r\n this.slatCoordCache.build();\r\n };\r\n TimeGrid.prototype.releaseHits = function () {\r\n this.colCoordCache.clear();\r\n // NOTE: don't clear slatCoordCache because we rely on it for computeTimeTop\r\n };\r\n TimeGrid.prototype.queryHit = function (leftOffset, topOffset) {\r\n var snapsPerSlot = this.snapsPerSlot;\r\n var colCoordCache = this.colCoordCache;\r\n var slatCoordCache = this.slatCoordCache;\r\n if (colCoordCache.isLeftInBounds(leftOffset) && slatCoordCache.isTopInBounds(topOffset)) {\r\n var colIndex = colCoordCache.getHorizontalIndex(leftOffset);\r\n var slatIndex = slatCoordCache.getVerticalIndex(topOffset);\r\n if (colIndex != null && slatIndex != null) {\r\n var slatTop = slatCoordCache.getTopOffset(slatIndex);\r\n var slatHeight = slatCoordCache.getHeight(slatIndex);\r\n var partial = (topOffset - slatTop) / slatHeight; // floating point number between 0 and 1\r\n var localSnapIndex = Math.floor(partial * snapsPerSlot); // the snap # relative to start of slat\r\n var snapIndex = slatIndex * snapsPerSlot + localSnapIndex;\r\n var snapTop = slatTop + (localSnapIndex / snapsPerSlot) * slatHeight;\r\n var snapBottom = slatTop + ((localSnapIndex + 1) / snapsPerSlot) * slatHeight;\r\n return {\r\n col: colIndex,\r\n snap: snapIndex,\r\n component: this,\r\n left: colCoordCache.getLeftOffset(colIndex),\r\n right: colCoordCache.getRightOffset(colIndex),\r\n top: snapTop,\r\n bottom: snapBottom\r\n };\r\n }\r\n }\r\n };\r\n TimeGrid.prototype.getHitFootprint = function (hit) {\r\n var start = this.getCellDate(0, hit.col); // row=0\r\n var time = this.computeSnapTime(hit.snap); // pass in the snap-index\r\n var end;\r\n start.time(time);\r\n end = start.clone().add(this.snapDuration);\r\n return new ComponentFootprint_1.default(new UnzonedRange_1.default(start, end), false // all-day?\r\n );\r\n };\r\n // Given a row number of the grid, representing a \"snap\", returns a time (Duration) from its start-of-day\r\n TimeGrid.prototype.computeSnapTime = function (snapIndex) {\r\n return moment.duration(this.dateProfile.minTime + this.snapDuration * snapIndex);\r\n };\r\n TimeGrid.prototype.getHitEl = function (hit) {\r\n return this.colEls.eq(hit.col);\r\n };\r\n /* Event Drag Visualization\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of an event being dragged over the specified date(s).\r\n // A returned value of `true` signals that a mock \"helper\" event has been rendered.\r\n TimeGrid.prototype.renderDrag = function (eventFootprints, seg, isTouch) {\r\n var i;\r\n if (seg) { // if there is event information for this drag, render a helper event\r\n if (eventFootprints.length) {\r\n this.helperRenderer.renderEventDraggingFootprints(eventFootprints, seg, isTouch);\r\n // signal that a helper has been rendered\r\n return true;\r\n }\r\n }\r\n else { // otherwise, just render a highlight\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n this.renderHighlight(eventFootprints[i].componentFootprint);\r\n }\r\n }\r\n };\r\n // Unrenders any visual indication of an event being dragged\r\n TimeGrid.prototype.unrenderDrag = function () {\r\n this.unrenderHighlight();\r\n this.helperRenderer.unrender();\r\n };\r\n /* Event Resize Visualization\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of an event being resized\r\n TimeGrid.prototype.renderEventResize = function (eventFootprints, seg, isTouch) {\r\n this.helperRenderer.renderEventResizingFootprints(eventFootprints, seg, isTouch);\r\n };\r\n // Unrenders any visual indication of an event being resized\r\n TimeGrid.prototype.unrenderEventResize = function () {\r\n this.helperRenderer.unrender();\r\n };\r\n /* Selection\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of a selection. Overrides the default, which was to simply render a highlight.\r\n TimeGrid.prototype.renderSelectionFootprint = function (componentFootprint) {\r\n if (this.opt('selectHelper')) { // this setting signals that a mock helper event should be rendered\r\n this.helperRenderer.renderComponentFootprint(componentFootprint);\r\n }\r\n else {\r\n this.renderHighlight(componentFootprint);\r\n }\r\n };\r\n // Unrenders any visual indication of a selection\r\n TimeGrid.prototype.unrenderSelection = function () {\r\n this.helperRenderer.unrender();\r\n this.unrenderHighlight();\r\n };\r\n return TimeGrid;\r\n}(InteractiveDateComponent_1.default));\r\nexports.default = TimeGrid;\r\nTimeGrid.prototype.eventRendererClass = TimeGridEventRenderer_1.default;\r\nTimeGrid.prototype.businessHourRendererClass = BusinessHourRenderer_1.default;\r\nTimeGrid.prototype.helperRendererClass = TimeGridHelperRenderer_1.default;\r\nTimeGrid.prototype.fillRendererClass = TimeGridFillRenderer_1.default;\r\nStandardInteractionsMixin_1.default.mixInto(TimeGrid);\r\nDayTableMixin_1.default.mixInto(TimeGrid);\r\n\n\n/***/ }),\n/* 240 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventRenderer_1 = __webpack_require__(44);\r\n/*\r\nOnly handles foreground segs.\r\nDoes not own rendering. Use for low-level util methods by TimeGrid.\r\n*/\r\nvar TimeGridEventRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(TimeGridEventRenderer, _super);\r\n function TimeGridEventRenderer(timeGrid, fillRenderer) {\r\n var _this = _super.call(this, timeGrid, fillRenderer) || this;\r\n _this.timeGrid = timeGrid;\r\n return _this;\r\n }\r\n TimeGridEventRenderer.prototype.renderFgSegs = function (segs) {\r\n this.renderFgSegsIntoContainers(segs, this.timeGrid.fgContainerEls);\r\n };\r\n // Given an array of foreground segments, render a DOM element for each, computes position,\r\n // and attaches to the column inner-container elements.\r\n TimeGridEventRenderer.prototype.renderFgSegsIntoContainers = function (segs, containerEls) {\r\n var segsByCol;\r\n var col;\r\n segsByCol = this.timeGrid.groupSegsByCol(segs);\r\n for (col = 0; col < this.timeGrid.colCnt; col++) {\r\n this.updateFgSegCoords(segsByCol[col]);\r\n }\r\n this.timeGrid.attachSegsByCol(segsByCol, containerEls);\r\n };\r\n TimeGridEventRenderer.prototype.unrenderFgSegs = function () {\r\n if (this.fgSegs) { // hack\r\n this.fgSegs.forEach(function (seg) {\r\n seg.el.remove();\r\n });\r\n }\r\n };\r\n // Computes a default event time formatting string if `timeFormat` is not explicitly defined\r\n TimeGridEventRenderer.prototype.computeEventTimeFormat = function () {\r\n return this.opt('noMeridiemTimeFormat'); // like \"6:30\" (no AM/PM)\r\n };\r\n // Computes a default `displayEventEnd` value if one is not expliclty defined\r\n TimeGridEventRenderer.prototype.computeDisplayEventEnd = function () {\r\n return true;\r\n };\r\n // Renders the HTML for a single event segment's default rendering\r\n TimeGridEventRenderer.prototype.fgSegHtml = function (seg, disableResizing) {\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var componentFootprint = seg.footprint.componentFootprint;\r\n var isAllDay = componentFootprint.isAllDay;\r\n var eventDef = seg.footprint.eventDef;\r\n var isDraggable = view.isEventDefDraggable(eventDef);\r\n var isResizableFromStart = !disableResizing && seg.isStart && view.isEventDefResizableFromStart(eventDef);\r\n var isResizableFromEnd = !disableResizing && seg.isEnd && view.isEventDefResizableFromEnd(eventDef);\r\n var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd);\r\n var skinCss = util_1.cssToStr(this.getSkinCss(eventDef));\r\n var timeText;\r\n var fullTimeText; // more verbose time text. for the print stylesheet\r\n var startTimeText; // just the start time text\r\n classes.unshift('fc-time-grid-event', 'fc-v-event');\r\n // if the event appears to span more than one day...\r\n if (view.isMultiDayRange(componentFootprint.unzonedRange)) {\r\n // Don't display time text on segments that run entirely through a day.\r\n // That would appear as midnight-midnight and would look dumb.\r\n // Otherwise, display the time text for the *segment's* times (like 6pm-midnight or midnight-10am)\r\n if (seg.isStart || seg.isEnd) {\r\n var zonedStart = calendar.msToMoment(seg.startMs);\r\n var zonedEnd = calendar.msToMoment(seg.endMs);\r\n timeText = this._getTimeText(zonedStart, zonedEnd, isAllDay);\r\n fullTimeText = this._getTimeText(zonedStart, zonedEnd, isAllDay, 'LT');\r\n startTimeText = this._getTimeText(zonedStart, zonedEnd, isAllDay, null, false); // displayEnd=false\r\n }\r\n }\r\n else {\r\n // Display the normal time text for the *event's* times\r\n timeText = this.getTimeText(seg.footprint);\r\n fullTimeText = this.getTimeText(seg.footprint, 'LT');\r\n startTimeText = this.getTimeText(seg.footprint, null, false); // displayEnd=false\r\n }\r\n return '' +\r\n '' +\r\n (timeText ?\r\n '' +\r\n '' + util_1.htmlEscape(timeText) + '' +\r\n '' :\r\n '') +\r\n (eventDef.title ?\r\n '' +\r\n util_1.htmlEscape(eventDef.title) +\r\n '' :\r\n '') +\r\n '' +\r\n '' +\r\n /* TODO: write CSS for this\r\n (isResizableFromStart ?\r\n '' :\r\n ''\r\n ) +\r\n */\r\n (isResizableFromEnd ?\r\n '' :\r\n '') +\r\n '';\r\n };\r\n // Given segments that are assumed to all live in the *same column*,\r\n // compute their verical/horizontal coordinates and assign to their elements.\r\n TimeGridEventRenderer.prototype.updateFgSegCoords = function (segs) {\r\n this.timeGrid.computeSegVerticals(segs); // horizontals relies on this\r\n this.computeFgSegHorizontals(segs); // compute horizontal coordinates, z-index's, and reorder the array\r\n this.timeGrid.assignSegVerticals(segs);\r\n this.assignFgSegHorizontals(segs);\r\n };\r\n // Given an array of segments that are all in the same column, sets the backwardCoord and forwardCoord on each.\r\n // NOTE: Also reorders the given array by date!\r\n TimeGridEventRenderer.prototype.computeFgSegHorizontals = function (segs) {\r\n var levels;\r\n var level0;\r\n var i;\r\n this.sortEventSegs(segs); // order by certain criteria\r\n levels = buildSlotSegLevels(segs);\r\n computeForwardSlotSegs(levels);\r\n if ((level0 = levels[0])) {\r\n for (i = 0; i < level0.length; i++) {\r\n computeSlotSegPressures(level0[i]);\r\n }\r\n for (i = 0; i < level0.length; i++) {\r\n this.computeFgSegForwardBack(level0[i], 0, 0);\r\n }\r\n }\r\n };\r\n // Calculate seg.forwardCoord and seg.backwardCoord for the segment, where both values range\r\n // from 0 to 1. If the calendar is left-to-right, the seg.backwardCoord maps to \"left\" and\r\n // seg.forwardCoord maps to \"right\" (via percentage). Vice-versa if the calendar is right-to-left.\r\n //\r\n // The segment might be part of a \"series\", which means consecutive segments with the same pressure\r\n // who's width is unknown until an edge has been hit. `seriesBackwardPressure` is the number of\r\n // segments behind this one in the current series, and `seriesBackwardCoord` is the starting\r\n // coordinate of the first segment in the series.\r\n TimeGridEventRenderer.prototype.computeFgSegForwardBack = function (seg, seriesBackwardPressure, seriesBackwardCoord) {\r\n var forwardSegs = seg.forwardSegs;\r\n var i;\r\n if (seg.forwardCoord === undefined) { // not already computed\r\n if (!forwardSegs.length) {\r\n // if there are no forward segments, this segment should butt up against the edge\r\n seg.forwardCoord = 1;\r\n }\r\n else {\r\n // sort highest pressure first\r\n this.sortForwardSegs(forwardSegs);\r\n // this segment's forwardCoord will be calculated from the backwardCoord of the\r\n // highest-pressure forward segment.\r\n this.computeFgSegForwardBack(forwardSegs[0], seriesBackwardPressure + 1, seriesBackwardCoord);\r\n seg.forwardCoord = forwardSegs[0].backwardCoord;\r\n }\r\n // calculate the backwardCoord from the forwardCoord. consider the series\r\n seg.backwardCoord = seg.forwardCoord -\r\n (seg.forwardCoord - seriesBackwardCoord) / // available width for series\r\n (seriesBackwardPressure + 1); // # of segments in the series\r\n // use this segment's coordinates to computed the coordinates of the less-pressurized\r\n // forward segments\r\n for (i = 0; i < forwardSegs.length; i++) {\r\n this.computeFgSegForwardBack(forwardSegs[i], 0, seg.forwardCoord);\r\n }\r\n }\r\n };\r\n TimeGridEventRenderer.prototype.sortForwardSegs = function (forwardSegs) {\r\n forwardSegs.sort(util_1.proxy(this, 'compareForwardSegs'));\r\n };\r\n // A cmp function for determining which forward segment to rely on more when computing coordinates.\r\n TimeGridEventRenderer.prototype.compareForwardSegs = function (seg1, seg2) {\r\n // put higher-pressure first\r\n return seg2.forwardPressure - seg1.forwardPressure ||\r\n // put segments that are closer to initial edge first (and favor ones with no coords yet)\r\n (seg1.backwardCoord || 0) - (seg2.backwardCoord || 0) ||\r\n // do normal sorting...\r\n this.compareEventSegs(seg1, seg2);\r\n };\r\n // Given foreground event segments that have already had their position coordinates computed,\r\n // assigns position-related CSS values to their elements.\r\n TimeGridEventRenderer.prototype.assignFgSegHorizontals = function (segs) {\r\n var i;\r\n var seg;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n seg.el.css(this.generateFgSegHorizontalCss(seg));\r\n // if the event is short that the title will be cut off,\r\n // attach a className that condenses the title into the time area.\r\n if (seg.footprint.eventDef.title && seg.bottom - seg.top < 30) {\r\n seg.el.addClass('fc-short'); // TODO: \"condensed\" is a better name\r\n }\r\n }\r\n };\r\n // Generates an object with CSS properties/values that should be applied to an event segment element.\r\n // Contains important positioning-related properties that should be applied to any event element, customized or not.\r\n TimeGridEventRenderer.prototype.generateFgSegHorizontalCss = function (seg) {\r\n var shouldOverlap = this.opt('slotEventOverlap');\r\n var backwardCoord = seg.backwardCoord; // the left side if LTR. the right side if RTL. floating-point\r\n var forwardCoord = seg.forwardCoord; // the right side if LTR. the left side if RTL. floating-point\r\n var props = this.timeGrid.generateSegVerticalCss(seg); // get top/bottom first\r\n var isRTL = this.timeGrid.isRTL;\r\n var left; // amount of space from left edge, a fraction of the total width\r\n var right; // amount of space from right edge, a fraction of the total width\r\n if (shouldOverlap) {\r\n // double the width, but don't go beyond the maximum forward coordinate (1.0)\r\n forwardCoord = Math.min(1, backwardCoord + (forwardCoord - backwardCoord) * 2);\r\n }\r\n if (isRTL) {\r\n left = 1 - forwardCoord;\r\n right = backwardCoord;\r\n }\r\n else {\r\n left = backwardCoord;\r\n right = 1 - forwardCoord;\r\n }\r\n props.zIndex = seg.level + 1; // convert from 0-base to 1-based\r\n props.left = left * 100 + '%';\r\n props.right = right * 100 + '%';\r\n if (shouldOverlap && seg.forwardPressure) {\r\n // add padding to the edge so that forward stacked events don't cover the resizer's icon\r\n props[isRTL ? 'marginLeft' : 'marginRight'] = 10 * 2; // 10 is a guesstimate of the icon's width\r\n }\r\n return props;\r\n };\r\n return TimeGridEventRenderer;\r\n}(EventRenderer_1.default));\r\nexports.default = TimeGridEventRenderer;\r\n// Builds an array of segments \"levels\". The first level will be the leftmost tier of segments if the calendar is\r\n// left-to-right, or the rightmost if the calendar is right-to-left. Assumes the segments are already ordered by date.\r\nfunction buildSlotSegLevels(segs) {\r\n var levels = [];\r\n var i;\r\n var seg;\r\n var j;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n // go through all the levels and stop on the first level where there are no collisions\r\n for (j = 0; j < levels.length; j++) {\r\n if (!computeSlotSegCollisions(seg, levels[j]).length) {\r\n break;\r\n }\r\n }\r\n seg.level = j;\r\n (levels[j] || (levels[j] = [])).push(seg);\r\n }\r\n return levels;\r\n}\r\n// For every segment, figure out the other segments that are in subsequent\r\n// levels that also occupy the same vertical space. Accumulate in seg.forwardSegs\r\nfunction computeForwardSlotSegs(levels) {\r\n var i;\r\n var level;\r\n var j;\r\n var seg;\r\n var k;\r\n for (i = 0; i < levels.length; i++) {\r\n level = levels[i];\r\n for (j = 0; j < level.length; j++) {\r\n seg = level[j];\r\n seg.forwardSegs = [];\r\n for (k = i + 1; k < levels.length; k++) {\r\n computeSlotSegCollisions(seg, levels[k], seg.forwardSegs);\r\n }\r\n }\r\n }\r\n}\r\n// Figure out which path forward (via seg.forwardSegs) results in the longest path until\r\n// the furthest edge is reached. The number of segments in this path will be seg.forwardPressure\r\nfunction computeSlotSegPressures(seg) {\r\n var forwardSegs = seg.forwardSegs;\r\n var forwardPressure = 0;\r\n var i;\r\n var forwardSeg;\r\n if (seg.forwardPressure === undefined) { // not already computed\r\n for (i = 0; i < forwardSegs.length; i++) {\r\n forwardSeg = forwardSegs[i];\r\n // figure out the child's maximum forward path\r\n computeSlotSegPressures(forwardSeg);\r\n // either use the existing maximum, or use the child's forward pressure\r\n // plus one (for the forwardSeg itself)\r\n forwardPressure = Math.max(forwardPressure, 1 + forwardSeg.forwardPressure);\r\n }\r\n seg.forwardPressure = forwardPressure;\r\n }\r\n}\r\n// Find all the segments in `otherSegs` that vertically collide with `seg`.\r\n// Append into an optionally-supplied `results` array and return.\r\nfunction computeSlotSegCollisions(seg, otherSegs, results) {\r\n if (results === void 0) { results = []; }\r\n for (var i = 0; i < otherSegs.length; i++) {\r\n if (isSlotSegCollision(seg, otherSegs[i])) {\r\n results.push(otherSegs[i]);\r\n }\r\n }\r\n return results;\r\n}\r\n// Do these segments occupy the same vertical space?\r\nfunction isSlotSegCollision(seg1, seg2) {\r\n return seg1.bottom > seg2.top && seg1.top < seg2.bottom;\r\n}\r\n\n\n/***/ }),\n/* 241 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar HelperRenderer_1 = __webpack_require__(63);\r\nvar TimeGridHelperRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(TimeGridHelperRenderer, _super);\r\n function TimeGridHelperRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TimeGridHelperRenderer.prototype.renderSegs = function (segs, sourceSeg) {\r\n var helperNodes = [];\r\n var i;\r\n var seg;\r\n var sourceEl;\r\n // TODO: not good to call eventRenderer this way\r\n this.eventRenderer.renderFgSegsIntoContainers(segs, this.component.helperContainerEls);\r\n // Try to make the segment that is in the same row as sourceSeg look the same\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n if (sourceSeg && sourceSeg.col === seg.col) {\r\n sourceEl = sourceSeg.el;\r\n seg.el.css({\r\n left: sourceEl.css('left'),\r\n right: sourceEl.css('right'),\r\n 'margin-left': sourceEl.css('margin-left'),\r\n 'margin-right': sourceEl.css('margin-right')\r\n });\r\n }\r\n helperNodes.push(seg.el[0]);\r\n }\r\n return $(helperNodes); // must return the elements rendered\r\n };\r\n return TimeGridHelperRenderer;\r\n}(HelperRenderer_1.default));\r\nexports.default = TimeGridHelperRenderer;\r\n\n\n/***/ }),\n/* 242 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar FillRenderer_1 = __webpack_require__(62);\r\nvar TimeGridFillRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(TimeGridFillRenderer, _super);\r\n function TimeGridFillRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TimeGridFillRenderer.prototype.attachSegEls = function (type, segs) {\r\n var timeGrid = this.component;\r\n var containerEls;\r\n // TODO: more efficient lookup\r\n if (type === 'bgEvent') {\r\n containerEls = timeGrid.bgContainerEls;\r\n }\r\n else if (type === 'businessHours') {\r\n containerEls = timeGrid.businessContainerEls;\r\n }\r\n else if (type === 'highlight') {\r\n containerEls = timeGrid.highlightContainerEls;\r\n }\r\n timeGrid.updateSegVerticals(segs);\r\n timeGrid.attachSegsByCol(timeGrid.groupSegsByCol(segs), containerEls);\r\n return segs.map(function (seg) {\r\n return seg.el[0];\r\n });\r\n };\r\n return TimeGridFillRenderer;\r\n}(FillRenderer_1.default));\r\nexports.default = TimeGridFillRenderer;\r\n\n\n/***/ }),\n/* 243 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventRenderer_1 = __webpack_require__(44);\r\n/* Event-rendering methods for the DayGrid class\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar DayGridEventRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayGridEventRenderer, _super);\r\n function DayGridEventRenderer(dayGrid, fillRenderer) {\r\n var _this = _super.call(this, dayGrid, fillRenderer) || this;\r\n _this.dayGrid = dayGrid;\r\n return _this;\r\n }\r\n DayGridEventRenderer.prototype.renderBgRanges = function (eventRanges) {\r\n // don't render timed background events\r\n eventRanges = $.grep(eventRanges, function (eventRange) {\r\n return eventRange.eventDef.isAllDay();\r\n });\r\n _super.prototype.renderBgRanges.call(this, eventRanges);\r\n };\r\n // Renders the given foreground event segments onto the grid\r\n DayGridEventRenderer.prototype.renderFgSegs = function (segs) {\r\n var rowStructs = this.rowStructs = this.renderSegRows(segs);\r\n // append to each row's content skeleton\r\n this.dayGrid.rowEls.each(function (i, rowNode) {\r\n $(rowNode).find('.fc-content-skeleton > table').append(rowStructs[i].tbodyEl);\r\n });\r\n };\r\n // Unrenders all currently rendered foreground event segments\r\n DayGridEventRenderer.prototype.unrenderFgSegs = function () {\r\n var rowStructs = this.rowStructs || [];\r\n var rowStruct;\r\n while ((rowStruct = rowStructs.pop())) {\r\n rowStruct.tbodyEl.remove();\r\n }\r\n this.rowStructs = null;\r\n };\r\n // Uses the given events array to generate elements that should be appended to each row's content skeleton.\r\n // Returns an array of rowStruct objects (see the bottom of `renderSegRow`).\r\n // PRECONDITION: each segment shoud already have a rendered and assigned `.el`\r\n DayGridEventRenderer.prototype.renderSegRows = function (segs) {\r\n var rowStructs = [];\r\n var segRows;\r\n var row;\r\n segRows = this.groupSegRows(segs); // group into nested arrays\r\n // iterate each row of segment groupings\r\n for (row = 0; row < segRows.length; row++) {\r\n rowStructs.push(this.renderSegRow(row, segRows[row]));\r\n }\r\n return rowStructs;\r\n };\r\n // Given a row # and an array of segments all in the same row, render a element, a skeleton that contains\r\n // the segments. Returns object with a bunch of internal data about how the render was calculated.\r\n // NOTE: modifies rowSegs\r\n DayGridEventRenderer.prototype.renderSegRow = function (row, rowSegs) {\r\n var colCnt = this.dayGrid.colCnt;\r\n var segLevels = this.buildSegLevels(rowSegs); // group into sub-arrays of levels\r\n var levelCnt = Math.max(1, segLevels.length); // ensure at least one level\r\n var tbody = $('');\r\n var segMatrix = []; // lookup for which segments are rendered into which level+col cells\r\n var cellMatrix = []; // lookup for all elements of the level+col matrix\r\n var loneCellMatrix = []; // lookup for elements that only take up a single column\r\n var i;\r\n var levelSegs;\r\n var col;\r\n var tr;\r\n var j;\r\n var seg;\r\n var td;\r\n // populates empty cells from the current column (`col`) to `endCol`\r\n function emptyCellsUntil(endCol) {\r\n while (col < endCol) {\r\n // try to grab a cell from the level above and extend its rowspan. otherwise, create a fresh cell\r\n td = (loneCellMatrix[i - 1] || [])[col];\r\n if (td) {\r\n td.attr('rowspan', parseInt(td.attr('rowspan') || 1, 10) + 1);\r\n }\r\n else {\r\n td = $('');\r\n tr.append(td);\r\n }\r\n cellMatrix[i][col] = td;\r\n loneCellMatrix[i][col] = td;\r\n col++;\r\n }\r\n }\r\n for (i = 0; i < levelCnt; i++) { // iterate through all levels\r\n levelSegs = segLevels[i];\r\n col = 0;\r\n tr = $('');\r\n segMatrix.push([]);\r\n cellMatrix.push([]);\r\n loneCellMatrix.push([]);\r\n // levelCnt might be 1 even though there are no actual levels. protect against this.\r\n // this single empty row is useful for styling.\r\n if (levelSegs) {\r\n for (j = 0; j < levelSegs.length; j++) { // iterate through segments in level\r\n seg = levelSegs[j];\r\n emptyCellsUntil(seg.leftCol);\r\n // create a container that occupies or more columns. append the event element.\r\n td = $('').append(seg.el);\r\n if (seg.leftCol !== seg.rightCol) {\r\n td.attr('colspan', seg.rightCol - seg.leftCol + 1);\r\n }\r\n else { // a single-column segment\r\n loneCellMatrix[i][col] = td;\r\n }\r\n while (col <= seg.rightCol) {\r\n cellMatrix[i][col] = td;\r\n segMatrix[i][col] = seg;\r\n col++;\r\n }\r\n tr.append(td);\r\n }\r\n }\r\n emptyCellsUntil(colCnt); // finish off the row\r\n this.dayGrid.bookendCells(tr);\r\n tbody.append(tr);\r\n }\r\n return {\r\n row: row,\r\n tbodyEl: tbody,\r\n cellMatrix: cellMatrix,\r\n segMatrix: segMatrix,\r\n segLevels: segLevels,\r\n segs: rowSegs\r\n };\r\n };\r\n // Stacks a flat array of segments, which are all assumed to be in the same row, into subarrays of vertical levels.\r\n // NOTE: modifies segs\r\n DayGridEventRenderer.prototype.buildSegLevels = function (segs) {\r\n var levels = [];\r\n var i;\r\n var seg;\r\n var j;\r\n // Give preference to elements with certain criteria, so they have\r\n // a chance to be closer to the top.\r\n this.sortEventSegs(segs);\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n // loop through levels, starting with the topmost, until the segment doesn't collide with other segments\r\n for (j = 0; j < levels.length; j++) {\r\n if (!isDaySegCollision(seg, levels[j])) {\r\n break;\r\n }\r\n }\r\n // `j` now holds the desired subrow index\r\n seg.level = j;\r\n // create new level array if needed and append segment\r\n (levels[j] || (levels[j] = [])).push(seg);\r\n }\r\n // order segments left-to-right. very important if calendar is RTL\r\n for (j = 0; j < levels.length; j++) {\r\n levels[j].sort(compareDaySegCols);\r\n }\r\n return levels;\r\n };\r\n // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's row\r\n DayGridEventRenderer.prototype.groupSegRows = function (segs) {\r\n var segRows = [];\r\n var i;\r\n for (i = 0; i < this.dayGrid.rowCnt; i++) {\r\n segRows.push([]);\r\n }\r\n for (i = 0; i < segs.length; i++) {\r\n segRows[segs[i].row].push(segs[i]);\r\n }\r\n return segRows;\r\n };\r\n // Computes a default event time formatting string if `timeFormat` is not explicitly defined\r\n DayGridEventRenderer.prototype.computeEventTimeFormat = function () {\r\n return this.opt('extraSmallTimeFormat'); // like \"6p\" or \"6:30p\"\r\n };\r\n // Computes a default `displayEventEnd` value if one is not expliclty defined\r\n DayGridEventRenderer.prototype.computeDisplayEventEnd = function () {\r\n return this.dayGrid.colCnt === 1; // we'll likely have space if there's only one day\r\n };\r\n // Builds the HTML to be used for the default element for an individual segment\r\n DayGridEventRenderer.prototype.fgSegHtml = function (seg, disableResizing) {\r\n var view = this.view;\r\n var eventDef = seg.footprint.eventDef;\r\n var isAllDay = seg.footprint.componentFootprint.isAllDay;\r\n var isDraggable = view.isEventDefDraggable(eventDef);\r\n var isResizableFromStart = !disableResizing && isAllDay &&\r\n seg.isStart && view.isEventDefResizableFromStart(eventDef);\r\n var isResizableFromEnd = !disableResizing && isAllDay &&\r\n seg.isEnd && view.isEventDefResizableFromEnd(eventDef);\r\n var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd);\r\n var skinCss = util_1.cssToStr(this.getSkinCss(eventDef));\r\n var timeHtml = '';\r\n var timeText;\r\n var titleHtml;\r\n classes.unshift('fc-day-grid-event', 'fc-h-event');\r\n // Only display a timed events time if it is the starting segment\r\n if (seg.isStart) {\r\n timeText = this.getTimeText(seg.footprint);\r\n if (timeText) {\r\n timeHtml = '' + util_1.htmlEscape(timeText) + '';\r\n }\r\n }\r\n titleHtml =\r\n '' +\r\n (util_1.htmlEscape(eventDef.title || '') || ' ') + // we always want one line of height\r\n '';\r\n return '' +\r\n '' +\r\n (this.dayGrid.isRTL ?\r\n titleHtml + ' ' + timeHtml : // put a natural space in between\r\n timeHtml + ' ' + titleHtml //\r\n ) +\r\n '' +\r\n (isResizableFromStart ?\r\n '' :\r\n '') +\r\n (isResizableFromEnd ?\r\n '' :\r\n '') +\r\n '';\r\n };\r\n return DayGridEventRenderer;\r\n}(EventRenderer_1.default));\r\nexports.default = DayGridEventRenderer;\r\n// Computes whether two segments' columns collide. They are assumed to be in the same row.\r\nfunction isDaySegCollision(seg, otherSegs) {\r\n var i;\r\n var otherSeg;\r\n for (i = 0; i < otherSegs.length; i++) {\r\n otherSeg = otherSegs[i];\r\n if (otherSeg.leftCol <= seg.rightCol &&\r\n otherSeg.rightCol >= seg.leftCol) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n// A cmp function for determining the leftmost event\r\nfunction compareDaySegCols(a, b) {\r\n return a.leftCol - b.leftCol;\r\n}\r\n\n\n/***/ }),\n/* 244 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar HelperRenderer_1 = __webpack_require__(63);\r\nvar DayGridHelperRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayGridHelperRenderer, _super);\r\n function DayGridHelperRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Renders a mock \"helper\" event. `sourceSeg` is the associated internal segment object. It can be null.\r\n DayGridHelperRenderer.prototype.renderSegs = function (segs, sourceSeg) {\r\n var helperNodes = [];\r\n var rowStructs;\r\n // TODO: not good to call eventRenderer this way\r\n rowStructs = this.eventRenderer.renderSegRows(segs);\r\n // inject each new event skeleton into each associated row\r\n this.component.rowEls.each(function (row, rowNode) {\r\n var rowEl = $(rowNode); // the .fc-row\r\n var skeletonEl = $(''); // will be absolutely positioned\r\n var skeletonTopEl;\r\n var skeletonTop;\r\n // If there is an original segment, match the top position. Otherwise, put it at the row's top level\r\n if (sourceSeg && sourceSeg.row === row) {\r\n skeletonTop = sourceSeg.el.position().top;\r\n }\r\n else {\r\n skeletonTopEl = rowEl.find('.fc-content-skeleton tbody');\r\n if (!skeletonTopEl.length) { // when no events\r\n skeletonTopEl = rowEl.find('.fc-content-skeleton table');\r\n }\r\n skeletonTop = skeletonTopEl.position().top;\r\n }\r\n skeletonEl.css('top', skeletonTop)\r\n .find('table')\r\n .append(rowStructs[row].tbodyEl);\r\n rowEl.append(skeletonEl);\r\n helperNodes.push(skeletonEl[0]);\r\n });\r\n return $(helperNodes); // must return the elements rendered\r\n };\r\n return DayGridHelperRenderer;\r\n}(HelperRenderer_1.default));\r\nexports.default = DayGridHelperRenderer;\r\n\n\n/***/ }),\n/* 245 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar FillRenderer_1 = __webpack_require__(62);\r\nvar DayGridFillRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayGridFillRenderer, _super);\r\n function DayGridFillRenderer() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.fillSegTag = 'td'; // override the default tag name\r\n return _this;\r\n }\r\n DayGridFillRenderer.prototype.attachSegEls = function (type, segs) {\r\n var nodes = [];\r\n var i;\r\n var seg;\r\n var skeletonEl;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n skeletonEl = this.renderFillRow(type, seg);\r\n this.component.rowEls.eq(seg.row).append(skeletonEl);\r\n nodes.push(skeletonEl[0]);\r\n }\r\n return nodes;\r\n };\r\n // Generates the HTML needed for one row of a fill. Requires the seg's el to be rendered.\r\n DayGridFillRenderer.prototype.renderFillRow = function (type, seg) {\r\n var colCnt = this.component.colCnt;\r\n var startCol = seg.leftCol;\r\n var endCol = seg.rightCol + 1;\r\n var className;\r\n var skeletonEl;\r\n var trEl;\r\n if (type === 'businessHours') {\r\n className = 'bgevent';\r\n }\r\n else {\r\n className = type.toLowerCase();\r\n }\r\n skeletonEl = $('' +\r\n '' +\r\n '');\r\n trEl = skeletonEl.find('tr');\r\n if (startCol > 0) {\r\n trEl.append(\r\n // will create (startCol + 1) td's\r\n new Array(startCol + 1).join(''));\r\n }\r\n trEl.append(seg.el.attr('colspan', endCol - startCol));\r\n if (endCol < colCnt) {\r\n trEl.append(\r\n // will create (colCnt - endCol) td's\r\n new Array(colCnt - endCol + 1).join(''));\r\n }\r\n this.component.bookendCells(trEl);\r\n return skeletonEl;\r\n };\r\n return DayGridFillRenderer;\r\n}(FillRenderer_1.default));\r\nexports.default = DayGridFillRenderer;\r\n\n\n/***/ }),\n/* 246 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar BasicView_1 = __webpack_require__(67);\r\nvar MonthViewDateProfileGenerator_1 = __webpack_require__(247);\r\n/* A month view with day cells running in rows (one-per-week) and columns\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar MonthView = /** @class */ (function (_super) {\r\n tslib_1.__extends(MonthView, _super);\r\n function MonthView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Overrides the default BasicView behavior to have special multi-week auto-height logic\r\n MonthView.prototype.setGridHeight = function (height, isAuto) {\r\n // if auto, make the height of each row the height that it would be if there were 6 weeks\r\n if (isAuto) {\r\n height *= this.dayGrid.rowCnt / 6;\r\n }\r\n util_1.distributeHeight(this.dayGrid.rowEls, height, !isAuto); // if auto, don't compensate for height-hogging rows\r\n };\r\n MonthView.prototype.isDateInOtherMonth = function (date, dateProfile) {\r\n return date.month() !== moment.utc(dateProfile.currentUnzonedRange.startMs).month(); // TODO: optimize\r\n };\r\n return MonthView;\r\n}(BasicView_1.default));\r\nexports.default = MonthView;\r\nMonthView.prototype.dateProfileGeneratorClass = MonthViewDateProfileGenerator_1.default;\r\n\n\n/***/ }),\n/* 247 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar BasicViewDateProfileGenerator_1 = __webpack_require__(68);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar MonthViewDateProfileGenerator = /** @class */ (function (_super) {\r\n tslib_1.__extends(MonthViewDateProfileGenerator, _super);\r\n function MonthViewDateProfileGenerator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Computes the date range that will be rendered.\r\n MonthViewDateProfileGenerator.prototype.buildRenderRange = function (currentUnzonedRange, currentRangeUnit, isRangeAllDay) {\r\n var renderUnzonedRange = _super.prototype.buildRenderRange.call(this, currentUnzonedRange, currentRangeUnit, isRangeAllDay);\r\n var start = this.msToUtcMoment(renderUnzonedRange.startMs, isRangeAllDay);\r\n var end = this.msToUtcMoment(renderUnzonedRange.endMs, isRangeAllDay);\r\n var rowCnt;\r\n // ensure 6 weeks\r\n if (this.opt('fixedWeekCount')) {\r\n rowCnt = Math.ceil(// could be partial weeks due to hiddenDays\r\n end.diff(start, 'weeks', true) // dontRound=true\r\n );\r\n end.add(6 - rowCnt, 'weeks');\r\n }\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n return MonthViewDateProfileGenerator;\r\n}(BasicViewDateProfileGenerator_1.default));\r\nexports.default = MonthViewDateProfileGenerator;\r\n\n\n/***/ }),\n/* 248 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar View_1 = __webpack_require__(43);\r\nvar Scroller_1 = __webpack_require__(41);\r\nvar ListEventRenderer_1 = __webpack_require__(249);\r\nvar ListEventPointing_1 = __webpack_require__(250);\r\n/*\r\nResponsible for the scroller, and forwarding event-related actions into the \"grid\".\r\n*/\r\nvar ListView = /** @class */ (function (_super) {\r\n tslib_1.__extends(ListView, _super);\r\n function ListView(calendar, viewSpec) {\r\n var _this = _super.call(this, calendar, viewSpec) || this;\r\n _this.segSelector = '.fc-list-item'; // which elements accept event actions\r\n _this.scroller = new Scroller_1.default({\r\n overflowX: 'hidden',\r\n overflowY: 'auto'\r\n });\r\n return _this;\r\n }\r\n ListView.prototype.renderSkeleton = function () {\r\n this.el.addClass('fc-list-view ' +\r\n this.calendar.theme.getClass('listView'));\r\n this.scroller.render();\r\n this.scroller.el.appendTo(this.el);\r\n this.contentEl = this.scroller.scrollEl; // shortcut\r\n };\r\n ListView.prototype.unrenderSkeleton = function () {\r\n this.scroller.destroy(); // will remove the Grid too\r\n };\r\n ListView.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n this.scroller.clear(); // sets height to 'auto' and clears overflow\r\n if (!isAuto) {\r\n this.scroller.setHeight(this.computeScrollerHeight(totalHeight));\r\n }\r\n };\r\n ListView.prototype.computeScrollerHeight = function (totalHeight) {\r\n return totalHeight -\r\n util_1.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller\r\n };\r\n ListView.prototype.renderDates = function (dateProfile) {\r\n var calendar = this.calendar;\r\n var dayStart = calendar.msToUtcMoment(dateProfile.renderUnzonedRange.startMs, true);\r\n var viewEnd = calendar.msToUtcMoment(dateProfile.renderUnzonedRange.endMs, true);\r\n var dayDates = [];\r\n var dayRanges = [];\r\n while (dayStart < viewEnd) {\r\n dayDates.push(dayStart.clone());\r\n dayRanges.push(new UnzonedRange_1.default(dayStart, dayStart.clone().add(1, 'day')));\r\n dayStart.add(1, 'day');\r\n }\r\n this.dayDates = dayDates;\r\n this.dayRanges = dayRanges;\r\n // all real rendering happens in EventRenderer\r\n };\r\n // slices by day\r\n ListView.prototype.componentFootprintToSegs = function (footprint) {\r\n var dayRanges = this.dayRanges;\r\n var dayIndex;\r\n var segRange;\r\n var seg;\r\n var segs = [];\r\n for (dayIndex = 0; dayIndex < dayRanges.length; dayIndex++) {\r\n segRange = footprint.unzonedRange.intersect(dayRanges[dayIndex]);\r\n if (segRange) {\r\n seg = {\r\n startMs: segRange.startMs,\r\n endMs: segRange.endMs,\r\n isStart: segRange.isStart,\r\n isEnd: segRange.isEnd,\r\n dayIndex: dayIndex\r\n };\r\n segs.push(seg);\r\n // detect when footprint won't go fully into the next day,\r\n // and mutate the latest seg to the be the end.\r\n if (!seg.isEnd && !footprint.isAllDay &&\r\n dayIndex + 1 < dayRanges.length &&\r\n footprint.unzonedRange.endMs < dayRanges[dayIndex + 1].startMs + this.nextDayThreshold) {\r\n seg.endMs = footprint.unzonedRange.endMs;\r\n seg.isEnd = true;\r\n break;\r\n }\r\n }\r\n }\r\n return segs;\r\n };\r\n ListView.prototype.renderEmptyMessage = function () {\r\n this.contentEl.html('' + // TODO: try less wraps\r\n '' +\r\n '' +\r\n util_1.htmlEscape(this.opt('noEventsMessage')) +\r\n '' +\r\n '' +\r\n '');\r\n };\r\n // render the event segments in the view\r\n ListView.prototype.renderSegList = function (allSegs) {\r\n var segsByDay = this.groupSegsByDay(allSegs); // sparse array\r\n var dayIndex;\r\n var daySegs;\r\n var i;\r\n var tableEl = $('');\r\n var tbodyEl = tableEl.find('tbody');\r\n for (dayIndex = 0; dayIndex < segsByDay.length; dayIndex++) {\r\n daySegs = segsByDay[dayIndex];\r\n if (daySegs) { // sparse array, so might be undefined\r\n // append a day header\r\n tbodyEl.append(this.dayHeaderHtml(this.dayDates[dayIndex]));\r\n this.eventRenderer.sortEventSegs(daySegs);\r\n for (i = 0; i < daySegs.length; i++) {\r\n tbodyEl.append(daySegs[i].el); // append event row\r\n }\r\n }\r\n }\r\n this.contentEl.empty().append(tableEl);\r\n };\r\n // Returns a sparse array of arrays, segs grouped by their dayIndex\r\n ListView.prototype.groupSegsByDay = function (segs) {\r\n var segsByDay = []; // sparse array\r\n var i;\r\n var seg;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n (segsByDay[seg.dayIndex] || (segsByDay[seg.dayIndex] = []))\r\n .push(seg);\r\n }\r\n return segsByDay;\r\n };\r\n // generates the HTML for the day headers that live amongst the event rows\r\n ListView.prototype.dayHeaderHtml = function (dayDate) {\r\n var mainFormat = this.opt('listDayFormat');\r\n var altFormat = this.opt('listDayAltFormat');\r\n return '' +\r\n '' +\r\n (mainFormat ?\r\n this.buildGotoAnchorHtml(dayDate, { 'class': 'fc-list-heading-main' }, util_1.htmlEscape(dayDate.format(mainFormat)) // inner HTML\r\n ) :\r\n '') +\r\n (altFormat ?\r\n this.buildGotoAnchorHtml(dayDate, { 'class': 'fc-list-heading-alt' }, util_1.htmlEscape(dayDate.format(altFormat)) // inner HTML\r\n ) :\r\n '') +\r\n '' +\r\n '';\r\n };\r\n return ListView;\r\n}(View_1.default));\r\nexports.default = ListView;\r\nListView.prototype.eventRendererClass = ListEventRenderer_1.default;\r\nListView.prototype.eventPointingClass = ListEventPointing_1.default;\r\n\n\n/***/ }),\n/* 249 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventRenderer_1 = __webpack_require__(44);\r\nvar ListEventRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(ListEventRenderer, _super);\r\n function ListEventRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ListEventRenderer.prototype.renderFgSegs = function (segs) {\r\n if (!segs.length) {\r\n this.component.renderEmptyMessage();\r\n }\r\n else {\r\n this.component.renderSegList(segs);\r\n }\r\n };\r\n // generates the HTML for a single event row\r\n ListEventRenderer.prototype.fgSegHtml = function (seg) {\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var theme = calendar.theme;\r\n var eventFootprint = seg.footprint;\r\n var eventDef = eventFootprint.eventDef;\r\n var componentFootprint = eventFootprint.componentFootprint;\r\n var url = eventDef.url;\r\n var classes = ['fc-list-item'].concat(this.getClasses(eventDef));\r\n var bgColor = this.getBgColor(eventDef);\r\n var timeHtml;\r\n if (componentFootprint.isAllDay) {\r\n timeHtml = view.getAllDayHtml();\r\n }\r\n else if (view.isMultiDayRange(componentFootprint.unzonedRange)) {\r\n if (seg.isStart || seg.isEnd) { // outer segment that probably lasts part of the day\r\n timeHtml = util_1.htmlEscape(this._getTimeText(calendar.msToMoment(seg.startMs), calendar.msToMoment(seg.endMs), componentFootprint.isAllDay));\r\n }\r\n else { // inner segment that lasts the whole day\r\n timeHtml = view.getAllDayHtml();\r\n }\r\n }\r\n else {\r\n // Display the normal time text for the *event's* times\r\n timeHtml = util_1.htmlEscape(this.getTimeText(eventFootprint));\r\n }\r\n if (url) {\r\n classes.push('fc-has-url');\r\n }\r\n return '' +\r\n (this.displayEventTime ?\r\n '' +\r\n (timeHtml || '') +\r\n '' :\r\n '') +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n util_1.htmlEscape(eventDef.title || '') +\r\n '' +\r\n '' +\r\n '';\r\n };\r\n // like \"4:00am\"\r\n ListEventRenderer.prototype.computeEventTimeFormat = function () {\r\n return this.opt('mediumTimeFormat');\r\n };\r\n return ListEventRenderer;\r\n}(EventRenderer_1.default));\r\nexports.default = ListEventRenderer;\r\n\n\n/***/ }),\n/* 250 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar EventPointing_1 = __webpack_require__(64);\r\nvar ListEventPointing = /** @class */ (function (_super) {\r\n tslib_1.__extends(ListEventPointing, _super);\r\n function ListEventPointing() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // for events with a url, the whole should be clickable,\r\n // but it's impossible to wrap with an tag. simulate this.\r\n ListEventPointing.prototype.handleClick = function (seg, ev) {\r\n var url;\r\n _super.prototype.handleClick.call(this, seg, ev); // might prevent the default action\r\n // not clicking on or within an with an href\r\n if (!$(ev.target).closest('a[href]').length) {\r\n url = seg.footprint.eventDef.url;\r\n if (url && !ev.isDefaultPrevented()) { // jsEvent not cancelled in handler\r\n window.location.href = url; // simulate link click\r\n }\r\n }\r\n };\r\n return ListEventPointing;\r\n}(EventPointing_1.default));\r\nexports.default = ListEventPointing;\r\n\n\n/***/ }),\n/* 251 */,\n/* 252 */,\n/* 253 */,\n/* 254 */,\n/* 255 */,\n/* 256 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(3);\r\nvar exportHooks = __webpack_require__(18);\r\nvar util_1 = __webpack_require__(4);\r\nvar Calendar_1 = __webpack_require__(232);\r\n// for intentional side-effects\r\n__webpack_require__(11);\r\n__webpack_require__(49);\r\n__webpack_require__(260);\r\n__webpack_require__(261);\r\n__webpack_require__(264);\r\n__webpack_require__(265);\r\n__webpack_require__(266);\r\n__webpack_require__(267);\r\n$.fullCalendar = exportHooks;\r\n$.fn.fullCalendar = function (options) {\r\n var args = Array.prototype.slice.call(arguments, 1); // for a possible method call\r\n var res = this; // what this function will return (this jQuery object by default)\r\n this.each(function (i, _element) {\r\n var element = $(_element);\r\n var calendar = element.data('fullCalendar'); // get the existing calendar object (if any)\r\n var singleRes; // the returned value of this single method call\r\n // a method call\r\n if (typeof options === 'string') {\r\n if (options === 'getCalendar') {\r\n if (!i) { // first element only\r\n res = calendar;\r\n }\r\n }\r\n else if (options === 'destroy') { // don't warn if no calendar object\r\n if (calendar) {\r\n calendar.destroy();\r\n element.removeData('fullCalendar');\r\n }\r\n }\r\n else if (!calendar) {\r\n util_1.warn('Attempting to call a FullCalendar method on an element with no calendar.');\r\n }\r\n else if ($.isFunction(calendar[options])) {\r\n singleRes = calendar[options].apply(calendar, args);\r\n if (!i) {\r\n res = singleRes; // record the first method call result\r\n }\r\n if (options === 'destroy') { // for the destroy method, must remove Calendar object data\r\n element.removeData('fullCalendar');\r\n }\r\n }\r\n else {\r\n util_1.warn(\"'\" + options + \"' is an unknown FullCalendar method.\");\r\n }\r\n }\r\n else if (!calendar) { // don't initialize twice\r\n calendar = new Calendar_1.default(element, options);\r\n element.data('fullCalendar', calendar);\r\n calendar.render();\r\n }\r\n });\r\n return res;\r\n};\r\nmodule.exports = exportHooks;\r\n\n\n/***/ }),\n/* 257 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\n/* Toolbar with buttons and title\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar Toolbar = /** @class */ (function () {\r\n function Toolbar(calendar, toolbarOptions) {\r\n this.el = null; // mirrors local `el`\r\n this.viewsWithButtons = [];\r\n this.calendar = calendar;\r\n this.toolbarOptions = toolbarOptions;\r\n }\r\n // method to update toolbar-specific options, not calendar-wide options\r\n Toolbar.prototype.setToolbarOptions = function (newToolbarOptions) {\r\n this.toolbarOptions = newToolbarOptions;\r\n };\r\n // can be called repeatedly and will rerender\r\n Toolbar.prototype.render = function () {\r\n var sections = this.toolbarOptions.layout;\r\n var el = this.el;\r\n if (sections) {\r\n if (!el) {\r\n el = this.el = $(\"\");\r\n }\r\n else {\r\n el.empty();\r\n }\r\n el.append(this.renderSection('left'))\r\n .append(this.renderSection('right'))\r\n .append(this.renderSection('center'))\r\n .append('');\r\n }\r\n else {\r\n this.removeElement();\r\n }\r\n };\r\n Toolbar.prototype.removeElement = function () {\r\n if (this.el) {\r\n this.el.remove();\r\n this.el = null;\r\n }\r\n };\r\n Toolbar.prototype.renderSection = function (position) {\r\n var _this = this;\r\n var calendar = this.calendar;\r\n var theme = calendar.theme;\r\n var optionsManager = calendar.optionsManager;\r\n var viewSpecManager = calendar.viewSpecManager;\r\n var sectionEl = $('');\r\n var buttonStr = this.toolbarOptions.layout[position];\r\n var calendarCustomButtons = optionsManager.get('customButtons') || {};\r\n var calendarButtonTextOverrides = optionsManager.overrides.buttonText || {};\r\n var calendarButtonText = optionsManager.get('buttonText') || {};\r\n if (buttonStr) {\r\n $.each(buttonStr.split(' '), function (i, buttonGroupStr) {\r\n var groupChildren = $();\r\n var isOnlyButtons = true;\r\n var groupEl;\r\n $.each(buttonGroupStr.split(','), function (j, buttonName) {\r\n var customButtonProps;\r\n var viewSpec;\r\n var buttonClick;\r\n var buttonIcon; // only one of these will be set\r\n var buttonText; // \"\r\n var buttonInnerHtml;\r\n var buttonClasses;\r\n var buttonEl;\r\n var buttonAriaAttr;\r\n if (buttonName === 'title') {\r\n groupChildren = groupChildren.add($(' ')); // we always want it to take up height\r\n isOnlyButtons = false;\r\n }\r\n else {\r\n if ((customButtonProps = calendarCustomButtons[buttonName])) {\r\n buttonClick = function (ev) {\r\n if (customButtonProps.click) {\r\n customButtonProps.click.call(buttonEl[0], ev);\r\n }\r\n };\r\n (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) ||\r\n (buttonIcon = theme.getIconClass(buttonName)) ||\r\n (buttonText = customButtonProps.text);\r\n }\r\n else if ((viewSpec = viewSpecManager.getViewSpec(buttonName))) {\r\n _this.viewsWithButtons.push(buttonName);\r\n buttonClick = function () {\r\n calendar.changeView(buttonName);\r\n };\r\n (buttonText = viewSpec.buttonTextOverride) ||\r\n (buttonIcon = theme.getIconClass(buttonName)) ||\r\n (buttonText = viewSpec.buttonTextDefault);\r\n }\r\n else if (calendar[buttonName]) { // a calendar method\r\n buttonClick = function () {\r\n calendar[buttonName]();\r\n };\r\n (buttonText = calendarButtonTextOverrides[buttonName]) ||\r\n (buttonIcon = theme.getIconClass(buttonName)) ||\r\n (buttonText = calendarButtonText[buttonName]);\r\n // ^ everything else is considered default\r\n }\r\n if (buttonClick) {\r\n buttonClasses = [\r\n 'fc-' + buttonName + '-button',\r\n theme.getClass('button'),\r\n theme.getClass('stateDefault')\r\n ];\r\n if (buttonText) {\r\n buttonInnerHtml = util_1.htmlEscape(buttonText);\r\n buttonAriaAttr = '';\r\n }\r\n else if (buttonIcon) {\r\n buttonInnerHtml = \"\";\r\n buttonAriaAttr = ' aria-label=\"' + buttonName + '\"';\r\n }\r\n buttonEl = $(// type=\"button\" so that it doesn't submit a form\r\n '' + buttonInnerHtml + '')\r\n .click(function (ev) {\r\n // don't process clicks for disabled buttons\r\n if (!buttonEl.hasClass(theme.getClass('stateDisabled'))) {\r\n buttonClick(ev);\r\n // after the click action, if the button becomes the \"active\" tab, or disabled,\r\n // it should never have a hover class, so remove it now.\r\n if (buttonEl.hasClass(theme.getClass('stateActive')) ||\r\n buttonEl.hasClass(theme.getClass('stateDisabled'))) {\r\n buttonEl.removeClass(theme.getClass('stateHover'));\r\n }\r\n }\r\n })\r\n .mousedown(function () {\r\n // the *down* effect (mouse pressed in).\r\n // only on buttons that are not the \"active\" tab, or disabled\r\n buttonEl\r\n .not('.' + theme.getClass('stateActive'))\r\n .not('.' + theme.getClass('stateDisabled'))\r\n .addClass(theme.getClass('stateDown'));\r\n })\r\n .mouseup(function () {\r\n // undo the *down* effect\r\n buttonEl.removeClass(theme.getClass('stateDown'));\r\n })\r\n .hover(function () {\r\n // the *hover* effect.\r\n // only on buttons that are not the \"active\" tab, or disabled\r\n buttonEl\r\n .not('.' + theme.getClass('stateActive'))\r\n .not('.' + theme.getClass('stateDisabled'))\r\n .addClass(theme.getClass('stateHover'));\r\n }, function () {\r\n // undo the *hover* effect\r\n buttonEl\r\n .removeClass(theme.getClass('stateHover'))\r\n .removeClass(theme.getClass('stateDown')); // if mouseleave happens before mouseup\r\n });\r\n groupChildren = groupChildren.add(buttonEl);\r\n }\r\n }\r\n });\r\n if (isOnlyButtons) {\r\n groupChildren\r\n .first().addClass(theme.getClass('cornerLeft')).end()\r\n .last().addClass(theme.getClass('cornerRight')).end();\r\n }\r\n if (groupChildren.length > 1) {\r\n groupEl = $('');\r\n if (isOnlyButtons) {\r\n groupEl.addClass(theme.getClass('buttonGroup'));\r\n }\r\n groupEl.append(groupChildren);\r\n sectionEl.append(groupEl);\r\n }\r\n else {\r\n sectionEl.append(groupChildren); // 1 or 0 children\r\n }\r\n });\r\n }\r\n return sectionEl;\r\n };\r\n Toolbar.prototype.updateTitle = function (text) {\r\n if (this.el) {\r\n this.el.find('h2').text(text);\r\n }\r\n };\r\n Toolbar.prototype.activateButton = function (buttonName) {\r\n if (this.el) {\r\n this.el.find('.fc-' + buttonName + '-button')\r\n .addClass(this.calendar.theme.getClass('stateActive'));\r\n }\r\n };\r\n Toolbar.prototype.deactivateButton = function (buttonName) {\r\n if (this.el) {\r\n this.el.find('.fc-' + buttonName + '-button')\r\n .removeClass(this.calendar.theme.getClass('stateActive'));\r\n }\r\n };\r\n Toolbar.prototype.disableButton = function (buttonName) {\r\n if (this.el) {\r\n this.el.find('.fc-' + buttonName + '-button')\r\n .prop('disabled', true)\r\n .addClass(this.calendar.theme.getClass('stateDisabled'));\r\n }\r\n };\r\n Toolbar.prototype.enableButton = function (buttonName) {\r\n if (this.el) {\r\n this.el.find('.fc-' + buttonName + '-button')\r\n .prop('disabled', false)\r\n .removeClass(this.calendar.theme.getClass('stateDisabled'));\r\n }\r\n };\r\n Toolbar.prototype.getViewsWithButtons = function () {\r\n return this.viewsWithButtons;\r\n };\r\n return Toolbar;\r\n}());\r\nexports.default = Toolbar;\r\n\n\n/***/ }),\n/* 258 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar options_1 = __webpack_require__(33);\r\nvar locale_1 = __webpack_require__(32);\r\nvar Model_1 = __webpack_require__(51);\r\nvar OptionsManager = /** @class */ (function (_super) {\r\n tslib_1.__extends(OptionsManager, _super);\r\n function OptionsManager(_calendar, overrides) {\r\n var _this = _super.call(this) || this;\r\n _this._calendar = _calendar;\r\n _this.overrides = $.extend({}, overrides); // make a copy\r\n _this.dynamicOverrides = {};\r\n _this.compute();\r\n return _this;\r\n }\r\n OptionsManager.prototype.add = function (newOptionHash) {\r\n var optionCnt = 0;\r\n var optionName;\r\n this.recordOverrides(newOptionHash); // will trigger this model's watchers\r\n for (optionName in newOptionHash) {\r\n optionCnt++;\r\n }\r\n // special-case handling of single option change.\r\n // if only one option change, `optionName` will be its name.\r\n if (optionCnt === 1) {\r\n if (optionName === 'height' || optionName === 'contentHeight' || optionName === 'aspectRatio') {\r\n this._calendar.updateViewSize(true); // isResize=true\r\n return;\r\n }\r\n else if (optionName === 'defaultDate') {\r\n return; // can't change date this way. use gotoDate instead\r\n }\r\n else if (optionName === 'businessHours') {\r\n return; // this model already reacts to this\r\n }\r\n else if (/^(event|select)(Overlap|Constraint|Allow)$/.test(optionName)) {\r\n return; // doesn't affect rendering. only interactions.\r\n }\r\n else if (optionName === 'timezone') {\r\n this._calendar.view.flash('initialEvents');\r\n return;\r\n }\r\n }\r\n // catch-all. rerender the header and footer and rebuild/rerender the current view\r\n this._calendar.renderHeader();\r\n this._calendar.renderFooter();\r\n // even non-current views will be affected by this option change. do before rerender\r\n // TODO: detangle\r\n this._calendar.viewsByType = {};\r\n this._calendar.reinitView();\r\n };\r\n // Computes the flattened options hash for the calendar and assigns to `this.options`.\r\n // Assumes this.overrides and this.dynamicOverrides have already been initialized.\r\n OptionsManager.prototype.compute = function () {\r\n var locale;\r\n var localeDefaults;\r\n var isRTL;\r\n var dirDefaults;\r\n var rawOptions;\r\n locale = util_1.firstDefined(// explicit locale option given?\r\n this.dynamicOverrides.locale, this.overrides.locale);\r\n localeDefaults = locale_1.localeOptionHash[locale];\r\n if (!localeDefaults) { // explicit locale option not given or invalid?\r\n locale = options_1.globalDefaults.locale;\r\n localeDefaults = locale_1.localeOptionHash[locale] || {};\r\n }\r\n isRTL = util_1.firstDefined(// based on options computed so far, is direction RTL?\r\n this.dynamicOverrides.isRTL, this.overrides.isRTL, localeDefaults.isRTL, options_1.globalDefaults.isRTL);\r\n dirDefaults = isRTL ? options_1.rtlDefaults : {};\r\n this.dirDefaults = dirDefaults;\r\n this.localeDefaults = localeDefaults;\r\n rawOptions = options_1.mergeOptions([\r\n options_1.globalDefaults,\r\n dirDefaults,\r\n localeDefaults,\r\n this.overrides,\r\n this.dynamicOverrides\r\n ]);\r\n locale_1.populateInstanceComputableOptions(rawOptions); // fill in gaps with computed options\r\n this.reset(rawOptions);\r\n };\r\n // stores the new options internally, but does not rerender anything.\r\n OptionsManager.prototype.recordOverrides = function (newOptionHash) {\r\n var optionName;\r\n for (optionName in newOptionHash) {\r\n this.dynamicOverrides[optionName] = newOptionHash[optionName];\r\n }\r\n this._calendar.viewSpecManager.clearCache(); // the dynamic override invalidates the options in this cache, so just clear it\r\n this.compute(); // this.options needs to be recomputed after the dynamic override\r\n };\r\n return OptionsManager;\r\n}(Model_1.default));\r\nexports.default = OptionsManager;\r\n\n\n/***/ }),\n/* 259 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar $ = __webpack_require__(3);\r\nvar ViewRegistry_1 = __webpack_require__(24);\r\nvar util_1 = __webpack_require__(4);\r\nvar options_1 = __webpack_require__(33);\r\nvar locale_1 = __webpack_require__(32);\r\nvar ViewSpecManager = /** @class */ (function () {\r\n function ViewSpecManager(optionsManager, _calendar) {\r\n this.optionsManager = optionsManager;\r\n this._calendar = _calendar;\r\n this.clearCache();\r\n }\r\n ViewSpecManager.prototype.clearCache = function () {\r\n this.viewSpecCache = {};\r\n };\r\n // Gets information about how to create a view. Will use a cache.\r\n ViewSpecManager.prototype.getViewSpec = function (viewType) {\r\n var cache = this.viewSpecCache;\r\n return cache[viewType] || (cache[viewType] = this.buildViewSpec(viewType));\r\n };\r\n // Given a duration singular unit, like \"week\" or \"day\", finds a matching view spec.\r\n // Preference is given to views that have corresponding buttons.\r\n ViewSpecManager.prototype.getUnitViewSpec = function (unit) {\r\n var viewTypes;\r\n var i;\r\n var spec;\r\n if ($.inArray(unit, util_1.unitsDesc) !== -1) {\r\n // put views that have buttons first. there will be duplicates, but oh well\r\n viewTypes = this._calendar.header.getViewsWithButtons(); // TODO: include footer as well?\r\n $.each(ViewRegistry_1.viewHash, function (viewType) {\r\n viewTypes.push(viewType);\r\n });\r\n for (i = 0; i < viewTypes.length; i++) {\r\n spec = this.getViewSpec(viewTypes[i]);\r\n if (spec) {\r\n if (spec.singleUnit === unit) {\r\n return spec;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n // Builds an object with information on how to create a given view\r\n ViewSpecManager.prototype.buildViewSpec = function (requestedViewType) {\r\n var viewOverrides = this.optionsManager.overrides.views || {};\r\n var specChain = []; // for the view. lowest to highest priority\r\n var defaultsChain = []; // for the view. lowest to highest priority\r\n var overridesChain = []; // for the view. lowest to highest priority\r\n var viewType = requestedViewType;\r\n var spec; // for the view\r\n var overrides; // for the view\r\n var durationInput;\r\n var duration;\r\n var unit;\r\n // iterate from the specific view definition to a more general one until we hit an actual View class\r\n while (viewType) {\r\n spec = ViewRegistry_1.viewHash[viewType];\r\n overrides = viewOverrides[viewType];\r\n viewType = null; // clear. might repopulate for another iteration\r\n if (typeof spec === 'function') { // TODO: deprecate\r\n spec = { 'class': spec };\r\n }\r\n if (spec) {\r\n specChain.unshift(spec);\r\n defaultsChain.unshift(spec.defaults || {});\r\n durationInput = durationInput || spec.duration;\r\n viewType = viewType || spec.type;\r\n }\r\n if (overrides) {\r\n overridesChain.unshift(overrides); // view-specific option hashes have options at zero-level\r\n durationInput = durationInput || overrides.duration;\r\n viewType = viewType || overrides.type;\r\n }\r\n }\r\n spec = util_1.mergeProps(specChain);\r\n spec.type = requestedViewType;\r\n if (!spec['class']) {\r\n return false;\r\n }\r\n // fall back to top-level `duration` option\r\n durationInput = durationInput ||\r\n this.optionsManager.dynamicOverrides.duration ||\r\n this.optionsManager.overrides.duration;\r\n if (durationInput) {\r\n duration = moment.duration(durationInput);\r\n if (duration.valueOf()) { // valid?\r\n unit = util_1.computeDurationGreatestUnit(duration, durationInput);\r\n spec.duration = duration;\r\n spec.durationUnit = unit;\r\n // view is a single-unit duration, like \"week\" or \"day\"\r\n // incorporate options for this. lowest priority\r\n if (duration.as(unit) === 1) {\r\n spec.singleUnit = unit;\r\n overridesChain.unshift(viewOverrides[unit] || {});\r\n }\r\n }\r\n }\r\n spec.defaults = options_1.mergeOptions(defaultsChain);\r\n spec.overrides = options_1.mergeOptions(overridesChain);\r\n this.buildViewSpecOptions(spec);\r\n this.buildViewSpecButtonText(spec, requestedViewType);\r\n return spec;\r\n };\r\n // Builds and assigns a view spec's options object from its already-assigned defaults and overrides\r\n ViewSpecManager.prototype.buildViewSpecOptions = function (spec) {\r\n var optionsManager = this.optionsManager;\r\n spec.options = options_1.mergeOptions([\r\n options_1.globalDefaults,\r\n spec.defaults,\r\n optionsManager.dirDefaults,\r\n optionsManager.localeDefaults,\r\n optionsManager.overrides,\r\n spec.overrides,\r\n optionsManager.dynamicOverrides // dynamically set via setter. highest precedence\r\n ]);\r\n locale_1.populateInstanceComputableOptions(spec.options);\r\n };\r\n // Computes and assigns a view spec's buttonText-related options\r\n ViewSpecManager.prototype.buildViewSpecButtonText = function (spec, requestedViewType) {\r\n var optionsManager = this.optionsManager;\r\n // given an options object with a possible `buttonText` hash, lookup the buttonText for the\r\n // requested view, falling back to a generic unit entry like \"week\" or \"day\"\r\n function queryButtonText(options) {\r\n var buttonText = options.buttonText || {};\r\n return buttonText[requestedViewType] ||\r\n // view can decide to look up a certain key\r\n (spec.buttonTextKey ? buttonText[spec.buttonTextKey] : null) ||\r\n // a key like \"month\"\r\n (spec.singleUnit ? buttonText[spec.singleUnit] : null);\r\n }\r\n // highest to lowest priority\r\n spec.buttonTextOverride =\r\n queryButtonText(optionsManager.dynamicOverrides) ||\r\n queryButtonText(optionsManager.overrides) || // constructor-specified buttonText lookup hash takes precedence\r\n spec.overrides.buttonText; // `buttonText` for view-specific options is a string\r\n // highest to lowest priority. mirrors buildViewSpecOptions\r\n spec.buttonTextDefault =\r\n queryButtonText(optionsManager.localeDefaults) ||\r\n queryButtonText(optionsManager.dirDefaults) ||\r\n spec.defaults.buttonText || // a single string. from ViewSubclass.defaults\r\n queryButtonText(options_1.globalDefaults) ||\r\n (spec.duration ? this._calendar.humanizeDuration(spec.duration) : null) || // like \"3 days\"\r\n requestedViewType; // fall back to given view name\r\n };\r\n return ViewSpecManager;\r\n}());\r\nexports.default = ViewSpecManager;\r\n\n\n/***/ }),\n/* 260 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventSourceParser_1 = __webpack_require__(38);\r\nvar ArrayEventSource_1 = __webpack_require__(56);\r\nvar FuncEventSource_1 = __webpack_require__(223);\r\nvar JsonFeedEventSource_1 = __webpack_require__(224);\r\nEventSourceParser_1.default.registerClass(ArrayEventSource_1.default);\r\nEventSourceParser_1.default.registerClass(FuncEventSource_1.default);\r\nEventSourceParser_1.default.registerClass(JsonFeedEventSource_1.default);\r\n\n\n/***/ }),\n/* 261 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ThemeRegistry_1 = __webpack_require__(57);\r\nvar StandardTheme_1 = __webpack_require__(221);\r\nvar JqueryUiTheme_1 = __webpack_require__(222);\r\nvar Bootstrap3Theme_1 = __webpack_require__(262);\r\nvar Bootstrap4Theme_1 = __webpack_require__(263);\r\nThemeRegistry_1.defineThemeSystem('standard', StandardTheme_1.default);\r\nThemeRegistry_1.defineThemeSystem('jquery-ui', JqueryUiTheme_1.default);\r\nThemeRegistry_1.defineThemeSystem('bootstrap3', Bootstrap3Theme_1.default);\r\nThemeRegistry_1.defineThemeSystem('bootstrap4', Bootstrap4Theme_1.default);\r\n\n\n/***/ }),\n/* 262 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Theme_1 = __webpack_require__(22);\r\nvar Bootstrap3Theme = /** @class */ (function (_super) {\r\n tslib_1.__extends(Bootstrap3Theme, _super);\r\n function Bootstrap3Theme() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return Bootstrap3Theme;\r\n}(Theme_1.default));\r\nexports.default = Bootstrap3Theme;\r\nBootstrap3Theme.prototype.classes = {\r\n widget: 'fc-bootstrap3',\r\n tableGrid: 'table-bordered',\r\n tableList: 'table',\r\n tableListHeading: 'active',\r\n buttonGroup: 'btn-group',\r\n button: 'btn btn-default',\r\n stateActive: 'active',\r\n stateDisabled: 'disabled',\r\n today: 'alert alert-info',\r\n popover: 'panel panel-default',\r\n popoverHeader: 'panel-heading',\r\n popoverContent: 'panel-body',\r\n // day grid\r\n // for left/right border color when border is inset from edges (all-day in agenda view)\r\n // avoid `panel` class b/c don't want margins/radius. only border color.\r\n headerRow: 'panel-default',\r\n dayRow: 'panel-default',\r\n // list view\r\n listView: 'panel panel-default'\r\n};\r\nBootstrap3Theme.prototype.baseIconClass = 'glyphicon';\r\nBootstrap3Theme.prototype.iconClasses = {\r\n close: 'glyphicon-remove',\r\n prev: 'glyphicon-chevron-left',\r\n next: 'glyphicon-chevron-right',\r\n prevYear: 'glyphicon-backward',\r\n nextYear: 'glyphicon-forward'\r\n};\r\nBootstrap3Theme.prototype.iconOverrideOption = 'bootstrapGlyphicons';\r\nBootstrap3Theme.prototype.iconOverrideCustomButtonOption = 'bootstrapGlyphicon';\r\nBootstrap3Theme.prototype.iconOverridePrefix = 'glyphicon-';\r\n\n\n/***/ }),\n/* 263 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Theme_1 = __webpack_require__(22);\r\nvar Bootstrap4Theme = /** @class */ (function (_super) {\r\n tslib_1.__extends(Bootstrap4Theme, _super);\r\n function Bootstrap4Theme() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return Bootstrap4Theme;\r\n}(Theme_1.default));\r\nexports.default = Bootstrap4Theme;\r\nBootstrap4Theme.prototype.classes = {\r\n widget: 'fc-bootstrap4',\r\n tableGrid: 'table-bordered',\r\n tableList: 'table',\r\n tableListHeading: 'table-active',\r\n buttonGroup: 'btn-group',\r\n button: 'btn btn-primary',\r\n stateActive: 'active',\r\n stateDisabled: 'disabled',\r\n today: 'alert alert-info',\r\n popover: 'card card-primary',\r\n popoverHeader: 'card-header',\r\n popoverContent: 'card-body',\r\n // day grid\r\n // for left/right border color when border is inset from edges (all-day in agenda view)\r\n // avoid `table` class b/c don't want margins/padding/structure. only border color.\r\n headerRow: 'table-bordered',\r\n dayRow: 'table-bordered',\r\n // list view\r\n listView: 'card card-primary'\r\n};\r\nBootstrap4Theme.prototype.baseIconClass = 'fa';\r\nBootstrap4Theme.prototype.iconClasses = {\r\n close: 'fa-times',\r\n prev: 'fa-chevron-left',\r\n next: 'fa-chevron-right',\r\n prevYear: 'fa-angle-double-left',\r\n nextYear: 'fa-angle-double-right'\r\n};\r\nBootstrap4Theme.prototype.iconOverrideOption = 'bootstrapFontAwesome';\r\nBootstrap4Theme.prototype.iconOverrideCustomButtonOption = 'bootstrapFontAwesome';\r\nBootstrap4Theme.prototype.iconOverridePrefix = 'fa-';\r\n\n\n/***/ }),\n/* 264 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ViewRegistry_1 = __webpack_require__(24);\r\nvar BasicView_1 = __webpack_require__(67);\r\nvar MonthView_1 = __webpack_require__(246);\r\nViewRegistry_1.defineView('basic', {\r\n 'class': BasicView_1.default\r\n});\r\nViewRegistry_1.defineView('basicDay', {\r\n type: 'basic',\r\n duration: { days: 1 }\r\n});\r\nViewRegistry_1.defineView('basicWeek', {\r\n type: 'basic',\r\n duration: { weeks: 1 }\r\n});\r\nViewRegistry_1.defineView('month', {\r\n 'class': MonthView_1.default,\r\n duration: { months: 1 },\r\n defaults: {\r\n fixedWeekCount: true\r\n }\r\n});\r\n\n\n/***/ }),\n/* 265 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ViewRegistry_1 = __webpack_require__(24);\r\nvar AgendaView_1 = __webpack_require__(238);\r\nViewRegistry_1.defineView('agenda', {\r\n 'class': AgendaView_1.default,\r\n defaults: {\r\n allDaySlot: true,\r\n slotDuration: '00:30:00',\r\n slotEventOverlap: true // a bad name. confused with overlap/constraint system\r\n }\r\n});\r\nViewRegistry_1.defineView('agendaDay', {\r\n type: 'agenda',\r\n duration: { days: 1 }\r\n});\r\nViewRegistry_1.defineView('agendaWeek', {\r\n type: 'agenda',\r\n duration: { weeks: 1 }\r\n});\r\n\n\n/***/ }),\n/* 266 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ViewRegistry_1 = __webpack_require__(24);\r\nvar ListView_1 = __webpack_require__(248);\r\nViewRegistry_1.defineView('list', {\r\n 'class': ListView_1.default,\r\n buttonTextKey: 'list',\r\n defaults: {\r\n buttonText: 'list',\r\n listDayFormat: 'LL',\r\n noEventsMessage: 'No events to display'\r\n }\r\n});\r\nViewRegistry_1.defineView('listDay', {\r\n type: 'list',\r\n duration: { days: 1 },\r\n defaults: {\r\n listDayFormat: 'dddd' // day-of-week is all we need. full date is probably in header\r\n }\r\n});\r\nViewRegistry_1.defineView('listWeek', {\r\n type: 'list',\r\n duration: { weeks: 1 },\r\n defaults: {\r\n listDayFormat: 'dddd',\r\n listDayAltFormat: 'LL'\r\n }\r\n});\r\nViewRegistry_1.defineView('listMonth', {\r\n type: 'list',\r\n duration: { month: 1 },\r\n defaults: {\r\n listDayAltFormat: 'dddd' // day-of-week is nice-to-have\r\n }\r\n});\r\nViewRegistry_1.defineView('listYear', {\r\n type: 'list',\r\n duration: { year: 1 },\r\n defaults: {\r\n listDayAltFormat: 'dddd' // day-of-week is nice-to-have\r\n }\r\n});\r\n\n\n/***/ }),\n/* 267 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\n\n/***/ })\n/******/ ]);\n});","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:`mb-1 flex items-center justify-center w-fit heading-6 whitespace-nowrap border border-gray2 rounded text-${_vm.textsColor} px-2 py-1 mr-1 font-${_vm.font? _vm.font : ''}`,style:(`color: ${_vm.textColor ? _vm.textColor : ''}; border-color: ${_vm.borderColor ? _vm.borderColor : ''}`)},[(_vm.iconClass !== '')?_c('span',{},[_c('i',{class:`${_vm.iconClass}`})]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.chipText))])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n \n \n \n {{chipText}}\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chip.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./chip.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./chip.vue?vue&type=template&id=ffeba71e&scoped=true&\"\nimport script from \"./chip.vue?vue&type=script&lang=js&\"\nexport * from \"./chip.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 \"ffeba71e\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./visitMapLocation.vue?vue&type=style&index=0&id=13928c99&prod&scoped=true&lang=css&\"","import store from '@/store'\nvar moment = require('moment')\nexport function validateEmail (email) {\n const pattern = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n return pattern.test(email)\n}\nexport function PhoneNumberValidate (number) {\n const pattern = /^([0|+[0-9]{1,5})?([7-9][0-9]{9})$/\n return pattern.test(number)\n}\n// :-,;\"'`*#@\nexport function validateNumber (value) {\n value = value.trim()\n var newVal = value.replace(/[^0-9A-Za-z]/g, '')\n if (newVal.substring(0, 1) === '1') {\n newVal = newVal.substring(1)\n }\n if (newVal.length === 3) {\n return newVal.replace(/[^0-9]/g, '').replace(/(\\d{3})/, '($1)')\n } else if (newVal.length === 6) {\n return newVal.replace(/[^0-9]/g, '').replace(/(\\d{3})(\\d{3})/, '($1) $2')\n } else if (newVal.length === 10) {\n return newVal.replace(/[^0-9]/g, '').replace(/(\\d{3})(\\d{3})(\\d{4})/, '($1) $2-$3 ')\n } else if (newVal.length >= 11 && value.indexOf(')') < 0) {\n var string = value.replace(/[^0-9A-Za-z:,;\"'`*#@ -]/g, '')\n if (string.substring(0, 1) === '+') {\n string = newVal.substring(1)\n }\n if (string.substring(0, 1) === '1') {\n string = newVal.substring(1)\n }\n var formate = string.replace(/[^0-9]/g, '').substring(0, 10)\n var numberFormate = formate.replace(/(\\d{3})(\\d{3})(\\d{4})/, '($1) $2-$3')\n return numberFormate + ' ' + string.substring(10)\n // this.number = value.replace(/^([0-9]{3})([0-9]{3})([0-9]{4})([0-9A-Za-z]{4})$/, '($1) $2-$3 $4')\n } else {\n if (value.substring(0, 1) === '+') {\n value = value.substring(1)\n }\n if (value.substring(0, 1) === '1') {\n value = value.substring(1)\n }\n return value\n }\n}\nexport function ReFormatDate (date) {\n if (date === null) {\n return null\n }\n var newDateArray = date.split('-')\n return newDateArray[1] + '/' + newDateArray[2] + '/' + newDateArray[0]\n}\n\n// export function ReFormatDateTime (date) {\n// if (date === null) {\n// return null\n// }\n// dateTimeAry = date.split(' ')\n// var newDateArray = dateTimeAry[0].split('-')\n// return newDateArray[1] + '/' + newDateArray[2] + '/' + newDateArray[0]\n// }\n\nexport function checkSpeialChar(str) {\n const specialChars = `\\`!@#$%^&*()_+-=[]{};':\"\\\\|,.<>/?~`;\n const result = specialChars.split('').some(specialChar => {\n if (str.includes(specialChar)) {\n return true;\n }\n return false;\n });\n return result;\n}\n\nexport function ReFormatNumber (number) {\n return number.replace(/[^0-9]/g, '')\n .replace(/(\\d{3})(\\d{3})(\\d{4})/, '($1) $2-$3')\n}\nexport function IntToTime (time) {\n var minutes = parseInt(time % 60, 10)\n var hours = parseInt(time / 60 % 24, 10)\n return hours + ':' + minutes\n}\nexport function OnlyTimeFilter (dateTime) {\n var utcTime = new Date(dateTime).toUTCString()\n var time = new Date(utcTime)\n var formate = store.getters.dateTimeFormate\n formate = formate.replace(store.getters.dateTimeFormate.split(' ')[0] + ' ', '')\n return moment(time).format(formate)\n}\n\nexport function validateEmailORPhone (emailphone) {\n const pattern = /^(?:\\d{10}|\\w+@\\w+\\.\\w{2,3})$/\n return pattern.test(emailphone)\n}\n\nexport function OnlyTimeFilterWithoutZero (dateTime) {\n var utcTime = new Date(dateTime).toUTCString()\n var time = new Date(utcTime)\n var formate = store.getters.dateTimeFormate\n formate = formate.replace(store.getters.dateTimeFormate.split(' ')[0] + ' ', '')\n let formatTime = moment(time).format(formate)\n formatTime = formatTime.toLowerCase()\n if (formatTime.indexOf('am') > 0 || formatTime.indexOf('pm') > 0) {\n if (formatTime.substring(0, 1) === '0') {\n formatTime = formatTime.substring(1)\n }\n let formatTimeArray = formatTime.split(':')\n if (formatTimeArray[1].substring(0, 2) === '00') {\n formatTime = formatTimeArray[0] + ' ' + formatTimeArray[1].split(' ')[1]\n } else {\n formatTime = formatTimeArray[0] + ':' + formatTimeArray[1]\n }\n // else if (formatTimeArray[1].substring(0, 1) === '0') {\n // formatTime = formatTimeArray[0] + ' ' + formatTimeArray[1].substring(1)\n // }\n } else {\n if (formatTime.substring(0, 1) === '0') {\n formatTime = formatTime.substring(1)\n }\n }\n return formatTime\n}\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SchedulerComponent.vue?vue&type=style&index=0&id=64622638&prod&lang=css&\"","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\nfunction customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\nvar defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n});\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = defaultsDeep;\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dashboard.vue?vue&type=style&index=0&id=4cd32dc8&prod&lang=css&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"click-outside-textInput\",rawName:\"v-click-outside-textInput\",value:(_vm.closePopup),expression:\"closePopup\"}],staticClass:\"relative\"},[_c('p',{staticClass:\"label_css flex justify-between\"},[_c('span',[_vm._v(_vm._s(_vm.lableText))]),(_vm.showcharLimit)?_c('span',{staticClass:\"text contents\"},[_vm._v(_vm._s(_vm.inputValue.length)+\"/\"+_vm._s(_vm.textMaxlength))]):_vm._e()]),((_vm.inputTypeText)==='checkbox')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputValue),expression:\"inputValue\"}],staticClass:\"cust_text_field px-2 w-full bg-white rounded items-center\",class:`${_vm.inputType === 'color' ? 'h-12 py-0' : 'py-3'} ${_vm.isPointer === true ? 'cursor-pointer' : ''} ${_vm.textRight ? 'text-right pr-2' : ''} ${_vm.showError ? 'border border-error text-error' : 'border border-gray2 flex text-text1 focus:border-primary focus:ring-1 focus:ring-primary'}\n pr-${_vm.inputType === 'password' || _vm.showDate ? '8' : '0'}\n `,style:(`${_vm.isOtp ? 'letter-spacing: 8px;text-align: center;' : ''}`),attrs:{\"maxlength\":_vm.textMaxlength,\"pattern\":_vm.pattern,\"disabled\":_vm.disabled,\"placeholder\":_vm.placholderText,\"readonly\":_vm.setReadOnly,\"autofocus\":_vm.setAutoFocust,\"autocomplete\":\"off\",\"id\":_vm.inputId,\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.inputValue)?_vm._i(_vm.inputValue,null)>-1:(_vm.inputValue)},on:{\"keypress\":[_vm.keyPressAction,function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.enterkeyPressAction.apply(null, arguments)}],\"blur\":_vm.blurAction,\"input\":function($event){return _vm.inputChangeAction(_vm.inputValue)},\"change\":[function($event){var $$a=_vm.inputValue,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.inputValue=$$a.concat([$$v]))}else{$$i>-1&&(_vm.inputValue=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.inputValue=$$c}},_vm.change],\"keyup\":_vm.keyup,\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onClickInputAction.apply(null, arguments)},\"focus\":_vm.focus}}):((_vm.inputTypeText)==='radio')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputValue),expression:\"inputValue\"}],staticClass:\"cust_text_field px-2 w-full bg-white rounded items-center\",class:`${_vm.inputType === 'color' ? 'h-12 py-0' : 'py-3'} ${_vm.isPointer === true ? 'cursor-pointer' : ''} ${_vm.textRight ? 'text-right pr-2' : ''} ${_vm.showError ? 'border border-error text-error' : 'border border-gray2 flex text-text1 focus:border-primary focus:ring-1 focus:ring-primary'}\n pr-${_vm.inputType === 'password' || _vm.showDate ? '8' : '0'}\n `,style:(`${_vm.isOtp ? 'letter-spacing: 8px;text-align: center;' : ''}`),attrs:{\"maxlength\":_vm.textMaxlength,\"pattern\":_vm.pattern,\"disabled\":_vm.disabled,\"placeholder\":_vm.placholderText,\"readonly\":_vm.setReadOnly,\"autofocus\":_vm.setAutoFocust,\"autocomplete\":\"off\",\"id\":_vm.inputId,\"type\":\"radio\"},domProps:{\"checked\":_vm._q(_vm.inputValue,null)},on:{\"keypress\":[_vm.keyPressAction,function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.enterkeyPressAction.apply(null, arguments)}],\"blur\":_vm.blurAction,\"input\":function($event){return _vm.inputChangeAction(_vm.inputValue)},\"change\":[function($event){_vm.inputValue=null},_vm.change],\"keyup\":_vm.keyup,\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onClickInputAction.apply(null, arguments)},\"focus\":_vm.focus}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputValue),expression:\"inputValue\"}],staticClass:\"cust_text_field px-2 w-full bg-white rounded items-center\",class:`${_vm.inputType === 'color' ? 'h-12 py-0' : 'py-3'} ${_vm.isPointer === true ? 'cursor-pointer' : ''} ${_vm.textRight ? 'text-right pr-2' : ''} ${_vm.showError ? 'border border-error text-error' : 'border border-gray2 flex text-text1 focus:border-primary focus:ring-1 focus:ring-primary'}\n pr-${_vm.inputType === 'password' || _vm.showDate ? '8' : '0'}\n `,style:(`${_vm.isOtp ? 'letter-spacing: 8px;text-align: center;' : ''}`),attrs:{\"maxlength\":_vm.textMaxlength,\"pattern\":_vm.pattern,\"disabled\":_vm.disabled,\"placeholder\":_vm.placholderText,\"readonly\":_vm.setReadOnly,\"autofocus\":_vm.setAutoFocust,\"autocomplete\":\"off\",\"id\":_vm.inputId,\"type\":_vm.inputTypeText},domProps:{\"value\":(_vm.inputValue)},on:{\"keypress\":[_vm.keyPressAction,function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.enterkeyPressAction.apply(null, arguments)}],\"blur\":_vm.blurAction,\"input\":[function($event){if($event.target.composing)return;_vm.inputValue=$event.target.value},function($event){return _vm.inputChangeAction(_vm.inputValue)}],\"change\":_vm.change,\"keyup\":_vm.keyup,\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onClickInputAction.apply(null, arguments)},\"focus\":_vm.focus}}),(_vm.inputType === 'password')?_c('span',{staticClass:\"place-self-center absolute right-3 cursor-pointer mt-0.5\",class:_vm.lableText !== '' ? 'top-8' : 'top-3',on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();_vm.hidePassword = !_vm.hidePassword}}},[(!_vm.hidePassword)?_c('p',[_c('i',{staticClass:\"fa-solid fa-eye-slash text-gray3 heading-6\"})]):_vm._e(),(_vm.hidePassword)?_c('span',[_c('i',{staticClass:\"fa-solid fa-eye text-gray3 heading-6\"})]):_vm._e()]):_vm._e(),(_vm.showDate)?_c('span',{staticClass:\"place-self-center absolute right-3 cursor-pointer mt-0.5\",class:_vm.lableText !== '' ? 'top-8' : 'top-3',on:{\"click\":_vm.onClickInputAction}},[_c('i',{staticClass:\"fa-solid fa-calendar-days text-gray3 heading-6\"})]):_vm._e(),(_vm.showTime)?_c('span',{staticClass:\"place-self-center absolute right-3 cursor-pointer mt-0.5\",class:_vm.lableText !== '' ? 'top-8' : 'top-3',on:{\"click\":_vm.onClickInputAction}},[_c('i',{staticClass:\"fa-regular fa-clock heading-3 text-primary\"})]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n {{lableText}}\n {{inputValue.length}}/{{textMaxlength}}\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./textfield.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./textfield.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./textfield.vue?vue&type=template&id=297a9db6&scoped=true&\"\nimport script from \"./textfield.vue?vue&type=script&lang=js&\"\nexport * from \"./textfield.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 \"297a9db6\",\n null\n \n)\n\nexport default component.exports","import moment from 'moment'\nexport function getDateFormatString (data) {\n var date = moment(data).format('YYYY-MM-DD').toString()\n return date\n}\n\nexport function getTimeFormatString (data) {\n var time = moment(data).format('HH:mm').toString()\n return time\n}\n\nexport const jsCoreDateCreator = (dateString) => {\n // dateString HAS to be in this format \"YYYY-MM-DD HH:MM:SS\"\n let dateParam = dateString.split(/[\\s-:]/);\n dateParam[1] = (parseInt(dateParam[1], 10) - 1).toString();\n return new Date(...dateParam);\n};\n\nexport function getDateAndTimeUtcFormat (date, time) {\n var dateAndTime = moment.utc(moment(date).format('YY-MM-DD').toString() + ' ' + time).toString()\n return dateAndTime\n}\n\nexport function getDateAndTimeLocal (date, time) {\n return moment(moment(date).format('YY-MM-DD').toString() + ' ' + time).toString()\n}\n\nexport function getTodaysDate () {\n return moment().format('YYYY-MM-DD').toString()\n}\n\nexport function minutesToAddFromTotalTime (fromDate, fromTime, endDate, toTime) {\n let startTime = new Date(fromDate + ' ' + fromTime)\n let endTime = new Date(endDate + ' ' + toTime)\n let totalWorkingHours = startTime - endTime\n let minutesToAdd = Math.abs(totalWorkingHours / (1000 * 60 * 2))\n return [minutesToAdd, startTime, endTime]\n}\nexport function subtractOneDay (date) {\n let data = moment(date).subtract(1, 'days').format('YYYY-MM-DD').toString()\n return data\n}\n\nexport function addOneDay (date) {\n let data = moment(date).add(1, 'days').format('YYYY-MM-DD').toString()\n return data\n}\n\nexport function getDayAccordingToLimits (limit) {\n return new Promise((resolve, reject) => {\n console.log('reject', reject)\n let currentDate = new Date()\n let currentDate1 = new Date()\n let y = ''\n let m = ''\n let obj = {\n startDate: currentDate,\n endDate: currentDate1\n }\n const first = currentDate.getDate() - currentDate.getDay()\n const d = new Date()\n switch (limit) {\n case 'today':\n break\n case 'yesterday':\n obj.startDate = new Date(currentDate.setDate(currentDate.getDate() - 1))\n obj.endDate = new Date(currentDate)\n break\n case 'thisWeek':\n obj.startDate = new Date(currentDate.setDate(first))\n console.log('this.week', first)\n obj.endDate = new Date(currentDate.setDate(new Date(obj.startDate).getDate() + 6))\n break\n case 'pre7Days':\n y = currentDate.setDate(currentDate.getDate() - 6)\n obj.startDate = new Date(currentDate.setDate(first))\n break\n case '4Days':\n obj.startDate = new Date(currentDate.setDate(first))\n console.log('this.week', first)\n obj.endDate = new Date(currentDate.setDate(new Date(obj.startDate).getDate() + 3))\n break\n case 'lastWeek':\n obj.endDate = new Date(d.setTime(d.getTime() - (d.getDay() ? d.getDay() : 7) * 24 * 60 * 60 * 1000))\n obj.startDate = new Date(d.setTime(d.getTime() - 6 * 24 * 60 * 60 * 1000))\n break\n case 'thisMonth':\n y = currentDate.getFullYear()\n m = currentDate.getMonth()\n obj.startDate = new Date(y, m, 1)\n obj.endDate = new Date(y, m + 1, 0)\n break\n case 'lastMonth':\n y = currentDate.getFullYear()\n m = currentDate.getMonth()\n obj.startDate = new Date(y, (m - 1), 1)\n obj.endDate = new Date(y, m, 0)\n break\n case 'next30Days':\n y = currentDate1.setDate(currentDate.getDate() + 29)\n obj.endDate = new Date(y)\n break\n case 'next60Days':\n y = currentDate1.setDate(currentDate.getDate() + 59)\n obj.endDate = new Date(y)\n break\n case '15Days':\n y = currentDate.setDate(currentDate.getDate() - 14)\n obj.startDate = new Date(y)\n break\n case 'last60Days':\n y = currentDate.setDate(currentDate.getDate() - 59)\n obj.startDate = new Date(y)\n break\n case 'last30Days':\n y = currentDate.setDate(currentDate.getDate() - 29)\n obj.startDate = new Date(y)\n break\n case 'last90Days':\n y = currentDate.setDate(currentDate.getDate() - 89)\n obj.startDate = new Date(y)\n break\n case 'last120Days':\n y = currentDate.setDate(currentDate.getDate() - 119)\n obj.startDate = new Date(y)\n break\n case 'last180Days':\n y = currentDate.setDate(currentDate.getDate() - 179)\n obj.startDate = new Date(y)\n break\n }\n obj.startDate = new Date(obj.startDate.setHours(0, 0, 0, 0)).toUTCString()\n obj.endDate = new Date(obj.endDate.setHours(23, 59, 59, 999)).toUTCString()\n resolve(obj)\n })\n}\nexport function getDisplayText (startDate, endDate) {\n if (startDate !== '' && endDate !== '') {\n let temp = ''\n const sfDate = moment(new Date(startDate)).format('YYYY-MM-DD');\n const eDate = moment(new Date(endDate)).format('YYYY-MM-DD');\n if (sfDate === eDate) {\n temp = getStringDate(startDate, 'MMM D');\n temp += ` ${moment(new Date(startDate)).format(\n 'hh:mm a',\n )} - ${moment(new Date(endDate)).format('hh:mm a')}`;\n } else {\n temp = `${getStringDate(startDate, 'MMM D')} ${moment(\n new Date(startDate),\n ).format('hh:mm a')} - ${getStringDate(\n endDate,\n 'MMM D',\n )} ${moment(new Date(endDate)).format('hh:mm a')}`;\n }\n return temp\n } else {\n let temp = ''\n const sfDate = moment(new Date(startDate)).format('YYYY-MM-DD');\n if (sfDate) {\n temp = getStringDate(startDate, 'MMM D');\n temp += ` ${moment(new Date(startDate)).format(\n 'hh:mm a',\n )}`;\n }\n return temp\n }\n}\nfunction getStringDate(date, format) {\n if (date !== '') {\n // if (date.indexOf('T') > 0 && date.indexOf('Z') < 0) {\n // date += 'Z';\n // }\n const requestDt = new Date(date);\n const todayDate = new Date().setHours(0, 0, 0);\n if (\n moment(todayDate).format('YYYY/MM/DD') ===\n moment(requestDt).format('YYYY/MM/DD')\n ) {\n return 'Today';\n }\n if (todayDate > requestDt) {\n const diffTime = Math.abs(todayDate - requestDt);\n\n const diffDays = Math.ceil(\n parseFloat((diffTime / (1000 * 3600 * 24)).toFixed(2)),\n )\n if (diffDays === 1) {\n return 'Yest';\n }\n }\n if (todayDate < requestDt) {\n const diffTime = Math.abs(requestDt - todayDate);\n const diffDays = Math.ceil(diffTime / (1000 * 3600 * 24));\n\n if (diffDays === 1) {\n return 'Tom';\n }\n }\n return moment(requestDt).format(format || 'ddd, D MMM');\n }\n return '';\n}\n\nexport function getDayAccordingToLimitsDate (limit) {\n return new Promise((resolve, reject) => {\n console.log('reject', reject)\n let currentDate = new Date()\n let currentDate1 = new Date()\n let y = ''\n let m = ''\n let obj = {\n startDate: currentDate,\n endDate: currentDate1\n }\n const d = new Date()\n const first = currentDate.getDate() - currentDate.getDay()\n switch (limit) {\n case 'today':\n break\n case 'yesterday':\n obj.startDate = new Date(currentDate.setDate(currentDate.getDate() - 1))\n obj.endDate = new Date(currentDate)\n break\n case 'thisWeek':\n // let first = currentDate.getDate() - currentDate.getDay()\n obj.startDate = new Date(currentDate.setDate(first))\n console.log('this.week', first)\n obj.endDate = new Date(currentDate.setDate(new Date(obj.startDate).getDate() + 6))\n break\n case 'pre7Days':\n y = currentDate.setDate(currentDate.getDate() - 6)\n obj.startDate = new Date(y)\n break\n case '4Days':\n obj.startDate = new Date(currentDate.setDate(first))\n console.log('this.week', first)\n obj.endDate = new Date(currentDate.setDate(new Date(obj.startDate).getDate() + 3))\n break\n case 'lastWeek':\n obj.endDate = new Date(d.setTime(d.getTime() - (d.getDay() ? d.getDay() : 7) * 24 * 60 * 60 * 1000))\n obj.startDate = new Date(d.setTime(d.getTime() - 6 * 24 * 60 * 60 * 1000))\n break\n case 'thisMonth':\n y = currentDate.getFullYear()\n m = currentDate.getMonth()\n obj.startDate = new Date(y, m, 1)\n obj.endDate = new Date(y, m + 1, 0)\n break\n case 'lastMonth':\n y = currentDate.getFullYear()\n m = currentDate.getMonth()\n obj.startDate = new Date(y, (m - 1), 1)\n obj.endDate = new Date(y, m, 0)\n break\n case 'next30Days':\n y = currentDate1.setDate(currentDate.getDate() + 30)\n obj.endDate = new Date(y)\n break\n case 'next60Days':\n y = currentDate1.setDate(currentDate.getDate() + 59)\n obj.endDate = new Date(y)\n break\n case '15Days':\n y = currentDate.setDate(currentDate.getDate() - 14)\n obj.startDate = new Date(y)\n break\n case 'last60Days':\n y = currentDate.setDate(currentDate.getDate() - 59)\n obj.startDate = new Date(y)\n break\n case 'last30Days':\n y = currentDate.setDate(currentDate.getDate() - 29)\n obj.startDate = new Date(y)\n break\n case 'last90Days':\n y = currentDate.setDate(currentDate.getDate() - 89)\n obj.startDate = new Date(y)\n break\n case 'last120Days':\n y = currentDate.setDate(currentDate.getDate() - 119)\n obj.startDate = new Date(y)\n break\n case 'last180Days':\n y = currentDate.setDate(currentDate.getDate() - 179)\n obj.startDate = new Date(y)\n break\n }\n obj.startDate = moment(new Date(obj.startDate.setHours(0, 0, 0, 0))).format('YYYY-MM-DD')\n obj.endDate = moment(new Date(obj.endDate.setHours(23, 59, 59, 999))).format('YYYY-MM-DD')\n resolve(obj)\n })\n}\n"],"sourceRoot":""}
#{{data.jobNumber}}
{{data.jobTitle}}
{{data.companyName}}
Job #{{marker.mainId}}
Request #{{marker.mainId}}
Task #{{marker.mainId}}
\n {{marker.start | filterForLocationTime}}\n -{{marker.end | leaveTimeFilterForActivity}}\n \n {{marker.title}}\n Request for {{marker.customerName}}\n \n
\n Title: \n {{marker.title}}
\n Customer: \n {{marker.customerName}}
\n \n Schedule: \n {{marker.start | filterForLocationTime}}\n \n -{{marker.end | leaveTimeFilterForActivity}}\n {{marker.title}}\n
\n Address: \n {{marker.addressLine1 !== '' ? marker.addressLine1 : '' }}\n {{marker.city !== undefined ? ', '+ marker.city : '' }}\n {{marker.state !== undefined ? ', '+ marker.state : '' }}\n {{marker.zip !== undefined ? ', '+ marker.zip : '' }}\n
\n Assign to:\n {{marker.assignToList}}
0\" >\n Visit id:\n {{marker.visitId}}
0\" >\n Total Visit:\n {{marker.totalJobVisit}}
\n Summary: \n {{marker.summary}}
{{markerA.firstName}} {{markerA.lastName}}
\n {{markerA.addedDate | filterForLocationTime}}\n
\n {{lableText}}\n {{inputValue.length}}/{{textMaxlength}}\n
\n \n