{"version":3,"sources":["webpack:///common.aefe7b57a1b99d0e18f7.bundle.js","webpack:///webpack/bootstrap 7b5fcd30b7bdd3d08995","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/bluebird/js/browser/bluebird.js?e709","webpack:///./node_modules/jquery/dist/jquery.js?82e1","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/toastr/toastr.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/bn-bd.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/en-in.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/en-sg.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/es-mx.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/fil.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/moment/locale/gom-deva.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/oc-lnc.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/se.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/moment/locale/tk.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/moment/locale/zh-mo.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/numeral/numeral.js","webpack:///./node_modules/fullcalendar/dist/fullcalendar.js","webpack:///./node_modules/bluebird/js/browser/bluebird.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/jquery/dist/jquery.js?70f7","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/moment/locale ^\\.\\/.*$"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","parentJsonpFunction","window","chunkIds","moreModules","executeModules","chunkId","result","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","shift","s","3","e","onScriptComplete","script","onerror","onload","clearTimeout","timeout","chunk","Error","undefined","installedChunkData","Promise","resolve","promise","reject","head","document","getElementsByTagName","createElement","type","charset","async","nc","setAttribute","src","p","setTimeout","appendChild","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error","global","factory","this","hooks","hookCallback","apply","arguments","isArray","input","Array","toString","isObject","hasOwnProp","a","b","isObjectEmpty","obj","getOwnPropertyNames","k","isUndefined","isNumber","isDate","Date","map","arr","fn","res","arrLen","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","_isValid","flags","parsedParts","some","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","copyConfig","to","from","prop","val","momentPropertiesLen","momentProperties","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateInProgress","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","arg","key","args","argLen","slice","join","stack","deprecateSimple","deprecations","isFunction","Function","set","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","source","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","calendar","mom","now","output","_calendar","zeroFill","number","targetLength","forceSign","absNumber","Math","abs","zerosToFill","pow","max","substr","addFormatToken","token","padded","ordinal","callback","func","formatTokenFunctions","localeData","removeFormattingTokens","match","replace","makeFormatFunction","array","formattingTokens","formatMoment","expandFormat","formatFunctions","invalidDate","replaceLongDateFormatTokens","longDateFormat","localFormattingTokens","lastIndex","test","_longDateFormat","formatUpper","toUpperCase","tok","_invalidDate","_ordinal","relativeTime","withoutSuffix","string","isFuture","_relativeTime","pastFuture","diff","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","addUnitPriority","priority","priorities","getPrioritizedUnits","unitsObj","u","sort","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","value","isFinite","makeGetSet","keepTime","set$1","month","date","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","addRegexToken","regex","strictRegex","regexes","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","addParseToken","tokenLen","tokens","addWeekParseToken","_w","addTimeToArrayFromToken","_a","mod","x","modMonth","localeMonths","_months","isFormat","MONTHS_IN_FORMAT","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","monthsShort","months","indexOf","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","monthsParse","min","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","defaultMonthsShortRegex","monthsRegex","_monthsStrictRegex","_monthsRegex","defaultMonthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","getIsLeapYear","createDate","y","h","M","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","localWeekday","weekOffset","dayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","add","getSetISOWeek","parseWeekday","weekdaysParse","parseInt","parseIsoWeekday","shiftWeekdays","ws","concat","localeWeekdays","weekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","weekdaysMin","weekdaysShort","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","defaultWeekdaysRegex","weekdaysShortRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","defaultWeekdaysShortRegex","weekdaysMinRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","defaultWeekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","charAt","localeMeridiem","isLower","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","next","split","loadLocale","globalLocale","isLocaleNameSane","oldLocale","locales","_abbr","require","getSetGlobalLocale","values","data","getLocale","defineLocale","baseConfig","abbr","parentLocale","localeFamilies","forEach","updateLocale","tmpLocale","listLocales","keys","checkOverflow","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","_overflowWeeks","WEEK","_overflowWeekday","WEEKDAY","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","extendedIsoRegex","exec","basicIsoRegex","isoDatesLen","isoDates","isoTimesLen","isoTimes","tzRegex","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","defaultLocaleMonthsShort","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","defaultLocaleWeekdaysShort","calculateOffset","obsOffset","militaryOffset","numOffset","obsOffsets","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","aspNetJsonRegex","createFromInputFallback","defaults","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","w","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","_meridiem","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","pickBy","moments","isDurationValid","unitHasDecimal","orderLen","ordering","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","seconds","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","compareArrays","array1","array2","dontConvert","len","lengthDiff","diffs","offset","separator","utcOffset","sign","offsetFromString","matcher","parts","matches","chunkOffset","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","matchShortOffset","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","matchOffset","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","other","toArray","isLocal","isUtcOffset","isUtc","ret","diffRes","aspNetRegex","isoRegex","parseIso","momentsDifference","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","dur","tmp","isAdding","isString","String","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","properties","propertyLen","arrayTest","dataTypeTest","filter","item","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","toISOString","keepOffset","toDate","inspect","prefix","datetime","suffix","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","mod$1","dividend","divisor","localStartOfDate","MS_PER_400_YEARS","utcStartOfDate","startOfDate","isoWeekday","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_SECOND","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","Infinity","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","matchUnsigned","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfYear","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","clone$1","get$2","makeGetter","substituteTimeAgo","relativeTime$1","posNegDuration","thresholds","ss","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","assign","toISOString$1","totalSign","ymSign","daysSign","hmsSign","abs$1","total","asSeconds","toFixed","fun","t","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","defaultDayOfMonthOrdinalParse","defaultRelativeTime","future","past","mm","hh","dd","ww","MM","yy","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchSigned","matchTimestamp","matchWord","defaultLocaleMonths","parseTwoDigitYear","getSetYear","defaultLocaleWeek","defaultLocaleWeekdays","defaultLocaleWeekdaysMin","kInput","_isPm","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","dayOfMonthOrdinalParse","meridiemParse","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","prototypeMin","prototypeMax","invalid","lang","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetMinute","getSetSecond","getSetMillisecond","proto","Symbol","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","firstDayOfYear","firstDayOfWeek","langData","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","g","eval","defaultSetTimout","defaultClearTimeout","runTimeout","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","run","Item","noop","process","nextTick","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","define","$","message","optionsOverride","notify","toastType","iconClass","getOptions","iconClasses","getContainer","options","create","$container","containerId","createContainer","info","subscribe","listener","success","warning","clear","$toastElement","clearOptions","clearToast","clearContainer","remove","removeToast","children","toastsToClear","force","hideMethod","hideDuration","easing","hideEasing","complete","attr","addClass","positionClass","appendTo","target","getDefaults","tapToDismiss","toastClass","debug","showMethod","showDuration","showEasing","onShown","onHidden","closeMethod","closeDuration","closeEasing","closeOnHover","extendedTimeOut","timeOut","titleClass","messageClass","escapeHtml","closeHtml","closeClass","newestOnTop","preventDuplicates","progressBar","progressClass","rtl","publish","setAria","ariaValue","setIcon","setSequence","prepend","append","setTitle","$titleElement","setMessage","$messageElement","setCloseButton","closeButton","$closeElement","setProgressBar","$progressElement","setRTL","hideToast","override","method","intervalId","response","state","endTime","delayedHideToast","maxHideTime","hideEta","stickAround","stop","updateProgress","percentage","width","previousToast","toastId","startTime","hide","setInterval","hover","onclick","click","event","stopPropagation","cancelBubble","onCloseClick","log","toastr","is","moment","symbolMap","1","2","4","5","6","7","8","9","0","numberMap","pluralForm","plurals","pluralize","f","str","weekdaysParseExact","suffixes","70","80","20","50","100","10","30","60","90","plural","word","num","forms","relativeTimeWithPlural","standalone","lastDigit","last2Digits","monthsParseExact","relativeTimeWithMutation","mutation","specialMutationForYears","lastNumber","text","softMutation","mutationTable","substring","monthsStrictRegex","monthsShortStrictRegex","fullWeekdaysParse","shortWeekdaysParse","minWeekdaysParse","longMonthsParse","shortMonthsParse","translate","ll","lll","llll","lookup","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","verbalNumber","numbersFuture","numbersPast","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eraYearOrdinalRegex","$0","$1","$2","40","isUpper","processFutureTime","eifelerRegelAppliesToNumber","processPastTime","firstDigit","translateSeconds","translateSingular","special","relativeTimeWithSingular","relativeSeconds","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","12","13","translateFuture","translatePast","numberNoun","numberAsNoun","hundred","ten","one","numbersNouns","weekdaysCaseReplace","nounCase","nominative","accusative","genitive","processHoursFunction","Numeral","_input","_value","numeral","_","currentLocale","zeroFormat","nullFormat","scalePercentBy100","kind","unformatFunction","regexp","isNumeral","regexps","unformat","stringToNumber","Number","numberToFormat","abbrForce","int","precision","signed","thousands","negP","optDec","leadingCount","decimal","neg","includes","abbreviations","trillion","billion","million","thousand","delimiters","abbreviation","stringOriginal","currency","symbol","search","insert","subString","start","reduce","TypeError","multiplier","correctionFactor","accum","mn","maxDecimals","optionals","boundedPrecision","optionalsRegExp","power","splitValue","minDecimals","reset","register","validate","culture","_decimalSep","_thousandSep","_currSymbol","_valArray","_abbrObj","_thousandRegEx","trim","formatFunction","cback","curr","currI","O","corrFactor","multiply","divide","difference","space","splice","binary","allSuffixes","unformatRegex","bytes","bytesMultiplier","symbols","before","after","exponential","toExponential","timeArray","root","self","__WEBPACK_EXTERNAL_MODULE_0__","__WEBPACK_EXTERNAL_MODULE_3__","extendStatics","setPrototypeOf","__proto__","__extends","__","constructor","compensateScroll","rowEls","scrollbarWidths","left","css","right","uncompensateScroll","disableCursor","enableCursor","removeClass","distributeHeight","els","availableHeight","shouldRedistribute","minOffset1","minOffset2","flexEls","flexOffsets","flexHeights","usedHeight","undistributeHeight","each","el","minOffset","naturalOffset","outerHeight","height","naturalHeight","newHeight","matchCellWidths","maxInnerWidth","find","innerEl","innerWidth","outerWidth","subtractInnerElHeight","outerEl","both","position","getScrollParent","scrollParent","parents","parent","eq","ownerDocument","getOuterRect","origin","top","bottom","getClientRect","getScrollbarWidths","getCssFloat","clientWidth","clientHeight","getContentRect","widths","leftRightWidth","offsetWidth","bottomWidth","offsetHeight","sanitizeScrollbarWidth","getIsLeftRtlScrollbars","_isLeftRtlScrollbars","computeIsLeftRtlScrollbars","border","padding","isPrimaryMouseButton","ev","which","ctrlKey","getEvX","touches","originalEvent","pageX","getEvY","pageY","getEvIsTouch","preventSelection","preventDefault","allowSelection","intersectRects","rect1","rect2","constrainPoint","point","rect","getRectCenter","diffPoints","point1","point2","parseFieldSpecs","specs","order","compareByFieldSpecs","obj1","obj2","fieldSpecs","obj1fallback","obj2fallback","cmp","compareByFieldSpec","fieldSpec","val1","val2","flexibleCompare","localeCompare","diffDayTime","stripTime","diffDay","diffByUnit","computeGreatestUnit","end","unitsDesc","computeRangeAs","isInt","computeDurationGreatestUnit","durationInput","divideRangeByDuration","durationHasTime","divideDurationByDuration","dur1","dur2","months1","months2","multiplyDuration","Boolean","isNativeDate","isTimeString","mergeProps","propObjs","complexProps","complexObjs","props","dest","unshift","copyOwnProps","name_1","hasOwnPropMethod","applyAll","functions","thisObj","removeMatching","testFunc","removeCnt","removeExact","exactVal","isArraysEqual","a0","a1","firstDefined","htmlEscape","stripHtmlEntities","cssToStr","cssProps","statements","attrsToStr","attrs","capitaliseFirstLetter","compareNumbers","proxy","methodName","debounce","wait","immediate","context","timestamp","later","last","callNow","dayIDs","compareUnzonedRanges","range1","range2","startMs","moment_ext_1","UnzonedRange","startInput","endInput","isStart","isEnd","stripZone","endMs","invertRanges","ranges","constraintRange","dateRange","invertedRanges","intersect","otherRange","newRange","intersectsWith","containsRange","innerRange","containsDate","constrainDate","equals","range","getStart","default","getEnd","tslib_1","ParsableModelMixin_1","Class_1","EventDefParser_1","EventSource","_super","_this","className","uid","uuid","parse","rawInput","applyProps","normalizeId","id","fetch","timezone","removeEventDefsById","eventDefId","removeAllEventDefs","getPrimitive","otherSource","parseEventDefs","rawEventDefs","eventDef","eventDefs","parseEventDef","calendarTransform","opt","sourceTransform","eventDataTransform","applyManualStandardProps","rawProps","defineStandardProps","copyVerbatimStandardProps","mixInto","color","backgroundColor","borderColor","textColor","editable","startEditable","durationEditable","rendering","overlap","constraint","allDayDefault","Mixin_1","guid","ListenerMixin","listenTo","eventName","getListenerNamespace","stopListeningTo","listenerId","oldMomentFormat","formatStr","oldMomentProto","makeMoment","parseAsUTC","isAmbigTime","isAmbigZone","ambigMatch","isSingleString","util_1","ambigDateOfMonthRegex","ambigTimeOrZoneRegex","_ambigTime","_ambigZone","_fullCalendar","newMomentProto","momentExt","hasTime","weekCalc","_fullCalendar_weekCalc","dayHours","wasAmbigTime","hasZone","tzo","EmitterMixin","types","handler","_prepareIntercept","intercept","extra","trigger","triggerHandler","triggerWith","hasHandlers","hash","ComponentFootprint","unzonedRange","isAllDay","toLegacy","msToMoment","EventDef_1","EventInstance_1","EventDateProfile_1","SingleEventDef","buildInstances","buildInstance","dateProfile","def","rezone","superSuccess","miscProps","allDay","Mixin","destClass","mixOver","Interaction","component","view","_getView","internalApiVersion","date_formatting_1","formatDate","formatRange","queryMostGranularFormatUnit","locale_1","datepickerLocale","EmitterMixin_1","ListenerMixin_1","Model_1","Model","Constraints_1","Constraints","UnzonedRange_1","ComponentFootprint_1","BusinessHourGenerator_1","BusinessHourGenerator","EventDef","EventDefMutation_1","EventDefMutation","EventSourceParser_1","EventSourceParser","EventSource_1","ThemeRegistry_1","defineThemeSystem","EventInstanceGroup_1","EventInstanceGroup","ArrayEventSource_1","ArrayEventSource","FuncEventSource_1","FuncEventSource","JsonFeedEventSource_1","JsonFeedEventSource","EventFootprint_1","EventFootprint","Class","CoordCache_1","CoordCache","DragListener_1","DragListener","Promise_1","TaskQueue_1","TaskQueue","RenderQueue_1","RenderQueue","Scroller_1","Scroller","Theme_1","Theme","DateComponent_1","DateComponent","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","StandardInteractionsMixin_1","StandardInteractionsMixin","AgendaView_1","AgendaView","TimeGrid_1","TimeGrid","DayGrid_1","DayGrid","BasicView_1","BasicView","MonthView_1","MonthView","ListView_1","ListView","EventDateProfile","buildUnzonedRange","forcedAllDay","forceEventDuration","getDefaultEventEnd","isStandardProp","propName","EventRange_1","eventInstances","getAllEventRanges","sliceNormalRenderRanges","eventInstanceToEventRange","sliceRenderRanges","isInverse","sliceInverseRenderRanges","eventInstance","slicedRange","slicedEventRanges","unzonedRanges","eventInstanceToUnzonedRange","ownerDef","getEventDef","hasInverseRendering","explicitEventDef","optionsManager","processIconOverride","iconOverrideOption","setIconOverride","iconOverrideHash","iconClassesCopy","buttonName","isPlainObject","applyIconOverridePrefix","iconOverridePrefix","getClass","classes","getIconClass","baseIconClass","getCustomButtonIconClass","customButtonProps","iconOverrideCustomButtonOption","attachImmediatelyResolvingThen","then","onResolve","PromiseStub","attachImmediatelyRejectingThen","onReject","construct","executor","deferred","Deferred","exportHooks","touchMouseIgnoreWait","globalEmitter","neededCount","GlobalEmitter","isTouching","mouseIgnoreDepth","bind","needed","unneeded","unbind","touchstart","handleTouchStart","touchcancel","handleTouchCancel","touchend","handleTouchEnd","mousedown","handleMouseDown","mousemove","handleMouseMove","mouseup","handleMouseUp","handleClick","selectstart","handleSelectStart","contextmenu","handleContextMenu","addEventListener","handleTouchMoveProxy","handleTouchMove","Event","passive","handleScrollProxy","handleScroll","removeEventListener","stopTouch","shouldIgnoreMouse","skipMouseIgnore","startTouchMouseIgnore","viewName","viewConfig","viewHash","views","isHitsEqual","hit0","hit1","isHitPropsWithin","subHit","superHit","HitDragListener","handleInteractionStart","subjectRect","origPoint","subjectEl","hitsNeeded","computeScrollBounds","origHit","queryHit","subjectCenter","coordAdjust","handleDragStart","hit","handleHitOver","handleDrag","dx","dy","handleHitOut","handleDragEnd","handleHitDone","isOrig","handleInteractionEnd","isCancelled","hitsNotNeeded","handleScrollEnd","isDragging","releaseHits","prepareHits","populateInstanceComputableOptions","instanceComputableOptions","localeCode","dpLocaleCode","dpOptions","fcOptions","localeOptionHash","isRTL","weekNumberTitle","weekHeader","dpComputableOptions","jqDatePicker","datepicker","regional","en","setDefaults","newFcOptions","momOptions","options_1","mergeOptions","getMomentLocaleData","momComputableOptions","globalDefaults","buttonText","prev","prevText","nextText","today","currentText","monthYearFormat","showMonthAfterYear","yearSuffix","dayOfMonthFormat","mediumTimeFormat","smallTimeFormat","extraSmallTimeFormat","hourFormat","noMeridiemTimeFormat","smallDayDateFormat","weekFormat","smallWeekFormat","englishDefaults","optionObjs","complexOptions","titleRangeSeparator","defaultTimedEventDuration","defaultAllDayEventDuration","nextDayThreshold","columnHeader","defaultView","aspectRatio","header","center","weekends","weekNumbers","weekNumberCalculation","scrollTime","minTime","maxTime","showNonCurrentDates","lazyFetching","startParam","endParam","timezoneParam","prevYear","nextYear","allDayText","agendaEventMinHeight","theme","dragOpacity","dragRevertDuration","dragScroll","unselectAuto","dropAccept","eventOrder","eventLimit","eventLimitText","eventLimitClick","dayPopoverFormat","handleWindowResize","windowResizeDelay","longPressDelay","rtlDefaults","buttonIcons","themeButtonIcons","members","SubClass","mixin","generateId","copy","rawId","getRendering","hasBgRendering","getConstraint","getOverlap","isStartExplicitlyEditable","isDurationExplicitlyEditable","isExplicitlyEditable","_id","applyMiscProps","url","eventDefsToEventInstances","eventRangeToEventFootprint","eventRange","eventFootprintToComponentFootprint","eventFootprint","componentFootprint","getEventLegacy","EventDefDateMutation_1","SingleEventDef_1","createFromRawProps","largeUnit","dateMutation","defMutation","dateProps","standardProps","verbatimStandardProps","createFromDiff","mutateSingle","origDateProfile","buildNewDateProfile","setDateMutation","isEmpty","sourceClasses","registerClass","EventSourceClass","eventSource","overflowX","overflowY","render","renderEl","applyOverflow","scrollEl","setHeight","destroy","lockOverflow","scrollWidth","scrollHeight","getScrollTop","scrollTop","setScrollTop","getClientWidth","getClientHeight","GlobalEmitter_1","_view","_options","segSelector","dateSelectingClass","dateClicking","dateClickingClass","dateSelecting","eventPointingClass","eventPointing","eventDraggingClass","eventDragging","eventResizingClass","eventResizing","externalDroppingClass","externalDropping","setElement","bindToEl","bindAllSegHandlersToEl","removeElement","endInteractions","executeEventUnrender","bindGlobalHandlers","bindToDocument","unbindGlobalHandlers","unbindFromDocument","bindDateHandlerToEl","eventInteraction","bindSegHandlerToEl","segEl","currentTarget","seg","shouldIgnoreEventPointing","shouldIgnoreTouch","isSelected","selectedEvent","isResizing","canStartSelection","canStartResize","isEventDefDraggable","footprint","isEventDefResizable","canStartDrag","isEventDefSelected","interaction","isEventDefStartEditable","isEditable","isEventDefGenerallyEditable","isEventDefResizableFromStart","isEventDefResizableFromEnd","isResizable","diffDates","isEventInstanceGroupAllowed","eventInstanceGroup","eventFootprints","eventRangesToEventFootprints","validUnzonedRange","constraints","isExternalInstanceGroupAllowed","isSelectionFootprintAllowed","DateProfileGenerator_1","viewSpec","batchRenderDepth","initRenderQueue","initHiddenDays","dateProfileGenerator","dateProfileGeneratorClass","bindBaseRenderHandlers","eventOrderSpecs","renderQueue","onRenderQueueStart","onRenderQueueStop","startBatchRender","stopBatchRender","freezeContentHeight","addScroll","queryScroll","updateViewSize","popScroll","thawContentHeight","pause","resume","requestRender","namespace","actionType","whenSizeUpdated","isRunning","computeTitle","currentRangeUnit","currentUnzonedRange","activeUnzonedRange","isRangeAllDay","computeTitleFormat","setDate","currentDateProfile","newDateProfile","build","unsetDate","unset","fetchInitialEvents","forceAllDay","usesMinMaxTime","requestEvents","bindEventChanges","resetEvents","unbindEventChanges","setEvents","eventsPayload","unsetEvents","requestDateRender","executeDateRender","requestDateUnrender","executeDateUnrender","isDateInit","startNowIndicator","unselect","stopNowIndicator","triggerViewRender","triggerViewDestroy","publiclyTrigger","requestEventsRender","executeEventRender","triggerAfterEventsRendered","requestEventsUnrender","triggerBeforeEventsDestroyed","requestBusinessHoursRender","businessHourGenerator","renderBusinessHours","requestBusinessHoursUnrender","unrenderBusinessHours","processUnselect","handleDocumentMousedown","update","delay","getNowIndicatorUnit","initialNowDate","getNow","initialNowQueriedMs","nowIndicatorTimeoutID","nowIndicatorIntervalID","updateNowIndicator","isDatesRendered","unrenderNowIndicator","renderNowIndicator","isNowIndicatorRendered","clearInterval","updateSize","totalHeight","isAuto","isResize","scroll","queuedScroll","applyQueuedScroll","applyScroll","queryDateScroll","computeInitialDateScroll","applyDateScroll","reportEventDrop","eventMutation","eventManager","undoFunc","mutateEventsWithId","triggerEventDrop","dateDelta","reportExternalDrop","singleEventDef","isEvent","isSticky","ui","addEventDef","triggerExternalDrop","reportEventResize","triggerEventResize","endDelta","durationDelta","select","renderSelectionFootprint","reportSelection","triggerSelect","footprintToDateProfile","unrenderSelection","selectEventInstance","selectedEventInstance","unselectEventInstance","getEventSegs","processRangeUnselect","processEventUnselect","ignore","closest","triggerBaseRendered","triggerBaseUnrendered","triggerDayClick","dayEl","isDateInOtherMonth","getUnzonedRangeOption","parseUnzonedRange","hiddenDays","isHiddenDayHash","dayCnt","inArray","trimHiddenDays","inputUnzonedRange","skipHiddenDays","isHiddenDay","inc","isExclusive","watch","deps","initialEvents","intervalStart","intervalEnd","fillRenderer","rangeUpdated","displayEventTime","displayEventEnd","eventTimeFormat","computeEventTimeFormat","computeDisplayEventTime","computeDisplayEventEnd","instanceGroup","eventRanges","_getDateProfile","bgRanges","fgRanges","renderBgRanges","renderFgRanges","unrender","unrenderBgRanges","unrenderFgRanges","segs","eventFootprintsToSegs","renderFgSegEls","renderFgSegs","fgSegs","unrenderFgSegs","renderBgSegs","bgSegs","unrenderBgSegs","getSegs","renderSegs","getClasses","getBgClasses","getCss","getBgColor","filterEl","filterEventRenderEl","disableResizing","hasEventRenderHandlers","hasPublicHandlers","html","renderedSegs","beforeFgSegHtml","fgSegHtml","node","getSegClasses","isDraggable","legacy","custom","getTimeText","displayEnd","_getTimeText","classNames","objs","getStylingObjs","eventClassName","getSkinCss","getBorderColor","getTextColor","eventBackgroundColor","eventColor","eventBorderColor","eventTextColor","getFallbackStylingObjs","sortEventSegs","compareEventSegs","seg1","seg2","f1","f2","cf1","cf2","r1","r2","englishMoment","renderFakeFormatString","getParsedFormatString","fakeFormatString","date1","date2","renderParsedFormat","parsedFormat","leftI","rightI","middleI","sameUnits","unzonedDate1","unzonedDate2","renderedParts1","renderFakeFormatStringParts","renderedParts2","leftStr","rightStr","middleStr1","middleStr2","middleStr","processMaybeMarkers","parsedFormatStrCache","parseFormatString","chunks","chunkFormatString","buildFakeFormatString","buildSameUnits","chunker","splitStringLiteral","maybe","specialTokens","SPECIAL_TOKEN_MARKER","MAYBE_MARKER","PART_SEPARATOR","tokenInfo","largeTokenMap","fakePart","fakeRender","fakeParts","MAYBE_REGEXP","m0","m1","candidate","best","T","Y","D","_watchers","_props","applyGlobalWatchers","constructed","_globalWatchArgs","has","newProps","setProps","oldProps","changeset","changedProps","changedCnt","depList","startFunc","stopFunc","unwatch","_watchDeps","watcher","teardown","queuedChangeCnt","depCnt","satisfyCnt","bindTuples","isCallingStop","onBeforeDepChange","depName","isOptional","onDepChange","flash","RecurringEventDef_1","eventInput","EventDefDateMutation","clearEnd","forceTimed","dateProfile0","dateProfile1","subtractDates","date0","endDiff","setDateDelta","setEndDelta","eventDateProfile","shouldRezone","startDelta","applyTimezone","setStartDelta","themeName","themeClass","themeClassHash","getThemeSystemClass","themeSetting","JqueryUiTheme_1","StandardTheme_1","events","setRawEventDefs","currentTimezone","isHorizontal","isVertical","forcedOffsetParentEl","offsetParent","offsetParentEl","boundingRect","queryBoundingRect","buildElHorizontals","buildElVerticals","lefts","rights","tops","bottoms","ensureBuilt","getHorizontalIndex","leftOffset","getVerticalIndex","topOffset","getLeftOffset","leftIndex","getLeftPosition","getRightOffset","getRightPosition","getWidth","getTopOffset","topIndex","getTopPosition","getBottomOffset","getBottomPosition","getHeight","scrollParentEl","isPointInBounds","isLeftInBounds","isTopInBounds","isInteracting","isDistanceSurpassed","isDelayEnded","isTouch","isGeneric","shouldCancelTouchScroll","scrollAlwaysKills","isAutoScroll","scrollSensitivity","scrollSpeed","scrollIntervalMs","startInteraction","extraOptions","minDistance","distance","originX","originY","bindHandlers","initAutoScroll","startDelay","handleDistanceSurpassed","endInteraction","endDrag","delayTimeoutId","destroyAutoScroll","unbindHandlers","drag","handleMove","dragstop","touchmove","handleTouchScroll","startDrag","updateAutoScroll","initialEv","handleDelayEnd","handleDebouncedScroll","endAutoScroll","scrollBounds","topCloseness","bottomCloseness","leftCloseness","rightCloseness","sensitivity","bounds","topVel","leftVel","setScrollVel","scrollTopVel","scrollLeftVel","constrainScrollVel","scrollIntervalId","scrollLeft","scrollIntervalFunc","frac","updateDayTable","daysPerRow","firstDay","rowCnt","msToUtcMoment","renderUnzonedRange","dayIndex","dayIndices","dayDates","breakOnWeeks","updateDayTableCols","colCnt","computeColCnt","colHeadFormat","computeColHeadFormat","getCellDate","row","col","getCellDayIndex","getCellRange","getColDayIndex","getDateDayIndex","dayOffset","sliceRangeByRow","rowFirst","rowLast","segFirst","segLast","normalRange","computeDayRange","rangeFirst","rangeLast","firstRowDayIndex","lastRowDayIndex","sliceRangeByDay","renderHeadHtml","renderHeadTrHtml","renderHeadIntroHtml","renderIntroHtml","renderHeadDateCellsHtml","htmls","renderHeadDateCellHtml","colspan","otherAttrs","innerHtml","isDateValid","getDayClasses","buildGotoAnchorHtml","forceOff","renderBgTrHtml","renderBgIntroHtml","renderBgCellsHtml","renderBgCellHtml","bookendCells","trEl","introHtml","buildEventInstanceGroup","hasAllDayBusinessHours","renderEventFootprints","fillSegTag","elsByFill","renderFootprint","componentFootprintToSegs","buildSegEls","attachSegEls","reportEls","buildSegHtml","nodes","eventRenderer","renderComponentFootprint","fabricateEventFootprint","renderEventDraggingFootprints","sourceSeg","renderEventResizingFootprints","extraClassNames","opacity","helperEls","dummyInstance","dummyEvent","Interaction_1","handleMouseover","handleMouseout","mousedOverSeg","DateClicking_1","Popover_1","DayGridEventRenderer_1","DayGridHelperRenderer_1","DayGridFillRenderer_1","cellWeekNumbersVisible","bottomCoordPadding","isRigid","leftCol","rightCol","renderDates","renderGrid","unrenderDates","removeSegPopover","headContainerEl","renderDayRowHtml","cellEls","rowCoordCache","colCoordCache","getCellEl","getIsNumbersVisible","renderNumberTrHtml","getIsDayNumbersVisible","renderNumberIntroHtml","renderNumberCellsHtml","renderNumberCellHtml","weekCalcFirstDoW","isDayNumberVisible","getCellHit","getHitFootprint","getHitEl","getOwnEventSegs","popoverSegs","renderDrag","renderHighlight","helperRenderer","unrenderDrag","unrenderHighlight","renderEventResize","unrenderEventResize","segPopover","limitRows","levelLimit","rowLevelLimit","rowStructs","unlimitRow","computeRowLevelLimit","limitRow","iterInnerHeights","childNode","trHeight","rowEl","rowHeight","trEls","tbodyEl","levelSegs","cellMatrix","limitedNodes","segsBelow","totalSegsBelow","colSegsBelow","td","rowspan","segMoreNodes","moreTd","moreWrap","moreLink","rowStruct","moreNodes","emptyCellsUntil","endCol","getCellSegs","renderMoreLink","segLevels","moreEls","limitedEls","hiddenSegs","getMoreLinkText","clickOption","moreEl","allSegs","reslicedAllSegs","resliceDaySegs","reslicedHiddenSegs","showSegPopover","zoomTo","topEl","content","renderSegPopoverContent","parentEl","autoHide","viewportConstrain","triggerBeforeEventSegsDestroyed","show","triggerAfterEventSegsRendered","segContainer","dayDate","dayStart","dayEnd","dayRange","newSegs","startLevel","segMatrix","level","eventRendererClass","businessHourRendererClass","helperRendererClass","fillRendererClass","makeDayGridSubclass","SuperClass","colWeekNumbersVisible","weekNumberStyleAttr","weekStart","BasicViewDateProfileGenerator_1","dayGrid","instantiateDayGrid","hasRigidRows","addChild","scroller","dayGridClass","renderSkeleton","dayGridContainerEl","dayGridEl","renderSkeletonHtml","unrenderSkeleton","weekNumberWidth","scrollerHeight","headRowEl","computeScrollerHeight","setGridHeight","isOverlapsAllowedByFunc","overlapEventFootprints","overlapFunc","subjectEventInstance","isOverlapEventInstancesAllowed","overlapEventInstance","overlapEventDef","overlapVal","subjectLegacyInstance","peerEventInstances","getPeerEventInstances","peerEventRanges","peerEventFootprints","constraintVal","eventAllowFunc","isFootprintAllowed","getEventInstancesWithoutId","selectAllowFunc","getEventInstances","constraintFootprints","constraintValToFootprints","isFootprintWithinConstraints","collectOverlapEventFootprints","footprintContainsFootprint","buildCurrentBusinessFootprints","parseEventDefToInstances","eventInstancesToFootprints","parseFootprints","getEventInstancesWithId","targetFootprint","footprintsIntersect","currentPeriod","eventRangeToEventFootprints","outerFootprint","innerFootprint","footprint0","footprint1","ParsableModelMixin","propDefs","standardPropMap","manualProps","EventInstance","RecurringEventDef","zonedDayStart","instanceStart","instanceEnd","unzonedDate","unzonedEnd","instances","dowHash","setDow","dowNumbers","EventRange","BUSINESS_HOUR_EVENT_DEFAULTS","rawComplexDef","buildEventDefs","rawDefs","requireDow","defs","buildEventDef","rawDef","fullRawDef","StandardTheme","widget","widgetHeader","widgetContent","buttonGroup","button","cornerLeft","cornerRight","stateDefault","stateActive","stateDisabled","stateHover","stateDown","popoverHeader","popoverContent","headerRow","dayRow","listView","close","JqueryUiTheme","pushLoading","popLoading","ajaxSettings","onSuccess","onError","requestParams","buildRequestParams","ajax","AJAX_DEFAULTS","status","xhr","callbackRes","statusText","errorThrown","customRequestParams","params","dataType","cache","q","isPaused","tryStart","getIsIdle","canRunNext","runRemaining","task","runTask","waitsByNamespace","taskFunc","waitMs","waitNamespace","delayWait","clearWait","compoundTask","startWait","spawnWait","waitId","newTask","shouldAppend","convertEventsPayloadToLegacyArray","legacyEvents","Component_1","util_2","hitsNeededDepth","childrenByUid","businessHourRenderer","child","removeChild","callChildren","_getCalendar","getBusinessHourSegs","getOwnBusinessHourSegs","iterChildren","showEventsWithId","hideEventsWithId","renderedHelper","getSafeHitFootprint","eventFootprintToSegs","gotoOptions","finalOptions","JSON","stringify","getAllDayHtml","noThemeHighlight","currentRangeAs","startDay","endTimeMS","endDay","isMultiDayRange","filterLegacyEventInstances","legacyEventInstances","legacyQuery","legacyEventInstance","Iterator_1","Toolbar_1","OptionsManager_1","ViewSpecManager_1","EventManager_1","overrides","loadingLevel","ignoreUpdateViewSize","freezeContentHeightDepth","viewsByType","viewSpecManager","initMomentInternals","initCurrentDate","initEventManager","getView","triggerInfo","optHandler","option","newOptionHash","instantiateView","viewType","spec","getViewSpec","isValidViewType","changeView","dateOrRange","recordOverrides","visibleRange","renderView","newDate","getUnitViewSpec","defaultDateInput","prevInfo","buildPrev","nextInfo","buildNext","gotoDate","zonedDateInput","incrementDate","delta","contentEl","elementVisible","calcSize","initialRender","anchorEl","customAction","opts","themeSystem","widgetClass","businessHours","toggleClass","prependTo","initToolbars","renderHeader","renderFooter","resize","windowResizeProxy","windowResize","clearView","toolbarsManager","proxyCall","bindViewHandlers","setToolbarsTitle","updateToolbarButtons","unbindViewHandlers","newView","oldView","currentView","reinitView","getSuggestedViewHeight","suggestedViewHeight","isHeightAuto","_calcSize","contentHeightInput","heightInput","queryToolbarsHeight","forceFreezeContentHeight","computeHeaderOptions","footer","computeFooterOptions","extraClasses","layout","setToolbarOptions","todayInfo","items","accumulator","toolbar","zonedStartInput","zonedEndInput","buildSelectFootprint","monthNames","monthNamesShort","dayNames","dayNamesShort","localizeMoment","getIsAmbigTimezone","adjustedZonedDate","zonedDate","timeAdjust","ignoreEnd","humanizeDuration","rangeInput","rawSources","singleRawSource","freeze","rawSource","addSource","thaw","getEventEnd","zonedStart","rerenderEvents","refetchEvents","refetchAllSources","renderEvents","eventInputs","renderEvent","stickySource","removeEvents","legacyInstances","idMap","getEventDefByUid","clientEvents","updateEvents","eventPropsArray","updateEvent","eventProps","eventDefMutation","getEventSources","otherSources","getEventSourceById","getSourceById","addEventSource","sourceInput","removeEventSources","sourceMultiQuery","sources","removeAllSources","multiQuerySources","removeSource","removeEventSource","sourceQuery","querySources","refetchEventSources","refetchSource","DateProfileGenerator","prevDate","dateIncrement","nextDate","forceToValid","currentInfo","isDateAllDay","buildValidRange","buildCurrentRangeInfo","buildRenderRange","adjustActiveRange","buildDateIncrement","dayCount","durationUnit","buildRangeFromDuration","buildRangeFromDayCount","buildCustomVisibleRange","getFallbackDuration","computeRes","alignment","dateIncrementInput","dateIncrementDuration","customAlignment","runningCount","visibleUnzonedRange","fallback","getDraggedElMeta","stick","dataAttrPrefix","HitDragListener_1","dragListener","dragstart","sortstart","accept","listenToExternalDrag","meta","interactionStart","hitOver","mutatedEventInstanceGroup","isAllowed","hitFootprint","computeExternalDrop","hitOut","hitDone","interactionEnd","buildDragListener","resizeMutation","dragStart","segResizeStart","origHitFootprint","computeEventStartResizeMutation","computeEventEndResizeMutation","buildMutatedEventInstanceGroup","segResizeStop","startFootprint","endFootprint","origEventFootprint","origRange","MouseFollower_1","getSelectionDelay","handleMousedown","settings","buildSelectListener","mouseFollower","additionalClass","revertDuration","zIndex","segDragStart","origFootprint","computeEventDropMutation","segDragStop","computeEventDateMutation","getDelay","selectionFootprint","computeSelection","wholeFootprint","computeSelectionFootprint","groupEventFootprintsByAllDay","timed","agendaTimeGridMethods","agendaDayGridMethods","timeGrid","instantiateTimeGrid","timeGridClass","timeGridWrapEl","timeGridEl","axisStyleAttr","axisWidth","colEls","noScrollRowEls","bottomRuleEl","getTotalSlatHeight","computeTimeTop","dayEventsPayload","timedEventsPayload","groups","weekText","TimeGridEventRenderer_1","TimeGridHelperRenderer_1","TimeGridFillRenderer_1","AGENDA_STOCK_SUB_DURATIONS","processOptions","sliceRangeByTimes","segRange","dayRanges","slotDuration","snapDuration","snapsPerSlot","labelFormat","labelInterval","computeLabelInterval","slotsPerLabel","renderSlats","renderColumns","unrenderColumns","slatContainerEl","renderSlatRowHtml","slatEls","slatCoordCache","slotDate","isLabeled","axisHtml","slotTime","slotIterator","renderContentSkeleton","unrenderContentSkeleton","skeletonEl","cellHtml","contentSkeletonEl","colContainerEls","helperContainerEls","fgContainerEls","bgContainerEls","highlightContainerEls","businessContainerEls","groupSegsByCol","segsByCol","attachSegsByCol","containerEls","computeDateTop","nowIndicatorEls","updateSegVerticals","businessSegs","startOfDayDate","slatIndex","slatRemainder","slatCoverage","computeSegVerticals","assignSegVerticals","eventMinHeight","generateSegVerticalCss","colIndex","slatTop","slatHeight","partial","localSnapIndex","snapIndex","snapTop","snapBottom","snap","computeSnapTime","BasicViewDateProfileGenerator","MonthViewDateProfileGenerator_1","ListEventRenderer_1","ListEventPointing_1","viewEnd","renderEmptyMessage","renderSegList","daySegs","segsByDay","groupSegsByDay","tableEl","dayHeaderHtml","mainFormat","altFormat","fullCalendar","_element","singleRes","element","removeData","Component","Iterator","results","Toolbar","toolbarOptions","viewsWithButtons","newToolbarOptions","sections","renderSection","sectionEl","buttonStr","calendarCustomButtons","calendarButtonTextOverrides","calendarButtonText","buttonGroupStr","groupEl","groupChildren","isOnlyButtons","buttonClick","buttonIcon","buttonInnerHtml","buttonClasses","buttonEl","buttonAriaAttr","buttonTextOverride","buttonTextDefault","hasClass","not","first","updateTitle","activateButton","deactivateButton","disableButton","enableButton","getViewsWithButtons","OptionsManager","dynamicOverrides","compute","optionName","optionCnt","localeDefaults","dirDefaults","rawOptions","clearCache","ViewSpecManager","viewSpecCache","buildViewSpec","viewTypes","singleUnit","requestedViewType","viewOverrides","specChain","defaultsChain","overridesChain","buildViewSpecOptions","buildViewSpecButtonText","queryButtonText","buttonTextKey","isSourcesEquivalent","source0","source1","EventPeriod_1","EventManager","isWithinRange","setPeriod","whenReleased","requestSource","doomedSource","purgeSource","purgeAllSources","requestSources","getSources","matchInputs","matchingSources","matchInput","grep","eventPeriod","unbindPeriod","bindPeriod","eventId","undoFuncs","getEventDefsById","removeEventDef","defCopy","allInstances","EventPeriod","pendingCnt","freezeDepth","stuntedReleaseCnt","releaseCnt","requestsByUid","eventDefsByUid","eventDefsById","eventInstanceGroupsById","request","addEventDefs","tryRelease","completedCnt","eventDefUid","addEventInstance","isEmptyObject","removeEventInstancesForDef","matchingInstances","currentEventInstance","release","MouseFollower","sourceEl","isFollowing","isHidden","isAnimating","y0","x0","topDelta","leftDelta","updatePosition","shouldRevert","top0","left0","animate","getEl","visibility","display","margin","sourceOffset","DateClicking","dayClickHit","buildSlotSegLevels","levels","computeSlotSegCollisions","computeForwardSlotSegs","forwardSegs","computeSlotSegPressures","forwardSeg","forwardPressure","otherSegs","isSlotSegCollision","TimeGridEventRenderer","renderFgSegsIntoContainers","updateFgSegCoords","timeText","fullTimeText","startTimeText","isResizableFromStart","isResizableFromEnd","skinCss","zonedEnd","computeFgSegHorizontals","assignFgSegHorizontals","level0","computeFgSegForwardBack","seriesBackwardPressure","seriesBackwardCoord","forwardCoord","sortForwardSegs","backwardCoord","compareForwardSegs","generateFgSegHorizontalCss","shouldOverlap","TimeGridHelperRenderer","helperNodes","TimeGridFillRenderer","Popover","documentMousedown","viewportTop","viewportLeft","viewportOffset","windowEl","viewportEl","isDaySegCollision","otherSeg","compareDaySegCols","DayGridEventRenderer","renderSegRows","rowNode","pop","segRows","groupSegRows","renderSegRow","rowSegs","loneCellMatrix","tr","buildSegLevels","levelCnt","tbody","titleHtml","timeHtml","DayGridHelperRenderer","skeletonTopEl","skeletonTop","DayGridFillRenderer","renderFillRow","startCol","MonthViewDateProfileGenerator","ListEventRenderer","bgColor","ListEventPointing","isDefaultPrevented","location","href","Bootstrap3Theme_1","Bootstrap4Theme_1","Bootstrap3Theme","tableGrid","tableList","tableListHeading","popover","Bootstrap4Theme","fixedWeekCount","allDaySlot","slotEventOverlap","listDayFormat","noEventsMessage","listDayAltFormat","r","_dereq_","code","any","promises","SomePromiseArray","setHowMany","setUnwrap","init","_SomePromiseArray","Async","_customScheduler","_isTickUsed","_lateQueue","Queue","_normalQueue","_haveDrainedQueues","drainQueues","_drainQueues","_schedule","schedule","AsyncInvokeLater","receiver","_queueTick","AsyncInvoke","AsyncSettlePromises","_pushOne","_drainQueue","_drainQueueStep","_settlePromises","firstLineError","setScheduler","hasCustomScheduler","haveItemsQueued","fatalError","isNode","stderr","write","exit","throwLater","invokeLater","invoke","settlePromises","_reset","INTERNAL","tryConvertToPromise","calledBind","rejectThis","_reject","targetRejected","promiseRejectionQueued","bindingPromise","_then","bindingResolved","thisArg","_bitField","_resolveCallback","bindingRejected","_propagateFrom","propagateFromFunction","_boundValue","boundValueFunction","maybePromise","_target","_setBoundTo","_setOnCancel","_boundTo","_isBound","noConflict","bluebird","old","cr","callerCache","getterCache","ensureMethod","util","classString","caller","namedGetter","indexedGetter","getGetter","canEvaluate","isIdentifier","propertyName","isIndex","maybeGetter","PromiseArray","apiRejection","tryCatch","errorObj","_async","cancel","cancellation","_warn","_isCancellable","_cancelBy","_isFollowing","_followee","_cancelBranched","_cancellationParent","_setWillBeCancelled","_branchHasCancelled","_branchesRemainingToCancel","_enoughBranchesHaveCancelled","canceller","_invokeOnCancel","_cancel","_setCancelled","_cancelPromises","_length","_unsetOnCancel","_onCancelField","isPending","_isCancelled","isCancellable","_doInvokeOnCancel","onCancelCallback","internalOnly","_attachExtraTrace","_resultCancelled","_onCancel","_invokeInternalOnCancel","NEXT_FILTER","catchFilter","cb","boundTo","predicateLoop","matchesPredicate","getKeys","Context","_trace","CapturedTrace","peekContext","createContext","longStackTraces","contextStack","_promiseCreated","_pushContext","_popContext","_peekContext","trace","deactivateLongStackTraces","activateLongStackTraces","Promise_pushContext","Promise_popContext","Promise_PeekContext","Promise_peekContext","Promise_promiseCreated","ctx","enableAsyncHooks","disableAsyncHooks","generatePromiseLifecycleEventObject","defaultFireEvent","cancellationExecute","onCancel","_attachCancellationCallback","cancellationAttachCancellationCallback","previousOnCancel","cancellationOnCancel","cancellationSetOnCancel","cancellationClearCancellationData","cancellationPropagateFrom","branchesRemainingToCancel","bindingPropagateFrom","isFulfilled","longStackTracesCaptureStackTrace","longStackTracesAttachExtraTrace","ignoreSelf","canAttachTrace","_parent","attachExtraTrace","__stackCleaned__","parsed","parseStackAndMessage","notEnumerableProp","longStackTracesDereferenceTrace","checkForgottenReturns","returnValue","promiseCreated","wForgottenReturn","_returnedNonUndefined","handlerLine","creatorLine","traceLines","cleanStack","line","nodeFramePattern","lineMatches","parseLinePattern","firstUserLine","deprecated","replacement","shouldUseOwnTrace","warnings","Warning","activeFireEvent","formatAndLogError","reconstructStack","stacks","removeDuplicateOrEmptyJumps","removeCommonRoots","current","currentLastIndex","currentLastLine","commonRootMeetPoint","isTraceLine","stackFramePattern","isInternalFrame","shouldIgnore","indentStackFrames","stackFramesAsArray","isSoft","formatStack","printWarning","fireRejectionEvent","localHandler","reason","localEventFired","formatNonError","snip","maxChars","longStackTracesIsSupported","captureStackTrace","parseLineInfo","parseLineInfoRegex","fileName","setBounds","lastLineError","firstFileName","lastFileName","firstStackLines","lastStackLines","firstIndex","bluebirdFramePattern","_promisesCreated","uncycle","unhandledRejectionHandled","possiblyUnhandledRejection","deferUnhandledRejectionCheck","es5","debugging","unhandledRejectionCheck","_notifyUnhandledRejection","unhandledRejectionClear","suppressUnhandledRejections","_ensurePossibleRejectionHandled","_setRejectionIsUnhandled","_notifyUnhandledRejectionIsHandled","_setReturnedNonUndefined","_isRejectionUnhandled","_settledValue","_setUnhandledRejectionIsNotified","_unsetUnhandledRejectionIsNotified","_isUnhandledRejectionNotified","_unsetRejectionIsUnhandled","onPossiblyUnhandledRejection","_getContext","contextBind","onUnhandledRejectionHandled","disableLongStackTraces","Promise_captureStackTrace","_captureStackTrace","Promise_attachExtraTrace","Promise_dereferenceTrace","_dereferenceTrace","hasLongStackTraces","legacyHandlers","unhandledrejection","onunhandledrejection","rejectionhandled","onrejectionhandled","fireDomEvent","dispatch","dispatchEvent","CustomEvent","eventData","detail","cancelable","domEvent","createEvent","initCustomEvent","fireGlobalEvent","eventToObjectGenerator","promiseFulfilled","promiseRejected","promiseResolved","promiseCancelled","promiseChained","unhandledRejection","rejectionHandled","globalEventFired","domEventFired","warningsOption","_clearCancellationData","_execute","monitoring","_fireEvent","nodeSupportsAsyncResource","asyncHooks","cur","inherits","stackToIndex","currentStack","cycleEdgeNode","currentChildLength","v8stackFramePattern","v8stackFormatter","stackTraceLimit","ignoreUntil","hasStackAfterThrow","isTTY","returner","thrower","thenReturn","thenThrow","catchThrow","_reason","caught","catchReturn","11","promiseAllThis","PromiseAll","PromiseMapSeries","PromiseReduce","all","mapSeries","subError","nameProperty","defaultMessage","SubError","OperationalError","cause","_TypeError","_RangeError","Objectfreeze","CancellationError","TimeoutError","AggregateError","RangeError","methods","writable","indent","lines","errorTypes","RejectionError","isES5","getDescriptor","getOwnPropertyDescriptor","getPrototypeOf","propertyIsWritable","descriptor","ObjectKeys","ObjectGetDescriptor","ObjectDefineProperty","desc","ObjectFreeze","ObjectGetPrototypeOf","ArrayIsArray","14","PromiseMap","15","PassThroughHandlerContext","called","cancelPromise","FinallyHandlerCancelReaction","finallyHandler","checkCancel","succeed","fail","reasonOrValue","isFinallyHandler","isRejected","_passThrough","lastly","tap","tapCatch","handlerOrPredicate","catchInstances","16","Proxyable","promiseFromYieldHandler","yieldHandlers","traceParent","PromiseSpawn","generatorFunction","yieldHandler","internal","_finallyPromise","_promise","_stack","_generatorFunction","_receiver","_generator","_yieldHandlers","_yieldedPromise","_cancellationPhase","errors","_isResolved","_cleanup","_fulfill","_promiseCancelled","implementsReturn","coroutine","returnSentinel","_continue","_promiseFulfilled","_promiseRejected","_run","_rejectCallback","done","bitField","_proxy","PromiseSpawn$","generator","spawn","addYieldHandler","17","spread","18","MappingPromiseArray","_filter","constructor$","_callback","_preservedValues","_limit","_inFlight","_queue","_asyncInit","concurrency","_init$","_init","_values","preservedValues","_totalResolved","_resolve","booleans","19","_resolveFromSyncValue","attempt","isUntypedError","wrapAsOperationalError","rErrorKey","markAsOriginatingFromRejection","nodebackForPromise","multiArgs","wrapped","maybeWrapAsError","21","spreadAdapter","nodeback","successAdapter","errorAdapter","newReason","asCallback","nodeify","adapter","22","check","_fulfillmentHandler0","_rejectionHandler0","_promise0","_receiver0","_resolveFromExecutor","deferResolve","v","deferReject","fillTypes","makeSelfResolutionError","reflectHandler","PromiseInspection","UNDEFINED_BINDING","setReflectHandler","getDomain","domain","getContextDefault","getContextDomain","AsyncResource","getContextAsyncHooks","getContext","APPLY","reflect","didFulfill","didReject","_setIsFinal","fulfillmentValue","rejectionReason","originatesFromRejection","getNewLibraryCopy","fromNode","fromCallback","_isFateSealed","_setAsyncGuaranteed","cast","_setFulfilled","fulfilled","rejected","internalData","haveInternalData","settler","_settlePromiseCtx","_settlePromiseLateCancellationObserver","_addCallbacks","_setLength","_setRejected","_setFollowing","_isFinal","_unsetCancelled","_setNoAsyncGuarantee","_receiverAt","_promiseAt","_fulfillmentHandlerAt","_rejectionHandlerAt","_migrateCallback0","follower","fulfill","_migrateCallbackAt","proxyable","shouldBind","_setFollowee","synchronous","ignoreNonErrorWarnings","ensureErrorObject","hasStack","_settlePromiseFromHandler","_settlePromise","isPromise","asyncGuaranteed","_settlePromise0","_clearCallbackDataAtIndex","_fulfillPromises","_rejectPromises","toStringTag","defer","pending","toFastProperties","23","toResolutionValue","Map","resolveValueIfEmpty","asArray","_resolveEmptyArray","_iterate","getActualLength","shouldCopyValues","isResolved","24","propsFilter","noCopyPropsPattern","isPromisified","__isPromisified__","hasPromisified","getDataPropertyOrDefault","defaultPromisified","checkValid","suffixRegexp","keyWithoutAsyncSuffix","promisifiableMethods","inheritedDataKeys","passesDefaultFilter","defaultFilter","makeNodePromisifiedClosure","promisified","THIS","defaultThis","withAppended","promisifyAll","promisifier","escapeIdentRegex","promisifiedKey","makeNodePromisified","promisify","makeNodePromisifiedEval","noCopyProps","copyDescriptors","isClass","25","PropertiesPromiseArray","entries","isMap","Es6Map","mapToEntries","_isMap","castValue","extractEntry","size","entriesToMap","keyOffset","26","arrayMove","srcIndex","dst","dstIndex","capacity","_capacity","_front","_willBeOverCapacity","_checkCapacity","wrapMask","front","_resizeTo","oldCapacity","27","race","raceLater","28","ReductionPromiseArray","initialValue","_each","_fn","_initialValue","_currentCancellable","_eachValues","completed","valueOrReason","gotAccum","_gotAccum","gotValue","_eachComplete","sender","_resultCancelled$","29","noAsyncScheduler","NativePromise","getNativePromise","MutationObserver","GlobalSetImmediate","setImmediate","ProcessNextTick","isRecentNode","nativePromise","navigator","cordova","documentElement","div","attributes","toggleScheduled","div2","classList","toggle","observe","scheduleToggle","disconnect","SettledPromiseArray","_promiseResolved","inspection","_settledValueField","settle","allSettled","31","_howMany","_unwrap","_initialized","howMany","CANCELLATION","isArrayResolved","_canPossiblyFulfill","_getRangeError","count","_addFulfilled","_fulfilled","_addRejected","_checkOutcome","_rejected","32","__isCancelled","33","getThen","isAnyBluebirdPromise","doThenable","doGetThen","hasProp","34","HandleWrapper","handle","successClear","failureClear","afterValue","afterTimeout","handleWrapper","35","castPreservingDisposable","thenable","_isDisposable","_getDisposer","_setDisposable","dispose","resources","iterator","tryDispose","Disposer","_context","FunctionDisposer","maybeUnwrapDisposer","isDisposer","ResourceList","NULL","resource","doDispose","_unsetDisposable","using","spreadArgs","disposer","reflectedResources","resultPromise","inspections","_disposer","36","tryCatcher","tryCatchTarget","isPrimitive","maybeError","safeToString","appendee","defaultValue","hasMethods","hasMethodsOtherThanConstructor","hasThisAssignmentAndStaticMethods","thisAssignmentPattern","FakeConstructor","ic","foo","rident","filledRange","isError","hasEnvVariables","runInAsyncScope","globalObject","Child","Parent","excludedPrototypes","isExcludedProto","visitedKeys","enumeration","ArrayFrom","itResult","it","supportsAsync","P","Timeout","clearFn","_clearFn","scope","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","tasksByHandle","nextHandle","registerImmediate","runIfPresent","currentlyRunningATask","doc","attachTo","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","messagePrefix","random","onGlobalMessage","attachEvent","MessageChannel","channel","port1","port2","onreadystatechange","noGlobal","DOMEval","preservedScriptAttributes","getAttribute","parentNode","toType","class2type","isArrayLike","isWindow","nodeName","elem","winnow","elements","qualifier","jQuery","nodeType","sibling","createOptions","rnothtmlwhite","flag","Identity","Thrower","ex","adoptValue","noValue","ready","fcamelCase","_all","letter","camelCase","rmsPrefix","rdashAlpha","Data","expando","getData","rbrace","dataAttr","rmultiDash","dataUser","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","cssNumber","initialInUnit","rcssNum","style","getDefaultDisplay","defaultDisplayMap","body","showHide","dataPriv","isHiddenWithinTree","getAll","tag","querySelectorAll","merge","setGlobalEval","elems","refElements","buildFragment","scripts","selection","ignored","wrap","attached","fragment","createDocumentFragment","rhtml","rtagName","wrapMap","_default","innerHTML","htmlPrefilter","lastChild","childNodes","firstChild","textContent","createTextNode","isAttached","rscriptType","returnTrue","returnFalse","expectSync","safeActiveElement","activeElement","selector","origFn","leverageNative","notAsync","saved","isTrigger","delegateType","stopImmediatePropagation","manipulationTarget","disableScript","restoreScript","removeAttribute","cloneCopyEvent","pdataOld","udataOld","udataCur","hasData","access","fixInput","rcheckableType","checked","domManip","collection","flat","hasScripts","iNoClone","valueIsFunction","support","checkClone","rchecked","contains","_evalUrl","noModule","nonce","rcleanScript","keepData","cleanData","curCSS","computed","minWidth","maxWidth","isCustomProp","rcustomProp","getStyles","getPropertyValue","rtrimCSS","pixelBoxStyles","rnumnonpx","rboxStyle","addGetHookIf","conditionFn","hookFn","vendorPropName","capName","cssPrefixes","emptyStyle","finalPropName","final","vendorProps","setPositiveNumber","_elem","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","cssExpand","getWidthOrHeight","boxSizingNeeded","boxSizingReliable","valueIsBorderBox","offsetProp","reliableTrDimensions","getClientRects","Tween","inProgress","hidden","requestAnimationFrame","fx","interval","tick","createFxNow","fxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","defaultPrefilter","oldfire","propTween","restoreDisplay","isBox","anim","orig","dataShow","_queueHooks","unqueued","fire","always","rfxtypes","propFilter","specialEasing","cssHooks","expand","stopped","prefilters","currentTime","remaining","percent","tweens","notifyWith","resolveWith","originalProperties","originalOptions","gotoEnd","rejectWith","progress","timer","stripAndCollapse","classesToArray","buildParams","traditional","rbracket","addToPrefiltersOrTransports","structure","dataTypeExpression","dataTypes","inspectPrefiltersOrTransports","jqXHR","selected","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","deep","flatOptions","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","contents","mimeType","getResponseHeader","converters","ajaxConvert","isSuccess","conv2","conv","responseFields","dataFilter","throws","getProto","hasOwn","fnToString","ObjectFunctionString","jquery","pushStack","prevObject","even","odd","copyIsArray","isReady","Ctor","globalEval","makeArray","invert","callbackExpect","Sizzle","seed","nid","newSelector","newContext","setDocument","documentIsHTML","rquickExpr","getElementById","getElementsByClassName","qsa","nonnativeSelectorCache","rbuggyQSA","rdescend","rcombinators","rsibling","testContext","rcssescape","fcssescape","tokenize","toSelector","qsaError","rtrim","createCache","Expr","cacheLength","markFunction","assert","addHandle","attrHandle","siblingCheck","sourceIndex","nextSibling","createDisabledPseudo","disabled","isDisabled","inDisabledFieldset","createPositionalPseudo","argument","matchIndexes","setFilters","addCombinator","combinator","skip","checkNonElements","doneName","xml","oldCache","uniqueCache","outerCache","newCache","dirruns","uniqueID","elementMatcher","matchers","multipleContexts","contexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","uniqueSort","getText","isXML","compile","sortInput","hasDuplicate","docElem","rbuggyMatches","preferredDoc","classCache","tokenCache","compilerCache","sortOrder","pushNative","list","whitespace","identifier","pseudos","rwhitespace","rcomma","rpseudo","ridentifier","matchExpr","rinputs","rheader","rnative","runescape","funescape","escape","nonHex","high","fromCharCode","ch","asCodePoint","charCodeAt","unloadHandler","namespaceURI","hasCompare","subWindow","createComment","getById","getElementsByName","attrId","getAttributeNode","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","specified","sel","duplicates","detectDuplicates","sortStable","nodeValue","selectors","createPseudo","excess","unquoted","nodeNameSelector","pattern","operator","what","_argument","simple","forward","ofType","nodeIndex","useCache","pseudo","idx","elemLang","hasFocus","tabIndex","selectedIndex","_matchIndexes","radio","checkbox","file","password","image","submit","filters","parseOnly","soFar","preFilters","cached","compiled","_name","unique","isXMLDoc","escapeSelector","truncate","siblings","rneedsContext","needsContext","rsingleTag","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","targets","prevAll","addBack","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","reverse","Callbacks","firing","memory","fired","locked","firingIndex","stopOnFalse","disable","lock","fireWith","tuples","pipe","fns","newDefer","tuple","returned","onFulfilled","onRejected","onProgress","depth","mightThrow","maxDepth","exceptionHook","stackTrace","getStackHook","stateString","when","singleValue","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","readyException","readyList","catch","readyWait","readyState","doScroll","chainable","emptyGet","raw","bulk","_key","acceptData","owner","_removeData","dequeue","startLength","clearQueue","pnum","composed","getRootNode","cloneNode","noCloneChecked","thead","tfoot","colgroup","caption","optgroup","rtypenamespace","handleObjIn","eventHandle","handleObj","handlers","namespaces","origType","elemData","triggered","bindType","delegateCount","setup","mappedTypes","origCount","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","load","noBubble","beforeunload","defaultPrevented","relatedTarget","timeStamp","isSimulated","altKey","bubbles","changedTouches","eventPhase","metaKey","shiftKey","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","related","rnoInnerhtml","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","insertBefore","replaceWith","replaceChild","insertAfter","replaceAll","original","opener","getComputedStyle","swap","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","pixelPosition","reliableMarginLeft","scrollboxSize","table","trChild","trStyle","borderTopWidth","borderBottomWidth","rdisplayswap","cssShow","cssNormalTransform","letterSpacing","fontWeight","origName","setProperty","getBoundingClientRect","scrollboxSizeBuggy","expanded","propHooks","eased","step","linear","swing","cos","PI","rrun","tweener","prefilter","speed","speeds","fadeTo","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","removeProp","propFix","tabindex","curValue","finalValue","stateVal","isValidValue","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","attaches","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rCRLF","rsubmitterTypes","rsubmittable","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","allTypes","originAnchor","lastModified","etag","protocol","processData","contentType","accepts","json","ajaxSetup","ajaxPrefilter","ajaxTransport","nativeStatusText","headers","modified","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","urlAnchor","uncached","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","abort","finalText","crossDomain","host","hasContent","beforeSend","send","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","XMLHttpRequest","xhrSuccessStatus","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onabort","ontimeout","responseType","responseText","scriptAttrs","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","win","pageYOffset","pageXOffset","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","delegate","undelegate","fnOver","fnOut","holdReady","hold","parseJSON","isNumeric","_jQuery","_$","webpackPolyfill","paths","webpackContext","req","webpackContextResolve"],"mappings":"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CA,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,CAEH,SAAU3+C,EAAQD,EAASH,GA0NjC,QAASkoF,GAAwBC,EAAwBC,EAAaC,GAClE,GAAIhoF,EACJ,KAAKA,EAAI,EAAGA,EAAI8nF,EAAuBnnF,OAAQX,IAC3C,IAAK+nF,EAAYD,EAAuB9nF,GAAG2sD,cAAclI,WAAYujC,EAAuBA,EAAqBvjC,WAAa,MAC1H,OAAO,CAGf,QAAO,EAEX,QAASwjC,GAA+BH,EAAwBE,GAC5D,GACIhoF,GACAkoF,EACAC,EACAC,EAJAC,EAAwBL,EAAqBvjC,UAKjD,KAAKzkD,EAAI,EAAGA,EAAI8nF,EAAuBnnF,OAAQX,IAAK,CAMhD,GALAkoF,EAAuBJ,EAAuB9nF,GAAG2sD,cACjDw7B,EAAkBD,EAAqBhjC,KAIpB,KADnBkjC,EAAaD,EAAgBxuB,cAEzB,OAAO,CAEN,IAA0B,kBAAfyuB,KACPA,EAAWF,EAAqBzjC,WAAY4jC,GAC7C,OAAO,EAInB,OAAO,EAtPXvnF,OAAOwC,eAAexD,EAAS,cAAgByQ,OAAO,GACtD,IAAIo2C,GAAiBhnD,EAAoB,GAC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","file":"common.aefe7b57a1b99d0e18f7.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId]) {\n/******/ \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n/******/ \t\t\t}\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n/******/ \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n/******/ \t\twhile(resolves.length) {\n/******/ \t\t\tresolves.shift()();\n/******/ \t\t}\n/******/ \t\tif(executeModules) {\n/******/ \t\t\tfor(i=0; i < executeModules.length; i++) {\n/******/ \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\treturn result;\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// objects to store loaded and loading chunks\n/******/ \tvar installedChunks = {\n/******/ \t\t3: 0\n/******/ \t};\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/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId) {\n/******/ \t\tvar installedChunkData = installedChunks[chunkId];\n/******/ \t\tif(installedChunkData === 0) {\n/******/ \t\t\treturn new Promise(function(resolve) { resolve(); });\n/******/ \t\t}\n/******/\n/******/ \t\t// a Promise means \"currently loading\".\n/******/ \t\tif(installedChunkData) {\n/******/ \t\t\treturn installedChunkData[2];\n/******/ \t\t}\n/******/\n/******/ \t\t// setup Promise in chunk cache\n/******/ \t\tvar promise = new Promise(function(resolve, reject) {\n/******/ \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n/******/ \t\t});\n/******/ \t\tinstalledChunkData[2] = promise;\n/******/\n/******/ \t\t// start chunk loading\n/******/ \t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\tvar script = document.createElement('script');\n/******/ \t\tscript.type = 'text/javascript';\n/******/ \t\tscript.charset = 'utf-8';\n/******/ \t\tscript.async = true;\n/******/ \t\tscript.timeout = 120000;\n/******/\n/******/ \t\tif (__webpack_require__.nc) {\n/******/ \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n/******/ \t\t}\n/******/ \t\tscript.src = __webpack_require__.p + \"\" + ({\"0\":\"fetch\",\"1\":\"app\",\"2\":\"vendor\"}[chunkId]||chunkId) + \".\" + {\"0\":\"e68630bf883a6ecf58a8\",\"1\":\"481c5730272e940d05b0\",\"2\":\"ba8fe74171d6e6fae023\"}[chunkId] + \".chunk.js\";\n/******/ \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n/******/ \t\tscript.onerror = script.onload = onScriptComplete;\n/******/ \t\tfunction onScriptComplete() {\n/******/ \t\t\t// avoid mem leaks in IE.\n/******/ \t\t\tscript.onerror = script.onload = null;\n/******/ \t\t\tclearTimeout(timeout);\n/******/ \t\t\tvar chunk = installedChunks[chunkId];\n/******/ \t\t\tif(chunk !== 0) {\n/******/ \t\t\t\tif(chunk) {\n/******/ \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n/******/ \t\t\t\t}\n/******/ \t\t\t\tinstalledChunks[chunkId] = undefined;\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t\thead.appendChild(script);\n/******/\n/******/ \t\treturn promise;\n/******/ \t};\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// on error function for async loading\n/******/ \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module) {var require;//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n true ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n __webpack_require__(298)(\"./\" + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(297)(module)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {module.exports = global[\"Promise\"] = __webpack_require__(252);\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(17)))\n\n/***/ }),\n/* 2 */,\n/* 3 */,\n/* 4 */,\n/* 5 */,\n/* 6 */,\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {module.exports = global[\"$\"] = __webpack_require__(293);\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(17)))\n\n/***/ }),\n/* 8 */,\n/* 9 */,\n/* 10 */,\n/* 11 */,\n/* 12 */,\n/* 13 */,\n/* 14 */,\n/* 15 */,\n/* 16 */,\n/* 17 */\n/***/ (function(module, exports) {\n\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n/***/ }),\n/* 18 */,\n/* 19 */,\n/* 20 */,\n/* 21 */,\n/* 22 */,\n/* 23 */,\n/* 24 */,\n/* 25 */,\n/* 26 */,\n/* 27 */,\n/* 28 */,\n/* 29 */,\n/* 30 */,\n/* 31 */,\n/* 32 */,\n/* 33 */,\n/* 34 */,\n/* 35 */,\n/* 36 */,\n/* 37 */,\n/* 38 */\n/***/ (function(module, exports) {\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n/***/ }),\n/* 39 */,\n/* 40 */,\n/* 41 */,\n/* 42 */,\n/* 43 */,\n/* 44 */,\n/* 45 */,\n/* 46 */,\n/* 47 */,\n/* 48 */,\n/* 49 */,\n/* 50 */,\n/* 51 */,\n/* 52 */,\n/* 53 */,\n/* 54 */,\n/* 55 */,\n/* 56 */,\n/* 57 */,\n/* 58 */,\n/* 59 */,\n/* 60 */,\n/* 61 */,\n/* 62 */,\n/* 63 */,\n/* 64 */,\n/* 65 */,\n/* 66 */,\n/* 67 */,\n/* 68 */,\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/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\n * Toastr\n * Copyright 2012-2015\n * Authors: John Papa, Hans Fjällemark, and Tim Ferrell.\n * All Rights Reserved.\n * Use, reproduction, distribution, and modification of this code is subject to the terms and\n * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php\n *\n * ARIA Support: Greta Krafsig\n *\n * Project: https://github.com/CodeSeven/toastr\n */\n/* global define */\n(function (define) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(7)], __WEBPACK_AMD_DEFINE_RESULT__ = function ($) {\n return (function () {\n var $container;\n var listener;\n var toastId = 0;\n var toastType = {\n error: 'error',\n info: 'info',\n success: 'success',\n warning: 'warning'\n };\n\n var toastr = {\n clear: clear,\n remove: remove,\n error: error,\n getContainer: getContainer,\n info: info,\n options: {},\n subscribe: subscribe,\n success: success,\n version: '2.1.4',\n warning: warning\n };\n\n var previousToast;\n\n return toastr;\n\n ////////////////\n\n function error(message, title, optionsOverride) {\n return notify({\n type: toastType.error,\n iconClass: getOptions().iconClasses.error,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function getContainer(options, create) {\n if (!options) { options = getOptions(); }\n $container = $('#' + options.containerId);\n if ($container.length) {\n return $container;\n }\n if (create) {\n $container = createContainer(options);\n }\n return $container;\n }\n\n function info(message, title, optionsOverride) {\n return notify({\n type: toastType.info,\n iconClass: getOptions().iconClasses.info,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function subscribe(callback) {\n listener = callback;\n }\n\n function success(message, title, optionsOverride) {\n return notify({\n type: toastType.success,\n iconClass: getOptions().iconClasses.success,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function warning(message, title, optionsOverride) {\n return notify({\n type: toastType.warning,\n iconClass: getOptions().iconClasses.warning,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function clear($toastElement, clearOptions) {\n var options = getOptions();\n if (!$container) { getContainer(options); }\n if (!clearToast($toastElement, options, clearOptions)) {\n clearContainer(options);\n }\n }\n\n function remove($toastElement) {\n var options = getOptions();\n if (!$container) { getContainer(options); }\n if ($toastElement && $(':focus', $toastElement).length === 0) {\n removeToast($toastElement);\n return;\n }\n if ($container.children().length) {\n $container.remove();\n }\n }\n\n // internal functions\n\n function clearContainer (options) {\n var toastsToClear = $container.children();\n for (var i = toastsToClear.length - 1; i >= 0; i--) {\n clearToast($(toastsToClear[i]), options);\n }\n }\n\n function clearToast ($toastElement, options, clearOptions) {\n var force = clearOptions && clearOptions.force ? clearOptions.force : false;\n if ($toastElement && (force || $(':focus', $toastElement).length === 0)) {\n $toastElement[options.hideMethod]({\n duration: options.hideDuration,\n easing: options.hideEasing,\n complete: function () { removeToast($toastElement); }\n });\n return true;\n }\n return false;\n }\n\n function createContainer(options) {\n $container = $('
')\n .attr('id', options.containerId)\n .addClass(options.positionClass);\n\n $container.appendTo($(options.target));\n return $container;\n }\n\n function getDefaults() {\n return {\n tapToDismiss: true,\n toastClass: 'toast',\n containerId: 'toast-container',\n debug: false,\n\n showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery\n showDuration: 300,\n showEasing: 'swing', //swing and linear are built into jQuery\n onShown: undefined,\n hideMethod: 'fadeOut',\n hideDuration: 1000,\n hideEasing: 'swing',\n onHidden: undefined,\n closeMethod: false,\n closeDuration: false,\n closeEasing: false,\n closeOnHover: true,\n\n extendedTimeOut: 1000,\n iconClasses: {\n error: 'toast-error',\n info: 'toast-info',\n success: 'toast-success',\n warning: 'toast-warning'\n },\n iconClass: 'toast-info',\n positionClass: 'toast-top-right',\n timeOut: 5000, // Set timeOut and extendedTimeOut to 0 to make it sticky\n titleClass: 'toast-title',\n messageClass: 'toast-message',\n escapeHtml: false,\n target: 'body',\n closeHtml: '',\n closeClass: 'toast-close-button',\n newestOnTop: true,\n preventDuplicates: false,\n progressBar: false,\n progressClass: 'toast-progress',\n rtl: false\n };\n }\n\n function publish(args) {\n if (!listener) { return; }\n listener(args);\n }\n\n function notify(map) {\n var options = getOptions();\n var iconClass = map.iconClass || options.iconClass;\n\n if (typeof (map.optionsOverride) !== 'undefined') {\n options = $.extend(options, map.optionsOverride);\n iconClass = map.optionsOverride.iconClass || iconClass;\n }\n\n if (shouldExit(options, map)) { return; }\n\n toastId++;\n\n $container = getContainer(options, true);\n\n var intervalId = null;\n var $toastElement = $('
');\n var $titleElement = $('
');\n var $messageElement = $('
');\n var $progressElement = $('
');\n var $closeElement = $(options.closeHtml);\n var progressBar = {\n intervalId: null,\n hideEta: null,\n maxHideTime: null\n };\n var response = {\n toastId: toastId,\n state: 'visible',\n startTime: new Date(),\n options: options,\n map: map\n };\n\n personalizeToast();\n\n displayToast();\n\n handleEvents();\n\n publish(response);\n\n if (options.debug && console) {\n console.log(response);\n }\n\n return $toastElement;\n\n function escapeHtml(source) {\n if (source == null) {\n source = '';\n }\n\n return source\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(//g, '>');\n }\n\n function personalizeToast() {\n setIcon();\n setTitle();\n setMessage();\n setCloseButton();\n setProgressBar();\n setRTL();\n setSequence();\n setAria();\n }\n\n function setAria() {\n var ariaValue = '';\n switch (map.iconClass) {\n case 'toast-success':\n case 'toast-info':\n ariaValue = 'polite';\n break;\n default:\n ariaValue = 'assertive';\n }\n $toastElement.attr('aria-live', ariaValue);\n }\n\n function handleEvents() {\n if (options.closeOnHover) {\n $toastElement.hover(stickAround, delayedHideToast);\n }\n\n if (!options.onclick && options.tapToDismiss) {\n $toastElement.click(hideToast);\n }\n\n if (options.closeButton && $closeElement) {\n $closeElement.click(function (event) {\n if (event.stopPropagation) {\n event.stopPropagation();\n } else if (event.cancelBubble !== undefined && event.cancelBubble !== true) {\n event.cancelBubble = true;\n }\n\n if (options.onCloseClick) {\n options.onCloseClick(event);\n }\n\n hideToast(true);\n });\n }\n\n if (options.onclick) {\n $toastElement.click(function (event) {\n options.onclick(event);\n hideToast();\n });\n }\n }\n\n function displayToast() {\n $toastElement.hide();\n\n $toastElement[options.showMethod](\n {duration: options.showDuration, easing: options.showEasing, complete: options.onShown}\n );\n\n if (options.timeOut > 0) {\n intervalId = setTimeout(hideToast, options.timeOut);\n progressBar.maxHideTime = parseFloat(options.timeOut);\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n if (options.progressBar) {\n progressBar.intervalId = setInterval(updateProgress, 10);\n }\n }\n }\n\n function setIcon() {\n if (map.iconClass) {\n $toastElement.addClass(options.toastClass).addClass(iconClass);\n }\n }\n\n function setSequence() {\n if (options.newestOnTop) {\n $container.prepend($toastElement);\n } else {\n $container.append($toastElement);\n }\n }\n\n function setTitle() {\n if (map.title) {\n var suffix = map.title;\n if (options.escapeHtml) {\n suffix = escapeHtml(map.title);\n }\n $titleElement.append(suffix).addClass(options.titleClass);\n $toastElement.append($titleElement);\n }\n }\n\n function setMessage() {\n if (map.message) {\n var suffix = map.message;\n if (options.escapeHtml) {\n suffix = escapeHtml(map.message);\n }\n $messageElement.append(suffix).addClass(options.messageClass);\n $toastElement.append($messageElement);\n }\n }\n\n function setCloseButton() {\n if (options.closeButton) {\n $closeElement.addClass(options.closeClass).attr('role', 'button');\n $toastElement.prepend($closeElement);\n }\n }\n\n function setProgressBar() {\n if (options.progressBar) {\n $progressElement.addClass(options.progressClass);\n $toastElement.prepend($progressElement);\n }\n }\n\n function setRTL() {\n if (options.rtl) {\n $toastElement.addClass('rtl');\n }\n }\n\n function shouldExit(options, map) {\n if (options.preventDuplicates) {\n if (map.message === previousToast) {\n return true;\n } else {\n previousToast = map.message;\n }\n }\n return false;\n }\n\n function hideToast(override) {\n var method = override && options.closeMethod !== false ? options.closeMethod : options.hideMethod;\n var duration = override && options.closeDuration !== false ?\n options.closeDuration : options.hideDuration;\n var easing = override && options.closeEasing !== false ? options.closeEasing : options.hideEasing;\n if ($(':focus', $toastElement).length && !override) {\n return;\n }\n clearTimeout(progressBar.intervalId);\n return $toastElement[method]({\n duration: duration,\n easing: easing,\n complete: function () {\n removeToast($toastElement);\n clearTimeout(intervalId);\n if (options.onHidden && response.state !== 'hidden') {\n options.onHidden();\n }\n response.state = 'hidden';\n response.endTime = new Date();\n publish(response);\n }\n });\n }\n\n function delayedHideToast() {\n if (options.timeOut > 0 || options.extendedTimeOut > 0) {\n intervalId = setTimeout(hideToast, options.extendedTimeOut);\n progressBar.maxHideTime = parseFloat(options.extendedTimeOut);\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n }\n }\n\n function stickAround() {\n clearTimeout(intervalId);\n progressBar.hideEta = 0;\n $toastElement.stop(true, true)[options.showMethod](\n {duration: options.showDuration, easing: options.showEasing}\n );\n }\n\n function updateProgress() {\n var percentage = ((progressBar.hideEta - (new Date().getTime())) / progressBar.maxHideTime) * 100;\n $progressElement.width(percentage + '%');\n }\n }\n\n function getOptions() {\n return $.extend({}, getDefaults(), toastr.options);\n }\n\n function removeToast($toastElement) {\n if (!$container) { $container = getContainer(); }\n if ($toastElement.is(':visible')) {\n return;\n }\n $toastElement.remove();\n $toastElement = null;\n if ($container.children().length === 0) {\n $container.remove();\n previousToast = undefined;\n }\n }\n\n })();\n }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n}(__webpack_require__(295)));\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانفي',\n 'فيفري',\n 'مارس',\n 'أفريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic (Libya) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays:\n 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone:\n 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort:\n 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone:\n 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n w: 'седмица',\n ww: '%d седмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bnBd;\n\n})));\n\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort:\n 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays:\n 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex =\n /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone:\n 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = {\n format: 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n standalone:\n 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(\n '_'\n ),\n },\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex =\n /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex:\n /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex:\n /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays:\n 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays:\n 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl:\n 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl:\n 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return es;\n\n})));\n\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return esMx;\n\n})));\n\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort:\n 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays:\n 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort:\n 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰',\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort:\n 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast =\n 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort:\n 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays:\n 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\n\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays:\n 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsStrictRegex =\n /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort:\n 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\n})));\n\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone:\n 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone:\n 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '૧',\n 2: '૨',\n 3: '૩',\n 4: '૪',\n 5: '૫',\n 6: '૬',\n 7: '૭',\n 8: '૮',\n 9: '૯',\n 0: '૦',\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0',\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n '_'\n ),\n monthsShort:\n 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return gu;\n\n})));\n\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort:\n 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse:\n /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n },\n monthsParse = [\n /^जन/i,\n /^फ़र|फर/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सितं|सित/i,\n /^अक्टू/i,\n /^नव|नवं/i,\n /^दिसं|दिस/i,\n ],\n shortMonthsParse = [\n /^जन/i,\n /^फ़र/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सित/i,\n /^अक्टू/i,\n /^नव/i,\n /^दिस/i,\n ];\n\n var hi = moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n '_'\n ),\n standalone:\n 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n '_'\n ),\n },\n monthsShort:\n 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: shortMonthsParse,\n\n monthsRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsShortRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsStrictRegex:\n /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n monthsShortStrictRegex:\n /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return hi;\n\n})));\n\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone:\n 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort:\n 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings =\n 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone:\n 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays:\n 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays:\n 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n\n\n/***/ }),\n/* 159 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n\n\n/***/ }),\n/* 163 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone:\n 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\n isFormat: /(წინა|შემდეგ)/,\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(\n /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,\n function ($0, $1, $2) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n }\n );\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n\n\n/***/ }),\n/* 164 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n\n\n/***/ }),\n/* 165 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០',\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort:\n 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return km;\n\n})));\n\n\n/***/ }),\n/* 166 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: '೭',\n 8: '೮',\n 9: '೯',\n 0: '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort:\n 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n\n\n/***/ }),\n/* 167 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\n\n})));\n\n\n/***/ }),\n/* 168 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays:\n 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort:\n 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n\n\n/***/ }),\n/* 169 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n var ky = moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ky;\n\n})));\n\n\n/***/ }),\n/* 170 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n\n\n/***/ }),\n/* 171 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort:\n 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n\n\n/***/ }),\n/* 172 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone:\n 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone:\n 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n\n\n/***/ }),\n/* 173 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays:\n 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n\n\n/***/ }),\n/* 174 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n\n\n/***/ }),\n/* 175 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan : https://github.com/johnideal\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort:\n 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n\n\n/***/ }),\n/* 176 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n\n\n/***/ }),\n/* 177 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort:\n 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n\n\n/***/ }),\n/* 178 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n '_'\n ),\n monthsShort:\n '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n return mn;\n\n})));\n\n\n/***/ }),\n/* 179 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort:\n 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n\n\n/***/ }),\n/* 180 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n\n\n/***/ }),\n/* 181 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n\n\n/***/ }),\n/* 182 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays:\n 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n\n\n/***/ }),\n/* 183 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀',\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n\n\n/***/ }),\n/* 184 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n w: 'en uke',\n ww: '%d uker',\n M: 'en måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n\n\n/***/ }),\n/* 185 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort:\n 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n\n\n/***/ }),\n/* 186 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\n\n\n/***/ }),\n/* 187 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nlBe;\n\n})));\n\n\n/***/ }),\n/* 188 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n\n\n/***/ }),\n/* 189 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone:\n 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n\n\n/***/ }),\n/* 190 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort:\n 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n\n\n/***/ }),\n/* 191 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative =\n 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective =\n 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n '_'\n ),\n monthsParse = [\n /^sty/i,\n /^lut/i,\n /^mar/i,\n /^kwi/i,\n /^maj/i,\n /^cze/i,\n /^lip/i,\n /^sie/i,\n /^wrz/i,\n /^paź/i,\n /^lis/i,\n /^gru/i,\n ];\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays:\n 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate,\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n\n\n/***/ }),\n/* 192 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pt;\n\n})));\n\n\n/***/ }),\n/* 193 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida',\n });\n\n return ptBr;\n\n})));\n\n\n/***/ }),\n/* 194 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort:\n 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n\n\n/***/ }),\n/* 195 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone:\n 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone:\n 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone:\n 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex:\n /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex:\n /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделя',\n ww: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n\n\n/***/ }),\n/* 196 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n\n\n/***/ }),\n/* 197 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort:\n 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays:\n 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n\n\n/***/ }),\n/* 198 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays:\n 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n\n\n/***/ }),\n/* 199 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months =\n 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n\n\n/***/ }),\n/* 200 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n\n\n/***/ }),\n/* 201 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n\n\n/***/ }),\n/* 202 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n d: ['jedan dan', 'jednog dana'],\n dd: ['dan', 'dana', 'dana'],\n M: ['jedan mesec', 'jednog meseca'],\n MM: ['mesec', 'meseca', 'meseci'],\n y: ['jednu godinu', 'jedne godine'],\n yy: ['godinu', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'jedna godina';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'godinu') {\n return number + ' godina';\n }\n\n return number + ' ' + word;\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n\n\n/***/ }),\n/* 203 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једног минута'],\n mm: ['минут', 'минута', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n d: ['један дан', 'једног дана'],\n dd: ['дан', 'дана', 'дана'],\n M: ['један месец', 'једног месеца'],\n MM: ['месец', 'месеца', 'месеци'],\n y: ['једну годину', 'једне године'],\n yy: ['годину', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'једна година';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n\n return number + ' ' + word;\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort:\n 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n\n\n/***/ }),\n/* 204 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays:\n 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n\n\n/***/ }),\n/* 205 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n\n\n/***/ }),\n/* 206 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays:\n 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n\n\n/***/ }),\n/* 207 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort:\n 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays:\n 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n\n\n/***/ }),\n/* 208 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort:\n 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n\n\n/***/ }),\n/* 209 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n\n\n/***/ }),\n/* 210 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n '_'\n ),\n standalone:\n 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n\n\n/***/ }),\n/* 211 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort:\n 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n\n\n/***/ }),\n/* 212 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n\n\n/***/ }),\n/* 213 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n\n\n/***/ }),\n/* 214 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort:\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n\n\n/***/ }),\n/* 215 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n\n\n/***/ }),\n/* 216 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n\n\n/***/ }),\n/* 217 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n monthsShort:\n 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n\n\n/***/ }),\n/* 218 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort:\n 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n\n\n/***/ }),\n/* 219 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort:\n 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n\n\n/***/ }),\n/* 220 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative:\n 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative:\n 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive:\n 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone:\n 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n\n\n/***/ }),\n/* 221 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n\n\n/***/ }),\n/* 222 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n\n\n/***/ }),\n/* 223 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays:\n 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n\n\n/***/ }),\n/* 224 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort:\n 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n\n\n/***/ }),\n/* 225 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort:\n 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n\n\n/***/ }),\n/* 226 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n\n\n/***/ }),\n/* 227 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n\n\n/***/ }),\n/* 228 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n\n\n/***/ }),\n/* 229 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n\n\n/***/ }),\n/* 230 */\n/***/ (function(module, exports, __webpack_require__) {\n\n//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n true ? factory(__webpack_require__(0)) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhTw;\n\n})));\n\n\n/***/ }),\n/* 231 */,\n/* 232 */,\n/* 233 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @preserve\n * numeral.js\n * version : 2.0.6\n * author : Adam Draper\n * license : MIT\n * http://adamwdraper.github.com/Numeral-js/\n */\n\n(function (global, factory) {\n if (true) {\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n global.numeral = factory();\n }\n}(this, function () {\n /************************************\n Variables\n ************************************/\n\n var numeral,\n _,\n VERSION = '2.0.6',\n formats = {},\n locales = {},\n defaults = {\n currentLocale: 'en',\n zeroFormat: null,\n nullFormat: null,\n defaultFormat: '0,0',\n scalePercentBy100: true\n },\n options = {\n currentLocale: defaults.currentLocale,\n zeroFormat: defaults.zeroFormat,\n nullFormat: defaults.nullFormat,\n defaultFormat: defaults.defaultFormat,\n scalePercentBy100: defaults.scalePercentBy100\n };\n\n\n /************************************\n Constructors\n ************************************/\n\n // Numeral prototype object\n function Numeral(input, number) {\n this._input = input;\n\n this._value = number;\n }\n\n numeral = function(input) {\n var value,\n kind,\n unformatFunction,\n regexp;\n\n if (numeral.isNumeral(input)) {\n value = input.value();\n } else if (input === 0 || typeof input === 'undefined') {\n value = 0;\n } else if (input === null || _.isNaN(input)) {\n value = null;\n } else if (typeof input === 'string') {\n if (options.zeroFormat && input === options.zeroFormat) {\n value = 0;\n } else if (options.nullFormat && input === options.nullFormat || !input.replace(/[^0-9]+/g, '').length) {\n value = null;\n } else {\n for (kind in formats) {\n regexp = typeof formats[kind].regexps.unformat === 'function' ? formats[kind].regexps.unformat() : formats[kind].regexps.unformat;\n\n if (regexp && input.match(regexp)) {\n unformatFunction = formats[kind].unformat;\n\n break;\n }\n }\n\n unformatFunction = unformatFunction || numeral._.stringToNumber;\n\n value = unformatFunction(input);\n }\n } else {\n value = Number(input)|| null;\n }\n\n return new Numeral(input, value);\n };\n\n // version number\n numeral.version = VERSION;\n\n // compare numeral object\n numeral.isNumeral = function(obj) {\n return obj instanceof Numeral;\n };\n\n // helper functions\n numeral._ = _ = {\n // formats numbers separators, decimals places, signs, abbreviations\n numberToFormat: function(value, format, roundingFunction) {\n var locale = locales[numeral.options.currentLocale],\n negP = false,\n optDec = false,\n leadingCount = 0,\n abbr = '',\n trillion = 1000000000000,\n billion = 1000000000,\n million = 1000000,\n thousand = 1000,\n decimal = '',\n neg = false,\n abbrForce, // force abbreviation\n abs,\n min,\n max,\n power,\n int,\n precision,\n signed,\n thousands,\n output;\n\n // make sure we never format a null value\n value = value || 0;\n\n abs = Math.abs(value);\n\n // see if we should use parentheses for negative number or if we should prefix with a sign\n // if both are present we default to parentheses\n if (numeral._.includes(format, '(')) {\n negP = true;\n format = format.replace(/[\\(|\\)]/g, '');\n } else if (numeral._.includes(format, '+') || numeral._.includes(format, '-')) {\n signed = numeral._.includes(format, '+') ? format.indexOf('+') : value < 0 ? format.indexOf('-') : -1;\n format = format.replace(/[\\+|\\-]/g, '');\n }\n\n // see if abbreviation is wanted\n if (numeral._.includes(format, 'a')) {\n abbrForce = format.match(/a(k|m|b|t)?/);\n\n abbrForce = abbrForce ? abbrForce[1] : false;\n\n // check for space before abbreviation\n if (numeral._.includes(format, ' a')) {\n abbr = ' ';\n }\n\n format = format.replace(new RegExp(abbr + 'a[kmbt]?'), '');\n\n if (abs >= trillion && !abbrForce || abbrForce === 't') {\n // trillion\n abbr += locale.abbreviations.trillion;\n value = value / trillion;\n } else if (abs < trillion && abs >= billion && !abbrForce || abbrForce === 'b') {\n // billion\n abbr += locale.abbreviations.billion;\n value = value / billion;\n } else if (abs < billion && abs >= million && !abbrForce || abbrForce === 'm') {\n // million\n abbr += locale.abbreviations.million;\n value = value / million;\n } else if (abs < million && abs >= thousand && !abbrForce || abbrForce === 'k') {\n // thousand\n abbr += locale.abbreviations.thousand;\n value = value / thousand;\n }\n }\n\n // check for optional decimals\n if (numeral._.includes(format, '[.]')) {\n optDec = true;\n format = format.replace('[.]', '.');\n }\n\n // break number and format\n int = value.toString().split('.')[0];\n precision = format.split('.')[1];\n thousands = format.indexOf(',');\n leadingCount = (format.split('.')[0].split(',')[0].match(/0/g) || []).length;\n\n if (precision) {\n if (numeral._.includes(precision, '[')) {\n precision = precision.replace(']', '');\n precision = precision.split('[');\n decimal = numeral._.toFixed(value, (precision[0].length + precision[1].length), roundingFunction, precision[1].length);\n } else {\n decimal = numeral._.toFixed(value, precision.length, roundingFunction);\n }\n\n int = decimal.split('.')[0];\n\n if (numeral._.includes(decimal, '.')) {\n decimal = locale.delimiters.decimal + decimal.split('.')[1];\n } else {\n decimal = '';\n }\n\n if (optDec && Number(decimal.slice(1)) === 0) {\n decimal = '';\n }\n } else {\n int = numeral._.toFixed(value, 0, roundingFunction);\n }\n\n // check abbreviation again after rounding\n if (abbr && !abbrForce && Number(int) >= 1000 && abbr !== locale.abbreviations.trillion) {\n int = String(Number(int) / 1000);\n\n switch (abbr) {\n case locale.abbreviations.thousand:\n abbr = locale.abbreviations.million;\n break;\n case locale.abbreviations.million:\n abbr = locale.abbreviations.billion;\n break;\n case locale.abbreviations.billion:\n abbr = locale.abbreviations.trillion;\n break;\n }\n }\n\n\n // format number\n if (numeral._.includes(int, '-')) {\n int = int.slice(1);\n neg = true;\n }\n\n if (int.length < leadingCount) {\n for (var i = leadingCount - int.length; i > 0; i--) {\n int = '0' + int;\n }\n }\n\n if (thousands > -1) {\n int = int.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1' + locale.delimiters.thousands);\n }\n\n if (format.indexOf('.') === 0) {\n int = '';\n }\n\n output = int + decimal + (abbr ? abbr : '');\n\n if (negP) {\n output = (negP && neg ? '(' : '') + output + (negP && neg ? ')' : '');\n } else {\n if (signed >= 0) {\n output = signed === 0 ? (neg ? '-' : '+') + output : output + (neg ? '-' : '+');\n } else if (neg) {\n output = '-' + output;\n }\n }\n\n return output;\n },\n // unformats numbers separators, decimals places, signs, abbreviations\n stringToNumber: function(string) {\n var locale = locales[options.currentLocale],\n stringOriginal = string,\n abbreviations = {\n thousand: 3,\n million: 6,\n billion: 9,\n trillion: 12\n },\n abbreviation,\n value,\n i,\n regexp;\n\n if (options.zeroFormat && string === options.zeroFormat) {\n value = 0;\n } else if (options.nullFormat && string === options.nullFormat || !string.replace(/[^0-9]+/g, '').length) {\n value = null;\n } else {\n value = 1;\n\n if (locale.delimiters.decimal !== '.') {\n string = string.replace(/\\./g, '').replace(locale.delimiters.decimal, '.');\n }\n\n for (abbreviation in abbreviations) {\n regexp = new RegExp('[^a-zA-Z]' + locale.abbreviations[abbreviation] + '(?:\\\\)|(\\\\' + locale.currency.symbol + ')?(?:\\\\))?)?$');\n\n if (stringOriginal.match(regexp)) {\n value *= Math.pow(10, abbreviations[abbreviation]);\n break;\n }\n }\n\n // check for negative number\n value *= (string.split('-').length + Math.min(string.split('(').length - 1, string.split(')').length - 1)) % 2 ? 1 : -1;\n\n // remove non numbers\n string = string.replace(/[^0-9\\.]+/g, '');\n\n value *= Number(string);\n }\n\n return value;\n },\n isNaN: function(value) {\n return typeof value === 'number' && isNaN(value);\n },\n includes: function(string, search) {\n return string.indexOf(search) !== -1;\n },\n insert: function(string, subString, start) {\n return string.slice(0, start) + subString + string.slice(start);\n },\n reduce: function(array, callback /*, initialValue*/) {\n if (this === null) {\n throw new TypeError('Array.prototype.reduce called on null or undefined');\n }\n\n if (typeof callback !== 'function') {\n throw new TypeError(callback + ' is not a function');\n }\n\n var t = Object(array),\n len = t.length >>> 0,\n k = 0,\n value;\n\n if (arguments.length === 3) {\n value = arguments[2];\n } else {\n while (k < len && !(k in t)) {\n k++;\n }\n\n if (k >= len) {\n throw new TypeError('Reduce of empty array with no initial value');\n }\n\n value = t[k++];\n }\n for (; k < len; k++) {\n if (k in t) {\n value = callback(value, t[k], k, t);\n }\n }\n return value;\n },\n /**\n * Computes the multiplier necessary to make x >= 1,\n * effectively eliminating miscalculations caused by\n * finite precision.\n */\n multiplier: function (x) {\n var parts = x.toString().split('.');\n\n return parts.length < 2 ? 1 : Math.pow(10, parts[1].length);\n },\n /**\n * Given a variable number of arguments, returns the maximum\n * multiplier that must be used to normalize an operation involving\n * all of them.\n */\n correctionFactor: function () {\n var args = Array.prototype.slice.call(arguments);\n\n return args.reduce(function(accum, next) {\n var mn = _.multiplier(next);\n return accum > mn ? accum : mn;\n }, 1);\n },\n /**\n * Implementation of toFixed() that treats floats more like decimals\n *\n * Fixes binary rounding issues (eg. (0.615).toFixed(2) === '0.61') that present\n * problems for accounting- and finance-related software.\n */\n toFixed: function(value, maxDecimals, roundingFunction, optionals) {\n var splitValue = value.toString().split('.'),\n minDecimals = maxDecimals - (optionals || 0),\n boundedPrecision,\n optionalsRegExp,\n power,\n output;\n\n // Use the smallest precision value possible to avoid errors from floating point representation\n if (splitValue.length === 2) {\n boundedPrecision = Math.min(Math.max(splitValue[1].length, minDecimals), maxDecimals);\n } else {\n boundedPrecision = minDecimals;\n }\n\n power = Math.pow(10, boundedPrecision);\n\n // Multiply up by precision, round accurately, then divide and use native toFixed():\n output = (roundingFunction(value + 'e+' + boundedPrecision) / power).toFixed(boundedPrecision);\n\n if (optionals > maxDecimals - boundedPrecision) {\n optionalsRegExp = new RegExp('\\\\.?0{1,' + (optionals - (maxDecimals - boundedPrecision)) + '}$');\n output = output.replace(optionalsRegExp, '');\n }\n\n return output;\n }\n };\n\n // avaliable options\n numeral.options = options;\n\n // avaliable formats\n numeral.formats = formats;\n\n // avaliable formats\n numeral.locales = locales;\n\n // This function sets the current locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n numeral.locale = function(key) {\n if (key) {\n options.currentLocale = key.toLowerCase();\n }\n\n return options.currentLocale;\n };\n\n // This function provides access to the loaded locale data. If\n // no arguments are passed in, it will simply return the current\n // global locale object.\n numeral.localeData = function(key) {\n if (!key) {\n return locales[options.currentLocale];\n }\n\n key = key.toLowerCase();\n\n if (!locales[key]) {\n throw new Error('Unknown locale : ' + key);\n }\n\n return locales[key];\n };\n\n numeral.reset = function() {\n for (var property in defaults) {\n options[property] = defaults[property];\n }\n };\n\n numeral.zeroFormat = function(format) {\n options.zeroFormat = typeof(format) === 'string' ? format : null;\n };\n\n numeral.nullFormat = function (format) {\n options.nullFormat = typeof(format) === 'string' ? format : null;\n };\n\n numeral.defaultFormat = function(format) {\n options.defaultFormat = typeof(format) === 'string' ? format : '0.0';\n };\n\n numeral.register = function(type, name, format) {\n name = name.toLowerCase();\n\n if (this[type + 's'][name]) {\n throw new TypeError(name + ' ' + type + ' already registered.');\n }\n\n this[type + 's'][name] = format;\n\n return format;\n };\n\n\n numeral.validate = function(val, culture) {\n var _decimalSep,\n _thousandSep,\n _currSymbol,\n _valArray,\n _abbrObj,\n _thousandRegEx,\n localeData,\n temp;\n\n //coerce val to string\n if (typeof val !== 'string') {\n val += '';\n\n if (console.warn) {\n console.warn('Numeral.js: Value is not string. It has been co-erced to: ', val);\n }\n }\n\n //trim whitespaces from either sides\n val = val.trim();\n\n //if val is just digits return true\n if (!!val.match(/^\\d+$/)) {\n return true;\n }\n\n //if val is empty return false\n if (val === '') {\n return false;\n }\n\n //get the decimal and thousands separator from numeral.localeData\n try {\n //check if the culture is understood by numeral. if not, default it to current locale\n localeData = numeral.localeData(culture);\n } catch (e) {\n localeData = numeral.localeData(numeral.locale());\n }\n\n //setup the delimiters and currency symbol based on culture/locale\n _currSymbol = localeData.currency.symbol;\n _abbrObj = localeData.abbreviations;\n _decimalSep = localeData.delimiters.decimal;\n if (localeData.delimiters.thousands === '.') {\n _thousandSep = '\\\\.';\n } else {\n _thousandSep = localeData.delimiters.thousands;\n }\n\n // validating currency symbol\n temp = val.match(/^[^\\d]+/);\n if (temp !== null) {\n val = val.substr(1);\n if (temp[0] !== _currSymbol) {\n return false;\n }\n }\n\n //validating abbreviation symbol\n temp = val.match(/[^\\d]+$/);\n if (temp !== null) {\n val = val.slice(0, -1);\n if (temp[0] !== _abbrObj.thousand && temp[0] !== _abbrObj.million && temp[0] !== _abbrObj.billion && temp[0] !== _abbrObj.trillion) {\n return false;\n }\n }\n\n _thousandRegEx = new RegExp(_thousandSep + '{2}');\n\n if (!val.match(/[^\\d.,]/g)) {\n _valArray = val.split(_decimalSep);\n if (_valArray.length > 2) {\n return false;\n } else {\n if (_valArray.length < 2) {\n return ( !! _valArray[0].match(/^\\d+.*\\d$/) && !_valArray[0].match(_thousandRegEx));\n } else {\n if (_valArray[0].length === 1) {\n return ( !! _valArray[0].match(/^\\d+$/) && !_valArray[0].match(_thousandRegEx) && !! _valArray[1].match(/^\\d+$/));\n } else {\n return ( !! _valArray[0].match(/^\\d+.*\\d$/) && !_valArray[0].match(_thousandRegEx) && !! _valArray[1].match(/^\\d+$/));\n }\n }\n }\n }\n\n return false;\n };\n\n\n /************************************\n Numeral Prototype\n ************************************/\n\n numeral.fn = Numeral.prototype = {\n clone: function() {\n return numeral(this);\n },\n format: function(inputString, roundingFunction) {\n var value = this._value,\n format = inputString || options.defaultFormat,\n kind,\n output,\n formatFunction;\n\n // make sure we have a roundingFunction\n roundingFunction = roundingFunction || Math.round;\n\n // format based on value\n if (value === 0 && options.zeroFormat !== null) {\n output = options.zeroFormat;\n } else if (value === null && options.nullFormat !== null) {\n output = options.nullFormat;\n } else {\n for (kind in formats) {\n if (format.match(formats[kind].regexps.format)) {\n formatFunction = formats[kind].format;\n\n break;\n }\n }\n\n formatFunction = formatFunction || numeral._.numberToFormat;\n\n output = formatFunction(value, format, roundingFunction);\n }\n\n return output;\n },\n value: function() {\n return this._value;\n },\n input: function() {\n return this._input;\n },\n set: function(value) {\n this._value = Number(value);\n\n return this;\n },\n add: function(value) {\n var corrFactor = _.correctionFactor.call(null, this._value, value);\n\n function cback(accum, curr, currI, O) {\n return accum + Math.round(corrFactor * curr);\n }\n\n this._value = _.reduce([this._value, value], cback, 0) / corrFactor;\n\n return this;\n },\n subtract: function(value) {\n var corrFactor = _.correctionFactor.call(null, this._value, value);\n\n function cback(accum, curr, currI, O) {\n return accum - Math.round(corrFactor * curr);\n }\n\n this._value = _.reduce([value], cback, Math.round(this._value * corrFactor)) / corrFactor;\n\n return this;\n },\n multiply: function(value) {\n function cback(accum, curr, currI, O) {\n var corrFactor = _.correctionFactor(accum, curr);\n return Math.round(accum * corrFactor) * Math.round(curr * corrFactor) / Math.round(corrFactor * corrFactor);\n }\n\n this._value = _.reduce([this._value, value], cback, 1);\n\n return this;\n },\n divide: function(value) {\n function cback(accum, curr, currI, O) {\n var corrFactor = _.correctionFactor(accum, curr);\n return Math.round(accum * corrFactor) / Math.round(curr * corrFactor);\n }\n\n this._value = _.reduce([this._value, value], cback);\n\n return this;\n },\n difference: function(value) {\n return Math.abs(numeral(this._value).subtract(value).value());\n }\n };\n\n /************************************\n Default Locale && Format\n ************************************/\n\n numeral.register('locale', 'en', {\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function(number) {\n var b = number % 10;\n return (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n },\n currency: {\n symbol: '$'\n }\n });\n\n \n\n(function() {\n numeral.register('format', 'bps', {\n regexps: {\n format: /(BPS)/,\n unformat: /(BPS)/\n },\n format: function(value, format, roundingFunction) {\n var space = numeral._.includes(format, ' BPS') ? ' ' : '',\n output;\n\n value = value * 10000;\n\n // check for space before BPS\n format = format.replace(/\\s?BPS/, '');\n\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n if (numeral._.includes(output, ')')) {\n output = output.split('');\n\n output.splice(-1, 0, space + 'BPS');\n\n output = output.join('');\n } else {\n output = output + space + 'BPS';\n }\n\n return output;\n },\n unformat: function(string) {\n return +(numeral._.stringToNumber(string) * 0.0001).toFixed(15);\n }\n });\n})();\n\n\n(function() {\n var decimal = {\n base: 1000,\n suffixes: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\n },\n binary = {\n base: 1024,\n suffixes: ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']\n };\n\n var allSuffixes = decimal.suffixes.concat(binary.suffixes.filter(function (item) {\n return decimal.suffixes.indexOf(item) < 0;\n }));\n var unformatRegex = allSuffixes.join('|');\n // Allow support for BPS (http://www.investopedia.com/terms/b/basispoint.asp)\n unformatRegex = '(' + unformatRegex.replace('B', 'B(?!PS)') + ')';\n\n numeral.register('format', 'bytes', {\n regexps: {\n format: /([0\\s]i?b)/,\n unformat: new RegExp(unformatRegex)\n },\n format: function(value, format, roundingFunction) {\n var output,\n bytes = numeral._.includes(format, 'ib') ? binary : decimal,\n suffix = numeral._.includes(format, ' b') || numeral._.includes(format, ' ib') ? ' ' : '',\n power,\n min,\n max;\n\n // check for space before\n format = format.replace(/\\s?i?b/, '');\n\n for (power = 0; power <= bytes.suffixes.length; power++) {\n min = Math.pow(bytes.base, power);\n max = Math.pow(bytes.base, power + 1);\n\n if (value === null || value === 0 || value >= min && value < max) {\n suffix += bytes.suffixes[power];\n\n if (min > 0) {\n value = value / min;\n }\n\n break;\n }\n }\n\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n return output + suffix;\n },\n unformat: function(string) {\n var value = numeral._.stringToNumber(string),\n power,\n bytesMultiplier;\n\n if (value) {\n for (power = decimal.suffixes.length - 1; power >= 0; power--) {\n if (numeral._.includes(string, decimal.suffixes[power])) {\n bytesMultiplier = Math.pow(decimal.base, power);\n\n break;\n }\n\n if (numeral._.includes(string, binary.suffixes[power])) {\n bytesMultiplier = Math.pow(binary.base, power);\n\n break;\n }\n }\n\n value *= (bytesMultiplier || 1);\n }\n\n return value;\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'currency', {\n regexps: {\n format: /(\\$)/\n },\n format: function(value, format, roundingFunction) {\n var locale = numeral.locales[numeral.options.currentLocale],\n symbols = {\n before: format.match(/^([\\+|\\-|\\(|\\s|\\$]*)/)[0],\n after: format.match(/([\\+|\\-|\\)|\\s|\\$]*)$/)[0]\n },\n output,\n symbol,\n i;\n\n // strip format of spaces and $\n format = format.replace(/\\s?\\$\\s?/, '');\n\n // format the number\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n // update the before and after based on value\n if (value >= 0) {\n symbols.before = symbols.before.replace(/[\\-\\(]/, '');\n symbols.after = symbols.after.replace(/[\\-\\)]/, '');\n } else if (value < 0 && (!numeral._.includes(symbols.before, '-') && !numeral._.includes(symbols.before, '('))) {\n symbols.before = '-' + symbols.before;\n }\n\n // loop through each before symbol\n for (i = 0; i < symbols.before.length; i++) {\n symbol = symbols.before[i];\n\n switch (symbol) {\n case '$':\n output = numeral._.insert(output, locale.currency.symbol, i);\n break;\n case ' ':\n output = numeral._.insert(output, ' ', i + locale.currency.symbol.length - 1);\n break;\n }\n }\n\n // loop through each after symbol\n for (i = symbols.after.length - 1; i >= 0; i--) {\n symbol = symbols.after[i];\n\n switch (symbol) {\n case '$':\n output = i === symbols.after.length - 1 ? output + locale.currency.symbol : numeral._.insert(output, locale.currency.symbol, -(symbols.after.length - (1 + i)));\n break;\n case ' ':\n output = i === symbols.after.length - 1 ? output + ' ' : numeral._.insert(output, ' ', -(symbols.after.length - (1 + i) + locale.currency.symbol.length - 1));\n break;\n }\n }\n\n\n return output;\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'exponential', {\n regexps: {\n format: /(e\\+|e-)/,\n unformat: /(e\\+|e-)/\n },\n format: function(value, format, roundingFunction) {\n var output,\n exponential = typeof value === 'number' && !numeral._.isNaN(value) ? value.toExponential() : '0e+0',\n parts = exponential.split('e');\n\n format = format.replace(/e[\\+|\\-]{1}0/, '');\n\n output = numeral._.numberToFormat(Number(parts[0]), format, roundingFunction);\n\n return output + 'e' + parts[1];\n },\n unformat: function(string) {\n var parts = numeral._.includes(string, 'e+') ? string.split('e+') : string.split('e-'),\n value = Number(parts[0]),\n power = Number(parts[1]);\n\n power = numeral._.includes(string, 'e-') ? power *= -1 : power;\n\n function cback(accum, curr, currI, O) {\n var corrFactor = numeral._.correctionFactor(accum, curr),\n num = (accum * corrFactor) * (curr * corrFactor) / (corrFactor * corrFactor);\n return num;\n }\n\n return numeral._.reduce([value, Math.pow(10, power)], cback, 1);\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'ordinal', {\n regexps: {\n format: /(o)/\n },\n format: function(value, format, roundingFunction) {\n var locale = numeral.locales[numeral.options.currentLocale],\n output,\n ordinal = numeral._.includes(format, ' o') ? ' ' : '';\n\n // check for space before\n format = format.replace(/\\s?o/, '');\n\n ordinal += locale.ordinal(value);\n\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n return output + ordinal;\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'percentage', {\n regexps: {\n format: /(%)/,\n unformat: /(%)/\n },\n format: function(value, format, roundingFunction) {\n var space = numeral._.includes(format, ' %') ? ' ' : '',\n output;\n\n if (numeral.options.scalePercentBy100) {\n value = value * 100;\n }\n\n // check for space before %\n format = format.replace(/\\s?\\%/, '');\n\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n if (numeral._.includes(output, ')')) {\n output = output.split('');\n\n output.splice(-1, 0, space + '%');\n\n output = output.join('');\n } else {\n output = output + space + '%';\n }\n\n return output;\n },\n unformat: function(string) {\n var number = numeral._.stringToNumber(string);\n if (numeral.options.scalePercentBy100) {\n return number * 0.01;\n }\n return number;\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'time', {\n regexps: {\n format: /(:)/,\n unformat: /(:)/\n },\n format: function(value, format, roundingFunction) {\n var hours = Math.floor(value / 60 / 60),\n minutes = Math.floor((value - (hours * 60 * 60)) / 60),\n seconds = Math.round(value - (hours * 60 * 60) - (minutes * 60));\n\n return hours + ':' + (minutes < 10 ? '0' + minutes : minutes) + ':' + (seconds < 10 ? '0' + seconds : seconds);\n },\n unformat: function(string) {\n var timeArray = string.split(':'),\n seconds = 0;\n\n // turn hours and minutes into seconds and add them all up\n if (timeArray.length === 3) {\n // hours\n seconds = seconds + (Number(timeArray[0]) * 60 * 60);\n // minutes\n seconds = seconds + (Number(timeArray[1]) * 60);\n // seconds\n seconds = seconds + Number(timeArray[2]);\n } else if (timeArray.length === 2) {\n // minutes\n seconds = seconds + (Number(timeArray[0]) * 60);\n // seconds\n seconds = seconds + Number(timeArray[1]);\n }\n return Number(seconds);\n }\n });\n})();\n\nreturn numeral;\n}));\n\n\n/***/ }),\n/* 234 */,\n/* 235 */,\n/* 236 */,\n/* 237 */,\n/* 238 */,\n/* 239 */,\n/* 240 */,\n/* 241 */,\n/* 242 */,\n/* 243 */,\n/* 244 */,\n/* 245 */,\n/* 246 */,\n/* 247 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*!\n * FullCalendar v3.9.0\n * Docs & License: https://fullcalendar.io/\n * (c) 2018 Adam Shaw\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory(__webpack_require__(0), __webpack_require__(7));\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 = 236);\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) {\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') {\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) {\r\n return end.diff(start, unit, true);\r\n }\r\n else if (moment.isDuration(start)) {\r\n return start.as(unit);\r\n }\r\n else {\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)) {\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])) {\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) {\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__(10);\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) {\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) {\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__(208);\r\nvar Class_1 = __webpack_require__(33);\r\nvar EventDefParser_1 = __webpack_require__(49);\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__(14);\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') {\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/* 10 */\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()) {\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 {\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) {\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') {\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) {\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 {\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) {\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/* 11 */\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__(14);\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/* 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\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar EventDef_1 = __webpack_require__(34);\r\nvar EventInstance_1 = __webpack_require__(209);\r\nvar EventDateProfile_1 = __webpack_require__(17);\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/* 14 */\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]) {\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/* 15 */\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/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.version = '3.9.0';\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\nvar date_formatting_1 = __webpack_require__(47);\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__(31);\r\nexports.datepickerLocale = locale_1.datepickerLocale;\r\nexports.locale = locale_1.locale;\r\nvar moment_ext_1 = __webpack_require__(10);\r\nexports.moment = moment_ext_1.default;\r\nvar EmitterMixin_1 = __webpack_require__(11);\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__(48);\r\nexports.Model = Model_1.default;\r\nvar Constraints_1 = __webpack_require__(207);\r\nexports.Constraints = Constraints_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__(212);\r\nexports.BusinessHourGenerator = BusinessHourGenerator_1.default;\r\nvar EventDef_1 = __webpack_require__(34);\r\nexports.EventDef = EventDef_1.default;\r\nvar EventDefMutation_1 = __webpack_require__(37);\r\nexports.EventDefMutation = EventDefMutation_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__(51);\r\nexports.defineThemeSystem = ThemeRegistry_1.defineThemeSystem;\r\nvar EventInstanceGroup_1 = __webpack_require__(18);\r\nexports.EventInstanceGroup = EventInstanceGroup_1.default;\r\nvar ArrayEventSource_1 = __webpack_require__(52);\r\nexports.ArrayEventSource = ArrayEventSource_1.default;\r\nvar FuncEventSource_1 = __webpack_require__(215);\r\nexports.FuncEventSource = FuncEventSource_1.default;\r\nvar JsonFeedEventSource_1 = __webpack_require__(216);\r\nexports.JsonFeedEventSource = JsonFeedEventSource_1.default;\r\nvar EventFootprint_1 = __webpack_require__(36);\r\nexports.EventFootprint = EventFootprint_1.default;\r\nvar Class_1 = __webpack_require__(33);\r\nexports.Class = Class_1.default;\r\nvar Mixin_1 = __webpack_require__(14);\r\nexports.Mixin = Mixin_1.default;\r\nvar CoordCache_1 = __webpack_require__(53);\r\nexports.CoordCache = CoordCache_1.default;\r\nvar DragListener_1 = __webpack_require__(54);\r\nexports.DragListener = DragListener_1.default;\r\nvar Promise_1 = __webpack_require__(20);\r\nexports.Promise = Promise_1.default;\r\nvar TaskQueue_1 = __webpack_require__(217);\r\nexports.TaskQueue = TaskQueue_1.default;\r\nvar RenderQueue_1 = __webpack_require__(218);\r\nexports.RenderQueue = RenderQueue_1.default;\r\nvar Scroller_1 = __webpack_require__(39);\r\nexports.Scroller = Scroller_1.default;\r\nvar Theme_1 = __webpack_require__(19);\r\nexports.Theme = Theme_1.default;\r\nvar DateComponent_1 = __webpack_require__(219);\r\nexports.DateComponent = DateComponent_1.default;\r\nvar InteractiveDateComponent_1 = __webpack_require__(40);\r\nexports.InteractiveDateComponent = InteractiveDateComponent_1.default;\r\nvar Calendar_1 = __webpack_require__(220);\r\nexports.Calendar = Calendar_1.default;\r\nvar View_1 = __webpack_require__(41);\r\nexports.View = View_1.default;\r\nvar ViewRegistry_1 = __webpack_require__(22);\r\nexports.defineView = ViewRegistry_1.defineView;\r\nexports.getViewConfig = ViewRegistry_1.getViewConfig;\r\nvar DayTableMixin_1 = __webpack_require__(55);\r\nexports.DayTableMixin = DayTableMixin_1.default;\r\nvar BusinessHourRenderer_1 = __webpack_require__(56);\r\nexports.BusinessHourRenderer = BusinessHourRenderer_1.default;\r\nvar EventRenderer_1 = __webpack_require__(42);\r\nexports.EventRenderer = EventRenderer_1.default;\r\nvar FillRenderer_1 = __webpack_require__(57);\r\nexports.FillRenderer = FillRenderer_1.default;\r\nvar HelperRenderer_1 = __webpack_require__(58);\r\nexports.HelperRenderer = HelperRenderer_1.default;\r\nvar ExternalDropping_1 = __webpack_require__(222);\r\nexports.ExternalDropping = ExternalDropping_1.default;\r\nvar EventResizing_1 = __webpack_require__(223);\r\nexports.EventResizing = EventResizing_1.default;\r\nvar EventPointing_1 = __webpack_require__(59);\r\nexports.EventPointing = EventPointing_1.default;\r\nvar EventDragging_1 = __webpack_require__(224);\r\nexports.EventDragging = EventDragging_1.default;\r\nvar DateSelecting_1 = __webpack_require__(225);\r\nexports.DateSelecting = DateSelecting_1.default;\r\nvar StandardInteractionsMixin_1 = __webpack_require__(60);\r\nexports.StandardInteractionsMixin = StandardInteractionsMixin_1.default;\r\nvar AgendaView_1 = __webpack_require__(226);\r\nexports.AgendaView = AgendaView_1.default;\r\nvar TimeGrid_1 = __webpack_require__(227);\r\nexports.TimeGrid = TimeGrid_1.default;\r\nvar DayGrid_1 = __webpack_require__(61);\r\nexports.DayGrid = DayGrid_1.default;\r\nvar BasicView_1 = __webpack_require__(62);\r\nexports.BasicView = BasicView_1.default;\r\nvar MonthView_1 = __webpack_require__(229);\r\nexports.MonthView = MonthView_1.default;\r\nvar ListView_1 = __webpack_require__(230);\r\nexports.ListView = ListView_1.default;\r\n\n\n/***/ }),\n/* 17 */\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 (end && (!end.isValid() || !end.isAfter(start))) {\r\n end = null;\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 && 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/* 18 */\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__(35);\r\nvar EventRange_1 = __webpack_require__(211);\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/* 19 */\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) {\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/* 20 */\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/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar exportHooks = __webpack_require__(16);\r\nvar EmitterMixin_1 = __webpack_require__(11);\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) {\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);\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/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar exportHooks = __webpack_require__(16);\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/* 23 */\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__(54);\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)) {\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/* 24 */,\n/* 25 */,\n/* 26 */,\n/* 27 */,\n/* 28 */,\n/* 29 */,\n/* 30 */,\n/* 31 */\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__(16);\r\nvar options_1 = __webpack_require__(32);\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/* 32 */\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/* 33 */\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/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar ParsableModelMixin_1 = __webpack_require__(208);\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) {\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/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventRange_1 = __webpack_require__(211);\r\nvar EventFootprint_1 = __webpack_require__(36);\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/* 36 */\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/* 37 */\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__(17);\r\nvar EventDef_1 = __webpack_require__(34);\r\nvar EventDefDateMutation_1 = __webpack_require__(50);\r\nvar SingleEventDef_1 = __webpack_require__(13);\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]) {\r\n miscProps[propName] = rawProps[propName];\r\n }\r\n }\r\n dateProfile = EventDateProfile_1.default.parse(dateProps, eventDef.source);\r\n if (dateProfile) {\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/* 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 tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Class_1 = __webpack_require__(33);\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) ? '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) ? '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/* 40 */\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__(219);\r\nvar GlobalEmitter_1 = __webpack_require__(21);\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/* 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 moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar RenderQueue_1 = __webpack_require__(218);\r\nvar DateProfileGenerator_1 = __webpack_require__(221);\r\nvar InteractiveDateComponent_1 = __webpack_require__(40);\r\nvar GlobalEmitter_1 = __webpack_require__(21);\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()) {\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 {\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']) {\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 this.triggerEventResize(eventInstance, eventMutation.dateMutation.endDelta, undoFunc, el, ev);\r\n };\r\n // Triggers event-resize handlers that have subscribed via the API\r\n View.prototype.triggerEventResize = function (eventInstance, durationDelta, undoFunc, el, ev) {\r\n this.publiclyTrigger('eventResize', {\r\n context: el[0],\r\n args: [\r\n eventInstance.toLegacy(),\r\n durationDelta,\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']) {\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) {\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/* 42 */\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) {\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) {\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) {\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) {\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) {\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/* 43 */,\n/* 44 */,\n/* 45 */,\n/* 46 */,\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment_ext_1 = __webpack_require__(10);\r\n// Plugin\r\n// -------------------------------------------------------------------------------------------------\r\nmoment_ext_1.newMomentProto.format = function () {\r\n if (this._fullCalendar && arguments[0]) {\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) {\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) {\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]) {\r\n chunks.push.apply(chunks, // append\r\n splitStringLiteral(match[1]));\r\n }\r\n else if (match[2]) {\r\n chunks.push({ maybe: chunkFormatString(match[2]) });\r\n }\r\n else if (match[3]) {\r\n chunks.push({ token: match[3] });\r\n }\r\n else if (match[5]) {\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]/)) {\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/* 48 */\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__(33);\r\nvar EmitterMixin_1 = __webpack_require__(11);\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) {\r\n if (satisfyCnt === depCnt) {\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) {\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 {\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) {\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) === '?') {\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) === '?') {\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/* 49 */\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__(13);\r\nvar RecurringEventDef_1 = __webpack_require__(210);\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/* 50 */\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__(17);\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/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar StandardTheme_1 = __webpack_require__(213);\r\nvar JqueryUiTheme_1 = __webpack_require__(214);\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/* 52 */\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__(20);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar SingleEventDef_1 = __webpack_require__(13);\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)) {\r\n rawProps = rawInput;\r\n }\r\n else if ($.isArray(rawInput)) {\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/* 53 */\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 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/* 54 */\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__(21);\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) {\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) {\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) {\r\n if (el.scrollTop() <= 0) {\r\n this.scrollTopVel = 0;\r\n }\r\n }\r\n else if (this.scrollTopVel > 0) {\r\n if (el.scrollTop() + el[0].clientHeight >= el[0].scrollHeight) {\r\n this.scrollTopVel = 0;\r\n }\r\n }\r\n if (this.scrollLeftVel < 0) {\r\n if (el.scrollLeft() <= 0) {\r\n this.scrollLeftVel = 0;\r\n }\r\n }\r\n else if (this.scrollLeftVel > 0) {\r\n if (el.scrollLeft() + el[0].clientWidth >= el[0].scrollWidth) {\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/* 55 */\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__(14);\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)) {\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) {\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) {\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/* 56 */\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/* 57 */\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) {\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/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar SingleEventDef_1 = __webpack_require__(13);\r\nvar EventFootprint_1 = __webpack_require__(36);\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/* 59 */\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__(21);\r\nvar Interaction_1 = __webpack_require__(15);\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/* 60 */\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__(14);\r\nvar DateClicking_1 = __webpack_require__(245);\r\nvar DateSelecting_1 = __webpack_require__(225);\r\nvar EventPointing_1 = __webpack_require__(59);\r\nvar EventDragging_1 = __webpack_require__(224);\r\nvar EventResizing_1 = __webpack_require__(223);\r\nvar ExternalDropping_1 = __webpack_require__(222);\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/* 61 */\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__(53);\r\nvar Popover_1 = __webpack_require__(249);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar EventFootprint_1 = __webpack_require__(36);\r\nvar BusinessHourRenderer_1 = __webpack_require__(56);\r\nvar StandardInteractionsMixin_1 = __webpack_require__(60);\r\nvar InteractiveDateComponent_1 = __webpack_require__(40);\r\nvar DayTableMixin_1 = __webpack_require__(55);\r\nvar DayGridEventRenderer_1 = __webpack_require__(250);\r\nvar DayGridHelperRenderer_1 = __webpack_require__(251);\r\nvar DayGridFillRenderer_1 = __webpack_require__(252);\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) {\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) {\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') {\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/* 62 */\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__(39);\r\nvar View_1 = __webpack_require__(41);\r\nvar BasicViewDateProfileGenerator_1 = __webpack_require__(228);\r\nvar DayGrid_1 = __webpack_require__(61);\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) {\r\n this.scroller.setHeight(scrollerHeight);\r\n scrollbarWidths = this.scroller.getScrollbarWidths();\r\n if (scrollbarWidths.left || scrollbarWidths.right) {\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/* 63 */,\n/* 64 */,\n/* 65 */,\n/* 66 */,\n/* 67 */,\n/* 68 */,\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/***/ (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__(49);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar util_1 = __webpack_require__(35);\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) {\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) {\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) {\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/* 208 */\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__(14);\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) {\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/* 209 */\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/* 210 */\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__(34);\r\nvar EventInstance_1 = __webpack_require__(209);\r\nvar EventDateProfile_1 = __webpack_require__(17);\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/* 211 */\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/* 212 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(35);\r\nvar EventInstanceGroup_1 = __webpack_require__(18);\r\nvar RecurringEventDef_1 = __webpack_require__(210);\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/* 213 */\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__(19);\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/* 214 */\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__(19);\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/* 215 */\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__(20);\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)) {\r\n rawProps = rawInput;\r\n }\r\n else if ($.isFunction(rawInput)) {\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/* 216 */\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__(20);\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') {\r\n rawProps = rawInput;\r\n }\r\n else if (typeof rawInput === 'string') {\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/* 217 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EmitterMixin_1 = __webpack_require__(11);\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/* 218 */\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__(217);\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)) {\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 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 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/* 219 */\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__(10);\r\nvar date_formatting_1 = __webpack_require__(47);\r\nvar Component_1 = __webpack_require__(237);\r\nvar util_2 = __webpack_require__(35);\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) {\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']) {\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']) {\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) {\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) {\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)) {\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/* 220 */\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__(32);\r\nvar Iterator_1 = __webpack_require__(238);\r\nvar GlobalEmitter_1 = __webpack_require__(21);\r\nvar EmitterMixin_1 = __webpack_require__(11);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar Toolbar_1 = __webpack_require__(239);\r\nvar OptionsManager_1 = __webpack_require__(240);\r\nvar ViewSpecManager_1 = __webpack_require__(241);\r\nvar Constraints_1 = __webpack_require__(207);\r\nvar locale_1 = __webpack_require__(31);\r\nvar moment_ext_1 = __webpack_require__(10);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar EventDateProfile_1 = __webpack_require__(17);\r\nvar EventManager_1 = __webpack_require__(242);\r\nvar BusinessHourGenerator_1 = __webpack_require__(212);\r\nvar EventSourceParser_1 = __webpack_require__(38);\r\nvar EventDefParser_1 = __webpack_require__(49);\r\nvar SingleEventDef_1 = __webpack_require__(13);\r\nvar EventDefMutation_1 = __webpack_require__(37);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar ThemeRegistry_1 = __webpack_require__(51);\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) {\r\n return this.optionsManager.get(name);\r\n }\r\n else {\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') {\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) {\r\n this.optionsManager.recordOverrides({\r\n visibleRange: dateOrRange\r\n });\r\n }\r\n else {\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) {\r\n _this.setToolbarsTitle(deps.title);\r\n }\r\n });\r\n view.watch('dateProfileForCalendar', ['dateProfile'], function (deps) {\r\n if (view === _this.view) {\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') {\r\n this.suggestedViewHeight = contentHeightInput;\r\n }\r\n else if (typeof contentHeightInput === 'function') {\r\n this.suggestedViewHeight = contentHeightInput();\r\n }\r\n else if (typeof heightInput === 'number') {\r\n this.suggestedViewHeight = heightInput - this.queryToolbarsHeight();\r\n }\r\n else if (typeof heightInput === 'function') {\r\n this.suggestedViewHeight = heightInput() - this.queryToolbarsHeight();\r\n }\r\n else if (heightInput === 'parent') {\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)) {\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 (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()) {\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) {\r\n adjustedZonedDate = zonedDate.clone().add(timeAdjust); // add milliseconds\r\n if (date.time().asMilliseconds() - adjustedZonedDate.time().asMilliseconds() === 0) {\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 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) {\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) {\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 {\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/* 221 */\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) {\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 = date.clone();\r\n var end;\r\n if (customAlignment) {\r\n start.startOf(customAlignment);\r\n }\r\n start.startOf('day');\r\n start = this._view.skipHiddenDays(start, direction);\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 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/* 222 */\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__(16);\r\nvar util_1 = __webpack_require__(4);\r\nvar moment_ext_1 = __webpack_require__(10);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar HitDragListener_1 = __webpack_require__(23);\r\nvar SingleEventDef_1 = __webpack_require__(13);\r\nvar EventInstanceGroup_1 = __webpack_require__(18);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar Interaction_1 = __webpack_require__(15);\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')) {\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) {\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) {\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 {\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/* 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 util_1 = __webpack_require__(4);\r\nvar EventDefMutation_1 = __webpack_require__(37);\r\nvar EventDefDateMutation_1 = __webpack_require__(50);\r\nvar HitDragListener_1 = __webpack_require__(23);\r\nvar Interaction_1 = __webpack_require__(15);\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) {\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/* 224 */\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__(37);\r\nvar EventDefDateMutation_1 = __webpack_require__(50);\r\nvar DragListener_1 = __webpack_require__(54);\r\nvar HitDragListener_1 = __webpack_require__(23);\r\nvar MouseFollower_1 = __webpack_require__(244);\r\nvar Interaction_1 = __webpack_require__(15);\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/* 225 */\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__(23);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar Interaction_1 = __webpack_require__(15);\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) {\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/* 226 */\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__(39);\r\nvar View_1 = __webpack_require__(41);\r\nvar TimeGrid_1 = __webpack_require__(227);\r\nvar DayGrid_1 = __webpack_require__(61);\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')) {\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 '' +\r\n '' +\r\n '
 
' +\r\n (this.dayGrid ?\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) {\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) {\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/* 227 */\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__(40);\r\nvar BusinessHourRenderer_1 = __webpack_require__(56);\r\nvar StandardInteractionsMixin_1 = __webpack_require__(60);\r\nvar DayTableMixin_1 = __webpack_require__(55);\r\nvar CoordCache_1 = __webpack_require__(53);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar TimeGridEventRenderer_1 = __webpack_require__(246);\r\nvar TimeGridHelperRenderer_1 = __webpack_require__(247);\r\nvar TimeGridFillRenderer_1 = __webpack_require__(248);\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) {\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++) {\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) {\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) {\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 {\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')) {\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/* 228 */\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__(221);\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/* 229 */\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__(62);\r\nvar MonthViewDateProfileGenerator_1 = __webpack_require__(253);\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/* 230 */\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__(41);\r\nvar Scroller_1 = __webpack_require__(39);\r\nvar ListEventRenderer_1 = __webpack_require__(254);\r\nvar ListEventPointing_1 = __webpack_require__(255);\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) {\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/* 231 */,\n/* 232 */,\n/* 233 */,\n/* 234 */,\n/* 235 */,\n/* 236 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(3);\r\nvar exportHooks = __webpack_require__(16);\r\nvar util_1 = __webpack_require__(4);\r\nvar Calendar_1 = __webpack_require__(220);\r\n// for intentional side-effects\r\n__webpack_require__(10);\r\n__webpack_require__(47);\r\n__webpack_require__(256);\r\n__webpack_require__(257);\r\n__webpack_require__(260);\r\n__webpack_require__(261);\r\n__webpack_require__(262);\r\n__webpack_require__(263);\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) {\r\n res = calendar;\r\n }\r\n }\r\n else if (options === 'destroy') {\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') {\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) {\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/* 237 */\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__(48);\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/* 238 */\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/* 239 */\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]) {\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 '')\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/* 240 */\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__(32);\r\nvar locale_1 = __webpack_require__(31);\r\nvar Model_1 = __webpack_require__(48);\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) {\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/* 241 */\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__(22);\r\nvar util_1 = __webpack_require__(4);\r\nvar options_1 = __webpack_require__(32);\r\nvar locale_1 = __webpack_require__(31);\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') {\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()) {\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/* 242 */\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__(243);\r\nvar ArrayEventSource_1 = __webpack_require__(52);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar EventSourceParser_1 = __webpack_require__(38);\r\nvar SingleEventDef_1 = __webpack_require__(13);\r\nvar EventInstanceGroup_1 = __webpack_require__(18);\r\nvar EmitterMixin_1 = __webpack_require__(11);\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/* 243 */\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__(20);\r\nvar EmitterMixin_1 = __webpack_require__(11);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar EventInstanceGroup_1 = __webpack_require__(18);\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/* 244 */\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) {\r\n this.isFollowing = false;\r\n this.stopListeningTo($(document));\r\n if (shouldRevert && revertDuration && !this.isHidden) {\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/* 245 */\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__(23);\r\nvar Interaction_1 = __webpack_require__(15);\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/* 246 */\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__(42);\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) {\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) {\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 height is short, add a className for alternate styling\r\n if (seg.bottom - seg.top < 30) {\r\n seg.el.addClass('fc-short');\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) {\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/* 247 */\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__(58);\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/* 248 */\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__(57);\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/* 249 */\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)) {\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/* 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 util_1 = __webpack_require__(4);\r\nvar EventRenderer_1 = __webpack_require__(42);\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++) {\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++) {\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 {\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/* 251 */\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__(58);\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) {\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/* 252 */\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__(57);\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 }\r\n trEl.append(seg.el.attr('colspan', endCol - startCol));\r\n if (endCol < colCnt) {\r\n trEl.append('');\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/* 253 */\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__(228);\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/* 254 */\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__(42);\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) {\r\n timeHtml = util_1.htmlEscape(this._getTimeText(calendar.msToMoment(seg.startMs), calendar.msToMoment(seg.endMs), componentFootprint.isAllDay));\r\n }\r\n else {\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/* 255 */\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__(59);\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()) {\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/* 256 */\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__(52);\r\nvar FuncEventSource_1 = __webpack_require__(215);\r\nvar JsonFeedEventSource_1 = __webpack_require__(216);\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/* 257 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ThemeRegistry_1 = __webpack_require__(51);\r\nvar StandardTheme_1 = __webpack_require__(213);\r\nvar JqueryUiTheme_1 = __webpack_require__(214);\r\nvar Bootstrap3Theme_1 = __webpack_require__(258);\r\nvar Bootstrap4Theme_1 = __webpack_require__(259);\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/* 258 */\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__(19);\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/* 259 */\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__(19);\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/* 260 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ViewRegistry_1 = __webpack_require__(22);\r\nvar BasicView_1 = __webpack_require__(62);\r\nvar MonthView_1 = __webpack_require__(229);\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/* 261 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ViewRegistry_1 = __webpack_require__(22);\r\nvar AgendaView_1 = __webpack_require__(226);\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/* 262 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ViewRegistry_1 = __webpack_require__(22);\r\nvar ListView_1 = __webpack_require__(230);\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/* 263 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\n\n/***/ })\n/******/ ]);\n});\n\n/***/ }),\n/* 248 */,\n/* 249 */,\n/* 250 */,\n/* 251 */,\n/* 252 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process, Promise, global, setImmediate) {/* @preserve\n * The MIT License (MIT)\n * \n * Copyright (c) 2013-2018 Petka Antonov\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n * \n */\n/**\n * bluebird build version 3.7.2\n * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each\n*/\n!function(e){if(true)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{var f;\"undefined\"!=typeof window?f=window:\"undefined\"!=typeof global?f=global:\"undefined\"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof _dereq_==\"function\"&&_dereq_;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof _dereq_==\"function\"&&_dereq_;for(var o=0;o 0) {\n _drainQueueStep(queue);\n }\n}\n\nfunction _drainQueueStep(queue) {\n var fn = queue.shift();\n if (typeof fn !== \"function\") {\n fn._settlePromises();\n } else {\n var receiver = queue.shift();\n var arg = queue.shift();\n fn.call(receiver, arg);\n }\n}\n\nAsync.prototype._drainQueues = function () {\n _drainQueue(this._normalQueue);\n this._reset();\n this._haveDrainedQueues = true;\n _drainQueue(this._lateQueue);\n};\n\nAsync.prototype._queueTick = function () {\n if (!this._isTickUsed) {\n this._isTickUsed = true;\n this._schedule(this.drainQueues);\n }\n};\n\nAsync.prototype._reset = function () {\n this._isTickUsed = false;\n};\n\nmodule.exports = Async;\nmodule.exports.firstLineError = firstLineError;\n\n},{\"./queue\":26,\"./schedule\":29}],3:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) {\nvar calledBind = false;\nvar rejectThis = function(_, e) {\n this._reject(e);\n};\n\nvar targetRejected = function(e, context) {\n context.promiseRejectionQueued = true;\n context.bindingPromise._then(rejectThis, rejectThis, null, this, e);\n};\n\nvar bindingResolved = function(thisArg, context) {\n if (((this._bitField & 50397184) === 0)) {\n this._resolveCallback(context.target);\n }\n};\n\nvar bindingRejected = function(e, context) {\n if (!context.promiseRejectionQueued) this._reject(e);\n};\n\nPromise.prototype.bind = function (thisArg) {\n if (!calledBind) {\n calledBind = true;\n Promise.prototype._propagateFrom = debug.propagateFromFunction();\n Promise.prototype._boundValue = debug.boundValueFunction();\n }\n var maybePromise = tryConvertToPromise(thisArg);\n var ret = new Promise(INTERNAL);\n ret._propagateFrom(this, 1);\n var target = this._target();\n ret._setBoundTo(maybePromise);\n if (maybePromise instanceof Promise) {\n var context = {\n promiseRejectionQueued: false,\n promise: ret,\n target: target,\n bindingPromise: maybePromise\n };\n target._then(INTERNAL, targetRejected, undefined, ret, context);\n maybePromise._then(\n bindingResolved, bindingRejected, undefined, ret, context);\n ret._setOnCancel(maybePromise);\n } else {\n ret._resolveCallback(target);\n }\n return ret;\n};\n\nPromise.prototype._setBoundTo = function (obj) {\n if (obj !== undefined) {\n this._bitField = this._bitField | 2097152;\n this._boundTo = obj;\n } else {\n this._bitField = this._bitField & (~2097152);\n }\n};\n\nPromise.prototype._isBound = function () {\n return (this._bitField & 2097152) === 2097152;\n};\n\nPromise.bind = function (thisArg, value) {\n return Promise.resolve(value).bind(thisArg);\n};\n};\n\n},{}],4:[function(_dereq_,module,exports){\n\"use strict\";\nvar old;\nif (typeof Promise !== \"undefined\") old = Promise;\nfunction noConflict() {\n try { if (Promise === bluebird) Promise = old; }\n catch (e) {}\n return bluebird;\n}\nvar bluebird = _dereq_(\"./promise\")();\nbluebird.noConflict = noConflict;\nmodule.exports = bluebird;\n\n},{\"./promise\":22}],5:[function(_dereq_,module,exports){\n\"use strict\";\nvar cr = Object.create;\nif (cr) {\n var callerCache = cr(null);\n var getterCache = cr(null);\n callerCache[\" size\"] = getterCache[\" size\"] = 0;\n}\n\nmodule.exports = function(Promise) {\nvar util = _dereq_(\"./util\");\nvar canEvaluate = util.canEvaluate;\nvar isIdentifier = util.isIdentifier;\n\nvar getMethodCaller;\nvar getGetter;\nif (false) {\nvar makeMethodCaller = function (methodName) {\n return new Function(\"ensureMethod\", \" \\n\\\n return function(obj) { \\n\\\n 'use strict' \\n\\\n var len = this.length; \\n\\\n ensureMethod(obj, 'methodName'); \\n\\\n switch(len) { \\n\\\n case 1: return obj.methodName(this[0]); \\n\\\n case 2: return obj.methodName(this[0], this[1]); \\n\\\n case 3: return obj.methodName(this[0], this[1], this[2]); \\n\\\n case 0: return obj.methodName(); \\n\\\n default: \\n\\\n return obj.methodName.apply(obj, this); \\n\\\n } \\n\\\n }; \\n\\\n \".replace(/methodName/g, methodName))(ensureMethod);\n};\n\nvar makeGetter = function (propertyName) {\n return new Function(\"obj\", \" \\n\\\n 'use strict'; \\n\\\n return obj.propertyName; \\n\\\n \".replace(\"propertyName\", propertyName));\n};\n\nvar getCompiled = function(name, compiler, cache) {\n var ret = cache[name];\n if (typeof ret !== \"function\") {\n if (!isIdentifier(name)) {\n return null;\n }\n ret = compiler(name);\n cache[name] = ret;\n cache[\" size\"]++;\n if (cache[\" size\"] > 512) {\n var keys = Object.keys(cache);\n for (var i = 0; i < 256; ++i) delete cache[keys[i]];\n cache[\" size\"] = keys.length - 256;\n }\n }\n return ret;\n};\n\ngetMethodCaller = function(name) {\n return getCompiled(name, makeMethodCaller, callerCache);\n};\n\ngetGetter = function(name) {\n return getCompiled(name, makeGetter, getterCache);\n};\n}\n\nfunction ensureMethod(obj, methodName) {\n var fn;\n if (obj != null) fn = obj[methodName];\n if (typeof fn !== \"function\") {\n var message = \"Object \" + util.classString(obj) + \" has no method '\" +\n util.toString(methodName) + \"'\";\n throw new Promise.TypeError(message);\n }\n return fn;\n}\n\nfunction caller(obj) {\n var methodName = this.pop();\n var fn = ensureMethod(obj, methodName);\n return fn.apply(obj, this);\n}\nPromise.prototype.call = function (methodName) {\n var args = [].slice.call(arguments, 1);;\n if (false) {\n if (canEvaluate) {\n var maybeCaller = getMethodCaller(methodName);\n if (maybeCaller !== null) {\n return this._then(\n maybeCaller, undefined, undefined, args, undefined);\n }\n }\n }\n args.push(methodName);\n return this._then(caller, undefined, undefined, args, undefined);\n};\n\nfunction namedGetter(obj) {\n return obj[this];\n}\nfunction indexedGetter(obj) {\n var index = +this;\n if (index < 0) index = Math.max(0, index + obj.length);\n return obj[index];\n}\nPromise.prototype.get = function (propertyName) {\n var isIndex = (typeof propertyName === \"number\");\n var getter;\n if (!isIndex) {\n if (canEvaluate) {\n var maybeGetter = getGetter(propertyName);\n getter = maybeGetter !== null ? maybeGetter : namedGetter;\n } else {\n getter = namedGetter;\n }\n } else {\n getter = indexedGetter;\n }\n return this._then(getter, undefined, undefined, propertyName, undefined);\n};\n};\n\n},{\"./util\":36}],6:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, PromiseArray, apiRejection, debug) {\nvar util = _dereq_(\"./util\");\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar async = Promise._async;\n\nPromise.prototype[\"break\"] = Promise.prototype.cancel = function() {\n if (!debug.cancellation()) return this._warn(\"cancellation is disabled\");\n\n var promise = this;\n var child = promise;\n while (promise._isCancellable()) {\n if (!promise._cancelBy(child)) {\n if (child._isFollowing()) {\n child._followee().cancel();\n } else {\n child._cancelBranched();\n }\n break;\n }\n\n var parent = promise._cancellationParent;\n if (parent == null || !parent._isCancellable()) {\n if (promise._isFollowing()) {\n promise._followee().cancel();\n } else {\n promise._cancelBranched();\n }\n break;\n } else {\n if (promise._isFollowing()) promise._followee().cancel();\n promise._setWillBeCancelled();\n child = promise;\n promise = parent;\n }\n }\n};\n\nPromise.prototype._branchHasCancelled = function() {\n this._branchesRemainingToCancel--;\n};\n\nPromise.prototype._enoughBranchesHaveCancelled = function() {\n return this._branchesRemainingToCancel === undefined ||\n this._branchesRemainingToCancel <= 0;\n};\n\nPromise.prototype._cancelBy = function(canceller) {\n if (canceller === this) {\n this._branchesRemainingToCancel = 0;\n this._invokeOnCancel();\n return true;\n } else {\n this._branchHasCancelled();\n if (this._enoughBranchesHaveCancelled()) {\n this._invokeOnCancel();\n return true;\n }\n }\n return false;\n};\n\nPromise.prototype._cancelBranched = function() {\n if (this._enoughBranchesHaveCancelled()) {\n this._cancel();\n }\n};\n\nPromise.prototype._cancel = function() {\n if (!this._isCancellable()) return;\n this._setCancelled();\n async.invoke(this._cancelPromises, this, undefined);\n};\n\nPromise.prototype._cancelPromises = function() {\n if (this._length() > 0) this._settlePromises();\n};\n\nPromise.prototype._unsetOnCancel = function() {\n this._onCancelField = undefined;\n};\n\nPromise.prototype._isCancellable = function() {\n return this.isPending() && !this._isCancelled();\n};\n\nPromise.prototype.isCancellable = function() {\n return this.isPending() && !this.isCancelled();\n};\n\nPromise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) {\n if (util.isArray(onCancelCallback)) {\n for (var i = 0; i < onCancelCallback.length; ++i) {\n this._doInvokeOnCancel(onCancelCallback[i], internalOnly);\n }\n } else if (onCancelCallback !== undefined) {\n if (typeof onCancelCallback === \"function\") {\n if (!internalOnly) {\n var e = tryCatch(onCancelCallback).call(this._boundValue());\n if (e === errorObj) {\n this._attachExtraTrace(e.e);\n async.throwLater(e.e);\n }\n }\n } else {\n onCancelCallback._resultCancelled(this);\n }\n }\n};\n\nPromise.prototype._invokeOnCancel = function() {\n var onCancelCallback = this._onCancel();\n this._unsetOnCancel();\n async.invoke(this._doInvokeOnCancel, this, onCancelCallback);\n};\n\nPromise.prototype._invokeInternalOnCancel = function() {\n if (this._isCancellable()) {\n this._doInvokeOnCancel(this._onCancel(), true);\n this._unsetOnCancel();\n }\n};\n\nPromise.prototype._resultCancelled = function() {\n this.cancel();\n};\n\n};\n\n},{\"./util\":36}],7:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(NEXT_FILTER) {\nvar util = _dereq_(\"./util\");\nvar getKeys = _dereq_(\"./es5\").keys;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\n\nfunction catchFilter(instances, cb, promise) {\n return function(e) {\n var boundTo = promise._boundValue();\n predicateLoop: for (var i = 0; i < instances.length; ++i) {\n var item = instances[i];\n\n if (item === Error ||\n (item != null && item.prototype instanceof Error)) {\n if (e instanceof item) {\n return tryCatch(cb).call(boundTo, e);\n }\n } else if (typeof item === \"function\") {\n var matchesPredicate = tryCatch(item).call(boundTo, e);\n if (matchesPredicate === errorObj) {\n return matchesPredicate;\n } else if (matchesPredicate) {\n return tryCatch(cb).call(boundTo, e);\n }\n } else if (util.isObject(e)) {\n var keys = getKeys(item);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n if (item[key] != e[key]) {\n continue predicateLoop;\n }\n }\n return tryCatch(cb).call(boundTo, e);\n }\n }\n return NEXT_FILTER;\n };\n}\n\nreturn catchFilter;\n};\n\n},{\"./es5\":13,\"./util\":36}],8:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise) {\nvar longStackTraces = false;\nvar contextStack = [];\n\nPromise.prototype._promiseCreated = function() {};\nPromise.prototype._pushContext = function() {};\nPromise.prototype._popContext = function() {return null;};\nPromise._peekContext = Promise.prototype._peekContext = function() {};\n\nfunction Context() {\n this._trace = new Context.CapturedTrace(peekContext());\n}\nContext.prototype._pushContext = function () {\n if (this._trace !== undefined) {\n this._trace._promiseCreated = null;\n contextStack.push(this._trace);\n }\n};\n\nContext.prototype._popContext = function () {\n if (this._trace !== undefined) {\n var trace = contextStack.pop();\n var ret = trace._promiseCreated;\n trace._promiseCreated = null;\n return ret;\n }\n return null;\n};\n\nfunction createContext() {\n if (longStackTraces) return new Context();\n}\n\nfunction peekContext() {\n var lastIndex = contextStack.length - 1;\n if (lastIndex >= 0) {\n return contextStack[lastIndex];\n }\n return undefined;\n}\nContext.CapturedTrace = null;\nContext.create = createContext;\nContext.deactivateLongStackTraces = function() {};\nContext.activateLongStackTraces = function() {\n var Promise_pushContext = Promise.prototype._pushContext;\n var Promise_popContext = Promise.prototype._popContext;\n var Promise_PeekContext = Promise._peekContext;\n var Promise_peekContext = Promise.prototype._peekContext;\n var Promise_promiseCreated = Promise.prototype._promiseCreated;\n Context.deactivateLongStackTraces = function() {\n Promise.prototype._pushContext = Promise_pushContext;\n Promise.prototype._popContext = Promise_popContext;\n Promise._peekContext = Promise_PeekContext;\n Promise.prototype._peekContext = Promise_peekContext;\n Promise.prototype._promiseCreated = Promise_promiseCreated;\n longStackTraces = false;\n };\n longStackTraces = true;\n Promise.prototype._pushContext = Context.prototype._pushContext;\n Promise.prototype._popContext = Context.prototype._popContext;\n Promise._peekContext = Promise.prototype._peekContext = peekContext;\n Promise.prototype._promiseCreated = function() {\n var ctx = this._peekContext();\n if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this;\n };\n};\nreturn Context;\n};\n\n},{}],9:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, Context,\n enableAsyncHooks, disableAsyncHooks) {\nvar async = Promise._async;\nvar Warning = _dereq_(\"./errors\").Warning;\nvar util = _dereq_(\"./util\");\nvar es5 = _dereq_(\"./es5\");\nvar canAttachTrace = util.canAttachTrace;\nvar unhandledRejectionHandled;\nvar possiblyUnhandledRejection;\nvar bluebirdFramePattern =\n /[\\\\\\/]bluebird[\\\\\\/]js[\\\\\\/](release|debug|instrumented)/;\nvar nodeFramePattern = /\\((?:timers\\.js):\\d+:\\d+\\)/;\nvar parseLinePattern = /[\\/<\\(](.+?):(\\d+):(\\d+)\\)?\\s*$/;\nvar stackFramePattern = null;\nvar formatStack = null;\nvar indentStackFrames = false;\nvar printWarning;\nvar debugging = !!(util.env(\"BLUEBIRD_DEBUG\") != 0 &&\n (true ||\n util.env(\"BLUEBIRD_DEBUG\") ||\n util.env(\"NODE_ENV\") === \"development\"));\n\nvar warnings = !!(util.env(\"BLUEBIRD_WARNINGS\") != 0 &&\n (debugging || util.env(\"BLUEBIRD_WARNINGS\")));\n\nvar longStackTraces = !!(util.env(\"BLUEBIRD_LONG_STACK_TRACES\") != 0 &&\n (debugging || util.env(\"BLUEBIRD_LONG_STACK_TRACES\")));\n\nvar wForgottenReturn = util.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\") != 0 &&\n (warnings || !!util.env(\"BLUEBIRD_W_FORGOTTEN_RETURN\"));\n\nvar deferUnhandledRejectionCheck;\n(function() {\n var promises = [];\n\n function unhandledRejectionCheck() {\n for (var i = 0; i < promises.length; ++i) {\n promises[i]._notifyUnhandledRejection();\n }\n unhandledRejectionClear();\n }\n\n function unhandledRejectionClear() {\n promises.length = 0;\n }\n\n deferUnhandledRejectionCheck = function(promise) {\n promises.push(promise);\n setTimeout(unhandledRejectionCheck, 1);\n };\n\n es5.defineProperty(Promise, \"_unhandledRejectionCheck\", {\n value: unhandledRejectionCheck\n });\n es5.defineProperty(Promise, \"_unhandledRejectionClear\", {\n value: unhandledRejectionClear\n });\n})();\n\nPromise.prototype.suppressUnhandledRejections = function() {\n var target = this._target();\n target._bitField = ((target._bitField & (~1048576)) |\n 524288);\n};\n\nPromise.prototype._ensurePossibleRejectionHandled = function () {\n if ((this._bitField & 524288) !== 0) return;\n this._setRejectionIsUnhandled();\n deferUnhandledRejectionCheck(this);\n};\n\nPromise.prototype._notifyUnhandledRejectionIsHandled = function () {\n fireRejectionEvent(\"rejectionHandled\",\n unhandledRejectionHandled, undefined, this);\n};\n\nPromise.prototype._setReturnedNonUndefined = function() {\n this._bitField = this._bitField | 268435456;\n};\n\nPromise.prototype._returnedNonUndefined = function() {\n return (this._bitField & 268435456) !== 0;\n};\n\nPromise.prototype._notifyUnhandledRejection = function () {\n if (this._isRejectionUnhandled()) {\n var reason = this._settledValue();\n this._setUnhandledRejectionIsNotified();\n fireRejectionEvent(\"unhandledRejection\",\n possiblyUnhandledRejection, reason, this);\n }\n};\n\nPromise.prototype._setUnhandledRejectionIsNotified = function () {\n this._bitField = this._bitField | 262144;\n};\n\nPromise.prototype._unsetUnhandledRejectionIsNotified = function () {\n this._bitField = this._bitField & (~262144);\n};\n\nPromise.prototype._isUnhandledRejectionNotified = function () {\n return (this._bitField & 262144) > 0;\n};\n\nPromise.prototype._setRejectionIsUnhandled = function () {\n this._bitField = this._bitField | 1048576;\n};\n\nPromise.prototype._unsetRejectionIsUnhandled = function () {\n this._bitField = this._bitField & (~1048576);\n if (this._isUnhandledRejectionNotified()) {\n this._unsetUnhandledRejectionIsNotified();\n this._notifyUnhandledRejectionIsHandled();\n }\n};\n\nPromise.prototype._isRejectionUnhandled = function () {\n return (this._bitField & 1048576) > 0;\n};\n\nPromise.prototype._warn = function(message, shouldUseOwnTrace, promise) {\n return warn(message, shouldUseOwnTrace, promise || this);\n};\n\nPromise.onPossiblyUnhandledRejection = function (fn) {\n var context = Promise._getContext();\n possiblyUnhandledRejection = util.contextBind(context, fn);\n};\n\nPromise.onUnhandledRejectionHandled = function (fn) {\n var context = Promise._getContext();\n unhandledRejectionHandled = util.contextBind(context, fn);\n};\n\nvar disableLongStackTraces = function() {};\nPromise.longStackTraces = function () {\n if (async.haveItemsQueued() && !config.longStackTraces) {\n throw new Error(\"cannot enable long stack traces after promises have been created\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n if (!config.longStackTraces && longStackTracesIsSupported()) {\n var Promise_captureStackTrace = Promise.prototype._captureStackTrace;\n var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace;\n var Promise_dereferenceTrace = Promise.prototype._dereferenceTrace;\n config.longStackTraces = true;\n disableLongStackTraces = function() {\n if (async.haveItemsQueued() && !config.longStackTraces) {\n throw new Error(\"cannot enable long stack traces after promises have been created\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n Promise.prototype._captureStackTrace = Promise_captureStackTrace;\n Promise.prototype._attachExtraTrace = Promise_attachExtraTrace;\n Promise.prototype._dereferenceTrace = Promise_dereferenceTrace;\n Context.deactivateLongStackTraces();\n config.longStackTraces = false;\n };\n Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace;\n Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace;\n Promise.prototype._dereferenceTrace = longStackTracesDereferenceTrace;\n Context.activateLongStackTraces();\n }\n};\n\nPromise.hasLongStackTraces = function () {\n return config.longStackTraces && longStackTracesIsSupported();\n};\n\n\nvar legacyHandlers = {\n unhandledrejection: {\n before: function() {\n var ret = util.global.onunhandledrejection;\n util.global.onunhandledrejection = null;\n return ret;\n },\n after: function(fn) {\n util.global.onunhandledrejection = fn;\n }\n },\n rejectionhandled: {\n before: function() {\n var ret = util.global.onrejectionhandled;\n util.global.onrejectionhandled = null;\n return ret;\n },\n after: function(fn) {\n util.global.onrejectionhandled = fn;\n }\n }\n};\n\nvar fireDomEvent = (function() {\n var dispatch = function(legacy, e) {\n if (legacy) {\n var fn;\n try {\n fn = legacy.before();\n return !util.global.dispatchEvent(e);\n } finally {\n legacy.after(fn);\n }\n } else {\n return !util.global.dispatchEvent(e);\n }\n };\n try {\n if (typeof CustomEvent === \"function\") {\n var event = new CustomEvent(\"CustomEvent\");\n util.global.dispatchEvent(event);\n return function(name, event) {\n name = name.toLowerCase();\n var eventData = {\n detail: event,\n cancelable: true\n };\n var domEvent = new CustomEvent(name, eventData);\n es5.defineProperty(\n domEvent, \"promise\", {value: event.promise});\n es5.defineProperty(\n domEvent, \"reason\", {value: event.reason});\n\n return dispatch(legacyHandlers[name], domEvent);\n };\n } else if (typeof Event === \"function\") {\n var event = new Event(\"CustomEvent\");\n util.global.dispatchEvent(event);\n return function(name, event) {\n name = name.toLowerCase();\n var domEvent = new Event(name, {\n cancelable: true\n });\n domEvent.detail = event;\n es5.defineProperty(domEvent, \"promise\", {value: event.promise});\n es5.defineProperty(domEvent, \"reason\", {value: event.reason});\n return dispatch(legacyHandlers[name], domEvent);\n };\n } else {\n var event = document.createEvent(\"CustomEvent\");\n event.initCustomEvent(\"testingtheevent\", false, true, {});\n util.global.dispatchEvent(event);\n return function(name, event) {\n name = name.toLowerCase();\n var domEvent = document.createEvent(\"CustomEvent\");\n domEvent.initCustomEvent(name, false, true,\n event);\n return dispatch(legacyHandlers[name], domEvent);\n };\n }\n } catch (e) {}\n return function() {\n return false;\n };\n})();\n\nvar fireGlobalEvent = (function() {\n if (util.isNode) {\n return function() {\n return process.emit.apply(process, arguments);\n };\n } else {\n if (!util.global) {\n return function() {\n return false;\n };\n }\n return function(name) {\n var methodName = \"on\" + name.toLowerCase();\n var method = util.global[methodName];\n if (!method) return false;\n method.apply(util.global, [].slice.call(arguments, 1));\n return true;\n };\n }\n})();\n\nfunction generatePromiseLifecycleEventObject(name, promise) {\n return {promise: promise};\n}\n\nvar eventToObjectGenerator = {\n promiseCreated: generatePromiseLifecycleEventObject,\n promiseFulfilled: generatePromiseLifecycleEventObject,\n promiseRejected: generatePromiseLifecycleEventObject,\n promiseResolved: generatePromiseLifecycleEventObject,\n promiseCancelled: generatePromiseLifecycleEventObject,\n promiseChained: function(name, promise, child) {\n return {promise: promise, child: child};\n },\n warning: function(name, warning) {\n return {warning: warning};\n },\n unhandledRejection: function (name, reason, promise) {\n return {reason: reason, promise: promise};\n },\n rejectionHandled: generatePromiseLifecycleEventObject\n};\n\nvar activeFireEvent = function (name) {\n var globalEventFired = false;\n try {\n globalEventFired = fireGlobalEvent.apply(null, arguments);\n } catch (e) {\n async.throwLater(e);\n globalEventFired = true;\n }\n\n var domEventFired = false;\n try {\n domEventFired = fireDomEvent(name,\n eventToObjectGenerator[name].apply(null, arguments));\n } catch (e) {\n async.throwLater(e);\n domEventFired = true;\n }\n\n return domEventFired || globalEventFired;\n};\n\nPromise.config = function(opts) {\n opts = Object(opts);\n if (\"longStackTraces\" in opts) {\n if (opts.longStackTraces) {\n Promise.longStackTraces();\n } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) {\n disableLongStackTraces();\n }\n }\n if (\"warnings\" in opts) {\n var warningsOption = opts.warnings;\n config.warnings = !!warningsOption;\n wForgottenReturn = config.warnings;\n\n if (util.isObject(warningsOption)) {\n if (\"wForgottenReturn\" in warningsOption) {\n wForgottenReturn = !!warningsOption.wForgottenReturn;\n }\n }\n }\n if (\"cancellation\" in opts && opts.cancellation && !config.cancellation) {\n if (async.haveItemsQueued()) {\n throw new Error(\n \"cannot enable cancellation after promises are in use\");\n }\n Promise.prototype._clearCancellationData =\n cancellationClearCancellationData;\n Promise.prototype._propagateFrom = cancellationPropagateFrom;\n Promise.prototype._onCancel = cancellationOnCancel;\n Promise.prototype._setOnCancel = cancellationSetOnCancel;\n Promise.prototype._attachCancellationCallback =\n cancellationAttachCancellationCallback;\n Promise.prototype._execute = cancellationExecute;\n propagateFromFunction = cancellationPropagateFrom;\n config.cancellation = true;\n }\n if (\"monitoring\" in opts) {\n if (opts.monitoring && !config.monitoring) {\n config.monitoring = true;\n Promise.prototype._fireEvent = activeFireEvent;\n } else if (!opts.monitoring && config.monitoring) {\n config.monitoring = false;\n Promise.prototype._fireEvent = defaultFireEvent;\n }\n }\n if (\"asyncHooks\" in opts && util.nodeSupportsAsyncResource) {\n var prev = config.asyncHooks;\n var cur = !!opts.asyncHooks;\n if (prev !== cur) {\n config.asyncHooks = cur;\n if (cur) {\n enableAsyncHooks();\n } else {\n disableAsyncHooks();\n }\n }\n }\n return Promise;\n};\n\nfunction defaultFireEvent() { return false; }\n\nPromise.prototype._fireEvent = defaultFireEvent;\nPromise.prototype._execute = function(executor, resolve, reject) {\n try {\n executor(resolve, reject);\n } catch (e) {\n return e;\n }\n};\nPromise.prototype._onCancel = function () {};\nPromise.prototype._setOnCancel = function (handler) { ; };\nPromise.prototype._attachCancellationCallback = function(onCancel) {\n ;\n};\nPromise.prototype._captureStackTrace = function () {};\nPromise.prototype._attachExtraTrace = function () {};\nPromise.prototype._dereferenceTrace = function () {};\nPromise.prototype._clearCancellationData = function() {};\nPromise.prototype._propagateFrom = function (parent, flags) {\n ;\n ;\n};\n\nfunction cancellationExecute(executor, resolve, reject) {\n var promise = this;\n try {\n executor(resolve, reject, function(onCancel) {\n if (typeof onCancel !== \"function\") {\n throw new TypeError(\"onCancel must be a function, got: \" +\n util.toString(onCancel));\n }\n promise._attachCancellationCallback(onCancel);\n });\n } catch (e) {\n return e;\n }\n}\n\nfunction cancellationAttachCancellationCallback(onCancel) {\n if (!this._isCancellable()) return this;\n\n var previousOnCancel = this._onCancel();\n if (previousOnCancel !== undefined) {\n if (util.isArray(previousOnCancel)) {\n previousOnCancel.push(onCancel);\n } else {\n this._setOnCancel([previousOnCancel, onCancel]);\n }\n } else {\n this._setOnCancel(onCancel);\n }\n}\n\nfunction cancellationOnCancel() {\n return this._onCancelField;\n}\n\nfunction cancellationSetOnCancel(onCancel) {\n this._onCancelField = onCancel;\n}\n\nfunction cancellationClearCancellationData() {\n this._cancellationParent = undefined;\n this._onCancelField = undefined;\n}\n\nfunction cancellationPropagateFrom(parent, flags) {\n if ((flags & 1) !== 0) {\n this._cancellationParent = parent;\n var branchesRemainingToCancel = parent._branchesRemainingToCancel;\n if (branchesRemainingToCancel === undefined) {\n branchesRemainingToCancel = 0;\n }\n parent._branchesRemainingToCancel = branchesRemainingToCancel + 1;\n }\n if ((flags & 2) !== 0 && parent._isBound()) {\n this._setBoundTo(parent._boundTo);\n }\n}\n\nfunction bindingPropagateFrom(parent, flags) {\n if ((flags & 2) !== 0 && parent._isBound()) {\n this._setBoundTo(parent._boundTo);\n }\n}\nvar propagateFromFunction = bindingPropagateFrom;\n\nfunction boundValueFunction() {\n var ret = this._boundTo;\n if (ret !== undefined) {\n if (ret instanceof Promise) {\n if (ret.isFulfilled()) {\n return ret.value();\n } else {\n return undefined;\n }\n }\n }\n return ret;\n}\n\nfunction longStackTracesCaptureStackTrace() {\n this._trace = new CapturedTrace(this._peekContext());\n}\n\nfunction longStackTracesAttachExtraTrace(error, ignoreSelf) {\n if (canAttachTrace(error)) {\n var trace = this._trace;\n if (trace !== undefined) {\n if (ignoreSelf) trace = trace._parent;\n }\n if (trace !== undefined) {\n trace.attachExtraTrace(error);\n } else if (!error.__stackCleaned__) {\n var parsed = parseStackAndMessage(error);\n util.notEnumerableProp(error, \"stack\",\n parsed.message + \"\\n\" + parsed.stack.join(\"\\n\"));\n util.notEnumerableProp(error, \"__stackCleaned__\", true);\n }\n }\n}\n\nfunction longStackTracesDereferenceTrace() {\n this._trace = undefined;\n}\n\nfunction checkForgottenReturns(returnValue, promiseCreated, name, promise,\n parent) {\n if (returnValue === undefined && promiseCreated !== null &&\n wForgottenReturn) {\n if (parent !== undefined && parent._returnedNonUndefined()) return;\n if ((promise._bitField & 65535) === 0) return;\n\n if (name) name = name + \" \";\n var handlerLine = \"\";\n var creatorLine = \"\";\n if (promiseCreated._trace) {\n var traceLines = promiseCreated._trace.stack.split(\"\\n\");\n var stack = cleanStack(traceLines);\n for (var i = stack.length - 1; i >= 0; --i) {\n var line = stack[i];\n if (!nodeFramePattern.test(line)) {\n var lineMatches = line.match(parseLinePattern);\n if (lineMatches) {\n handlerLine = \"at \" + lineMatches[1] +\n \":\" + lineMatches[2] + \":\" + lineMatches[3] + \" \";\n }\n break;\n }\n }\n\n if (stack.length > 0) {\n var firstUserLine = stack[0];\n for (var i = 0; i < traceLines.length; ++i) {\n\n if (traceLines[i] === firstUserLine) {\n if (i > 0) {\n creatorLine = \"\\n\" + traceLines[i - 1];\n }\n break;\n }\n }\n\n }\n }\n var msg = \"a promise was created in a \" + name +\n \"handler \" + handlerLine + \"but was not returned from it, \" +\n \"see http://goo.gl/rRqMUw\" +\n creatorLine;\n promise._warn(msg, true, promiseCreated);\n }\n}\n\nfunction deprecated(name, replacement) {\n var message = name +\n \" is deprecated and will be removed in a future version.\";\n if (replacement) message += \" Use \" + replacement + \" instead.\";\n return warn(message);\n}\n\nfunction warn(message, shouldUseOwnTrace, promise) {\n if (!config.warnings) return;\n var warning = new Warning(message);\n var ctx;\n if (shouldUseOwnTrace) {\n promise._attachExtraTrace(warning);\n } else if (config.longStackTraces && (ctx = Promise._peekContext())) {\n ctx.attachExtraTrace(warning);\n } else {\n var parsed = parseStackAndMessage(warning);\n warning.stack = parsed.message + \"\\n\" + parsed.stack.join(\"\\n\");\n }\n\n if (!activeFireEvent(\"warning\", warning)) {\n formatAndLogError(warning, \"\", true);\n }\n}\n\nfunction reconstructStack(message, stacks) {\n for (var i = 0; i < stacks.length - 1; ++i) {\n stacks[i].push(\"From previous event:\");\n stacks[i] = stacks[i].join(\"\\n\");\n }\n if (i < stacks.length) {\n stacks[i] = stacks[i].join(\"\\n\");\n }\n return message + \"\\n\" + stacks.join(\"\\n\");\n}\n\nfunction removeDuplicateOrEmptyJumps(stacks) {\n for (var i = 0; i < stacks.length; ++i) {\n if (stacks[i].length === 0 ||\n ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) {\n stacks.splice(i, 1);\n i--;\n }\n }\n}\n\nfunction removeCommonRoots(stacks) {\n var current = stacks[0];\n for (var i = 1; i < stacks.length; ++i) {\n var prev = stacks[i];\n var currentLastIndex = current.length - 1;\n var currentLastLine = current[currentLastIndex];\n var commonRootMeetPoint = -1;\n\n for (var j = prev.length - 1; j >= 0; --j) {\n if (prev[j] === currentLastLine) {\n commonRootMeetPoint = j;\n break;\n }\n }\n\n for (var j = commonRootMeetPoint; j >= 0; --j) {\n var line = prev[j];\n if (current[currentLastIndex] === line) {\n current.pop();\n currentLastIndex--;\n } else {\n break;\n }\n }\n current = prev;\n }\n}\n\nfunction cleanStack(stack) {\n var ret = [];\n for (var i = 0; i < stack.length; ++i) {\n var line = stack[i];\n var isTraceLine = \" (No stack trace)\" === line ||\n stackFramePattern.test(line);\n var isInternalFrame = isTraceLine && shouldIgnore(line);\n if (isTraceLine && !isInternalFrame) {\n if (indentStackFrames && line.charAt(0) !== \" \") {\n line = \" \" + line;\n }\n ret.push(line);\n }\n }\n return ret;\n}\n\nfunction stackFramesAsArray(error) {\n var stack = error.stack.replace(/\\s+$/g, \"\").split(\"\\n\");\n for (var i = 0; i < stack.length; ++i) {\n var line = stack[i];\n if (\" (No stack trace)\" === line || stackFramePattern.test(line)) {\n break;\n }\n }\n if (i > 0 && error.name != \"SyntaxError\") {\n stack = stack.slice(i);\n }\n return stack;\n}\n\nfunction parseStackAndMessage(error) {\n var stack = error.stack;\n var message = error.toString();\n stack = typeof stack === \"string\" && stack.length > 0\n ? stackFramesAsArray(error) : [\" (No stack trace)\"];\n return {\n message: message,\n stack: error.name == \"SyntaxError\" ? stack : cleanStack(stack)\n };\n}\n\nfunction formatAndLogError(error, title, isSoft) {\n if (typeof console !== \"undefined\") {\n var message;\n if (util.isObject(error)) {\n var stack = error.stack;\n message = title + formatStack(stack, error);\n } else {\n message = title + String(error);\n }\n if (typeof printWarning === \"function\") {\n printWarning(message, isSoft);\n } else if (typeof console.log === \"function\" ||\n typeof console.log === \"object\") {\n console.log(message);\n }\n }\n}\n\nfunction fireRejectionEvent(name, localHandler, reason, promise) {\n var localEventFired = false;\n try {\n if (typeof localHandler === \"function\") {\n localEventFired = true;\n if (name === \"rejectionHandled\") {\n localHandler(promise);\n } else {\n localHandler(reason, promise);\n }\n }\n } catch (e) {\n async.throwLater(e);\n }\n\n if (name === \"unhandledRejection\") {\n if (!activeFireEvent(name, reason, promise) && !localEventFired) {\n formatAndLogError(reason, \"Unhandled rejection \");\n }\n } else {\n activeFireEvent(name, promise);\n }\n}\n\nfunction formatNonError(obj) {\n var str;\n if (typeof obj === \"function\") {\n str = \"[function \" +\n (obj.name || \"anonymous\") +\n \"]\";\n } else {\n str = obj && typeof obj.toString === \"function\"\n ? obj.toString() : util.toString(obj);\n var ruselessToString = /\\[object [a-zA-Z0-9$_]+\\]/;\n if (ruselessToString.test(str)) {\n try {\n var newStr = JSON.stringify(obj);\n str = newStr;\n }\n catch(e) {\n\n }\n }\n if (str.length === 0) {\n str = \"(empty array)\";\n }\n }\n return (\"(<\" + snip(str) + \">, no stack trace)\");\n}\n\nfunction snip(str) {\n var maxChars = 41;\n if (str.length < maxChars) {\n return str;\n }\n return str.substr(0, maxChars - 3) + \"...\";\n}\n\nfunction longStackTracesIsSupported() {\n return typeof captureStackTrace === \"function\";\n}\n\nvar shouldIgnore = function() { return false; };\nvar parseLineInfoRegex = /[\\/<\\(]([^:\\/]+):(\\d+):(?:\\d+)\\)?\\s*$/;\nfunction parseLineInfo(line) {\n var matches = line.match(parseLineInfoRegex);\n if (matches) {\n return {\n fileName: matches[1],\n line: parseInt(matches[2], 10)\n };\n }\n}\n\nfunction setBounds(firstLineError, lastLineError) {\n if (!longStackTracesIsSupported()) return;\n var firstStackLines = (firstLineError.stack || \"\").split(\"\\n\");\n var lastStackLines = (lastLineError.stack || \"\").split(\"\\n\");\n var firstIndex = -1;\n var lastIndex = -1;\n var firstFileName;\n var lastFileName;\n for (var i = 0; i < firstStackLines.length; ++i) {\n var result = parseLineInfo(firstStackLines[i]);\n if (result) {\n firstFileName = result.fileName;\n firstIndex = result.line;\n break;\n }\n }\n for (var i = 0; i < lastStackLines.length; ++i) {\n var result = parseLineInfo(lastStackLines[i]);\n if (result) {\n lastFileName = result.fileName;\n lastIndex = result.line;\n break;\n }\n }\n if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName ||\n firstFileName !== lastFileName || firstIndex >= lastIndex) {\n return;\n }\n\n shouldIgnore = function(line) {\n if (bluebirdFramePattern.test(line)) return true;\n var info = parseLineInfo(line);\n if (info) {\n if (info.fileName === firstFileName &&\n (firstIndex <= info.line && info.line <= lastIndex)) {\n return true;\n }\n }\n return false;\n };\n}\n\nfunction CapturedTrace(parent) {\n this._parent = parent;\n this._promisesCreated = 0;\n var length = this._length = 1 + (parent === undefined ? 0 : parent._length);\n captureStackTrace(this, CapturedTrace);\n if (length > 32) this.uncycle();\n}\nutil.inherits(CapturedTrace, Error);\nContext.CapturedTrace = CapturedTrace;\n\nCapturedTrace.prototype.uncycle = function() {\n var length = this._length;\n if (length < 2) return;\n var nodes = [];\n var stackToIndex = {};\n\n for (var i = 0, node = this; node !== undefined; ++i) {\n nodes.push(node);\n node = node._parent;\n }\n length = this._length = i;\n for (var i = length - 1; i >= 0; --i) {\n var stack = nodes[i].stack;\n if (stackToIndex[stack] === undefined) {\n stackToIndex[stack] = i;\n }\n }\n for (var i = 0; i < length; ++i) {\n var currentStack = nodes[i].stack;\n var index = stackToIndex[currentStack];\n if (index !== undefined && index !== i) {\n if (index > 0) {\n nodes[index - 1]._parent = undefined;\n nodes[index - 1]._length = 1;\n }\n nodes[i]._parent = undefined;\n nodes[i]._length = 1;\n var cycleEdgeNode = i > 0 ? nodes[i - 1] : this;\n\n if (index < length - 1) {\n cycleEdgeNode._parent = nodes[index + 1];\n cycleEdgeNode._parent.uncycle();\n cycleEdgeNode._length =\n cycleEdgeNode._parent._length + 1;\n } else {\n cycleEdgeNode._parent = undefined;\n cycleEdgeNode._length = 1;\n }\n var currentChildLength = cycleEdgeNode._length + 1;\n for (var j = i - 2; j >= 0; --j) {\n nodes[j]._length = currentChildLength;\n currentChildLength++;\n }\n return;\n }\n }\n};\n\nCapturedTrace.prototype.attachExtraTrace = function(error) {\n if (error.__stackCleaned__) return;\n this.uncycle();\n var parsed = parseStackAndMessage(error);\n var message = parsed.message;\n var stacks = [parsed.stack];\n\n var trace = this;\n while (trace !== undefined) {\n stacks.push(cleanStack(trace.stack.split(\"\\n\")));\n trace = trace._parent;\n }\n removeCommonRoots(stacks);\n removeDuplicateOrEmptyJumps(stacks);\n util.notEnumerableProp(error, \"stack\", reconstructStack(message, stacks));\n util.notEnumerableProp(error, \"__stackCleaned__\", true);\n};\n\nvar captureStackTrace = (function stackDetection() {\n var v8stackFramePattern = /^\\s*at\\s*/;\n var v8stackFormatter = function(stack, error) {\n if (typeof stack === \"string\") return stack;\n\n if (error.name !== undefined &&\n error.message !== undefined) {\n return error.toString();\n }\n return formatNonError(error);\n };\n\n if (typeof Error.stackTraceLimit === \"number\" &&\n typeof Error.captureStackTrace === \"function\") {\n Error.stackTraceLimit += 6;\n stackFramePattern = v8stackFramePattern;\n formatStack = v8stackFormatter;\n var captureStackTrace = Error.captureStackTrace;\n\n shouldIgnore = function(line) {\n return bluebirdFramePattern.test(line);\n };\n return function(receiver, ignoreUntil) {\n Error.stackTraceLimit += 6;\n captureStackTrace(receiver, ignoreUntil);\n Error.stackTraceLimit -= 6;\n };\n }\n var err = new Error();\n\n if (typeof err.stack === \"string\" &&\n err.stack.split(\"\\n\")[0].indexOf(\"stackDetection@\") >= 0) {\n stackFramePattern = /@/;\n formatStack = v8stackFormatter;\n indentStackFrames = true;\n return function captureStackTrace(o) {\n o.stack = new Error().stack;\n };\n }\n\n var hasStackAfterThrow;\n try { throw new Error(); }\n catch(e) {\n hasStackAfterThrow = (\"stack\" in e);\n }\n if (!(\"stack\" in err) && hasStackAfterThrow &&\n typeof Error.stackTraceLimit === \"number\") {\n stackFramePattern = v8stackFramePattern;\n formatStack = v8stackFormatter;\n return function captureStackTrace(o) {\n Error.stackTraceLimit += 6;\n try { throw new Error(); }\n catch(e) { o.stack = e.stack; }\n Error.stackTraceLimit -= 6;\n };\n }\n\n formatStack = function(stack, error) {\n if (typeof stack === \"string\") return stack;\n\n if ((typeof error === \"object\" ||\n typeof error === \"function\") &&\n error.name !== undefined &&\n error.message !== undefined) {\n return error.toString();\n }\n return formatNonError(error);\n };\n\n return null;\n\n})([]);\n\nif (typeof console !== \"undefined\" && typeof console.warn !== \"undefined\") {\n printWarning = function (message) {\n console.warn(message);\n };\n if (util.isNode && process.stderr.isTTY) {\n printWarning = function(message, isSoft) {\n var color = isSoft ? \"\\u001b[33m\" : \"\\u001b[31m\";\n console.warn(color + message + \"\\u001b[0m\\n\");\n };\n } else if (!util.isNode && typeof (new Error().stack) === \"string\") {\n printWarning = function(message, isSoft) {\n console.warn(\"%c\" + message,\n isSoft ? \"color: darkorange\" : \"color: red\");\n };\n }\n}\n\nvar config = {\n warnings: warnings,\n longStackTraces: false,\n cancellation: false,\n monitoring: false,\n asyncHooks: false\n};\n\nif (longStackTraces) Promise.longStackTraces();\n\nreturn {\n asyncHooks: function() {\n return config.asyncHooks;\n },\n longStackTraces: function() {\n return config.longStackTraces;\n },\n warnings: function() {\n return config.warnings;\n },\n cancellation: function() {\n return config.cancellation;\n },\n monitoring: function() {\n return config.monitoring;\n },\n propagateFromFunction: function() {\n return propagateFromFunction;\n },\n boundValueFunction: function() {\n return boundValueFunction;\n },\n checkForgottenReturns: checkForgottenReturns,\n setBounds: setBounds,\n warn: warn,\n deprecated: deprecated,\n CapturedTrace: CapturedTrace,\n fireDomEvent: fireDomEvent,\n fireGlobalEvent: fireGlobalEvent\n};\n};\n\n},{\"./errors\":12,\"./es5\":13,\"./util\":36}],10:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise) {\nfunction returner() {\n return this.value;\n}\nfunction thrower() {\n throw this.reason;\n}\n\nPromise.prototype[\"return\"] =\nPromise.prototype.thenReturn = function (value) {\n if (value instanceof Promise) value.suppressUnhandledRejections();\n return this._then(\n returner, undefined, undefined, {value: value}, undefined);\n};\n\nPromise.prototype[\"throw\"] =\nPromise.prototype.thenThrow = function (reason) {\n return this._then(\n thrower, undefined, undefined, {reason: reason}, undefined);\n};\n\nPromise.prototype.catchThrow = function (reason) {\n if (arguments.length <= 1) {\n return this._then(\n undefined, thrower, undefined, {reason: reason}, undefined);\n } else {\n var _reason = arguments[1];\n var handler = function() {throw _reason;};\n return this.caught(reason, handler);\n }\n};\n\nPromise.prototype.catchReturn = function (value) {\n if (arguments.length <= 1) {\n if (value instanceof Promise) value.suppressUnhandledRejections();\n return this._then(\n undefined, returner, undefined, {value: value}, undefined);\n } else {\n var _value = arguments[1];\n if (_value instanceof Promise) _value.suppressUnhandledRejections();\n var handler = function() {return _value;};\n return this.caught(value, handler);\n }\n};\n};\n\n},{}],11:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar PromiseReduce = Promise.reduce;\nvar PromiseAll = Promise.all;\n\nfunction promiseAllThis() {\n return PromiseAll(this);\n}\n\nfunction PromiseMapSeries(promises, fn) {\n return PromiseReduce(promises, fn, INTERNAL, INTERNAL);\n}\n\nPromise.prototype.each = function (fn) {\n return PromiseReduce(this, fn, INTERNAL, 0)\n ._then(promiseAllThis, undefined, undefined, this, undefined);\n};\n\nPromise.prototype.mapSeries = function (fn) {\n return PromiseReduce(this, fn, INTERNAL, INTERNAL);\n};\n\nPromise.each = function (promises, fn) {\n return PromiseReduce(promises, fn, INTERNAL, 0)\n ._then(promiseAllThis, undefined, undefined, promises, undefined);\n};\n\nPromise.mapSeries = PromiseMapSeries;\n};\n\n\n},{}],12:[function(_dereq_,module,exports){\n\"use strict\";\nvar es5 = _dereq_(\"./es5\");\nvar Objectfreeze = es5.freeze;\nvar util = _dereq_(\"./util\");\nvar inherits = util.inherits;\nvar notEnumerableProp = util.notEnumerableProp;\n\nfunction subError(nameProperty, defaultMessage) {\n function SubError(message) {\n if (!(this instanceof SubError)) return new SubError(message);\n notEnumerableProp(this, \"message\",\n typeof message === \"string\" ? message : defaultMessage);\n notEnumerableProp(this, \"name\", nameProperty);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n Error.call(this);\n }\n }\n inherits(SubError, Error);\n return SubError;\n}\n\nvar _TypeError, _RangeError;\nvar Warning = subError(\"Warning\", \"warning\");\nvar CancellationError = subError(\"CancellationError\", \"cancellation error\");\nvar TimeoutError = subError(\"TimeoutError\", \"timeout error\");\nvar AggregateError = subError(\"AggregateError\", \"aggregate error\");\ntry {\n _TypeError = TypeError;\n _RangeError = RangeError;\n} catch(e) {\n _TypeError = subError(\"TypeError\", \"type error\");\n _RangeError = subError(\"RangeError\", \"range error\");\n}\n\nvar methods = (\"join pop push shift unshift slice filter forEach some \" +\n \"every map indexOf lastIndexOf reduce reduceRight sort reverse\").split(\" \");\n\nfor (var i = 0; i < methods.length; ++i) {\n if (typeof Array.prototype[methods[i]] === \"function\") {\n AggregateError.prototype[methods[i]] = Array.prototype[methods[i]];\n }\n}\n\nes5.defineProperty(AggregateError.prototype, \"length\", {\n value: 0,\n configurable: false,\n writable: true,\n enumerable: true\n});\nAggregateError.prototype[\"isOperational\"] = true;\nvar level = 0;\nAggregateError.prototype.toString = function() {\n var indent = Array(level * 4 + 1).join(\" \");\n var ret = \"\\n\" + indent + \"AggregateError of:\" + \"\\n\";\n level++;\n indent = Array(level * 4 + 1).join(\" \");\n for (var i = 0; i < this.length; ++i) {\n var str = this[i] === this ? \"[Circular AggregateError]\" : this[i] + \"\";\n var lines = str.split(\"\\n\");\n for (var j = 0; j < lines.length; ++j) {\n lines[j] = indent + lines[j];\n }\n str = lines.join(\"\\n\");\n ret += str + \"\\n\";\n }\n level--;\n return ret;\n};\n\nfunction OperationalError(message) {\n if (!(this instanceof OperationalError))\n return new OperationalError(message);\n notEnumerableProp(this, \"name\", \"OperationalError\");\n notEnumerableProp(this, \"message\", message);\n this.cause = message;\n this[\"isOperational\"] = true;\n\n if (message instanceof Error) {\n notEnumerableProp(this, \"message\", message.message);\n notEnumerableProp(this, \"stack\", message.stack);\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n\n}\ninherits(OperationalError, Error);\n\nvar errorTypes = Error[\"__BluebirdErrorTypes__\"];\nif (!errorTypes) {\n errorTypes = Objectfreeze({\n CancellationError: CancellationError,\n TimeoutError: TimeoutError,\n OperationalError: OperationalError,\n RejectionError: OperationalError,\n AggregateError: AggregateError\n });\n es5.defineProperty(Error, \"__BluebirdErrorTypes__\", {\n value: errorTypes,\n writable: false,\n enumerable: false,\n configurable: false\n });\n}\n\nmodule.exports = {\n Error: Error,\n TypeError: _TypeError,\n RangeError: _RangeError,\n CancellationError: errorTypes.CancellationError,\n OperationalError: errorTypes.OperationalError,\n TimeoutError: errorTypes.TimeoutError,\n AggregateError: errorTypes.AggregateError,\n Warning: Warning\n};\n\n},{\"./es5\":13,\"./util\":36}],13:[function(_dereq_,module,exports){\nvar isES5 = (function(){\n \"use strict\";\n return this === undefined;\n})();\n\nif (isES5) {\n module.exports = {\n freeze: Object.freeze,\n defineProperty: Object.defineProperty,\n getDescriptor: Object.getOwnPropertyDescriptor,\n keys: Object.keys,\n names: Object.getOwnPropertyNames,\n getPrototypeOf: Object.getPrototypeOf,\n isArray: Array.isArray,\n isES5: isES5,\n propertyIsWritable: function(obj, prop) {\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop);\n return !!(!descriptor || descriptor.writable || descriptor.set);\n }\n };\n} else {\n var has = {}.hasOwnProperty;\n var str = {}.toString;\n var proto = {}.constructor.prototype;\n\n var ObjectKeys = function (o) {\n var ret = [];\n for (var key in o) {\n if (has.call(o, key)) {\n ret.push(key);\n }\n }\n return ret;\n };\n\n var ObjectGetDescriptor = function(o, key) {\n return {value: o[key]};\n };\n\n var ObjectDefineProperty = function (o, key, desc) {\n o[key] = desc.value;\n return o;\n };\n\n var ObjectFreeze = function (obj) {\n return obj;\n };\n\n var ObjectGetPrototypeOf = function (obj) {\n try {\n return Object(obj).constructor.prototype;\n }\n catch (e) {\n return proto;\n }\n };\n\n var ArrayIsArray = function (obj) {\n try {\n return str.call(obj) === \"[object Array]\";\n }\n catch(e) {\n return false;\n }\n };\n\n module.exports = {\n isArray: ArrayIsArray,\n keys: ObjectKeys,\n names: ObjectKeys,\n defineProperty: ObjectDefineProperty,\n getDescriptor: ObjectGetDescriptor,\n freeze: ObjectFreeze,\n getPrototypeOf: ObjectGetPrototypeOf,\n isES5: isES5,\n propertyIsWritable: function() {\n return true;\n }\n };\n}\n\n},{}],14:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar PromiseMap = Promise.map;\n\nPromise.prototype.filter = function (fn, options) {\n return PromiseMap(this, fn, options, INTERNAL);\n};\n\nPromise.filter = function (promises, fn, options) {\n return PromiseMap(promises, fn, options, INTERNAL);\n};\n};\n\n},{}],15:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) {\nvar util = _dereq_(\"./util\");\nvar CancellationError = Promise.CancellationError;\nvar errorObj = util.errorObj;\nvar catchFilter = _dereq_(\"./catch_filter\")(NEXT_FILTER);\n\nfunction PassThroughHandlerContext(promise, type, handler) {\n this.promise = promise;\n this.type = type;\n this.handler = handler;\n this.called = false;\n this.cancelPromise = null;\n}\n\nPassThroughHandlerContext.prototype.isFinallyHandler = function() {\n return this.type === 0;\n};\n\nfunction FinallyHandlerCancelReaction(finallyHandler) {\n this.finallyHandler = finallyHandler;\n}\n\nFinallyHandlerCancelReaction.prototype._resultCancelled = function() {\n checkCancel(this.finallyHandler);\n};\n\nfunction checkCancel(ctx, reason) {\n if (ctx.cancelPromise != null) {\n if (arguments.length > 1) {\n ctx.cancelPromise._reject(reason);\n } else {\n ctx.cancelPromise._cancel();\n }\n ctx.cancelPromise = null;\n return true;\n }\n return false;\n}\n\nfunction succeed() {\n return finallyHandler.call(this, this.promise._target()._settledValue());\n}\nfunction fail(reason) {\n if (checkCancel(this, reason)) return;\n errorObj.e = reason;\n return errorObj;\n}\nfunction finallyHandler(reasonOrValue) {\n var promise = this.promise;\n var handler = this.handler;\n\n if (!this.called) {\n this.called = true;\n var ret = this.isFinallyHandler()\n ? handler.call(promise._boundValue())\n : handler.call(promise._boundValue(), reasonOrValue);\n if (ret === NEXT_FILTER) {\n return ret;\n } else if (ret !== undefined) {\n promise._setReturnedNonUndefined();\n var maybePromise = tryConvertToPromise(ret, promise);\n if (maybePromise instanceof Promise) {\n if (this.cancelPromise != null) {\n if (maybePromise._isCancelled()) {\n var reason =\n new CancellationError(\"late cancellation observer\");\n promise._attachExtraTrace(reason);\n errorObj.e = reason;\n return errorObj;\n } else if (maybePromise.isPending()) {\n maybePromise._attachCancellationCallback(\n new FinallyHandlerCancelReaction(this));\n }\n }\n return maybePromise._then(\n succeed, fail, undefined, this, undefined);\n }\n }\n }\n\n if (promise.isRejected()) {\n checkCancel(this);\n errorObj.e = reasonOrValue;\n return errorObj;\n } else {\n checkCancel(this);\n return reasonOrValue;\n }\n}\n\nPromise.prototype._passThrough = function(handler, type, success, fail) {\n if (typeof handler !== \"function\") return this.then();\n return this._then(success,\n fail,\n undefined,\n new PassThroughHandlerContext(this, type, handler),\n undefined);\n};\n\nPromise.prototype.lastly =\nPromise.prototype[\"finally\"] = function (handler) {\n return this._passThrough(handler,\n 0,\n finallyHandler,\n finallyHandler);\n};\n\n\nPromise.prototype.tap = function (handler) {\n return this._passThrough(handler, 1, finallyHandler);\n};\n\nPromise.prototype.tapCatch = function (handlerOrPredicate) {\n var len = arguments.length;\n if(len === 1) {\n return this._passThrough(handlerOrPredicate,\n 1,\n undefined,\n finallyHandler);\n } else {\n var catchInstances = new Array(len - 1),\n j = 0, i;\n for (i = 0; i < len - 1; ++i) {\n var item = arguments[i];\n if (util.isObject(item)) {\n catchInstances[j++] = item;\n } else {\n return Promise.reject(new TypeError(\n \"tapCatch statement predicate: \"\n + \"expecting an object but got \" + util.classString(item)\n ));\n }\n }\n catchInstances.length = j;\n var handler = arguments[i];\n return this._passThrough(catchFilter(catchInstances, handler, this),\n 1,\n undefined,\n finallyHandler);\n }\n\n};\n\nreturn PassThroughHandlerContext;\n};\n\n},{\"./catch_filter\":7,\"./util\":36}],16:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise,\n apiRejection,\n INTERNAL,\n tryConvertToPromise,\n Proxyable,\n debug) {\nvar errors = _dereq_(\"./errors\");\nvar TypeError = errors.TypeError;\nvar util = _dereq_(\"./util\");\nvar errorObj = util.errorObj;\nvar tryCatch = util.tryCatch;\nvar yieldHandlers = [];\n\nfunction promiseFromYieldHandler(value, yieldHandlers, traceParent) {\n for (var i = 0; i < yieldHandlers.length; ++i) {\n traceParent._pushContext();\n var result = tryCatch(yieldHandlers[i])(value);\n traceParent._popContext();\n if (result === errorObj) {\n traceParent._pushContext();\n var ret = Promise.reject(errorObj.e);\n traceParent._popContext();\n return ret;\n }\n var maybePromise = tryConvertToPromise(result, traceParent);\n if (maybePromise instanceof Promise) return maybePromise;\n }\n return null;\n}\n\nfunction PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) {\n if (debug.cancellation()) {\n var internal = new Promise(INTERNAL);\n var _finallyPromise = this._finallyPromise = new Promise(INTERNAL);\n this._promise = internal.lastly(function() {\n return _finallyPromise;\n });\n internal._captureStackTrace();\n internal._setOnCancel(this);\n } else {\n var promise = this._promise = new Promise(INTERNAL);\n promise._captureStackTrace();\n }\n this._stack = stack;\n this._generatorFunction = generatorFunction;\n this._receiver = receiver;\n this._generator = undefined;\n this._yieldHandlers = typeof yieldHandler === \"function\"\n ? [yieldHandler].concat(yieldHandlers)\n : yieldHandlers;\n this._yieldedPromise = null;\n this._cancellationPhase = false;\n}\nutil.inherits(PromiseSpawn, Proxyable);\n\nPromiseSpawn.prototype._isResolved = function() {\n return this._promise === null;\n};\n\nPromiseSpawn.prototype._cleanup = function() {\n this._promise = this._generator = null;\n if (debug.cancellation() && this._finallyPromise !== null) {\n this._finallyPromise._fulfill();\n this._finallyPromise = null;\n }\n};\n\nPromiseSpawn.prototype._promiseCancelled = function() {\n if (this._isResolved()) return;\n var implementsReturn = typeof this._generator[\"return\"] !== \"undefined\";\n\n var result;\n if (!implementsReturn) {\n var reason = new Promise.CancellationError(\n \"generator .return() sentinel\");\n Promise.coroutine.returnSentinel = reason;\n this._promise._attachExtraTrace(reason);\n this._promise._pushContext();\n result = tryCatch(this._generator[\"throw\"]).call(this._generator,\n reason);\n this._promise._popContext();\n } else {\n this._promise._pushContext();\n result = tryCatch(this._generator[\"return\"]).call(this._generator,\n undefined);\n this._promise._popContext();\n }\n this._cancellationPhase = true;\n this._yieldedPromise = null;\n this._continue(result);\n};\n\nPromiseSpawn.prototype._promiseFulfilled = function(value) {\n this._yieldedPromise = null;\n this._promise._pushContext();\n var result = tryCatch(this._generator.next).call(this._generator, value);\n this._promise._popContext();\n this._continue(result);\n};\n\nPromiseSpawn.prototype._promiseRejected = function(reason) {\n this._yieldedPromise = null;\n this._promise._attachExtraTrace(reason);\n this._promise._pushContext();\n var result = tryCatch(this._generator[\"throw\"])\n .call(this._generator, reason);\n this._promise._popContext();\n this._continue(result);\n};\n\nPromiseSpawn.prototype._resultCancelled = function() {\n if (this._yieldedPromise instanceof Promise) {\n var promise = this._yieldedPromise;\n this._yieldedPromise = null;\n promise.cancel();\n }\n};\n\nPromiseSpawn.prototype.promise = function () {\n return this._promise;\n};\n\nPromiseSpawn.prototype._run = function () {\n this._generator = this._generatorFunction.call(this._receiver);\n this._receiver =\n this._generatorFunction = undefined;\n this._promiseFulfilled(undefined);\n};\n\nPromiseSpawn.prototype._continue = function (result) {\n var promise = this._promise;\n if (result === errorObj) {\n this._cleanup();\n if (this._cancellationPhase) {\n return promise.cancel();\n } else {\n return promise._rejectCallback(result.e, false);\n }\n }\n\n var value = result.value;\n if (result.done === true) {\n this._cleanup();\n if (this._cancellationPhase) {\n return promise.cancel();\n } else {\n return promise._resolveCallback(value);\n }\n } else {\n var maybePromise = tryConvertToPromise(value, this._promise);\n if (!(maybePromise instanceof Promise)) {\n maybePromise =\n promiseFromYieldHandler(maybePromise,\n this._yieldHandlers,\n this._promise);\n if (maybePromise === null) {\n this._promiseRejected(\n new TypeError(\n \"A value %s was yielded that could not be treated as a promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\\u000a\".replace(\"%s\", String(value)) +\n \"From coroutine:\\u000a\" +\n this._stack.split(\"\\n\").slice(1, -7).join(\"\\n\")\n )\n );\n return;\n }\n }\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n this._yieldedPromise = maybePromise;\n maybePromise._proxy(this, null);\n } else if (((bitField & 33554432) !== 0)) {\n Promise._async.invoke(\n this._promiseFulfilled, this, maybePromise._value()\n );\n } else if (((bitField & 16777216) !== 0)) {\n Promise._async.invoke(\n this._promiseRejected, this, maybePromise._reason()\n );\n } else {\n this._promiseCancelled();\n }\n }\n};\n\nPromise.coroutine = function (generatorFunction, options) {\n if (typeof generatorFunction !== \"function\") {\n throw new TypeError(\"generatorFunction must be a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var yieldHandler = Object(options).yieldHandler;\n var PromiseSpawn$ = PromiseSpawn;\n var stack = new Error().stack;\n return function () {\n var generator = generatorFunction.apply(this, arguments);\n var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler,\n stack);\n var ret = spawn.promise();\n spawn._generator = generator;\n spawn._promiseFulfilled(undefined);\n return ret;\n };\n};\n\nPromise.coroutine.addYieldHandler = function(fn) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n yieldHandlers.push(fn);\n};\n\nPromise.spawn = function (generatorFunction) {\n debug.deprecated(\"Promise.spawn()\", \"Promise.coroutine()\");\n if (typeof generatorFunction !== \"function\") {\n return apiRejection(\"generatorFunction must be a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var spawn = new PromiseSpawn(generatorFunction, this);\n var ret = spawn.promise();\n spawn._run(Promise.spawn);\n return ret;\n};\n};\n\n},{\"./errors\":12,\"./util\":36}],17:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports =\nfunction(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async) {\nvar util = _dereq_(\"./util\");\nvar canEvaluate = util.canEvaluate;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar reject;\n\nif (false) {\nif (canEvaluate) {\n var thenCallback = function(i) {\n return new Function(\"value\", \"holder\", \" \\n\\\n 'use strict'; \\n\\\n holder.pIndex = value; \\n\\\n holder.checkFulfillment(this); \\n\\\n \".replace(/Index/g, i));\n };\n\n var promiseSetter = function(i) {\n return new Function(\"promise\", \"holder\", \" \\n\\\n 'use strict'; \\n\\\n holder.pIndex = promise; \\n\\\n \".replace(/Index/g, i));\n };\n\n var generateHolderClass = function(total) {\n var props = new Array(total);\n for (var i = 0; i < props.length; ++i) {\n props[i] = \"this.p\" + (i+1);\n }\n var assignment = props.join(\" = \") + \" = null;\";\n var cancellationCode= \"var promise;\\n\" + props.map(function(prop) {\n return \" \\n\\\n promise = \" + prop + \"; \\n\\\n if (promise instanceof Promise) { \\n\\\n promise.cancel(); \\n\\\n } \\n\\\n \";\n }).join(\"\\n\");\n var passedArguments = props.join(\", \");\n var name = \"Holder$\" + total;\n\n\n var code = \"return function(tryCatch, errorObj, Promise, async) { \\n\\\n 'use strict'; \\n\\\n function [TheName](fn) { \\n\\\n [TheProperties] \\n\\\n this.fn = fn; \\n\\\n this.asyncNeeded = true; \\n\\\n this.now = 0; \\n\\\n } \\n\\\n \\n\\\n [TheName].prototype._callFunction = function(promise) { \\n\\\n promise._pushContext(); \\n\\\n var ret = tryCatch(this.fn)([ThePassedArguments]); \\n\\\n promise._popContext(); \\n\\\n if (ret === errorObj) { \\n\\\n promise._rejectCallback(ret.e, false); \\n\\\n } else { \\n\\\n promise._resolveCallback(ret); \\n\\\n } \\n\\\n }; \\n\\\n \\n\\\n [TheName].prototype.checkFulfillment = function(promise) { \\n\\\n var now = ++this.now; \\n\\\n if (now === [TheTotal]) { \\n\\\n if (this.asyncNeeded) { \\n\\\n async.invoke(this._callFunction, this, promise); \\n\\\n } else { \\n\\\n this._callFunction(promise); \\n\\\n } \\n\\\n \\n\\\n } \\n\\\n }; \\n\\\n \\n\\\n [TheName].prototype._resultCancelled = function() { \\n\\\n [CancellationCode] \\n\\\n }; \\n\\\n \\n\\\n return [TheName]; \\n\\\n }(tryCatch, errorObj, Promise, async); \\n\\\n \";\n\n code = code.replace(/\\[TheName\\]/g, name)\n .replace(/\\[TheTotal\\]/g, total)\n .replace(/\\[ThePassedArguments\\]/g, passedArguments)\n .replace(/\\[TheProperties\\]/g, assignment)\n .replace(/\\[CancellationCode\\]/g, cancellationCode);\n\n return new Function(\"tryCatch\", \"errorObj\", \"Promise\", \"async\", code)\n (tryCatch, errorObj, Promise, async);\n };\n\n var holderClasses = [];\n var thenCallbacks = [];\n var promiseSetters = [];\n\n for (var i = 0; i < 8; ++i) {\n holderClasses.push(generateHolderClass(i + 1));\n thenCallbacks.push(thenCallback(i + 1));\n promiseSetters.push(promiseSetter(i + 1));\n }\n\n reject = function (reason) {\n this._reject(reason);\n };\n}}\n\nPromise.join = function () {\n var last = arguments.length - 1;\n var fn;\n if (last > 0 && typeof arguments[last] === \"function\") {\n fn = arguments[last];\n if (false) {\n if (last <= 8 && canEvaluate) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n var HolderClass = holderClasses[last - 1];\n var holder = new HolderClass(fn);\n var callbacks = thenCallbacks;\n\n for (var i = 0; i < last; ++i) {\n var maybePromise = tryConvertToPromise(arguments[i], ret);\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n maybePromise._then(callbacks[i], reject,\n undefined, ret, holder);\n promiseSetters[i](maybePromise, holder);\n holder.asyncNeeded = false;\n } else if (((bitField & 33554432) !== 0)) {\n callbacks[i].call(ret,\n maybePromise._value(), holder);\n } else if (((bitField & 16777216) !== 0)) {\n ret._reject(maybePromise._reason());\n } else {\n ret._cancel();\n }\n } else {\n callbacks[i].call(ret, maybePromise, holder);\n }\n }\n\n if (!ret._isFateSealed()) {\n if (holder.asyncNeeded) {\n var context = Promise._getContext();\n holder.fn = util.contextBind(context, holder.fn);\n }\n ret._setAsyncGuaranteed();\n ret._setOnCancel(holder);\n }\n return ret;\n }\n }\n }\n var args = [].slice.call(arguments);;\n if (fn) args.pop();\n var ret = new PromiseArray(args).promise();\n return fn !== undefined ? ret.spread(fn) : ret;\n};\n\n};\n\n},{\"./util\":36}],18:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise,\n PromiseArray,\n apiRejection,\n tryConvertToPromise,\n INTERNAL,\n debug) {\nvar util = _dereq_(\"./util\");\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\nvar async = Promise._async;\n\nfunction MappingPromiseArray(promises, fn, limit, _filter) {\n this.constructor$(promises);\n this._promise._captureStackTrace();\n var context = Promise._getContext();\n this._callback = util.contextBind(context, fn);\n this._preservedValues = _filter === INTERNAL\n ? new Array(this.length())\n : null;\n this._limit = limit;\n this._inFlight = 0;\n this._queue = [];\n async.invoke(this._asyncInit, this, undefined);\n if (util.isArray(promises)) {\n for (var i = 0; i < promises.length; ++i) {\n var maybePromise = promises[i];\n if (maybePromise instanceof Promise) {\n maybePromise.suppressUnhandledRejections();\n }\n }\n }\n}\nutil.inherits(MappingPromiseArray, PromiseArray);\n\nMappingPromiseArray.prototype._asyncInit = function() {\n this._init$(undefined, -2);\n};\n\nMappingPromiseArray.prototype._init = function () {};\n\nMappingPromiseArray.prototype._promiseFulfilled = function (value, index) {\n var values = this._values;\n var length = this.length();\n var preservedValues = this._preservedValues;\n var limit = this._limit;\n\n if (index < 0) {\n index = (index * -1) - 1;\n values[index] = value;\n if (limit >= 1) {\n this._inFlight--;\n this._drainQueue();\n if (this._isResolved()) return true;\n }\n } else {\n if (limit >= 1 && this._inFlight >= limit) {\n values[index] = value;\n this._queue.push(index);\n return false;\n }\n if (preservedValues !== null) preservedValues[index] = value;\n\n var promise = this._promise;\n var callback = this._callback;\n var receiver = promise._boundValue();\n promise._pushContext();\n var ret = tryCatch(callback).call(receiver, value, index, length);\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret,\n promiseCreated,\n preservedValues !== null ? \"Promise.filter\" : \"Promise.map\",\n promise\n );\n if (ret === errorObj) {\n this._reject(ret.e);\n return true;\n }\n\n var maybePromise = tryConvertToPromise(ret, this._promise);\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n var bitField = maybePromise._bitField;\n ;\n if (((bitField & 50397184) === 0)) {\n if (limit >= 1) this._inFlight++;\n values[index] = maybePromise;\n maybePromise._proxy(this, (index + 1) * -1);\n return false;\n } else if (((bitField & 33554432) !== 0)) {\n ret = maybePromise._value();\n } else if (((bitField & 16777216) !== 0)) {\n this._reject(maybePromise._reason());\n return true;\n } else {\n this._cancel();\n return true;\n }\n }\n values[index] = ret;\n }\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= length) {\n if (preservedValues !== null) {\n this._filter(values, preservedValues);\n } else {\n this._resolve(values);\n }\n return true;\n }\n return false;\n};\n\nMappingPromiseArray.prototype._drainQueue = function () {\n var queue = this._queue;\n var limit = this._limit;\n var values = this._values;\n while (queue.length > 0 && this._inFlight < limit) {\n if (this._isResolved()) return;\n var index = queue.pop();\n this._promiseFulfilled(values[index], index);\n }\n};\n\nMappingPromiseArray.prototype._filter = function (booleans, values) {\n var len = values.length;\n var ret = new Array(len);\n var j = 0;\n for (var i = 0; i < len; ++i) {\n if (booleans[i]) ret[j++] = values[i];\n }\n ret.length = j;\n this._resolve(ret);\n};\n\nMappingPromiseArray.prototype.preservedValues = function () {\n return this._preservedValues;\n};\n\nfunction map(promises, fn, options, _filter) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n\n var limit = 0;\n if (options !== undefined) {\n if (typeof options === \"object\" && options !== null) {\n if (typeof options.concurrency !== \"number\") {\n return Promise.reject(\n new TypeError(\"'concurrency' must be a number but it is \" +\n util.classString(options.concurrency)));\n }\n limit = options.concurrency;\n } else {\n return Promise.reject(new TypeError(\n \"options argument must be an object but it is \" +\n util.classString(options)));\n }\n }\n limit = typeof limit === \"number\" &&\n isFinite(limit) && limit >= 1 ? limit : 0;\n return new MappingPromiseArray(promises, fn, limit, _filter).promise();\n}\n\nPromise.prototype.map = function (fn, options) {\n return map(this, fn, options, null);\n};\n\nPromise.map = function (promises, fn, options, _filter) {\n return map(promises, fn, options, _filter);\n};\n\n\n};\n\n},{\"./util\":36}],19:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports =\nfunction(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) {\nvar util = _dereq_(\"./util\");\nvar tryCatch = util.tryCatch;\n\nPromise.method = function (fn) {\n if (typeof fn !== \"function\") {\n throw new Promise.TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n return function () {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._pushContext();\n var value = tryCatch(fn).apply(this, arguments);\n var promiseCreated = ret._popContext();\n debug.checkForgottenReturns(\n value, promiseCreated, \"Promise.method\", ret);\n ret._resolveFromSyncValue(value);\n return ret;\n };\n};\n\nPromise.attempt = Promise[\"try\"] = function (fn) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._pushContext();\n var value;\n if (arguments.length > 1) {\n debug.deprecated(\"calling Promise.try with more than 1 argument\");\n var arg = arguments[1];\n var ctx = arguments[2];\n value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg)\n : tryCatch(fn).call(ctx, arg);\n } else {\n value = tryCatch(fn)();\n }\n var promiseCreated = ret._popContext();\n debug.checkForgottenReturns(\n value, promiseCreated, \"Promise.try\", ret);\n ret._resolveFromSyncValue(value);\n return ret;\n};\n\nPromise.prototype._resolveFromSyncValue = function (value) {\n if (value === util.errorObj) {\n this._rejectCallback(value.e, false);\n } else {\n this._resolveCallback(value, true);\n }\n};\n};\n\n},{\"./util\":36}],20:[function(_dereq_,module,exports){\n\"use strict\";\nvar util = _dereq_(\"./util\");\nvar maybeWrapAsError = util.maybeWrapAsError;\nvar errors = _dereq_(\"./errors\");\nvar OperationalError = errors.OperationalError;\nvar es5 = _dereq_(\"./es5\");\n\nfunction isUntypedError(obj) {\n return obj instanceof Error &&\n es5.getPrototypeOf(obj) === Error.prototype;\n}\n\nvar rErrorKey = /^(?:name|message|stack|cause)$/;\nfunction wrapAsOperationalError(obj) {\n var ret;\n if (isUntypedError(obj)) {\n ret = new OperationalError(obj);\n ret.name = obj.name;\n ret.message = obj.message;\n ret.stack = obj.stack;\n var keys = es5.keys(obj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!rErrorKey.test(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n }\n util.markAsOriginatingFromRejection(obj);\n return obj;\n}\n\nfunction nodebackForPromise(promise, multiArgs) {\n return function(err, value) {\n if (promise === null) return;\n if (err) {\n var wrapped = wrapAsOperationalError(maybeWrapAsError(err));\n promise._attachExtraTrace(wrapped);\n promise._reject(wrapped);\n } else if (!multiArgs) {\n promise._fulfill(value);\n } else {\n var args = [].slice.call(arguments, 1);;\n promise._fulfill(args);\n }\n promise = null;\n };\n}\n\nmodule.exports = nodebackForPromise;\n\n},{\"./errors\":12,\"./es5\":13,\"./util\":36}],21:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise) {\nvar util = _dereq_(\"./util\");\nvar async = Promise._async;\nvar tryCatch = util.tryCatch;\nvar errorObj = util.errorObj;\n\nfunction spreadAdapter(val, nodeback) {\n var promise = this;\n if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback);\n var ret =\n tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val));\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\n\nfunction successAdapter(val, nodeback) {\n var promise = this;\n var receiver = promise._boundValue();\n var ret = val === undefined\n ? tryCatch(nodeback).call(receiver, null)\n : tryCatch(nodeback).call(receiver, null, val);\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\nfunction errorAdapter(reason, nodeback) {\n var promise = this;\n if (!reason) {\n var newReason = new Error(reason + \"\");\n newReason.cause = reason;\n reason = newReason;\n }\n var ret = tryCatch(nodeback).call(promise._boundValue(), reason);\n if (ret === errorObj) {\n async.throwLater(ret.e);\n }\n}\n\nPromise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback,\n options) {\n if (typeof nodeback == \"function\") {\n var adapter = successAdapter;\n if (options !== undefined && Object(options).spread) {\n adapter = spreadAdapter;\n }\n this._then(\n adapter,\n errorAdapter,\n undefined,\n this,\n nodeback\n );\n }\n return this;\n};\n};\n\n},{\"./util\":36}],22:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function() {\nvar makeSelfResolutionError = function () {\n return new TypeError(\"circular promise resolution chain\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n};\nvar reflectHandler = function() {\n return new Promise.PromiseInspection(this._target());\n};\nvar apiRejection = function(msg) {\n return Promise.reject(new TypeError(msg));\n};\nfunction Proxyable() {}\nvar UNDEFINED_BINDING = {};\nvar util = _dereq_(\"./util\");\nutil.setReflectHandler(reflectHandler);\n\nvar getDomain = function() {\n var domain = process.domain;\n if (domain === undefined) {\n return null;\n }\n return domain;\n};\nvar getContextDefault = function() {\n return null;\n};\nvar getContextDomain = function() {\n return {\n domain: getDomain(),\n async: null\n };\n};\nvar AsyncResource = util.isNode && util.nodeSupportsAsyncResource ?\n _dereq_(\"async_hooks\").AsyncResource : null;\nvar getContextAsyncHooks = function() {\n return {\n domain: getDomain(),\n async: new AsyncResource(\"Bluebird::Promise\")\n };\n};\nvar getContext = util.isNode ? getContextDomain : getContextDefault;\nutil.notEnumerableProp(Promise, \"_getContext\", getContext);\nvar enableAsyncHooks = function() {\n getContext = getContextAsyncHooks;\n util.notEnumerableProp(Promise, \"_getContext\", getContextAsyncHooks);\n};\nvar disableAsyncHooks = function() {\n getContext = getContextDomain;\n util.notEnumerableProp(Promise, \"_getContext\", getContextDomain);\n};\n\nvar es5 = _dereq_(\"./es5\");\nvar Async = _dereq_(\"./async\");\nvar async = new Async();\nes5.defineProperty(Promise, \"_async\", {value: async});\nvar errors = _dereq_(\"./errors\");\nvar TypeError = Promise.TypeError = errors.TypeError;\nPromise.RangeError = errors.RangeError;\nvar CancellationError = Promise.CancellationError = errors.CancellationError;\nPromise.TimeoutError = errors.TimeoutError;\nPromise.OperationalError = errors.OperationalError;\nPromise.RejectionError = errors.OperationalError;\nPromise.AggregateError = errors.AggregateError;\nvar INTERNAL = function(){};\nvar APPLY = {};\nvar NEXT_FILTER = {};\nvar tryConvertToPromise = _dereq_(\"./thenables\")(Promise, INTERNAL);\nvar PromiseArray =\n _dereq_(\"./promise_array\")(Promise, INTERNAL,\n tryConvertToPromise, apiRejection, Proxyable);\nvar Context = _dereq_(\"./context\")(Promise);\n /*jshint unused:false*/\nvar createContext = Context.create;\n\nvar debug = _dereq_(\"./debuggability\")(Promise, Context,\n enableAsyncHooks, disableAsyncHooks);\nvar CapturedTrace = debug.CapturedTrace;\nvar PassThroughHandlerContext =\n _dereq_(\"./finally\")(Promise, tryConvertToPromise, NEXT_FILTER);\nvar catchFilter = _dereq_(\"./catch_filter\")(NEXT_FILTER);\nvar nodebackForPromise = _dereq_(\"./nodeback\");\nvar errorObj = util.errorObj;\nvar tryCatch = util.tryCatch;\nfunction check(self, executor) {\n if (self == null || self.constructor !== Promise) {\n throw new TypeError(\"the promise constructor cannot be invoked directly\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n if (typeof executor !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(executor));\n }\n\n}\n\nfunction Promise(executor) {\n if (executor !== INTERNAL) {\n check(this, executor);\n }\n this._bitField = 0;\n this._fulfillmentHandler0 = undefined;\n this._rejectionHandler0 = undefined;\n this._promise0 = undefined;\n this._receiver0 = undefined;\n this._resolveFromExecutor(executor);\n this._promiseCreated();\n this._fireEvent(\"promiseCreated\", this);\n}\n\nPromise.prototype.toString = function () {\n return \"[object Promise]\";\n};\n\nPromise.prototype.caught = Promise.prototype[\"catch\"] = function (fn) {\n var len = arguments.length;\n if (len > 1) {\n var catchInstances = new Array(len - 1),\n j = 0, i;\n for (i = 0; i < len - 1; ++i) {\n var item = arguments[i];\n if (util.isObject(item)) {\n catchInstances[j++] = item;\n } else {\n return apiRejection(\"Catch statement predicate: \" +\n \"expecting an object but got \" + util.classString(item));\n }\n }\n catchInstances.length = j;\n fn = arguments[i];\n\n if (typeof fn !== \"function\") {\n throw new TypeError(\"The last argument to .catch() \" +\n \"must be a function, got \" + util.toString(fn));\n }\n return this.then(undefined, catchFilter(catchInstances, fn, this));\n }\n return this.then(undefined, fn);\n};\n\nPromise.prototype.reflect = function () {\n return this._then(reflectHandler,\n reflectHandler, undefined, this, undefined);\n};\n\nPromise.prototype.then = function (didFulfill, didReject) {\n if (debug.warnings() && arguments.length > 0 &&\n typeof didFulfill !== \"function\" &&\n typeof didReject !== \"function\") {\n var msg = \".then() only accepts functions but was passed: \" +\n util.classString(didFulfill);\n if (arguments.length > 1) {\n msg += \", \" + util.classString(didReject);\n }\n this._warn(msg);\n }\n return this._then(didFulfill, didReject, undefined, undefined, undefined);\n};\n\nPromise.prototype.done = function (didFulfill, didReject) {\n var promise =\n this._then(didFulfill, didReject, undefined, undefined, undefined);\n promise._setIsFinal();\n};\n\nPromise.prototype.spread = function (fn) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n return this.all()._then(fn, undefined, undefined, APPLY, undefined);\n};\n\nPromise.prototype.toJSON = function () {\n var ret = {\n isFulfilled: false,\n isRejected: false,\n fulfillmentValue: undefined,\n rejectionReason: undefined\n };\n if (this.isFulfilled()) {\n ret.fulfillmentValue = this.value();\n ret.isFulfilled = true;\n } else if (this.isRejected()) {\n ret.rejectionReason = this.reason();\n ret.isRejected = true;\n }\n return ret;\n};\n\nPromise.prototype.all = function () {\n if (arguments.length > 0) {\n this._warn(\".all() was passed arguments but it does not take any\");\n }\n return new PromiseArray(this).promise();\n};\n\nPromise.prototype.error = function (fn) {\n return this.caught(util.originatesFromRejection, fn);\n};\n\nPromise.getNewLibraryCopy = module.exports;\n\nPromise.is = function (val) {\n return val instanceof Promise;\n};\n\nPromise.fromNode = Promise.fromCallback = function(fn) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs\n : false;\n var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs));\n if (result === errorObj) {\n ret._rejectCallback(result.e, true);\n }\n if (!ret._isFateSealed()) ret._setAsyncGuaranteed();\n return ret;\n};\n\nPromise.all = function (promises) {\n return new PromiseArray(promises).promise();\n};\n\nPromise.cast = function (obj) {\n var ret = tryConvertToPromise(obj);\n if (!(ret instanceof Promise)) {\n ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._setFulfilled();\n ret._rejectionHandler0 = obj;\n }\n return ret;\n};\n\nPromise.resolve = Promise.fulfilled = Promise.cast;\n\nPromise.reject = Promise.rejected = function (reason) {\n var ret = new Promise(INTERNAL);\n ret._captureStackTrace();\n ret._rejectCallback(reason, true);\n return ret;\n};\n\nPromise.setScheduler = function(fn) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n return async.setScheduler(fn);\n};\n\nPromise.prototype._then = function (\n didFulfill,\n didReject,\n _, receiver,\n internalData\n) {\n var haveInternalData = internalData !== undefined;\n var promise = haveInternalData ? internalData : new Promise(INTERNAL);\n var target = this._target();\n var bitField = target._bitField;\n\n if (!haveInternalData) {\n promise._propagateFrom(this, 3);\n promise._captureStackTrace();\n if (receiver === undefined &&\n ((this._bitField & 2097152) !== 0)) {\n if (!((bitField & 50397184) === 0)) {\n receiver = this._boundValue();\n } else {\n receiver = target === this ? undefined : this._boundTo;\n }\n }\n this._fireEvent(\"promiseChained\", this, promise);\n }\n\n var context = getContext();\n if (!((bitField & 50397184) === 0)) {\n var handler, value, settler = target._settlePromiseCtx;\n if (((bitField & 33554432) !== 0)) {\n value = target._rejectionHandler0;\n handler = didFulfill;\n } else if (((bitField & 16777216) !== 0)) {\n value = target._fulfillmentHandler0;\n handler = didReject;\n target._unsetRejectionIsUnhandled();\n } else {\n settler = target._settlePromiseLateCancellationObserver;\n value = new CancellationError(\"late cancellation observer\");\n target._attachExtraTrace(value);\n handler = didReject;\n }\n\n async.invoke(settler, target, {\n handler: util.contextBind(context, handler),\n promise: promise,\n receiver: receiver,\n value: value\n });\n } else {\n target._addCallbacks(didFulfill, didReject, promise,\n receiver, context);\n }\n\n return promise;\n};\n\nPromise.prototype._length = function () {\n return this._bitField & 65535;\n};\n\nPromise.prototype._isFateSealed = function () {\n return (this._bitField & 117506048) !== 0;\n};\n\nPromise.prototype._isFollowing = function () {\n return (this._bitField & 67108864) === 67108864;\n};\n\nPromise.prototype._setLength = function (len) {\n this._bitField = (this._bitField & -65536) |\n (len & 65535);\n};\n\nPromise.prototype._setFulfilled = function () {\n this._bitField = this._bitField | 33554432;\n this._fireEvent(\"promiseFulfilled\", this);\n};\n\nPromise.prototype._setRejected = function () {\n this._bitField = this._bitField | 16777216;\n this._fireEvent(\"promiseRejected\", this);\n};\n\nPromise.prototype._setFollowing = function () {\n this._bitField = this._bitField | 67108864;\n this._fireEvent(\"promiseResolved\", this);\n};\n\nPromise.prototype._setIsFinal = function () {\n this._bitField = this._bitField | 4194304;\n};\n\nPromise.prototype._isFinal = function () {\n return (this._bitField & 4194304) > 0;\n};\n\nPromise.prototype._unsetCancelled = function() {\n this._bitField = this._bitField & (~65536);\n};\n\nPromise.prototype._setCancelled = function() {\n this._bitField = this._bitField | 65536;\n this._fireEvent(\"promiseCancelled\", this);\n};\n\nPromise.prototype._setWillBeCancelled = function() {\n this._bitField = this._bitField | 8388608;\n};\n\nPromise.prototype._setAsyncGuaranteed = function() {\n if (async.hasCustomScheduler()) return;\n var bitField = this._bitField;\n this._bitField = bitField |\n (((bitField & 536870912) >> 2) ^\n 134217728);\n};\n\nPromise.prototype._setNoAsyncGuarantee = function() {\n this._bitField = (this._bitField | 536870912) &\n (~134217728);\n};\n\nPromise.prototype._receiverAt = function (index) {\n var ret = index === 0 ? this._receiver0 : this[\n index * 4 - 4 + 3];\n if (ret === UNDEFINED_BINDING) {\n return undefined;\n } else if (ret === undefined && this._isBound()) {\n return this._boundValue();\n }\n return ret;\n};\n\nPromise.prototype._promiseAt = function (index) {\n return this[\n index * 4 - 4 + 2];\n};\n\nPromise.prototype._fulfillmentHandlerAt = function (index) {\n return this[\n index * 4 - 4 + 0];\n};\n\nPromise.prototype._rejectionHandlerAt = function (index) {\n return this[\n index * 4 - 4 + 1];\n};\n\nPromise.prototype._boundValue = function() {};\n\nPromise.prototype._migrateCallback0 = function (follower) {\n var bitField = follower._bitField;\n var fulfill = follower._fulfillmentHandler0;\n var reject = follower._rejectionHandler0;\n var promise = follower._promise0;\n var receiver = follower._receiverAt(0);\n if (receiver === undefined) receiver = UNDEFINED_BINDING;\n this._addCallbacks(fulfill, reject, promise, receiver, null);\n};\n\nPromise.prototype._migrateCallbackAt = function (follower, index) {\n var fulfill = follower._fulfillmentHandlerAt(index);\n var reject = follower._rejectionHandlerAt(index);\n var promise = follower._promiseAt(index);\n var receiver = follower._receiverAt(index);\n if (receiver === undefined) receiver = UNDEFINED_BINDING;\n this._addCallbacks(fulfill, reject, promise, receiver, null);\n};\n\nPromise.prototype._addCallbacks = function (\n fulfill,\n reject,\n promise,\n receiver,\n context\n) {\n var index = this._length();\n\n if (index >= 65535 - 4) {\n index = 0;\n this._setLength(0);\n }\n\n if (index === 0) {\n this._promise0 = promise;\n this._receiver0 = receiver;\n if (typeof fulfill === \"function\") {\n this._fulfillmentHandler0 = util.contextBind(context, fulfill);\n }\n if (typeof reject === \"function\") {\n this._rejectionHandler0 = util.contextBind(context, reject);\n }\n } else {\n var base = index * 4 - 4;\n this[base + 2] = promise;\n this[base + 3] = receiver;\n if (typeof fulfill === \"function\") {\n this[base + 0] =\n util.contextBind(context, fulfill);\n }\n if (typeof reject === \"function\") {\n this[base + 1] =\n util.contextBind(context, reject);\n }\n }\n this._setLength(index + 1);\n return index;\n};\n\nPromise.prototype._proxy = function (proxyable, arg) {\n this._addCallbacks(undefined, undefined, arg, proxyable, null);\n};\n\nPromise.prototype._resolveCallback = function(value, shouldBind) {\n if (((this._bitField & 117506048) !== 0)) return;\n if (value === this)\n return this._rejectCallback(makeSelfResolutionError(), false);\n var maybePromise = tryConvertToPromise(value, this);\n if (!(maybePromise instanceof Promise)) return this._fulfill(value);\n\n if (shouldBind) this._propagateFrom(maybePromise, 2);\n\n\n var promise = maybePromise._target();\n\n if (promise === this) {\n this._reject(makeSelfResolutionError());\n return;\n }\n\n var bitField = promise._bitField;\n if (((bitField & 50397184) === 0)) {\n var len = this._length();\n if (len > 0) promise._migrateCallback0(this);\n for (var i = 1; i < len; ++i) {\n promise._migrateCallbackAt(this, i);\n }\n this._setFollowing();\n this._setLength(0);\n this._setFollowee(maybePromise);\n } else if (((bitField & 33554432) !== 0)) {\n this._fulfill(promise._value());\n } else if (((bitField & 16777216) !== 0)) {\n this._reject(promise._reason());\n } else {\n var reason = new CancellationError(\"late cancellation observer\");\n promise._attachExtraTrace(reason);\n this._reject(reason);\n }\n};\n\nPromise.prototype._rejectCallback =\nfunction(reason, synchronous, ignoreNonErrorWarnings) {\n var trace = util.ensureErrorObject(reason);\n var hasStack = trace === reason;\n if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) {\n var message = \"a promise was rejected with a non-error: \" +\n util.classString(reason);\n this._warn(message, true);\n }\n this._attachExtraTrace(trace, synchronous ? hasStack : false);\n this._reject(reason);\n};\n\nPromise.prototype._resolveFromExecutor = function (executor) {\n if (executor === INTERNAL) return;\n var promise = this;\n this._captureStackTrace();\n this._pushContext();\n var synchronous = true;\n var r = this._execute(executor, function(value) {\n promise._resolveCallback(value);\n }, function (reason) {\n promise._rejectCallback(reason, synchronous);\n });\n synchronous = false;\n this._popContext();\n\n if (r !== undefined) {\n promise._rejectCallback(r, true);\n }\n};\n\nPromise.prototype._settlePromiseFromHandler = function (\n handler, receiver, value, promise\n) {\n var bitField = promise._bitField;\n if (((bitField & 65536) !== 0)) return;\n promise._pushContext();\n var x;\n if (receiver === APPLY) {\n if (!value || typeof value.length !== \"number\") {\n x = errorObj;\n x.e = new TypeError(\"cannot .spread() a non-array: \" +\n util.classString(value));\n } else {\n x = tryCatch(handler).apply(this._boundValue(), value);\n }\n } else {\n x = tryCatch(handler).call(receiver, value);\n }\n var promiseCreated = promise._popContext();\n bitField = promise._bitField;\n if (((bitField & 65536) !== 0)) return;\n\n if (x === NEXT_FILTER) {\n promise._reject(value);\n } else if (x === errorObj) {\n promise._rejectCallback(x.e, false);\n } else {\n debug.checkForgottenReturns(x, promiseCreated, \"\", promise, this);\n promise._resolveCallback(x);\n }\n};\n\nPromise.prototype._target = function() {\n var ret = this;\n while (ret._isFollowing()) ret = ret._followee();\n return ret;\n};\n\nPromise.prototype._followee = function() {\n return this._rejectionHandler0;\n};\n\nPromise.prototype._setFollowee = function(promise) {\n this._rejectionHandler0 = promise;\n};\n\nPromise.prototype._settlePromise = function(promise, handler, receiver, value) {\n var isPromise = promise instanceof Promise;\n var bitField = this._bitField;\n var asyncGuaranteed = ((bitField & 134217728) !== 0);\n if (((bitField & 65536) !== 0)) {\n if (isPromise) promise._invokeInternalOnCancel();\n\n if (receiver instanceof PassThroughHandlerContext &&\n receiver.isFinallyHandler()) {\n receiver.cancelPromise = promise;\n if (tryCatch(handler).call(receiver, value) === errorObj) {\n promise._reject(errorObj.e);\n }\n } else if (handler === reflectHandler) {\n promise._fulfill(reflectHandler.call(receiver));\n } else if (receiver instanceof Proxyable) {\n receiver._promiseCancelled(promise);\n } else if (isPromise || promise instanceof PromiseArray) {\n promise._cancel();\n } else {\n receiver.cancel();\n }\n } else if (typeof handler === \"function\") {\n if (!isPromise) {\n handler.call(receiver, value, promise);\n } else {\n if (asyncGuaranteed) promise._setAsyncGuaranteed();\n this._settlePromiseFromHandler(handler, receiver, value, promise);\n }\n } else if (receiver instanceof Proxyable) {\n if (!receiver._isResolved()) {\n if (((bitField & 33554432) !== 0)) {\n receiver._promiseFulfilled(value, promise);\n } else {\n receiver._promiseRejected(value, promise);\n }\n }\n } else if (isPromise) {\n if (asyncGuaranteed) promise._setAsyncGuaranteed();\n if (((bitField & 33554432) !== 0)) {\n promise._fulfill(value);\n } else {\n promise._reject(value);\n }\n }\n};\n\nPromise.prototype._settlePromiseLateCancellationObserver = function(ctx) {\n var handler = ctx.handler;\n var promise = ctx.promise;\n var receiver = ctx.receiver;\n var value = ctx.value;\n if (typeof handler === \"function\") {\n if (!(promise instanceof Promise)) {\n handler.call(receiver, value, promise);\n } else {\n this._settlePromiseFromHandler(handler, receiver, value, promise);\n }\n } else if (promise instanceof Promise) {\n promise._reject(value);\n }\n};\n\nPromise.prototype._settlePromiseCtx = function(ctx) {\n this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value);\n};\n\nPromise.prototype._settlePromise0 = function(handler, value, bitField) {\n var promise = this._promise0;\n var receiver = this._receiverAt(0);\n this._promise0 = undefined;\n this._receiver0 = undefined;\n this._settlePromise(promise, handler, receiver, value);\n};\n\nPromise.prototype._clearCallbackDataAtIndex = function(index) {\n var base = index * 4 - 4;\n this[base + 2] =\n this[base + 3] =\n this[base + 0] =\n this[base + 1] = undefined;\n};\n\nPromise.prototype._fulfill = function (value) {\n var bitField = this._bitField;\n if (((bitField & 117506048) >>> 16)) return;\n if (value === this) {\n var err = makeSelfResolutionError();\n this._attachExtraTrace(err);\n return this._reject(err);\n }\n this._setFulfilled();\n this._rejectionHandler0 = value;\n\n if ((bitField & 65535) > 0) {\n if (((bitField & 134217728) !== 0)) {\n this._settlePromises();\n } else {\n async.settlePromises(this);\n }\n this._dereferenceTrace();\n }\n};\n\nPromise.prototype._reject = function (reason) {\n var bitField = this._bitField;\n if (((bitField & 117506048) >>> 16)) return;\n this._setRejected();\n this._fulfillmentHandler0 = reason;\n\n if (this._isFinal()) {\n return async.fatalError(reason, util.isNode);\n }\n\n if ((bitField & 65535) > 0) {\n async.settlePromises(this);\n } else {\n this._ensurePossibleRejectionHandled();\n }\n};\n\nPromise.prototype._fulfillPromises = function (len, value) {\n for (var i = 1; i < len; i++) {\n var handler = this._fulfillmentHandlerAt(i);\n var promise = this._promiseAt(i);\n var receiver = this._receiverAt(i);\n this._clearCallbackDataAtIndex(i);\n this._settlePromise(promise, handler, receiver, value);\n }\n};\n\nPromise.prototype._rejectPromises = function (len, reason) {\n for (var i = 1; i < len; i++) {\n var handler = this._rejectionHandlerAt(i);\n var promise = this._promiseAt(i);\n var receiver = this._receiverAt(i);\n this._clearCallbackDataAtIndex(i);\n this._settlePromise(promise, handler, receiver, reason);\n }\n};\n\nPromise.prototype._settlePromises = function () {\n var bitField = this._bitField;\n var len = (bitField & 65535);\n\n if (len > 0) {\n if (((bitField & 16842752) !== 0)) {\n var reason = this._fulfillmentHandler0;\n this._settlePromise0(this._rejectionHandler0, reason, bitField);\n this._rejectPromises(len, reason);\n } else {\n var value = this._rejectionHandler0;\n this._settlePromise0(this._fulfillmentHandler0, value, bitField);\n this._fulfillPromises(len, value);\n }\n this._setLength(0);\n }\n this._clearCancellationData();\n};\n\nPromise.prototype._settledValue = function() {\n var bitField = this._bitField;\n if (((bitField & 33554432) !== 0)) {\n return this._rejectionHandler0;\n } else if (((bitField & 16777216) !== 0)) {\n return this._fulfillmentHandler0;\n }\n};\n\nif (typeof Symbol !== \"undefined\" && Symbol.toStringTag) {\n es5.defineProperty(Promise.prototype, Symbol.toStringTag, {\n get: function () {\n return \"Object\";\n }\n });\n}\n\nfunction deferResolve(v) {this.promise._resolveCallback(v);}\nfunction deferReject(v) {this.promise._rejectCallback(v, false);}\n\nPromise.defer = Promise.pending = function() {\n debug.deprecated(\"Promise.defer\", \"new Promise\");\n var promise = new Promise(INTERNAL);\n return {\n promise: promise,\n resolve: deferResolve,\n reject: deferReject\n };\n};\n\nutil.notEnumerableProp(Promise,\n \"_makeSelfResolutionError\",\n makeSelfResolutionError);\n\n_dereq_(\"./method\")(Promise, INTERNAL, tryConvertToPromise, apiRejection,\n debug);\n_dereq_(\"./bind\")(Promise, INTERNAL, tryConvertToPromise, debug);\n_dereq_(\"./cancel\")(Promise, PromiseArray, apiRejection, debug);\n_dereq_(\"./direct_resolve\")(Promise);\n_dereq_(\"./synchronous_inspection\")(Promise);\n_dereq_(\"./join\")(\n Promise, PromiseArray, tryConvertToPromise, INTERNAL, async);\nPromise.Promise = Promise;\nPromise.version = \"3.7.2\";\n_dereq_('./call_get.js')(Promise);\n_dereq_('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug);\n_dereq_('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);\n_dereq_('./nodeify.js')(Promise);\n_dereq_('./promisify.js')(Promise, INTERNAL);\n_dereq_('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection);\n_dereq_('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection);\n_dereq_('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug);\n_dereq_('./settle.js')(Promise, PromiseArray, debug);\n_dereq_('./some.js')(Promise, PromiseArray, apiRejection);\n_dereq_('./timers.js')(Promise, INTERNAL, debug);\n_dereq_('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug);\n_dereq_('./any.js')(Promise);\n_dereq_('./each.js')(Promise, INTERNAL);\n_dereq_('./filter.js')(Promise, INTERNAL);\n \n util.toFastProperties(Promise); \n util.toFastProperties(Promise.prototype); \n function fillTypes(value) { \n var p = new Promise(INTERNAL); \n p._fulfillmentHandler0 = value; \n p._rejectionHandler0 = value; \n p._promise0 = value; \n p._receiver0 = value; \n } \n // Complete slack tracking, opt out of field-type tracking and \n // stabilize map \n fillTypes({a: 1}); \n fillTypes({b: 2}); \n fillTypes({c: 3}); \n fillTypes(1); \n fillTypes(function(){}); \n fillTypes(undefined); \n fillTypes(false); \n fillTypes(new Promise(INTERNAL)); \n debug.setBounds(Async.firstLineError, util.lastLineError); \n return Promise; \n\n};\n\n},{\"./any.js\":1,\"./async\":2,\"./bind\":3,\"./call_get.js\":5,\"./cancel\":6,\"./catch_filter\":7,\"./context\":8,\"./debuggability\":9,\"./direct_resolve\":10,\"./each.js\":11,\"./errors\":12,\"./es5\":13,\"./filter.js\":14,\"./finally\":15,\"./generators.js\":16,\"./join\":17,\"./map.js\":18,\"./method\":19,\"./nodeback\":20,\"./nodeify.js\":21,\"./promise_array\":23,\"./promisify.js\":24,\"./props.js\":25,\"./race.js\":27,\"./reduce.js\":28,\"./settle.js\":30,\"./some.js\":31,\"./synchronous_inspection\":32,\"./thenables\":33,\"./timers.js\":34,\"./using.js\":35,\"./util\":36,\"async_hooks\":undefined}],23:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL, tryConvertToPromise,\n apiRejection, Proxyable) {\nvar util = _dereq_(\"./util\");\nvar isArray = util.isArray;\n\nfunction toResolutionValue(val) {\n switch(val) {\n case -2: return [];\n case -3: return {};\n case -6: return new Map();\n }\n}\n\nfunction PromiseArray(values) {\n var promise = this._promise = new Promise(INTERNAL);\n if (values instanceof Promise) {\n promise._propagateFrom(values, 3);\n values.suppressUnhandledRejections();\n }\n promise._setOnCancel(this);\n this._values = values;\n this._length = 0;\n this._totalResolved = 0;\n this._init(undefined, -2);\n}\nutil.inherits(PromiseArray, Proxyable);\n\nPromiseArray.prototype.length = function () {\n return this._length;\n};\n\nPromiseArray.prototype.promise = function () {\n return this._promise;\n};\n\nPromiseArray.prototype._init = function init(_, resolveValueIfEmpty) {\n var values = tryConvertToPromise(this._values, this._promise);\n if (values instanceof Promise) {\n values = values._target();\n var bitField = values._bitField;\n ;\n this._values = values;\n\n if (((bitField & 50397184) === 0)) {\n this._promise._setAsyncGuaranteed();\n return values._then(\n init,\n this._reject,\n undefined,\n this,\n resolveValueIfEmpty\n );\n } else if (((bitField & 33554432) !== 0)) {\n values = values._value();\n } else if (((bitField & 16777216) !== 0)) {\n return this._reject(values._reason());\n } else {\n return this._cancel();\n }\n }\n values = util.asArray(values);\n if (values === null) {\n var err = apiRejection(\n \"expecting an array or an iterable object but got \" + util.classString(values)).reason();\n this._promise._rejectCallback(err, false);\n return;\n }\n\n if (values.length === 0) {\n if (resolveValueIfEmpty === -5) {\n this._resolveEmptyArray();\n }\n else {\n this._resolve(toResolutionValue(resolveValueIfEmpty));\n }\n return;\n }\n this._iterate(values);\n};\n\nPromiseArray.prototype._iterate = function(values) {\n var len = this.getActualLength(values.length);\n this._length = len;\n this._values = this.shouldCopyValues() ? new Array(len) : this._values;\n var result = this._promise;\n var isResolved = false;\n var bitField = null;\n for (var i = 0; i < len; ++i) {\n var maybePromise = tryConvertToPromise(values[i], result);\n\n if (maybePromise instanceof Promise) {\n maybePromise = maybePromise._target();\n bitField = maybePromise._bitField;\n } else {\n bitField = null;\n }\n\n if (isResolved) {\n if (bitField !== null) {\n maybePromise.suppressUnhandledRejections();\n }\n } else if (bitField !== null) {\n if (((bitField & 50397184) === 0)) {\n maybePromise._proxy(this, i);\n this._values[i] = maybePromise;\n } else if (((bitField & 33554432) !== 0)) {\n isResolved = this._promiseFulfilled(maybePromise._value(), i);\n } else if (((bitField & 16777216) !== 0)) {\n isResolved = this._promiseRejected(maybePromise._reason(), i);\n } else {\n isResolved = this._promiseCancelled(i);\n }\n } else {\n isResolved = this._promiseFulfilled(maybePromise, i);\n }\n }\n if (!isResolved) result._setAsyncGuaranteed();\n};\n\nPromiseArray.prototype._isResolved = function () {\n return this._values === null;\n};\n\nPromiseArray.prototype._resolve = function (value) {\n this._values = null;\n this._promise._fulfill(value);\n};\n\nPromiseArray.prototype._cancel = function() {\n if (this._isResolved() || !this._promise._isCancellable()) return;\n this._values = null;\n this._promise._cancel();\n};\n\nPromiseArray.prototype._reject = function (reason) {\n this._values = null;\n this._promise._rejectCallback(reason, false);\n};\n\nPromiseArray.prototype._promiseFulfilled = function (value, index) {\n this._values[index] = value;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n this._resolve(this._values);\n return true;\n }\n return false;\n};\n\nPromiseArray.prototype._promiseCancelled = function() {\n this._cancel();\n return true;\n};\n\nPromiseArray.prototype._promiseRejected = function (reason) {\n this._totalResolved++;\n this._reject(reason);\n return true;\n};\n\nPromiseArray.prototype._resultCancelled = function() {\n if (this._isResolved()) return;\n var values = this._values;\n this._cancel();\n if (values instanceof Promise) {\n values.cancel();\n } else {\n for (var i = 0; i < values.length; ++i) {\n if (values[i] instanceof Promise) {\n values[i].cancel();\n }\n }\n }\n};\n\nPromiseArray.prototype.shouldCopyValues = function () {\n return true;\n};\n\nPromiseArray.prototype.getActualLength = function (len) {\n return len;\n};\n\nreturn PromiseArray;\n};\n\n},{\"./util\":36}],24:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar THIS = {};\nvar util = _dereq_(\"./util\");\nvar nodebackForPromise = _dereq_(\"./nodeback\");\nvar withAppended = util.withAppended;\nvar maybeWrapAsError = util.maybeWrapAsError;\nvar canEvaluate = util.canEvaluate;\nvar TypeError = _dereq_(\"./errors\").TypeError;\nvar defaultSuffix = \"Async\";\nvar defaultPromisified = {__isPromisified__: true};\nvar noCopyProps = [\n \"arity\", \"length\",\n \"name\",\n \"arguments\",\n \"caller\",\n \"callee\",\n \"prototype\",\n \"__isPromisified__\"\n];\nvar noCopyPropsPattern = new RegExp(\"^(?:\" + noCopyProps.join(\"|\") + \")$\");\n\nvar defaultFilter = function(name) {\n return util.isIdentifier(name) &&\n name.charAt(0) !== \"_\" &&\n name !== \"constructor\";\n};\n\nfunction propsFilter(key) {\n return !noCopyPropsPattern.test(key);\n}\n\nfunction isPromisified(fn) {\n try {\n return fn.__isPromisified__ === true;\n }\n catch (e) {\n return false;\n }\n}\n\nfunction hasPromisified(obj, key, suffix) {\n var val = util.getDataPropertyOrDefault(obj, key + suffix,\n defaultPromisified);\n return val ? isPromisified(val) : false;\n}\nfunction checkValid(ret, suffix, suffixRegexp) {\n for (var i = 0; i < ret.length; i += 2) {\n var key = ret[i];\n if (suffixRegexp.test(key)) {\n var keyWithoutAsyncSuffix = key.replace(suffixRegexp, \"\");\n for (var j = 0; j < ret.length; j += 2) {\n if (ret[j] === keyWithoutAsyncSuffix) {\n throw new TypeError(\"Cannot promisify an API that has normal methods with '%s'-suffix\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\"\n .replace(\"%s\", suffix));\n }\n }\n }\n }\n}\n\nfunction promisifiableMethods(obj, suffix, suffixRegexp, filter) {\n var keys = util.inheritedDataKeys(obj);\n var ret = [];\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var value = obj[key];\n var passesDefaultFilter = filter === defaultFilter\n ? true : defaultFilter(key, value, obj);\n if (typeof value === \"function\" &&\n !isPromisified(value) &&\n !hasPromisified(obj, key, suffix) &&\n filter(key, value, obj, passesDefaultFilter)) {\n ret.push(key, value);\n }\n }\n checkValid(ret, suffix, suffixRegexp);\n return ret;\n}\n\nvar escapeIdentRegex = function(str) {\n return str.replace(/([$])/, \"\\\\$\");\n};\n\nvar makeNodePromisifiedEval;\nif (false) {\nvar switchCaseArgumentOrder = function(likelyArgumentCount) {\n var ret = [likelyArgumentCount];\n var min = Math.max(0, likelyArgumentCount - 1 - 3);\n for(var i = likelyArgumentCount - 1; i >= min; --i) {\n ret.push(i);\n }\n for(var i = likelyArgumentCount + 1; i <= 3; ++i) {\n ret.push(i);\n }\n return ret;\n};\n\nvar argumentSequence = function(argumentCount) {\n return util.filledRange(argumentCount, \"_arg\", \"\");\n};\n\nvar parameterDeclaration = function(parameterCount) {\n return util.filledRange(\n Math.max(parameterCount, 3), \"_arg\", \"\");\n};\n\nvar parameterCount = function(fn) {\n if (typeof fn.length === \"number\") {\n return Math.max(Math.min(fn.length, 1023 + 1), 0);\n }\n return 0;\n};\n\nmakeNodePromisifiedEval =\nfunction(callback, receiver, originalName, fn, _, multiArgs) {\n var newParameterCount = Math.max(0, parameterCount(fn) - 1);\n var argumentOrder = switchCaseArgumentOrder(newParameterCount);\n var shouldProxyThis = typeof callback === \"string\" || receiver === THIS;\n\n function generateCallForArgumentCount(count) {\n var args = argumentSequence(count).join(\", \");\n var comma = count > 0 ? \", \" : \"\";\n var ret;\n if (shouldProxyThis) {\n ret = \"ret = callback.call(this, {{args}}, nodeback); break;\\n\";\n } else {\n ret = receiver === undefined\n ? \"ret = callback({{args}}, nodeback); break;\\n\"\n : \"ret = callback.call(receiver, {{args}}, nodeback); break;\\n\";\n }\n return ret.replace(\"{{args}}\", args).replace(\", \", comma);\n }\n\n function generateArgumentSwitchCase() {\n var ret = \"\";\n for (var i = 0; i < argumentOrder.length; ++i) {\n ret += \"case \" + argumentOrder[i] +\":\" +\n generateCallForArgumentCount(argumentOrder[i]);\n }\n\n ret += \" \\n\\\n default: \\n\\\n var args = new Array(len + 1); \\n\\\n var i = 0; \\n\\\n for (var i = 0; i < len; ++i) { \\n\\\n args[i] = arguments[i]; \\n\\\n } \\n\\\n args[i] = nodeback; \\n\\\n [CodeForCall] \\n\\\n break; \\n\\\n \".replace(\"[CodeForCall]\", (shouldProxyThis\n ? \"ret = callback.apply(this, args);\\n\"\n : \"ret = callback.apply(receiver, args);\\n\"));\n return ret;\n }\n\n var getFunctionCode = typeof callback === \"string\"\n ? (\"this != null ? this['\"+callback+\"'] : fn\")\n : \"fn\";\n var body = \"'use strict'; \\n\\\n var ret = function (Parameters) { \\n\\\n 'use strict'; \\n\\\n var len = arguments.length; \\n\\\n var promise = new Promise(INTERNAL); \\n\\\n promise._captureStackTrace(); \\n\\\n var nodeback = nodebackForPromise(promise, \" + multiArgs + \"); \\n\\\n var ret; \\n\\\n var callback = tryCatch([GetFunctionCode]); \\n\\\n switch(len) { \\n\\\n [CodeForSwitchCase] \\n\\\n } \\n\\\n if (ret === errorObj) { \\n\\\n promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\\n\\\n } \\n\\\n if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \\n\\\n return promise; \\n\\\n }; \\n\\\n notEnumerableProp(ret, '__isPromisified__', true); \\n\\\n return ret; \\n\\\n \".replace(\"[CodeForSwitchCase]\", generateArgumentSwitchCase())\n .replace(\"[GetFunctionCode]\", getFunctionCode);\n body = body.replace(\"Parameters\", parameterDeclaration(newParameterCount));\n return new Function(\"Promise\",\n \"fn\",\n \"receiver\",\n \"withAppended\",\n \"maybeWrapAsError\",\n \"nodebackForPromise\",\n \"tryCatch\",\n \"errorObj\",\n \"notEnumerableProp\",\n \"INTERNAL\",\n body)(\n Promise,\n fn,\n receiver,\n withAppended,\n maybeWrapAsError,\n nodebackForPromise,\n util.tryCatch,\n util.errorObj,\n util.notEnumerableProp,\n INTERNAL);\n};\n}\n\nfunction makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) {\n var defaultThis = (function() {return this;})();\n var method = callback;\n if (typeof method === \"string\") {\n callback = fn;\n }\n function promisified() {\n var _receiver = receiver;\n if (receiver === THIS) _receiver = this;\n var promise = new Promise(INTERNAL);\n promise._captureStackTrace();\n var cb = typeof method === \"string\" && this !== defaultThis\n ? this[method] : callback;\n var fn = nodebackForPromise(promise, multiArgs);\n try {\n cb.apply(_receiver, withAppended(arguments, fn));\n } catch(e) {\n promise._rejectCallback(maybeWrapAsError(e), true, true);\n }\n if (!promise._isFateSealed()) promise._setAsyncGuaranteed();\n return promise;\n }\n util.notEnumerableProp(promisified, \"__isPromisified__\", true);\n return promisified;\n}\n\nvar makeNodePromisified = canEvaluate\n ? makeNodePromisifiedEval\n : makeNodePromisifiedClosure;\n\nfunction promisifyAll(obj, suffix, filter, promisifier, multiArgs) {\n var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + \"$\");\n var methods =\n promisifiableMethods(obj, suffix, suffixRegexp, filter);\n\n for (var i = 0, len = methods.length; i < len; i+= 2) {\n var key = methods[i];\n var fn = methods[i+1];\n var promisifiedKey = key + suffix;\n if (promisifier === makeNodePromisified) {\n obj[promisifiedKey] =\n makeNodePromisified(key, THIS, key, fn, suffix, multiArgs);\n } else {\n var promisified = promisifier(fn, function() {\n return makeNodePromisified(key, THIS, key,\n fn, suffix, multiArgs);\n });\n util.notEnumerableProp(promisified, \"__isPromisified__\", true);\n obj[promisifiedKey] = promisified;\n }\n }\n util.toFastProperties(obj);\n return obj;\n}\n\nfunction promisify(callback, receiver, multiArgs) {\n return makeNodePromisified(callback, receiver, undefined,\n callback, null, multiArgs);\n}\n\nPromise.promisify = function (fn, options) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\"expecting a function but got \" + util.classString(fn));\n }\n if (isPromisified(fn)) {\n return fn;\n }\n options = Object(options);\n var receiver = options.context === undefined ? THIS : options.context;\n var multiArgs = !!options.multiArgs;\n var ret = promisify(fn, receiver, multiArgs);\n util.copyDescriptors(fn, ret, propsFilter);\n return ret;\n};\n\nPromise.promisifyAll = function (target, options) {\n if (typeof target !== \"function\" && typeof target !== \"object\") {\n throw new TypeError(\"the target of promisifyAll must be an object or a function\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n options = Object(options);\n var multiArgs = !!options.multiArgs;\n var suffix = options.suffix;\n if (typeof suffix !== \"string\") suffix = defaultSuffix;\n var filter = options.filter;\n if (typeof filter !== \"function\") filter = defaultFilter;\n var promisifier = options.promisifier;\n if (typeof promisifier !== \"function\") promisifier = makeNodePromisified;\n\n if (!util.isIdentifier(suffix)) {\n throw new RangeError(\"suffix must be a valid identifier\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n\n var keys = util.inheritedDataKeys(target);\n for (var i = 0; i < keys.length; ++i) {\n var value = target[keys[i]];\n if (keys[i] !== \"constructor\" &&\n util.isClass(value)) {\n promisifyAll(value.prototype, suffix, filter, promisifier,\n multiArgs);\n promisifyAll(value, suffix, filter, promisifier, multiArgs);\n }\n }\n\n return promisifyAll(target, suffix, filter, promisifier, multiArgs);\n};\n};\n\n\n},{\"./errors\":12,\"./nodeback\":20,\"./util\":36}],25:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(\n Promise, PromiseArray, tryConvertToPromise, apiRejection) {\nvar util = _dereq_(\"./util\");\nvar isObject = util.isObject;\nvar es5 = _dereq_(\"./es5\");\nvar Es6Map;\nif (typeof Map === \"function\") Es6Map = Map;\n\nvar mapToEntries = (function() {\n var index = 0;\n var size = 0;\n\n function extractEntry(value, key) {\n this[index] = value;\n this[index + size] = key;\n index++;\n }\n\n return function mapToEntries(map) {\n size = map.size;\n index = 0;\n var ret = new Array(map.size * 2);\n map.forEach(extractEntry, ret);\n return ret;\n };\n})();\n\nvar entriesToMap = function(entries) {\n var ret = new Es6Map();\n var length = entries.length / 2 | 0;\n for (var i = 0; i < length; ++i) {\n var key = entries[length + i];\n var value = entries[i];\n ret.set(key, value);\n }\n return ret;\n};\n\nfunction PropertiesPromiseArray(obj) {\n var isMap = false;\n var entries;\n if (Es6Map !== undefined && obj instanceof Es6Map) {\n entries = mapToEntries(obj);\n isMap = true;\n } else {\n var keys = es5.keys(obj);\n var len = keys.length;\n entries = new Array(len * 2);\n for (var i = 0; i < len; ++i) {\n var key = keys[i];\n entries[i] = obj[key];\n entries[i + len] = key;\n }\n }\n this.constructor$(entries);\n this._isMap = isMap;\n this._init$(undefined, isMap ? -6 : -3);\n}\nutil.inherits(PropertiesPromiseArray, PromiseArray);\n\nPropertiesPromiseArray.prototype._init = function () {};\n\nPropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) {\n this._values[index] = value;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n var val;\n if (this._isMap) {\n val = entriesToMap(this._values);\n } else {\n val = {};\n var keyOffset = this.length();\n for (var i = 0, len = this.length(); i < len; ++i) {\n val[this._values[i + keyOffset]] = this._values[i];\n }\n }\n this._resolve(val);\n return true;\n }\n return false;\n};\n\nPropertiesPromiseArray.prototype.shouldCopyValues = function () {\n return false;\n};\n\nPropertiesPromiseArray.prototype.getActualLength = function (len) {\n return len >> 1;\n};\n\nfunction props(promises) {\n var ret;\n var castValue = tryConvertToPromise(promises);\n\n if (!isObject(castValue)) {\n return apiRejection(\"cannot await properties of a non-object\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n } else if (castValue instanceof Promise) {\n ret = castValue._then(\n Promise.props, undefined, undefined, undefined, undefined);\n } else {\n ret = new PropertiesPromiseArray(castValue).promise();\n }\n\n if (castValue instanceof Promise) {\n ret._propagateFrom(castValue, 2);\n }\n return ret;\n}\n\nPromise.prototype.props = function () {\n return props(this);\n};\n\nPromise.props = function (promises) {\n return props(promises);\n};\n};\n\n},{\"./es5\":13,\"./util\":36}],26:[function(_dereq_,module,exports){\n\"use strict\";\nfunction arrayMove(src, srcIndex, dst, dstIndex, len) {\n for (var j = 0; j < len; ++j) {\n dst[j + dstIndex] = src[j + srcIndex];\n src[j + srcIndex] = void 0;\n }\n}\n\nfunction Queue(capacity) {\n this._capacity = capacity;\n this._length = 0;\n this._front = 0;\n}\n\nQueue.prototype._willBeOverCapacity = function (size) {\n return this._capacity < size;\n};\n\nQueue.prototype._pushOne = function (arg) {\n var length = this.length();\n this._checkCapacity(length + 1);\n var i = (this._front + length) & (this._capacity - 1);\n this[i] = arg;\n this._length = length + 1;\n};\n\nQueue.prototype.push = function (fn, receiver, arg) {\n var length = this.length() + 3;\n if (this._willBeOverCapacity(length)) {\n this._pushOne(fn);\n this._pushOne(receiver);\n this._pushOne(arg);\n return;\n }\n var j = this._front + length - 3;\n this._checkCapacity(length);\n var wrapMask = this._capacity - 1;\n this[(j + 0) & wrapMask] = fn;\n this[(j + 1) & wrapMask] = receiver;\n this[(j + 2) & wrapMask] = arg;\n this._length = length;\n};\n\nQueue.prototype.shift = function () {\n var front = this._front,\n ret = this[front];\n\n this[front] = undefined;\n this._front = (front + 1) & (this._capacity - 1);\n this._length--;\n return ret;\n};\n\nQueue.prototype.length = function () {\n return this._length;\n};\n\nQueue.prototype._checkCapacity = function (size) {\n if (this._capacity < size) {\n this._resizeTo(this._capacity << 1);\n }\n};\n\nQueue.prototype._resizeTo = function (capacity) {\n var oldCapacity = this._capacity;\n this._capacity = capacity;\n var front = this._front;\n var length = this._length;\n var moveItemsCount = (front + length) & (oldCapacity - 1);\n arrayMove(this, 0, this, oldCapacity, moveItemsCount);\n};\n\nmodule.exports = Queue;\n\n},{}],27:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(\n Promise, INTERNAL, tryConvertToPromise, apiRejection) {\nvar util = _dereq_(\"./util\");\n\nvar raceLater = function (promise) {\n return promise.then(function(array) {\n return race(array, promise);\n });\n};\n\nfunction race(promises, parent) {\n var maybePromise = tryConvertToPromise(promises);\n\n if (maybePromise instanceof Promise) {\n return raceLater(maybePromise);\n } else {\n promises = util.asArray(promises);\n if (promises === null)\n return apiRejection(\"expecting an array or an iterable object but got \" + util.classString(promises));\n }\n\n var ret = new Promise(INTERNAL);\n if (parent !== undefined) {\n ret._propagateFrom(parent, 3);\n }\n var fulfill = ret._fulfill;\n var reject = ret._reject;\n for (var i = 0, len = promises.length; i < len; ++i) {\n var val = promises[i];\n\n if (val === undefined && !(i in promises)) {\n continue;\n }\n\n Promise.cast(val)._then(fulfill, reject, undefined, ret, null);\n }\n return ret;\n}\n\nPromise.race = function (promises) {\n return race(promises, undefined);\n};\n\nPromise.prototype.race = function () {\n return race(this, undefined);\n};\n\n};\n\n},{\"./util\":36}],28:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise,\n PromiseArray,\n apiRejection,\n tryConvertToPromise,\n INTERNAL,\n debug) {\nvar util = _dereq_(\"./util\");\nvar tryCatch = util.tryCatch;\n\nfunction ReductionPromiseArray(promises, fn, initialValue, _each) {\n this.constructor$(promises);\n var context = Promise._getContext();\n this._fn = util.contextBind(context, fn);\n if (initialValue !== undefined) {\n initialValue = Promise.resolve(initialValue);\n initialValue._attachCancellationCallback(this);\n }\n this._initialValue = initialValue;\n this._currentCancellable = null;\n if(_each === INTERNAL) {\n this._eachValues = Array(this._length);\n } else if (_each === 0) {\n this._eachValues = null;\n } else {\n this._eachValues = undefined;\n }\n this._promise._captureStackTrace();\n this._init$(undefined, -5);\n}\nutil.inherits(ReductionPromiseArray, PromiseArray);\n\nReductionPromiseArray.prototype._gotAccum = function(accum) {\n if (this._eachValues !== undefined &&\n this._eachValues !== null &&\n accum !== INTERNAL) {\n this._eachValues.push(accum);\n }\n};\n\nReductionPromiseArray.prototype._eachComplete = function(value) {\n if (this._eachValues !== null) {\n this._eachValues.push(value);\n }\n return this._eachValues;\n};\n\nReductionPromiseArray.prototype._init = function() {};\n\nReductionPromiseArray.prototype._resolveEmptyArray = function() {\n this._resolve(this._eachValues !== undefined ? this._eachValues\n : this._initialValue);\n};\n\nReductionPromiseArray.prototype.shouldCopyValues = function () {\n return false;\n};\n\nReductionPromiseArray.prototype._resolve = function(value) {\n this._promise._resolveCallback(value);\n this._values = null;\n};\n\nReductionPromiseArray.prototype._resultCancelled = function(sender) {\n if (sender === this._initialValue) return this._cancel();\n if (this._isResolved()) return;\n this._resultCancelled$();\n if (this._currentCancellable instanceof Promise) {\n this._currentCancellable.cancel();\n }\n if (this._initialValue instanceof Promise) {\n this._initialValue.cancel();\n }\n};\n\nReductionPromiseArray.prototype._iterate = function (values) {\n this._values = values;\n var value;\n var i;\n var length = values.length;\n if (this._initialValue !== undefined) {\n value = this._initialValue;\n i = 0;\n } else {\n value = Promise.resolve(values[0]);\n i = 1;\n }\n\n this._currentCancellable = value;\n\n for (var j = i; j < length; ++j) {\n var maybePromise = values[j];\n if (maybePromise instanceof Promise) {\n maybePromise.suppressUnhandledRejections();\n }\n }\n\n if (!value.isRejected()) {\n for (; i < length; ++i) {\n var ctx = {\n accum: null,\n value: values[i],\n index: i,\n length: length,\n array: this\n };\n\n value = value._then(gotAccum, undefined, undefined, ctx, undefined);\n\n if ((i & 127) === 0) {\n value._setNoAsyncGuarantee();\n }\n }\n }\n\n if (this._eachValues !== undefined) {\n value = value\n ._then(this._eachComplete, undefined, undefined, this, undefined);\n }\n value._then(completed, completed, undefined, value, this);\n};\n\nPromise.prototype.reduce = function (fn, initialValue) {\n return reduce(this, fn, initialValue, null);\n};\n\nPromise.reduce = function (promises, fn, initialValue, _each) {\n return reduce(promises, fn, initialValue, _each);\n};\n\nfunction completed(valueOrReason, array) {\n if (this.isFulfilled()) {\n array._resolve(valueOrReason);\n } else {\n array._reject(valueOrReason);\n }\n}\n\nfunction reduce(promises, fn, initialValue, _each) {\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var array = new ReductionPromiseArray(promises, fn, initialValue, _each);\n return array.promise();\n}\n\nfunction gotAccum(accum) {\n this.accum = accum;\n this.array._gotAccum(accum);\n var value = tryConvertToPromise(this.value, this.array._promise);\n if (value instanceof Promise) {\n this.array._currentCancellable = value;\n return value._then(gotValue, undefined, undefined, this, undefined);\n } else {\n return gotValue.call(this, value);\n }\n}\n\nfunction gotValue(value) {\n var array = this.array;\n var promise = array._promise;\n var fn = tryCatch(array._fn);\n promise._pushContext();\n var ret;\n if (array._eachValues !== undefined) {\n ret = fn.call(promise._boundValue(), value, this.index, this.length);\n } else {\n ret = fn.call(promise._boundValue(),\n this.accum, value, this.index, this.length);\n }\n if (ret instanceof Promise) {\n array._currentCancellable = ret;\n }\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret,\n promiseCreated,\n array._eachValues !== undefined ? \"Promise.each\" : \"Promise.reduce\",\n promise\n );\n return ret;\n}\n};\n\n},{\"./util\":36}],29:[function(_dereq_,module,exports){\n\"use strict\";\nvar util = _dereq_(\"./util\");\nvar schedule;\nvar noAsyncScheduler = function() {\n throw new Error(\"No async scheduler available\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n};\nvar NativePromise = util.getNativePromise();\nif (util.isNode && typeof MutationObserver === \"undefined\") {\n var GlobalSetImmediate = global.setImmediate;\n var ProcessNextTick = process.nextTick;\n schedule = util.isRecentNode\n ? function(fn) { GlobalSetImmediate.call(global, fn); }\n : function(fn) { ProcessNextTick.call(process, fn); };\n} else if (typeof NativePromise === \"function\" &&\n typeof NativePromise.resolve === \"function\") {\n var nativePromise = NativePromise.resolve();\n schedule = function(fn) {\n nativePromise.then(fn);\n };\n} else if ((typeof MutationObserver !== \"undefined\") &&\n !(typeof window !== \"undefined\" &&\n window.navigator &&\n (window.navigator.standalone || window.cordova)) &&\n (\"classList\" in document.documentElement)) {\n schedule = (function() {\n var div = document.createElement(\"div\");\n var opts = {attributes: true};\n var toggleScheduled = false;\n var div2 = document.createElement(\"div\");\n var o2 = new MutationObserver(function() {\n div.classList.toggle(\"foo\");\n toggleScheduled = false;\n });\n o2.observe(div2, opts);\n\n var scheduleToggle = function() {\n if (toggleScheduled) return;\n toggleScheduled = true;\n div2.classList.toggle(\"foo\");\n };\n\n return function schedule(fn) {\n var o = new MutationObserver(function() {\n o.disconnect();\n fn();\n });\n o.observe(div, opts);\n scheduleToggle();\n };\n })();\n} else if (typeof setImmediate !== \"undefined\") {\n schedule = function (fn) {\n setImmediate(fn);\n };\n} else if (typeof setTimeout !== \"undefined\") {\n schedule = function (fn) {\n setTimeout(fn, 0);\n };\n} else {\n schedule = noAsyncScheduler;\n}\nmodule.exports = schedule;\n\n},{\"./util\":36}],30:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports =\n function(Promise, PromiseArray, debug) {\nvar PromiseInspection = Promise.PromiseInspection;\nvar util = _dereq_(\"./util\");\n\nfunction SettledPromiseArray(values) {\n this.constructor$(values);\n}\nutil.inherits(SettledPromiseArray, PromiseArray);\n\nSettledPromiseArray.prototype._promiseResolved = function (index, inspection) {\n this._values[index] = inspection;\n var totalResolved = ++this._totalResolved;\n if (totalResolved >= this._length) {\n this._resolve(this._values);\n return true;\n }\n return false;\n};\n\nSettledPromiseArray.prototype._promiseFulfilled = function (value, index) {\n var ret = new PromiseInspection();\n ret._bitField = 33554432;\n ret._settledValueField = value;\n return this._promiseResolved(index, ret);\n};\nSettledPromiseArray.prototype._promiseRejected = function (reason, index) {\n var ret = new PromiseInspection();\n ret._bitField = 16777216;\n ret._settledValueField = reason;\n return this._promiseResolved(index, ret);\n};\n\nPromise.settle = function (promises) {\n debug.deprecated(\".settle()\", \".reflect()\");\n return new SettledPromiseArray(promises).promise();\n};\n\nPromise.allSettled = function (promises) {\n return new SettledPromiseArray(promises).promise();\n};\n\nPromise.prototype.settle = function () {\n return Promise.settle(this);\n};\n};\n\n},{\"./util\":36}],31:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports =\nfunction(Promise, PromiseArray, apiRejection) {\nvar util = _dereq_(\"./util\");\nvar RangeError = _dereq_(\"./errors\").RangeError;\nvar AggregateError = _dereq_(\"./errors\").AggregateError;\nvar isArray = util.isArray;\nvar CANCELLATION = {};\n\n\nfunction SomePromiseArray(values) {\n this.constructor$(values);\n this._howMany = 0;\n this._unwrap = false;\n this._initialized = false;\n}\nutil.inherits(SomePromiseArray, PromiseArray);\n\nSomePromiseArray.prototype._init = function () {\n if (!this._initialized) {\n return;\n }\n if (this._howMany === 0) {\n this._resolve([]);\n return;\n }\n this._init$(undefined, -5);\n var isArrayResolved = isArray(this._values);\n if (!this._isResolved() &&\n isArrayResolved &&\n this._howMany > this._canPossiblyFulfill()) {\n this._reject(this._getRangeError(this.length()));\n }\n};\n\nSomePromiseArray.prototype.init = function () {\n this._initialized = true;\n this._init();\n};\n\nSomePromiseArray.prototype.setUnwrap = function () {\n this._unwrap = true;\n};\n\nSomePromiseArray.prototype.howMany = function () {\n return this._howMany;\n};\n\nSomePromiseArray.prototype.setHowMany = function (count) {\n this._howMany = count;\n};\n\nSomePromiseArray.prototype._promiseFulfilled = function (value) {\n this._addFulfilled(value);\n if (this._fulfilled() === this.howMany()) {\n this._values.length = this.howMany();\n if (this.howMany() === 1 && this._unwrap) {\n this._resolve(this._values[0]);\n } else {\n this._resolve(this._values);\n }\n return true;\n }\n return false;\n\n};\nSomePromiseArray.prototype._promiseRejected = function (reason) {\n this._addRejected(reason);\n return this._checkOutcome();\n};\n\nSomePromiseArray.prototype._promiseCancelled = function () {\n if (this._values instanceof Promise || this._values == null) {\n return this._cancel();\n }\n this._addRejected(CANCELLATION);\n return this._checkOutcome();\n};\n\nSomePromiseArray.prototype._checkOutcome = function() {\n if (this.howMany() > this._canPossiblyFulfill()) {\n var e = new AggregateError();\n for (var i = this.length(); i < this._values.length; ++i) {\n if (this._values[i] !== CANCELLATION) {\n e.push(this._values[i]);\n }\n }\n if (e.length > 0) {\n this._reject(e);\n } else {\n this._cancel();\n }\n return true;\n }\n return false;\n};\n\nSomePromiseArray.prototype._fulfilled = function () {\n return this._totalResolved;\n};\n\nSomePromiseArray.prototype._rejected = function () {\n return this._values.length - this.length();\n};\n\nSomePromiseArray.prototype._addRejected = function (reason) {\n this._values.push(reason);\n};\n\nSomePromiseArray.prototype._addFulfilled = function (value) {\n this._values[this._totalResolved++] = value;\n};\n\nSomePromiseArray.prototype._canPossiblyFulfill = function () {\n return this.length() - this._rejected();\n};\n\nSomePromiseArray.prototype._getRangeError = function (count) {\n var message = \"Input array must contain at least \" +\n this._howMany + \" items but contains only \" + count + \" items\";\n return new RangeError(message);\n};\n\nSomePromiseArray.prototype._resolveEmptyArray = function () {\n this._reject(this._getRangeError(0));\n};\n\nfunction some(promises, howMany) {\n if ((howMany | 0) !== howMany || howMany < 0) {\n return apiRejection(\"expecting a positive integer\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n var ret = new SomePromiseArray(promises);\n var promise = ret.promise();\n ret.setHowMany(howMany);\n ret.init();\n return promise;\n}\n\nPromise.some = function (promises, howMany) {\n return some(promises, howMany);\n};\n\nPromise.prototype.some = function (howMany) {\n return some(this, howMany);\n};\n\nPromise._SomePromiseArray = SomePromiseArray;\n};\n\n},{\"./errors\":12,\"./util\":36}],32:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise) {\nfunction PromiseInspection(promise) {\n if (promise !== undefined) {\n promise = promise._target();\n this._bitField = promise._bitField;\n this._settledValueField = promise._isFateSealed()\n ? promise._settledValue() : undefined;\n }\n else {\n this._bitField = 0;\n this._settledValueField = undefined;\n }\n}\n\nPromiseInspection.prototype._settledValue = function() {\n return this._settledValueField;\n};\n\nvar value = PromiseInspection.prototype.value = function () {\n if (!this.isFulfilled()) {\n throw new TypeError(\"cannot get fulfillment value of a non-fulfilled promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n return this._settledValue();\n};\n\nvar reason = PromiseInspection.prototype.error =\nPromiseInspection.prototype.reason = function () {\n if (!this.isRejected()) {\n throw new TypeError(\"cannot get rejection reason of a non-rejected promise\\u000a\\u000a See http://goo.gl/MqrFmX\\u000a\");\n }\n return this._settledValue();\n};\n\nvar isFulfilled = PromiseInspection.prototype.isFulfilled = function() {\n return (this._bitField & 33554432) !== 0;\n};\n\nvar isRejected = PromiseInspection.prototype.isRejected = function () {\n return (this._bitField & 16777216) !== 0;\n};\n\nvar isPending = PromiseInspection.prototype.isPending = function () {\n return (this._bitField & 50397184) === 0;\n};\n\nvar isResolved = PromiseInspection.prototype.isResolved = function () {\n return (this._bitField & 50331648) !== 0;\n};\n\nPromiseInspection.prototype.isCancelled = function() {\n return (this._bitField & 8454144) !== 0;\n};\n\nPromise.prototype.__isCancelled = function() {\n return (this._bitField & 65536) === 65536;\n};\n\nPromise.prototype._isCancelled = function() {\n return this._target().__isCancelled();\n};\n\nPromise.prototype.isCancelled = function() {\n return (this._target()._bitField & 8454144) !== 0;\n};\n\nPromise.prototype.isPending = function() {\n return isPending.call(this._target());\n};\n\nPromise.prototype.isRejected = function() {\n return isRejected.call(this._target());\n};\n\nPromise.prototype.isFulfilled = function() {\n return isFulfilled.call(this._target());\n};\n\nPromise.prototype.isResolved = function() {\n return isResolved.call(this._target());\n};\n\nPromise.prototype.value = function() {\n return value.call(this._target());\n};\n\nPromise.prototype.reason = function() {\n var target = this._target();\n target._unsetRejectionIsUnhandled();\n return reason.call(target);\n};\n\nPromise.prototype._value = function() {\n return this._settledValue();\n};\n\nPromise.prototype._reason = function() {\n this._unsetRejectionIsUnhandled();\n return this._settledValue();\n};\n\nPromise.PromiseInspection = PromiseInspection;\n};\n\n},{}],33:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL) {\nvar util = _dereq_(\"./util\");\nvar errorObj = util.errorObj;\nvar isObject = util.isObject;\n\nfunction tryConvertToPromise(obj, context) {\n if (isObject(obj)) {\n if (obj instanceof Promise) return obj;\n var then = getThen(obj);\n if (then === errorObj) {\n if (context) context._pushContext();\n var ret = Promise.reject(then.e);\n if (context) context._popContext();\n return ret;\n } else if (typeof then === \"function\") {\n if (isAnyBluebirdPromise(obj)) {\n var ret = new Promise(INTERNAL);\n obj._then(\n ret._fulfill,\n ret._reject,\n undefined,\n ret,\n null\n );\n return ret;\n }\n return doThenable(obj, then, context);\n }\n }\n return obj;\n}\n\nfunction doGetThen(obj) {\n return obj.then;\n}\n\nfunction getThen(obj) {\n try {\n return doGetThen(obj);\n } catch (e) {\n errorObj.e = e;\n return errorObj;\n }\n}\n\nvar hasProp = {}.hasOwnProperty;\nfunction isAnyBluebirdPromise(obj) {\n try {\n return hasProp.call(obj, \"_promise0\");\n } catch (e) {\n return false;\n }\n}\n\nfunction doThenable(x, then, context) {\n var promise = new Promise(INTERNAL);\n var ret = promise;\n if (context) context._pushContext();\n promise._captureStackTrace();\n if (context) context._popContext();\n var synchronous = true;\n var result = util.tryCatch(then).call(x, resolve, reject);\n synchronous = false;\n\n if (promise && result === errorObj) {\n promise._rejectCallback(result.e, true, true);\n promise = null;\n }\n\n function resolve(value) {\n if (!promise) return;\n promise._resolveCallback(value);\n promise = null;\n }\n\n function reject(reason) {\n if (!promise) return;\n promise._rejectCallback(reason, synchronous, true);\n promise = null;\n }\n return ret;\n}\n\nreturn tryConvertToPromise;\n};\n\n},{\"./util\":36}],34:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function(Promise, INTERNAL, debug) {\nvar util = _dereq_(\"./util\");\nvar TimeoutError = Promise.TimeoutError;\n\nfunction HandleWrapper(handle) {\n this.handle = handle;\n}\n\nHandleWrapper.prototype._resultCancelled = function() {\n clearTimeout(this.handle);\n};\n\nvar afterValue = function(value) { return delay(+this).thenReturn(value); };\nvar delay = Promise.delay = function (ms, value) {\n var ret;\n var handle;\n if (value !== undefined) {\n ret = Promise.resolve(value)\n ._then(afterValue, null, null, ms, undefined);\n if (debug.cancellation() && value instanceof Promise) {\n ret._setOnCancel(value);\n }\n } else {\n ret = new Promise(INTERNAL);\n handle = setTimeout(function() { ret._fulfill(); }, +ms);\n if (debug.cancellation()) {\n ret._setOnCancel(new HandleWrapper(handle));\n }\n ret._captureStackTrace();\n }\n ret._setAsyncGuaranteed();\n return ret;\n};\n\nPromise.prototype.delay = function (ms) {\n return delay(ms, this);\n};\n\nvar afterTimeout = function (promise, message, parent) {\n var err;\n if (typeof message !== \"string\") {\n if (message instanceof Error) {\n err = message;\n } else {\n err = new TimeoutError(\"operation timed out\");\n }\n } else {\n err = new TimeoutError(message);\n }\n util.markAsOriginatingFromRejection(err);\n promise._attachExtraTrace(err);\n promise._reject(err);\n\n if (parent != null) {\n parent.cancel();\n }\n};\n\nfunction successClear(value) {\n clearTimeout(this.handle);\n return value;\n}\n\nfunction failureClear(reason) {\n clearTimeout(this.handle);\n throw reason;\n}\n\nPromise.prototype.timeout = function (ms, message) {\n ms = +ms;\n var ret, parent;\n\n var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() {\n if (ret.isPending()) {\n afterTimeout(ret, message, parent);\n }\n }, ms));\n\n if (debug.cancellation()) {\n parent = this.then();\n ret = parent._then(successClear, failureClear,\n undefined, handleWrapper, undefined);\n ret._setOnCancel(handleWrapper);\n } else {\n ret = this._then(successClear, failureClear,\n undefined, handleWrapper, undefined);\n }\n\n return ret;\n};\n\n};\n\n},{\"./util\":36}],35:[function(_dereq_,module,exports){\n\"use strict\";\nmodule.exports = function (Promise, apiRejection, tryConvertToPromise,\n createContext, INTERNAL, debug) {\n var util = _dereq_(\"./util\");\n var TypeError = _dereq_(\"./errors\").TypeError;\n var inherits = _dereq_(\"./util\").inherits;\n var errorObj = util.errorObj;\n var tryCatch = util.tryCatch;\n var NULL = {};\n\n function thrower(e) {\n setTimeout(function(){throw e;}, 0);\n }\n\n function castPreservingDisposable(thenable) {\n var maybePromise = tryConvertToPromise(thenable);\n if (maybePromise !== thenable &&\n typeof thenable._isDisposable === \"function\" &&\n typeof thenable._getDisposer === \"function\" &&\n thenable._isDisposable()) {\n maybePromise._setDisposable(thenable._getDisposer());\n }\n return maybePromise;\n }\n function dispose(resources, inspection) {\n var i = 0;\n var len = resources.length;\n var ret = new Promise(INTERNAL);\n function iterator() {\n if (i >= len) return ret._fulfill();\n var maybePromise = castPreservingDisposable(resources[i++]);\n if (maybePromise instanceof Promise &&\n maybePromise._isDisposable()) {\n try {\n maybePromise = tryConvertToPromise(\n maybePromise._getDisposer().tryDispose(inspection),\n resources.promise);\n } catch (e) {\n return thrower(e);\n }\n if (maybePromise instanceof Promise) {\n return maybePromise._then(iterator, thrower,\n null, null, null);\n }\n }\n iterator();\n }\n iterator();\n return ret;\n }\n\n function Disposer(data, promise, context) {\n this._data = data;\n this._promise = promise;\n this._context = context;\n }\n\n Disposer.prototype.data = function () {\n return this._data;\n };\n\n Disposer.prototype.promise = function () {\n return this._promise;\n };\n\n Disposer.prototype.resource = function () {\n if (this.promise().isFulfilled()) {\n return this.promise().value();\n }\n return NULL;\n };\n\n Disposer.prototype.tryDispose = function(inspection) {\n var resource = this.resource();\n var context = this._context;\n if (context !== undefined) context._pushContext();\n var ret = resource !== NULL\n ? this.doDispose(resource, inspection) : null;\n if (context !== undefined) context._popContext();\n this._promise._unsetDisposable();\n this._data = null;\n return ret;\n };\n\n Disposer.isDisposer = function (d) {\n return (d != null &&\n typeof d.resource === \"function\" &&\n typeof d.tryDispose === \"function\");\n };\n\n function FunctionDisposer(fn, promise, context) {\n this.constructor$(fn, promise, context);\n }\n inherits(FunctionDisposer, Disposer);\n\n FunctionDisposer.prototype.doDispose = function (resource, inspection) {\n var fn = this.data();\n return fn.call(resource, resource, inspection);\n };\n\n function maybeUnwrapDisposer(value) {\n if (Disposer.isDisposer(value)) {\n this.resources[this.index]._setDisposable(value);\n return value.promise();\n }\n return value;\n }\n\n function ResourceList(length) {\n this.length = length;\n this.promise = null;\n this[length-1] = null;\n }\n\n ResourceList.prototype._resultCancelled = function() {\n var len = this.length;\n for (var i = 0; i < len; ++i) {\n var item = this[i];\n if (item instanceof Promise) {\n item.cancel();\n }\n }\n };\n\n Promise.using = function () {\n var len = arguments.length;\n if (len < 2) return apiRejection(\n \"you must pass at least 2 arguments to Promise.using\");\n var fn = arguments[len - 1];\n if (typeof fn !== \"function\") {\n return apiRejection(\"expecting a function but got \" + util.classString(fn));\n }\n var input;\n var spreadArgs = true;\n if (len === 2 && Array.isArray(arguments[0])) {\n input = arguments[0];\n len = input.length;\n spreadArgs = false;\n } else {\n input = arguments;\n len--;\n }\n var resources = new ResourceList(len);\n for (var i = 0; i < len; ++i) {\n var resource = input[i];\n if (Disposer.isDisposer(resource)) {\n var disposer = resource;\n resource = resource.promise();\n resource._setDisposable(disposer);\n } else {\n var maybePromise = tryConvertToPromise(resource);\n if (maybePromise instanceof Promise) {\n resource =\n maybePromise._then(maybeUnwrapDisposer, null, null, {\n resources: resources,\n index: i\n }, undefined);\n }\n }\n resources[i] = resource;\n }\n\n var reflectedResources = new Array(resources.length);\n for (var i = 0; i < reflectedResources.length; ++i) {\n reflectedResources[i] = Promise.resolve(resources[i]).reflect();\n }\n\n var resultPromise = Promise.all(reflectedResources)\n .then(function(inspections) {\n for (var i = 0; i < inspections.length; ++i) {\n var inspection = inspections[i];\n if (inspection.isRejected()) {\n errorObj.e = inspection.error();\n return errorObj;\n } else if (!inspection.isFulfilled()) {\n resultPromise.cancel();\n return;\n }\n inspections[i] = inspection.value();\n }\n promise._pushContext();\n\n fn = tryCatch(fn);\n var ret = spreadArgs\n ? fn.apply(undefined, inspections) : fn(inspections);\n var promiseCreated = promise._popContext();\n debug.checkForgottenReturns(\n ret, promiseCreated, \"Promise.using\", promise);\n return ret;\n });\n\n var promise = resultPromise.lastly(function() {\n var inspection = new Promise.PromiseInspection(resultPromise);\n return dispose(resources, inspection);\n });\n resources.promise = promise;\n promise._setOnCancel(resources);\n return promise;\n };\n\n Promise.prototype._setDisposable = function (disposer) {\n this._bitField = this._bitField | 131072;\n this._disposer = disposer;\n };\n\n Promise.prototype._isDisposable = function () {\n return (this._bitField & 131072) > 0;\n };\n\n Promise.prototype._getDisposer = function () {\n return this._disposer;\n };\n\n Promise.prototype._unsetDisposable = function () {\n this._bitField = this._bitField & (~131072);\n this._disposer = undefined;\n };\n\n Promise.prototype.disposer = function (fn) {\n if (typeof fn === \"function\") {\n return new FunctionDisposer(fn, this, createContext());\n }\n throw new TypeError();\n };\n\n};\n\n},{\"./errors\":12,\"./util\":36}],36:[function(_dereq_,module,exports){\n\"use strict\";\nvar es5 = _dereq_(\"./es5\");\nvar canEvaluate = typeof navigator == \"undefined\";\n\nvar errorObj = {e: {}};\nvar tryCatchTarget;\nvar globalObject = typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window :\n typeof global !== \"undefined\" ? global :\n this !== undefined ? this : null;\n\nfunction tryCatcher() {\n try {\n var target = tryCatchTarget;\n tryCatchTarget = null;\n return target.apply(this, arguments);\n } catch (e) {\n errorObj.e = e;\n return errorObj;\n }\n}\nfunction tryCatch(fn) {\n tryCatchTarget = fn;\n return tryCatcher;\n}\n\nvar inherits = function(Child, Parent) {\n var hasProp = {}.hasOwnProperty;\n\n function T() {\n this.constructor = Child;\n this.constructor$ = Parent;\n for (var propertyName in Parent.prototype) {\n if (hasProp.call(Parent.prototype, propertyName) &&\n propertyName.charAt(propertyName.length-1) !== \"$\"\n ) {\n this[propertyName + \"$\"] = Parent.prototype[propertyName];\n }\n }\n }\n T.prototype = Parent.prototype;\n Child.prototype = new T();\n return Child.prototype;\n};\n\n\nfunction isPrimitive(val) {\n return val == null || val === true || val === false ||\n typeof val === \"string\" || typeof val === \"number\";\n\n}\n\nfunction isObject(value) {\n return typeof value === \"function\" ||\n typeof value === \"object\" && value !== null;\n}\n\nfunction maybeWrapAsError(maybeError) {\n if (!isPrimitive(maybeError)) return maybeError;\n\n return new Error(safeToString(maybeError));\n}\n\nfunction withAppended(target, appendee) {\n var len = target.length;\n var ret = new Array(len + 1);\n var i;\n for (i = 0; i < len; ++i) {\n ret[i] = target[i];\n }\n ret[i] = appendee;\n return ret;\n}\n\nfunction getDataPropertyOrDefault(obj, key, defaultValue) {\n if (es5.isES5) {\n var desc = Object.getOwnPropertyDescriptor(obj, key);\n\n if (desc != null) {\n return desc.get == null && desc.set == null\n ? desc.value\n : defaultValue;\n }\n } else {\n return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined;\n }\n}\n\nfunction notEnumerableProp(obj, name, value) {\n if (isPrimitive(obj)) return obj;\n var descriptor = {\n value: value,\n configurable: true,\n enumerable: false,\n writable: true\n };\n es5.defineProperty(obj, name, descriptor);\n return obj;\n}\n\nfunction thrower(r) {\n throw r;\n}\n\nvar inheritedDataKeys = (function() {\n var excludedPrototypes = [\n Array.prototype,\n Object.prototype,\n Function.prototype\n ];\n\n var isExcludedProto = function(val) {\n for (var i = 0; i < excludedPrototypes.length; ++i) {\n if (excludedPrototypes[i] === val) {\n return true;\n }\n }\n return false;\n };\n\n if (es5.isES5) {\n var getKeys = Object.getOwnPropertyNames;\n return function(obj) {\n var ret = [];\n var visitedKeys = Object.create(null);\n while (obj != null && !isExcludedProto(obj)) {\n var keys;\n try {\n keys = getKeys(obj);\n } catch (e) {\n return ret;\n }\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (visitedKeys[key]) continue;\n visitedKeys[key] = true;\n var desc = Object.getOwnPropertyDescriptor(obj, key);\n if (desc != null && desc.get == null && desc.set == null) {\n ret.push(key);\n }\n }\n obj = es5.getPrototypeOf(obj);\n }\n return ret;\n };\n } else {\n var hasProp = {}.hasOwnProperty;\n return function(obj) {\n if (isExcludedProto(obj)) return [];\n var ret = [];\n\n /*jshint forin:false */\n enumeration: for (var key in obj) {\n if (hasProp.call(obj, key)) {\n ret.push(key);\n } else {\n for (var i = 0; i < excludedPrototypes.length; ++i) {\n if (hasProp.call(excludedPrototypes[i], key)) {\n continue enumeration;\n }\n }\n ret.push(key);\n }\n }\n return ret;\n };\n }\n\n})();\n\nvar thisAssignmentPattern = /this\\s*\\.\\s*\\S+\\s*=/;\nfunction isClass(fn) {\n try {\n if (typeof fn === \"function\") {\n var keys = es5.names(fn.prototype);\n\n var hasMethods = es5.isES5 && keys.length > 1;\n var hasMethodsOtherThanConstructor = keys.length > 0 &&\n !(keys.length === 1 && keys[0] === \"constructor\");\n var hasThisAssignmentAndStaticMethods =\n thisAssignmentPattern.test(fn + \"\") && es5.names(fn).length > 0;\n\n if (hasMethods || hasMethodsOtherThanConstructor ||\n hasThisAssignmentAndStaticMethods) {\n return true;\n }\n }\n return false;\n } catch (e) {\n return false;\n }\n}\n\nfunction toFastProperties(obj) {\n /*jshint -W027,-W055,-W031*/\n function FakeConstructor() {}\n FakeConstructor.prototype = obj;\n var receiver = new FakeConstructor();\n function ic() {\n return typeof receiver.foo;\n }\n ic();\n ic();\n return obj;\n eval(obj);\n}\n\nvar rident = /^[a-z$_][a-z$_0-9]*$/i;\nfunction isIdentifier(str) {\n return rident.test(str);\n}\n\nfunction filledRange(count, prefix, suffix) {\n var ret = new Array(count);\n for(var i = 0; i < count; ++i) {\n ret[i] = prefix + i + suffix;\n }\n return ret;\n}\n\nfunction safeToString(obj) {\n try {\n return obj + \"\";\n } catch (e) {\n return \"[no string representation]\";\n }\n}\n\nfunction isError(obj) {\n return obj instanceof Error ||\n (obj !== null &&\n typeof obj === \"object\" &&\n typeof obj.message === \"string\" &&\n typeof obj.name === \"string\");\n}\n\nfunction markAsOriginatingFromRejection(e) {\n try {\n notEnumerableProp(e, \"isOperational\", true);\n }\n catch(ignore) {}\n}\n\nfunction originatesFromRejection(e) {\n if (e == null) return false;\n return ((e instanceof Error[\"__BluebirdErrorTypes__\"].OperationalError) ||\n e[\"isOperational\"] === true);\n}\n\nfunction canAttachTrace(obj) {\n return isError(obj) && es5.propertyIsWritable(obj, \"stack\");\n}\n\nvar ensureErrorObject = (function() {\n if (!(\"stack\" in new Error())) {\n return function(value) {\n if (canAttachTrace(value)) return value;\n try {throw new Error(safeToString(value));}\n catch(err) {return err;}\n };\n } else {\n return function(value) {\n if (canAttachTrace(value)) return value;\n return new Error(safeToString(value));\n };\n }\n})();\n\nfunction classString(obj) {\n return {}.toString.call(obj);\n}\n\nfunction copyDescriptors(from, to, filter) {\n var keys = es5.names(from);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (filter(key)) {\n try {\n es5.defineProperty(to, key, es5.getDescriptor(from, key));\n } catch (ignore) {}\n }\n }\n}\n\nvar asArray = function(v) {\n if (es5.isArray(v)) {\n return v;\n }\n return null;\n};\n\nif (typeof Symbol !== \"undefined\" && Symbol.iterator) {\n var ArrayFrom = typeof Array.from === \"function\" ? function(v) {\n return Array.from(v);\n } : function(v) {\n var ret = [];\n var it = v[Symbol.iterator]();\n var itResult;\n while (!((itResult = it.next()).done)) {\n ret.push(itResult.value);\n }\n return ret;\n };\n\n asArray = function(v) {\n if (es5.isArray(v)) {\n return v;\n } else if (v != null && typeof v[Symbol.iterator] === \"function\") {\n return ArrayFrom(v);\n }\n return null;\n };\n}\n\nvar isNode = typeof process !== \"undefined\" &&\n classString(process).toLowerCase() === \"[object process]\";\n\nvar hasEnvVariables = typeof process !== \"undefined\" &&\n typeof process.env !== \"undefined\";\n\nfunction env(key) {\n return hasEnvVariables ? process.env[key] : undefined;\n}\n\nfunction getNativePromise() {\n if (typeof Promise === \"function\") {\n try {\n var promise = new Promise(function(){});\n if (classString(promise) === \"[object Promise]\") {\n return Promise;\n }\n } catch (e) {}\n }\n}\n\nvar reflectHandler;\nfunction contextBind(ctx, cb) {\n if (ctx === null ||\n typeof cb !== \"function\" ||\n cb === reflectHandler) {\n return cb;\n }\n\n if (ctx.domain !== null) {\n cb = ctx.domain.bind(cb);\n }\n\n var async = ctx.async;\n if (async !== null) {\n var old = cb;\n cb = function() {\n var args = (new Array(2)).concat([].slice.call(arguments));;\n args[0] = old;\n args[1] = this;\n return async.runInAsyncScope.apply(async, args);\n };\n }\n return cb;\n}\n\nvar ret = {\n setReflectHandler: function(fn) {\n reflectHandler = fn;\n },\n isClass: isClass,\n isIdentifier: isIdentifier,\n inheritedDataKeys: inheritedDataKeys,\n getDataPropertyOrDefault: getDataPropertyOrDefault,\n thrower: thrower,\n isArray: es5.isArray,\n asArray: asArray,\n notEnumerableProp: notEnumerableProp,\n isPrimitive: isPrimitive,\n isObject: isObject,\n isError: isError,\n canEvaluate: canEvaluate,\n errorObj: errorObj,\n tryCatch: tryCatch,\n inherits: inherits,\n withAppended: withAppended,\n maybeWrapAsError: maybeWrapAsError,\n toFastProperties: toFastProperties,\n filledRange: filledRange,\n toString: safeToString,\n canAttachTrace: canAttachTrace,\n ensureErrorObject: ensureErrorObject,\n originatesFromRejection: originatesFromRejection,\n markAsOriginatingFromRejection: markAsOriginatingFromRejection,\n classString: classString,\n copyDescriptors: copyDescriptors,\n isNode: isNode,\n hasEnvVariables: hasEnvVariables,\n env: env,\n global: globalObject,\n getNativePromise: getNativePromise,\n contextBind: contextBind\n};\nret.isRecentNode = ret.isNode && (function() {\n var version;\n if (process.versions && process.versions.node) {\n version = process.versions.node.split(\".\").map(Number);\n } else if (process.version) {\n version = process.version.split(\".\").map(Number);\n }\n return (version[0] === 0 && version[1] > 10) || (version[0] > 0);\n})();\nret.nodeSupportsAsyncResource = ret.isNode && (function() {\n var supportsAsync = false;\n try {\n var res = _dereq_(\"async_hooks\").AsyncResource;\n supportsAsync = typeof res.prototype.runInAsyncScope === \"function\";\n } catch (e) {\n supportsAsync = false;\n }\n return supportsAsync;\n})();\n\nif (ret.isNode) ret.toFastProperties(process);\n\ntry {throw new Error(); } catch (e) {ret.lastLineError = e;}\nmodule.exports = ret;\n\n},{\"./es5\":13,\"async_hooks\":undefined}]},{},[4])(4)\n}); ;if (typeof window !== 'undefined' && window !== null) { window.P = window.Promise; } else if (typeof self !== 'undefined' && self !== null) { self.P = self.Promise; }\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(38), __webpack_require__(1), __webpack_require__(17), __webpack_require__(253).setImmediate))\n\n/***/ }),\n/* 253 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\n__webpack_require__(254);\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(17)))\n\n/***/ }),\n/* 254 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a