{"version":3,"sources":["../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/lodash/_root.js","../node_modules/lodash/isArray.js","../node_modules/lodash/_getNative.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/isObjectLike.js","../node_modules/moment/moment.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_toKey.js","../node_modules/object-assign/index.js","../node_modules/webpack/buildin/module.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_Map.js","../node_modules/lodash/isObject.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/keys.js","../node_modules/lodash/isLength.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/isSymbol.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/prop-types/index.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/eq.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_castPath.js","../node_modules/react-csv/lib/core.js","../node_modules/react-csv/lib/metaProps.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/technicalindicators/lib/Utils/LinkedList.js","../node_modules/technicalindicators/lib/Utils/FixedSizeLinkedList.js","../node_modules/technicalindicators/lib/StockData.js","../node_modules/technicalindicators/lib/config.js","../node_modules/technicalindicators/lib/Utils/NumberFormatter.js","../node_modules/technicalindicators/lib/indicator/indicator.js","../node_modules/technicalindicators/lib/moving_averages/SMA.js","../node_modules/technicalindicators/lib/moving_averages/EMA.js","../node_modules/technicalindicators/lib/moving_averages/WMA.js","../node_modules/technicalindicators/lib/moving_averages/WEMA.js","../node_modules/technicalindicators/lib/moving_averages/MACD.js","../node_modules/technicalindicators/lib/Utils/AverageGain.js","../node_modules/technicalindicators/lib/Utils/AverageLoss.js","../node_modules/technicalindicators/lib/oscillators/RSI.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/technicalindicators/lib/Utils/SD.js","../node_modules/technicalindicators/lib/volatility/BollingerBands.js","../node_modules/technicalindicators/lib/moving_averages/WilderSmoothing.js","../node_modules/technicalindicators/lib/directionalmovement/MinusDM.js","../node_modules/technicalindicators/lib/directionalmovement/PlusDM.js","../node_modules/technicalindicators/lib/directionalmovement/TrueRange.js","../node_modules/technicalindicators/lib/directionalmovement/ADX.js","../node_modules/technicalindicators/lib/directionalmovement/ATR.js","../node_modules/technicalindicators/lib/momentum/ROC.js","../node_modules/technicalindicators/lib/momentum/KST.js","../node_modules/technicalindicators/lib/momentum/PSAR.js","../node_modules/technicalindicators/lib/momentum/Stochastic.js","../node_modules/technicalindicators/lib/momentum/WilliamsR.js","../node_modules/technicalindicators/lib/volume/ADL.js","../node_modules/technicalindicators/lib/volume/OBV.js","../node_modules/technicalindicators/lib/momentum/TRIX.js","../node_modules/technicalindicators/lib/volume/ForceIndex.js","../node_modules/technicalindicators/lib/oscillators/CCI.js","../node_modules/technicalindicators/lib/oscillators/AwesomeOscillator.js","../node_modules/technicalindicators/lib/volume/VWAP.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/technicalindicators/lib/volume/VolumeProfile.js","../node_modules/technicalindicators/lib/chart_types/TypicalPrice.js","../node_modules/technicalindicators/lib/volume/MFI.js","../node_modules/technicalindicators/lib/momentum/StochasticRSI.js","../node_modules/technicalindicators/lib/Utils/Highest.js","../node_modules/technicalindicators/lib/Utils/Lowest.js","../node_modules/technicalindicators/lib/Utils/Sum.js","../node_modules/technicalindicators/lib/chart_types/Renko.js","../node_modules/technicalindicators/lib/chart_types/HeikinAshi.js","../node_modules/technicalindicators/lib/candlestick/CandlestickFinder.js","../node_modules/technicalindicators/lib/candlestick/MorningStar.js","../node_modules/technicalindicators/lib/candlestick/BullishEngulfingPattern.js","../node_modules/technicalindicators/lib/candlestick/BullishHarami.js","../node_modules/technicalindicators/lib/candlestick/BullishHaramiCross.js","../node_modules/technicalindicators/lib/candlestick/Doji.js","../node_modules/technicalindicators/lib/candlestick/MorningDojiStar.js","../node_modules/technicalindicators/lib/candlestick/DownsideTasukiGap.js","../node_modules/technicalindicators/lib/candlestick/BullishMarubozu.js","../node_modules/technicalindicators/lib/candlestick/PiercingLine.js","../node_modules/technicalindicators/lib/candlestick/ThreeWhiteSoldiers.js","../node_modules/technicalindicators/lib/candlestick/BullishHammerStick.js","../node_modules/technicalindicators/lib/candlestick/BullishInvertedHammerStick.js","../node_modules/technicalindicators/lib/candlestick/BearishHammerStick.js","../node_modules/technicalindicators/lib/candlestick/BearishInvertedHammerStick.js","../node_modules/technicalindicators/lib/candlestick/HammerPattern.js","../node_modules/technicalindicators/lib/candlestick/HammerPatternUnconfirmed.js","../node_modules/technicalindicators/lib/candlestick/TweezerBottom.js","../node_modules/technicalindicators/lib/candlestick/Bullish.js","../node_modules/technicalindicators/lib/candlestick/BearishEngulfingPattern.js","../node_modules/technicalindicators/lib/candlestick/BearishHarami.js","../node_modules/technicalindicators/lib/candlestick/BearishHaramiCross.js","../node_modules/technicalindicators/lib/candlestick/EveningDojiStar.js","../node_modules/technicalindicators/lib/candlestick/EveningStar.js","../node_modules/technicalindicators/lib/candlestick/BearishMarubozu.js","../node_modules/technicalindicators/lib/candlestick/ThreeBlackCrows.js","../node_modules/technicalindicators/lib/candlestick/HangingMan.js","../node_modules/technicalindicators/lib/candlestick/HangingManUnconfirmed.js","../node_modules/technicalindicators/lib/candlestick/ShootingStar.js","../node_modules/technicalindicators/lib/candlestick/ShootingStarUnconfirmed.js","../node_modules/technicalindicators/lib/candlestick/TweezerTop.js","../node_modules/technicalindicators/lib/candlestick/Bearish.js","../node_modules/technicalindicators/lib/candlestick/AbandonedBaby.js","../node_modules/technicalindicators/lib/candlestick/DarkCloudCover.js","../node_modules/technicalindicators/lib/candlestick/DragonFlyDoji.js","../node_modules/technicalindicators/lib/candlestick/GraveStoneDoji.js","../node_modules/technicalindicators/lib/candlestick/BullishSpinningTop.js","../node_modules/technicalindicators/lib/candlestick/BearishSpinningTop.js","../node_modules/technicalindicators/lib/drawingtools/fibonacci.js","../node_modules/technicalindicators/lib/ichimoku/IchimokuCloud.js","../node_modules/technicalindicators/lib/volatility/KeltnerChannels.js","../node_modules/technicalindicators/lib/volatility/ChandelierExit.js","../node_modules/technicalindicators/lib/Utils/CrossUp.js","../node_modules/technicalindicators/lib/Utils/CrossDown.js","../node_modules/react-dom/index.js","../node_modules/react-chartjs-2/es/index.js","../node_modules/react-csv/index.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/process/browser.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/chart.js/dist/Chart.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_baseIsNative.js","../node_modules/webpack/buildin/global.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/keyBy.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_createAggregator.js","../node_modules/lodash/_arrayAggregator.js","../node_modules/lodash/_baseAggregator.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/get.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/memoize.js","../node_modules/lodash/toString.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/identity.js","../node_modules/lodash/property.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react-csv/lib/index.js","../node_modules/react-csv/lib/components/Download.js","../node_modules/react-csv/lib/components/Link.js"],"names":["module","exports","require","_slicedToArray","arr","i","Array","isArray","Symbol","iterator","Object","_arr","_n","_d","_e","undefined","_s","_i","next","done","push","value","length","err","unsupportedIterableToArray","TypeError","freeGlobal","freeSelf","self","root","Function","baseIsNative","getValue","object","key","_unsupportedIterableToArray","o","minLen","n","prototype","toString","call","slice","constructor","name","from","test","getRawTag","objectToString","symToStringTag","toStringTag","hookCallback","some","hooks","apply","arguments","setHookCallback","callback","input","isObject","hasOwnProp","a","b","hasOwnProperty","isObjectEmpty","obj","getOwnPropertyNames","k","isUndefined","isNumber","isDate","Date","map","fn","res","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","m","_pf","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","fun","t","this","len","momentProperties","updateInProgress","copyConfig","to","prop","val","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","args","join","Error","stack","keys","deprecations","deprecateSimple","isFunction","set","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","source","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","now","output","_calendar","zeroFill","number","targetLength","forceSign","absNumber","Math","abs","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","func","localeData","removeFormattingTokens","match","replace","makeFormatFunction","array","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","toUpperCase","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","s","ss","mm","h","hh","d","dd","w","ww","M","MM","y","yy","relativeTime","withoutSuffix","string","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","sort","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","get","month","date","daysInMonth","stringGet","stringSet","prioritized","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","indexOf","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","x","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","split","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","min","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","parseInt","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","add","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","charAt","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","loadLocale","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","e","values","data","getLocale","defineLocale","abbr","parentLocale","forEach","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","allowTime","dateFormat","timeFormat","tzFormat","exec","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","result","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","defaults","c","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","parts","matches","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","tmp","isAdding","invalid","isString","String","isMomentInput","isNumberOrStringArray","isMomentInputObject","property","objectTest","propertyTest","properties","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","wholeMonthDiff","anchor","toISOString","keepOffset","toDate","inspect","prefix","datetime","suffix","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","parseZone","preParsePostFormat","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","assign","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","factory","_arrayLikeToArray","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","entries","clear","entry","has","eq","nativeCreate","getNative","isKeyable","__data__","isSymbol","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","shouldUseNative","target","symbols","webpackPolyfill","paths","children","defineProperty","enumerable","baseIsEqualDeep","isObjectLike","baseIsEqual","bitmask","customizer","Map","type","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","arrayLikeKeys","baseKeys","isArrayLike","reIsDeepProp","reIsPlainProp","baseGetTag","asyncGeneratorStep","gen","resolve","reject","_next","_throw","info","error","Promise","then","_asyncToGenerator","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","size","tag","global","funcToString","SetCache","arraySome","cacheHas","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","baseIsArguments","objectProto","isArguments","stubFalse","freeExports","nodeType","freeModule","Buffer","isBuffer","reIsUint","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray","isLength","srcValue","castPath","toKey","path","isKey","stringToPath","_typeof","_toConsumableArray","isSafari","navigator","userAgent","isJsons","every","row","isArrays","jsonsHeaders","json","reduce","Set","jsons2arrays","jsons","headers","headerLabels","headerKeys","header","label","getHeaderValue","foundValue","p","splice","elementOrEmpty","element","joiner","enclosingCharacter","column","arrays2csv","jsons2csv","string2csv","toCSV","buildURI","uFEFF","csv","blob","Blob","dataURI","URL","window","webkitURL","createObjectURL","PropsNotForwarded","defaultProps","propTypes","_react","_propTypes","__esModule","oneOfType","isRequired","filename","bool","onClick","asyncOnClick","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","configurable","writable","_createClass","protoProps","staticProps","_setPrototypeOf","setPrototypeOf","__proto__","_inherits","subClass","superClass","create","_getPrototypeOf","getPrototypeOf","_possibleConstructorReturn","ReferenceError","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Super","NewTarget","Item","prev","LinkedList","_length","_head","_tail","_current","tail","head","current","FixedSizeLinkedList","maintainHigh","maintainLow","maintainSum","totalPushed","periodHigh","periodLow","Infinity","periodSum","_push","lastShift","calculatePeriodHigh","calculatePeriodLow","resetCursor","CandleData","CandleList","open","high","low","close","volume","timestamp","setConfig","getConfig","v","precision","toPrecision","IndicatorInput","Indicator","nf","reversedInput","reverse","SMA","price","genFn","list","sum","counter","generator","tick","sma","reverseInputs","calculate","EMA","priceArray","exponent","prevEma","nextValue","ema","WMA","denominator","wma","WEMA","wema","MACD","oscillatorMAtype","SimpleMAOscillator","signalMAtype","SimpleMASignal","fastMAProducer","fastPeriod","slowMAProducer","slowPeriod","signalMAProducer","signalPeriod","fast","slow","signal","histogram","macd","AverageGain","currentValue","gainSum","lastValue","gain","avgGain","averagegain","AverageLoss","lossSum","loss","avgLoss","averageloss","RSI","GainProvider","LossProvider","lastAvgGain","lastAvgLoss","currentRSI","RS","rsi","_createForOfIteratorHelper","allowArrayLike","it","F","f","normalCompletion","didErr","step","_e2","SD","currentSet","mean","sd","sqrt","nextResult","BollingerBands","stdDev","calcSMA","calcsd","middle","upper","lower","pb","bollingerbands","WilderSmoothing","MDM","lows","highs","last","upMove","downMove","minusDm","PDM","plusDm","TrueRange","closes","previousClose","truerange","ADX","plusDM","minusDM","emaPDM","emaMDM","emaTR","emaDX","tr","calcTr","calcPDM","calcMDM","lastATR","lastAPDM","lastAMDM","lastPDI","lastMDI","diDiff","lastDX","smoothedDX","adx","pdi","mdi","ATR","trueRange","trange","avgTrueRange","atr","ROC","pastPeriods","roc","KST","rocPer1","ROCPer1","rocPer2","ROCPer2","rocPer3","ROCPer3","rocPer4","ROCPer4","smaPer1","SMAROCPer1","smaPer2","SMAROCPer2","smaPer3","SMAROCPer3","smaPer4","SMAROCPer4","roc1","roc2","roc3","roc4","sma1","sma2","sma3","sma4","signalSMA","firstResult","roc1Result","roc2Result","roc3Result","roc4Result","RCMA1","RCMA2","RCMA3","RCMA4","kst","PSAR","up","accel","curr","sar","extreme","furthest","psar","Stochastic","pastHighPeriods","pastLowPeriods","dSma","stochastic","WilliamsR","williamsR","williamsr","ADL","volumes","moneyFlowMultiplier","moneyFlowVolume","tickHigh","tickInput","adl","OBV","lastClose","obv","TRIX","emaOfema","emaOfemaOfema","trixROC","initialema","smoothedResult","doubleSmoothedResult","trix","ForceIndex","emaForceIndex","previousTick","forceIndex","forceindex","CCI","currentTpSet","tpSMACalculator","tp","smaTp","cci","AwesomeOscillator","slowSMA","fastSMA","medianPrice","slowSmaValue","fastSmaValue","awesomeoscillator","VWAP","cumulativeTotal","cumulativeVolume","typicalPrice","vwap","arrayLikeToArray","iter","VolumeProfile","opens","bars","noOfBars","low1","high1","barRange","lastEnd","rangeStart","rangeEnd","bullishVolume","bearishVolume","totalVolume","priceBar","priceBarStart","priceBarEnd","priceBarOpen","priceBarClose","priceBarVolume","volumeprofile","TypicalPrice","priceInput","MFI","positiveFlow","negativeFlow","rawMoneyFlow","typicalPriceValue","prevousTypicalPrice","positionMoney","negativeMoney","positiveFlowForPeriod","negativeFlowForPeriod","mfi","StochasticRSI","rsiPeriod","stochasticPeriod","kPeriod","dPeriod","lastRSI","stochasticInput","stochasticRSI","stochRSI","stochasticrsi","Highest","periodList","FixedSizedLinkedList","highest","Lowest","lowest","Sum","Renko","useATR","brickSize","atrResult","lastOpen","lastHigh","lastLow","lastVolume","candleData","absoluteMovementFromClose","absoluteMovementFromOpen","calculated","reference","Low","renko","HeikinAshi","newClose","newOpen","newHigh","newLow","heikinashi","CandlestickFinder","requiredCount","strategyFn","logic","_generateDataForCandleStick","hasIndex","_getLastDataForCandleStick","returnVal","currentData","MorningStar","firstdaysOpen","firstdaysClose","firstdaysLow","seconddaysClose","seconddaysHigh","seconddaysLow","thirddaysOpen","thirddaysClose","morningstar","hasPattern","BullishEngulfingPattern","seconddaysOpen","bullishengulfingpattern","BullishHarami","firstdaysHigh","bullishharami","BullishHaramiCross","isBullishHaramiCrossPattern","isSecondDayDoji","approximateEqual","bullishharamicross","Doji","daysOpen","daysClose","daysHigh","daysLow","isOpenEqualsClose","isHighEqualsOpen","isLowEqualsClose","doji","MorningDojiStar","firstdaysMidpoint","isFirstBearish","dojiExists","morningdojistar","DownsideTasukiGap","downsidetasukigap","BullishMarubozu","bullishmarubozu","PiercingLine","piercingline","ThreeWhiteSoldiers","thirddaysHigh","threewhitesoldiers","BullishHammerStick","isBullishHammer","bullishhammerstick","BullishInvertedHammerStick","isBullishInvertedHammer","bullishinvertedhammerstick","BearishHammerStick","isBearishHammer","bearishhammerstick","BearishInvertedHammerStick","isBearishInvertedHammer","bearishinvertedhammerstick","HammerPattern","isPattern","downwardTrend","includesHammer","hasConfirmation","confirm","end","gains","losses","start","possibleHammerData","possibleHammer","possibleConfirmation","hammerpattern","HammerPatternUnconfirmed","hammerpatternunconfirmed","TweezerBottom","tweezerbottom","bullishPatterns","BullishPatterns","state","pattern","bullish","BearishEngulfingPattern","bearishengulfingpattern","BearishHarami","bearishharami","BearishHaramiCross","isBearishHaramiCrossPattern","bearishharamicross","EveningDojiStar","isFirstBullish","eveningdojistar","EveningStar","eveningstar","BearishMarubozu","bearishmarubozu","ThreeBlackCrows","thirddaysLow","threeblackcrows","HangingMan","upwardTrend","hangingman","HangingManUnconfirmed","hangingmanunconfirmed","ShootingStar","shootingstar","ShootingStarUnconfirmed","shootingstarunconfirmed","TweezerTop","tweezertop","bearishPatterns","BearishPatterns","bearish","AbandonedBaby","abandonedbaby","DarkCloudCover","darkcloudcover","DragonFlyDoji","dragonflydoji","GraveStoneDoji","gravestonedoji","BullishSpinningTop","bodyLength","upperShadowLength","lowerShadowLength","bullishspinningtop","BearishSpinningTop","bearishspinningtop","fibonacciretracement","levels","level","IchimokuCloud","params","conversionPeriod","basePeriod","spanPeriod","displacement","currentConversionData","currentBaseData","currenSpanData","periodCounter","conversionLine","baseLine","spanA","spanB","conversion","ichimokucloud","KeltnerChannelsInput","maPeriod","atrPeriod","useSMA","multiplier","KeltnerChannelsOutput","KeltnerChannels","maProducer","atrProducer","ma","keltnerchannels","ChandelierExitInput","ChandelierExitOutput","ChandelierExit","dataCollector","exitLong","exitShort","chandelierexit","CrossUp","lineA","lineB","currentLineA","currentLineB","unshift","valueA","valueB","pointer","crossUp","CrossDown","crossDown","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","_chart","Scatter","Bubble","Polar","Radar","HorizontalBar","Bar","Line","Pie","Doughnut","_interopRequireDefault","_isEqual","_keyBy","default","_extends","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","ownKeys","enumerableOnly","sym","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","_isNativeReflectConstruct","_assertThisInitialized","NODE_ENV","process","ChartComponent","_React$Component","_super","_this","event","chartInstance","_this$props","getDatasetAtEvent","getElementAtEvent","getElementsAtEvent","onElementsClick","renderChart","redraw","destroyChart","updateChart","nextProps","_this$props2","options","plugins","legend","height","width","nextData","transformDataProp","shadowDataProp","datasets","saveCurrentDatasets","isDev","usingCustomKeyProvider","datasetKeyProvider","getLabelAsKey","multipleDatasets","shouldWarn","dataset","_this2","getCurrentDatasets","_this3","memoizeDataProps","helpers","configMerge","currentDatasets","nextDatasets","checkDatasets","currentDatasetsIndexed","point","pid","otherProps","rest","update","_this$props3","node","destroy","_this$props4","id","createElement","ref","handleOnClick","Component","arrayOf","propName","componentName","controllers","display","position","_default","_React$Component2","_super2","_this4","_ref","_React$Component3","_super3","_this5","_ref2","_React$Component4","_super4","_this6","_ref3","_React$Component5","_super5","_this7","_ref4","_React$Component6","_super6","_this8","_ref5","_React$Component7","_super7","_this9","_ref6","_React$Component8","_super8","_this10","_ref7","_React$Component9","_super9","_this11","_ref8","_React$Component10","_super10","_this12","_ref9","Fragment","StrictMode","Profiler","q","r","Suspense","z","encodeURIComponent","A","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","B","C","context","refs","updater","D","isReactComponent","setState","forceUpdate","isPureReactComponent","G","H","I","__self","__source","J","g","$$typeof","_owner","N","escape","O","K","P","Q","_status","_result","R","S","T","ReactCurrentDispatcher","ReactCurrentBatchConfig","transition","ReactCurrentOwner","IsSomeRendererActing","Children","count","only","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createFactory","bind","createRef","forwardRef","render","isValidElement","lazy","_payload","_init","memo","compare","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","aa","ba","ca","da","ea","fa","document","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","oa","pa","qa","na","la","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ra","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","trim","Oa","Pa","prepareStackTrace","displayName","Qa","_render","Ra","Sa","Ta","nodeName","Va","_valueTracker","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","cb","ownerDocument","eb","db","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","lb","mb","nb","ob","namespaceURI","innerHTML","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","lastChild","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","rb","sb","tb","style","setProperty","substring","ub","menuitem","area","br","col","embed","hr","img","keygen","link","meta","param","track","wbr","vb","wb","is","xb","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","addEventListener","removeEventListener","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","child","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","delete","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","log","LN2","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Jd","clipboardData","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Rd","code","location","repeat","which","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Zd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","email","password","range","search","tel","text","url","me","ne","oe","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","contains","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","href","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","listener","$e","af","bf","random","cf","df","capture","passive","Nb","ef","ff","parentWindow","gf","hf","je","char","ke","jf","kf","lf","mf","autoFocus","__html","of","setTimeout","pf","clearTimeout","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","childContextTypes","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","yg","zg","eventTime","lane","payload","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","contextType","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","mode","elementType","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","documentElement","tagName","fh","gh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","queue","Ih","Jh","Kh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","hi","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","getDerivedStateFromError","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","createElementNS","createTextNode","V","Hi","Ii","Ji","Ki","Li","Mi","message","Ni","Oi","WeakMap","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","focus","aj","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","hk","unstable_observedBits","unmount","querySelectorAll","JSON","stringify","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","performance","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","requestAnimationFrame","port2","port1","onmessage","postMessage","pop","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","GenStateSuspendedStart","method","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","skipTempReset","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","noop","nextTick","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propFullName","secret","getShim","ReactPropTypes","symbol","any","instanceOf","objectOf","oneOf","shape","exact","checkPropTypes","PropTypes","moment","createCommonjsModule","getCjsExportFromNamespace","colorName","conversions","reverseKeywords","convert","rgb","channels","labels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","comparativeDistance","delta","rdif","gdif","bdif","diffc","reversed","currentClosestKeyword","currentClosestDistance","distance","t1","t2","t3","smin","lmin","sl","vmin","bl","ratio","y2","x2","z2","atan2","PI","cos","sin","ansi","mult","rem","colorString","integer","hue","chroma","pure","buildGraph","graph","models","parent","deriveBFS","fromModel","adjacents","adjacent","wrapConversion","toModel","cur","route","wrapRaw","wrappedFn","wrapRounded","routes","raw","colorConvert","colorName$1","getRgba","getHsla","getRgb","getHsl","getHwb","getAlpha","hexString","rgbString","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","rgba","per","hexAlpha","scale","alpha","hsla","vals","hexDouble","reverseNames","num","str","Color","valid","setValues","red","lightness","whiteness","cyan","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","setChannel","green","blue","saturation","saturationv","blackness","magenta","yellow","black","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","contrastRatio","dark","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","spaces","maxes","getValues","space","capped","chans","sname","svalues","chartjsColor","isValidKey","uid","isNullOrUndef","Number","valueOrDefault","valueAtIndexOrDefault","thisArg","each","loopable","arrayEquals","a0","a1","ilen","v0","v1","klen","_merger","tval","sval","merge","_mergerIf","mergeIf","sources","merger","dst","src","inherits","extensions","ChartElement","Surrogate","__super__","_deprecated","scope","previous","helpers_core","callCallback","fromIndex","getValueOrDefault","getValueAtIndexOrDefault","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","chart","ctx","clearRect","roundedRect","radius","right","bottom","moveTo","arc","closePath","rect","drawPoint","rotation","xOffset","yOffset","cornerRadius","rad","save","translate","drawImage","restore","beginPath","lineTo","SQRT1_2","fill","stroke","_isPointInArea","epsilon","clipArea","clip","unclipArea","flip","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","_set","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","toFontString","font","family","helpers_options","toLineHeight","toPadding","_parseFont","globalDefaults","fontSize","fontFamily","fontStyle","inputs","cacheable","exports$2","_factorize","log10","LOG10E","powerOf10","helpers_math","getRtlAdapter","rectX","setWidth","textAlign","align","xPlus","leftForLtr","itemWidth","getLtrAdapter","_itemWidth","helpers$1","easing","canvas","math","rtl","overrideTextDirection","original","getPropertyValue","getPropertyPriority","prevTextDirection","restoreTextDirection","interpolate","ease","actual","origin","c0","c1","Element","configuration","initialize","_type","hidden","pivot","_view","_model","_start","tooltipPosition","hasValue","core_element","exports$3","currentStep","numSteps","onAnimationProgress","onAnimationComplete","core_animation","onProgress","onComplete","core_animations","animations","request","addAnimation","animating","cancelAnimation","findIndex","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","listenArrayEvents","_chartjs","unlistenArrayEvents","stub","DatasetController","datasetIndex","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","scales","getDataset","scalesOpts","xAxisID","xAxes","yAxisID","yAxes","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","_update","createMetaDataset","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","updateElement","buildOrUpdateElements","isExtensible","resyncElements","_configure","_cachedDataOpts","easingValue","elements","draw","getStyle","_resolveDatasetElementOptions","_resolveDataElementOptions","backgroundColor","borderColor","hover","readKey","datasetOpts","custom","elementOptions","cached","dataIndex","freeze","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","numMeta","numData","insertElements","onDataPush","onDataPop","onDataShift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","drawFullCircleBorders","vm","inner","fullCircles","drawBorder","borderAlign","lineWidth","lineJoin","element_arc","inLabelRange","mouseX","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","circumference","fillStyle","strokeStyle","valueOrDefault$1","line","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","points","_children","globalOptionLineElements","lastDrawnIndex","_loop","previousItem","skip","lineCap","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","xRange","hitRadius","yRange","mouseY","pointStyle","element_point","inXRange","inYRange","padding","chartArea","defaultColor$2","isVertical","getBarBounds","x1","y1","half","swap","orig","v2","parseBorderSkipped","edge","borderSkipped","horizontal","parseBorderWidth","maxW","maxH","boundingRects","bounds","border","outer","skipX","skipY","rectangle","element_rectangle","rects","fillRect","Arc","Point","Rectangle","deprecated","valueOrDefault$3","computeMinSampleSize","pixels","getTicks","getPixelForTick","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","categoryPercentage","barPercentage","chunk","computeFlexCategoryTraits","percent","gridLines","offsetGridLines","bar","controller_bar","scaleOpts","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","_updateElementGeometry","vscale","getBasePixel","isHorizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","center","_getStacks","metasets","_getMatchingVisibleMetas","stacked","stacks","getStackCount","getStackIndex","getPixelForValue","_startPixel","_endPixel","imeta","ivalue","stackLength","_parseValue","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","tooltips","callbacks","dataPoint","xLabel","yLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","_options","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","listItem","outerHTML","generateLabels","controller","legendItem","cutoutPercentage","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","isDatasetVisible","maxWidth","maxHeight","opts","ratioX","ratioY","offsetX","offsetY","arcs","cutout","chartWeight","_getRingWeight","startX","startY","endX","endY","contains0","contains90","contains270","minX","minY","maxX","maxY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","axis","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","ticks","defaultClip","toClip","controller_line","showLine","_showLine","lineTension","_scale","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","ds","dsMeta","stackedRightValue","rightValue","sumPos","sumNeg","getRightValue","_getSortedVisibleDatasetMetas","controlPoints","capControlPoint","pt","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","resolve$3","angleLines","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","minSize","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","scatter","polarArea","pie","radar","getRelativePosition","native","parseVisibleItems","handler","metadata","jlen","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","indexMode","items","core_interaction","modes","single","nearest","intersectsItem","filterByPosition","where","sortByWeight","wrapBoxes","boxes","box","layoutBoxes","setLayoutDims","layouts","layout","fullWidth","availableWidth","vBoxMaxWidth","hBoxMaxHeight","buildLayoutBoxes","leftAndTop","rightAndBottom","vertical","getCombinedMax","maxPadding","updateDims","newWidth","newHeight","getPadding","boxPadding","outerWidth","outerHeight","sizes","handleMaxPadding","updatePos","change","getMargins","marginForPositions","positions","margin","fitBoxes","refit","changed","refitBoxes","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","configure","layoutOptions","availableHeight","verticalBoxes","horizontalBoxes","platform_basic","acquireContext","getContext","platform_dom","stylesheet","EXPANDO_KEY","CSS_PREFIX","CSS_SIZE_MONITOR","CSS_RENDER_MONITOR","CSS_RENDER_ANIMATION","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","initCanvas","renderHeight","getAttribute","renderWidth","initial","displayWidth","aspectRatio","displayHeight","eventListenerOptions","supports","createEvent","fromNativeEvent","throttled","ticking","createDiv","cls","el","className","createResizer","maxSize","resizer","expand","shrink","_reset","onScroll","watchForRender","expando","proxy","renderProxy","reflow","offsetParent","classList","unwatchForRender","remove","addResizeListener","container","maintainAspectRatio","clientWidth","removeResizeListener","injectCSS","rootNode","css","containsStyles","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","getRootNode","host","getElementById","releaseContext","proxies","addEvent","removeEvent","platform","core_plugins","_plugins","_cacheId","register","plugin","unregister","idx","getAll","notify","hook","descriptors","cache","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$8","getRtlHelper","enabled","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","distanceBetweenPoints","pushOrConcat","toPush","splitNewlines","createTooltipItem","indexScale","valueScale","getLabelForIndex","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","legendColorBackground","getTooltipSize","tooltip","combinedBodyLength","bodyItem","before","lines","after","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","determineAlignment","olf","orf","midX","midY","getBackgroundPoint","alignment","paddingAndSize","radiusAndPadding","getAlignedX","getBeforeAfterBodyLines","exports$4","_lastActive","getTitle","getBeforeBody","getBody","bodyItems","getAfterBody","getFooter","existingModel","active","_active","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","dataPoints","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","drawTitle","rtlHelper","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","globalAlpha","handleEvent","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$9","mergeScaleConfig","slen","mergeConfig","initConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","nextAvailableScaleId","axesOpts","hasId","positionIsHorizontal","compare2Level","l1","l2","events","onHover","animationDuration","responsive","responsiveAnimationDuration","Chart","_bufferedRender","instances","retinaScale","devicePixelRatio","bindEvents","resize","initToolTip","silent","getMaximumWidth","getMaximumHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","_idx","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementsAtXAxis","_meta","generateLegend","unbindEvents","toBase64Image","toDataURL","_chartInstance","_listeners","eventHandler","updateHoverStyle","bufferedRequest","core_controller","Controller","types","scaleMerge","core_helpers","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","_getParentNode","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","collection","filterCallback","filtered","findNextWhere","arrayToSearch","startIndex","currentItem","findPreviousWhere","almostEquals","almostWhole","rounded","NEGATIVE_INFINITY","toRadians","toDegrees","radians","_decimalPlaces","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","loop","niceNum","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","evt","originalEvent","boundingRect","getBoundingClientRect","paddingLeft","paddingTop","paddingRight","paddingBottom","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","clientHeight","currentStyle","forceRatio","pixelRatio","pixelSize","longestText","arrayOfThings","garbageCollect","thing","nestedThing","longest","gcLen","textWidth","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","abstract","DateAdapter","parse","_create","override","members","core_adapters","_date","core_ticks","formatters","tickValue","logDelta","tickString","logTick","numExponential","toExponential","numDecimal","logarithmic","remain","valueOrDefault$a","sample","numItems","increment","getPixelForGridLine","validIndex","lineValue","caches","computeLabelSizes","tickFonts","tickFont","nestedLabel","widest","widths","heights","offsets","widestLabelSize","highestLabelSize","major","minor","valueAt","first","getTickMarkLength","drawTicks","tickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","fontColor","parseTickFontOptions","nonSkipped","ticksToFilter","getEvenSpacing","calculateSpacing","majorIndices","axisLength","ticksLimit","factors","factor","evenMajorSpacing","spacing","getMajorIndices","skipMajors","majorStart","majorEnd","drawOnChartArea","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","Scale","zeroLineIndex","_ticks","_getLabels","xLabels","yLabels","beforeUpdate","margins","samplingEnabled","sampleSize","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","_ticksToDraw","_autoSkip","afterUpdate","startPixel","endPixel","reversePixels","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","userCallback","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","numTicks","labelRotation","_isVisible","_getLabelSizes","scaleLabelOpts","gridLineOpts","isBottom","firstLabelSize","lastLabelSize","lineSpace","tickPadding","isRotated","angleRadians","cosRotation","sinRotation","labelHeight","offsetLeft","offsetRight","labelWidth","handleMargins","isFullWidth","rawValue","_getScaleLabel","getValueForPixel","decimal","getDecimalForPixel","getBaseValue","avgMajorSpacing","maxTicksLimit","_tickSize","numMajorIndices","optionTicks","rot","_computeGridLineItems","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","ticksLength","tl","axisWidth","axisHalfWidth","alignPixel","alignBorderValue","_computeLabelItems","lineCount","textOffset","isMirrored","fonts","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelX","scaleLabelY","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","isLeft","tz","gz","_draw","core_scale","isNullOrUndef$1","defaultConfig","scale_category","ticksOpts","minIndex","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","generateTicks","generationOptions","dataRange","niceMin","niceMax","numSpaces","MIN_SPACING","stepSize","maxNumSpaces","maxTicks","rmin","rmax","scale_linearbase","handleTickRangeOptions","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","fixedStepSize","ticksAsNumbers","_endValue","defaultConfig$1","DEFAULT_MIN","DEFAULT_MAX","getOrCreateStack","neg","stackData","relativePoints","updateMinMax","scale_linear","hasStacks","stackValues","_defaults$1","valueOrDefault$b","generateTicks$1","exp","significand","tickVal","endExp","endSignificand","minNotZero","lastTick","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","valuesPerStack","valuesForType","minVal","maxVal","tickValues","_getFirstTickValue","_valueOffset","_defaults$2","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","measureLabelSize","determineLimits","fitWithPointLabels","textSize","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","drawingArea","getIndexAngle","hLimits","vLimits","setReductions","getTextAlignForAngle","adjustPointPositionForLabelHeight","drawPointLabels","pointLabelOpts","tickBackdropHeight","outerDistance","extra","pointLabelPosition","pointLabelFontColor","drawRadiusLine","numberOrZero","scale_radialLinear","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","tickFontColor","_defaults$3","deprecated$1","resolve$5","valueOrDefault$d","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","MAX_SAFE_INTEGER","INTERVALS","common","steps","UNITS","sorter","arrayUnique","hash","getMin","getMax","buildLookupTable","timestamps","distribution","table","lookup","mid","i0","i1","lo","interpolate$1","skey","tkey","span","toTimestamp","adapter","_adapter","parser","determineUnitForAutoTicks","minUnit","capacity","interval","determineUnitForFormatting","determineMajorUnit","generate","timeOpts","unitStepSize","computeOffsets","setMajorTicks","majorUnit","ticksFromTimestamps","defaultConfig$4","adapters","displayFormat","displayFormats","scale_time","labelsAdded","dataLabels","_table","_timestamps","getLabelCapacity","_unit","_majorUnit","_offsets","tooltipFormat","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","formatter","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","_defaults$4","category","radialLinear","FORMATS","_id","amount","filler","propagate","mappers","boundary","decodeFill","computeLinearBoundary","scaleBottom","scaleTop","scaleZero","computeCircularBoundary","cx","cy","computeBoundary","resolveTarget","visited","visible","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","p0","d0","d1","loopOffset","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetsDraw","getRtlHelper$1","noop$1","valueOrDefault$e","getBoxWidth","labelOpts","usePointStyle","boxWidth","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","columnHeights","totalWidth","currentColWidth","currentColHeight","lineDefault","legendHeight","legendWidth","cursor","drawLegendBox","SQRT2","halfFontSize","xLeft","yMiddle","alignmentOffset","dimension","blockSize","itemHeight","realX","_getLegendItemAt","hitBox","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","noop$2","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","_adapters","Animation","animationService","Interaction","scaleService","Ticks","Tooltip","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","assocIndexOf","pairs","LARGE_ARRAY_SIZE","isMasked","toSource","reIsHostCtor","funcProto","reIsNative","nativeObjectToString","isOwn","unmasked","coreJsData","maskSrcKey","IE_PROTO","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","getMapData","setCacheAdd","setCacheHas","predicate","Uint8Array","mapToArray","setToArray","symbolProto","symbolValueOf","byteLength","byteOffset","buffer","getAllKeys","objProps","objLength","objStacked","skipCtor","objValue","objCtor","othCtor","baseGetAllKeys","getSymbols","arrayPush","keysFunc","symbolsFunc","arrayFilter","stubArray","nativeGetSymbols","resIndex","baseTimes","isIndex","inherited","isArr","isArg","isBuff","isType","skipIndexes","iteratee","typedArrayTags","freeProcess","isPrototype","nativeKeys","Ctor","overArg","transform","DataView","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ArrayBuffer","ctorString","baseAssignValue","keyBy","createAggregator","arrayAggregator","baseAggregator","baseIteratee","initializer","accumulator","baseEach","baseForOwn","createBaseEach","baseFor","createBaseFor","fromRight","eachFunc","baseMatches","baseMatchesProperty","identity","baseIsMatch","getMatchData","matchesStrictComparable","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","isStrictComparable","hasIn","baseGet","memoizeCapped","rePropName","reEscapeChar","charCodeAt","quote","subString","memoize","resolver","memoized","Cache","baseToString","arrayMap","symbolToString","baseHasIn","hasPath","hasFunc","baseProperty","basePropertyDeep","jsx","jsxs","CSVLink","CSVDownload","_Download2","_Link2","_react2","_core","_metaProps","_props","specs","page","prevProps","_props2","msSaveOrOpenBlob","_props3","msSaveBlob","proceed","handleLegacy","handleAsyncClick","handleSyncClick","_props4","download","handleClick"],"mappings":"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","file":"static/js/2.66fd0d03.chunk.js","sourcesContent":["module.exports = require(\"regenerator-runtime\");\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","//! moment.js\n//! version : 2.29.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? 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 for (i = 0; i < arr.length; ++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, prop, val;\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 (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; 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 for (i = 0; i < arguments.length; 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 = /(\\[[^\\[]*\\])|(\\\\)?([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 for (i = 0; i < prioritized.length; 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 = /[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(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\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 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 for (i = 0; i < token.length; 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 = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\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(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 1)] = toInt(input);\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 = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\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 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 ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + 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 = /^\\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 = /^\\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 = /^(?:(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\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; 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 = isoTimes.length; 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\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; 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\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; 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 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 < ordering.length; ++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 = /^(-|\\+)?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\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 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', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n ) {\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 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(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 2)] = toInt(input);\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.1';\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","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar isSafari = exports.isSafari = function isSafari() {\n return (/^((?!chrome|android).)*safari/i.test(navigator.userAgent)\n );\n};\n\nvar isJsons = exports.isJsons = function isJsons(array) {\n return Array.isArray(array) && array.every(function (row) {\n return (typeof row === \"undefined\" ? \"undefined\" : _typeof(row)) === 'object' && !(row instanceof Array);\n });\n};\n\nvar isArrays = exports.isArrays = function isArrays(array) {\n return Array.isArray(array) && array.every(function (row) {\n return Array.isArray(row);\n });\n};\n\nvar jsonsHeaders = exports.jsonsHeaders = function jsonsHeaders(array) {\n return Array.from(array.map(function (json) {\n return Object.keys(json);\n }).reduce(function (a, b) {\n return new Set([].concat(_toConsumableArray(a), _toConsumableArray(b)));\n }, []));\n};\n\nvar jsons2arrays = exports.jsons2arrays = function jsons2arrays(jsons, headers) {\n headers = headers || jsonsHeaders(jsons);\n\n var headerLabels = headers;\n var headerKeys = headers;\n if (isJsons(headers)) {\n headerLabels = headers.map(function (header) {\n return header.label;\n });\n headerKeys = headers.map(function (header) {\n return header.key;\n });\n }\n\n var data = jsons.map(function (object) {\n return headerKeys.map(function (header) {\n return getHeaderValue(header, object);\n });\n });\n return [headerLabels].concat(_toConsumableArray(data));\n};\n\nvar getHeaderValue = exports.getHeaderValue = function getHeaderValue(property, obj) {\n var foundValue = property.replace(/\\[([^\\]]+)]/g, \".$1\").split(\".\").reduce(function (o, p, i, arr) {\n if (o[p] === undefined) {\n arr.splice(1);\n } else {\n return o[p];\n }\n }, obj);\n\n return foundValue === undefined ? property in obj ? obj[property] : '' : foundValue;\n};\n\nvar elementOrEmpty = exports.elementOrEmpty = function elementOrEmpty(element) {\n return element || element === 0 ? element : '';\n};\n\nvar joiner = exports.joiner = function joiner(data) {\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';\n var enclosingCharacter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '\"';\n\n return data.filter(function (e) {\n return e;\n }).map(function (row) {\n return row.map(function (element) {\n return elementOrEmpty(element);\n }).map(function (column) {\n return \"\" + enclosingCharacter + column + enclosingCharacter;\n }).join(separator);\n }).join(\"\\n\");\n};\n\nvar arrays2csv = exports.arrays2csv = function arrays2csv(data, headers, separator, enclosingCharacter) {\n return joiner(headers ? [headers].concat(_toConsumableArray(data)) : data, separator, enclosingCharacter);\n};\n\nvar jsons2csv = exports.jsons2csv = function jsons2csv(data, headers, separator, enclosingCharacter) {\n return joiner(jsons2arrays(data, headers), separator, enclosingCharacter);\n};\n\nvar string2csv = exports.string2csv = function string2csv(data, headers, separator, enclosingCharacter) {\n return headers ? headers.join(separator) + \"\\n\" + data : data;\n};\n\nvar toCSV = exports.toCSV = function toCSV(data, headers, separator, enclosingCharacter) {\n if (isJsons(data)) return jsons2csv(data, headers, separator, enclosingCharacter);\n if (isArrays(data)) return arrays2csv(data, headers, separator, enclosingCharacter);\n if (typeof data === 'string') return string2csv(data, headers, separator);\n throw new TypeError(\"Data should be a \\\"String\\\", \\\"Array of arrays\\\" OR \\\"Array of objects\\\" \");\n};\n\nvar buildURI = exports.buildURI = function buildURI(data, uFEFF, headers, separator, enclosingCharacter) {\n var csv = toCSV(data, headers, separator, enclosingCharacter);\n var type = isSafari() ? 'application/csv' : 'text/csv';\n var blob = new Blob([uFEFF ? \"\\uFEFF\" : '', csv], { type: type });\n var dataURI = \"data:\" + type + \";charset=utf-8,\" + (uFEFF ? \"\\uFEFF\" : '') + csv;\n\n var URL = window.URL || window.webkitURL;\n\n return typeof URL.createObjectURL === 'undefined' ? dataURI : URL.createObjectURL(blob);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PropsNotForwarded = exports.defaultProps = exports.propTypes = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar propTypes = exports.propTypes = {\n data: (0, _propTypes.oneOfType)([_propTypes.string, _propTypes.array]).isRequired,\n headers: _propTypes.array,\n target: _propTypes.string,\n separator: _propTypes.string,\n filename: _propTypes.string,\n uFEFF: _propTypes.bool,\n onClick: _propTypes.func,\n asyncOnClick: _propTypes.bool\n};\n\nvar defaultProps = exports.defaultProps = {\n separator: ',',\n filename: 'generatedBy_react-csv.csv',\n uFEFF: true,\n asyncOnClick: false\n};\n\nvar PropsNotForwarded = exports.PropsNotForwarded = ['data', 'headers'];","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","class Item {\n constructor(data, prev, next) {\n this.next = next;\n if (next)\n next.prev = this;\n this.prev = prev;\n if (prev)\n prev.next = this;\n this.data = data;\n }\n}\nexport class LinkedList {\n constructor() {\n this._length = 0;\n }\n get head() {\n return this._head && this._head.data;\n }\n get tail() {\n return this._tail && this._tail.data;\n }\n get current() {\n return this._current && this._current.data;\n }\n get length() {\n return this._length;\n }\n push(data) {\n this._tail = new Item(data, this._tail);\n if (this._length === 0) {\n this._head = this._tail;\n this._current = this._head;\n this._next = this._head;\n }\n this._length++;\n }\n pop() {\n var tail = this._tail;\n if (this._length === 0) {\n return;\n }\n this._length--;\n if (this._length === 0) {\n this._head = this._tail = this._current = this._next = undefined;\n return tail.data;\n }\n this._tail = tail.prev;\n this._tail.next = undefined;\n if (this._current === tail) {\n this._current = this._tail;\n this._next = undefined;\n }\n return tail.data;\n }\n shift() {\n var head = this._head;\n if (this._length === 0) {\n return;\n }\n this._length--;\n if (this._length === 0) {\n this._head = this._tail = this._current = this._next = undefined;\n return head.data;\n }\n this._head = this._head.next;\n if (this._current === head) {\n this._current = this._head;\n this._next = this._current.next;\n }\n return head.data;\n }\n unshift(data) {\n this._head = new Item(data, undefined, this._head);\n if (this._length === 0) {\n this._tail = this._head;\n this._next = this._head;\n }\n this._length++;\n }\n unshiftCurrent() {\n var current = this._current;\n if (current === this._head || this._length < 2) {\n return current && current.data;\n }\n // remove\n if (current === this._tail) {\n this._tail = current.prev;\n this._tail.next = undefined;\n this._current = this._tail;\n }\n else {\n current.next.prev = current.prev;\n current.prev.next = current.next;\n this._current = current.prev;\n }\n this._next = this._current.next;\n // unshift\n current.next = this._head;\n current.prev = undefined;\n this._head.prev = current;\n this._head = current;\n return current.data;\n }\n removeCurrent() {\n var current = this._current;\n if (this._length === 0) {\n return;\n }\n this._length--;\n if (this._length === 0) {\n this._head = this._tail = this._current = this._next = undefined;\n return current.data;\n }\n if (current === this._tail) {\n this._tail = current.prev;\n this._tail.next = undefined;\n this._current = this._tail;\n }\n else if (current === this._head) {\n this._head = current.next;\n this._head.prev = undefined;\n this._current = this._head;\n }\n else {\n current.next.prev = current.prev;\n current.prev.next = current.next;\n this._current = current.prev;\n }\n this._next = this._current.next;\n return current.data;\n }\n resetCursor() {\n this._current = this._next = this._head;\n return this;\n }\n next() {\n var next = this._next;\n if (next !== undefined) {\n this._next = next.next;\n this._current = next;\n return next.data;\n }\n }\n}\n","/**\n * Created by AAravindan on 5/7/16.\n */\nimport { LinkedList } from './LinkedList';\nexport default class FixedSizeLinkedList extends LinkedList {\n constructor(size, maintainHigh, maintainLow, maintainSum) {\n super();\n this.size = size;\n this.maintainHigh = maintainHigh;\n this.maintainLow = maintainLow;\n this.maintainSum = maintainSum;\n this.totalPushed = 0;\n this.periodHigh = 0;\n this.periodLow = Infinity;\n this.periodSum = 0;\n if (!size || typeof size !== 'number') {\n throw ('Size required and should be a number.');\n }\n this._push = this.push;\n this.push = function (data) {\n this.add(data);\n this.totalPushed++;\n };\n }\n add(data) {\n if (this.length === this.size) {\n this.lastShift = this.shift();\n this._push(data);\n //TODO: FInd a better way\n if (this.maintainHigh)\n if (this.lastShift == this.periodHigh)\n this.calculatePeriodHigh();\n if (this.maintainLow)\n if (this.lastShift == this.periodLow)\n this.calculatePeriodLow();\n if (this.maintainSum) {\n this.periodSum = this.periodSum - this.lastShift;\n }\n }\n else {\n this._push(data);\n }\n //TODO: FInd a better way\n if (this.maintainHigh)\n if (this.periodHigh <= data)\n (this.periodHigh = data);\n if (this.maintainLow)\n if (this.periodLow >= data)\n (this.periodLow = data);\n if (this.maintainSum) {\n this.periodSum = this.periodSum + data;\n }\n }\n *iterator() {\n this.resetCursor();\n while (this.next()) {\n yield this.current;\n }\n }\n calculatePeriodHigh() {\n this.resetCursor();\n if (this.next())\n this.periodHigh = this.current;\n while (this.next()) {\n if (this.periodHigh <= this.current) {\n this.periodHigh = this.current;\n }\n ;\n }\n ;\n }\n calculatePeriodLow() {\n this.resetCursor();\n if (this.next())\n this.periodLow = this.current;\n while (this.next()) {\n if (this.periodLow >= this.current) {\n this.periodLow = this.current;\n }\n ;\n }\n ;\n }\n}\n","export default class StockData {\n constructor(open, high, low, close, reversedInput) {\n this.open = open;\n this.high = high;\n this.low = low;\n this.close = close;\n this.reversedInput = reversedInput;\n }\n}\nexport class CandleData {\n}\nexport class CandleList {\n constructor() {\n this.open = [];\n this.high = [];\n this.low = [];\n this.close = [];\n this.volume = [];\n this.timestamp = [];\n }\n}\n","let config = {};\nexport function setConfig(key, value) {\n config[key] = value;\n}\nexport function getConfig(key) {\n return config[key];\n}\n","import { getConfig } from '../config';\nexport function format(v) {\n let precision = getConfig('precision');\n if (precision) {\n return parseFloat(v.toPrecision(precision));\n }\n return v;\n}\n","import { format as nf } from '../Utils/NumberFormatter';\nexport class IndicatorInput {\n}\nexport class AllInputs {\n}\nexport class Indicator {\n constructor(input) {\n this.format = input.format || nf;\n }\n static reverseInputs(input) {\n if (input.reversedInput) {\n input.values ? input.values.reverse() : undefined;\n input.open ? input.open.reverse() : undefined;\n input.high ? input.high.reverse() : undefined;\n input.low ? input.low.reverse() : undefined;\n input.close ? input.close.reverse() : undefined;\n input.volume ? input.volume.reverse() : undefined;\n input.timestamp ? input.timestamp.reverse() : undefined;\n }\n }\n getResult() {\n return this.result;\n }\n}\n","//STEP 1. Import Necessary indicator or rather last step\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { LinkedList } from '../Utils/LinkedList';\n//STEP 2. Create the input for the indicator, mandatory should be in the constructor\nexport class MAInput extends IndicatorInput {\n constructor(period, values) {\n super();\n this.period = period;\n this.values = values;\n }\n}\n//STEP3. Add class based syntax with export\nexport class SMA extends Indicator {\n constructor(input) {\n super(input);\n this.period = input.period;\n this.price = input.values;\n var genFn = (function* (period) {\n var list = new LinkedList();\n var sum = 0;\n var counter = 1;\n var current = yield;\n var result;\n list.push(0);\n while (true) {\n if (counter < period) {\n counter++;\n list.push(current);\n sum = sum + current;\n }\n else {\n sum = sum - list.shift() + current;\n result = ((sum) / period);\n list.push(current);\n }\n current = yield result;\n }\n });\n this.generator = genFn(this.period);\n this.generator.next();\n this.result = [];\n this.price.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value !== undefined) {\n this.result.push(this.format(result.value));\n }\n });\n }\n nextValue(price) {\n var result = this.generator.next(price).value;\n if (result != undefined)\n return this.format(result);\n }\n ;\n}\nSMA.calculate = sma;\nexport function sma(input) {\n Indicator.reverseInputs(input);\n var result = new SMA(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n//STEP 6. Run the tests\n","import { Indicator } from '../indicator/indicator';\nimport { SMA } from './SMA';\nexport class EMA extends Indicator {\n constructor(input) {\n super(input);\n var period = input.period;\n var priceArray = input.values;\n var exponent = (2 / (period + 1));\n var sma;\n this.result = [];\n sma = new SMA({ period: period, values: [] });\n var genFn = (function* () {\n var tick = yield;\n var prevEma;\n while (true) {\n if (prevEma !== undefined && tick !== undefined) {\n prevEma = ((tick - prevEma) * exponent) + prevEma;\n tick = yield prevEma;\n }\n else {\n tick = yield;\n prevEma = sma.nextValue(tick);\n if (prevEma)\n tick = yield prevEma;\n }\n }\n });\n this.generator = genFn();\n this.generator.next();\n this.generator.next();\n priceArray.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value != undefined) {\n this.result.push(this.format(result.value));\n }\n });\n }\n nextValue(price) {\n var result = this.generator.next(price).value;\n if (result != undefined)\n return this.format(result);\n }\n ;\n}\nEMA.calculate = ema;\nexport function ema(input) {\n Indicator.reverseInputs(input);\n var result = new EMA(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n","\"use strict\";\nimport { Indicator } from '../indicator/indicator';\nimport { LinkedList } from '../Utils/LinkedList';\nexport class WMA extends Indicator {\n constructor(input) {\n super(input);\n var period = input.period;\n var priceArray = input.values;\n this.result = [];\n this.generator = (function* () {\n let data = new LinkedList();\n let denominator = period * (period + 1) / 2;\n while (true) {\n if ((data.length) < period) {\n data.push(yield);\n }\n else {\n data.resetCursor();\n let result = 0;\n for (let i = 1; i <= period; i++) {\n result = result + (data.next() * i / (denominator));\n }\n var next = yield result;\n data.shift();\n data.push(next);\n }\n }\n })();\n this.generator.next();\n priceArray.forEach((tick, index) => {\n var result = this.generator.next(tick);\n if (result.value != undefined) {\n this.result.push(this.format(result.value));\n }\n });\n }\n //STEP 5. REMOVE GET RESULT FUNCTION\n nextValue(price) {\n var result = this.generator.next(price).value;\n if (result != undefined)\n return this.format(result);\n }\n ;\n}\nWMA.calculate = wma;\n;\nexport function wma(input) {\n Indicator.reverseInputs(input);\n var result = new WMA(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n","import { Indicator } from '../indicator/indicator';\nimport { SMA } from './SMA';\nexport class WEMA extends Indicator {\n constructor(input) {\n super(input);\n var period = input.period;\n var priceArray = input.values;\n var exponent = 1 / period;\n var sma;\n this.result = [];\n sma = new SMA({ period: period, values: [] });\n var genFn = (function* () {\n var tick = yield;\n var prevEma;\n while (true) {\n if (prevEma !== undefined && tick !== undefined) {\n prevEma = ((tick - prevEma) * exponent) + prevEma;\n tick = yield prevEma;\n }\n else {\n tick = yield;\n prevEma = sma.nextValue(tick);\n if (prevEma !== undefined)\n tick = yield prevEma;\n }\n }\n });\n this.generator = genFn();\n this.generator.next();\n this.generator.next();\n priceArray.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value != undefined) {\n this.result.push(this.format(result.value));\n }\n });\n }\n nextValue(price) {\n var result = this.generator.next(price).value;\n if (result != undefined)\n return this.format(result);\n }\n ;\n}\nWEMA.calculate = wema;\nexport function wema(input) {\n Indicator.reverseInputs(input);\n var result = new WEMA(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n","/**\n * Created by AAravindan on 5/4/16.\n */\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { SMA } from './SMA';\nimport { EMA } from './EMA';\nexport class MACDInput extends IndicatorInput {\n constructor(values) {\n super();\n this.values = values;\n this.SimpleMAOscillator = true;\n this.SimpleMASignal = true;\n }\n}\nexport class MACDOutput {\n}\nexport class MACD extends Indicator {\n constructor(input) {\n super(input);\n var oscillatorMAtype = input.SimpleMAOscillator ? SMA : EMA;\n var signalMAtype = input.SimpleMASignal ? SMA : EMA;\n var fastMAProducer = new oscillatorMAtype({ period: input.fastPeriod, values: [], format: (v) => { return v; } });\n var slowMAProducer = new oscillatorMAtype({ period: input.slowPeriod, values: [], format: (v) => { return v; } });\n var signalMAProducer = new signalMAtype({ period: input.signalPeriod, values: [], format: (v) => { return v; } });\n var format = this.format;\n this.result = [];\n this.generator = (function* () {\n var index = 0;\n var tick;\n var MACD, signal, histogram, fast, slow;\n while (true) {\n if (index < input.slowPeriod) {\n tick = yield;\n fast = fastMAProducer.nextValue(tick);\n slow = slowMAProducer.nextValue(tick);\n index++;\n continue;\n }\n if (fast && slow) { //Just for typescript to be happy\n MACD = fast - slow;\n signal = signalMAProducer.nextValue(MACD);\n }\n histogram = MACD - signal;\n tick = yield ({\n //fast : fast,\n //slow : slow,\n MACD: format(MACD),\n signal: signal ? format(signal) : undefined,\n histogram: isNaN(histogram) ? undefined : format(histogram)\n });\n fast = fastMAProducer.nextValue(tick);\n slow = slowMAProducer.nextValue(tick);\n }\n })();\n this.generator.next();\n input.values.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n nextValue(price) {\n var result = this.generator.next(price).value;\n return result;\n }\n ;\n}\nMACD.calculate = macd;\nexport function macd(input) {\n Indicator.reverseInputs(input);\n var result = new MACD(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class AvgGainInput extends IndicatorInput {\n}\nexport class AverageGain extends Indicator {\n constructor(input) {\n super(input);\n let values = input.values;\n let period = input.period;\n let format = this.format;\n this.generator = (function* (period) {\n var currentValue = yield;\n var counter = 1;\n var gainSum = 0;\n var avgGain;\n var gain;\n var lastValue = currentValue;\n currentValue = yield;\n while (true) {\n gain = currentValue - lastValue;\n gain = gain > 0 ? gain : 0;\n if (gain > 0) {\n gainSum = gainSum + gain;\n }\n if (counter < period) {\n counter++;\n }\n else if (avgGain === undefined) {\n avgGain = gainSum / period;\n }\n else {\n avgGain = ((avgGain * (period - 1)) + gain) / period;\n }\n lastValue = currentValue;\n avgGain = (avgGain !== undefined) ? format(avgGain) : undefined;\n currentValue = yield avgGain;\n }\n })(period);\n this.generator.next();\n this.result = [];\n values.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\nAverageGain.calculate = averagegain;\nexport function averagegain(input) {\n Indicator.reverseInputs(input);\n var result = new AverageGain(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class AvgLossInput extends IndicatorInput {\n}\nexport class AverageLoss extends Indicator {\n constructor(input) {\n super(input);\n let values = input.values;\n let period = input.period;\n let format = this.format;\n this.generator = (function* (period) {\n var currentValue = yield;\n var counter = 1;\n var lossSum = 0;\n var avgLoss;\n var loss;\n var lastValue = currentValue;\n currentValue = yield;\n while (true) {\n loss = lastValue - currentValue;\n loss = loss > 0 ? loss : 0;\n if (loss > 0) {\n lossSum = lossSum + loss;\n }\n if (counter < period) {\n counter++;\n }\n else if (avgLoss === undefined) {\n avgLoss = lossSum / period;\n }\n else {\n avgLoss = ((avgLoss * (period - 1)) + loss) / period;\n }\n lastValue = currentValue;\n avgLoss = (avgLoss !== undefined) ? format(avgLoss) : undefined;\n currentValue = yield avgLoss;\n }\n })(period);\n this.generator.next();\n this.result = [];\n values.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\nAverageLoss.calculate = averageloss;\nexport function averageloss(input) {\n Indicator.reverseInputs(input);\n var result = new AverageLoss(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","/**\n * Created by AAravindan on 5/5/16.\n */\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { AverageGain } from '../Utils/AverageGain';\nimport { AverageLoss } from '../Utils/AverageLoss';\nexport class RSIInput extends IndicatorInput {\n}\nexport class RSI extends Indicator {\n constructor(input) {\n super(input);\n var period = input.period;\n var values = input.values;\n var GainProvider = new AverageGain({ period: period, values: [] });\n var LossProvider = new AverageLoss({ period: period, values: [] });\n let count = 1;\n this.generator = (function* (period) {\n var current = yield;\n var lastAvgGain, lastAvgLoss, RS, currentRSI;\n while (true) {\n lastAvgGain = GainProvider.nextValue(current);\n lastAvgLoss = LossProvider.nextValue(current);\n if ((lastAvgGain !== undefined) && (lastAvgLoss !== undefined)) {\n if (lastAvgLoss === 0) {\n currentRSI = 100;\n }\n else if (lastAvgGain === 0) {\n currentRSI = 0;\n }\n else {\n RS = lastAvgGain / lastAvgLoss;\n RS = isNaN(RS) ? 0 : RS;\n currentRSI = parseFloat((100 - (100 / (1 + RS))).toFixed(2));\n }\n }\n count++;\n current = yield currentRSI;\n }\n })(period);\n this.generator.next();\n this.result = [];\n values.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\nRSI.calculate = rsi;\nexport function rsi(input) {\n Indicator.reverseInputs(input);\n var result = new RSI(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import { IndicatorInput, Indicator } from '../indicator/indicator';\nimport { SMA } from '../moving_averages/SMA';\nimport LinkedList from '../Utils/FixedSizeLinkedList';\n/**\n * Created by AAravindan on 5/7/16.\n */\n\"use strict\";\nexport class SDInput extends IndicatorInput {\n}\n;\nexport class SD extends Indicator {\n constructor(input) {\n super(input);\n var period = input.period;\n var priceArray = input.values;\n var sma = new SMA({ period: period, values: [], format: (v) => { return v; } });\n this.result = [];\n this.generator = (function* () {\n var tick;\n var mean;\n var currentSet = new LinkedList(period);\n ;\n tick = yield;\n var sd;\n while (true) {\n currentSet.push(tick);\n mean = sma.nextValue(tick);\n if (mean) {\n let sum = 0;\n for (let x of currentSet.iterator()) {\n sum = sum + (Math.pow((x - mean), 2));\n }\n sd = Math.sqrt(sum / (period));\n }\n tick = yield sd;\n }\n })();\n this.generator.next();\n priceArray.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value != undefined) {\n this.result.push(this.format(result.value));\n }\n });\n }\n nextValue(price) {\n var nextResult = this.generator.next(price);\n if (nextResult.value != undefined)\n return this.format(nextResult.value);\n }\n ;\n}\nSD.calculate = sd;\nexport function sd(input) {\n Indicator.reverseInputs(input);\n var result = new SD(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","\"use strict\";\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { SMA } from '../moving_averages/SMA';\nimport { SD } from '../Utils/SD';\nexport class BollingerBandsInput extends IndicatorInput {\n}\n;\nexport class BollingerBandsOutput extends IndicatorInput {\n}\n;\nexport class BollingerBands extends Indicator {\n constructor(input) {\n super(input);\n var period = input.period;\n var priceArray = input.values;\n var stdDev = input.stdDev;\n var format = this.format;\n var sma, sd;\n this.result = [];\n sma = new SMA({ period: period, values: [], format: (v) => { return v; } });\n sd = new SD({ period: period, values: [], format: (v) => { return v; } });\n this.generator = (function* () {\n var result;\n var tick;\n var calcSMA;\n var calcsd;\n tick = yield;\n while (true) {\n calcSMA = sma.nextValue(tick);\n calcsd = sd.nextValue(tick);\n if (calcSMA) {\n let middle = format(calcSMA);\n let upper = format(calcSMA + (calcsd * stdDev));\n let lower = format(calcSMA - (calcsd * stdDev));\n let pb = format((tick - lower) / (upper - lower));\n result = {\n middle: middle,\n upper: upper,\n lower: lower,\n pb: pb\n };\n }\n tick = yield result;\n }\n })();\n this.generator.next();\n priceArray.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\nBollingerBands.calculate = bollingerbands;\nexport function bollingerbands(input) {\n Indicator.reverseInputs(input);\n var result = new BollingerBands(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator } from '../indicator/indicator';\nimport { LinkedList } from '../Utils/LinkedList';\n//STEP3. Add class based syntax with export\nexport class WilderSmoothing extends Indicator {\n constructor(input) {\n super(input);\n this.period = input.period;\n this.price = input.values;\n var genFn = (function* (period) {\n var list = new LinkedList();\n var sum = 0;\n var counter = 1;\n var current = yield;\n var result = 0;\n while (true) {\n if (counter < period) {\n counter++;\n sum = sum + current;\n result = undefined;\n }\n else if (counter == period) {\n counter++;\n sum = sum + current;\n result = sum;\n }\n else {\n result = result - (result / period) + current;\n }\n current = yield result;\n }\n });\n this.generator = genFn(this.period);\n this.generator.next();\n this.result = [];\n this.price.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value != undefined) {\n this.result.push(this.format(result.value));\n }\n });\n }\n nextValue(price) {\n var result = this.generator.next(price).value;\n if (result != undefined)\n return this.format(result);\n }\n ;\n}\nWilderSmoothing.calculate = wildersmoothing;\nexport function wildersmoothing(input) {\n Indicator.reverseInputs(input);\n var result = new WilderSmoothing(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n//STEP 6. Run the tests\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\n/**\n * Created by AAravindan on 5/8/16.\n */\n\"use strict\";\nexport class MDMInput extends IndicatorInput {\n}\n;\nexport class MDM extends Indicator {\n constructor(input) {\n super(input);\n var lows = input.low;\n var highs = input.high;\n var format = this.format;\n if (lows.length != highs.length) {\n throw ('Inputs(low,high) not of equal size');\n }\n this.result = [];\n this.generator = (function* () {\n var minusDm;\n var current = yield;\n var last;\n while (true) {\n if (last) {\n let upMove = (current.high - last.high);\n let downMove = (last.low - current.low);\n minusDm = format((downMove > upMove && downMove > 0) ? downMove : 0);\n }\n last = current;\n current = yield minusDm;\n }\n })();\n this.generator.next();\n lows.forEach((tick, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index]\n });\n if (result.value !== undefined)\n this.result.push(result.value);\n });\n }\n ;\n static calculate(input) {\n Indicator.reverseInputs(input);\n var result = new MDM(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n }\n ;\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\n/**\n * Created by AAravindan on 5/8/16.\n */\nexport class PDMInput extends IndicatorInput {\n}\n;\nexport class PDM extends Indicator {\n constructor(input) {\n super(input);\n var lows = input.low;\n var highs = input.high;\n var format = this.format;\n if (lows.length != highs.length) {\n throw ('Inputs(low,high) not of equal size');\n }\n this.result = [];\n this.generator = (function* () {\n var plusDm;\n var current = yield;\n var last;\n while (true) {\n if (last) {\n let upMove = (current.high - last.high);\n let downMove = (last.low - current.low);\n plusDm = format((upMove > downMove && upMove > 0) ? upMove : 0);\n }\n last = current;\n current = yield plusDm;\n }\n })();\n this.generator.next();\n lows.forEach((tick, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index]\n });\n if (result.value !== undefined)\n this.result.push(result.value);\n });\n }\n ;\n static calculate(input) {\n Indicator.reverseInputs(input);\n var result = new PDM(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n }\n ;\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\n/**\n * Created by AAravindan on 5/8/16.\n */\n/**\n * Created by AAravindan on 5/8/16.\n */\n\"use strict\";\nexport class TrueRangeInput extends IndicatorInput {\n}\n;\nexport class TrueRange extends Indicator {\n constructor(input) {\n super(input);\n var lows = input.low;\n var highs = input.high;\n var closes = input.close;\n var format = this.format;\n if (lows.length != highs.length) {\n throw ('Inputs(low,high) not of equal size');\n }\n this.result = [];\n this.generator = (function* () {\n var current = yield;\n var previousClose, result;\n while (true) {\n if (previousClose === undefined) {\n previousClose = current.close;\n current = yield result;\n }\n result = Math.max(current.high - current.low, isNaN(Math.abs(current.high - previousClose)) ? 0 : Math.abs(current.high - previousClose), isNaN(Math.abs(current.low - previousClose)) ? 0 : Math.abs(current.low - previousClose));\n previousClose = current.close;\n if (result != undefined) {\n result = format(result);\n }\n current = yield result;\n }\n })();\n this.generator.next();\n lows.forEach((tick, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index],\n close: closes[index]\n });\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\nTrueRange.calculate = truerange;\nexport function truerange(input) {\n Indicator.reverseInputs(input);\n var result = new TrueRange(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { WilderSmoothing } from '../moving_averages/WilderSmoothing';\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { MDM } from './MinusDM';\nimport { PDM } from './PlusDM';\nimport { TrueRange } from './TrueRange';\nimport { WEMA } from '../moving_averages/WEMA';\nexport class ADXInput extends IndicatorInput {\n}\n;\nexport class ADXOutput extends IndicatorInput {\n}\n;\nexport class ADX extends Indicator {\n constructor(input) {\n super(input);\n var lows = input.low;\n var highs = input.high;\n var closes = input.close;\n var period = input.period;\n var format = this.format;\n var plusDM = new PDM({\n high: [],\n low: []\n });\n var minusDM = new MDM({\n high: [],\n low: []\n });\n var emaPDM = new WilderSmoothing({ period: period, values: [], format: (v) => { return v; } });\n var emaMDM = new WilderSmoothing({ period: period, values: [], format: (v) => { return v; } });\n var emaTR = new WilderSmoothing({ period: period, values: [], format: (v) => { return v; } });\n var emaDX = new WEMA({ period: period, values: [], format: (v) => { return v; } });\n var tr = new TrueRange({\n low: [],\n high: [],\n close: [],\n });\n if (!((lows.length === highs.length) && (highs.length === closes.length))) {\n throw ('Inputs(low,high, close) not of equal size');\n }\n this.result = [];\n ADXOutput;\n this.generator = (function* () {\n var tick = yield;\n var index = 0;\n var lastATR, lastAPDM, lastAMDM, lastPDI, lastMDI, lastDX, smoothedDX;\n lastATR = 0;\n lastAPDM = 0;\n lastAMDM = 0;\n while (true) {\n let calcTr = tr.nextValue(tick);\n let calcPDM = plusDM.nextValue(tick);\n let calcMDM = minusDM.nextValue(tick);\n if (calcTr === undefined) {\n tick = yield;\n continue;\n }\n let lastATR = emaTR.nextValue(calcTr);\n let lastAPDM = emaPDM.nextValue(calcPDM);\n let lastAMDM = emaMDM.nextValue(calcMDM);\n if ((lastATR != undefined) && (lastAPDM != undefined) && (lastAMDM != undefined)) {\n lastPDI = (lastAPDM) * 100 / lastATR;\n lastMDI = (lastAMDM) * 100 / lastATR;\n let diDiff = Math.abs(lastPDI - lastMDI);\n let diSum = (lastPDI + lastMDI);\n lastDX = (diDiff / diSum) * 100;\n smoothedDX = emaDX.nextValue(lastDX);\n // console.log(tick.high.toFixed(2), tick.low.toFixed(2), tick.close.toFixed(2) , calcTr.toFixed(2), calcPDM.toFixed(2), calcMDM.toFixed(2), lastATR.toFixed(2), lastAPDM.toFixed(2), lastAMDM.toFixed(2), lastPDI.toFixed(2), lastMDI.toFixed(2), diDiff.toFixed(2), diSum.toFixed(2), lastDX.toFixed(2));\n }\n tick = yield { adx: smoothedDX, pdi: lastPDI, mdi: lastMDI };\n }\n })();\n this.generator.next();\n lows.forEach((tick, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index],\n close: closes[index]\n });\n if (result.value != undefined && result.value.adx != undefined) {\n this.result.push({ adx: format(result.value.adx), pdi: format(result.value.pdi), mdi: format(result.value.mdi) });\n }\n });\n }\n ;\n ;\n nextValue(price) {\n let result = this.generator.next(price).value;\n if (result != undefined && result.adx != undefined) {\n return { adx: this.format(result.adx), pdi: this.format(result.pdi), mdi: this.format(result.mdi) };\n }\n }\n ;\n}\nADX.calculate = adx;\nexport function adx(input) {\n Indicator.reverseInputs(input);\n var result = new ADX(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\n/**\n * Created by AAravindan on 5/8/16.\n */\n\"use strict\";\nimport { WEMA } from '../moving_averages/WEMA';\nimport { TrueRange } from './TrueRange';\nexport class ATRInput extends IndicatorInput {\n}\n;\nexport class ATR extends Indicator {\n constructor(input) {\n super(input);\n var lows = input.low;\n var highs = input.high;\n var closes = input.close;\n var period = input.period;\n var format = this.format;\n if (!((lows.length === highs.length) && (highs.length === closes.length))) {\n throw ('Inputs(low,high, close) not of equal size');\n }\n var trueRange = new TrueRange({\n low: [],\n high: [],\n close: []\n });\n var wema = new WEMA({ period: period, values: [], format: (v) => { return v; } });\n this.result = [];\n this.generator = (function* () {\n var tick = yield;\n var avgTrueRange, trange;\n ;\n while (true) {\n trange = trueRange.nextValue({\n low: tick.low,\n high: tick.high,\n close: tick.close\n });\n if (trange === undefined) {\n avgTrueRange = undefined;\n }\n else {\n avgTrueRange = wema.nextValue(trange);\n }\n tick = yield avgTrueRange;\n }\n })();\n this.generator.next();\n lows.forEach((tick, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index],\n close: closes[index]\n });\n if (result.value !== undefined) {\n this.result.push(format(result.value));\n }\n });\n }\n ;\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\nATR.calculate = atr;\nexport function atr(input) {\n Indicator.reverseInputs(input);\n var result = new ATR(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport LinkedList from '../Utils/FixedSizeLinkedList';\nexport class ROCInput extends IndicatorInput {\n}\nexport class ROC extends Indicator {\n constructor(input) {\n super(input);\n var period = input.period;\n var priceArray = input.values;\n this.result = [];\n this.generator = (function* () {\n let index = 1;\n var pastPeriods = new LinkedList(period);\n ;\n var tick = yield;\n var roc;\n while (true) {\n pastPeriods.push(tick);\n if (index < period) {\n index++;\n }\n else {\n roc = ((tick - pastPeriods.lastShift) / (pastPeriods.lastShift)) * 100;\n }\n tick = yield roc;\n }\n })();\n this.generator.next();\n priceArray.forEach((tick) => {\n var result = this.generator.next(tick);\n if (result.value != undefined && (!isNaN(result.value))) {\n this.result.push(this.format(result.value));\n }\n });\n }\n nextValue(price) {\n var nextResult = this.generator.next(price);\n if (nextResult.value != undefined && (!isNaN(nextResult.value))) {\n return this.format(nextResult.value);\n }\n }\n ;\n}\nROC.calculate = roc;\n;\nexport function roc(input) {\n Indicator.reverseInputs(input);\n var result = new ROC(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { SMA } from '../moving_averages/SMA';\nimport { ROC } from './ROC';\nexport class KSTInput extends IndicatorInput {\n}\nexport class KSTOutput {\n}\nexport class KST extends Indicator {\n constructor(input) {\n super(input);\n let priceArray = input.values;\n let rocPer1 = input.ROCPer1;\n let rocPer2 = input.ROCPer2;\n let rocPer3 = input.ROCPer3;\n let rocPer4 = input.ROCPer4;\n let smaPer1 = input.SMAROCPer1;\n let smaPer2 = input.SMAROCPer2;\n let smaPer3 = input.SMAROCPer3;\n let smaPer4 = input.SMAROCPer4;\n let signalPeriod = input.signalPeriod;\n let roc1 = new ROC({ period: rocPer1, values: [] });\n let roc2 = new ROC({ period: rocPer2, values: [] });\n let roc3 = new ROC({ period: rocPer3, values: [] });\n let roc4 = new ROC({ period: rocPer4, values: [] });\n let sma1 = new SMA({ period: smaPer1, values: [], format: (v) => { return v; } });\n let sma2 = new SMA({ period: smaPer2, values: [], format: (v) => { return v; } });\n let sma3 = new SMA({ period: smaPer3, values: [], format: (v) => { return v; } });\n let sma4 = new SMA({ period: smaPer4, values: [], format: (v) => { return v; } });\n let signalSMA = new SMA({ period: signalPeriod, values: [], format: (v) => { return v; } });\n var format = this.format;\n this.result = [];\n let firstResult = Math.max(rocPer1 + smaPer1, rocPer2 + smaPer2, rocPer3 + smaPer3, rocPer4 + smaPer4);\n this.generator = (function* () {\n let index = 1;\n let tick = yield;\n let kst;\n let RCMA1, RCMA2, RCMA3, RCMA4, signal, result;\n while (true) {\n let roc1Result = roc1.nextValue(tick);\n let roc2Result = roc2.nextValue(tick);\n let roc3Result = roc3.nextValue(tick);\n let roc4Result = roc4.nextValue(tick);\n RCMA1 = (roc1Result !== undefined) ? sma1.nextValue(roc1Result) : undefined;\n RCMA2 = (roc2Result !== undefined) ? sma2.nextValue(roc2Result) : undefined;\n RCMA3 = (roc3Result !== undefined) ? sma3.nextValue(roc3Result) : undefined;\n RCMA4 = (roc4Result !== undefined) ? sma4.nextValue(roc4Result) : undefined;\n if (index < firstResult) {\n index++;\n }\n else {\n kst = (RCMA1 * 1) + (RCMA2 * 2) + (RCMA3 * 3) + (RCMA4 * 4);\n }\n signal = (kst !== undefined) ? signalSMA.nextValue(kst) : undefined;\n result = kst !== undefined ? {\n kst: format(kst),\n signal: signal ? format(signal) : undefined\n } : undefined;\n tick = yield result;\n }\n })();\n this.generator.next();\n priceArray.forEach((tick) => {\n let result = this.generator.next(tick);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n let nextResult = this.generator.next(price);\n if (nextResult.value != undefined)\n return nextResult.value;\n }\n ;\n}\nKST.calculate = kst;\nexport function kst(input) {\n Indicator.reverseInputs(input);\n var result = new KST(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { IndicatorInput, Indicator } from '../indicator/indicator';\n\"use strict\";\n/*\n There seems to be a few interpretations of the rules for this regarding which prices.\n I mean the english from which periods are included. The wording does seem to\n introduce some discrepancy so maybe that is why. I want to put the author's\n own description here to reassess this later.\n ----------------------------------------------------------------------------------------\n For the first day of entry the SAR is the previous Significant Point\n\n If long the SP is the lowest price reached while in the previous short trade\n If short the SP is the highest price reached while in the previous long trade\n\n If long:\n Find the difference between the highest price made while in the trade and the SAR for today.\n Multiple the difference by the AF and ADD the result to today's SAR to obtain the SAR for tomorrow.\n Use 0.02 for the first AF and increase it by 0.02 on every day that a new high for the trade is made.\n If a new high is not made continue to use the AF as last increased. Do not increase the AF above .20\n\n Never move the SAR for tomorrow ABOVE the previous day's LOW or today's LOW.\n If the SAR is calculated to be ABOVE the previous day's LOW or today's LOW then use the lower low between today and the previous day as the new SAR.\n Make the next day's calculations based on this SAR.\n\n If short:\n Find the difference between the lowest price made while in the trade and the SAR for today.\n Multiple the difference by the AF and SUBTRACT the result to today's SAR to obtain the SAR for tomorrow.\n Use 0.02 for the first AF and increase it by 0.02 on every day that a new high for the trade is made.\n If a new high is not made continue to use the AF as last increased. Do not increase the AF above .20\n\n Never move the SAR for tomorrow BELOW the previous day's HIGH or today's HIGH.\n If the SAR is calculated to be BELOW the previous day's HIGH or today's HIGH then use the higher high between today and the previous day as the new SAR. Make the next day's calculations based on this SAR.\n ----------------------------------------------------------------------------------------\n*/\nexport class PSARInput extends IndicatorInput {\n}\n;\nexport class PSAR extends Indicator {\n constructor(input) {\n super(input);\n let highs = input.high || [];\n let lows = input.low || [];\n var genFn = function* (step, max) {\n let curr, extreme, sar, furthest;\n let up = true;\n let accel = step;\n let prev = yield;\n while (true) {\n if (curr) {\n sar = sar + accel * (extreme - sar);\n if (up) {\n sar = Math.min(sar, furthest.low, prev.low);\n if (curr.high > extreme) {\n extreme = curr.high;\n accel = Math.min(accel + step, max);\n }\n ;\n }\n else {\n sar = Math.max(sar, furthest.high, prev.high);\n if (curr.low < extreme) {\n extreme = curr.low;\n accel = Math.min(accel + step, max);\n }\n }\n if ((up && curr.low < sar) || (!up && curr.high > sar)) {\n accel = step;\n sar = extreme;\n up = !up;\n extreme = !up ? curr.low : curr.high;\n }\n }\n else {\n // Randomly setup start values? What is the trend on first tick??\n sar = prev.low;\n extreme = prev.high;\n }\n furthest = prev;\n if (curr)\n prev = curr;\n curr = yield sar;\n }\n };\n this.result = [];\n this.generator = genFn(input.step, input.max);\n this.generator.next();\n lows.forEach((tick, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index],\n });\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(input) {\n let nextResult = this.generator.next(input);\n if (nextResult.value !== undefined)\n return nextResult.value;\n }\n ;\n}\nPSAR.calculate = psar;\nexport function psar(input) {\n Indicator.reverseInputs(input);\n var result = new PSAR(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { IndicatorInput, Indicator } from '../indicator/indicator';\n/**\n * Created by AAravindan on 5/10/16.\n */\n\"use strict\";\nimport LinkedList from '../Utils/FixedSizeLinkedList';\nimport { SMA } from '../moving_averages/SMA';\nexport class StochasticInput extends IndicatorInput {\n}\n;\nexport class StochasticOutput {\n}\n;\nexport class Stochastic extends Indicator {\n constructor(input) {\n super(input);\n let lows = input.low;\n let highs = input.high;\n let closes = input.close;\n let period = input.period;\n let signalPeriod = input.signalPeriod;\n let format = this.format;\n if (!((lows.length === highs.length) && (highs.length === closes.length))) {\n throw ('Inputs(low,high, close) not of equal size');\n }\n this.result = [];\n //%K = (Current Close - Lowest Low)/(Highest High - Lowest Low) * 100\n //%D = 3-day SMA of %K\n //\n //Lowest Low = lowest low for the look-back period\n //Highest High = highest high for the look-back period\n //%K is multiplied by 100 to move the decimal point two places\n this.generator = (function* () {\n let index = 1;\n let pastHighPeriods = new LinkedList(period, true, false);\n let pastLowPeriods = new LinkedList(period, false, true);\n let dSma = new SMA({\n period: signalPeriod,\n values: [],\n format: (v) => { return v; }\n });\n let k, d;\n var tick = yield;\n while (true) {\n pastHighPeriods.push(tick.high);\n pastLowPeriods.push(tick.low);\n if (index < period) {\n index++;\n tick = yield;\n continue;\n }\n let periodLow = pastLowPeriods.periodLow;\n k = (tick.close - periodLow) / (pastHighPeriods.periodHigh - periodLow) * 100;\n k = isNaN(k) ? 0 : k; //This happens when the close, high and low are same for the entire period; Bug fix for \n d = dSma.nextValue(k);\n tick = yield {\n k: format(k),\n d: (d !== undefined) ? format(d) : undefined\n };\n }\n })();\n this.generator.next();\n lows.forEach((tick, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index],\n close: closes[index]\n });\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(input) {\n let nextResult = this.generator.next(input);\n if (nextResult.value !== undefined)\n return nextResult.value;\n }\n ;\n}\nStochastic.calculate = stochastic;\nexport function stochastic(input) {\n Indicator.reverseInputs(input);\n var result = new Stochastic(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { IndicatorInput, Indicator } from '../indicator/indicator';\nimport LinkedList from '../Utils/FixedSizeLinkedList';\nexport class WilliamsRInput extends IndicatorInput {\n}\n;\nexport class WilliamsR extends Indicator {\n constructor(input) {\n super(input);\n let lows = input.low;\n let highs = input.high;\n let closes = input.close;\n let period = input.period;\n let format = this.format;\n if (!((lows.length === highs.length) && (highs.length === closes.length))) {\n throw ('Inputs(low,high, close) not of equal size');\n }\n this.result = [];\n //%R = (Highest High - Close)/(Highest High - Lowest Low) * -100\n //Lowest Low = lowest low for the look-back period\n //Highest High = highest high for the look-back period\n //%R is multiplied by -100 correct the inversion and move the decimal.\n this.generator = (function* () {\n let index = 1;\n let pastHighPeriods = new LinkedList(period, true, false);\n let pastLowPeriods = new LinkedList(period, false, true);\n let periodLow;\n let periodHigh;\n var tick = yield;\n let williamsR;\n while (true) {\n pastHighPeriods.push(tick.high);\n pastLowPeriods.push(tick.low);\n if (index < period) {\n index++;\n tick = yield;\n continue;\n }\n periodLow = pastLowPeriods.periodLow;\n periodHigh = pastHighPeriods.periodHigh;\n williamsR = format((periodHigh - tick.close) / (periodHigh - periodLow) * -100);\n tick = yield williamsR;\n }\n })();\n this.generator.next();\n lows.forEach((low, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index],\n close: closes[index]\n });\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n var nextResult = this.generator.next(price);\n if (nextResult.value != undefined)\n return this.format(nextResult.value);\n }\n ;\n}\nWilliamsR.calculate = williamsr;\nexport function williamsr(input) {\n Indicator.reverseInputs(input);\n var result = new WilliamsR(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","/**\n * Created by AAravindan on 5/17/16.\n */\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class ADLInput extends IndicatorInput {\n}\nexport class ADL extends Indicator {\n constructor(input) {\n super(input);\n var highs = input.high;\n var lows = input.low;\n var closes = input.close;\n var volumes = input.volume;\n if (!((lows.length === highs.length) && (highs.length === closes.length) && (highs.length === volumes.length))) {\n throw ('Inputs(low,high, close, volumes) not of equal size');\n }\n this.result = [];\n this.generator = (function* () {\n var result = 0;\n var tick;\n tick = yield;\n while (true) {\n let moneyFlowMultiplier = ((tick.close - tick.low) - (tick.high - tick.close)) / (tick.high - tick.low);\n moneyFlowMultiplier = isNaN(moneyFlowMultiplier) ? 1 : moneyFlowMultiplier;\n let moneyFlowVolume = moneyFlowMultiplier * tick.volume;\n result = result + moneyFlowVolume;\n tick = yield Math.round(result);\n }\n })();\n this.generator.next();\n highs.forEach((tickHigh, index) => {\n var tickInput = {\n high: tickHigh,\n low: lows[index],\n close: closes[index],\n volume: volumes[index]\n };\n var result = this.generator.next(tickInput);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\nADL.calculate = adl;\nexport function adl(input) {\n Indicator.reverseInputs(input);\n var result = new ADL(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\n/**\n * Created by AAravindan on 5/17/16.\n */\n\"use strict\";\nexport class OBVInput extends IndicatorInput {\n}\nexport class OBV extends Indicator {\n constructor(input) {\n super(input);\n var closes = input.close;\n var volumes = input.volume;\n this.result = [];\n this.generator = (function* () {\n var result = 0;\n var tick;\n var lastClose;\n tick = yield;\n if (tick.close && (typeof tick.close === 'number')) {\n lastClose = tick.close;\n tick = yield;\n }\n while (true) {\n if (lastClose < tick.close) {\n result = result + tick.volume;\n }\n else if (tick.close < lastClose) {\n result = result - tick.volume;\n }\n lastClose = tick.close;\n tick = yield result;\n }\n })();\n this.generator.next();\n closes.forEach((close, index) => {\n let tickInput = {\n close: closes[index],\n volume: volumes[index]\n };\n let result = this.generator.next(tickInput);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n nextValue(price) {\n return this.generator.next(price).value;\n }\n ;\n}\nOBV.calculate = obv;\nexport function obv(input) {\n Indicator.reverseInputs(input);\n var result = new OBV(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","/**\n * Created by AAravindan on 5/9/16.\n */\n\"use strict\";\nimport { ROC } from './ROC.js';\nimport { EMA } from '../moving_averages/EMA.js';\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class TRIXInput extends IndicatorInput {\n}\n;\nexport class TRIX extends Indicator {\n constructor(input) {\n super(input);\n let priceArray = input.values;\n let period = input.period;\n let format = this.format;\n let ema = new EMA({ period: period, values: [], format: (v) => { return v; } });\n let emaOfema = new EMA({ period: period, values: [], format: (v) => { return v; } });\n let emaOfemaOfema = new EMA({ period: period, values: [], format: (v) => { return v; } });\n let trixROC = new ROC({ period: 1, values: [], format: (v) => { return v; } });\n this.result = [];\n this.generator = (function* () {\n let tick = yield;\n while (true) {\n let initialema = ema.nextValue(tick);\n let smoothedResult = initialema ? emaOfema.nextValue(initialema) : undefined;\n let doubleSmoothedResult = smoothedResult ? emaOfemaOfema.nextValue(smoothedResult) : undefined;\n let result = doubleSmoothedResult ? trixROC.nextValue(doubleSmoothedResult) : undefined;\n tick = yield result ? format(result) : undefined;\n }\n })();\n this.generator.next();\n priceArray.forEach((tick) => {\n let result = this.generator.next(tick);\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n nextValue(price) {\n let nextResult = this.generator.next(price);\n if (nextResult.value !== undefined)\n return nextResult.value;\n }\n ;\n}\nTRIX.calculate = trix;\nexport function trix(input) {\n Indicator.reverseInputs(input);\n var result = new TRIX(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { EMA } from '../moving_averages/EMA';\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class ForceIndexInput extends IndicatorInput {\n constructor() {\n super(...arguments);\n this.period = 1;\n }\n}\n;\nexport class ForceIndex extends Indicator {\n constructor(input) {\n super(input);\n var closes = input.close;\n var volumes = input.volume;\n var period = input.period || 1;\n if (!((volumes.length === closes.length))) {\n throw ('Inputs(volume, close) not of equal size');\n }\n let emaForceIndex = new EMA({ values: [], period: period });\n this.result = [];\n this.generator = (function* () {\n var previousTick = yield;\n var tick = yield;\n let forceIndex;\n while (true) {\n forceIndex = (tick.close - previousTick.close) * tick.volume;\n previousTick = tick;\n tick = yield emaForceIndex.nextValue(forceIndex);\n }\n })();\n this.generator.next();\n volumes.forEach((tick, index) => {\n var result = this.generator.next({\n close: closes[index],\n volume: volumes[index]\n });\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n ;\n nextValue(price) {\n let result = this.generator.next(price).value;\n if (result != undefined) {\n return result;\n }\n }\n ;\n}\nForceIndex.calculate = forceindex;\nexport function forceindex(input) {\n Indicator.reverseInputs(input);\n var result = new ForceIndex(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { SMA } from '../moving_averages/SMA';\nimport LinkedList from '../Utils/FixedSizeLinkedList';\nexport class CCIInput extends IndicatorInput {\n}\n;\nexport class CCI extends Indicator {\n constructor(input) {\n super(input);\n var lows = input.low;\n var highs = input.high;\n var closes = input.close;\n var period = input.period;\n var format = this.format;\n let constant = .015;\n var currentTpSet = new LinkedList(period);\n ;\n var tpSMACalculator = new SMA({ period: period, values: [], format: (v) => { return v; } });\n if (!((lows.length === highs.length) && (highs.length === closes.length))) {\n throw ('Inputs(low,high, close) not of equal size');\n }\n this.result = [];\n this.generator = (function* () {\n var tick = yield;\n while (true) {\n let tp = (tick.high + tick.low + tick.close) / 3;\n currentTpSet.push(tp);\n let smaTp = tpSMACalculator.nextValue(tp);\n let meanDeviation = null;\n let cci;\n let sum = 0;\n if (smaTp != undefined) {\n //First, subtract the most recent 20-period average of the typical price from each period's typical price. \n //Second, take the absolute values of these numbers.\n //Third,sum the absolute values. \n for (let x of currentTpSet.iterator()) {\n sum = sum + (Math.abs(x - smaTp));\n }\n //Fourth, divide by the total number of periods (20). \n meanDeviation = sum / period;\n cci = (tp - smaTp) / (constant * meanDeviation);\n }\n tick = yield cci;\n }\n })();\n this.generator.next();\n lows.forEach((tick, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index],\n close: closes[index]\n });\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n ;\n nextValue(price) {\n let result = this.generator.next(price).value;\n if (result != undefined) {\n return result;\n }\n }\n ;\n}\nCCI.calculate = cci;\nexport function cci(input) {\n Indicator.reverseInputs(input);\n var result = new CCI(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { SMA } from '../moving_averages/SMA';\nexport class AwesomeOscillatorInput extends IndicatorInput {\n}\nexport class AwesomeOscillator extends Indicator {\n constructor(input) {\n super(input);\n var highs = input.high;\n var lows = input.low;\n var fastPeriod = input.fastPeriod;\n var slowPeriod = input.slowPeriod;\n var slowSMA = new SMA({ values: [], period: slowPeriod });\n var fastSMA = new SMA({ values: [], period: fastPeriod });\n this.result = [];\n this.generator = (function* () {\n var result;\n var tick;\n var medianPrice;\n var slowSmaValue;\n var fastSmaValue;\n tick = yield;\n while (true) {\n medianPrice = (tick.high + tick.low) / 2;\n slowSmaValue = slowSMA.nextValue(medianPrice);\n fastSmaValue = fastSMA.nextValue(medianPrice);\n if (slowSmaValue !== undefined && fastSmaValue !== undefined) {\n result = fastSmaValue - slowSmaValue;\n }\n tick = yield result;\n }\n })();\n this.generator.next();\n highs.forEach((tickHigh, index) => {\n var tickInput = {\n high: tickHigh,\n low: lows[index],\n };\n var result = this.generator.next(tickInput);\n if (result.value != undefined) {\n this.result.push(this.format(result.value));\n }\n });\n }\n ;\n nextValue(price) {\n var result = this.generator.next(price);\n if (result.value != undefined) {\n return this.format(result.value);\n }\n }\n ;\n}\nAwesomeOscillator.calculate = awesomeoscillator;\nexport function awesomeoscillator(input) {\n Indicator.reverseInputs(input);\n var result = new AwesomeOscillator(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class VWAPInput extends IndicatorInput {\n}\n;\nexport class VWAP extends Indicator {\n constructor(input) {\n super(input);\n var lows = input.low;\n var highs = input.high;\n var closes = input.close;\n var volumes = input.volume;\n var format = this.format;\n if (!((lows.length === highs.length) && (highs.length === closes.length))) {\n throw ('Inputs(low,high, close) not of equal size');\n }\n this.result = [];\n this.generator = (function* () {\n var tick = yield;\n let cumulativeTotal = 0;\n let cumulativeVolume = 0;\n while (true) {\n let typicalPrice = (tick.high + tick.low + tick.close) / 3;\n let total = tick.volume * typicalPrice;\n cumulativeTotal = cumulativeTotal + total;\n cumulativeVolume = cumulativeVolume + tick.volume;\n tick = yield cumulativeTotal / cumulativeVolume;\n ;\n }\n })();\n this.generator.next();\n lows.forEach((tick, index) => {\n var result = this.generator.next({\n high: highs[index],\n low: lows[index],\n close: closes[index],\n volume: volumes[index]\n });\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n ;\n nextValue(price) {\n let result = this.generator.next(price).value;\n if (result != undefined) {\n return result;\n }\n }\n ;\n}\nVWAP.calculate = vwap;\nexport function vwap(input) {\n Indicator.reverseInputs(input);\n var result = new VWAP(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import arrayWithoutHoles from \"@babel/runtime/helpers/esm/arrayWithoutHoles\";\nimport iterableToArray from \"@babel/runtime/helpers/esm/iterableToArray\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableSpread from \"@babel/runtime/helpers/esm/nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class VolumeProfileInput extends IndicatorInput {\n}\nexport class VolumeProfileOutput {\n}\nexport function priceFallsBetweenBarRange(low, high, low1, high1) {\n return (low <= low1 && high >= low1) || (low1 <= low && high1 >= low);\n}\nexport class VolumeProfile extends Indicator {\n constructor(input) {\n super(input);\n var highs = input.high;\n var lows = input.low;\n var closes = input.close;\n var opens = input.open;\n var volumes = input.volume;\n var bars = input.noOfBars;\n if (!((lows.length === highs.length) && (highs.length === closes.length) && (highs.length === volumes.length))) {\n throw ('Inputs(low,high, close, volumes) not of equal size');\n }\n this.result = [];\n var max = Math.max(...highs, ...lows, ...closes, ...opens);\n var min = Math.min(...highs, ...lows, ...closes, ...opens);\n var barRange = (max - min) / bars;\n var lastEnd = min;\n for (let i = 0; i < bars; i++) {\n let rangeStart = lastEnd;\n let rangeEnd = rangeStart + barRange;\n lastEnd = rangeEnd;\n let bullishVolume = 0;\n let bearishVolume = 0;\n let totalVolume = 0;\n for (let priceBar = 0; priceBar < highs.length; priceBar++) {\n let priceBarStart = lows[priceBar];\n let priceBarEnd = highs[priceBar];\n let priceBarOpen = opens[priceBar];\n let priceBarClose = closes[priceBar];\n let priceBarVolume = volumes[priceBar];\n if (priceFallsBetweenBarRange(rangeStart, rangeEnd, priceBarStart, priceBarEnd)) {\n totalVolume = totalVolume + priceBarVolume;\n if (priceBarOpen > priceBarClose) {\n bearishVolume = bearishVolume + priceBarVolume;\n }\n else {\n bullishVolume = bullishVolume + priceBarVolume;\n }\n }\n }\n this.result.push({\n rangeStart, rangeEnd, bullishVolume, bearishVolume, totalVolume\n });\n }\n }\n ;\n nextValue(price) {\n throw ('Next value not supported for volume profile');\n }\n ;\n}\nVolumeProfile.calculate = volumeprofile;\nexport function volumeprofile(input) {\n Indicator.reverseInputs(input);\n var result = new VolumeProfile(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","/**\n * Created by AAravindan on 5/4/16.\n */\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class TypicalPriceInput extends IndicatorInput {\n}\nexport class TypicalPrice extends Indicator {\n constructor(input) {\n super(input);\n this.result = [];\n this.generator = (function* () {\n let priceInput = yield;\n while (true) {\n priceInput = yield (priceInput.high + priceInput.low + priceInput.close) / 3;\n }\n })();\n this.generator.next();\n input.low.forEach((tick, index) => {\n var result = this.generator.next({\n high: input.high[index],\n low: input.low[index],\n close: input.close[index],\n });\n this.result.push(result.value);\n });\n }\n nextValue(price) {\n var result = this.generator.next(price).value;\n return result;\n }\n ;\n}\nTypicalPrice.calculate = typicalprice;\nexport function typicalprice(input) {\n Indicator.reverseInputs(input);\n var result = new TypicalPrice(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","/**\n * Created by AAravindan on 5/17/16.\n */\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { TypicalPrice } from '../chart_types/TypicalPrice';\nimport FixedSizeLinkedList from '../Utils/FixedSizeLinkedList';\nexport class MFIInput extends IndicatorInput {\n}\nexport class MFI extends Indicator {\n constructor(input) {\n super(input);\n var highs = input.high;\n var lows = input.low;\n var closes = input.close;\n var volumes = input.volume;\n var period = input.period;\n var typicalPrice = new TypicalPrice({ low: [], high: [], close: [] });\n var positiveFlow = new FixedSizeLinkedList(period, false, false, true);\n var negativeFlow = new FixedSizeLinkedList(period, false, false, true);\n if (!((lows.length === highs.length) && (highs.length === closes.length) && (highs.length === volumes.length))) {\n throw ('Inputs(low,high, close, volumes) not of equal size');\n }\n this.result = [];\n this.generator = (function* () {\n var result;\n var tick;\n var lastClose;\n var positiveFlowForPeriod;\n var rawMoneyFlow = 0;\n var moneyFlowRatio;\n var negativeFlowForPeriod;\n let typicalPriceValue = null;\n let prevousTypicalPrice = null;\n tick = yield;\n lastClose = tick.close; //Fist value \n tick = yield;\n while (true) {\n var { high, low, close, volume } = tick;\n var positionMoney = 0;\n var negativeMoney = 0;\n typicalPriceValue = typicalPrice.nextValue({ high, low, close });\n rawMoneyFlow = typicalPriceValue * volume;\n if ((typicalPriceValue != null) && (prevousTypicalPrice != null)) {\n typicalPriceValue > prevousTypicalPrice ? positionMoney = rawMoneyFlow : negativeMoney = rawMoneyFlow;\n positiveFlow.push(positionMoney);\n negativeFlow.push(negativeMoney);\n positiveFlowForPeriod = positiveFlow.periodSum;\n negativeFlowForPeriod = negativeFlow.periodSum;\n if ((positiveFlow.totalPushed >= period) && (positiveFlow.totalPushed >= period)) {\n moneyFlowRatio = positiveFlowForPeriod / negativeFlowForPeriod;\n result = 100 - 100 / (1 + moneyFlowRatio);\n }\n }\n prevousTypicalPrice = typicalPriceValue;\n tick = yield result;\n }\n })();\n this.generator.next();\n highs.forEach((tickHigh, index) => {\n var tickInput = {\n high: tickHigh,\n low: lows[index],\n close: closes[index],\n volume: volumes[index]\n };\n var result = this.generator.next(tickInput);\n if (result.value != undefined) {\n this.result.push(parseFloat(result.value.toFixed(2)));\n }\n });\n }\n ;\n nextValue(price) {\n var result = this.generator.next(price);\n if (result.value != undefined) {\n return (parseFloat(result.value.toFixed(2)));\n }\n }\n ;\n}\nMFI.calculate = mfi;\nexport function mfi(input) {\n Indicator.reverseInputs(input);\n var result = new MFI(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { IndicatorInput, Indicator } from '../indicator/indicator';\n/**\n * Created by AAravindan on 5/10/16.\n */\n\"use strict\";\nimport { SMA } from '../moving_averages/SMA';\nimport { RSI } from '../oscillators/RSI';\nimport { Stochastic } from '../momentum/Stochastic';\nexport class StochasticRsiInput extends IndicatorInput {\n}\n;\nexport class StochasticRSIOutput {\n}\n;\nexport class StochasticRSI extends Indicator {\n constructor(input) {\n super(input);\n let closes = input.values;\n let rsiPeriod = input.rsiPeriod;\n let stochasticPeriod = input.stochasticPeriod;\n let kPeriod = input.kPeriod;\n let dPeriod = input.dPeriod;\n let format = this.format;\n this.result = [];\n this.generator = (function* () {\n let index = 1;\n let rsi = new RSI({ period: rsiPeriod, values: [] });\n let stochastic = new Stochastic({ period: stochasticPeriod, high: [], low: [], close: [], signalPeriod: kPeriod });\n let dSma = new SMA({\n period: dPeriod,\n values: [],\n format: (v) => { return v; }\n });\n let lastRSI, stochasticRSI, d, result;\n var tick = yield;\n while (true) {\n lastRSI = rsi.nextValue(tick);\n if (lastRSI !== undefined) {\n var stochasticInput = { high: lastRSI, low: lastRSI, close: lastRSI };\n stochasticRSI = stochastic.nextValue(stochasticInput);\n if (stochasticRSI !== undefined && stochasticRSI.d !== undefined) {\n d = dSma.nextValue(stochasticRSI.d);\n if (d !== undefined)\n result = {\n stochRSI: stochasticRSI.k,\n k: stochasticRSI.d,\n d: d\n };\n }\n }\n tick = yield result;\n }\n })();\n this.generator.next();\n closes.forEach((tick, index) => {\n var result = this.generator.next(tick);\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(input) {\n let nextResult = this.generator.next(input);\n if (nextResult.value !== undefined)\n return nextResult.value;\n }\n ;\n}\nStochasticRSI.calculate = stochasticrsi;\nexport function stochasticrsi(input) {\n Indicator.reverseInputs(input);\n var result = new StochasticRSI(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport FixedSizedLinkedList from './FixedSizeLinkedList';\nexport class HighestInput extends IndicatorInput {\n}\nexport class Highest extends Indicator {\n constructor(input) {\n super(input);\n var values = input.values;\n var period = input.period;\n this.result = [];\n var periodList = new FixedSizedLinkedList(period, true, false, false);\n this.generator = (function* () {\n var result;\n var tick;\n var high;\n tick = yield;\n while (true) {\n periodList.push(tick);\n if (periodList.totalPushed >= period) {\n high = periodList.periodHigh;\n }\n tick = yield high;\n }\n })();\n this.generator.next();\n values.forEach((value, index) => {\n var result = this.generator.next(value);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n var result = this.generator.next(price);\n if (result.value != undefined) {\n return result.value;\n }\n }\n ;\n}\nHighest.calculate = highest;\nexport function highest(input) {\n Indicator.reverseInputs(input);\n var result = new Highest(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport FixedSizedLinkedList from './FixedSizeLinkedList';\nexport class LowestInput extends IndicatorInput {\n}\nexport class Lowest extends Indicator {\n constructor(input) {\n super(input);\n var values = input.values;\n var period = input.period;\n this.result = [];\n var periodList = new FixedSizedLinkedList(period, false, true, false);\n this.generator = (function* () {\n var result;\n var tick;\n var high;\n tick = yield;\n while (true) {\n periodList.push(tick);\n if (periodList.totalPushed >= period) {\n high = periodList.periodLow;\n }\n tick = yield high;\n }\n })();\n this.generator.next();\n values.forEach((value, index) => {\n var result = this.generator.next(value);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n var result = this.generator.next(price);\n if (result.value != undefined) {\n return result.value;\n }\n }\n ;\n}\nLowest.calculate = lowest;\nexport function lowest(input) {\n Indicator.reverseInputs(input);\n var result = new Lowest(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport FixedSizedLinkedList from './FixedSizeLinkedList';\nexport class SumInput extends IndicatorInput {\n}\nexport class Sum extends Indicator {\n constructor(input) {\n super(input);\n var values = input.values;\n var period = input.period;\n this.result = [];\n var periodList = new FixedSizedLinkedList(period, false, false, true);\n this.generator = (function* () {\n var result;\n var tick;\n var high;\n tick = yield;\n while (true) {\n periodList.push(tick);\n if (periodList.totalPushed >= period) {\n high = periodList.periodSum;\n }\n tick = yield high;\n }\n })();\n this.generator.next();\n values.forEach((value, index) => {\n var result = this.generator.next(value);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n var result = this.generator.next(price);\n if (result.value != undefined) {\n return result.value;\n }\n }\n ;\n}\nSum.calculate = sum;\nexport function sum(input) {\n Indicator.reverseInputs(input);\n var result = new Sum(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { CandleList } from '../StockData';\nimport { atr } from '../directionalmovement/ATR';\n/**\n * Created by AAravindan on 5/4/16.\n */\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class RenkoInput extends IndicatorInput {\n}\nclass Renko extends Indicator {\n constructor(input) {\n super(input);\n var format = this.format;\n let useATR = input.useATR;\n let brickSize = input.brickSize || 0;\n if (useATR) {\n let atrResult = atr(Object.assign({}, input));\n brickSize = atrResult[atrResult.length - 1];\n }\n this.result = new CandleList();\n ;\n if (brickSize === 0) {\n console.error('Not enough data to calculate brickSize for renko when using ATR');\n return;\n }\n let lastOpen = 0;\n let lastHigh = 0;\n let lastLow = Infinity;\n let lastClose = 0;\n let lastVolume = 0;\n let lastTimestamp = 0;\n this.generator = (function* () {\n let candleData = yield;\n while (true) {\n //Calculating first bar\n if (lastOpen === 0) {\n lastOpen = candleData.close;\n lastHigh = candleData.high;\n lastLow = candleData.low;\n lastClose = candleData.close;\n lastVolume = candleData.volume;\n lastTimestamp = candleData.timestamp;\n candleData = yield;\n continue;\n }\n let absoluteMovementFromClose = Math.abs(candleData.close - lastClose);\n let absoluteMovementFromOpen = Math.abs(candleData.close - lastOpen);\n if ((absoluteMovementFromClose >= brickSize) && (absoluteMovementFromOpen >= brickSize)) {\n let reference = absoluteMovementFromClose > absoluteMovementFromOpen ? lastOpen : lastClose;\n let calculated = {\n open: reference,\n high: lastHigh > candleData.high ? lastHigh : candleData.high,\n low: lastLow < candleData.Low ? lastLow : candleData.low,\n close: reference > candleData.close ? (reference - brickSize) : (reference + brickSize),\n volume: lastVolume + candleData.volume,\n timestamp: candleData.timestamp\n };\n lastOpen = calculated.open;\n lastHigh = calculated.close;\n lastLow = calculated.close;\n lastClose = calculated.close;\n lastVolume = 0;\n candleData = yield calculated;\n }\n else {\n lastHigh = lastHigh > candleData.high ? lastHigh : candleData.high;\n lastLow = lastLow < candleData.Low ? lastLow : candleData.low;\n lastVolume = lastVolume + candleData.volume;\n lastTimestamp = candleData.timestamp;\n candleData = yield;\n }\n }\n })();\n this.generator.next();\n input.low.forEach((tick, index) => {\n var result = this.generator.next({\n open: input.open[index],\n high: input.high[index],\n low: input.low[index],\n close: input.close[index],\n volume: input.volume[index],\n timestamp: input.timestamp[index]\n });\n if (result.value) {\n this.result.open.push(result.value.open);\n this.result.high.push(result.value.high);\n this.result.low.push(result.value.low);\n this.result.close.push(result.value.close);\n this.result.volume.push(result.value.volume);\n this.result.timestamp.push(result.value.timestamp);\n }\n });\n }\n nextValue(price) {\n console.error('Cannot calculate next value on Renko, Every value has to be recomputed for every change, use calcualte method');\n return null;\n }\n ;\n}\nRenko.calculate = renko;\nexport function renko(input) {\n Indicator.reverseInputs(input);\n var result = new Renko(input).result;\n if (input.reversedInput) {\n result.open.reverse();\n result.high.reverse();\n result.low.reverse();\n result.close.reverse();\n result.volume.reverse();\n result.timestamp.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { CandleList } from '../StockData';\n/**\n * Created by AAravindan on 5/4/16.\n */\nimport { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class HeikinAshiInput extends IndicatorInput {\n}\nexport class HeikinAshi extends Indicator {\n constructor(input) {\n super(input);\n var format = this.format;\n this.result = new CandleList();\n let lastOpen = null;\n let lastHigh = 0;\n let lastLow = Infinity;\n let lastClose = 0;\n let lastVolume = 0;\n let lastTimestamp = 0;\n this.generator = (function* () {\n let candleData = yield;\n let calculated = null;\n while (true) {\n if (lastOpen === null) {\n lastOpen = (candleData.close + candleData.open) / 2;\n lastHigh = candleData.high;\n lastLow = candleData.low;\n lastClose = (candleData.close + candleData.open + candleData.high + candleData.low) / 4;\n lastVolume = (candleData.volume || 0);\n lastTimestamp = (candleData.timestamp || 0);\n calculated = {\n open: lastOpen,\n high: lastHigh,\n low: lastLow,\n close: lastClose,\n volume: candleData.volume || 0,\n timestamp: (candleData.timestamp || 0)\n };\n }\n else {\n let newClose = (candleData.close + candleData.open + candleData.high + candleData.low) / 4;\n let newOpen = (lastOpen + lastClose) / 2;\n let newHigh = Math.max(newOpen, newClose, candleData.high);\n let newLow = Math.min(candleData.low, newOpen, newClose);\n calculated = {\n close: newClose,\n open: newOpen,\n high: newHigh,\n low: newLow,\n volume: (candleData.volume || 0),\n timestamp: (candleData.timestamp || 0)\n };\n lastClose = newClose;\n lastOpen = newOpen;\n lastHigh = newHigh;\n lastLow = newLow;\n }\n candleData = yield calculated;\n }\n })();\n this.generator.next();\n input.low.forEach((tick, index) => {\n var result = this.generator.next({\n open: input.open[index],\n high: input.high[index],\n low: input.low[index],\n close: input.close[index],\n volume: input.volume ? input.volume[index] : input.volume,\n timestamp: input.timestamp ? input.timestamp[index] : input.timestamp\n });\n if (result.value) {\n this.result.open.push(result.value.open);\n this.result.high.push(result.value.high);\n this.result.low.push(result.value.low);\n this.result.close.push(result.value.close);\n this.result.volume.push(result.value.volume);\n this.result.timestamp.push(result.value.timestamp);\n }\n });\n }\n nextValue(price) {\n var result = this.generator.next(price).value;\n return result;\n }\n ;\n}\nHeikinAshi.calculate = heikinashi;\nexport function heikinashi(input) {\n Indicator.reverseInputs(input);\n var result = new HeikinAshi(input).result;\n if (input.reversedInput) {\n result.open.reverse();\n result.high.reverse();\n result.low.reverse();\n result.close.reverse();\n result.volume.reverse();\n result.timestamp.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","export default class CandlestickFinder {\n constructor() {\n // if (new.target === Abstract) {\n // throw new TypeError(\"Abstract class\");\n // }\n }\n approximateEqual(a, b) {\n let left = parseFloat(Math.abs(a - b).toPrecision(4)) * 1;\n let right = parseFloat((a * 0.001).toPrecision(4)) * 1;\n return left <= right;\n }\n logic(data) {\n throw \"this has to be implemented\";\n }\n getAllPatternIndex(data) {\n if (data.close.length < this.requiredCount) {\n console.warn('Data count less than data required for the strategy ', this.name);\n return [];\n }\n if (data.reversedInput) {\n data.open.reverse();\n data.high.reverse();\n data.low.reverse();\n data.close.reverse();\n }\n let strategyFn = this.logic;\n return this._generateDataForCandleStick(data)\n .map((current, index) => {\n return strategyFn.call(this, current) ? index : undefined;\n }).filter((hasIndex) => {\n return hasIndex;\n });\n }\n hasPattern(data) {\n if (data.close.length < this.requiredCount) {\n console.warn('Data count less than data required for the strategy ', this.name);\n return false;\n }\n if (data.reversedInput) {\n data.open.reverse();\n data.high.reverse();\n data.low.reverse();\n data.close.reverse();\n }\n let strategyFn = this.logic;\n return strategyFn.call(this, this._getLastDataForCandleStick(data));\n }\n _getLastDataForCandleStick(data) {\n let requiredCount = this.requiredCount;\n if (data.close.length === requiredCount) {\n return data;\n }\n else {\n let returnVal = {\n open: [],\n high: [],\n low: [],\n close: []\n };\n let i = 0;\n let index = data.close.length - requiredCount;\n while (i < requiredCount) {\n returnVal.open.push(data.open[index + i]);\n returnVal.high.push(data.high[index + i]);\n returnVal.low.push(data.low[index + i]);\n returnVal.close.push(data.close[index + i]);\n i++;\n }\n return returnVal;\n }\n }\n _generateDataForCandleStick(data) {\n let requiredCount = this.requiredCount;\n let generatedData = data.close.map(function (currentData, index) {\n let i = 0;\n let returnVal = {\n open: [],\n high: [],\n low: [],\n close: []\n };\n while (i < requiredCount) {\n returnVal.open.push(data.open[index + i]);\n returnVal.high.push(data.high[index + i]);\n returnVal.low.push(data.low[index + i]);\n returnVal.close.push(data.close[index + i]);\n i++;\n }\n return returnVal;\n }).filter((val, index) => { return (index <= (data.close.length - requiredCount)); });\n return generatedData;\n }\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class MorningStar extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'MorningStar';\n this.requiredCount = 3;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let thirddaysOpen = data.open[2];\n let thirddaysClose = data.close[2];\n let thirddaysHigh = data.high[2];\n let thirddaysLow = data.low[2];\n let firstdaysMidpoint = ((firstdaysOpen + firstdaysClose) / 2);\n let isFirstBearish = firstdaysClose < firstdaysOpen;\n let isSmallBodyExists = ((firstdaysLow > seconddaysLow) &&\n (firstdaysLow > seconddaysHigh));\n let isThirdBullish = thirddaysOpen < thirddaysClose;\n let gapExists = ((seconddaysHigh < firstdaysLow) &&\n (seconddaysLow < firstdaysLow) &&\n (thirddaysOpen > seconddaysHigh) &&\n (seconddaysClose < thirddaysOpen));\n let doesCloseAboveFirstMidpoint = thirddaysClose > firstdaysMidpoint;\n return (isFirstBearish && isSmallBodyExists && gapExists && isThirdBullish && doesCloseAboveFirstMidpoint);\n }\n}\nexport function morningstar(data) {\n return new MorningStar().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BullishEngulfingPattern extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BullishEngulfingPattern';\n this.requiredCount = 2;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let isBullishEngulfing = ((firstdaysClose < firstdaysOpen) &&\n (firstdaysOpen > seconddaysOpen) &&\n (firstdaysClose > seconddaysOpen) &&\n (firstdaysOpen < seconddaysClose));\n return (isBullishEngulfing);\n }\n}\nexport function bullishengulfingpattern(data) {\n return new BullishEngulfingPattern().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BullishHarami extends CandlestickFinder {\n constructor() {\n super();\n this.requiredCount = 2;\n this.name = \"BullishHarami\";\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let isBullishHaramiPattern = ((firstdaysOpen > seconddaysOpen) &&\n (firstdaysClose < seconddaysOpen) &&\n (firstdaysClose < seconddaysClose) &&\n (firstdaysOpen > seconddaysLow) &&\n (firstdaysHigh > seconddaysHigh));\n return (isBullishHaramiPattern);\n }\n}\nexport function bullishharami(data) {\n return new BullishHarami().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BullishHaramiCross extends CandlestickFinder {\n constructor() {\n super();\n this.requiredCount = 2;\n this.name = 'BullishHaramiCross';\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let isBullishHaramiCrossPattern = ((firstdaysOpen > seconddaysOpen) &&\n (firstdaysClose < seconddaysOpen) &&\n (firstdaysClose < seconddaysClose) &&\n (firstdaysOpen > seconddaysLow) &&\n (firstdaysHigh > seconddaysHigh));\n let isSecondDayDoji = this.approximateEqual(seconddaysOpen, seconddaysClose);\n return (isBullishHaramiCrossPattern && isSecondDayDoji);\n }\n}\nexport function bullishharamicross(data) {\n return new BullishHaramiCross().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class Doji extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'Doji';\n this.requiredCount = 1;\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let isOpenEqualsClose = this.approximateEqual(daysOpen, daysClose);\n let isHighEqualsOpen = isOpenEqualsClose && this.approximateEqual(daysOpen, daysHigh);\n let isLowEqualsClose = isOpenEqualsClose && this.approximateEqual(daysClose, daysLow);\n return (isOpenEqualsClose && isHighEqualsOpen == isLowEqualsClose);\n }\n}\nexport function doji(data) {\n return new Doji().hasPattern(data);\n}\n","import Doji from './Doji';\nimport CandlestickFinder from './CandlestickFinder';\nexport default class MorningDojiStar extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'MorningDojiStar';\n this.requiredCount = 3;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let thirddaysOpen = data.open[2];\n let thirddaysClose = data.close[2];\n let thirddaysHigh = data.high[2];\n let thirddaysLow = data.low[2];\n let firstdaysMidpoint = ((firstdaysOpen + firstdaysClose) / 2);\n let isFirstBearish = firstdaysClose < firstdaysOpen;\n let dojiExists = new Doji().hasPattern({\n \"open\": [seconddaysOpen],\n \"close\": [seconddaysClose],\n \"high\": [seconddaysHigh],\n \"low\": [seconddaysLow]\n });\n let isThirdBullish = thirddaysOpen < thirddaysClose;\n let gapExists = ((seconddaysHigh < firstdaysLow) &&\n (seconddaysLow < firstdaysLow) &&\n (thirddaysOpen > seconddaysHigh) &&\n (seconddaysClose < thirddaysOpen));\n let doesCloseAboveFirstMidpoint = thirddaysClose > firstdaysMidpoint;\n return (isFirstBearish && dojiExists && isThirdBullish && gapExists &&\n doesCloseAboveFirstMidpoint);\n }\n}\nexport function morningdojistar(data) {\n return new MorningDojiStar().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class DownsideTasukiGap extends CandlestickFinder {\n constructor() {\n super();\n this.requiredCount = 3;\n this.name = 'DownsideTasukiGap';\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let thirddaysOpen = data.open[2];\n let thirddaysClose = data.close[2];\n let thirddaysHigh = data.high[2];\n let thirddaysLow = data.low[2];\n let isFirstBearish = firstdaysClose < firstdaysOpen;\n let isSecondBearish = seconddaysClose < seconddaysOpen;\n let isThirdBullish = thirddaysClose > thirddaysOpen;\n let isFirstGapExists = seconddaysHigh < firstdaysLow;\n let isDownsideTasukiGap = ((seconddaysOpen > thirddaysOpen) &&\n (seconddaysClose < thirddaysOpen) &&\n (thirddaysClose > seconddaysOpen) &&\n (thirddaysClose < firstdaysClose));\n return (isFirstBearish && isSecondBearish && isThirdBullish && isFirstGapExists && isDownsideTasukiGap);\n }\n}\nexport function downsidetasukigap(data) {\n return new DownsideTasukiGap().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BullishMarubozu extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BullishMarubozu';\n this.requiredCount = 1;\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let isBullishMarbozu = this.approximateEqual(daysClose, daysHigh) &&\n this.approximateEqual(daysLow, daysOpen) &&\n daysOpen < daysClose &&\n daysOpen < daysHigh;\n return (isBullishMarbozu);\n }\n}\nexport function bullishmarubozu(data) {\n return new BullishMarubozu().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class PiercingLine extends CandlestickFinder {\n constructor() {\n super();\n this.requiredCount = 2;\n this.name = 'PiercingLine';\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let firstdaysMidpoint = ((firstdaysOpen + firstdaysClose) / 2);\n let isDowntrend = seconddaysLow < firstdaysLow;\n let isFirstBearish = firstdaysClose < firstdaysOpen;\n let isSecondBullish = seconddaysClose > seconddaysOpen;\n let isPiercingLinePattern = ((firstdaysLow > seconddaysOpen) &&\n (seconddaysClose > firstdaysMidpoint));\n return (isDowntrend && isFirstBearish && isPiercingLinePattern && isSecondBullish);\n }\n}\nexport function piercingline(data) {\n return new PiercingLine().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class ThreeWhiteSoldiers extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'ThreeWhiteSoldiers';\n this.requiredCount = 3;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let thirddaysOpen = data.open[2];\n let thirddaysClose = data.close[2];\n let thirddaysHigh = data.high[2];\n let thirddaysLow = data.low[2];\n let isUpTrend = seconddaysHigh > firstdaysHigh &&\n thirddaysHigh > seconddaysHigh;\n let isAllBullish = firstdaysOpen < firstdaysClose &&\n seconddaysOpen < seconddaysClose &&\n thirddaysOpen < thirddaysClose;\n let doesOpenWithinPreviousBody = firstdaysClose > seconddaysOpen &&\n seconddaysOpen < firstdaysHigh &&\n seconddaysHigh > thirddaysOpen &&\n thirddaysOpen < seconddaysClose;\n return (isUpTrend && isAllBullish && doesOpenWithinPreviousBody);\n }\n}\nexport function threewhitesoldiers(data) {\n return new ThreeWhiteSoldiers().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BullishHammerStick extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BullishHammerStick';\n this.requiredCount = 1;\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let isBullishHammer = daysClose > daysOpen;\n isBullishHammer = isBullishHammer && this.approximateEqual(daysClose, daysHigh);\n isBullishHammer = isBullishHammer && (daysClose - daysOpen) <= 2 * (daysOpen - daysLow);\n return isBullishHammer;\n }\n}\nexport function bullishhammerstick(data) {\n return new BullishHammerStick().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BullishInvertedHammerStick extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BullishInvertedHammerStick';\n this.requiredCount = 1;\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let isBullishInvertedHammer = daysClose > daysOpen;\n isBullishInvertedHammer = isBullishInvertedHammer && this.approximateEqual(daysOpen, daysLow);\n isBullishInvertedHammer = isBullishInvertedHammer && (daysClose - daysOpen) <= 2 * (daysHigh - daysClose);\n return isBullishInvertedHammer;\n }\n}\nexport function bullishinvertedhammerstick(data) {\n return new BullishInvertedHammerStick().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BearishHammerStick extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BearishHammerStick';\n this.requiredCount = 1;\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let isBearishHammer = daysOpen > daysClose;\n isBearishHammer = isBearishHammer && this.approximateEqual(daysOpen, daysHigh);\n isBearishHammer = isBearishHammer && (daysOpen - daysClose) <= 2 * (daysClose - daysLow);\n return isBearishHammer;\n }\n}\nexport function bearishhammerstick(data) {\n return new BearishHammerStick().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BearishInvertedHammerStick extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BearishInvertedHammerStick';\n this.requiredCount = 1;\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let isBearishInvertedHammer = daysOpen > daysClose;\n isBearishInvertedHammer = isBearishInvertedHammer && this.approximateEqual(daysClose, daysLow);\n isBearishInvertedHammer = isBearishInvertedHammer && (daysOpen - daysClose) <= 2 * (daysHigh - daysOpen);\n return isBearishInvertedHammer;\n }\n}\nexport function bearishinvertedhammerstick(data) {\n return new BearishInvertedHammerStick().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nimport { averageloss } from '../Utils/AverageLoss';\nimport { averagegain } from '../Utils/AverageGain';\nimport { bearishhammerstick } from './BearishHammerStick';\nimport { bearishinvertedhammerstick } from './BearishInvertedHammerStick';\nimport { bullishhammerstick } from './BullishHammerStick';\nimport { bullishinvertedhammerstick } from './BullishInvertedHammerStick';\nexport default class HammerPattern extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'HammerPattern';\n this.requiredCount = 5;\n }\n logic(data) {\n let isPattern = this.downwardTrend(data);\n isPattern = isPattern && this.includesHammer(data);\n isPattern = isPattern && this.hasConfirmation(data);\n return isPattern;\n }\n downwardTrend(data, confirm = true) {\n let end = confirm ? 3 : 4;\n // Analyze trends in closing prices of the first three or four candlesticks\n let gains = averagegain({ values: data.close.slice(0, end), period: end - 1 });\n let losses = averageloss({ values: data.close.slice(0, end), period: end - 1 });\n // Downward trend, so more losses than gains\n return losses > gains;\n }\n includesHammer(data, confirm = true) {\n let start = confirm ? 3 : 4;\n let end = confirm ? 4 : undefined;\n let possibleHammerData = {\n open: data.open.slice(start, end),\n close: data.close.slice(start, end),\n low: data.low.slice(start, end),\n high: data.high.slice(start, end),\n };\n let isPattern = bearishhammerstick(possibleHammerData);\n isPattern = isPattern || bearishinvertedhammerstick(possibleHammerData);\n isPattern = isPattern || bullishhammerstick(possibleHammerData);\n isPattern = isPattern || bullishinvertedhammerstick(possibleHammerData);\n return isPattern;\n }\n hasConfirmation(data) {\n let possibleHammer = {\n open: data.open[3],\n close: data.close[3],\n low: data.low[3],\n high: data.high[3],\n };\n let possibleConfirmation = {\n open: data.open[4],\n close: data.close[4],\n low: data.low[4],\n high: data.high[4],\n };\n // Confirmation candlestick is bullish\n let isPattern = possibleConfirmation.open < possibleConfirmation.close;\n return isPattern && possibleHammer.close < possibleConfirmation.close;\n }\n}\nexport function hammerpattern(data) {\n return new HammerPattern().hasPattern(data);\n}\n","import HammerPattern from './HammerPattern';\nexport default class HammerPatternUnconfirmed extends HammerPattern {\n constructor() {\n super();\n this.name = 'HammerPatternUnconfirmed';\n }\n logic(data) {\n let isPattern = this.downwardTrend(data, false);\n isPattern = isPattern && this.includesHammer(data, false);\n return isPattern;\n }\n}\nexport function hammerpatternunconfirmed(data) {\n return new HammerPatternUnconfirmed().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nimport { averageloss } from '../Utils/AverageLoss';\nimport { averagegain } from '../Utils/AverageGain';\nexport default class TweezerBottom extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'TweezerBottom';\n this.requiredCount = 5;\n }\n logic(data) {\n return this.downwardTrend(data) && data.low[3] == data.low[4];\n }\n downwardTrend(data) {\n // Analyze trends in closing prices of the first three or four candlesticks\n let gains = averagegain({ values: data.close.slice(0, 3), period: 2 });\n let losses = averageloss({ values: data.close.slice(0, 3), period: 2 });\n // Downward trend, so more losses than gains\n return losses > gains;\n }\n}\nexport function tweezerbottom(data) {\n return new TweezerBottom().hasPattern(data);\n}\n","import MorningStar from './MorningStar';\nimport BullishEngulfingPattern from './BullishEngulfingPattern';\nimport BullishHarami from './BullishHarami';\nimport BullishHaramiCross from './BullishHaramiCross';\nimport MorningDojiStar from './MorningDojiStar';\nimport DownsideTasukiGap from './DownsideTasukiGap';\nimport BullishMarubozu from './BullishMarubozu';\nimport PiercingLine from './PiercingLine';\nimport ThreeWhiteSoldiers from './ThreeWhiteSoldiers';\nimport BullishHammerStick from './BullishHammerStick';\nimport BullishInvertedHammerStick from './BullishInvertedHammerStick';\nimport HammerPattern from './HammerPattern';\nimport HammerPatternUnconfirmed from './HammerPatternUnconfirmed';\nimport CandlestickFinder from './CandlestickFinder';\nimport TweezerBottom from './TweezerBottom';\nlet bullishPatterns = [\n new BullishEngulfingPattern(),\n new DownsideTasukiGap(),\n new BullishHarami(),\n new BullishHaramiCross(),\n new MorningDojiStar(),\n new MorningStar(),\n new BullishMarubozu(),\n new PiercingLine(),\n new ThreeWhiteSoldiers(),\n new BullishHammerStick(),\n new BullishInvertedHammerStick(),\n new HammerPattern(),\n new HammerPatternUnconfirmed(),\n new TweezerBottom()\n];\nexport default class BullishPatterns extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'Bullish Candlesticks';\n }\n hasPattern(data) {\n return bullishPatterns.reduce(function (state, pattern) {\n let result = pattern.hasPattern(data);\n return state || result;\n }, false);\n }\n}\nexport function bullish(data) {\n return new BullishPatterns().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BearishEngulfingPattern extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BearishEngulfingPattern';\n this.requiredCount = 2;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let isBearishEngulfing = ((firstdaysClose > firstdaysOpen) &&\n (firstdaysOpen < seconddaysOpen) &&\n (firstdaysClose < seconddaysOpen) &&\n (firstdaysOpen > seconddaysClose));\n return (isBearishEngulfing);\n }\n}\nexport function bearishengulfingpattern(data) {\n return new BearishEngulfingPattern().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BearishHarami extends CandlestickFinder {\n constructor() {\n super();\n this.requiredCount = 2;\n this.name = 'BearishHarami';\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let isBearishHaramiPattern = ((firstdaysOpen < seconddaysOpen) &&\n (firstdaysClose > seconddaysOpen) &&\n (firstdaysClose > seconddaysClose) &&\n (firstdaysOpen < seconddaysLow) &&\n (firstdaysHigh > seconddaysHigh));\n return (isBearishHaramiPattern);\n }\n}\nexport function bearishharami(data) {\n return new BearishHarami().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BearishHaramiCross extends CandlestickFinder {\n constructor() {\n super();\n this.requiredCount = 2;\n this.name = 'BearishHaramiCross';\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let isBearishHaramiCrossPattern = ((firstdaysOpen < seconddaysOpen) &&\n (firstdaysClose > seconddaysOpen) &&\n (firstdaysClose > seconddaysClose) &&\n (firstdaysOpen < seconddaysLow) &&\n (firstdaysHigh > seconddaysHigh));\n let isSecondDayDoji = this.approximateEqual(seconddaysOpen, seconddaysClose);\n return (isBearishHaramiCrossPattern && isSecondDayDoji);\n }\n}\nexport function bearishharamicross(data) {\n return new BearishHaramiCross().hasPattern(data);\n}\n","import Doji from './Doji';\nimport CandlestickFinder from './CandlestickFinder';\nexport default class EveningDojiStar extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'EveningDojiStar';\n this.requiredCount = 3;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let thirddaysOpen = data.open[2];\n let thirddaysClose = data.close[2];\n let thirddaysHigh = data.high[2];\n let thirddaysLow = data.low[2];\n let firstdaysMidpoint = ((firstdaysOpen + firstdaysClose) / 2);\n let isFirstBullish = firstdaysClose > firstdaysOpen;\n let dojiExists = new Doji().hasPattern({\n \"open\": [seconddaysOpen],\n \"close\": [seconddaysClose],\n \"high\": [seconddaysHigh],\n \"low\": [seconddaysLow]\n });\n let isThirdBearish = thirddaysOpen > thirddaysClose;\n let gapExists = ((seconddaysHigh > firstdaysHigh) &&\n (seconddaysLow > firstdaysHigh) &&\n (thirddaysOpen < seconddaysLow) &&\n (seconddaysClose > thirddaysOpen));\n let doesCloseBelowFirstMidpoint = thirddaysClose < firstdaysMidpoint;\n return (isFirstBullish && dojiExists && gapExists && isThirdBearish && doesCloseBelowFirstMidpoint);\n }\n}\nexport function eveningdojistar(data) {\n return new EveningDojiStar().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class EveningStar extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'EveningStar';\n this.requiredCount = 3;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let thirddaysOpen = data.open[2];\n let thirddaysClose = data.close[2];\n let thirddaysHigh = data.high[2];\n let thirddaysLow = data.low[2];\n let firstdaysMidpoint = ((firstdaysOpen + firstdaysClose) / 2);\n let isFirstBullish = firstdaysClose > firstdaysOpen;\n let isSmallBodyExists = ((firstdaysHigh < seconddaysLow) &&\n (firstdaysHigh < seconddaysHigh));\n let isThirdBearish = thirddaysOpen > thirddaysClose;\n let gapExists = ((seconddaysHigh > firstdaysHigh) &&\n (seconddaysLow > firstdaysHigh) &&\n (thirddaysOpen < seconddaysLow) &&\n (seconddaysClose > thirddaysOpen));\n let doesCloseBelowFirstMidpoint = thirddaysClose < firstdaysMidpoint;\n return (isFirstBullish && isSmallBodyExists && gapExists && isThirdBearish && doesCloseBelowFirstMidpoint);\n }\n}\nexport function eveningstar(data) {\n return new EveningStar().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BearishMarubozu extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BearishMarubozu';\n this.requiredCount = 1;\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let isBearishMarbozu = this.approximateEqual(daysOpen, daysHigh) &&\n this.approximateEqual(daysLow, daysClose) &&\n daysOpen > daysClose &&\n daysOpen > daysLow;\n return (isBearishMarbozu);\n }\n}\nexport function bearishmarubozu(data) {\n return new BearishMarubozu().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class ThreeBlackCrows extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'ThreeBlackCrows';\n this.requiredCount = 3;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let thirddaysOpen = data.open[2];\n let thirddaysClose = data.close[2];\n let thirddaysHigh = data.high[2];\n let thirddaysLow = data.low[2];\n let isDownTrend = firstdaysLow > seconddaysLow &&\n seconddaysLow > thirddaysLow;\n let isAllBearish = firstdaysOpen > firstdaysClose &&\n seconddaysOpen > seconddaysClose &&\n thirddaysOpen > thirddaysClose;\n let doesOpenWithinPreviousBody = firstdaysOpen > seconddaysOpen &&\n seconddaysOpen > firstdaysClose &&\n seconddaysOpen > thirddaysOpen &&\n thirddaysOpen > seconddaysClose;\n return (isDownTrend && isAllBearish && doesOpenWithinPreviousBody);\n }\n}\nexport function threeblackcrows(data) {\n return new ThreeBlackCrows().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nimport { averageloss } from '../Utils/AverageLoss';\nimport { averagegain } from '../Utils/AverageGain';\nimport { bearishhammerstick } from './BearishHammerStick';\nimport { bullishhammerstick } from './BullishHammerStick';\nexport default class HangingMan extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'HangingMan';\n this.requiredCount = 5;\n }\n logic(data) {\n let isPattern = this.upwardTrend(data);\n isPattern = isPattern && this.includesHammer(data);\n isPattern = isPattern && this.hasConfirmation(data);\n return isPattern;\n }\n upwardTrend(data, confirm = true) {\n let end = confirm ? 3 : 4;\n // Analyze trends in closing prices of the first three or four candlesticks\n let gains = averagegain({ values: data.close.slice(0, end), period: end - 1 });\n let losses = averageloss({ values: data.close.slice(0, end), period: end - 1 });\n // Upward trend, so more gains than losses\n return gains > losses;\n }\n includesHammer(data, confirm = true) {\n let start = confirm ? 3 : 4;\n let end = confirm ? 4 : undefined;\n let possibleHammerData = {\n open: data.open.slice(start, end),\n close: data.close.slice(start, end),\n low: data.low.slice(start, end),\n high: data.high.slice(start, end),\n };\n let isPattern = bearishhammerstick(possibleHammerData);\n isPattern = isPattern || bullishhammerstick(possibleHammerData);\n return isPattern;\n }\n hasConfirmation(data) {\n let possibleHammer = {\n open: data.open[3],\n close: data.close[3],\n low: data.low[3],\n high: data.high[3],\n };\n let possibleConfirmation = {\n open: data.open[4],\n close: data.close[4],\n low: data.low[4],\n high: data.high[4],\n };\n // Confirmation candlestick is bearish\n let isPattern = possibleConfirmation.open > possibleConfirmation.close;\n return isPattern && possibleHammer.close > possibleConfirmation.close;\n }\n}\nexport function hangingman(data) {\n return new HangingMan().hasPattern(data);\n}\n","import HangingMan from './HangingMan';\nexport default class HangingManUnconfirmed extends HangingMan {\n constructor() {\n super();\n this.name = 'HangingManUnconfirmed';\n }\n logic(data) {\n let isPattern = this.upwardTrend(data, false);\n isPattern = isPattern && this.includesHammer(data, false);\n return isPattern;\n }\n}\nexport function hangingmanunconfirmed(data) {\n return new HangingManUnconfirmed().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nimport { averageloss } from '../Utils/AverageLoss';\nimport { averagegain } from '../Utils/AverageGain';\nimport { bearishinvertedhammerstick } from './BearishInvertedHammerStick';\nimport { bullishinvertedhammerstick } from './BullishInvertedHammerStick';\nexport default class ShootingStar extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'ShootingStar';\n this.requiredCount = 5;\n }\n logic(data) {\n let isPattern = this.upwardTrend(data);\n isPattern = isPattern && this.includesHammer(data);\n isPattern = isPattern && this.hasConfirmation(data);\n return isPattern;\n }\n upwardTrend(data, confirm = true) {\n let end = confirm ? 3 : 4;\n // Analyze trends in closing prices of the first three or four candlesticks\n let gains = averagegain({ values: data.close.slice(0, end), period: end - 1 });\n let losses = averageloss({ values: data.close.slice(0, end), period: end - 1 });\n // Upward trend, so more gains than losses\n return gains > losses;\n }\n includesHammer(data, confirm = true) {\n let start = confirm ? 3 : 4;\n let end = confirm ? 4 : undefined;\n let possibleHammerData = {\n open: data.open.slice(start, end),\n close: data.close.slice(start, end),\n low: data.low.slice(start, end),\n high: data.high.slice(start, end),\n };\n let isPattern = bearishinvertedhammerstick(possibleHammerData);\n isPattern = isPattern || bullishinvertedhammerstick(possibleHammerData);\n return isPattern;\n }\n hasConfirmation(data) {\n let possibleHammer = {\n open: data.open[3],\n close: data.close[3],\n low: data.low[3],\n high: data.high[3],\n };\n let possibleConfirmation = {\n open: data.open[4],\n close: data.close[4],\n low: data.low[4],\n high: data.high[4],\n };\n // Confirmation candlestick is bearish\n let isPattern = possibleConfirmation.open > possibleConfirmation.close;\n return isPattern && possibleHammer.close > possibleConfirmation.close;\n }\n}\nexport function shootingstar(data) {\n return new ShootingStar().hasPattern(data);\n}\n","import ShootingStar from './ShootingStar';\nexport default class ShootingStarUnconfirmed extends ShootingStar {\n constructor() {\n super();\n this.name = 'ShootingStarUnconfirmed';\n }\n logic(data) {\n let isPattern = this.upwardTrend(data, false);\n isPattern = isPattern && this.includesHammer(data, false);\n return isPattern;\n }\n}\nexport function shootingstarunconfirmed(data) {\n return new ShootingStarUnconfirmed().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nimport { averageloss } from '../Utils/AverageLoss';\nimport { averagegain } from '../Utils/AverageGain';\nexport default class TweezerTop extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'TweezerTop';\n this.requiredCount = 5;\n }\n logic(data) {\n return this.upwardTrend(data) && data.high[3] == data.high[4];\n }\n upwardTrend(data) {\n // Analyze trends in closing prices of the first three or four candlesticks\n let gains = averagegain({ values: data.close.slice(0, 3), period: 2 });\n let losses = averageloss({ values: data.close.slice(0, 3), period: 2 });\n // Upward trend, so more gains than losses\n return gains > losses;\n }\n}\nexport function tweezertop(data) {\n return new TweezerTop().hasPattern(data);\n}\n","import BearishEngulfingPattern from './BearishEngulfingPattern';\nimport BearishHarami from './BearishHarami';\nimport BearishHaramiCross from './BearishHaramiCross';\nimport EveningDojiStar from './EveningDojiStar';\nimport EveningStar from './EveningStar';\nimport BearishMarubozu from './BearishMarubozu';\nimport ThreeBlackCrows from './ThreeBlackCrows';\nimport BearishHammerStick from './BearishHammerStick';\nimport BearishInvertedHammerStick from './BearishInvertedHammerStick';\nimport HangingMan from './HangingMan';\nimport HangingManUnconfirmed from './HangingManUnconfirmed';\nimport ShootingStar from './ShootingStar';\nimport ShootingStarUnconfirmed from './ShootingStarUnconfirmed';\nimport TweezerTop from './TweezerTop';\nimport CandlestickFinder from './CandlestickFinder';\nlet bearishPatterns = [\n new BearishEngulfingPattern(),\n new BearishHarami(),\n new BearishHaramiCross(),\n new EveningDojiStar(),\n new EveningStar(),\n new BearishMarubozu(),\n new ThreeBlackCrows(),\n new BearishHammerStick(),\n new BearishInvertedHammerStick(),\n new HangingMan(),\n new HangingManUnconfirmed(),\n new ShootingStar(),\n new ShootingStarUnconfirmed(),\n new TweezerTop()\n];\nexport default class BearishPatterns extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'Bearish Candlesticks';\n }\n hasPattern(data) {\n return bearishPatterns.reduce(function (state, pattern) {\n return state || pattern.hasPattern(data);\n }, false);\n }\n}\nexport function bearish(data) {\n return new BearishPatterns().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nimport Doji from './Doji';\nexport default class AbandonedBaby extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'AbandonedBaby';\n this.requiredCount = 3;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let thirddaysOpen = data.open[2];\n let thirddaysClose = data.close[2];\n let thirddaysHigh = data.high[2];\n let thirddaysLow = data.low[2];\n let isFirstBearish = firstdaysClose < firstdaysOpen;\n let dojiExists = new Doji().hasPattern({\n \"open\": [seconddaysOpen],\n \"close\": [seconddaysClose],\n \"high\": [seconddaysHigh],\n \"low\": [seconddaysLow]\n });\n let gapExists = ((seconddaysHigh < firstdaysLow) &&\n (thirddaysLow > seconddaysHigh) &&\n (thirddaysClose > thirddaysOpen));\n let isThirdBullish = (thirddaysHigh < firstdaysOpen);\n return (isFirstBearish && dojiExists && gapExists && isThirdBullish);\n }\n}\nexport function abandonedbaby(data) {\n return new AbandonedBaby().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class DarkCloudCover extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'DarkCloudCover';\n this.requiredCount = 2;\n }\n logic(data) {\n let firstdaysOpen = data.open[0];\n let firstdaysClose = data.close[0];\n let firstdaysHigh = data.high[0];\n let firstdaysLow = data.low[0];\n let seconddaysOpen = data.open[1];\n let seconddaysClose = data.close[1];\n let seconddaysHigh = data.high[1];\n let seconddaysLow = data.low[1];\n let firstdayMidpoint = ((firstdaysClose + firstdaysOpen) / 2);\n let isFirstBullish = firstdaysClose > firstdaysOpen;\n let isSecondBearish = seconddaysClose < seconddaysOpen;\n let isDarkCloudPattern = ((seconddaysOpen > firstdaysHigh) &&\n (seconddaysClose < firstdayMidpoint) &&\n (seconddaysClose > firstdaysOpen));\n return (isFirstBullish && isSecondBearish && isDarkCloudPattern);\n }\n}\nexport function darkcloudcover(data) {\n return new DarkCloudCover().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class DragonFlyDoji extends CandlestickFinder {\n constructor() {\n super();\n this.requiredCount = 1;\n this.name = 'DragonFlyDoji';\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let isOpenEqualsClose = this.approximateEqual(daysOpen, daysClose);\n let isHighEqualsOpen = isOpenEqualsClose && this.approximateEqual(daysOpen, daysHigh);\n let isLowEqualsClose = isOpenEqualsClose && this.approximateEqual(daysClose, daysLow);\n return (isOpenEqualsClose && isHighEqualsOpen && !isLowEqualsClose);\n }\n}\nexport function dragonflydoji(data) {\n return new DragonFlyDoji().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class GraveStoneDoji extends CandlestickFinder {\n constructor() {\n super();\n this.requiredCount = 1;\n this.name = 'GraveStoneDoji';\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let isOpenEqualsClose = this.approximateEqual(daysOpen, daysClose);\n let isHighEqualsOpen = isOpenEqualsClose && this.approximateEqual(daysOpen, daysHigh);\n let isLowEqualsClose = isOpenEqualsClose && this.approximateEqual(daysClose, daysLow);\n return (isOpenEqualsClose && isLowEqualsClose && !isHighEqualsOpen);\n }\n}\nexport function gravestonedoji(data) {\n return new GraveStoneDoji().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BullishSpinningTop extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BullishSpinningTop';\n this.requiredCount = 1;\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let bodyLength = Math.abs(daysClose - daysOpen);\n let upperShadowLength = Math.abs(daysHigh - daysClose);\n let lowerShadowLength = Math.abs(daysOpen - daysLow);\n let isBullishSpinningTop = bodyLength < upperShadowLength &&\n bodyLength < lowerShadowLength;\n return isBullishSpinningTop;\n }\n}\nexport function bullishspinningtop(data) {\n return new BullishSpinningTop().hasPattern(data);\n}\n","import CandlestickFinder from './CandlestickFinder';\nexport default class BearishSpinningTop extends CandlestickFinder {\n constructor() {\n super();\n this.name = 'BearishSpinningTop';\n this.requiredCount = 1;\n }\n logic(data) {\n let daysOpen = data.open[0];\n let daysClose = data.close[0];\n let daysHigh = data.high[0];\n let daysLow = data.low[0];\n let bodyLength = Math.abs(daysClose - daysOpen);\n let upperShadowLength = Math.abs(daysHigh - daysOpen);\n let lowerShadowLength = Math.abs(daysHigh - daysLow);\n let isBearishSpinningTop = bodyLength < upperShadowLength &&\n bodyLength < lowerShadowLength;\n return isBearishSpinningTop;\n }\n}\nexport function bearishspinningtop(data) {\n return new BearishSpinningTop().hasPattern(data);\n}\n","/**\n * Calcaultes the fibonacci retracements for given start and end points\n *\n * If calculating for up trend start should be low and end should be high and vice versa\n *\n * returns an array of retracements level containing [0 , 23.6, 38.2, 50, 61.8, 78.6, 100, 127.2, 161.8, 261.8, 423.6]\n *\n * @export\n * @param {number} start\n * @param {number} end\n * @returns {number[]}\n */\nexport function fibonacciretracement(start, end) {\n let levels = [0, 23.6, 38.2, 50, 61.8, 78.6, 100, 127.2, 161.8, 261.8, 423.6];\n let retracements;\n if (start < end) {\n retracements = levels.map(function (level) {\n let calculated = end - Math.abs(start - end) * (level) / 100;\n return calculated > 0 ? calculated : 0;\n });\n }\n else {\n retracements = levels.map(function (level) {\n let calculated = end + Math.abs(start - end) * (level) / 100;\n return calculated > 0 ? calculated : 0;\n });\n }\n return retracements;\n}\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport LinkedList from '../Utils/FixedSizeLinkedList';\nexport class IchimokuCloudInput extends IndicatorInput {\n constructor() {\n super(...arguments);\n this.conversionPeriod = 9;\n this.basePeriod = 26;\n this.spanPeriod = 52;\n this.displacement = 26;\n }\n}\nexport class IchimokuCloudOutput {\n}\nexport class IchimokuCloud extends Indicator {\n constructor(input) {\n super(input);\n this.result = [];\n var defaults = {\n conversionPeriod: 9,\n basePeriod: 26,\n spanPeriod: 52,\n displacement: 26\n };\n var params = Object.assign({}, defaults, input);\n var currentConversionData = new LinkedList(params.conversionPeriod * 2, true, true, false);\n var currentBaseData = new LinkedList(params.basePeriod * 2, true, true, false);\n var currenSpanData = new LinkedList(params.spanPeriod * 2, true, true, false);\n this.generator = (function* () {\n let result;\n let tick;\n let period = Math.max(params.conversionPeriod, params.basePeriod, params.spanPeriod, params.displacement);\n let periodCounter = 1;\n tick = yield;\n while (true) {\n // Keep a list of lows/highs for the max period\n currentConversionData.push(tick.high);\n currentConversionData.push(tick.low);\n currentBaseData.push(tick.high);\n currentBaseData.push(tick.low);\n currenSpanData.push(tick.high);\n currenSpanData.push(tick.low);\n if (periodCounter < period) {\n periodCounter++;\n }\n else {\n // Tenkan-sen (ConversionLine): (9-period high + 9-period low)/2))\n let conversionLine = (currentConversionData.periodHigh + currentConversionData.periodLow) / 2;\n // Kijun-sen (Base Line): (26-period high + 26-period low)/2))\n let baseLine = (currentBaseData.periodHigh + currentBaseData.periodLow) / 2;\n // Senkou Span A (Leading Span A): (Conversion Line + Base Line)/2))\n let spanA = (conversionLine + baseLine) / 2;\n // Senkou Span B (Leading Span B): (52-period high + 52-period low)/2))\n let spanB = (currenSpanData.periodHigh + currenSpanData.periodLow) / 2;\n // Senkou Span A / Senkou Span B offset by 26 periods\n // if(spanCounter < params.displacement) {\n // \tspanCounter++\n // } else {\n // \tspanA = spanAs.shift()\n // \tspanB = spanBs.shift()\n // }\n result = {\n conversion: conversionLine,\n base: baseLine,\n spanA: spanA,\n spanB: spanB\n };\n }\n tick = yield result;\n }\n })();\n this.generator.next();\n input.low.forEach((tick, index) => {\n var result = this.generator.next({\n high: input.high[index],\n low: input.low[index],\n });\n if (result.value) {\n this.result.push(result.value);\n }\n });\n }\n nextValue(price) {\n return this.generator.next(price).value;\n }\n}\nIchimokuCloud.calculate = ichimokucloud;\nexport function ichimokucloud(input) {\n Indicator.reverseInputs(input);\n var result = new IchimokuCloud(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { SMA } from '../moving_averages/SMA';\nimport { EMA } from '../moving_averages/EMA';\nimport { ATR } from '../directionalmovement/ATR';\nexport class KeltnerChannelsInput extends IndicatorInput {\n constructor() {\n super(...arguments);\n this.maPeriod = 20;\n this.atrPeriod = 10;\n this.useSMA = false;\n this.multiplier = 1;\n }\n}\nexport class KeltnerChannelsOutput extends IndicatorInput {\n}\n;\nexport class KeltnerChannels extends Indicator {\n constructor(input) {\n super(input);\n var maType = input.useSMA ? SMA : EMA;\n var maProducer = new maType({ period: input.maPeriod, values: [], format: (v) => { return v; } });\n var atrProducer = new ATR({ period: input.atrPeriod, high: [], low: [], close: [], format: (v) => { return v; } });\n var tick;\n this.result = [];\n this.generator = (function* () {\n var KeltnerChannelsOutput;\n var result;\n tick = yield;\n while (true) {\n var { close } = tick;\n var ma = maProducer.nextValue(close);\n var atr = atrProducer.nextValue(tick);\n if (ma != undefined && atr != undefined) {\n result = {\n middle: ma,\n upper: ma + (input.multiplier * (atr)),\n lower: ma - (input.multiplier * (atr))\n };\n }\n tick = yield result;\n }\n })();\n this.generator.next();\n var highs = input.high;\n highs.forEach((tickHigh, index) => {\n var tickInput = {\n high: tickHigh,\n low: input.low[index],\n close: input.close[index],\n };\n var result = this.generator.next(tickInput);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n var result = this.generator.next(price);\n if (result.value != undefined) {\n return result.value;\n }\n }\n ;\n}\nKeltnerChannels.calculate = keltnerchannels;\nexport function keltnerchannels(input) {\n Indicator.reverseInputs(input);\n var result = new KeltnerChannels(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nimport { ATR } from '../directionalmovement/ATR';\nimport LinkedList from '../Utils/FixedSizeLinkedList';\nexport class ChandelierExitInput extends IndicatorInput {\n constructor() {\n super(...arguments);\n this.period = 22;\n this.multiplier = 3;\n }\n}\nexport class ChandelierExitOutput extends IndicatorInput {\n}\n;\nexport class ChandelierExit extends Indicator {\n constructor(input) {\n super(input);\n var highs = input.high;\n var lows = input.low;\n var closes = input.close;\n this.result = [];\n var atrProducer = new ATR({ period: input.period, high: [], low: [], close: [], format: (v) => { return v; } });\n var dataCollector = new LinkedList(input.period * 2, true, true, false);\n this.generator = (function* () {\n var result;\n var tick = yield;\n var atr;\n while (true) {\n var { high, low } = tick;\n dataCollector.push(high);\n dataCollector.push(low);\n atr = atrProducer.nextValue(tick);\n if ((dataCollector.totalPushed >= (2 * input.period)) && atr != undefined) {\n result = {\n exitLong: dataCollector.periodHigh - atr * input.multiplier,\n exitShort: dataCollector.periodLow + atr * input.multiplier\n };\n }\n tick = yield result;\n }\n })();\n this.generator.next();\n highs.forEach((tickHigh, index) => {\n var tickInput = {\n high: tickHigh,\n low: lows[index],\n close: closes[index],\n };\n var result = this.generator.next(tickInput);\n if (result.value != undefined) {\n this.result.push(result.value);\n }\n });\n }\n ;\n nextValue(price) {\n var result = this.generator.next(price);\n if (result.value != undefined) {\n return result.value;\n }\n }\n ;\n}\nChandelierExit.calculate = chandelierexit;\nexport function chandelierexit(input) {\n Indicator.reverseInputs(input);\n var result = new ChandelierExit(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n;\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class CrossInput extends IndicatorInput {\n constructor(lineA, lineB) {\n super();\n this.lineA = lineA;\n this.lineB = lineB;\n }\n}\nexport class CrossUp extends Indicator {\n constructor(input) {\n super(input);\n this.lineA = input.lineA;\n this.lineB = input.lineB;\n var currentLineA = [];\n var currentLineB = [];\n const genFn = (function* () {\n var current = yield;\n var result = false;\n while (true) {\n currentLineA.unshift(current.valueA);\n currentLineB.unshift(current.valueB);\n result = current.valueA > current.valueB;\n var pointer = 1;\n while (result === true && currentLineA[pointer] >= currentLineB[pointer]) {\n if (currentLineA[pointer] > currentLineB[pointer]) {\n result = false;\n }\n else if (currentLineA[pointer] < currentLineB[pointer]) {\n result = true;\n }\n else if (currentLineA[pointer] === currentLineB[pointer]) {\n pointer += 1;\n }\n }\n if (result === true) {\n currentLineA = [current.valueA];\n currentLineB = [current.valueB];\n }\n current = yield result;\n }\n });\n this.generator = genFn();\n this.generator.next();\n this.result = [];\n this.lineA.forEach((value, index) => {\n var result = this.generator.next({\n valueA: this.lineA[index],\n valueB: this.lineB[index]\n });\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n static reverseInputs(input) {\n if (input.reversedInput) {\n input.lineA ? input.lineA.reverse() : undefined;\n input.lineB ? input.lineB.reverse() : undefined;\n }\n }\n nextValue(valueA, valueB) {\n return this.generator.next({\n valueA: valueA,\n valueB: valueB\n }).value;\n }\n ;\n}\nCrossUp.calculate = crossUp;\nexport function crossUp(input) {\n Indicator.reverseInputs(input);\n var result = new CrossUp(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n","import { Indicator, IndicatorInput } from '../indicator/indicator';\nexport class CrossInput extends IndicatorInput {\n constructor(lineA, lineB) {\n super();\n this.lineA = lineA;\n this.lineB = lineB;\n }\n}\nexport class CrossDown extends Indicator {\n constructor(input) {\n super(input);\n this.lineA = input.lineA;\n this.lineB = input.lineB;\n var currentLineA = [];\n var currentLineB = [];\n const genFn = (function* () {\n var current = yield;\n var result = false;\n while (true) {\n currentLineA.unshift(current.valueA);\n currentLineB.unshift(current.valueB);\n result = current.valueA < current.valueB;\n var pointer = 1;\n while (result === true && currentLineA[pointer] <= currentLineB[pointer]) {\n if (currentLineA[pointer] < currentLineB[pointer]) {\n result = false;\n }\n else if (currentLineA[pointer] > currentLineB[pointer]) {\n result = true;\n }\n else if (currentLineA[pointer] === currentLineB[pointer]) {\n pointer += 1;\n }\n }\n if (result === true) {\n currentLineA = [current.valueA];\n currentLineB = [current.valueB];\n }\n current = yield result;\n }\n });\n this.generator = genFn();\n this.generator.next();\n this.result = [];\n this.lineA.forEach((value, index) => {\n var result = this.generator.next({\n valueA: this.lineA[index],\n valueB: this.lineB[index]\n });\n if (result.value !== undefined) {\n this.result.push(result.value);\n }\n });\n }\n static reverseInputs(input) {\n if (input.reversedInput) {\n input.lineA ? input.lineA.reverse() : undefined;\n input.lineB ? input.lineB.reverse() : undefined;\n }\n }\n nextValue(valueA, valueB) {\n return this.generator.next({\n valueA: valueA,\n valueB: valueB\n }).value;\n }\n ;\n}\nCrossDown.calculate = crossDown;\nexport function crossDown(input) {\n Indicator.reverseInputs(input);\n var result = new CrossDown(input).result;\n if (input.reversedInput) {\n result.reverse();\n }\n Indicator.reverseInputs(input);\n return result;\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Chart\", {\n enumerable: true,\n get: function get() {\n return _chart[\"default\"];\n }\n});\nexports.defaults = exports.Scatter = exports.Bubble = exports.Polar = exports.Radar = exports.HorizontalBar = exports.Bar = exports.Line = exports.Pie = exports.Doughnut = exports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _chart = _interopRequireDefault(require(\"chart.js\"));\n\nvar _isEqual = _interopRequireDefault(require(\"lodash/isEqual\"));\n\nvar _keyBy = _interopRequireDefault(require(\"lodash/keyBy\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar NODE_ENV = typeof process !== 'undefined' && process.env && process.env.NODE_ENV;\n\nvar ChartComponent = /*#__PURE__*/function (_React$Component) {\n _inherits(ChartComponent, _React$Component);\n\n var _super = _createSuper(ChartComponent);\n\n function ChartComponent() {\n var _this;\n\n _classCallCheck(this, ChartComponent);\n\n _this = _super.call(this);\n\n _defineProperty(_assertThisInitialized(_this), \"handleOnClick\", function (event) {\n var instance = _this.chartInstance;\n var _this$props = _this.props,\n getDatasetAtEvent = _this$props.getDatasetAtEvent,\n getElementAtEvent = _this$props.getElementAtEvent,\n getElementsAtEvent = _this$props.getElementsAtEvent,\n onElementsClick = _this$props.onElementsClick;\n getDatasetAtEvent && getDatasetAtEvent(instance.getDatasetAtEvent(event), event);\n getElementAtEvent && getElementAtEvent(instance.getElementAtEvent(event), event);\n getElementsAtEvent && getElementsAtEvent(instance.getElementsAtEvent(event), event);\n onElementsClick && onElementsClick(instance.getElementsAtEvent(event), event); // Backward compatibility\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ref\", function (element) {\n _this.element = element;\n });\n\n _this.chartInstance = undefined;\n return _this;\n }\n\n _createClass(ChartComponent, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.renderChart();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.props.redraw) {\n this.destroyChart();\n this.renderChart();\n return;\n }\n\n this.updateChart();\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n var _this$props2 = this.props,\n redraw = _this$props2.redraw,\n type = _this$props2.type,\n options = _this$props2.options,\n plugins = _this$props2.plugins,\n legend = _this$props2.legend,\n height = _this$props2.height,\n width = _this$props2.width;\n\n if (nextProps.redraw === true) {\n return true;\n }\n\n if (height !== nextProps.height || width !== nextProps.width) {\n return true;\n }\n\n if (type !== nextProps.type) {\n return true;\n }\n\n if (!(0, _isEqual[\"default\"])(legend, nextProps.legend)) {\n return true;\n }\n\n if (!(0, _isEqual[\"default\"])(options, nextProps.options)) {\n return true;\n }\n\n var nextData = this.transformDataProp(nextProps);\n\n if (!(0, _isEqual[\"default\"])(this.shadowDataProp, nextData)) {\n return true;\n }\n\n return !(0, _isEqual[\"default\"])(plugins, nextProps.plugins);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.destroyChart();\n }\n }, {\n key: \"transformDataProp\",\n value: function transformDataProp(props) {\n var data = props.data;\n\n if (typeof data == 'function') {\n var node = this.element;\n return data(node);\n } else {\n return data;\n }\n } // Chart.js directly mutates the data.dataset objects by adding _meta proprerty\n // this makes impossible to compare the current and next data changes\n // therefore we memoize the data prop while sending a fake to Chart.js for mutation.\n // see https://github.com/chartjs/Chart.js/blob/master/src/core/core.controller.js#L615-L617\n\n }, {\n key: \"memoizeDataProps\",\n value: function memoizeDataProps() {\n if (!this.props.data) {\n return;\n }\n\n var data = this.transformDataProp(this.props);\n this.shadowDataProp = _objectSpread(_objectSpread({}, data), {}, {\n datasets: data.datasets && data.datasets.map(function (set) {\n return _objectSpread({}, set);\n })\n });\n this.saveCurrentDatasets(); // to remove the dataset metadata from this chart when the chart is destroyed\n\n return data;\n }\n }, {\n key: \"checkDatasets\",\n value: function checkDatasets(datasets) {\n var isDev = NODE_ENV !== 'production' && NODE_ENV !== 'prod';\n var usingCustomKeyProvider = this.props.datasetKeyProvider !== ChartComponent.getLabelAsKey;\n var multipleDatasets = datasets.length > 1;\n\n if (isDev && multipleDatasets && !usingCustomKeyProvider) {\n var shouldWarn = false;\n datasets.forEach(function (dataset) {\n if (!dataset.label) {\n shouldWarn = true;\n }\n });\n\n if (shouldWarn) {\n console.error('[react-chartjs-2] Warning: Each dataset needs a unique key. By default, the \"label\" property on each dataset is used. Alternatively, you may provide a \"datasetKeyProvider\" as a prop that returns a unique key.');\n }\n }\n }\n }, {\n key: \"getCurrentDatasets\",\n value: function getCurrentDatasets() {\n return this.chartInstance && this.chartInstance.config.data && this.chartInstance.config.data.datasets || [];\n }\n }, {\n key: \"saveCurrentDatasets\",\n value: function saveCurrentDatasets() {\n var _this2 = this;\n\n this.datasets = this.datasets || {};\n var currentDatasets = this.getCurrentDatasets();\n currentDatasets.forEach(function (d) {\n _this2.datasets[_this2.props.datasetKeyProvider(d)] = d;\n });\n }\n }, {\n key: \"updateChart\",\n value: function updateChart() {\n var _this3 = this;\n\n var options = this.props.options;\n var data = this.memoizeDataProps(this.props);\n if (!this.chartInstance) return;\n\n if (options) {\n this.chartInstance.options = _chart[\"default\"].helpers.configMerge(this.chartInstance.options, options);\n } // Pipe datasets to chart instance datasets enabling\n // seamless transitions\n\n\n var currentDatasets = this.getCurrentDatasets();\n var nextDatasets = data.datasets || [];\n this.checkDatasets(currentDatasets);\n var currentDatasetsIndexed = (0, _keyBy[\"default\"])(currentDatasets, this.props.datasetKeyProvider); // We can safely replace the dataset array, as long as we retain the _meta property\n // on each dataset.\n\n this.chartInstance.config.data.datasets = nextDatasets.map(function (next) {\n var current = currentDatasetsIndexed[_this3.props.datasetKeyProvider(next)];\n\n if (current && current.type === next.type && next.data) {\n // Be robust to no data. Relevant for other update mechanisms as in chartjs-plugin-streaming.\n // The data array must be edited in place. As chart.js adds listeners to it.\n current.data.splice(next.data.length);\n next.data.forEach(function (point, pid) {\n current.data[pid] = next.data[pid];\n });\n\n var _data = next.data,\n otherProps = _objectWithoutProperties(next, [\"data\"]); // Merge properties. Notice a weakness here. If a property is removed\n // from next, it will be retained by current and never disappears.\n // Workaround is to set value to null or undefined in next.\n\n\n return _objectSpread(_objectSpread({}, current), otherProps);\n } else {\n return next;\n }\n });\n\n var datasets = data.datasets,\n rest = _objectWithoutProperties(data, [\"datasets\"]);\n\n this.chartInstance.config.data = _objectSpread(_objectSpread({}, this.chartInstance.config.data), rest);\n this.chartInstance.update();\n }\n }, {\n key: \"renderChart\",\n value: function renderChart() {\n var _this$props3 = this.props,\n options = _this$props3.options,\n legend = _this$props3.legend,\n type = _this$props3.type,\n plugins = _this$props3.plugins;\n var node = this.element;\n var data = this.memoizeDataProps();\n\n if (typeof legend !== 'undefined' && !(0, _isEqual[\"default\"])(ChartComponent.defaultProps.legend, legend)) {\n options.legend = legend;\n }\n\n this.chartInstance = new _chart[\"default\"](node, {\n type: type,\n data: data,\n options: options,\n plugins: plugins\n });\n }\n }, {\n key: \"destroyChart\",\n value: function destroyChart() {\n if (!this.chartInstance) {\n return;\n } // Put all of the datasets that have existed in the chart back on the chart\n // so that the metadata associated with this chart get destroyed.\n // This allows the datasets to be used in another chart. This can happen,\n // for example, in a tabbed UI where the chart gets created each time the\n // tab gets switched to the chart and uses the same data).\n\n\n this.saveCurrentDatasets();\n var datasets = Object.values(this.datasets);\n this.chartInstance.config.data.datasets = datasets;\n this.chartInstance.destroy();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n height = _this$props4.height,\n width = _this$props4.width,\n id = _this$props4.id;\n return /*#__PURE__*/_react[\"default\"].createElement(\"canvas\", {\n ref: this.ref,\n height: height,\n width: width,\n id: id,\n onClick: this.handleOnClick\n });\n }\n }]);\n\n return ChartComponent;\n}(_react[\"default\"].Component);\n\n_defineProperty(ChartComponent, \"getLabelAsKey\", function (d) {\n return d.label;\n});\n\n_defineProperty(ChartComponent, \"propTypes\", {\n data: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].object, _propTypes[\"default\"].func]).isRequired,\n getDatasetAtEvent: _propTypes[\"default\"].func,\n getElementAtEvent: _propTypes[\"default\"].func,\n getElementsAtEvent: _propTypes[\"default\"].func,\n height: _propTypes[\"default\"].number,\n legend: _propTypes[\"default\"].object,\n onElementsClick: _propTypes[\"default\"].func,\n options: _propTypes[\"default\"].object,\n plugins: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].object),\n redraw: _propTypes[\"default\"].bool,\n type: function type(props, propName, componentName) {\n if (!_chart[\"default\"].controllers[props[propName]]) {\n return new Error('Invalid chart type `' + props[propName] + '` supplied to' + ' `' + componentName + '`.');\n }\n },\n width: _propTypes[\"default\"].number,\n datasetKeyProvider: _propTypes[\"default\"].func\n});\n\n_defineProperty(ChartComponent, \"defaultProps\", {\n legend: {\n display: true,\n position: 'bottom'\n },\n type: 'doughnut',\n height: 150,\n width: 300,\n redraw: false,\n options: {},\n datasetKeyProvider: ChartComponent.getLabelAsKey\n});\n\nvar _default = ChartComponent;\nexports[\"default\"] = _default;\n\nvar Doughnut = /*#__PURE__*/function (_React$Component2) {\n _inherits(Doughnut, _React$Component2);\n\n var _super2 = _createSuper(Doughnut);\n\n function Doughnut() {\n _classCallCheck(this, Doughnut);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(Doughnut, [{\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref) {\n return _this4.chartInstance = _ref && _ref.chartInstance;\n },\n type: \"doughnut\"\n }));\n }\n }]);\n\n return Doughnut;\n}(_react[\"default\"].Component);\n\nexports.Doughnut = Doughnut;\n\nvar Pie = /*#__PURE__*/function (_React$Component3) {\n _inherits(Pie, _React$Component3);\n\n var _super3 = _createSuper(Pie);\n\n function Pie() {\n _classCallCheck(this, Pie);\n\n return _super3.apply(this, arguments);\n }\n\n _createClass(Pie, [{\n key: \"render\",\n value: function render() {\n var _this5 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref2) {\n return _this5.chartInstance = _ref2 && _ref2.chartInstance;\n },\n type: \"pie\"\n }));\n }\n }]);\n\n return Pie;\n}(_react[\"default\"].Component);\n\nexports.Pie = Pie;\n\nvar Line = /*#__PURE__*/function (_React$Component4) {\n _inherits(Line, _React$Component4);\n\n var _super4 = _createSuper(Line);\n\n function Line() {\n _classCallCheck(this, Line);\n\n return _super4.apply(this, arguments);\n }\n\n _createClass(Line, [{\n key: \"render\",\n value: function render() {\n var _this6 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref3) {\n return _this6.chartInstance = _ref3 && _ref3.chartInstance;\n },\n type: \"line\"\n }));\n }\n }]);\n\n return Line;\n}(_react[\"default\"].Component);\n\nexports.Line = Line;\n\nvar Bar = /*#__PURE__*/function (_React$Component5) {\n _inherits(Bar, _React$Component5);\n\n var _super5 = _createSuper(Bar);\n\n function Bar() {\n _classCallCheck(this, Bar);\n\n return _super5.apply(this, arguments);\n }\n\n _createClass(Bar, [{\n key: \"render\",\n value: function render() {\n var _this7 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref4) {\n return _this7.chartInstance = _ref4 && _ref4.chartInstance;\n },\n type: \"bar\"\n }));\n }\n }]);\n\n return Bar;\n}(_react[\"default\"].Component);\n\nexports.Bar = Bar;\n\nvar HorizontalBar = /*#__PURE__*/function (_React$Component6) {\n _inherits(HorizontalBar, _React$Component6);\n\n var _super6 = _createSuper(HorizontalBar);\n\n function HorizontalBar() {\n _classCallCheck(this, HorizontalBar);\n\n return _super6.apply(this, arguments);\n }\n\n _createClass(HorizontalBar, [{\n key: \"render\",\n value: function render() {\n var _this8 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref5) {\n return _this8.chartInstance = _ref5 && _ref5.chartInstance;\n },\n type: \"horizontalBar\"\n }));\n }\n }]);\n\n return HorizontalBar;\n}(_react[\"default\"].Component);\n\nexports.HorizontalBar = HorizontalBar;\n\nvar Radar = /*#__PURE__*/function (_React$Component7) {\n _inherits(Radar, _React$Component7);\n\n var _super7 = _createSuper(Radar);\n\n function Radar() {\n _classCallCheck(this, Radar);\n\n return _super7.apply(this, arguments);\n }\n\n _createClass(Radar, [{\n key: \"render\",\n value: function render() {\n var _this9 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref6) {\n return _this9.chartInstance = _ref6 && _ref6.chartInstance;\n },\n type: \"radar\"\n }));\n }\n }]);\n\n return Radar;\n}(_react[\"default\"].Component);\n\nexports.Radar = Radar;\n\nvar Polar = /*#__PURE__*/function (_React$Component8) {\n _inherits(Polar, _React$Component8);\n\n var _super8 = _createSuper(Polar);\n\n function Polar() {\n _classCallCheck(this, Polar);\n\n return _super8.apply(this, arguments);\n }\n\n _createClass(Polar, [{\n key: \"render\",\n value: function render() {\n var _this10 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref7) {\n return _this10.chartInstance = _ref7 && _ref7.chartInstance;\n },\n type: \"polarArea\"\n }));\n }\n }]);\n\n return Polar;\n}(_react[\"default\"].Component);\n\nexports.Polar = Polar;\n\nvar Bubble = /*#__PURE__*/function (_React$Component9) {\n _inherits(Bubble, _React$Component9);\n\n var _super9 = _createSuper(Bubble);\n\n function Bubble() {\n _classCallCheck(this, Bubble);\n\n return _super9.apply(this, arguments);\n }\n\n _createClass(Bubble, [{\n key: \"render\",\n value: function render() {\n var _this11 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref8) {\n return _this11.chartInstance = _ref8 && _ref8.chartInstance;\n },\n type: \"bubble\"\n }));\n }\n }]);\n\n return Bubble;\n}(_react[\"default\"].Component);\n\nexports.Bubble = Bubble;\n\nvar Scatter = /*#__PURE__*/function (_React$Component10) {\n _inherits(Scatter, _React$Component10);\n\n var _super10 = _createSuper(Scatter);\n\n function Scatter() {\n _classCallCheck(this, Scatter);\n\n return _super10.apply(this, arguments);\n }\n\n _createClass(Scatter, [{\n key: \"render\",\n value: function render() {\n var _this12 = this;\n\n return /*#__PURE__*/_react[\"default\"].createElement(ChartComponent, _extends({}, this.props, {\n ref: function ref(_ref9) {\n return _this12.chartInstance = _ref9 && _ref9.chartInstance;\n },\n type: \"scatter\"\n }));\n }\n }]);\n\n return Scatter;\n}(_react[\"default\"].Component);\n\nexports.Scatter = Scatter;\nvar defaults = _chart[\"default\"].defaults;\nexports.defaults = defaults;","module.exports = require('./lib/index.js');\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\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 * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/*!\n * Chart.js v2.9.4\n * https://www.chartjs.org\n * (c) 2020 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) :\ntypeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) :\n(global = global || self, global.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar colorName = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\nvar conversions = createCommonjsModule(function (module) {\n/* MIT license */\n\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in colorName) {\n\tif (colorName.hasOwnProperty(key)) {\n\t\treverseKeywords[colorName[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in colorName) {\n\t\tif (colorName.hasOwnProperty(keyword)) {\n\t\t\tvar value = colorName[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn colorName[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n});\nvar conversions_1 = conversions.rgb;\nvar conversions_2 = conversions.hsl;\nvar conversions_3 = conversions.hsv;\nvar conversions_4 = conversions.hwb;\nvar conversions_5 = conversions.cmyk;\nvar conversions_6 = conversions.xyz;\nvar conversions_7 = conversions.lab;\nvar conversions_8 = conversions.lch;\nvar conversions_9 = conversions.hex;\nvar conversions_10 = conversions.keyword;\nvar conversions_11 = conversions.ansi16;\nvar conversions_12 = conversions.ansi256;\nvar conversions_13 = conversions.hcg;\nvar conversions_14 = conversions.apple;\nvar conversions_15 = conversions.gray;\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nvar route = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nvar colorConvert = convert;\n\nvar colorName$1 = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\n/* MIT license */\n\n\nvar colorString = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n};\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3,4})$/i,\n hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr),\n hexAlpha = \"\";\n if (match) {\n match = match[1];\n hexAlpha = match[3];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(hex)) {\n hexAlpha = match[2];\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorName$1[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgba, a) {\n var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n return \"#\" + hexDouble(rgba[0]) \n + hexDouble(rgba[1])\n + hexDouble(rgba[2])\n + (\n (a >= 0 && a < 1)\n ? hexDouble(Math.round(a * 255))\n : \"\"\n );\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorName$1) {\n reverseNames[colorName$1[name]] = name;\n}\n\n/* MIT license */\n\n\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = colorConvert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nvar chartjsColor = Color;\n\nfunction isValidKey(key) {\r\n\treturn ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\r\n}\r\n\r\n/**\r\n * @namespace Chart.helpers\r\n */\r\nvar helpers = {\r\n\t/**\r\n\t * An empty function that can be used, for example, for optional callback.\r\n\t */\r\n\tnoop: function() {},\r\n\r\n\t/**\r\n\t * Returns a unique id, sequentially generated from a global variable.\r\n\t * @returns {number}\r\n\t * @function\r\n\t */\r\n\tuid: (function() {\r\n\t\tvar id = 0;\r\n\t\treturn function() {\r\n\t\t\treturn id++;\r\n\t\t};\r\n\t}()),\r\n\r\n\t/**\r\n\t * Returns true if `value` is neither null nor undefined, else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisNullOrUndef: function(value) {\r\n\t\treturn value === null || typeof value === 'undefined';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @function\r\n\t */\r\n\tisArray: function(value) {\r\n\t\tif (Array.isArray && Array.isArray(value)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvar type = Object.prototype.toString.call(value);\r\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an object (excluding null), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisObject: function(value) {\r\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is a finite number, else returns false\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t */\r\n\tisFinite: function(value) {\r\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns `value` if defined, else returns `defaultValue`.\r\n\t * @param {*} value - The value to return if defined.\r\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueOrDefault: function(value, defaultValue) {\r\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\r\n\t * @param {Array} value - The array to lookup for value at `index`.\r\n\t * @param {number} index - The index in `value` to lookup for value.\r\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\r\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\r\n\t},\r\n\r\n\t/**\r\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\r\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\r\n\t * @param {function} fn - The function to call.\r\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @returns {*}\r\n\t */\r\n\tcallback: function(fn, args, thisArg) {\r\n\t\tif (fn && typeof fn.call === 'function') {\r\n\t\t\treturn fn.apply(thisArg, args);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Note(SB) for performance sake, this method should only be used when loopable type\r\n\t * is unknown or in none intensive code (not called often and small loopable). Else\r\n\t * it's preferable to use a regular for() loop and save extra function calls.\r\n\t * @param {object|Array} loopable - The object or array to be iterated.\r\n\t * @param {function} fn - The function to call for each item.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\r\n\t */\r\n\teach: function(loopable, fn, thisArg, reverse) {\r\n\t\tvar i, len, keys;\r\n\t\tif (helpers.isArray(loopable)) {\r\n\t\t\tlen = loopable.length;\r\n\t\t\tif (reverse) {\r\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (helpers.isObject(loopable)) {\r\n\t\t\tkeys = Object.keys(loopable);\r\n\t\t\tlen = keys.length;\r\n\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\r\n\t * @see https://stackoverflow.com/a/14853974\r\n\t * @param {Array} a0 - The array to compare\r\n\t * @param {Array} a1 - The array to compare\r\n\t * @returns {boolean}\r\n\t */\r\n\tarrayEquals: function(a0, a1) {\r\n\t\tvar i, ilen, v0, v1;\r\n\r\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\r\n\t\t\tv0 = a0[i];\r\n\t\t\tv1 = a1[i];\r\n\r\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\r\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t} else if (v0 !== v1) {\r\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\r\n\t * @param {*} source - The value to clone.\r\n\t * @returns {*}\r\n\t */\r\n\tclone: function(source) {\r\n\t\tif (helpers.isArray(source)) {\r\n\t\t\treturn source.map(helpers.clone);\r\n\t\t}\r\n\r\n\t\tif (helpers.isObject(source)) {\r\n\t\t\tvar target = Object.create(source);\r\n\t\t\tvar keys = Object.keys(source);\r\n\t\t\tvar klen = keys.length;\r\n\t\t\tvar k = 0;\r\n\r\n\t\t\tfor (; k < klen; ++k) {\r\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\r\n\t\t\t}\r\n\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\treturn source;\r\n\t},\r\n\r\n\t/**\r\n\t * The default merger when Chart.helpers.merge is called without merger option.\r\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\r\n\t * @private\r\n\t */\r\n\t_merger: function(key, target, source, options) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.merge(tval, sval, options);\r\n\t\t} else {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Merges source[key] in target[key] only if target[key] is undefined.\r\n\t * @private\r\n\t */\r\n\t_mergerIf: function(key, target, source) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.mergeIf(tval, sval);\r\n\t\t} else if (!target.hasOwnProperty(key)) {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @param {object} [options] - Merging options:\r\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmerge: function(target, source, options) {\r\n\t\tvar sources = helpers.isArray(source) ? source : [source];\r\n\t\tvar ilen = sources.length;\r\n\t\tvar merge, i, keys, klen, k;\r\n\r\n\t\tif (!helpers.isObject(target)) {\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\toptions = options || {};\r\n\t\tmerge = options.merger || helpers._merger;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tsource = sources[i];\r\n\t\t\tif (!helpers.isObject(source)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tkeys = Object.keys(source);\r\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\r\n\t\t\t\tmerge(keys[k], target, source, options);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmergeIf: function(target, source) {\r\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\r\n\t},\r\n\r\n\t/**\r\n\t * Applies the contents of two or more objects together into the first object.\r\n\t * @param {object} target - The target object in which all objects are merged into.\r\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\r\n\t * @param {object} argN - Additional objects containing properties to merge in target.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\textend: Object.assign || function(target) {\r\n\t\treturn helpers.merge(target, [].slice.call(arguments, 1), {\r\n\t\t\tmerger: function(key, dst, src) {\r\n\t\t\t\tdst[key] = src[key];\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Basic javascript inheritance based on the model created in Backbone.js\r\n\t */\r\n\tinherits: function(extensions) {\r\n\t\tvar me = this;\r\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\r\n\t\t\treturn me.apply(this, arguments);\r\n\t\t};\r\n\r\n\t\tvar Surrogate = function() {\r\n\t\t\tthis.constructor = ChartElement;\r\n\t\t};\r\n\r\n\t\tSurrogate.prototype = me.prototype;\r\n\t\tChartElement.prototype = new Surrogate();\r\n\t\tChartElement.extend = helpers.inherits;\r\n\r\n\t\tif (extensions) {\r\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\r\n\t\t}\r\n\r\n\t\tChartElement.__super__ = me.prototype;\r\n\t\treturn ChartElement;\r\n\t},\r\n\r\n\t_deprecated: function(scope, value, previous, current) {\r\n\t\tif (value !== undefined) {\r\n\t\t\tconsole.warn(scope + ': \"' + previous +\r\n\t\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\r\n\t\t}\r\n\t}\r\n};\r\n\r\nvar helpers_core = helpers;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.callback instead.\r\n * @function Chart.helpers.callCallback\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.callCallback = helpers.callback;\r\n\r\n/**\r\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\r\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\r\n * @function Chart.helpers.indexOf\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.indexOf = function(array, item, fromIndex) {\r\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\r\n};\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\r\n * @function Chart.helpers.getValueOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueOrDefault = helpers.valueOrDefault;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\r\n * @function Chart.helpers.getValueAtIndexOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\r\n * Easing functions adapted from Robert Penner's easing equations.\r\n * @namespace Chart.helpers.easingEffects\r\n * @see http://www.robertpenner.com/easing/\r\n */\r\nvar effects = {\r\n\tlinear: function(t) {\r\n\t\treturn t;\r\n\t},\r\n\r\n\teaseInQuad: function(t) {\r\n\t\treturn t * t;\r\n\t},\r\n\r\n\teaseOutQuad: function(t) {\r\n\t\treturn -t * (t - 2);\r\n\t},\r\n\r\n\teaseInOutQuad: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\r\n\t},\r\n\r\n\teaseInCubic: function(t) {\r\n\t\treturn t * t * t;\r\n\t},\r\n\r\n\teaseOutCubic: function(t) {\r\n\t\treturn (t = t - 1) * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutCubic: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\r\n\t},\r\n\r\n\teaseInQuart: function(t) {\r\n\t\treturn t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuart: function(t) {\r\n\t\treturn -((t = t - 1) * t * t * t - 1);\r\n\t},\r\n\r\n\teaseInOutQuart: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\r\n\t},\r\n\r\n\teaseInQuint: function(t) {\r\n\t\treturn t * t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuint: function(t) {\r\n\t\treturn (t = t - 1) * t * t * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutQuint: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\r\n\t},\r\n\r\n\teaseInSine: function(t) {\r\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\r\n\t},\r\n\r\n\teaseOutSine: function(t) {\r\n\t\treturn Math.sin(t * (Math.PI / 2));\r\n\t},\r\n\r\n\teaseInOutSine: function(t) {\r\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\r\n\t},\r\n\r\n\teaseInExpo: function(t) {\r\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\r\n\t},\r\n\r\n\teaseOutExpo: function(t) {\r\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\r\n\t},\r\n\r\n\teaseInOutExpo: function(t) {\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\r\n\t\t}\r\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\r\n\t},\r\n\r\n\teaseInCirc: function(t) {\r\n\t\tif (t >= 1) {\r\n\t\t\treturn t;\r\n\t\t}\r\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\r\n\t},\r\n\r\n\teaseOutCirc: function(t) {\r\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\r\n\t},\r\n\r\n\teaseInOutCirc: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\r\n\t\t}\r\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\r\n\t},\r\n\r\n\teaseInElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t},\r\n\r\n\teaseOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\r\n\t},\r\n\r\n\teaseInOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif ((t /= 0.5) === 2) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.45;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\tif (t < 1) {\r\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n\t},\r\n\teaseInBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn t * t * ((s + 1) * t - s);\r\n\t},\r\n\r\n\teaseOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\r\n\t},\r\n\r\n\teaseInOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\r\n\t},\r\n\r\n\teaseInBounce: function(t) {\r\n\t\treturn 1 - effects.easeOutBounce(1 - t);\r\n\t},\r\n\r\n\teaseOutBounce: function(t) {\r\n\t\tif (t < (1 / 2.75)) {\r\n\t\t\treturn 7.5625 * t * t;\r\n\t\t}\r\n\t\tif (t < (2 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\r\n\t\t}\r\n\t\tif (t < (2.5 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\r\n\t\t}\r\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\r\n\t},\r\n\r\n\teaseInOutBounce: function(t) {\r\n\t\tif (t < 0.5) {\r\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\r\n\t\t}\r\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\r\n\t}\r\n};\r\n\r\nvar helpers_easing = {\r\n\teffects: effects\r\n};\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\r\n * @function Chart.helpers.easingEffects\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\r\nvar RAD_PER_DEG = PI / 180;\r\nvar DOUBLE_PI = PI * 2;\r\nvar HALF_PI = PI / 2;\r\nvar QUARTER_PI = PI / 4;\r\nvar TWO_THIRDS_PI = PI * 2 / 3;\r\n\r\n/**\r\n * @namespace Chart.helpers.canvas\r\n */\r\nvar exports$1 = {\r\n\t/**\r\n\t * Clears the entire canvas associated to the given `chart`.\r\n\t * @param {Chart} chart - The chart for which to clear the canvas.\r\n\t */\r\n\tclear: function(chart) {\r\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\r\n\t},\r\n\r\n\t/**\r\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\r\n\t * given size (width, height) and the same `radius` for all corners.\r\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\r\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} width - The rectangle's width.\r\n\t * @param {number} height - The rectangle's height.\r\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\r\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\r\n\t */\r\n\troundedRect: function(ctx, x, y, width, height, radius) {\r\n\t\tif (radius) {\r\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\r\n\t\t\tvar left = x + r;\r\n\t\t\tvar top = y + r;\r\n\t\t\tvar right = x + width - r;\r\n\t\t\tvar bottom = y + height - r;\r\n\r\n\t\t\tctx.moveTo(x, top);\r\n\t\t\tif (left < right && top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\r\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\r\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\r\n\t\t\t} else if (left < right) {\r\n\t\t\t\tctx.moveTo(left, y);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\r\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\r\n\t\t\t} else if (top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\r\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\r\n\t\t\t} else {\r\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\r\n\t\t\t}\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t} else {\r\n\t\t\tctx.rect(x, y, width, height);\r\n\t\t}\r\n\t},\r\n\r\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\r\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\r\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\r\n\r\n\t\tif (style && typeof style === 'object') {\r\n\t\t\ttype = style.toString();\r\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\r\n\t\t\t\tctx.save();\r\n\t\t\t\tctx.translate(x, y);\r\n\t\t\t\tctx.rotate(rad);\r\n\t\t\t\tctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\r\n\t\t\t\tctx.restore();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (isNaN(radius) || radius <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\r\n\t\tswitch (style) {\r\n\t\t// Default includes circle\r\n\t\tdefault:\r\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'triangle':\r\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rectRounded':\r\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\r\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\r\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\r\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\r\n\t\t\t// circle with `radius`. For more details, see the following PRs:\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\r\n\t\t\tcornerRadius = radius * 0.516;\r\n\t\t\tsize = radius - cornerRadius;\r\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\r\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\r\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\r\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\r\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\r\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rect':\r\n\t\t\tif (!rotation) {\r\n\t\t\t\tsize = Math.SQRT1_2 * radius;\r\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'rectRot':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'crossRot':\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'cross':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'star':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'line':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'dash':\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tctx.fill();\r\n\t\tctx.stroke();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the point is inside the rectangle\r\n\t * @param {object} point - The point to test\r\n\t * @param {object} area - The rectangle\r\n\t * @returns {boolean}\r\n\t * @private\r\n\t */\r\n\t_isPointInArea: function(point, area) {\r\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\r\n\r\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\r\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\r\n\t},\r\n\r\n\tclipArea: function(ctx, area) {\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\r\n\t\tctx.clip();\r\n\t},\r\n\r\n\tunclipArea: function(ctx) {\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\tlineTo: function(ctx, previous, target, flip) {\r\n\t\tvar stepped = target.steppedLine;\r\n\t\tif (stepped) {\r\n\t\t\tif (stepped === 'middle') {\r\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\r\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\r\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\r\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\r\n\t\t\t\tctx.lineTo(previous.x, target.y);\r\n\t\t\t} else {\r\n\t\t\t\tctx.lineTo(target.x, previous.y);\r\n\t\t\t}\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!target.tension) {\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.bezierCurveTo(\r\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\r\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\r\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\r\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\r\n\t\t\ttarget.x,\r\n\t\t\ttarget.y);\r\n\t}\r\n};\r\n\r\nvar helpers_canvas = exports$1;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\r\n * @namespace Chart.helpers.clear\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.clear = exports$1.clear;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\r\n * @namespace Chart.helpers.drawRoundedRectangle\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.drawRoundedRectangle = function(ctx) {\r\n\tctx.beginPath();\r\n\texports$1.roundedRect.apply(exports$1, arguments);\r\n};\n\nvar defaults = {\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_set: function(scope, values) {\r\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\r\n\t}\r\n};\r\n\r\n// TODO(v3): remove 'global' from namespace. all default are global and\r\n// there's inconsistency around which options are under 'global'\r\ndefaults._set('global', {\r\n\tdefaultColor: 'rgba(0,0,0,0.1)',\r\n\tdefaultFontColor: '#666',\r\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\r\n\tdefaultFontSize: 12,\r\n\tdefaultFontStyle: 'normal',\r\n\tdefaultLineHeight: 1.2,\r\n\tshowLines: true\r\n});\r\n\r\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\r\n\r\n/**\r\n * Converts the given font object into a CSS font string.\r\n * @param {object} font - A font object.\r\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\r\n * @private\r\n */\r\nfunction toFontString(font) {\r\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (font.style ? font.style + ' ' : '')\r\n\t\t+ (font.weight ? font.weight + ' ' : '')\r\n\t\t+ font.size + 'px '\r\n\t\t+ font.family;\r\n}\r\n\r\n/**\r\n * @alias Chart.helpers.options\r\n * @namespace\r\n */\r\nvar helpers_options = {\r\n\t/**\r\n\t * Converts the given line height `value` in pixels for a specific font `size`.\r\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\r\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\r\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\r\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoLineHeight: function(value, size) {\r\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\r\n\t\tif (!matches || matches[1] === 'normal') {\r\n\t\t\treturn size * 1.2;\r\n\t\t}\r\n\r\n\t\tvalue = +matches[2];\r\n\r\n\t\tswitch (matches[3]) {\r\n\t\tcase 'px':\r\n\t\t\treturn value;\r\n\t\tcase '%':\r\n\t\t\tvalue /= 100;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn size * value;\r\n\t},\r\n\r\n\t/**\r\n\t * Converts the given value into a padding object with pre-computed width/height.\r\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\r\n\t * else, if and object, use defined properties and sets undefined ones to 0.\r\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoPadding: function(value) {\r\n\t\tvar t, r, b, l;\r\n\r\n\t\tif (helpers_core.isObject(value)) {\r\n\t\t\tt = +value.top || 0;\r\n\t\t\tr = +value.right || 0;\r\n\t\t\tb = +value.bottom || 0;\r\n\t\t\tl = +value.left || 0;\r\n\t\t} else {\r\n\t\t\tt = r = b = l = +value || 0;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop: t,\r\n\t\t\tright: r,\r\n\t\t\tbottom: b,\r\n\t\t\tleft: l,\r\n\t\t\theight: t + b,\r\n\t\t\twidth: l + r\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Parses font options and returns the font object.\r\n\t * @param {object} options - A object that contains font options to be parsed.\r\n\t * @return {object} The font object.\r\n\t * @todo Support font.* options and renamed to toFont().\r\n\t * @private\r\n\t */\r\n\t_parseFont: function(options) {\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\r\n\t\tvar font = {\r\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\r\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\r\n\t\t\tsize: size,\r\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\r\n\t\t\tweight: null,\r\n\t\t\tstring: ''\r\n\t\t};\r\n\r\n\t\tfont.string = toFontString(font);\r\n\t\treturn font;\r\n\t},\r\n\r\n\t/**\r\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\r\n\t * @param {Array} inputs - An array of values, falling back to the last value.\r\n\t * @param {object} [context] - If defined and the current value is a function, the value\r\n\t * is called with `context` as first argument and the result becomes the new input.\r\n\t * @param {number} [index] - If defined and the current value is an array, the value\r\n\t * at `index` become the new input.\r\n\t * @param {object} [info] - object to return information about resolution in\r\n\t * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\r\n\t * @since 2.7.0\r\n\t */\r\n\tresolve: function(inputs, context, index, info) {\r\n\t\tvar cacheable = true;\r\n\t\tvar i, ilen, value;\r\n\r\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\r\n\t\t\tvalue = inputs[i];\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tif (context !== undefined && typeof value === 'function') {\r\n\t\t\t\tvalue = value(context);\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\r\n\t\t\t\tvalue = value[index];\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (value !== undefined) {\r\n\t\t\t\tif (info && !cacheable) {\r\n\t\t\t\t\tinfo.cacheable = false;\r\n\t\t\t\t}\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\n/**\r\n * @alias Chart.helpers.math\r\n * @namespace\r\n */\r\nvar exports$2 = {\r\n\t/**\r\n\t * Returns an array of factors sorted from 1 to sqrt(value)\r\n\t * @private\r\n\t */\r\n\t_factorize: function(value) {\r\n\t\tvar result = [];\r\n\t\tvar sqrt = Math.sqrt(value);\r\n\t\tvar i;\r\n\r\n\t\tfor (i = 1; i < sqrt; i++) {\r\n\t\t\tif (value % i === 0) {\r\n\t\t\t\tresult.push(i);\r\n\t\t\t\tresult.push(value / i);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (sqrt === (sqrt | 0)) { // if value is a square number\r\n\t\t\tresult.push(sqrt);\r\n\t\t}\r\n\r\n\t\tresult.sort(function(a, b) {\r\n\t\t\treturn a - b;\r\n\t\t}).pop();\r\n\t\treturn result;\r\n\t},\r\n\r\n\tlog10: Math.log10 || function(x) {\r\n\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\r\n\t\t// Check for whole powers of 10,\r\n\t\t// which due to floating point rounding error should be corrected.\r\n\t\tvar powerOf10 = Math.round(exponent);\r\n\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\r\n\r\n\t\treturn isPowerOf10 ? powerOf10 : exponent;\r\n\t}\r\n};\r\n\r\nvar helpers_math = exports$2;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\r\n * @namespace Chart.helpers.log10\r\n * @deprecated since version 2.9.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.log10 = exports$2.log10;\n\nvar getRtlAdapter = function(rectX, width) {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn rectX + rectX + width - x;\r\n\t\t},\r\n\t\tsetWidth: function(w) {\r\n\t\t\twidth = w;\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\tif (align === 'center') {\r\n\t\t\t\treturn align;\r\n\t\t\t}\r\n\t\t\treturn align === 'right' ? 'left' : 'right';\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x - value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, itemWidth) {\r\n\t\t\treturn x - itemWidth;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getLtrAdapter = function() {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn x;\r\n\t\t},\r\n\t\tsetWidth: function(w) { // eslint-disable-line no-unused-vars\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\treturn align;\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x + value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, _itemWidth) { // eslint-disable-line no-unused-vars\r\n\t\t\treturn x;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getAdapter = function(rtl, rectX, width) {\r\n\treturn rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\r\n};\r\n\r\nvar overrideTextDirection = function(ctx, direction) {\r\n\tvar style, original;\r\n\tif (direction === 'ltr' || direction === 'rtl') {\r\n\t\tstyle = ctx.canvas.style;\r\n\t\toriginal = [\r\n\t\t\tstyle.getPropertyValue('direction'),\r\n\t\t\tstyle.getPropertyPriority('direction'),\r\n\t\t];\r\n\r\n\t\tstyle.setProperty('direction', direction, 'important');\r\n\t\tctx.prevTextDirection = original;\r\n\t}\r\n};\r\n\r\nvar restoreTextDirection = function(ctx) {\r\n\tvar original = ctx.prevTextDirection;\r\n\tif (original !== undefined) {\r\n\t\tdelete ctx.prevTextDirection;\r\n\t\tctx.canvas.style.setProperty('direction', original[0], original[1]);\r\n\t}\r\n};\r\n\r\nvar helpers_rtl = {\r\n\tgetRtlAdapter: getAdapter,\r\n\toverrideTextDirection: overrideTextDirection,\r\n\trestoreTextDirection: restoreTextDirection,\r\n};\n\nvar helpers$1 = helpers_core;\r\nvar easing = helpers_easing;\r\nvar canvas = helpers_canvas;\r\nvar options = helpers_options;\r\nvar math = helpers_math;\r\nvar rtl = helpers_rtl;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\nhelpers$1.math = math;\nhelpers$1.rtl = rtl;\n\nfunction interpolate(start, view, model, ease) {\r\n\tvar keys = Object.keys(model);\r\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\r\n\r\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\tkey = keys[i];\r\n\r\n\t\ttarget = model[key];\r\n\r\n\t\t// if a value is added to the model after pivot() has been called, the view\r\n\t\t// doesn't contain it, so let's initialize the view to the target value.\r\n\t\tif (!view.hasOwnProperty(key)) {\r\n\t\t\tview[key] = target;\r\n\t\t}\r\n\r\n\t\tactual = view[key];\r\n\r\n\t\tif (actual === target || key[0] === '_') {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (!start.hasOwnProperty(key)) {\r\n\t\t\tstart[key] = actual;\r\n\t\t}\r\n\r\n\t\torigin = start[key];\r\n\r\n\t\ttype = typeof target;\r\n\r\n\t\tif (type === typeof origin) {\r\n\t\t\tif (type === 'string') {\r\n\t\t\t\tc0 = chartjsColor(origin);\r\n\t\t\t\tif (c0.valid) {\r\n\t\t\t\t\tc1 = chartjsColor(target);\r\n\t\t\t\t\tif (c1.valid) {\r\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\r\n\t\t\t\tview[key] = origin + (target - origin) * ease;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tview[key] = target;\r\n\t}\r\n}\r\n\r\nvar Element = function(configuration) {\r\n\thelpers$1.extend(this, configuration);\r\n\tthis.initialize.apply(this, arguments);\r\n};\r\n\r\nhelpers$1.extend(Element.prototype, {\r\n\t_type: undefined,\r\n\r\n\tinitialize: function() {\r\n\t\tthis.hidden = false;\r\n\t},\r\n\r\n\tpivot: function() {\r\n\t\tvar me = this;\r\n\t\tif (!me._view) {\r\n\t\t\tme._view = helpers$1.extend({}, me._model);\r\n\t\t}\r\n\t\tme._start = {};\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttransition: function(ease) {\r\n\t\tvar me = this;\r\n\t\tvar model = me._model;\r\n\t\tvar start = me._start;\r\n\t\tvar view = me._view;\r\n\r\n\t\t// No animation -> No Transition\r\n\t\tif (!model || ease === 1) {\r\n\t\t\tme._view = helpers$1.extend({}, model);\r\n\t\t\tme._start = null;\r\n\t\t\treturn me;\r\n\t\t}\r\n\r\n\t\tif (!view) {\r\n\t\t\tview = me._view = {};\r\n\t\t}\r\n\r\n\t\tif (!start) {\r\n\t\t\tstart = me._start = {};\r\n\t\t}\r\n\r\n\t\tinterpolate(start, view, model, ease);\r\n\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\treturn {\r\n\t\t\tx: this._model.x,\r\n\t\t\ty: this._model.y\r\n\t\t};\r\n\t},\r\n\r\n\thasValue: function() {\r\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\r\n\t}\r\n});\r\n\r\nElement.extend = helpers$1.inherits;\r\n\r\nvar core_element = Element;\n\nvar exports$3 = core_element.extend({\r\n\tchart: null, // the animation associated chart instance\r\n\tcurrentStep: 0, // the current animation step\r\n\tnumSteps: 60, // default number of steps\r\n\teasing: '', // the easing to use for this animation\r\n\trender: null, // render function used by the animation service\r\n\r\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\r\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\r\n});\r\n\r\nvar core_animation = exports$3;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation instead\r\n * @prop Chart.Animation#animationObject\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'animationObject', {\r\n\tget: function() {\r\n\t\treturn this;\r\n\t}\r\n});\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation#chart instead\r\n * @prop Chart.Animation#chartInstance\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'chartInstance', {\r\n\tget: function() {\r\n\t\treturn this.chart;\r\n\t},\r\n\tset: function(value) {\r\n\t\tthis.chart = value;\r\n\t}\r\n});\n\ncore_defaults._set('global', {\r\n\tanimation: {\r\n\t\tduration: 1000,\r\n\t\teasing: 'easeOutQuart',\r\n\t\tonProgress: helpers$1.noop,\r\n\t\tonComplete: helpers$1.noop\r\n\t}\r\n});\r\n\r\nvar core_animations = {\r\n\tanimations: [],\r\n\trequest: null,\r\n\r\n\t/**\r\n\t * @param {Chart} chart - The chart to animate.\r\n\t * @param {Chart.Animation} animation - The animation that we will animate.\r\n\t * @param {number} duration - The animation duration in ms.\r\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\r\n\t */\r\n\taddAnimation: function(chart, animation, duration, lazy) {\r\n\t\tvar animations = this.animations;\r\n\t\tvar i, ilen;\r\n\r\n\t\tanimation.chart = chart;\r\n\t\tanimation.startTime = Date.now();\r\n\t\tanimation.duration = duration;\r\n\r\n\t\tif (!lazy) {\r\n\t\t\tchart.animating = true;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\r\n\t\t\tif (animations[i].chart === chart) {\r\n\t\t\t\tanimations[i] = animation;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tanimations.push(animation);\r\n\r\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\r\n\t\tif (animations.length === 1) {\r\n\t\t\tthis.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\tcancelAnimation: function(chart) {\r\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\r\n\t\t\treturn animation.chart === chart;\r\n\t\t});\r\n\r\n\t\tif (index !== -1) {\r\n\t\t\tthis.animations.splice(index, 1);\r\n\t\t\tchart.animating = false;\r\n\t\t}\r\n\t},\r\n\r\n\trequestAnimationFrame: function() {\r\n\t\tvar me = this;\r\n\t\tif (me.request === null) {\r\n\t\t\t// Skip animation frame requests until the active one is executed.\r\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\r\n\t\t\t// and 'mouseout' events will trigger multiple renders.\r\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tme.request = null;\r\n\t\t\t\tme.startDigest();\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tstartDigest: function() {\r\n\t\tvar me = this;\r\n\r\n\t\tme.advance();\r\n\r\n\t\t// Do we have more stuff to animate?\r\n\t\tif (me.animations.length > 0) {\r\n\t\t\tme.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tadvance: function() {\r\n\t\tvar animations = this.animations;\r\n\t\tvar animation, chart, numSteps, nextStep;\r\n\t\tvar i = 0;\r\n\r\n\t\t// 1 animation per chart, so we are looping charts here\r\n\t\twhile (i < animations.length) {\r\n\t\t\tanimation = animations[i];\r\n\t\t\tchart = animation.chart;\r\n\t\t\tnumSteps = animation.numSteps;\r\n\r\n\t\t\t// Make sure that currentStep starts at 1\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\r\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\r\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\r\n\r\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\r\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\r\n\r\n\t\t\tif (animation.currentStep >= numSteps) {\r\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\r\n\t\t\t\tchart.animating = false;\r\n\t\t\t\tanimations.splice(i, 1);\r\n\t\t\t} else {\r\n\t\t\t\t++i;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\nvar resolve = helpers$1.options.resolve;\r\n\r\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\r\n\r\n/**\r\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\r\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\r\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\r\n */\r\nfunction listenArrayEvents(array, listener) {\r\n\tif (array._chartjs) {\r\n\t\tarray._chartjs.listeners.push(listener);\r\n\t\treturn;\r\n\t}\r\n\r\n\tObject.defineProperty(array, '_chartjs', {\r\n\t\tconfigurable: true,\r\n\t\tenumerable: false,\r\n\t\tvalue: {\r\n\t\t\tlisteners: [listener]\r\n\t\t}\r\n\t});\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\r\n\t\tvar base = array[key];\r\n\r\n\t\tObject.defineProperty(array, key, {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: false,\r\n\t\t\tvalue: function() {\r\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\r\n\t\t\t\tvar res = base.apply(this, args);\r\n\r\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\r\n\t\t\t\t\tif (typeof object[method] === 'function') {\r\n\t\t\t\t\t\tobject[method].apply(object, args);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res;\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n}\r\n\r\n/**\r\n * Removes the given array event listener and cleanup extra attached properties (such as\r\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\r\n */\r\nfunction unlistenArrayEvents(array, listener) {\r\n\tvar stub = array._chartjs;\r\n\tif (!stub) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar listeners = stub.listeners;\r\n\tvar index = listeners.indexOf(listener);\r\n\tif (index !== -1) {\r\n\t\tlisteners.splice(index, 1);\r\n\t}\r\n\r\n\tif (listeners.length > 0) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tdelete array[key];\r\n\t});\r\n\r\n\tdelete array._chartjs;\r\n}\r\n\r\n// Base class for all dataset controllers (line, bar, etc)\r\nvar DatasetController = function(chart, datasetIndex) {\r\n\tthis.initialize(chart, datasetIndex);\r\n};\r\n\r\nhelpers$1.extend(DatasetController.prototype, {\r\n\r\n\t/**\r\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdatasetElementType: null,\r\n\r\n\t/**\r\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdataElementType: null,\r\n\r\n\t/**\r\n\t * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth'\r\n\t],\r\n\r\n\t/**\r\n\t * Data element option keys to be resolved in _resolveDataElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'pointStyle'\r\n\t],\r\n\r\n\tinitialize: function(chart, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tme.chart = chart;\r\n\t\tme.index = datasetIndex;\r\n\t\tme.linkScales();\r\n\t\tme.addElements();\r\n\t\tme._type = me.getMeta().type;\r\n\t},\r\n\r\n\tupdateIndex: function(datasetIndex) {\r\n\t\tthis.index = datasetIndex;\r\n\t},\r\n\r\n\tlinkScales: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar chart = me.chart;\r\n\t\tvar scales = chart.scales;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scalesOpts = chart.options.scales;\r\n\r\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\r\n\t\t\tmeta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\r\n\t\t}\r\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\r\n\t\t\tmeta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\r\n\t\t}\r\n\t},\r\n\r\n\tgetDataset: function() {\r\n\t\treturn this.chart.data.datasets[this.index];\r\n\t},\r\n\r\n\tgetMeta: function() {\r\n\t\treturn this.chart.getDatasetMeta(this.index);\r\n\t},\r\n\r\n\tgetScaleForId: function(scaleID) {\r\n\t\treturn this.chart.scales[scaleID];\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScale: function() {\r\n\t\treturn this.getScaleForId(this._getValueScaleId());\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScale: function() {\r\n\t\treturn this.getScaleForId(this._getIndexScaleId());\r\n\t},\r\n\r\n\treset: function() {\r\n\t\tthis._update(true);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tdestroy: function() {\r\n\t\tif (this._data) {\r\n\t\t\tunlistenArrayEvents(this._data, this);\r\n\t\t}\r\n\t},\r\n\r\n\tcreateMetaDataset: function() {\r\n\t\tvar me = this;\r\n\t\tvar type = me.datasetElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index\r\n\t\t});\r\n\t},\r\n\r\n\tcreateMetaData: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar type = me.dataElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index\r\n\t\t});\r\n\t},\r\n\r\n\taddElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data || [];\r\n\t\tvar metaData = meta.data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\r\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\r\n\t\t}\r\n\r\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\r\n\t},\r\n\r\n\taddElementAndReset: function(index) {\r\n\t\tvar element = this.createMetaData(index);\r\n\t\tthis.getMeta().data.splice(index, 0, element);\r\n\t\tthis.updateElement(element, index, true);\r\n\t},\r\n\r\n\tbuildOrUpdateElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar data = dataset.data || (dataset.data = []);\r\n\r\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\r\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\r\n\t\t// the internal meta data accordingly.\r\n\t\tif (me._data !== data) {\r\n\t\t\tif (me._data) {\r\n\t\t\t\t// This case happens when the user replaced the data array instance.\r\n\t\t\t\tunlistenArrayEvents(me._data, me);\r\n\t\t\t}\r\n\r\n\t\t\tif (data && Object.isExtensible(data)) {\r\n\t\t\t\tlistenArrayEvents(data, me);\r\n\t\t\t}\r\n\t\t\tme._data = data;\r\n\t\t}\r\n\r\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\r\n\t\t// any updates and so make sure that we handle number of datapoints changing.\r\n\t\tme.resyncElements();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the merged user-supplied and default dataset-level options\r\n\t * @private\r\n\t */\r\n\t_configure: function() {\r\n\t\tvar me = this;\r\n\t\tme._config = helpers$1.merge(Object.create(null), [\r\n\t\t\tme.chart.options.datasets[me._type],\r\n\t\t\tme.getDataset(),\r\n\t\t], {\r\n\t\t\tmerger: function(key, target, source) {\r\n\t\t\t\tif (key !== '_meta' && key !== 'data') {\r\n\t\t\t\t\thelpers$1._merger(key, target, source);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_update: function(reset) {\r\n\t\tvar me = this;\r\n\t\tme._configure();\r\n\t\tme._cachedDataOpts = null;\r\n\t\tme.update(reset);\r\n\t},\r\n\r\n\tupdate: helpers$1.noop,\r\n\r\n\ttransition: function(easingValue) {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].transition(easingValue);\r\n\t\t}\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.transition(easingValue);\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.draw();\r\n\t\t}\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].draw();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a set of predefined style properties that should be used to represent the dataset\r\n\t * or the data if the index is specified\r\n\t * @param {number} index - data index\r\n\t * @return {IStyleInterface} style object\r\n\t */\r\n\tgetStyle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = meta.dataset;\r\n\t\tvar style;\r\n\r\n\t\tme._configure();\r\n\t\tif (dataset && index === undefined) {\r\n\t\t\tstyle = me._resolveDatasetElementOptions(dataset || {});\r\n\t\t} else {\r\n\t\t\tindex = index || 0;\r\n\t\t\tstyle = me._resolveDataElementOptions(meta.data[index] || {}, index);\r\n\t\t}\r\n\r\n\t\tif (style.fill === false || style.fill === null) {\r\n\t\t\tstyle.backgroundColor = style.borderColor;\r\n\t\t}\r\n\r\n\t\treturn style;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element, hover) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = chart.options.elements[me.datasetElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._datasetElementOptions;\r\n\t\tvar values = {};\r\n\t\tvar i, ilen, key, readKey;\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index,\r\n\t\t\thover: hover\r\n\t\t};\r\n\r\n\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\tkey = elementOptions[i];\r\n\t\t\treadKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\r\n\t\t\tvalues[key] = resolve([\r\n\t\t\t\tcustom[readKey],\r\n\t\t\t\tdatasetOpts[readKey],\r\n\t\t\t\toptions[readKey]\r\n\t\t\t], context);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(element, index) {\r\n\t\tvar me = this;\r\n\t\tvar custom = element && element.custom;\r\n\t\tvar cached = me._cachedDataOpts;\r\n\t\tif (cached && !custom) {\r\n\t\t\treturn cached;\r\n\t\t}\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar options = chart.options.elements[me.dataElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._dataElementOptions;\r\n\t\tvar values = {};\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// `resolve` sets cacheable to `false` if any option is indexed or scripted\r\n\t\tvar info = {cacheable: !custom};\r\n\r\n\t\tvar keys, i, ilen, key;\r\n\r\n\t\tcustom = custom || {};\r\n\r\n\t\tif (helpers$1.isArray(elementOptions)) {\r\n\t\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\t\tkey = elementOptions[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tkeys = Object.keys(elementOptions);\r\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\t\tkey = keys[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[elementOptions[key]],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (info.cacheable) {\r\n\t\t\tme._cachedDataOpts = Object.freeze(values);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tremoveHoverStyle: function(element) {\r\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\r\n\t\tdelete element.$previousStyle;\r\n\t},\r\n\r\n\tsetHoverStyle: function(element) {\r\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\r\n\t\tvar index = element._index;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar model = element._model;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\telement.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\r\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\r\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_removeDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\r\n\t\tif (element) {\r\n\t\t\tthis.removeHoverStyle(element);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_setDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\t\tvar prev = {};\r\n\t\tvar i, ilen, key, keys, hoverOptions, model;\r\n\r\n\t\tif (!element) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tmodel = element._model;\r\n\t\thoverOptions = this._resolveDatasetElementOptions(element, true);\r\n\r\n\t\tkeys = Object.keys(hoverOptions);\r\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\tkey = keys[i];\r\n\t\t\tprev[key] = model[key];\r\n\t\t\tmodel[key] = hoverOptions[key];\r\n\t\t}\r\n\r\n\t\telement.$previousStyle = prev;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tresyncElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data;\r\n\t\tvar numMeta = meta.data.length;\r\n\t\tvar numData = data.length;\r\n\r\n\t\tif (numData < numMeta) {\r\n\t\t\tmeta.data.splice(numData, numMeta - numData);\r\n\t\t} else if (numData > numMeta) {\r\n\t\t\tme.insertElements(numMeta, numData - numMeta);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tinsertElements: function(start, count) {\r\n\t\tfor (var i = 0; i < count; ++i) {\r\n\t\t\tthis.addElementAndReset(start + i);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPush: function() {\r\n\t\tvar count = arguments.length;\r\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPop: function() {\r\n\t\tthis.getMeta().data.pop();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataShift: function() {\r\n\t\tthis.getMeta().data.shift();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataSplice: function(start, count) {\r\n\t\tthis.getMeta().data.splice(start, count);\r\n\t\tthis.insertElements(start, arguments.length - 2);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataUnshift: function() {\r\n\t\tthis.insertElements(0, arguments.length);\r\n\t}\r\n});\r\n\r\nDatasetController.extend = helpers$1.inherits;\r\n\r\nvar core_datasetController = DatasetController;\n\nvar TAU = Math.PI * 2;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tarc: {\r\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\r\n\t\t\tborderColor: '#fff',\r\n\t\t\tborderWidth: 2,\r\n\t\t\tborderAlign: 'center'\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction clipArc(ctx, arc) {\r\n\tvar startAngle = arc.startAngle;\r\n\tvar endAngle = arc.endAngle;\r\n\tvar pixelMargin = arc.pixelMargin;\r\n\tvar angleMargin = pixelMargin / arc.outerRadius;\r\n\tvar x = arc.x;\r\n\tvar y = arc.y;\r\n\r\n\t// Draw an inner border by cliping the arc and drawing a double-width border\r\n\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\r\n\tctx.beginPath();\r\n\tctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\r\n\tif (arc.innerRadius > pixelMargin) {\r\n\t\tangleMargin = pixelMargin / arc.innerRadius;\r\n\t\tctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\r\n\t} else {\r\n\t\tctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\r\n\t}\r\n\tctx.closePath();\r\n\tctx.clip();\r\n}\r\n\r\nfunction drawFullCircleBorders(ctx, vm, arc, inner) {\r\n\tvar endAngle = arc.endAngle;\r\n\tvar i;\r\n\r\n\tif (inner) {\r\n\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\tclipArc(ctx, arc);\r\n\t\tarc.endAngle = endAngle;\r\n\t\tif (arc.endAngle === arc.startAngle && arc.fullCircles) {\r\n\t\t\tarc.endAngle += TAU;\r\n\t\t\tarc.fullCircles--;\r\n\t\t}\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n}\r\n\r\nfunction drawBorder(ctx, vm, arc) {\r\n\tvar inner = vm.borderAlign === 'inner';\r\n\r\n\tif (inner) {\r\n\t\tctx.lineWidth = vm.borderWidth * 2;\r\n\t\tctx.lineJoin = 'round';\r\n\t} else {\r\n\t\tctx.lineWidth = vm.borderWidth;\r\n\t\tctx.lineJoin = 'bevel';\r\n\t}\r\n\r\n\tif (arc.fullCircles) {\r\n\t\tdrawFullCircleBorders(ctx, vm, arc, inner);\r\n\t}\r\n\r\n\tif (inner) {\r\n\t\tclipArc(ctx, arc);\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\tctx.closePath();\r\n\tctx.stroke();\r\n}\r\n\r\nvar element_arc = core_element.extend({\r\n\t_type: 'arc',\r\n\r\n\tinLabelRange: function(mouseX) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tinRange: function(chartX, chartY) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\r\n\t\t\tvar angle = pointRelativePosition.angle;\r\n\t\t\tvar distance = pointRelativePosition.distance;\r\n\r\n\t\t\t// Sanitise angle range\r\n\t\t\tvar startAngle = vm.startAngle;\r\n\t\t\tvar endAngle = vm.endAngle;\r\n\t\t\twhile (endAngle < startAngle) {\r\n\t\t\t\tendAngle += TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle > endAngle) {\r\n\t\t\t\tangle -= TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle < startAngle) {\r\n\t\t\t\tangle += TAU;\r\n\t\t\t}\r\n\r\n\t\t\t// Check if within the range of the open/close angle\r\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\r\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\r\n\r\n\t\t\treturn (betweenAngles && withinRadius);\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\r\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\r\n\t\treturn {\r\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\r\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\r\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\r\n\r\n\t\treturn {\r\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\r\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\r\n\t\tvar arc = {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tinnerRadius: vm.innerRadius,\r\n\t\t\touterRadius: Math.max(vm.outerRadius - pixelMargin, 0),\r\n\t\t\tpixelMargin: pixelMargin,\r\n\t\t\tstartAngle: vm.startAngle,\r\n\t\t\tendAngle: vm.endAngle,\r\n\t\t\tfullCircles: Math.floor(vm.circumference / TAU)\r\n\t\t};\r\n\t\tvar i;\r\n\r\n\t\tctx.save();\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.strokeStyle = vm.borderColor;\r\n\r\n\t\tif (arc.fullCircles) {\r\n\t\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\t\tctx.closePath();\r\n\t\t\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\t\t\tctx.fill();\r\n\t\t\t}\r\n\t\t\tarc.endAngle = arc.startAngle + vm.circumference % TAU;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\tctx.closePath();\r\n\t\tctx.fill();\r\n\r\n\t\tif (vm.borderWidth) {\r\n\t\t\tdrawBorder(ctx, vm, arc);\r\n\t\t}\r\n\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tline: {\r\n\t\t\ttension: 0.4,\r\n\t\t\tbackgroundColor: defaultColor,\r\n\t\t\tborderWidth: 3,\r\n\t\t\tborderColor: defaultColor,\r\n\t\t\tborderCapStyle: 'butt',\r\n\t\t\tborderDash: [],\r\n\t\t\tborderDashOffset: 0.0,\r\n\t\t\tborderJoinStyle: 'miter',\r\n\t\t\tcapBezierPoints: true,\r\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar element_line = core_element.extend({\r\n\t_type: 'line',\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar vm = me._view;\r\n\t\tvar ctx = me._chart.ctx;\r\n\t\tvar spanGaps = vm.spanGaps;\r\n\t\tvar points = me._children.slice(); // clone array\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\r\n\t\tvar lastDrawnIndex = -1;\r\n\t\tvar closePath = me._loop;\r\n\t\tvar index, previous, currentVM;\r\n\r\n\t\tif (!points.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (me._loop) {\r\n\t\t\tfor (index = 0; index < points.length; ++index) {\r\n\t\t\t\tprevious = helpers$1.previousItem(points, index);\r\n\t\t\t\t// If the line has an open path, shift the point array\r\n\t\t\t\tif (!points[index]._view.skip && previous._view.skip) {\r\n\t\t\t\t\tpoints = points.slice(index).concat(points.slice(0, index));\r\n\t\t\t\t\tclosePath = spanGaps;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// If the line has a close path, add the first point again\r\n\t\t\tif (closePath) {\r\n\t\t\t\tpoints.push(points[0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\r\n\t\t// Stroke Line Options\r\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\r\n\r\n\t\t// IE 9 and 10 do not support line dash\r\n\t\tif (ctx.setLineDash) {\r\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\r\n\t\t}\r\n\r\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\r\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\r\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\r\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\r\n\r\n\t\t// Stroke Line\r\n\t\tctx.beginPath();\r\n\r\n\t\t// First point moves to it's starting position no matter what\r\n\t\tcurrentVM = points[0]._view;\r\n\t\tif (!currentVM.skip) {\r\n\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\tlastDrawnIndex = 0;\r\n\t\t}\r\n\r\n\t\tfor (index = 1; index < points.length; ++index) {\r\n\t\t\tcurrentVM = points[index]._view;\r\n\t\t\tprevious = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\r\n\r\n\t\t\tif (!currentVM.skip) {\r\n\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\r\n\t\t\t\t\t// There was a gap and this is the first point after the gap\r\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Line to next point\r\n\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, currentVM);\r\n\t\t\t\t}\r\n\t\t\t\tlastDrawnIndex = index;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (closePath) {\r\n\t\t\tctx.closePath();\r\n\t\t}\r\n\r\n\t\tctx.stroke();\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor$1 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tpoint: {\r\n\t\t\tradius: 3,\r\n\t\t\tpointStyle: 'circle',\r\n\t\t\tbackgroundColor: defaultColor$1,\r\n\t\t\tborderColor: defaultColor$1,\r\n\t\t\tborderWidth: 1,\r\n\t\t\t// Hover\r\n\t\t\thitRadius: 1,\r\n\t\t\thoverRadius: 4,\r\n\t\t\thoverBorderWidth: 1\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction xRange(mouseX) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nfunction yRange(mouseY) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nvar element_point = core_element.extend({\r\n\t_type: 'point',\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\r\n\t},\r\n\r\n\tinLabelRange: xRange,\r\n\tinXRange: xRange,\r\n\tinYRange: yRange,\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tpadding: vm.radius + vm.borderWidth\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function(chartArea) {\r\n\t\tvar vm = this._view;\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar pointStyle = vm.pointStyle;\r\n\t\tvar rotation = vm.rotation;\r\n\t\tvar radius = vm.radius;\r\n\t\tvar x = vm.x;\r\n\t\tvar y = vm.y;\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\r\n\r\n\t\tif (vm.skip) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Clipping for Points.\r\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\r\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\r\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\r\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\r\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\r\n\t\t}\r\n\t}\r\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tbackgroundColor: defaultColor$2,\r\n\t\t\tborderColor: defaultColor$2,\r\n\t\t\tborderSkipped: 'bottom',\r\n\t\t\tborderWidth: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction isVertical(vm) {\r\n\treturn vm && vm.width !== undefined;\r\n}\r\n\r\n/**\r\n * Helper function to get the bounds of the bar regardless of the orientation\r\n * @param bar {Chart.Element.Rectangle} the bar\r\n * @return {Bounds} bounds of the bar\r\n * @private\r\n */\r\nfunction getBarBounds(vm) {\r\n\tvar x1, x2, y1, y2, half;\r\n\r\n\tif (isVertical(vm)) {\r\n\t\thalf = vm.width / 2;\r\n\t\tx1 = vm.x - half;\r\n\t\tx2 = vm.x + half;\r\n\t\ty1 = Math.min(vm.y, vm.base);\r\n\t\ty2 = Math.max(vm.y, vm.base);\r\n\t} else {\r\n\t\thalf = vm.height / 2;\r\n\t\tx1 = Math.min(vm.x, vm.base);\r\n\t\tx2 = Math.max(vm.x, vm.base);\r\n\t\ty1 = vm.y - half;\r\n\t\ty2 = vm.y + half;\r\n\t}\r\n\r\n\treturn {\r\n\t\tleft: x1,\r\n\t\ttop: y1,\r\n\t\tright: x2,\r\n\t\tbottom: y2\r\n\t};\r\n}\r\n\r\nfunction swap(orig, v1, v2) {\r\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\r\n}\r\n\r\nfunction parseBorderSkipped(vm) {\r\n\tvar edge = vm.borderSkipped;\r\n\tvar res = {};\r\n\r\n\tif (!edge) {\r\n\t\treturn res;\r\n\t}\r\n\r\n\tif (vm.horizontal) {\r\n\t\tif (vm.base > vm.x) {\r\n\t\t\tedge = swap(edge, 'left', 'right');\r\n\t\t}\r\n\t} else if (vm.base < vm.y) {\r\n\t\tedge = swap(edge, 'bottom', 'top');\r\n\t}\r\n\r\n\tres[edge] = true;\r\n\treturn res;\r\n}\r\n\r\nfunction parseBorderWidth(vm, maxW, maxH) {\r\n\tvar value = vm.borderWidth;\r\n\tvar skip = parseBorderSkipped(vm);\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = +value.top || 0;\r\n\t\tr = +value.right || 0;\r\n\t\tb = +value.bottom || 0;\r\n\t\tl = +value.left || 0;\r\n\t} else {\r\n\t\tt = r = b = l = +value || 0;\r\n\t}\r\n\r\n\treturn {\r\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\r\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\r\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\r\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\r\n\t};\r\n}\r\n\r\nfunction boundingRects(vm) {\r\n\tvar bounds = getBarBounds(vm);\r\n\tvar width = bounds.right - bounds.left;\r\n\tvar height = bounds.bottom - bounds.top;\r\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\r\n\r\n\treturn {\r\n\t\touter: {\r\n\t\t\tx: bounds.left,\r\n\t\t\ty: bounds.top,\r\n\t\t\tw: width,\r\n\t\t\th: height\r\n\t\t},\r\n\t\tinner: {\r\n\t\t\tx: bounds.left + border.l,\r\n\t\t\ty: bounds.top + border.t,\r\n\t\t\tw: width - border.l - border.r,\r\n\t\t\th: height - border.t - border.b\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction inRange(vm, x, y) {\r\n\tvar skipX = x === null;\r\n\tvar skipY = y === null;\r\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\r\n\r\n\treturn bounds\r\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\r\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\r\n}\r\n\r\nvar element_rectangle = core_element.extend({\r\n\t_type: 'rectangle',\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar rects = boundingRects(vm);\r\n\t\tvar outer = rects.outer;\r\n\t\tvar inner = rects.inner;\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\r\n\r\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\r\n\t\tctx.clip();\r\n\t\tctx.fillStyle = vm.borderColor;\r\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\r\n\t\tctx.fill('evenodd');\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\theight: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm.base - vm.y;\r\n\t},\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\treturn inRange(this._view, mouseX, mouseY);\r\n\t},\r\n\r\n\tinLabelRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn isVertical(vm)\r\n\t\t\t? inRange(vm, mouseX, null)\r\n\t\t\t: inRange(vm, null, mouseY);\r\n\t},\r\n\r\n\tinXRange: function(mouseX) {\r\n\t\treturn inRange(this._view, mouseX, null);\r\n\t},\r\n\r\n\tinYRange: function(mouseY) {\r\n\t\treturn inRange(this._view, null, mouseY);\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar x, y;\r\n\t\tif (isVertical(vm)) {\r\n\t\t\tx = vm.x;\r\n\t\t\ty = (vm.y + vm.base) / 2;\r\n\t\t} else {\r\n\t\t\tx = (vm.x + vm.base) / 2;\r\n\t\t\ty = vm.y;\r\n\t\t}\r\n\r\n\t\treturn {x: x, y: y};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\r\n\t\treturn isVertical(vm)\r\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\r\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t}\r\n});\n\nvar elements = {};\r\nvar Arc = element_arc;\r\nvar Line = element_line;\r\nvar Point = element_point;\r\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar deprecated = helpers$1._deprecated;\r\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('bar', {\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tbar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\r\n * @private\r\n */\r\nfunction computeMinSampleSize(scale, pixels) {\r\n\tvar min = scale._length;\r\n\tvar prev, curr, i, ilen;\r\n\r\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\r\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\r\n\t}\r\n\r\n\tfor (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\r\n\t\tcurr = scale.getPixelForTick(i);\r\n\t\tmin = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\r\n\t\tprev = curr;\r\n\t}\r\n\r\n\treturn min;\r\n}\r\n\r\n/**\r\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\r\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\r\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\r\n * @private\r\n */\r\nfunction computeFitCategoryTraits(index, ruler, options) {\r\n\tvar thickness = options.barThickness;\r\n\tvar count = ruler.stackCount;\r\n\tvar curr = ruler.pixels[index];\r\n\tvar min = helpers$1.isNullOrUndef(thickness)\r\n\t\t? computeMinSampleSize(ruler.scale, ruler.pixels)\r\n\t\t: -1;\r\n\tvar size, ratio;\r\n\r\n\tif (helpers$1.isNullOrUndef(thickness)) {\r\n\t\tsize = min * options.categoryPercentage;\r\n\t\tratio = options.barPercentage;\r\n\t} else {\r\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\r\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\r\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\r\n\t\tsize = thickness * count;\r\n\t\tratio = 1;\r\n\t}\r\n\r\n\treturn {\r\n\t\tchunk: size / count,\r\n\t\tratio: ratio,\r\n\t\tstart: curr - (size / 2)\r\n\t};\r\n}\r\n\r\n/**\r\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\r\n * percentage options are 1), based on the previous and following categories. This mode\r\n * generates bars with different widths when data are not evenly spaced.\r\n * @private\r\n */\r\nfunction computeFlexCategoryTraits(index, ruler, options) {\r\n\tvar pixels = ruler.pixels;\r\n\tvar curr = pixels[index];\r\n\tvar prev = index > 0 ? pixels[index - 1] : null;\r\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\r\n\tvar percent = options.categoryPercentage;\r\n\tvar start, size;\r\n\r\n\tif (prev === null) {\r\n\t\t// first data: its size is double based on the next point or,\r\n\t\t// if it's also the last data, we use the scale size.\r\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\r\n\t}\r\n\r\n\tif (next === null) {\r\n\t\t// last data: its size is also double based on the previous point.\r\n\t\tnext = curr + curr - prev;\r\n\t}\r\n\r\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\r\n\tsize = Math.abs(next - prev) / 2 * percent;\r\n\r\n\treturn {\r\n\t\tchunk: size / ruler.stackCount,\r\n\t\tratio: options.barPercentage,\r\n\t\tstart: start\r\n\t};\r\n}\r\n\r\nvar controller_bar = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Rectangle,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderSkipped',\r\n\t\t'borderWidth',\r\n\t\t'barPercentage',\r\n\t\t'barThickness',\r\n\t\t'categoryPercentage',\r\n\t\t'maxBarThickness',\r\n\t\t'minBarLength'\r\n\t],\r\n\r\n\tinitialize: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta, scaleOpts;\r\n\r\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\r\n\r\n\t\tmeta = me.getMeta();\r\n\t\tmeta.stack = me.getDataset().stack;\r\n\t\tmeta.bar = true;\r\n\r\n\t\tscaleOpts = me._getIndexScale().options;\r\n\t\tdeprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\r\n\t\tdeprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\r\n\t\tdeprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\r\n\t\tdeprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\r\n\t\tdeprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._ruler = me.getRuler();\r\n\r\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(rects[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(rectangle, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar options = me._resolveDataElementOptions(rectangle, index);\r\n\r\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\r\n\t\trectangle._datasetIndex = me.index;\r\n\t\trectangle._index = index;\r\n\t\trectangle._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderSkipped: options.borderSkipped,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\tdatasetLabel: dataset.label,\r\n\t\t\tlabel: me.chart.data.labels[index]\r\n\t\t};\r\n\r\n\t\tif (helpers$1.isArray(dataset.data[index])) {\r\n\t\t\trectangle._model.borderSkipped = null;\r\n\t\t}\r\n\r\n\t\tme._updateElementGeometry(rectangle, index, reset, options);\r\n\r\n\t\trectangle.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateElementGeometry: function(rectangle, index, reset, options) {\r\n\t\tvar me = this;\r\n\t\tvar model = rectangle._model;\r\n\t\tvar vscale = me._getValueScale();\r\n\t\tvar base = vscale.getBasePixel();\r\n\t\tvar horizontal = vscale.isHorizontal();\r\n\t\tvar ruler = me._ruler || me.getRuler();\r\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index, options);\r\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\r\n\r\n\t\tmodel.horizontal = horizontal;\r\n\t\tmodel.base = reset ? base : vpixels.base;\r\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\r\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\r\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\r\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stacks based on groups and bar visibility.\r\n\t * @param {number} [last] - The dataset index\r\n\t * @returns {string[]} The list of stack IDs\r\n\t * @private\r\n\t */\r\n\t_getStacks: function(last) {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar stacks = [];\r\n\t\tvar i, meta;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tmeta = metasets[i];\r\n\t\t\t// stacked | meta.stack\r\n\t\t\t// | found | not found | undefined\r\n\t\t\t// false | x | x | x\r\n\t\t\t// true | | x |\r\n\t\t\t// undefined | | x | x\r\n\t\t\tif (stacked === false || stacks.indexOf(meta.stack) === -1 ||\r\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\r\n\t\t\t\tstacks.push(meta.stack);\r\n\t\t\t}\r\n\t\t\tif (meta.index === last) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn stacks;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the effective number of stacks based on groups and bar visibility.\r\n\t * @private\r\n\t */\r\n\tgetStackCount: function() {\r\n\t\treturn this._getStacks().length;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\r\n\t * @param {number} [datasetIndex] - The dataset index\r\n\t * @param {string} [name] - The stack name to find\r\n\t * @returns {number} The stack index\r\n\t * @private\r\n\t */\r\n\tgetStackIndex: function(datasetIndex, name) {\r\n\t\tvar stacks = this._getStacks(datasetIndex);\r\n\t\tvar index = (name !== undefined)\r\n\t\t\t? stacks.indexOf(name)\r\n\t\t\t: -1; // indexOf returns -1 if element is not present\r\n\r\n\t\treturn (index === -1)\r\n\t\t\t? stacks.length - 1\r\n\t\t\t: index;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tgetRuler: function() {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar pixels = [];\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\r\n\t\t\tpixels.push(scale.getPixelForValue(null, i, me.index));\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tpixels: pixels,\r\n\t\t\tstart: scale._startPixel,\r\n\t\t\tend: scale._endPixel,\r\n\t\t\tstackCount: me.getStackCount(),\r\n\t\t\tscale: scale\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Note: pixel values are not clamped to the scale area.\r\n\t * @private\r\n\t */\r\n\tcalculateBarValuePixels: function(datasetIndex, index, options) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar isHorizontal = scale.isHorizontal();\r\n\t\tvar datasets = chart.data.datasets;\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar value = scale._parseValue(datasets[datasetIndex].data[index]);\r\n\t\tvar minBarLength = options.minBarLength;\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar stack = me.getMeta().stack;\r\n\t\tvar start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\r\n\t\tvar length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar i, imeta, ivalue, base, head, size, stackLength;\r\n\r\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\timeta = metasets[i];\r\n\r\n\t\t\t\tif (imeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (imeta.stack === stack) {\r\n\t\t\t\t\tstackLength = scale._parseValue(datasets[imeta.index].data[index]);\r\n\t\t\t\t\tivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\r\n\r\n\t\t\t\t\tif ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) {\r\n\t\t\t\t\t\tstart += ivalue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tbase = scale.getPixelForValue(start);\r\n\t\thead = scale.getPixelForValue(start + length);\r\n\t\tsize = head - base;\r\n\r\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\r\n\t\t\tsize = minBarLength;\r\n\t\t\tif (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\r\n\t\t\t\thead = base - minBarLength;\r\n\t\t\t} else {\r\n\t\t\t\thead = base + minBarLength;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tsize: size,\r\n\t\t\tbase: base,\r\n\t\t\thead: head,\r\n\t\t\tcenter: head + size / 2\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler, options) {\r\n\t\tvar me = this;\r\n\t\tvar range = options.barThickness === 'flex'\r\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\r\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\r\n\r\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\r\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\r\n\t\tvar size = Math.min(\r\n\t\t\tvalueOrDefault$3(options.maxBarThickness, Infinity),\r\n\t\t\trange.chunk * range.ratio);\r\n\r\n\t\treturn {\r\n\t\t\tbase: center - size / 2,\r\n\t\t\thead: center + size / 2,\r\n\t\t\tcenter: center,\r\n\t\t\tsize: size\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar ilen = rects.length;\r\n\t\tvar i = 0;\r\n\r\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tvar val = scale._parseValue(dataset.data[i]);\r\n\t\t\tif (!isNaN(val.min) && !isNaN(val.max)) {\r\n\t\t\t\trects[i].draw();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\r\n\t\tvar indexOpts = me._getIndexScale().options;\r\n\t\tvar valueOpts = me._getValueScale().options;\r\n\r\n\t\tvalues.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\r\n\t\tvalues.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\r\n\t\tvalues.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\r\n\t\tvalues.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\r\n\t\tvalues.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\r\n\r\n\t\treturn values;\r\n\t}\r\n\r\n});\n\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\r\nvar resolve$1 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('bubble', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\r\n\t\t\tposition: 'bottom',\r\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\r\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\r\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_bubble = core_datasetController.extend({\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t\t'hoverRadius',\r\n\t\t'hitRadius',\r\n\t\t'pointStyle',\r\n\t\t'rotation'\r\n\t],\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data;\r\n\r\n\t\t// Update Points\r\n\t\thelpers$1.each(points, function(point, index) {\r\n\t\t\tme.updateElement(point, index, reset);\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar data = me.getDataset().data[index];\r\n\t\tvar dsIndex = me.index;\r\n\r\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\r\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\r\n\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = dsIndex;\r\n\t\tpoint._index = index;\r\n\t\tpoint._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\thitRadius: options.hitRadius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tradius: reset ? 0 : options.radius,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t};\r\n\r\n\t\tpoint.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = options.radius + options.hoverRadius;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(point, index) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar data = dataset.data[index] || {};\r\n\t\tvar values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments);\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// In case values were cached (and thus frozen), we need to clone the values\r\n\t\tif (me._cachedDataOpts === values) {\r\n\t\t\tvalues = helpers$1.extend({}, values);\r\n\t\t}\r\n\r\n\t\t// Custom radius resolution\r\n\t\tvalues.radius = resolve$1([\r\n\t\t\tcustom.radius,\r\n\t\t\tdata.r,\r\n\t\t\tme._config.radius,\r\n\t\t\tchart.options.elements.point.radius\r\n\t\t], context, index);\r\n\r\n\t\treturn values;\r\n\t}\r\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\r\n\r\nvar PI$1 = Math.PI;\r\nvar DOUBLE_PI$1 = PI$1 * 2;\r\nvar HALF_PI$1 = PI$1 / 2;\r\n\r\ncore_defaults._set('doughnut', {\r\n\tanimation: {\r\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\r\n\t\tanimateRotate: true,\r\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\r\n\t\tanimateScale: false\r\n\t},\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t// toggle visibility of index if exists\r\n\t\t\t\tif (meta.data[index]) {\r\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// The percentage of the chart that we cut out of the middle.\r\n\tcutoutPercentage: 50,\r\n\r\n\t// The rotation of the chart, where the first data arc begins.\r\n\trotation: -HALF_PI$1,\r\n\r\n\t// The total circumference of the chart.\r\n\tcircumference: DOUBLE_PI$1,\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\r\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n\r\n\t\t\t\tif (helpers$1.isArray(dataLabel)) {\r\n\t\t\t\t\t// show value on first line of multiline label\r\n\t\t\t\t\t// need to clone because we are changing the value\r\n\t\t\t\t\tdataLabel = dataLabel.slice();\r\n\t\t\t\t\tdataLabel[0] += value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdataLabel += value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn dataLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_doughnut = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\r\n\tgetRingIndex: function(datasetIndex) {\r\n\t\tvar ringIndex = 0;\r\n\r\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\r\n\t\t\tif (this.chart.isDatasetVisible(j)) {\r\n\t\t\t\t++ringIndex;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringIndex;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar ratioX = 1;\r\n\t\tvar ratioY = 1;\r\n\t\tvar offsetX = 0;\r\n\t\tvar offsetY = 0;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar arcs = meta.data;\r\n\t\tvar cutout = opts.cutoutPercentage / 100 || 0;\r\n\t\tvar circumference = opts.circumference;\r\n\t\tvar chartWeight = me._getRingWeight(me.index);\r\n\t\tvar maxWidth, maxHeight, i, ilen;\r\n\r\n\t\t// If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\r\n\t\tif (circumference < DOUBLE_PI$1) {\r\n\t\t\tvar startAngle = opts.rotation % DOUBLE_PI$1;\r\n\t\t\tstartAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\r\n\t\t\tvar endAngle = startAngle + circumference;\r\n\t\t\tvar startX = Math.cos(startAngle);\r\n\t\t\tvar startY = Math.sin(startAngle);\r\n\t\t\tvar endX = Math.cos(endAngle);\r\n\t\t\tvar endY = Math.sin(endAngle);\r\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || endAngle >= DOUBLE_PI$1;\r\n\t\t\tvar contains90 = (startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1) || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\r\n\t\t\tvar contains180 = startAngle === -PI$1 || endAngle >= PI$1;\r\n\t\t\tvar contains270 = (startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1) || endAngle >= PI$1 + HALF_PI$1;\r\n\t\t\tvar minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tvar maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tratioX = (maxX - minX) / 2;\r\n\t\t\tratioY = (maxY - minY) / 2;\r\n\t\t\toffsetX = -(maxX + minX) / 2;\r\n\t\t\toffsetY = -(maxY + minY) / 2;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t}\r\n\r\n\t\tchart.borderWidth = me.getMaxBorderWidth();\r\n\t\tmaxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\r\n\t\tmaxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\r\n\t\tchart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\r\n\t\tchart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\r\n\t\tchart.offsetX = offsetX * chart.outerRadius;\r\n\t\tchart.offsetY = offsetY * chart.outerRadius;\r\n\r\n\t\tmeta.total = me.calculateTotal();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\r\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\r\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\r\n\t\tvar startAngle = opts.rotation; // non reset case handled later\r\n\t\tvar endAngle = opts.rotation; // non reset case handled later\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\r\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\r\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX + chart.offsetX,\r\n\t\t\t\ty: centerY + chart.offsetY,\r\n\t\t\t\tstartAngle: startAngle,\r\n\t\t\t\tendAngle: endAngle,\r\n\t\t\t\tcircumference: circumference,\r\n\t\t\t\touterRadius: outerRadius,\r\n\t\t\t\tinnerRadius: innerRadius,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar model = arc._model;\r\n\r\n\t\t// Set correct angles if not resetting\r\n\t\tif (!reset || !animationOpts.animateRotate) {\r\n\t\t\tif (index === 0) {\r\n\t\t\t\tmodel.startAngle = opts.rotation;\r\n\t\t\t} else {\r\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\r\n\t\t\t}\r\n\r\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\r\n\t\t}\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcalculateTotal: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar total = 0;\r\n\t\tvar value;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tvalue = dataset.data[index];\r\n\t\t\tif (!isNaN(value) && !element.hidden) {\r\n\t\t\t\ttotal += Math.abs(value);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t/* if (total === 0) {\r\n\t\t\ttotal = NaN;\r\n\t\t}*/\r\n\r\n\t\treturn total;\r\n\t},\r\n\r\n\tcalculateCircumference: function(value) {\r\n\t\tvar total = this.getMeta().total;\r\n\t\tif (total > 0 && !isNaN(value)) {\r\n\t\t\treturn DOUBLE_PI$1 * (Math.abs(value) / total);\r\n\t\t}\r\n\t\treturn 0;\r\n\t},\r\n\r\n\t// gets the max border or hover width to properly scale pie charts\r\n\tgetMaxBorderWidth: function(arcs) {\r\n\t\tvar me = this;\r\n\t\tvar max = 0;\r\n\t\tvar chart = me.chart;\r\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\r\n\r\n\t\tif (!arcs) {\r\n\t\t\t// Find the outmost visible dataset\r\n\t\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\r\n\t\t\t\tif (chart.isDatasetVisible(i)) {\r\n\t\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t\tarcs = meta.data;\r\n\t\t\t\t\tif (i !== me.index) {\r\n\t\t\t\t\t\tcontroller = meta.controller;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!arcs) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarc = arcs[i];\r\n\t\t\tif (controller) {\r\n\t\t\t\tcontroller._configure();\r\n\t\t\t\toptions = controller._resolveDataElementOptions(arc, i);\r\n\t\t\t} else {\r\n\t\t\t\toptions = arc._options;\r\n\t\t\t}\r\n\t\t\tif (options.borderAlign !== 'inner') {\r\n\t\t\t\tborderWidth = options.borderWidth;\r\n\t\t\t\thoverWidth = options.hoverBorderWidth;\r\n\r\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\r\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn max;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\r\n\t * @private\r\n\t */\r\n\t_getRingWeightOffset: function(datasetIndex) {\r\n\t\tvar ringWeightOffset = 0;\r\n\r\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\r\n\t\t\tif (this.chart.isDatasetVisible(i)) {\r\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringWeightOffset;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getRingWeight: function(dataSetIndex) {\r\n\t\treturn Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the sum of all visibile data set weights. This value can be 0.\r\n\t * @private\r\n\t */\r\n\t_getVisibleDatasetWeightTotal: function() {\r\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\r\n\t}\r\n});\n\ncore_defaults._set('horizontalBar', {\r\n\thover: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tposition: 'left',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}]\r\n\t},\r\n\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tborderSkipped: 'left'\r\n\t\t}\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\thorizontalBar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_horizontalBar = controller_bar.extend({\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t}\r\n});\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\r\nvar resolve$2 = helpers$1.options.resolve;\r\nvar isPointInArea = helpers$1.canvas._isPointInArea;\r\n\r\ncore_defaults._set('line', {\r\n\tshowLines: true,\r\n\tspanGaps: false,\r\n\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tid: 'x-axis-0'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\nfunction scaleClip(scale, halfBorderWidth) {\r\n\tvar tickOpts = scale && scale.options.ticks || {};\r\n\tvar reverse = tickOpts.reverse;\r\n\tvar min = tickOpts.min === undefined ? halfBorderWidth : 0;\r\n\tvar max = tickOpts.max === undefined ? halfBorderWidth : 0;\r\n\treturn {\r\n\t\tstart: reverse ? max : min,\r\n\t\tend: reverse ? min : max\r\n\t};\r\n}\r\n\r\nfunction defaultClip(xScale, yScale, borderWidth) {\r\n\tvar halfBorderWidth = borderWidth / 2;\r\n\tvar x = scaleClip(xScale, halfBorderWidth);\r\n\tvar y = scaleClip(yScale, halfBorderWidth);\r\n\r\n\treturn {\r\n\t\ttop: y.end,\r\n\t\tright: x.end,\r\n\t\tbottom: y.start,\r\n\t\tleft: x.start\r\n\t};\r\n}\r\n\r\nfunction toClip(value) {\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = value.top;\r\n\t\tr = value.right;\r\n\t\tb = value.bottom;\r\n\t\tl = value.left;\r\n\t} else {\r\n\t\tt = r = b = l = value;\r\n\t}\r\n\r\n\treturn {\r\n\t\ttop: t,\r\n\t\tright: r,\r\n\t\tbottom: b,\r\n\t\tleft: l\r\n\t};\r\n}\r\n\r\n\r\nvar controller_line = core_datasetController.extend({\r\n\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth',\r\n\t\t'cubicInterpolationMode',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar options = me.chart.options;\r\n\t\tvar config = me._config;\r\n\t\tvar showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tme._yScale = me.getScaleForId(meta.yAxisID);\r\n\r\n\t\t// Update Line\r\n\t\tif (showLine) {\r\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\t\tconfig.lineTension = config.tension;\r\n\t\t\t}\r\n\r\n\t\t\t// Utility\r\n\t\t\tline._scale = me._yScale;\r\n\t\t\tline._datasetIndex = me.index;\r\n\t\t\t// Data\r\n\t\t\tline._children = points;\r\n\t\t\t// Model\r\n\t\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\t\tline.pivot();\r\n\t\t}\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\tif (showLine && line._model.tension !== 0) {\r\n\t\t\tme.updateBezierControlPoints();\r\n\t\t}\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar datasetIndex = me.index;\r\n\t\tvar value = dataset.data[index];\r\n\t\tvar xScale = me._xScale;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar x, y;\r\n\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\r\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\r\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\r\n\r\n\t\t// Utility\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = datasetIndex;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\r\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element) {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = me.chart.options;\r\n\t\tvar lineOptions = options.elements.line;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\t// The default behavior of lines is to break at null values, according\r\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\r\n\t\t// This option gives lines the ability to span gaps\r\n\t\tvalues.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\r\n\t\tvalues.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\r\n\t\tvalues.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tcalculatePointY: function(value, index, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar sumPos = 0;\r\n\t\tvar sumNeg = 0;\r\n\t\tvar i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\r\n\r\n\t\tif (yScale.options.stacked) {\r\n\t\t\trightValue = +yScale.getRightValue(value);\r\n\t\t\tmetasets = chart._getSortedVisibleDatasetMetas();\r\n\t\t\tilen = metasets.length;\r\n\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\tdsMeta = metasets[i];\r\n\t\t\t\tif (dsMeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tds = chart.data.datasets[dsMeta.index];\r\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\r\n\t\t\t\t\tstackedRightValue = +yScale.getRightValue(ds.data[index]);\r\n\t\t\t\t\tif (stackedRightValue < 0) {\r\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (rightValue < 0) {\r\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\r\n\t\t\t}\r\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\r\n\t\t}\r\n\t\treturn yScale.getPixelForValue(value);\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (lineModel.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\r\n\t\t\thelpers$1.splineCurveMonotone(points);\r\n\t\t} else {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\r\n\t\t\t\t\tmodel,\r\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\r\n\t\t\t\t\tlineModel.tension\r\n\t\t\t\t);\r\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\r\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\r\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\r\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (chart.options.elements.line.capBezierPoints) {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tif (isPointInArea(model, area)) {\r\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data || [];\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar canvas = chart.canvas;\r\n\t\tvar i = 0;\r\n\t\tvar ilen = points.length;\r\n\t\tvar clip;\r\n\r\n\t\tif (me._showLine) {\r\n\t\t\tclip = meta.dataset._model.clip;\r\n\r\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\r\n\t\t\t\tleft: clip.left === false ? 0 : area.left - clip.left,\r\n\t\t\t\tright: clip.right === false ? canvas.width : area.right + clip.right,\r\n\t\t\t\ttop: clip.top === false ? 0 : area.top - clip.top,\r\n\t\t\t\tbottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\r\n\t\t\t});\r\n\r\n\t\t\tmeta.dataset.draw();\r\n\r\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t\t}\r\n\r\n\t\t// Draw the points\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tpoints[i].draw(area);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\r\n\t},\r\n});\n\nvar resolve$3 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('polarArea', {\r\n\tscale: {\r\n\t\ttype: 'radialLinear',\r\n\t\tangleLines: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tgridLines: {\r\n\t\t\tcircular: true\r\n\t\t},\r\n\t\tpointLabels: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tticks: {\r\n\t\t\tbeginAtZero: true\r\n\t\t}\r\n\t},\r\n\r\n\t// Boolean - Whether to animate the rotation of the chart\r\n\tanimation: {\r\n\t\tanimateRotate: true,\r\n\t\tanimateScale: true\r\n\t},\r\n\r\n\tstartAngle: -0.5 * Math.PI,\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_polarArea = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar start = me.chart.options.startAngle || 0;\r\n\t\tvar starts = me._starts = [];\r\n\t\tvar angles = me._angles = [];\r\n\t\tvar arcs = meta.data;\r\n\t\tvar i, ilen, angle;\r\n\r\n\t\tme._updateRadius();\r\n\r\n\t\tmeta.count = me.countVisibleElements();\r\n\r\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\r\n\t\t\tstarts[i] = start;\r\n\t\t\tangle = me._computeAngle(i);\r\n\t\t\tangles[i] = angle;\r\n\t\t\tstart += angle;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateRadius: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\r\n\r\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\r\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\r\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar scale = chart.scale;\r\n\t\tvar labels = chart.data.labels;\r\n\r\n\t\tvar centerX = scale.xCenter;\r\n\t\tvar centerY = scale.yCenter;\r\n\r\n\t\t// var negHalfPI = -0.5 * Math.PI;\r\n\t\tvar datasetStartAngle = opts.startAngle;\r\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar startAngle = me._starts[index];\r\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\r\n\r\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\t\t\t_scale: scale,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX,\r\n\t\t\t\ty: centerY,\r\n\t\t\t\tinnerRadius: 0,\r\n\t\t\t\touterRadius: reset ? resetRadius : distance,\r\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\r\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcountVisibleElements: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar count = 0;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn count;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_computeAngle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar count = this.getMeta().count;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\r\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: me.chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\treturn resolve$3([\r\n\t\t\tme.chart.options.elements.arc.angle,\r\n\t\t\t(2 * Math.PI) / count\r\n\t\t], context, index);\r\n\t}\r\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\r\ncore_defaults._set('pie', {\r\n\tcutoutPercentage: 0\r\n});\r\n\r\n// Pie charts are Doughnut chart with different defaults\r\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('radar', {\r\n\tspanGaps: false,\r\n\tscale: {\r\n\t\ttype: 'radialLinear'\r\n\t},\r\n\telements: {\r\n\t\tline: {\r\n\t\t\tfill: 'start',\r\n\t\t\ttension: 0 // no bezier in radar\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_radar = core_datasetController.extend({\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderWidth',\r\n\t\t'borderColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar config = me._config;\r\n\t\tvar i, ilen;\r\n\r\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\tconfig.lineTension = config.tension;\r\n\t\t}\r\n\r\n\t\t// Utility\r\n\t\tline._scale = scale;\r\n\t\tline._datasetIndex = me.index;\r\n\t\t// Data\r\n\t\tline._children = points;\r\n\t\tline._loop = true;\r\n\t\t// Model\r\n\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\tline.pivot();\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\t// Update bezier control points\r\n\t\tme.updateBezierControlPoints();\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar lineModel = me.getMeta().dataset._model;\r\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\r\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\r\n\r\n\t\t// Utility\r\n\t\tpoint._scale = scale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = me.index;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\r\n\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar options = me.chart.options;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\tvalues.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar area = me.chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (meta.dataset._model.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tmodel = points[i]._model;\r\n\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\r\n\t\t\t\tmodel,\r\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\r\n\t\t\t\tmodel.tension\r\n\t\t\t);\r\n\r\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\r\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\r\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\r\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\r\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\r\n\t\t}\r\n\t},\r\n\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$7(options.hoverRadius, options.radius);\r\n\t}\r\n});\n\ncore_defaults._set('scatter', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\r\n\t\t\ttype: 'linear', // scatter should not use a category axis\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\tid: 'y-axis-1',\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\r\n\t\t\t},\r\n\t\t\tlabel: function(item) {\r\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tscatter: {\r\n\t\t\tshowLine: false\r\n\t\t}\r\n\t}\r\n});\r\n\r\n// Scatter charts use line controllers\r\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\r\n// the class, and so must be CamelCase in order to be correctly retrieved\r\n// by the controller in core.controller.js (`controllers[meta.type]`).\r\n\r\nvar controllers = {\r\n\tbar: controller_bar,\r\n\tbubble: controller_bubble,\r\n\tdoughnut: controller_doughnut,\r\n\thorizontalBar: controller_horizontalBar,\r\n\tline: controller_line,\r\n\tpolarArea: controller_polarArea,\r\n\tpie: controller_pie,\r\n\tradar: controller_radar,\r\n\tscatter: controller_scatter\r\n};\n\n/**\r\n * Helper function to get relative position for an event\r\n * @param {Event|IEvent} event - The event to get the position for\r\n * @param {Chart} chart - The chart\r\n * @returns {object} the event position\r\n */\r\nfunction getRelativePosition(e, chart) {\r\n\tif (e.native) {\r\n\t\treturn {\r\n\t\t\tx: e.x,\r\n\t\t\ty: e.y\r\n\t\t};\r\n\t}\r\n\r\n\treturn helpers$1.getRelativePosition(e, chart);\r\n}\r\n\r\n/**\r\n * Helper function to traverse all of the visible elements in the chart\r\n * @param {Chart} chart - the chart\r\n * @param {function} handler - the callback to execute for each visible item\r\n */\r\nfunction parseVisibleItems(chart, handler) {\r\n\tvar metasets = chart._getSortedVisibleDatasetMetas();\r\n\tvar metadata, i, j, ilen, jlen, element;\r\n\r\n\tfor (i = 0, ilen = metasets.length; i < ilen; ++i) {\r\n\t\tmetadata = metasets[i].data;\r\n\t\tfor (j = 0, jlen = metadata.length; j < jlen; ++j) {\r\n\t\t\telement = metadata[j];\r\n\t\t\tif (!element._view.skip) {\r\n\t\t\t\thandler(element);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper function to get the items that intersect the event position\r\n * @param {ChartElement[]} items - elements to filter\r\n * @param {object} position - the point to be nearest to\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getIntersectItems(chart, position) {\r\n\tvar elements = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\r\n * @param {Chart} chart - the chart to look at elements from\r\n * @param {object} position - the point to be nearest to\r\n * @param {boolean} intersect - if true, only consider items that intersect the position\r\n * @param {function} distanceMetric - function to provide the distance between points\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\r\n\tvar minDistance = Number.POSITIVE_INFINITY;\r\n\tvar nearestItems = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar center = element.getCenterPoint();\r\n\t\tvar distance = distanceMetric(position, center);\r\n\t\tif (distance < minDistance) {\r\n\t\t\tnearestItems = [element];\r\n\t\t\tminDistance = distance;\r\n\t\t} else if (distance === minDistance) {\r\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\r\n\t\t\tnearestItems.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn nearestItems;\r\n}\r\n\r\n/**\r\n * Get a distance metric function for two points based on the\r\n * axis mode setting\r\n * @param {string} axis - the axis mode. x|y|xy\r\n */\r\nfunction getDistanceMetricForAxis(axis) {\r\n\tvar useX = axis.indexOf('x') !== -1;\r\n\tvar useY = axis.indexOf('y') !== -1;\r\n\r\n\treturn function(pt1, pt2) {\r\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\r\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\r\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\r\n\t};\r\n}\r\n\r\nfunction indexMode(chart, e, options) {\r\n\tvar position = getRelativePosition(e, chart);\r\n\t// Default axis for index mode is 'x' to match old behaviour\r\n\toptions.axis = options.axis || 'x';\r\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\tvar elements = [];\r\n\r\n\tif (!items.length) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\tchart._getSortedVisibleDatasetMetas().forEach(function(meta) {\r\n\t\tvar element = meta.data[items[0]._index];\r\n\r\n\t\t// don't count items that are skipped (null data)\r\n\t\tif (element && !element._view.skip) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * @interface IInteractionOptions\r\n */\r\n/**\r\n * If true, only consider items that intersect the point\r\n * @name IInterfaceOptions#boolean\r\n * @type Boolean\r\n */\r\n\r\n/**\r\n * Contains interaction related functions\r\n * @namespace Chart.Interaction\r\n */\r\nvar core_interaction = {\r\n\t// Helper function for different modes\r\n\tmodes: {\r\n\t\tsingle: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar elements = [];\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\telements.push(element);\r\n\t\t\t\t\treturn elements;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn elements.slice(0, 1);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.label\r\n\t\t * @deprecated since version 2.4.0\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\tlabel: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\r\n\t\t * @function Chart.Interaction.modes.index\r\n\t\t * @since v2.4.0\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tindex: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\r\n\t\t * @function Chart.Interaction.modes.dataset\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tdataset: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\r\n\t\t\tif (items.length > 0) {\r\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\r\n\t\t\t}\r\n\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.x-axis\r\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\t'x-axis': function(chart, e) {\r\n\t\t\treturn indexMode(chart, e, {intersect: false});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Point mode returns all elements that hit test based on the event position\r\n\t\t * of the event\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tpoint: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\treturn getIntersectItems(chart, position);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * nearest mode returns the element closest to the point\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tnearest: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * x mode returns the elements that hit-test at the current x coordinate\r\n\t\t * @function Chart.Interaction.modes.x\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tx: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inXRange(position.x)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * y mode returns the elements that hit-test at the current y coordinate\r\n\t\t * @function Chart.Interaction.modes.y\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\ty: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inYRange(position.y)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t}\r\n\t}\r\n};\n\nvar extend = helpers$1.extend;\r\n\r\nfunction filterByPosition(array, position) {\r\n\treturn helpers$1.where(array, function(v) {\r\n\t\treturn v.pos === position;\r\n\t});\r\n}\r\n\r\nfunction sortByWeight(array, reverse) {\r\n\treturn array.sort(function(a, b) {\r\n\t\tvar v0 = reverse ? b : a;\r\n\t\tvar v1 = reverse ? a : b;\r\n\t\treturn v0.weight === v1.weight ?\r\n\t\t\tv0.index - v1.index :\r\n\t\t\tv0.weight - v1.weight;\r\n\t});\r\n}\r\n\r\nfunction wrapBoxes(boxes) {\r\n\tvar layoutBoxes = [];\r\n\tvar i, ilen, box;\r\n\r\n\tfor (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\r\n\t\tbox = boxes[i];\r\n\t\tlayoutBoxes.push({\r\n\t\t\tindex: i,\r\n\t\t\tbox: box,\r\n\t\t\tpos: box.position,\r\n\t\t\thorizontal: box.isHorizontal(),\r\n\t\t\tweight: box.weight\r\n\t\t});\r\n\t}\r\n\treturn layoutBoxes;\r\n}\r\n\r\nfunction setLayoutDims(layouts, params) {\r\n\tvar i, ilen, layout;\r\n\tfor (i = 0, ilen = layouts.length; i < ilen; ++i) {\r\n\t\tlayout = layouts[i];\r\n\t\t// store width used instead of chartArea.w in fitBoxes\r\n\t\tlayout.width = layout.horizontal\r\n\t\t\t? layout.box.fullWidth && params.availableWidth\r\n\t\t\t: params.vBoxMaxWidth;\r\n\t\t// store height used instead of chartArea.h in fitBoxes\r\n\t\tlayout.height = layout.horizontal && params.hBoxMaxHeight;\r\n\t}\r\n}\r\n\r\nfunction buildLayoutBoxes(boxes) {\r\n\tvar layoutBoxes = wrapBoxes(boxes);\r\n\tvar left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\r\n\tvar right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\r\n\tvar top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\r\n\tvar bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\r\n\r\n\treturn {\r\n\t\tleftAndTop: left.concat(top),\r\n\t\trightAndBottom: right.concat(bottom),\r\n\t\tchartArea: filterByPosition(layoutBoxes, 'chartArea'),\r\n\t\tvertical: left.concat(right),\r\n\t\thorizontal: top.concat(bottom)\r\n\t};\r\n}\r\n\r\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\r\n\treturn Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\r\n}\r\n\r\nfunction updateDims(chartArea, params, layout) {\r\n\tvar box = layout.box;\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\tvar newWidth, newHeight;\r\n\r\n\tif (layout.size) {\r\n\t\t// this layout was already counted for, lets first reduce old size\r\n\t\tchartArea[layout.pos] -= layout.size;\r\n\t}\r\n\tlayout.size = layout.horizontal ? box.height : box.width;\r\n\tchartArea[layout.pos] += layout.size;\r\n\r\n\tif (box.getPadding) {\r\n\t\tvar boxPadding = box.getPadding();\r\n\t\tmaxPadding.top = Math.max(maxPadding.top, boxPadding.top);\r\n\t\tmaxPadding.left = Math.max(maxPadding.left, boxPadding.left);\r\n\t\tmaxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\r\n\t\tmaxPadding.right = Math.max(maxPadding.right, boxPadding.right);\r\n\t}\r\n\r\n\tnewWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\r\n\tnewHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\r\n\r\n\tif (newWidth !== chartArea.w || newHeight !== chartArea.h) {\r\n\t\tchartArea.w = newWidth;\r\n\t\tchartArea.h = newHeight;\r\n\r\n\t\t// return true if chart area changed in layout's direction\r\n\t\tvar sizes = layout.horizontal ? [newWidth, chartArea.w] : [newHeight, chartArea.h];\r\n\t\treturn sizes[0] !== sizes[1] && (!isNaN(sizes[0]) || !isNaN(sizes[1]));\r\n\t}\r\n}\r\n\r\nfunction handleMaxPadding(chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction updatePos(pos) {\r\n\t\tvar change = Math.max(maxPadding[pos] - chartArea[pos], 0);\r\n\t\tchartArea[pos] += change;\r\n\t\treturn change;\r\n\t}\r\n\tchartArea.y += updatePos('top');\r\n\tchartArea.x += updatePos('left');\r\n\tupdatePos('right');\r\n\tupdatePos('bottom');\r\n}\r\n\r\nfunction getMargins(horizontal, chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction marginForPositions(positions) {\r\n\t\tvar margin = {left: 0, top: 0, right: 0, bottom: 0};\r\n\t\tpositions.forEach(function(pos) {\r\n\t\t\tmargin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\r\n\t\t});\r\n\t\treturn margin;\r\n\t}\r\n\r\n\treturn horizontal\r\n\t\t? marginForPositions(['left', 'right'])\r\n\t\t: marginForPositions(['top', 'bottom']);\r\n}\r\n\r\nfunction fitBoxes(boxes, chartArea, params) {\r\n\tvar refitBoxes = [];\r\n\tvar i, ilen, layout, box, refit, changed;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\r\n\t\tbox.update(\r\n\t\t\tlayout.width || chartArea.w,\r\n\t\t\tlayout.height || chartArea.h,\r\n\t\t\tgetMargins(layout.horizontal, chartArea)\r\n\t\t);\r\n\t\tif (updateDims(chartArea, params, layout)) {\r\n\t\t\tchanged = true;\r\n\t\t\tif (refitBoxes.length) {\r\n\t\t\t\t// Dimensions changed and there were non full width boxes before this\r\n\t\t\t\t// -> we have to refit those\r\n\t\t\t\trefit = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!box.fullWidth) { // fullWidth boxes don't need to be re-fitted in any case\r\n\t\t\trefitBoxes.push(layout);\r\n\t\t}\r\n\t}\r\n\r\n\treturn refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\r\n}\r\n\r\nfunction placeBoxes(boxes, chartArea, params) {\r\n\tvar userPadding = params.padding;\r\n\tvar x = chartArea.x;\r\n\tvar y = chartArea.y;\r\n\tvar i, ilen, layout, box;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\t\tif (layout.horizontal) {\r\n\t\t\tbox.left = box.fullWidth ? userPadding.left : chartArea.left;\r\n\t\t\tbox.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\r\n\t\t\tbox.top = y;\r\n\t\t\tbox.bottom = y + box.height;\r\n\t\t\tbox.width = box.right - box.left;\r\n\t\t\ty = box.bottom;\r\n\t\t} else {\r\n\t\t\tbox.left = x;\r\n\t\t\tbox.right = x + box.width;\r\n\t\t\tbox.top = chartArea.top;\r\n\t\t\tbox.bottom = chartArea.top + chartArea.h;\r\n\t\t\tbox.height = box.bottom - box.top;\r\n\t\t\tx = box.right;\r\n\t\t}\r\n\t}\r\n\r\n\tchartArea.x = x;\r\n\tchartArea.y = y;\r\n}\r\n\r\ncore_defaults._set('global', {\r\n\tlayout: {\r\n\t\tpadding: {\r\n\t\t\ttop: 0,\r\n\t\t\tright: 0,\r\n\t\t\tbottom: 0,\r\n\t\t\tleft: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * @interface ILayoutItem\r\n * @prop {string} position - The position of the item in the chart layout. Possible values are\r\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\r\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\r\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\r\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\r\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\r\n * @prop {function} getPadding - Returns an object with padding on the edges\r\n * @prop {number} width - Width of item. Must be valid after update()\r\n * @prop {number} height - Height of item. Must be valid after update()\r\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\r\n */\r\n\r\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\r\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\r\n// It is this service's responsibility of carrying out that layout.\r\nvar core_layouts = {\r\n\tdefaults: {},\r\n\r\n\t/**\r\n\t * Register a box to a chart.\r\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\r\n\t * @param {Chart} chart - the chart to use\r\n\t * @param {ILayoutItem} item - the item to add to be layed out\r\n\t */\r\n\taddBox: function(chart, item) {\r\n\t\tif (!chart.boxes) {\r\n\t\t\tchart.boxes = [];\r\n\t\t}\r\n\r\n\t\t// initialize item with default values\r\n\t\titem.fullWidth = item.fullWidth || false;\r\n\t\titem.position = item.position || 'top';\r\n\t\titem.weight = item.weight || 0;\r\n\t\titem._layers = item._layers || function() {\r\n\t\t\treturn [{\r\n\t\t\t\tz: 0,\r\n\t\t\t\tdraw: function() {\r\n\t\t\t\t\titem.draw.apply(item, arguments);\r\n\t\t\t\t}\r\n\t\t\t}];\r\n\t\t};\r\n\r\n\t\tchart.boxes.push(item);\r\n\t},\r\n\r\n\t/**\r\n\t * Remove a layoutItem from a chart\r\n\t * @param {Chart} chart - the chart to remove the box from\r\n\t * @param {ILayoutItem} layoutItem - the item to remove from the layout\r\n\t */\r\n\tremoveBox: function(chart, layoutItem) {\r\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\r\n\t\tif (index !== -1) {\r\n\t\t\tchart.boxes.splice(index, 1);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Sets (or updates) options on the given `item`.\r\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\r\n\t * @param {ILayoutItem} item - the item to configure with the given options\r\n\t * @param {object} options - the new item options.\r\n\t */\r\n\tconfigure: function(chart, item, options) {\r\n\t\tvar props = ['fullWidth', 'position', 'weight'];\r\n\t\tvar ilen = props.length;\r\n\t\tvar i = 0;\r\n\t\tvar prop;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tprop = props[i];\r\n\t\t\tif (options.hasOwnProperty(prop)) {\r\n\t\t\t\titem[prop] = options[prop];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Fits boxes of the given chart into the given size by having each box measure itself\r\n\t * then running a fitting algorithm\r\n\t * @param {Chart} chart - the chart\r\n\t * @param {number} width - the width to fit into\r\n\t * @param {number} height - the height to fit into\r\n\t */\r\n\tupdate: function(chart, width, height) {\r\n\t\tif (!chart) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar layoutOptions = chart.options.layout || {};\r\n\t\tvar padding = helpers$1.options.toPadding(layoutOptions.padding);\r\n\r\n\t\tvar availableWidth = width - padding.width;\r\n\t\tvar availableHeight = height - padding.height;\r\n\t\tvar boxes = buildLayoutBoxes(chart.boxes);\r\n\t\tvar verticalBoxes = boxes.vertical;\r\n\t\tvar horizontalBoxes = boxes.horizontal;\r\n\r\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\r\n\t\t// Our canvas looks like the following.\r\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\r\n\t\t// B1 is the bottom axis\r\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\r\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\r\n\t\t// an error will be thrown.\r\n\t\t//\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | T1 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | | | T2 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | C1 | | C2 | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | | |\r\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\r\n\t\t// | | | | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | C3 | | C4 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | B1 | |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | B2 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t//\r\n\r\n\t\tvar params = Object.freeze({\r\n\t\t\touterWidth: width,\r\n\t\t\touterHeight: height,\r\n\t\t\tpadding: padding,\r\n\t\t\tavailableWidth: availableWidth,\r\n\t\t\tvBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\r\n\t\t\thBoxMaxHeight: availableHeight / 2\r\n\t\t});\r\n\t\tvar chartArea = extend({\r\n\t\t\tmaxPadding: extend({}, padding),\r\n\t\t\tw: availableWidth,\r\n\t\t\th: availableHeight,\r\n\t\t\tx: padding.left,\r\n\t\t\ty: padding.top\r\n\t\t}, padding);\r\n\r\n\t\tsetLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\r\n\r\n\t\t// First fit vertical boxes\r\n\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\r\n\t\t// Then fit horizontal boxes\r\n\t\tif (fitBoxes(horizontalBoxes, chartArea, params)) {\r\n\t\t\t// if the area changed, re-fit vertical boxes\r\n\t\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\t\t}\r\n\r\n\t\thandleMaxPadding(chartArea);\r\n\r\n\t\t// Finally place the boxes to correct coordinates\r\n\t\tplaceBoxes(boxes.leftAndTop, chartArea, params);\r\n\r\n\t\t// Move to opposite side of chart\r\n\t\tchartArea.x += chartArea.w;\r\n\t\tchartArea.y += chartArea.h;\r\n\r\n\t\tplaceBoxes(boxes.rightAndBottom, chartArea, params);\r\n\r\n\t\tchart.chartArea = {\r\n\t\t\tleft: chartArea.left,\r\n\t\t\ttop: chartArea.top,\r\n\t\t\tright: chartArea.left + chartArea.w,\r\n\t\t\tbottom: chartArea.top + chartArea.h\r\n\t\t};\r\n\r\n\t\t// Finally update boxes in chartArea (radial scale for example)\r\n\t\thelpers$1.each(boxes.chartArea, function(layout) {\r\n\t\t\tvar box = layout.box;\r\n\t\t\textend(box, chart.chartArea);\r\n\t\t\tbox.update(chartArea.w, chartArea.h);\r\n\t\t});\r\n\t}\r\n};\n\n/**\r\n * Platform fallback implementation (minimal).\r\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\r\n */\r\n\r\nvar platform_basic = {\r\n\tacquireContext: function(item) {\r\n\t\tif (item && item.canvas) {\r\n\t\t\t// Support for any object associated to a canvas (including a context2d)\r\n\t\t\titem = item.canvas;\r\n\t\t}\r\n\r\n\t\treturn item && item.getContext('2d') || null;\r\n\t}\r\n};\n\nvar platform_dom = \"/*\\r\\n * DOM element rendering detection\\r\\n * https://davidwalsh.name/detect-node-insertion\\r\\n */\\r\\n@keyframes chartjs-render-animation {\\r\\n\\tfrom { opacity: 0.99; }\\r\\n\\tto { opacity: 1; }\\r\\n}\\r\\n\\r\\n.chartjs-render-monitor {\\r\\n\\tanimation: chartjs-render-animation 0.001s;\\r\\n}\\r\\n\\r\\n/*\\r\\n * DOM element resizing detection\\r\\n * https://github.com/marcj/css-element-queries\\r\\n */\\r\\n.chartjs-size-monitor,\\r\\n.chartjs-size-monitor-expand,\\r\\n.chartjs-size-monitor-shrink {\\r\\n\\tposition: absolute;\\r\\n\\tdirection: ltr;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n\\tright: 0;\\r\\n\\tbottom: 0;\\r\\n\\toverflow: hidden;\\r\\n\\tpointer-events: none;\\r\\n\\tvisibility: hidden;\\r\\n\\tz-index: -1;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-expand > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 1000000px;\\r\\n\\theight: 1000000px;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-shrink > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 200%;\\r\\n\\theight: 200%;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\n__proto__: null,\n'default': platform_dom\n});\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\r\nvar CSS_PREFIX = 'chartjs-';\r\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\r\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\r\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\r\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\r\n\r\n/**\r\n * DOM event types -> Chart.js event types.\r\n * Note: only events with different types are mapped.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\r\n */\r\nvar EVENT_TYPES = {\r\n\ttouchstart: 'mousedown',\r\n\ttouchmove: 'mousemove',\r\n\ttouchend: 'mouseup',\r\n\tpointerenter: 'mouseenter',\r\n\tpointerdown: 'mousedown',\r\n\tpointermove: 'mousemove',\r\n\tpointerup: 'mouseup',\r\n\tpointerleave: 'mouseout',\r\n\tpointerout: 'mouseout'\r\n};\r\n\r\n/**\r\n * The \"used\" size is the final value of a dimension property after all calculations have\r\n * been performed. This method uses the computed style of `element` but returns undefined\r\n * if the computed style is not expressed in pixels. That can happen in some cases where\r\n * `element` has a size relative to its parent and this last one is not yet displayed,\r\n * for example because of `display: none` on a parent node.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\r\n * @returns {number} Size in pixels or undefined if unknown.\r\n */\r\nfunction readUsedSize(element, property) {\r\n\tvar value = helpers$1.getStyle(element, property);\r\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\r\n\treturn matches ? Number(matches[1]) : undefined;\r\n}\r\n\r\n/**\r\n * Initializes the canvas style and render size without modifying the canvas display size,\r\n * since responsiveness is handled by the controller.resize() method. The config is used\r\n * to determine the aspect ratio to apply in case no explicit height has been specified.\r\n */\r\nfunction initCanvas(canvas, config) {\r\n\tvar style = canvas.style;\r\n\r\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\r\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\r\n\tvar renderHeight = canvas.getAttribute('height');\r\n\tvar renderWidth = canvas.getAttribute('width');\r\n\r\n\t// Chart.js modifies some canvas values that we want to restore on destroy\r\n\tcanvas[EXPANDO_KEY] = {\r\n\t\tinitial: {\r\n\t\t\theight: renderHeight,\r\n\t\t\twidth: renderWidth,\r\n\t\t\tstyle: {\r\n\t\t\t\tdisplay: style.display,\r\n\t\t\t\theight: style.height,\r\n\t\t\t\twidth: style.width\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Force canvas to display as block to avoid extra space caused by inline\r\n\t// elements, which would interfere with the responsive resize process.\r\n\t// https://github.com/chartjs/Chart.js/issues/2538\r\n\tstyle.display = style.display || 'block';\r\n\r\n\tif (renderWidth === null || renderWidth === '') {\r\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\r\n\t\tif (displayWidth !== undefined) {\r\n\t\t\tcanvas.width = displayWidth;\r\n\t\t}\r\n\t}\r\n\r\n\tif (renderHeight === null || renderHeight === '') {\r\n\t\tif (canvas.style.height === '') {\r\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\r\n\t\t\t// which one can be specified by the user but also by charts as default option\r\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\r\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\r\n\t\t} else {\r\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\r\n\t\t\tif (displayWidth !== undefined) {\r\n\t\t\t\tcanvas.height = displayHeight;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn canvas;\r\n}\r\n\r\n/**\r\n * Detects support for options object argument in addEventListener.\r\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\r\n * @private\r\n */\r\nvar supportsEventListenerOptions = (function() {\r\n\tvar supports = false;\r\n\ttry {\r\n\t\tvar options = Object.defineProperty({}, 'passive', {\r\n\t\t\t// eslint-disable-next-line getter-return\r\n\t\t\tget: function() {\r\n\t\t\t\tsupports = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\twindow.addEventListener('e', null, options);\r\n\t} catch (e) {\r\n\t\t// continue regardless of error\r\n\t}\r\n\treturn supports;\r\n}());\r\n\r\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\r\n// https://github.com/chartjs/Chart.js/issues/4287\r\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\r\n\r\nfunction addListener(node, type, listener) {\r\n\tnode.addEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction removeListener(node, type, listener) {\r\n\tnode.removeEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction createEvent(type, chart, x, y, nativeEvent) {\r\n\treturn {\r\n\t\ttype: type,\r\n\t\tchart: chart,\r\n\t\tnative: nativeEvent || null,\r\n\t\tx: x !== undefined ? x : null,\r\n\t\ty: y !== undefined ? y : null,\r\n\t};\r\n}\r\n\r\nfunction fromNativeEvent(event, chart) {\r\n\tvar type = EVENT_TYPES[event.type] || event.type;\r\n\tvar pos = helpers$1.getRelativePosition(event, chart);\r\n\treturn createEvent(type, chart, pos.x, pos.y, event);\r\n}\r\n\r\nfunction throttled(fn, thisArg) {\r\n\tvar ticking = false;\r\n\tvar args = [];\r\n\r\n\treturn function() {\r\n\t\targs = Array.prototype.slice.call(arguments);\r\n\t\tthisArg = thisArg || this;\r\n\r\n\t\tif (!ticking) {\r\n\t\t\tticking = true;\r\n\t\t\thelpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tticking = false;\r\n\t\t\t\tfn.apply(thisArg, args);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction createDiv(cls) {\r\n\tvar el = document.createElement('div');\r\n\tel.className = cls || '';\r\n\treturn el;\r\n}\r\n\r\n// Implementation based on https://github.com/marcj/css-element-queries\r\nfunction createResizer(handler) {\r\n\tvar maxSize = 1000000;\r\n\r\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\r\n\t// https://github.com/chartjs/Chart.js/issues/5902\r\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\r\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\r\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\r\n\r\n\texpand.appendChild(createDiv());\r\n\tshrink.appendChild(createDiv());\r\n\r\n\tresizer.appendChild(expand);\r\n\tresizer.appendChild(shrink);\r\n\tresizer._reset = function() {\r\n\t\texpand.scrollLeft = maxSize;\r\n\t\texpand.scrollTop = maxSize;\r\n\t\tshrink.scrollLeft = maxSize;\r\n\t\tshrink.scrollTop = maxSize;\r\n\t};\r\n\r\n\tvar onScroll = function() {\r\n\t\tresizer._reset();\r\n\t\thandler();\r\n\t};\r\n\r\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\r\n\taddListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\r\n\r\n\treturn resizer;\r\n}\r\n\r\n// https://davidwalsh.name/detect-node-insertion\r\nfunction watchForRender(node, handler) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\tvar proxy = expando.renderProxy = function(e) {\r\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\r\n\t\t\thandler();\r\n\t\t}\r\n\t};\r\n\r\n\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\taddListener(node, type, proxy);\r\n\t});\r\n\r\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\r\n\t// is removed then added back immediately (same animation frame?). Accessing the\r\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\r\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\r\n\t// https://github.com/chartjs/Chart.js/issues/4737\r\n\texpando.reflow = !!node.offsetParent;\r\n\r\n\tnode.classList.add(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction unwatchForRender(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar proxy = expando.renderProxy;\r\n\r\n\tif (proxy) {\r\n\t\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\t\tremoveListener(node, type, proxy);\r\n\t\t});\r\n\r\n\t\tdelete expando.renderProxy;\r\n\t}\r\n\r\n\tnode.classList.remove(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction addResizeListener(node, listener, chart) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\r\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\r\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = chart.options.maintainAspectRatio && node.parentNode;\r\n\t\t\tvar w = container ? container.clientWidth : 0;\r\n\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\r\n\t\t\t\t// If the container size shrank during chart resize, let's assume\r\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\r\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\r\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\r\n\t\t\t\t// events are ignored during this whole 2 resize process.\r\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\r\n\t\t\t\t// twice in a frame (potential performance issue)\r\n\t\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\t}\r\n\t\t}\r\n\t}));\r\n\r\n\t// The resizer needs to be attached to the node parent, so we first need to be\r\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\r\n\twatchForRender(node, function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = node.parentNode;\r\n\t\t\tif (container && container !== resizer.parentNode) {\r\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\r\n\t\t\t}\r\n\r\n\t\t\t// The container size might have changed, let's reset the resizer state.\r\n\t\t\tresizer._reset();\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction removeResizeListener(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar resizer = expando.resizer;\r\n\r\n\tdelete expando.resizer;\r\n\tunwatchForRender(node);\r\n\r\n\tif (resizer && resizer.parentNode) {\r\n\t\tresizer.parentNode.removeChild(resizer);\r\n\t}\r\n}\r\n\r\n/**\r\n * Injects CSS styles inline if the styles are not already present.\r\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the