{"version":3,"file":"main.3bf76141a1ac3740.js","mappings":"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ACAA,4BACAA,0BACAA,wBACAA,0BACAA,8BACAA,wBACAA,8BACAA,0BACAA,0BACAA,wBACAA,oCACAA,4BACAA,8BACAA,4BACAA,wBACAA,0BACAA,0BACAA,wBACAA,gCACAA,gCACAA,gCACAA,oBACAA,sBACAA,kCACAA,oCACAA,oCACAA,gCACAA,4BACAA,wBACAA,4BACAA,8BACAA,8BACAA,4BACAA,0BACAA,8BACAA,0BACAA,oCACAA,4BACAA,sBACAA,wBACAA,0BACAA,8BACAA,4BACAA,oBACAA,wBACAA,4BACAA,wCACAA,gCACAA,4BACAA,kCACAA,sCACAA,kCACAA,8BACAA,wBACAA,gCACAA,4BACAA,sBACAA,wBACAA,4BACAA,oCACAA,gCACAA,gCACAA,wBACAA,0BACAA,wCACAA,wCACAA,0BACAA,0BACAA,wCACAA,gCACAA,gDACAA,wBACAA,4BACAA,0BACAA,wBACAA,wBACAA,8BACAA,sBACAA,4BACAA,0BACAA,4BACAA,0BACAA,kCACAA,4BACAA,4BACAA,wBACAA,4BACAA,0BACAA,wBACAA,8BACAA,gCACAA,4BACAA,wBACAA,0BACAA,4BACAA,0BACAA,gCACAA,0BACAA,wBAAOA,8BACPA,gCACAA,4BACAA,wBACAA,4BACAA,8BACAA,wBACAA,wBACAA,wBACAA,0BACAA,sBACAA,4BACAA,8BACAA,wBACAA,0BACAA,0BACAA,4BACAA,4BACAA,oBACAA,0BACAA,gCACAA,sBACAA,wBACAA,wBACAA,kCACAA,oCACAA,4BACAA,wBACAA,4CACAA,wBACAA,wBACAA,4BACAA,0BACAA,sBACAA,8BAzLUA,GAAZ,IAAYA,GA0LX,yBCxMM,MAAMuB,GAAoBC,GAAQ,gFAC5BC,GAAeD,GAAQ,4CAEvBE,GAAgBF,GAAQ,ohCACxBG,GAAoBH,GAAQ,gDAC5BI,GAAyBJ,GAAQ,mFACjCK,GAAcL,GAAQ,oBCO5B,IAeUM,EAfLA,GAKX,aALWA,UAAgB,KAC1BA,qBACAA,0BACAA,0BACAA,wBAJUA,GAAZ,IAAYA,GAKX,GAEWC,GAKX,aALWA,UAAe,KACzB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","names":["SurveySetting","parseSpecialSurveySelectionRule","survey","surveySelectionRule","JSON","parse","SurveySelectionRule","EnabledLangs","EnabledLanguages","stringifySpecialSurveySelectionRule","selectionRule","stringify","CompanySettingsDimension","getBlank","Code","Labels","isNew","UserTypeEnum","UserRoleEnum","DepartmentTypeEnum","OPEN_VIEW_PARAM","OpenViewEnum","Metric","getParticipationPercentage","metric","StateActive","Participation","DepartmentCaseState","EffortState","EffortType","IndexMovementColors","DepartmentOperationsActionsEnum","WellbeingCategories","WellbeingCategoriesColors","DataLabelChartType","WellbeingInterval","contains","score","interval","MinScore","MaxScore","containsWellbeing","wellbeing","Start","End","getColor","Color","getCategory","getScoreFromWellbeing","range","decimalPart","round","WellbeingIntervals","Array","groupDepartmentsDropdownByType","departments","company","languageCode","dimensionsLabels","languageId","SupportedLanguages","x","code","id","filter","HasData","sort","a","b","Name","localeCompare","department","DepartmentId","Type","reduce","acc","item","fallbackLanguage","LanguageEnum","defaultLanguage","DefaultLanguageId","finalNames","bucketName","DepartmentDimensions","bucketNameArray","split","map","replace","length","k","push","translatedBucketName","finalName","undefined","join","bucket","Xt","concat","intervals","find","LanguageCodeToId","DIMENSION_PATTERN","XRegExp","NAME_PATTERN","EMAIL_PATTERN","JOB_TITLE_PATTERN","EMPLOYEE_FIELD_PATTERN","PHONE_REGEX","SettingLevelEnum","SettingTypeEnum","values","Object","keys","type","isNaN","SurveyQuestionTypeEnum","SurveyStateEnum","SurveyFrequencyEnum","QUESTION_ICONS","CoverPage","QuestionWithText","QuestionWithOptionSetSingleSelection","Body","ThankYou","BODY_COLORS","SurveyFilter","validate","enabled","dimension","value","SurveyQuestion","static","configuration","AnswerOptions","Value","question","Valid","Texts","every","text","ao","Deleted","option","allAnswerOptionsDefined","addAnswerOption","languages","focus","MultiLanguageTexts","new","Editing","removeAnswerOption","index","splice","removeLanguage","language","forEach","EditingLang","addLanguage","labels","SurveyDefinitionId","Key","StepType","answerOption","LabelKey","enabledLanguages","Survey","addBlankQuestion","Questions","removeQuestion","q","monthFromNow","moment","add","isLastMonthFromNow","month","endDateYear","year","endDateMonth","StartDate","local","EndDate","State","Active","Filter","Frequency","Quarterly","ThankYouPage","l","validateQuestions","questions","validateFilter","validateFields","fields","field","questionsValid","filterValid","requiredFieldsValid","parseSurveySelectionRule","Filters","labelKey","texts","PersonEmploymentStatus","EmployeeState","label","flag","HeatLevelEnum","HeatLevelColorScheme","HeatLevel1","HeatLevel2","HeatLevel3","HeatLevel4","HeatLevel5","HeatLevel6","HeatLevel7","HeatLevel8","HeatLevel9","HeatLevel10","OutcomeGroupEnum","ProductStateEnum","ActivityType","EmailActivityType","IncidentState","IncidentCallState","TargetPeriods","UniquePeriods","MonthPeriods","TargetPeriodsValue","Month","Quarter","Year","UniquePeriodsValue","Unique","All","Simple","Detailed","MonthPeriodsValue","CurrentMonth","LastMonth","MENU_ITEMS","title","icon","pack","link","home","data","AuthGuardService","constructor","tokenService","configStore","permissionService","sharedService","router","raygun","this","BehaviorSubject","url","entities","preference","combineLatest","userPermissions$","userPreferences$","subscribe","params","setPagesPermissions","canActivate","_","state","_this","isValid","window","location","href","getConfigStoreValues","GlobalAuthSignIn","permissions","pagesPermissions","pagesPermissions$","asObservable","pipe","first","toPromise","slice","isAllowed","failedUrls","logToRaygun","tryToFixPreferences","tryRedirect","canLoad","preferences","activeResponseCenterId","activeCompanyId","hasCompanyAdminRights","hasHowdyEmployeeRights","hasOnlyObserverRights","hasUserAdminRights","hasSystemAdminRights","next","invalidUrl","isTheSameBranch","userProfile","requestedBranch","mainBranches","otherBranch","tryAgain","baseUrl","indexOf","navigate","currentBranch","targetBranch","branch","invalidBranch","newEntity","userPreferences","Id","activeEntityName","setUserPreferences","message","Me","Email","send","Error","_angular_core__WEBPACK_IMPORTED_MODULE_10__","factory","AuthInterceptor","loader","intercept","req","show","startsWith","token","getToken","console","error","headers","set","clone","DataCenterApiEndPoint","handle","catchError","err","status","log","throwError","finalize","hide","_angular_core__WEBPACK_IMPORTED_MODULE_5__","ConfigStoreService","document","host","hostname","GlobalAuthSignOut","GlobalAuthPasswordReset","_angular_core__WEBPACK_IMPORTED_MODULE_0__","DOCUMENT","FeedbackService","http","translateService","Map","Set","onEntityChange$","reloadSurveyLabels","onLanguageChange$","surveyLabels$","_surveyLabels$","getCompanySurveys","includeQuestions","includeSpecialSurveys","of","options","companyId","get","getSurveyById","mapBackendSurvey","getSurveyTemplates","templates","template","fetchSurveyLabels","some","definition","lang","selectedLanguageId","translations","surveyLabels","description","imgSrc","getSurveyTemplateById","submitNewSurvey","post","prepareSubmitData","switchMap","response","updateSurvey","changeSurveysState","surveysIds","deleteSurveys","getSurveyQuestions","surveyId","getSurveyAnswers","questionKey","period","departmentId","getSurveyQuestionDepartmentAnswers","entityChanged","languageFromPreferences","_this2","currentLanguage","onLangChange","key","targetLanguage","_this3","cacheKey","labelsCache","loadingKeys","has","getSurveyL10nLabels","delete","model","cloneDeep","CompanyId","transferMultiLanguageTexts","res","enabledLangs","getSurveyEnabledLanguages","mapBackendQuestion","bodyQuestion","coverPage","shift","thankYouPage","pop","today","startOfNextMonth","startOfMonthAfterThat","final","answerOptions","parseAnswerOptions","enabledlang","isCompanyEnabledLanguage","thereAreSurveyLabelsIn","Configuration","_angular_core__WEBPACK_IMPORTED_MODULE_11__","ImpersonateService","httpClient","_windowRef","dataCenterCode","DataCenter","isImpersonating","IsImpersonation","impersonateUser","userId","toString","environment","openImpersonatedUserPage","Result","stopImpersonating","close","origin","open","_angular_core__WEBPACK_IMPORTED_MODULE_1__","i0","CustomLoaderComponent","changeDetectorRef","ngOnInit","requestFired","activeRequests","detectChanges","requestFinished","finishedRequests","core","selectors","LoaderService","toastrService","events","event","NavigationEnd","take","appLoaded","toastRef","componentInstance","destroyOldLoader","info","toastComponent","disableTimeOut","tapToDismiss","oldLoader","setTimeout","NavigationDataMiddlewareService","PermissionService","roles","emitValues","hasOnlyDepartmentManagerRights$","_hasOnlyDepartmentManagerRights$","hasCompanyHRIntegrationRights$","_hasCompanyHRIntegrationRights$","hasCompanyAdminRights$","_hasCompanyAdminRights$","hasCompanyAdminReadonlyRights$","_hasCompanyAdminReadonlyRights$","hasUserAdminRights$","_hasUserAdminRights$","hasSystemAdminRights$","_hasSystemAdminRights$","hasReadOnlyRights$","_hasReadOnlyRights$","hasOnlyObserverRights$","_hasOnlyObserverRights$","hasHowdyEmployeeRights$","_hasHowdyEmployeeRights$","hasResponseCenterAdminRights$","_hasResponseCenterAdminRights$","_userPermissions$","userPermissions","_userPermissions","hasOnlyDepartmentManagerRights","RoleType","hasReadOnlyRights","readOnlyRights","includes","hasCompanyHRIntegrationRights","role","hasCompanyAdminReadonlyRights","IsSystemAdministrator","IsHowdyEmployee","hasResponseCenterAdminRights","hasPartnerAdminRights","hasAccessByRole","userRole","hasAccess","userRoles","permissionFnName","permission","BaseAccessRoles","HowdyUserAccessRoles","RaygunService","userProfile$","Raygun","user","setupRaygun","setRaygunExcludedCompanies","settings","getRaygunSettings","raygunExcludedCompanies","setting","BoolValue","excludeCompany","loggerActive","navigator","onLine","rg4js","allowInsecureSubmissions","captureUnhandledRejections","captureMissingRequests","payload","setUser","identifier","isAnonymous","email","firstName","Firstname","fullName","Lastname","_angular_core__WEBPACK_IMPORTED_MODULE_6__","SharedService","cookie","currentEfforts","_currentEfforts","efforts","reminder$","reminderSubject$","effortsClick$","_effortsClick$","selectedPeriod$","selectedPeriodSubject","selectedPeriod","numberOfEfforts","_numberOfEfforts","selectorPeriodType$","_selectorPeriodType$","minDateAvailable","_minDateAvailable","maxDateAvailable$","_maxDateAvailable$","globalDepartment$","_globalDepartment$","distinctUntilChanged","metrics$","_departmentMonthMetrics$","userProfilePreferences$","_userProfile$","_userPreferences$","_onEntityChange$","_onLanguageChange$","_userProfile","_userPreferences","currentEntityRoles","entityTypeAttribute","entityId","Roles","myDepartmentsInCompany","Companies","ManagingDepartments","currentCompany","Moment","currentLang","longDateFormat","L","LL","LLL","LLLL","LT","LTS","onEffortsClick","setSelectorPeriodType","periodType","setMinDateAvailable","date","setMaxDateAvailable","setNumberOfEfforts","setReminder","reminder","newPreferences","oldPreferences","saveUserPreferencesToCookie","userPreferencesString","addDays","Date","setGlobalDepartment","getMeData","HttpHeaders","userPref","getUserPreferencesFromCookie","meData","preloadedCompanyId","companiesR","responseCentersR","me","companies","responseCenters","unshift","Mailbox","Hotline","NotifyViaEmail","NotifyViaSMS","newProfile","ResponseCenters","companiesRequest","fetchCompanySettings","Locale","IanaTimeZone","companyFound","c","responseCenterFound","rc","setActiveCompany","hasRolesInMultipleCompanies","self","getAllCompanies","collator","Intl","Collator","updatedProfile","compare","cookieString","_this4","userPrefVals","prefCookie","hours","setHours","getDate","setLanguageLocalization","newPrefs","formatMonth","monthOfCalculation","showDays","format","now","isStartOfMonth","isSame","isCurrentMonth","yesterday","subtract","datePipe","LocalizedDatePipe","toTitleCase","transform","updatePreferences","_this5","getCompanyIntegrationStatus","getCompanyIntegrationTestAccessStatus","getCompanyDepartments","includeManagers","includeMetrics","getCompanyDimensions","getCompanyEnabledLanguages","getActiveDimensions","getHeatmapData","getCaseOutcomes","_this6","Settings","fetchDepartmentMetrics","metrics","MonthStart","_angular_core__WEBPACK_IMPORTED_MODULE_14__","TokenService","jwtHelperService","injector","authType","AuthType","setToken","rawToken","decodeToken","path","sameSite","secure","dc","api","apt","Expiry","exp","sessionToken","tokenGetter","readTokenFromURL","Router","jwtTokenService","JwtHelperService","cookieService","CookieService","substr","lastIndexOf","clearToken","substring","secretKey","isTokenExpired","targetView","decodedToken","containGuid","guid","isExpired","_angular_core__WEBPACK_IMPORTED_MODULE_4__","pattern","dateTime","DatePipe","dateTimePattern","replacePlaceholders","getFormattedDateTime","formattedDate","_angular_core__WEBPACK_IMPORTED_MODULE_2__","pure","triggerDownloadCsv","csv","name","encodeURIComponent","el","createElement","download","click","s","toUpperCase","phraseToTitleCase","phrase","toLowerCase","word","charAt","focusFirstInvalidElement","container","target","from","querySelectorAll","disabled","scrollIntoView","behavior","capitalizeString","precision","scale","Math","pow","trunc","splitCamelCaseString","getRandomColor","random","flatten","array","depth","val","isArray","production","agGridLicence","invalidTimingValue","ɵRuntimeError","ngDevMode","isBrowser","isNode","process","call","optimizeGroupPlayer","players","NoopAnimationPlayer","ɵAnimationGroupPlayer","normalizeKeyframes$1","driver","normalizer","element","keyframes","preStyles","postStyles","errors","normalizedKeyframes","previousOffset","previousKeyframe","kf","offset","isSameOffset","normalizedKeyframe","prop","normalizedProp","normalizedValue","normalizePropertyName","ɵPRE_STYLE","AUTO_STYLE","normalizeStyleValue","animationFailed","listenOnPlayer","player","eventName","callback","onStart","copyAnimationEvent","onDone","onDestroy","e","phaseName","makeAnimationEvent","triggerName","fromState","toState","totalTime","_data","getOrSetDefaultValue","defaultValue","parseTimelineCommand","command","separatorPos","_contains","elm1","elm2","_query","selector","multi","_documentElement","getParentElement","parent","parentNode","Element","documentElement","elem","querySelector","_CACHED_BODY","_IS_WEBKIT","containsElement","invokeQuery","NoopAnimationDriver","validateStyleProperty","getBodyNode","body","style","result","containsVendorPrefix","matchesElement","_element","_selector","query","computeStyle","animate","duration","delay","easing","previousPlayers","scrubberAccessRequested","ɵfac","ɵprov","AnimationDriver","NOOP","ENTER_CLASSNAME","LEAVE_CLASSNAME","NG_TRIGGER_CLASSNAME","NG_TRIGGER_SELECTOR","NG_ANIMATING_CLASSNAME","NG_ANIMATING_SELECTOR","resolveTimingValue","matches","match","_convertTimeValueToMS","parseFloat","unit","resolveTiming","timings","allowNegativeValues","hasOwnProperty","parseTimeExpression","delayMatch","easingVal","containsErrors","startIndex","negativeStepValue","negativeDelayValue","copyObj","obj","destination","convertToMap","styleMap","copyStyles","styles","backfill","getStyleAttributeString","writeStyleAttribute","styleAttrValue","i","getPropertyValue","camelCaseToDashCase","setAttribute","setStyles","formerStyles","camelProp","dashCaseToCamelCase","eraseStyles","normalizeAnimationEntry","steps","sequence","PARAM_REGEX","RegExp","extractStyleParams","exec","lastIndex","interpolateParams","original","str","varName","localVal","invalidParamValue","iteratorToArray","iterator","arr","done","DASH_CASE_REGEXP","input","m","visitDslNode","visitor","node","context","visitTrigger","visitState","visitTransition","visitSequence","visitGroup","visitAnimate","visitKeyframes","visitStyle","visitReference","visitAnimateChild","visitAnimateRef","visitQuery","visitStagger","invalidNodeType","nodeType","getComputedStyle","parseTransitionExpr","transitionValue","expressions","parseInnerTransitionStr","eventStr","parseAnimationAlias","alias","invalidTransitionAlias","invalidExpression","expr","separator","makeLambdaFromStates","TRUE_BOOLEAN_VALUES","FALSE_BOOLEAN_VALUES","lhs","rhs","LHS_MATCH_BOOLEAN","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","SELF_TOKEN_REGEX","buildAnimationAst","metadata","warnings","AnimationAstBuilderVisitor","build","_driver","AnimationAstBuilderContext","_resetContextStyleTimingState","currentQuerySelector","collectedStyles","currentTime","queryCount","depCount","states","transitions","invalidTrigger","definitions","def","stateDef","n","transition","invalidDefinition","styleAst","astParams","containsDynamicStyles","missingSubs","sub","size","invalidState","metadataName","animation","matchers","normalizeAnimationOptions","furthestTime","step","innerAst","max","timingAst","constructTimingAst","makeTimingAst","strValue","v","ast","dynamic","currentAnimateTimings","styleMetadata","isEmpty","newStyleData","_styleAst","isEmptyStep","_makeStyleAst","_validateStyleAst","metadataStyles","styleTuple","collectedEasing","styleData","endTime","startTime","tuple","collectedEntry","updateCollectedStyle","invalidParallelAnimation","firstStart","firstEnd","secondStart","secondEnd","validateStyleParams","invalidStyleParams","invalidKeyframes","totalKeyframesWithOffsets","offsets","offsetsOutOfOrder","keyframesOutOfRange","offsetVal","consumeOffset","invalidOffset","keyframeOffsetsOutOfOrder","generatedOffset","keyframesMissingOffsets","limit","animateDuration","durationUpToThisFrame","parentSelector","currentQuery","includeSelf","normalizeSelector","hasAmpersand","optional","originalSelector","invalidStagger","currentTransition","unsupportedCSSPropertiesFound","normalizeParams","createTimelineInstruction","preStyleProps","postStyleProps","subTimeline","ElementInstructionMap","_map","append","instructions","existingInstructions","clear","ENTER_TOKEN_REGEX","LEAVE_TOKEN_REGEX","buildAnimationTimelines","rootElement","enterClassName","leaveClassName","startingStyles","finalStyles","subInstructions","AnimationTimelineBuilderVisitor","buildKeyframes","AnimationTimelineContext","currentTimeline","delayNextStep","timelines","timeline","containsAnimation","lastRootTimeline","allowOnlyTimelineStyles","elementInstructions","innerContext","createSubContext","_visitSubInstructions","transformIntoNewTimeline","previousNode","_applyAnimationRefDelays","animationsRefsOptions","animationRefOptions","animationDelay","animationDelayValue","instruction","instructionTimings","appendInstructionToTimeline","updateOptions","subContextCount","ctx","snapshotCurrentStyles","DEFAULT_NOOP_PREVIOUS_NODE","applyStylesToKeyframe","innerTimelines","mergeTimelineCollectedStyles","_visitTiming","incrementTime","hasCurrentStyleProperties","forwardFrame","applyEmptyStep","innerTimeline","forwardTime","elms","currentQueryTotal","sameElementTimeline","currentQueryIndex","parentContext","tl","abs","maxTime","currentStaggerTime","startingTime","_enterClassName","_leaveClassName","initialTimeline","TimelineBuilder","skipIfExists","newOptions","optionsToUpdate","newParams","paramsToUpdate","_copyOptions","oldParams","newTime","fork","updatedTimings","builder","SubTimelineBuilder","stretchStartingKeyframe","time","results","elements","invalidQuery","_elementTimelineStylesLookup","_previousKeyframe","_currentKeyframe","_keyframes","_styleSummary","_localTimelineStyles","_pendingStyles","_backFill","_currentEmptyStepKeyframe","_globalTimelineStyles","_loadKeyframe","hasPreStyleStep","_updateStyle","flattenStyles","allStyles","allProperties","getFinalKeyframe","properties","details1","details0","finalKeyframes","keyframe","finalKeyframe","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","super","newKeyframes","startingGap","newFirstKeyframe","oldFirstKeyframe","roundOffset","oldOffset","decimalPoints","mult","AnimationStyleNormalizer","DIMENSIONAL_PROP_SET","WebAnimationsStyleNormalizer","propertyName","userProvidedProperty","normalizedProperty","strVal","trim","valAndSuffixMatch","invalidCssUnitValue","createTransitionInstruction","isRemovalTransition","fromStyles","toStyles","queriedElements","EMPTY_OBJECT","AnimationTransitionFactory","_triggerName","_stateStyles","currentState","nextState","oneOrMoreTransitionsMatch","matchFns","fn","buildStyles","stateName","styler","currentOptions","nextOptions","skipAstBuild","transitionAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","applyParamDefaults","elm","queriedElementsList","userParams","defaults","AnimationStateStyles","defaultParams","combinedParams","AnimationTrigger","_normalizer","transitionFactories","balanceProperties","fallbackTransition","createFallbackTransition","containsQueries","matchTransition","f","matchStyles","stateMap","key1","key2","EMPTY_INSTRUCTION_MAP","TimelineAnimationEngine","bodyNode","_animations","_playersById","register","registerFailed","_buildPlayer","create","autoStylesMap","inst","missingOrDestroyedAnimation","createAnimationFailed","destroy","_getPlayer","missingPlayer","listen","baseEvent","args","play","pause","reset","restart","finish","init","setPosition","QUEUED_CLASSNAME","DISABLED_CLASSNAME","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","namespaceId","setForRemoval","setForMove","hasAnimation","removedBeforeQueried","NULL_REMOVED_QUERIED_STATE","REMOVAL_FLAG","StateValue","isObj","normalizeTriggerValue","absorbOptions","VOID_VALUE","DEFAULT_STATE_VALUE","AnimationTransitionNamespace","hostElement","_engine","_triggers","_queue","_elementListeners","_hostClassName","addClass","phase","missingTrigger","missingEvent","isTriggerEventValid","unsupportedTriggerEvent","listeners","triggersWithStates","statesByElement","afterFlush","_getTrigger","trigger","unregisteredTrigger","defaultToFallback","TransitionAnimationPlayer","objEquals","k1","k2","reportError","playersOnElement","playersByElement","queued","isFallbackTransition","totalQueuedPlayers","removeClass","deregister","entry","clearElementCache","elementPlayers","_signalRemovalForInnerTriggers","namespaces","fetchNamespacesByElement","ns","triggerLeaveAnimation","afterFlushAnimationsDone","destroyAfterComplete","triggerStates","previousTriggersValues","markElementAsRemoved","processLeaveNode","prepareLeaveAnimationListeners","elementStates","visitedTriggers","listener","removeNode","engine","childElementCount","containsPotentialParentTransition","totalAnimations","currentPlayers","playersByQueriedElement","removalFlag","destroyInnerAnimations","_onRemovalComplete","insertNode","drainQueuedTransitions","microtaskId","destroyed","markedForDestroy","d0","d1","p","elementContainsData","containsData","TransitionAnimationEngine","newHostElements","disabledNodes","_namespaceLookup","_namespaceList","_flushFns","_whenQuietFns","namespacesByHostElement","collectedEnterElements","collectedLeaveElements","onRemovalComplete","queuedPlayers","createNamespace","_balanceNamespaceList","collectEnterElement","namespaceList","found","ancestor","ancestorNs","registerTrigger","_fetchNamespace","stateValue","isElementNode","insertBefore","details","markElementAsDisabled","isHostElement","hostNS","_buildInstruction","subTimelines","skipBuildAst","containerElement","destroyActiveAnimationsForElement","finishActiveQueriedAnimationOnElement","whenRenderingDone","Promise","resolve","classList","flush","cleanupFns","_flushAnimations","quietFns","triggerTransitionsFailed","skippedPlayers","skippedPlayersMap","queuedInstructions","allPreStyleElements","allPostStyleElements","disabledElementsSet","nodesThatAreDisabled","allTriggerElements","enterNodeMap","buildRootMap","enterNodeMapIds","nodes","root","className","allLeaveNodes","mergedLeaveNodes","leaveNodesWithoutAnimations","leaveNodeMapIds","leaveNodeMap","allPlayers","erroneousTransitions","previousValue","nodeIsOrphaned","stringMap","setVal","transitionFailed","allPreviousPlayersMap","animationElementMap","_beforeAnimationBuild","_getPreviousPlayers","prevPlayer","replaceNodes","replacePostStylesAsPre","postStylesMap","cloakAndComputeStyles","preStylesMap","pre","entries","rootPlayers","subPlayers","NO_PARENT_ANIMATION_ELEMENT_DETECTED","overrideTotalTime","parentWithAnimation","parentsToAdd","detectedParent","innerPlayer","_buildAnimation","setRealPlayer","parentPlayers","parentPlayer","playersForElement","syncPlayerEvents","queriedPlayerResults","queriedInnerElements","j","queriedPlayers","activePlayers","removeNodesAfterAnimationDone","isQueriedElement","toStateValue","queriedElementPlayers","isRemovalAnimation","targetNameSpaceId","targetTriggerName","timelineInstruction","realPlayer","getRealPlayer","beforeDestroy","allQueriedPlayers","allConsumedElements","allSubElements","allNewPlayers","flattenGroupPlayers","finalPlayers","_flattenGroupPlayersRecur","wrappedPlayer","deleteOrUnsetInMap","currentValues","_player","_containsRealPlayer","_queuedCallbacks","callbacks","triggerCallback","_queueEvent","hasStarted","getPosition","cloakElement","oldValue","display","valuesMap","elementPropsMap","defaultStyle","cloakVals","failedElements","props","roots","rootMap","nodeSet","localRootMap","getRoot","remove","postEntry","preEntry","AnimationEngine","_triggerCache","_transitionEngine","_timelineEngine","componentId","triggerBuildFailed","buildTrigger","onInsert","onRemove","disableAnimations","disable","property","action","eventPhase","SpecialCasedStyles","_startStyles","_endStyles","_state","initialStyles","initialStylesByElement","_initialStyles","start","WeakMap","filterNonAnimatableStyles","isNonAnimatableStyle","WebAnimationsPlayer","_specialStyles","_onDoneFns","_onStartFns","_onDestroyFns","_initialized","_finished","_started","_destroyed","_originalOnDoneFns","_originalOnStartFns","currentSnapshot","_duration","_delay","_onFinish","_preparePlayerBeforeStart","domPlayer","_triggerWebAnimation","_finalKeyframe","addEventListener","_resetDomPlayerState","_convertKeyframesToObject","kfs","frame","fromEntries","cancel","methods","WebAnimationsDriver","validateAnimatableStyleProperty","playerOptions","fill","previousStyles","previousWebAnimationPlayers","allowPreviousPlayerStylesMerge","normalizeKeyframes","balancePreviousStylesIntoKeyframes","startingKeyframe","missingStyleProps","specialStyles","packageNonAnimatableStyles","startStyles","endStyles","BrowserAnimationBuilder","AnimationBuilder","rootRenderer","doc","_nextAnimationId","_renderer","createRenderer","encapsulation","ViewEncapsulation","issueAnimationCommand","BrowserAnimationFactory","AnimationFactory","_id","RendererAnimationPlayer","_command","_listen","renderer","setProperty","DISABLE_ANIMATIONS_FLAG","AnimationRendererFactory","delegate","_zone","_currentId","_microtaskId","_animationCallbacksBuffer","_rendererCache","_cdRecurDepth","promise","removeChild","BaseAnimationRenderer","animationTriggers","AnimationRenderer","begin","_scheduleCountTask","then","scheduleListenerCallback","count","run","end","runOutsideAngular","i1","_onDestroy","destroyNode","namespace","createComment","createText","appendChild","newChild","refChild","isMove","oldChild","selectRootElement","selectorOrNode","preserveContent","nextSibling","removeAttribute","setStyle","flags","removeStyle","setValue","resolveElementFromTarget","parseTriggerCallbackName","dotIndex","SHARED_ANIMATION_PROVIDERS","provide","useClass","ɵAnimationStyleNormalizer","useFactory","instantiateDefaultStyleNormalizer","ɵWebAnimationsStyleNormalizer","ɵAnimationEngine","InjectableAnimationEngine","appRef","ngOnDestroy","RendererFactory2","instantiateRendererFactory","zone","deps","ɵDomRendererFactory2","NgZone","BROWSER_ANIMATIONS_PROVIDERS","ɵWebAnimationsDriver","ANIMATION_MODULE_TYPE","useValue","BROWSER_NOOP_ANIMATIONS_PROVIDERS","ɵNoopAnimationDriver","BrowserAnimationsModule","config","ngModule","providers","ɵmod","ɵinj","imports","BrowserModule","TokenComponent","route","snapshot","paramMap","routes","component","loadChildren","PagesModule","ManagerHotlineModule","HowdyFormsModule","redirectTo","pathMatch","AppRoutingModule","RouterModule","useHash","AnalyticsService","trackPageViews","ga","hitType","page","trackEvent","MenuService","translate","feedbackService","initializeMenu","initialized","refreshMenuItems","userPreference","navModel","onDefaultLangChange","dashboard","instant","hidden","expanded","isReportModuleEnabled","ShowReportsModule","isFeedbackEnabled","FeedbackModuleEnabled","disablePIIForManagers","DisablePIIForManagers","surveys","children","otherMenuItems","group","allMenuItems","fixSelectionAfterPageReload","setParentOfAllChildrenMenuItems","activeUrl","child","selected","menuItems","setParent","ServiceDisruptionModalComponent","activeModal","AppComponent","analytics","menuService","iconLibraries","modalService","registerFontPack","iconClassPrefix","packClass","setDefaultPack","closeButton","enableHtml","addLangs","setDefaultLang","use","Chart","registerables","annotationPlugin","getElementById","showServiceDisruption","ShowServiceDisruption","backdrop","centered","GlobalErrorHandlerService","ngZone","handleError","_toastrService","ToastrService","Injector","CustomLoader","prefix","suffix","getTranslation","TranslateLabelsByEnviroment","TranslateLoader","createTranslateLoader","HttpClient","u","sv","AUD","BBD","BMD","BRL","BSD","BYN","BZD","CNY","DKK","DOP","EEK","EGP","ESP","GBP","HKD","IEP","INR","ISK","JMD","JPY","KRW","NOK","NZD","PHP","RON","SEK","TWD","USD","VND","plural","floor","registerLocaleData","THB","t","parseInt","localeSv","AppModule","bootstrap","APP_BASE_HREF","APP_INITIALIZER","tokenStartup","HTTP_INTERCEPTORS","ErrorHandler","HttpClientModule","JwtModule","jwtOptionsProvider","JWT_OPTIONS","jwtOptionsFactory","allowedDomains","TranslateModule","missingTranslationHandler","MissingTranslationHandler","MyMissingTranslationHandler","TranslateService","isProduction","isValidKey","isCurrentLanguage","isCacheKey","reportedLabels","isInBlackList","ToastrModule","preventDuplicates","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","catch","InjectionToken","urlBase64Decode","output","b64DecodeUnicode","b64decode","String","bs","buffer","bc","idx","fromCharCode","decodeURIComponent","prototype","charCodeAt","parts","decoded","getTokenExpirationDate","setUTCSeconds","offsetSeconds","valueOf","getAuthScheme","authScheme","request","JwtInterceptor","jwtHelper","standardPorts","headerName","disallowedRoutes","throwNoTokenError","skipWhenExpired","isAllowedDomain","requestUrl","URL","hostName","port","findIndex","domain","test","isDisallowedRoute","requestedUrl","parsedRoute","pathname","handleInterception","tokenIsExpired","setHeaders","mergeMap","asyncToken","parentModule","animator","Animator","_request","_charts","_running","_lastDate","_notify","chart","anims","numSteps","initial","currentStep","min","_refresh","requestAnimFrame","_update","remaining","running","items","draw","_active","_total","tick","_getAnims","charts","complete","progress","cb","cur","stop","transparent","interpolators","boolean","to","factor","color","c0","c1","valid","mix","hexString","number","Animation","cfg","currentValue","_fn","_easing","effects","_start","_loop","loop","_target","_prop","_from","_to","_promises","active","update","elapsed","remain","wait","promises","rej","resolved","method","_fallback","_indexable","_scriptable","colors","numbers","resize","animations","visible","Animations","_chart","_properties","configure","isObject","animatedProps","getOwnPropertyNames","_animateOptions","resolveTargetOptions","$shared","assign","$animations","_createAnimations","awaitAll","anim","all","scaleClip","allowedOverflow","opts","reverse","getSortedDatasetIndices","filterVisible","metasets","_getSortedDatasetMetas","ilen","applyStack","stack","dsIndex","singleMode","mode","datasetIndex","otherValue","isNumberFinite","sign","isStacked","meta","stacked","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","vScale","positive","getMatchingVisibleMetas","updateStacks","controller","parsed","_cachedMeta","_stacks","iScale","iAxis","axis","vAxis","getStackKey","indexScale","valueScale","p0","_top","_bottom","getFirstScaleId","scales","clearStacks","_parsed","isDirectUpdateMode","cloneIfNotShared","cached","shared","DatasetController","_ctx","_cachedDataOpts","getMeta","_type","_parsing","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","supportsDecimation","$context","_syncList","initialize","linkScales","_stacked","addElements","updateIndex","dataset","getDataset","chooseId","y","r","xid","xAxisID","valueOrDefault","yid","yAxisID","rid","rAxisID","indexAxis","iid","iAxisID","vid","vAxisID","xScale","getScaleForId","yScale","rScale","datasets","getDatasetMeta","scaleID","_getOtherScale","_destroy","unlistenArrayEvents","_dataCheck","convertObjectDataToArray","adata","isExtensible","listenArrayEvents","datasetElementType","buildOrUpdateElements","resetNewElements","stackChanged","oldStacked","_resyncElements","scopeKeys","datasetScopeKeys","scopes","getOptionScopes","createResolver","getContext","parsing","sorted","_sorted","prev","parseArrayData","parseObjectData","parsePrimitiveData","isNotInOrderComparedToPrev","getLabels","singleScale","xAxisKey","yAxisKey","resolveObjectKey","getParsed","getDataElement","updateRangeFromParsed","parsedValue","NaN","getMinMax","canStack","otherScale","createStack","Number","POSITIVE_INFINITY","NEGATIVE_INFINITY","otherMin","otherMax","getUserBounds","minDefined","maxDefined","_skip","getAllParsedValues","getMaxOverflow","getLabelAndValue","getLabelForValue","_clip","toClip","top","right","bottom","left","clip","defaultClip","area","chartArea","drawActiveElementsOnTop","getStyle","resolveDatasetElementOptions","resolveDataElementOptions","createDataContext","createContext","dataIndex","raw","createDatasetContext","_resolveElementOptions","dataElementType","elementType","cache","sharing","defined","datasetElementScopeKeys","prefixes","names","resolveNamedOptions","freeze","_resolveAnimations","datasetAnimationScopeKeys","_cacheable","getSharedOptions","includeOptions","sharedOptions","_animationsDisabled","_getSharedOptions","firstOpts","previouslySharedOptions","updateSharedOptions","updateElement","_setStyle","removeHoverStyle","setHoverStyle","_removeDatasetHoverStyle","_setDatasetHoverStyle","arg1","arg2","numMeta","numData","_insertElements","_removeElements","move","updateElements","removed","_sync","_dataChanges","_onDataPush","arguments","_onDataPop","_onDataShift","_onDataSplice","newCount","_onDataUnshift","computeMinSampleSize","getAllScaleValues","_cache","$bar","visibleMetas","_arrayUnique","curr","_length","updateMinAndPrev","getPixelForValue","ticks","getPixelForTick","parseValue","parseFloatBar","startValue","endValue","barStart","barEnd","_custom","parseArrayOrPrimitive","isFloatBar","custom","setBorderSkipped","edge","borderSkipped","borderProps","horizontal","base","enableBorderRadius","parseEdge","swap","orig","v1","v2","startEnd","setInflateAmount","inflateAmount","ratio","BarController","iAxisKey","vAxisKey","bars","getBasePixel","isHorizontal","ruler","_getRuler","vpixels","isNullOrUndef","head","_calculateBarValuePixels","ipixels","_calculateBarIndexPixels","center","height","width","_getStacks","last","grouped","skipNull","_getStackCount","_getStackIndex","pixels","barThickness","_startPixel","_endPixel","stackCount","categoryPercentage","barPercentage","baseValue","minBarLength","actualBase","floating","getDataVisibility","barSign","startPixel","getPixelForDecimal","endPixel","halfGrid","getLineWidthForValue","maxBarThickness","Infinity","computeFlexCategoryTraits","percent","chunk","computeFitCategoryTraits","thickness","stackIndex","rects","overrides","_index_","grid","_value_","beginAtZero","BubbleController","radius","points","point","iPixel","vPixel","skip","plugins","tooltip","DoughnutController","innerRadius","outerRadius","offsetX","offsetY","getter","_getRotation","toRadians","rotation","_getCircumference","circumference","_getRotationExtents","TAU","isDatasetVisible","arcs","spacing","getMaxBorderWidth","getMaxOffset","maxSize","cutout","toPercentage","chartWeight","_getRingWeight","ratioX","ratioY","getRatioAndOffset","startAngle","endAngle","startX","cos","startY","sin","endX","endY","calcMax","angle","_angleBetween","calcMin","maxX","maxY","HALF_PI","minX","PI","minY","maxRadius","toDimension","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","_circumference","animateRotate","calculateCircumference","centerX","centerY","animateScale","arc","metaData","formatNumber","locale","borderAlign","borderWidth","hoverBorderWidth","hoverOffset","ringWeightOffset","weight","descriptors","aspectRatio","legend","generateLabels","pointStyle","fillStyle","backgroundColor","strokeStyle","borderColor","lineWidth","onClick","legendItem","toggleDataVisibility","tooltipItem","dataLabel","formattedValue","LineController","line","_dataset","animationsDisabled","getStartAndCountOfVisiblePoints","pointCount","_limitValue","_lookupByKey","lo","hi","scaleRangesChanged","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","changed","_datasetIndex","_decimated","showLine","segment","animated","spanGaps","maxGapLength","isNumber","directUpdate","prevParsed","nullData","border","firstPoint","lastPoint","updateControlPoints","controllers","__proto__","PolarAreaController","_parseObjectDataRadialScale","_updateRadius","minSize","cutoutPercentage","getVisibleDatasetCount","animationOpts","xCenter","yCenter","datasetStartAngle","getIndexAngle","defaultAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","angleLines","circular","pointLabels","PieController","RadarController","_fullLoop","pointPosition","getPointPositionForValue","ScatterController","interaction","abstract","adapters","_date","DateAdapter","formats","timestamp","amount","diff","startOf","weekday","endOf","override","members","binarySearch","metaset","intersect","lookupMethod","_reversePixels","_rlookupByKey","getRange","evaluateInteractionItems","position","handler","getSortedVisibleDatasetMetas","getIntersectItems","useFinalPosition","includeInvisible","isPointInArea","_isPointInArea","inRange","getNearestItems","getNearestCartesianItems","distanceMetric","getDistanceMetricForAxis","useX","useY","pt1","pt2","deltaX","deltaY","sqrt","minDistance","evaluationFunc","getCenterPoint","distance","getNearestRadialItems","getProps","getAngleFromPoint","getAxisItems","rangeMethod","intersectsItem","Interaction","modes","getRelativePosition","nearest","STATIC_POSITIONS","filterByPosition","pos","filterDynamicPositionByAxis","box","sortByWeight","v0","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","layout","getPadding","newWidth","outerWidth","newHeight","outerHeight","widthChanged","w","heightChanged","h","same","other","getMargins","marginForPositions","positions","margin","fitBoxes","boxes","refitBoxes","refit","fullSize","setBoxDims","placeBoxes","userPadding","padding","placed","stackWeight","autoPadding","layouts","addBox","_layers","z","removeBox","layoutItem","minPadding","toPadding","availableWidth","availableHeight","buildLayoutBoxes","layoutBoxes","wrapBoxes","wrap","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","vertical","verticalBoxes","horizontalBoxes","each","beforeLayout","visibleVerticalBoxCount","vBoxMaxWidth","hBoxMaxHeight","setLayoutDims","buildStacks","_stack","handleMaxPadding","updatePos","change","BasePlatform","acquireContext","canvas","releaseContext","removeEventListener","getDevicePixelRatio","getMaximumSize","isAttached","updateConfig","BasicPlatform","EXPANDO_KEY","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","isNullOrEmpty","eventListenerOptions","supportsEventListenerOptions","passive","removeListener","nodeListContains","nodeList","createAttachObserver","observer","MutationObserver","addedNodes","removedNodes","observe","childList","subtree","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","devicePixelRatio","currentDevicePixelRatio","createResizeObserver","_getParentNode","throttled","clientWidth","ResizeObserver","contentRect","listenDevicePixelRatioChanges","releaseObserver","disconnect","unlistenDevicePixelRatioChanges","createProxyAndListen","proxy","fromNativeEvent","native","addListener","DomPlatform","initCanvas","renderHeight","getAttribute","renderWidth","boxSizing","displayWidth","readUsedSize","displayHeight","$proxies","attach","detach","proxies","isConnected","tooltipPosition","hasValue","ret","defaultRoutes","formatters","numeric","tickValue","notation","delta","maxTick","calculateDelta","logDelta","log10","numDecimal","minimumFractionDigits","maximumFractionDigits","logarithmic","Ticks","newTicks","majorStart","majorEnd","ceil","bounds","grace","drawBorder","drawOnChartArea","drawTicks","tickLength","tickWidth","tickColor","borderDash","borderDashOffset","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkip","autoSkipPadding","labelOffset","minor","major","align","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","offsetFromEdge","sample","numItems","increment","len","getPixelForGridLine","offsetGridLines","validIndex","epsilon","lineValue","getTickMarkLength","getTitleHeight","fallback","font","toFont","lineHeight","titleAlign","_toLeftRightCenter","reverseAlign","Scale","_margins","maxWidth","maxHeight","paddingTop","paddingBottom","paddingLeft","paddingRight","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_maxLength","_longestTextCache","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","setContext","suggestedMin","suggestedMax","finiteOrDefault","metas","getTicks","xLabels","yLabels","beforeUpdate","margins","tickOpts","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","_addGrace","beforeBuildTicks","buildTicks","afterBuildTicks","samplingEnabled","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","source","ticksLimit","maxTicksLimit","determineMaxTicks","_tickSize","majorIndices","getMajorIndices","numMajorIndices","skipMajors","calculateSpacing","evenMajorSpacing","getEvenSpacing","factors","_factorize","avgMajorSpacing","afterAutoSkip","beforeFit","fit","afterFit","afterUpdate","reversePixels","_alignToPixels","alignToPixels","_callHooks","notifyPlugins","beforeTickToLabelConversion","generateTickLabels","afterTickToLabelConversion","numTicks","maxLabelDiagonal","_isVisible","labelSizes","_getLabelSizes","maxLabelWidth","widest","maxLabelHeight","highest","toDegrees","asin","titleOpts","gridOpts","titleHeight","tickPadding","angleRadians","_calculatePadding","_handleMargins","isRotated","labelsBelowTicks","offsetLeft","offsetRight","isFullSize","_computeLabelSizes","caches","widths","heights","jlen","tickFont","fontString","nestedLabel","widestLabelSize","highestLabelSize","_resolveTickFontOptions","string","gc","_measureText","garbageCollect","gcLen","valueAt","getValueForPixel","pixel","decimal","_int16Range","_alignPixel","getDecimalForPixel","getBaseValue","createTickContext","createScaleContext","optionTicks","rot","_computeGridLineItems","ticksLength","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","positionAxisID","optsAtIndex","lineColor","tickBorderDash","tickBorderDashOffset","_computeLabelItems","tickAndPadding","hTickAndPadding","textAlign","lineCount","textOffset","textBaseline","_getXAxisLabelAlignment","_getYAxisLabelAlignment","halfCount","strokeColor","strokeWidth","tickTextAlign","labelPadding","translation","_computeLabelArea","drawBackground","save","fillRect","restore","drawGrid","drawLine","p1","p2","setLineDash","lineDashOffset","beginPath","moveTo","lineTo","stroke","lastLineWidth","drawLabels","clipArea","renderText","unclipArea","drawTitle","titleX","titleY","titleArgs","_alignStartEnd","tz","gz","axisID","_maxDigits","fontSize","TypedRegistry","scope","isForType","isPrototypeOf","proto","getPrototypeOf","parentScope","isIChartComponent","registerDefaults","itemDefaults","merge","routeDefaults","propertyParts","sourceName","sourceScope","targetName","targetScope","unregister","registry","Registry","_typedRegistries","_each","addControllers","addPlugins","addScales","getController","_get","getElement","getPlugin","getScale","removeControllers","removeElements","removePlugins","removeScales","typedRegistry","arg","reg","_getRegistryForType","_exec","itemReg","camelMethod","_capitalize","PluginService","_init","notify","hook","_createDescriptors","_descriptors","descriptor","plugin","cancelable","invalidate","_oldCache","_notifyStateChanges","allPlugins","localIds","createDescriptors","getOpts","pluginOpts","previousDescriptors","pluginScopeKeys","scriptable","indexable","allKeys","getIndexAxis","determineAxis","scaleOptions","axisFromPosition","initOptions","mergeScaleConfig","chartDefaults","configScales","chartIndexAxis","firstIDs","scaleConf","_proxy","warn","defaultId","getDefaultScaleIDFromAxis","defaultScaleOptions","mergeIf","defaultID","getAxisFromDefaultScaleID","initData","keyCache","keysCached","cachedKeys","generate","addIfFound","Config","_config","initConfig","_scopeCache","_resolverCache","platform","clearCache","datasetType","additionalOptionScopes","_cachedScopes","mainScope","resetCache","keyLists","chartOptionScopes","resolver","subPrefixes","getResolver","needContext","isScriptable","isIndexable","isFunction","hasFunction","subResolver","_attachContext","descriptorDefaults","resolverCache","_createResolver","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","l2","onAnimationsComplete","onComplete","onAnimationProgress","onProgress","getCanvas","_isDomSupported","instances","getChart","moveNumericKeys","intKey","userConfig","initialCanvas","existingChart","_detectPlatform","OffscreenCanvas","uid","_options","_aspectRatio","_metasets","_lastEvent","_listeners","_responsiveListeners","_sortedMetasets","_plugins","_hiddenIndices","attached","_doResize","debounce","resizeDelay","_initialize","maintainAspectRatio","responsive","retinaScale","bindEvents","clearCanvas","_resizeBeforeDraw","_resize","newSize","newRatio","onResize","render","ensureScalesHaveIDs","axisOptions","buildOrUpdateScales","scaleOpts","updated","isRadial","dposition","dtype","scaleType","hasUpdated","_updateMetasets","_destroyDatasetMeta","_removeUnreferencedMetasets","buildOrUpdateControllers","newControllers","order","ControllerClass","_resetElements","animsDisabled","_updateScales","_checkEventBindings","_updateHiddenIndices","_minPadding","_updateLayout","_updateDatasets","_eventHandler","_updateHoverStyles","existingEvents","newEvents","setsEqual","unbindEvents","changes","_getUniformDataChanges","datasetCount","makeSet","changeSet","noArea","_idx","_updateDataset","layers","_drawDatasets","_drawDataset","useClip","getElementsAtEventForMode","setDatasetVisibility","_updateVisibility","_stop","toBase64Image","toDataURL","bindUserEvents","bindResponsiveEvents","_add","_remove","detached","updateHoverStyle","getActiveElements","setActiveElements","activeElements","lastActive","_elementsEqual","replay","hoverOptions","hover","deactivated","activated","inChartArea","eventFilter","_handleEvent","_getActiveElements","isClick","_isClickEvent","lastEvent","determineLastEvent","onHover","invalidatePlugins","enumerable","clipArc","pixelMargin","angleMargin","closePath","rThetaToXY","theta","pathArc","innerR","spacingOffset","alpha","avNogSpacingRadius","angleOffset","outerStart","outerEnd","innerStart","innerEnd","parseBorderRadius$1","angleDelta","o","toRadiusCorners","_readValueToProps","borderRadius","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","pCenter","p4","p8","defineProperties","version","ArcElement","fullCircles","chartX","chartY","rAdjust","betweenAngles","withinRadius","_isBetween","halfAngle","halfRadius","radiusOffset","drawArc","borderJoinStyle","inner","lineJoin","drawFullCircleBorders","lineCap","borderCapStyle","previous","pathVars","paramsStart","paramsEnd","segmentStart","segmentEnd","pathSegment","lineMethod","getLineMethod","stepped","_steppedLineTo","tension","cubicInterpolationMode","_bezierCurveTo","fastPathSegment","prevX","lastY","avgX","countX","pointIndex","drawX","truncX","_getSegmentMethod","usePath2D","Path2D","LineElement","_path","_points","_segments","_pointsUpdated","_updateBezierControlPoints","segments","_computeSegments","interpolate","_boundSegments","_interpolate","_getInterpolationMethod","_steppedInterpolation","_bezierInterpolation","_pointInLine","interpolated","segmentMethod","strokePathWithCache","strokePathDirect","capBezierPoints","inRange$1","hitRadius","PointElement","mouseX","mouseY","inXRange","inYRange","hoverRadius","drawPoint","getBarBounds","bar","half","skipOrLimit","skipX","skipY","addNormalRectPath","rect","inflateRect","refRect","BarElement","outer","boundingRects","parseBorderWidth","maxW","maxH","toTRBL","parseBorderRadius","toTRBLCorners","maxR","enableBorder","topLeft","topRight","bottomLeft","bottomRight","addRectPath","hasRadius","addRoundedRectPath","cleanDecimatedDataset","defineProperty","cleanDecimatedData","plugin_decimation","algorithm","beforeElementsUpdate","xAxis","decimated","getStartAndCountOfVisiblePointsSimplified","threshold","configurable","d","lttbDecimation","samples","bucketWidth","sampledIndex","endIndex","maxAreaPoint","maxArea","nextA","avgY","avgRangeStart","avgRangeEnd","avgRangeLength","rangeOffs","rangeTo","pointAx","pointAy","minMaxDecimation","minIndex","maxIndex","xMin","dx","intermediateIndex1","intermediateIndex2","_getBounds","_normalizeAngle","_findSegmentEnd","_getEdge","_createBoundaryLine","boundary","_pointsFromSegments","linePoints","_shouldApplyFill","_resolveTarget","sources","propagate","visited","_decodeFill","parseFillOption","fillOption","decodeTargetIndex","firstCh","addPointsBelow","sourcePoint","linesBelow","postponed","findPoint","pointValue","firstValue","lastValue","simpleArc","_drawfill","_getTarget","getLineByIndex","_buildStackLine","sourcePoints","getLinesBelow","below","computeBoundary","computeCircularBoundary","_getTargetValue","computeLinearBoundary","_getTargetPixel","lineOpts","above","doFill","clipVertical","clipY","lineLoop","tpoints","targetSegments","tgt","subBounds","fillSources","_boundSegment","fillSource","src","notShape","clipBounds","interpolatedLineTo","targetLoop","interpolatedPoint","afterDatasetsUpdate","_args","$filler","beforeDraw","drawTime","beforeDatasetsDraw","beforeDatasetDraw","getBoxSize","labelOpts","boxHeight","boxWidth","usePointStyle","pointStyleWidth","itemHeight","Legend","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","lineWidths","buildLabels","labelFont","_computeTitleHeight","_fitRows","_fitCols","hitboxes","totalHeight","row","itemWidth","measureText","heightLimit","totalWidth","currentColWidth","currentColHeight","col","adjustHitBoxes","rtl","rtlHelper","getRtlAdapter","hitbox","leftForLtr","_draw","defaultColor","fontColor","halfFontSize","cursor","overrideTextDirection","textDirection","textWidth","setWidth","lineDash","drawOptions","SQRT2","xPlus","drawPointLegend","yBoxTop","xBoxLeft","drawLegendBox","_textX","strikethrough","fillText","restoreTextDirection","titleFont","titlePadding","topPaddingPlusHalfFontSize","_getLegendItemAt","hitBox","lh","handleEvent","isListened","onLeave","hoveredItem","sameItem","itemsEqual","plugin_legend","afterEvent","ci","Title","_padding","textSize","_drawArgs","fontOpts","plugin_title","createTitle","titleBlock","plugin_subtitle","positioners","average","eventPosition","nearestElement","distanceBetweenPoints","tp","pushOrConcat","toPush","apply","splitNewlines","createTooltipItem","getTooltipSize","footer","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","before","lines","after","beforeBody","afterBody","titleSpacing","titleMarginBottom","displayColors","bodySpacing","footerMarginTop","footerSpacing","widthPadding","maxLineWidth","determineXAlign","yAlign","chartWidth","xAlign","doesNotFitWithAlign","caret","caretSize","caretPadding","determineAlignment","determineYAlign","getBackgroundPoint","alignment","cornerRadius","paddingAndSize","alignX","alignY","getAlignedX","getBeforeAfterBodyLines","overrideCallbacks","Tooltip","opacity","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","createTooltipContext","tooltipItems","getTitle","beforeTitle","afterTitle","getBeforeBody","getBody","bodyItems","scoped","beforeLabel","afterLabel","getAfterBody","getFooter","beforeFooter","afterFooter","_createItems","itemSort","labelColor","labelPointStyle","labelTextColor","positionAndSize","backgroundPoint","external","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","pt","titleColor","_drawColorBox","colorX","rtlColorX","colorY","multiKeyBackground","outerX","innerX","strokeRect","drawBody","bodyAlign","bodyLineHeight","xLinePadding","fillLineOfText","bodyAlignForCalculation","textColor","bodyColor","drawFooter","footerAlign","footerColor","tooltipSize","quadraticCurveTo","_updateAnimationTarget","animX","animY","_willRender","globalAlpha","positionChanged","_positionChanged","_ignoreReplayEvents","plugin_tooltip","afterInit","afterDraw","noop","labelCount","Decimation","Filler","SubTitle","CategoryScale","_startValue","_valueRange","_addedLabels","added","isFinite","findOrAddLabel","addedLabels","addIfString","relativeLabelSize","minSpacing","rad","LinearScaleBase","_endValue","handleTickRangeOptions","setMin","setMax","minSign","maxSign","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","getTickLimit","maxTicks","stepSize","computeTickLimit","generateTicks$1","generationOptions","dataRange","maxDigits","includeBounds","maxSpaces","rmin","rmax","countDefined","niceMin","niceMax","numSpaces","niceNum","MIN_SPACING","almostWhole","almostEquals","decimalPlaces","_decimalPlaces","_setMinAndMaxByKey","LinearScale","isMajor","tickVal","LogarithmicScale","_zero","generateTicks","endExp","endSignificand","significand","lastTick","getTickBackdropHeight","measureLabelSize","_longestText","determineLimits","updateLimits","limits","hLimits","vLimits","getTextAlignForAngle","leftForTextAlign","yForAngle","pathRadiusLine","getPointPosition","RadialLinearScale","drawingArea","_pointLabels","_pointLabelItems","fitWithPointLabels","valueCount","pointLabelOpts","additionalAngle","centerPointLabels","getPointLabelContext","plFont","setCenterPoint","buildPointLabelItems","extra","outerDistance","pointLabelPosition","leftMovement","rightMovement","topMovement","bottomMovement","angleMultiplier","scalingFactor","getValueForDistanceFromCenter","scaledDistance","pointLabel","createPointLabelContext","distanceFromCenter","getBasePosition","getPointLabelPosition","drawPointLabels","backdropLeft","backdropTop","backdropWidth","backdropHeight","drawRadiusLine","gridLineOpts","rotate","INTERVALS","millisecond","common","second","minute","hour","day","week","quarter","UNITS","sorter","adapter","_adapter","parser","isoWeekday","_parseOpts","determineUnitForAutoTicks","minUnit","capacity","addTick","timestamps","_lookup","ticksFromTimestamps","majorUnit","setMajorTicks","TimeScale","_unit","_majorUnit","_offsets","_normalized","displayFormats","normalized","_applyBounds","_getLabelBounds","getLabelTimestamps","timeOpts","_generate","_filterBetween","_getLabelCapacity","determineUnitForFormatting","determineMajorUnit","initOffsets","offsetAfterAutoskip","getDecimalForValue","hasWeekday","getDataTimestamps","tooltipFormat","datetime","_tickFormatFunction","majorFormat","formatter","_getLabelSize","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","exampleLabel","normalize","table","prevSource","nextSource","prevTarget","nextTarget","span","TimeSeriesScale","_table","_minPos","_tableRange","_getTimestampsForTable","buildLookupTable","requestAnimationFrame","thisArg","updateFn","updateArgs","ticking","rest","timeout","clearTimeout","endsWith","loopable","a0","a1","clone$1","klen","_merger","tval","sval","merger","_mergerIf","indexOfDotOrLength","PITAU","INFINITY","RAD_PER_DEG","QUARTER_PI","TWO_THIRDS_PI","roundedRange","niceRange","fraction","rounded","degrees","radians","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","atan2","_angleDiff","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","atEdge","elasticIn","elasticOut","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","lim","p2b","n2b","b2n","n2p","map$1","A","B","C","D","E","F","hex","h1","h2","eq","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","rgb","rgb2hsl","g","hueValue","calln","hsl2rgb","hue","Z","Y","X","W","V","U","T","S","R","Q","P","O","N","M","K","G","H","I","J","names$1","OiceXe","antiquewEte","aqua","aquamarRe","azuY","beige","bisque","black","blanKedOmond","Xe","XeviTet","bPwn","burlywood","caMtXe","KartYuse","KocTate","cSO","cSnflowerXe","cSnsilk","crimson","cyan","xXe","xcyan","xgTMnPd","xWay","xgYF","xgYy","xkhaki","xmagFta","xTivegYF","xSange","xScEd","xYd","xsOmon","xsHgYF","xUXe","xUWay","xUgYy","xQe","xviTet","dAppRk","dApskyXe","dimWay","dimgYy","dodgerXe","fiYbrick","flSOwEte","foYstWAn","fuKsia","gaRsbSo","ghostwEte","gTd","gTMnPd","Way","gYF","gYFLw","gYy","honeyMw","hotpRk","RdianYd","Rdigo","ivSy","khaki","lavFMr","lavFMrXsh","lawngYF","NmoncEffon","ZXe","ZcSO","Zcyan","ZgTMnPdLw","ZWay","ZgYF","ZgYy","ZpRk","ZsOmon","ZsHgYF","ZskyXe","ZUWay","ZUgYy","ZstAlXe","ZLw","lime","limegYF","lRF","magFta","maPon","VaquamarRe","VXe","VScEd","VpurpN","VsHgYF","VUXe","VsprRggYF","VQe","VviTetYd","midnightXe","mRtcYam","mistyPse","moccasR","navajowEte","navy","Tdlace","Tive","TivedBb","Sange","SangeYd","ScEd","pOegTMnPd","pOegYF","pOeQe","pOeviTetYd","papayawEp","pHKpuff","peru","pRk","plum","powMrXe","purpN","YbeccapurpN","Yd","Psybrown","PyOXe","saddNbPwn","sOmon","sandybPwn","sHgYF","sHshell","siFna","silver","skyXe","UXe","UWay","UgYy","snow","sprRggYF","stAlXe","tan","teO","tEstN","tomato","Qe","viTet","JHt","wEte","wEtesmoke","Lw","LwgYF","RGB_RE","modHSL","tmp","fromObject","functionParse","rgbParse","hueParse","hwb2rgb","hsv2rgb","hexParse","nameParse","unpack","unpacked","tkeys","ok","nk","_rgb","_valid","rgbString","isShort","hslString","c2","w2","w1","rgb1","rgb2","clearer","greyscale","opaquer","negate","lighten","darken","saturate","desaturate","deg","index_esm","isPatternOrGradient","getHoverColor","getScope$1","Defaults","family","hoverBackgroundColor","hoverBorderColor","hoverColor","describe","scopeObject","targetScopeObject","privateName","$e","writable","z0","longest","arrayOfThings","thing","nestedThing","halfWidth","resetTransform","clearRect","xOffset","yOffset","drawImage","ellipse","SQRT1_2","flip","midpoint","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","setRenderOpts","strokeText","decorateText","underline","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxDescent","yDecoration","actualBoundingBoxAscent","decorationWidth","LINE_HEIGHT","FONT_STYLE","toLineHeight","numberOrZero","objProps","read","toFontString","inputs","cacheable","minmax","keepZero","cmp","mid","arrayEvents","_chartjs","object","stub","rootScopes","getTarget","_resolve","Symbol","toStringTag","_scopes","_rootScopes","Proxy","deleteProperty","_keys","_cached","_resolveWithPrefixes","readKey","needsSubResolver","createSubResolver","getOwnPropertyDescriptor","Reflect","getKeysFromAllScopes","ownKeys","storage","_storage","subProxy","_context","_subProxy","receiver","_resolveWithContext","_resolveScriptable","_resolveArray","_allKeys","resolveFallback","getScope","addScopes","parentScopes","parentFallback","allScopes","addScopesFromKey","subGetTarget","resolveKeysFromAllScopes","EPSILON","getPoint","getValueAxis","splineCurve","middlePoint","afterPoint","current","d01","d12","s01","s12","fa","fb","capControlPoint","controlPoints","splineCurveMonotone","valueAxis","pointsLen","deltaK","mK","pointBefore","pointCurrent","pointAfter","slopeDelta","monotoneAdjust","alphaK","betaK","tauK","squaredMagnitude","monotoneCompute","inArea","inAreaPrev","inAreaNext","domNode","parseMaxStyle","styleValue","parentProperty","valueInPixels","getPositionedStyle","evt","borderBox","paddings","borders","getCanvasPosition","touches","shadowRoot","useOffsetPos","getBoundingClientRect","clientX","clientY","round1","bbWidth","bbHeight","containerSize","getContainerSize","containerStyle","containerBorder","containerPadding","clientHeight","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","passiveSupported","cp1","cp2","intlCache","num","getNumberFormat","NumberFormat","rectX","getRightToLeftAdapter","_itemWidth","direction","getPropertyPriority","prevTextDirection","propertyFn","between","normalizeSegment","startBound","endBound","getSegment","prevValue","inside","subStart","segmentOptions","findStartAndEnd","splitByStyles","solidSegments","doSplitByStyles","chartContext","baseStyle","readStyle","prevStyle","addStyle","st","dir","p0DataIndex","p1DataIndex","styleChanged","filterElements","getNearestItem","nearestItems","evenPoint","getPointByAxis","_index","getElements","visibleElements","inRangeByAxis","moveHooks","hooks","dispatchMoveEvents","checkElements","dispatchEvent","isOlderPart","act","clamp","clampAll","inBoxRange","hBorderWidth","inRangeX","getElementCenterPoint","isPercentString","toPercent","getSize","toPosition","isBoundToPoint","xValue","yValue","widthCache","isImageOrCanvas","content","setBorderStyle","setShadowStyle","shadowColor","backgroundShadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","mapKey","drawBox","borderShadowColor","scaleValue","retrieveScaleID","axes","getDimensionByScale","getChartPoint","resolveBoxProperties","xDim","getChartDimensionByScale","xMax","yDim","yMin","yMax","resolvePointProperties","xAdjust","yAdjust","getChartCircle","resolveBoxAndLabelProperties","optionScope","resolveLabelElementProperties$1","initProperties","calculatePosition$1","boxOpts","padStart","padEnd","adjust","callout","labelSize","calculateX","calculateY","rotated","cx","cy","changeScaleLimit","suggestedLimit","scaleLimitDefined","verifyScaleIDs","annotation","verifyProperties","BoxAnnotation","resolveElementProperties","adjustScaleRange","xScaleID","yScaleID","LabelAnnotation","_visible","drawCallout","pointX","pointY","calloutPosition","resolveCalloutPosition","resolveCalloutAutoPosition","xPoints","yPoints","rotatedPoint","isPointInRange","separatorStart","separatorEnd","getCalloutSeparatorCoord","getCalloutSeparatorAdjust","sideStart","sideEnd","getCalloutSideCoord","side","getCalloutSideAdjust","drawLabel","calculateTextAlignment","setTextStrokeStyle","miterLimit","getLabelSize","boxSize","measureRect","calculatePosition","pointInLine","interpolateX","interpolateY","sqr","LineAnnotation","intersects","dy","lenSq","xx","yy","isOnLabel","rangeLimit","startOpts","endOpts","startAdjust","endAdjust","getArrowHeads","arrowStartOpts","arrowHeads","arrowEndOpts","getLineAdjust","drawArrowHead","applyScaleValueToDimension","startProp","endProp","isLineInArea","limitLineToArea","limitPointToArea","labelProperties","resolveLabelElementProperties","calculateLabelPosition","sizes","calculateAutoRotation","rotatedSize","calculateT","space","spaceAround","calculateTAdjust","yCoordinateSizes","adjustLabelCoordinate","arrowHeadsDefaults","dim","lineSize","lineW","lineH","coordinate","halfSize","arrowOpts","arrowOffsetX","EllipseAnnotation","pointInEllipse","xRadius","yRadius","cosAngle","sinAngle","PointAnnotation","inPointRange","PolygonAnnotation","pointIsInPolygon","isInside","bY","bX","axisPoints","sides","buildPointElement","halfBorder","annotationTypes","polygon","directUpdater","resolveType","toSkip","updateSubElements","mainElement","subElements","subElement","getOrCreateElement","resolveAnnotationOptions","elementClass","resolveObj","defs","optDefs","chartStates","beforeRegister","requireVersion","pkg","ver","strict","afterRegister","afterUnregister","beforeInit","annotations","listened","moveListened","hovered","annotationOptions","verifyScaleOptions","getScaleLimits","scaleIDOption","updateListeners","_getElements","resolveAnimations","animOpts","resyncElements","afterDatasetsDraw","beforeEvent","handleMoveEvents","handleClickEvents","_getState","caller","drawableElements","getDrawableElements","require","module","exports","entryVirtual","getIteratorMethod","ArrayPrototype","it","own","RegExpPrototype","desc","sham","getRegExpFlags","isCallable","tryToString","$TypeError","TypeError","argument","$String","$forEach","STRICT_METHOD","arrayMethodIsStrict","callbackfn","bind","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","isConstructor","lengthOfArrayLike","createProperty","getIterator","$Array","arrayLike","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","iteratorMethod","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","uncurryThis","IndexedObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","that","specificCreate","boundFunction","filterReject","fails","wellKnownSymbol","V8_VERSION","SPECIES","METHOD_NAME","foo","Boolean","aCallable","IS_RIGHT","memo","fin","arraySlice","mergeSort","comparefn","middle","insertionSort","llength","rlength","lindex","rindex","originalArray","arraySpeciesConstructor","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","return","SKIP_CLOSING","ITERATION_SUPPORT","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","$Object","CORRECT_ARGUMENTS","tag","tryGet","callee","DESCRIPTORS","definePropertyModule","createPropertyDescriptor","bitmap","toPropertyKey","propertyKey","createNonEnumerableProperty","global","documentAll","IS_HTMLDDA","EXISTS","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","firefox","UA","classof","getBuiltIn","userAgent","Deno","versions","v8","webkit","CONSTRUCTOR","isForced","hasOwn","wrapConstructor","NativeConstructor","Wrapper","USE_NATIVE","VIRTUAL_PROTOTYPE","sourceProperty","targetProperty","nativeProperty","resultProperty","TARGET","GLOBAL","STATIC","stat","PROTO","nativeSource","targetPrototype","forced","dontCallGetSet","real","NATIVE_BIND","FunctionPrototype","Function","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","aFunction","variable","getMethod","isNullOrUndefined","Iterators","usingIterator","func","check","globalThis","propertyIsEnumerable","store","functionToString","inspectSource","NATIVE_WEAK_MAP","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","facade","STATE","enforce","getterFor","$documentAll","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","replacement","feature","detection","POLYFILL","NATIVE","USE_SYMBOL_AS_UID","$Symbol","kind","innerResult","innerError","IteratorPrototype","setToStringTag","returnThis","IteratorConstructor","NAME","ENUMERABLE_NEXT","$","IS_PURE","FunctionName","createIteratorConstructor","setPrototypeOf","defineBuiltIn","IteratorsCore","PROPER_FUNCTION_NAME","CONFIGURABLE_FUNCTION_NAME","BUGGY_SAFARI_ITERATORS","VALUES","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","PrototypeOfArrayIteratorPrototype","arrayIterator","toLength","whitespaces","$parseInt","radix","activeXDocument","definePropertiesModule","enumBugKeys","html","documentCreateElement","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","write","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","contentWindow","NullProtoObjectViaIFrame","Properties","V8_PROTOTYPE_DEFINE_BUG","objectKeys","IE8_DOM_DEFINE","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","propertyIsEnumerableModule","$getOwnPropertyNames","windowNames","getWindowNames","internalObjectKeys","getOwnPropertySymbols","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","$propertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","setter","CORRECT_SETTER","pref","hasIndices","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","regExpFlags","TAG","SET_METHOD","defineGlobalProperty","SHARED","copyright","license","toIntegerOrInfinity","requireObjectCoercible","CONVERT_TO_STRING","codeAt","whitespace","ltrim","rtrim","symbol","SymbolPrototype","TO_PRIMITIVE","hint","arity","NATIVE_SYMBOL","for","keyFor","integer","isSymbol","ordinaryToPrimitive","exoticToPrim","toPrimitive","postfix","wrappedWellKnownSymbolModule","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","doesNotExceedSafeInteger","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","checkCorrectnessOfIteration","iterable","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","addToUnscopables","InternalStateModule","defineIterator","createIterResultObject","ARRAY_ITERATOR","setInternalState","getInternalState","iterated","Arguments","$map","$reduce","CHROME_VERSION","IS_NODE","nativeSlice","HAS_SPECIES_SUPPORT","Constructor","deletePropertyOrThrow","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","chr","itemsLength","arrayLength","getSortCompare","$stringify","numberToString","tester","low","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","replacer","$replacer","fixIllFormed","getOwnPropertySymbolsModule","$getOwnPropertySymbols","STRING_ITERATOR","defineWellKnownSymbol","$toString","nativeObjectCreate","getOwnPropertyNamesModule","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","defineSymbolToPrimitive","HIDDEN","SYMBOL","QObject","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","$defineProperties","IS_OBJECT_PROTOTYPE","unsafe","useSetter","useSimple","NATIVE_SYMBOL_REGISTRY","StringToSymbolRegistry","SymbolToStringRegistry","sym","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","HASH_UNDEFINED","argsTag","boolTag","dateTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","addMapEntry","pair","addSetEntry","arrayReduce","iteratee","accumulator","initAccum","isHostObject","mapToArray","overArg","setToArray","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","funcToString","objectToString","reIsNative","Buffer","Uint8Array","getPrototype","objectCreate","nativeGetSymbols","nativeIsBuffer","isBuffer","nativeKeys","DataView","getNative","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","Hash","ListCache","MapCache","Stack","__data__","assignValue","objValue","assocIndexOf","baseClone","isDeep","isFull","customizer","isArr","initCloneArray","copyArray","getTag","isFunc","cloneBuffer","copy","initCloneObject","isPrototype","baseCreate","copySymbols","copyObject","getSymbols","baseAssign","initCloneByTag","cloneFunc","Ctor","cloneArrayBuffer","cloneDataView","dataView","byteOffset","byteLength","cloneTypedArray","typedArray","cloneMap","cloneRegExp","regexp","cloneSet","cloneSymbol","getAllKeys","baseGetAllKeys","keysFunc","symbolsFunc","arrayPush","arrayEach","subValue","arrayBuffer","newValue","getMapData","isKeyable","getValue","baseIsNative","isMasked","hashClear","hashDelete","hashGet","hashHas","hashSet","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","mapCacheClear","hash","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","LARGE_ARRAY_SIZE","stubArray","baseGetTag","isIndex","ArrayBuffer","ctorString","isArrayLike","isLength","stubFalse","arrayLikeKeys","inherited","isArguments","isArrayLikeObject","isObjectLike","baseTimes","skipIndexes","baseKeys","load","define","__webpack_require__","__WEBPACK_AMD_DEFINE_FACTORY__","default","cachedGuess","zones","links","countries","guesses","logError","momentVersion","charCodeToInt","charCode","unpackBase60","whole","fractional","multiplier","out","arrayToInt","mapIndices","indices","untils","intToUntil","abbrs","population","Zone","packedString","_set","Country","country_name","zone_names","OffsetAt","at","timeString","toTimeString","abbr","getTimezoneOffset","ZoneScore","offsetScore","abbrScore","findChange","high","sortZoneScores","addToGuesses","normalizeName","addZone","packed","getZone","addLink","aliases","normal0","normal1","needsOffset","_a","_tzm","_f","utc","isMoment","zone_name","country_code","offsetNext","offsetPrev","moveAmbiguousForward","moveInvalidForward","mom","utcOffset","scoreOffsetAt","offsetAt","dataVersion","_zones","_links","_names","_countries","loadData","addCountries","country_zones","zoneExists","didShowError","guess","ignoreCache","rebuildGuess","intlName","DateTimeFormat","resolvedOptions","timeZone","zoneScore","userOffsets","startYear","getFullYear","offsetsLength","guessesForUserOffsets","guessesOffset","filteredGuesses","zoneScores","getNames","getCountryNames","zonesForCountry","country","with_offset","getCountry","abbrWrap","old","_z","resetZoneWrap","defaultZone","updateOffset","keepTime","_isUTC","_d","zoneName","zoneAbbr","resetZoneWrap2","setDefault","momentProperties","defineLocale","months","monthsShort","weekdays","weekdaysShort","weekdaysMin","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","ss","mm","hh","dd","MM","dayOfMonthOrdinalParse","ordinal","dow","doy","lll","llll","hookCallback","hasOwnProp","isObjectEmpty","isUndefined","isDate","arrLen","extend","createUTC","createLocalOrUTC","getParsingFlags","_pf","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","_isValid","parsedParts","isNowValid","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","fun","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_i","_l","_offset","_locale","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","mergeConfigs","parentConfig","childConfig","zeroFill","targetLength","forceSign","absNumber","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","localeData","removeFormattingTokens","formatMoment","expandFormat","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","addUnitAlias","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","priorities","addUnitPriority","priority","isLeapYear","absFloor","toInt","argumentForCoercion","coercedNumber","makeGetSet","set$1","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p3","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","modMonth","mod","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","parseTwoDigitYear","getSetYear","createDate","ms","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","fwd","getUTCDay","dayOfYearFromWeeks","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","lowercase","minutes","matchMeridiem","_meridiemParse","kFormat","seconds","kInput","_isPm","isPM","_meridiem","pos1","pos2","getSetHour","globalLocale","baseConfig","ww","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","isLocaleNameSane","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","parentLocale","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","preprocessRFC2822","extractFromRFC2822Strings","monthStr","dayStr","hourStr","minuteStr","secondStr","checkWeekday","weekdayStr","parsedInput","getDay","calculateOffset","obsOffset","militaryOffset","numOffset","hm","setUTCMinutes","getUTCMinutes","configFromArray","currentDate","expectedWeekday","yearToUse","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","dayOfYearFromWeekInfo","weekYear","weekdayOverflow","curWeek","GG","createLocal","_week","gg","_dayOfYear","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","isPm","meridiemHour","erasConvertYear","prepareConfig","preparse","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","configFromInput","configFromString","createFromInputFallback","configFromObject","isUTC","createFromConfig","prototypeMin","prototypeMax","pickBy","moments","ordering","Duration","years","quarters","weeks","isoWeek","days","milliseconds","isDurationValid","unitHasDecimal","orderLen","_milliseconds","_days","_months","_bubble","isDuration","absRound","offsetFromString","chunkOffset","matcher","cloneWithOffset","setTime","getDateOffset","isUtc","aspNetRegex","isoRegex","createDuration","diffRes","parseIso","momentsDifference","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","addSubtract","isAdding","invalid","createInvalid$1","isString","isMomentInput","isNumberOrStringArray","arrayTest","dataTypeTest","isMomentInputObject","objectTest","propertyTest","propertyLen","isCalendarSpec","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","matchEraName","erasNameRegex","matchEraNarrow","erasNarrowRegex","erasParse","matchEraYearOrdinal","_eraYearOrdinalRegex","eraYearOrdinalParse","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","preParsePostFormat","calendar$1","sod","calendarFormat","asFloat","zoneDelta","startOfDate","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","stringGet","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","inputMs","isSameOrAfter","isSameOrBefore","isValid$2","parsingFlags","stringSet","prioritized","getPrioritizedUnits","unitsObj","prioritizedLen","toArray","toDate","toISOString","keepOffset","inspect","isLocal","toJSON","unix","creationData","eraName","getEraName","since","until","eraNarrow","getEraNarrow","eraAbbr","getEraAbbr","eraYear","getEraYear","getIsLeapYear","getSetWeekYear","getSetISOWeekYear","getSetQuarter","getDaysInMonth","getSetWeek","isoWeeks","getSetISOWeek","getWeeksInYear","weekInfo","weeksInWeekYear","getWeeksInWeekYear","isoWeeksInYear","getISOWeeksInYear","isoWeeksInISOWeekYear","getISOWeeksInISOWeekYear","getSetDayOfWeek","parseWeekday","getSetLocaleDayOfWeek","getSetISODayOfWeek","parseIsoWeekday","getSetDayOfYear","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","setOffsetToUTC","setOffsetToLocal","parseZone","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDST","isDaylightSavingTime","isUtcOffset","getZoneAbbr","getZoneName","dates","getSetZone","isDSTShifted","isDaylightSavingTimeShifted","_isDSTShifted","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","proto$1","get$1","listMonthsImpl","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","tok","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","localeEras","_eras","localeErasParse","localeErasConvertYear","localeMonths","isFormat","standalone","localeMonthsShort","_monthsShort","localeMonthsParse","_monthsParseExact","localeWeek","firstDayOfYear","localeFirstDayOfYear","firstDayOfWeek","localeFirstDayOfWeek","localeWeekdays","_weekdays","localeWeekdaysMin","_weekdaysMin","localeWeekdaysShort","_weekdaysShort","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","localeIsPM","localeMeridiem","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","toFixed","proto$2","isValid$1","add$1","subtract$1","valueOf$1","bubble","monthsFromDays","get$2","argWithSuffix","argThresholds","withSuffix","th","relativeTime$1","posNegDuration","toIsoString","setHookCallback","createUnix","listMonths","listWeekdays","createInZone","listMonthsShort","listWeekdaysMin","updateLocale","tmpLocale","listLocales","listWeekdaysShort","relativeTimeRounding","getSetRelativeTimeRounding","roundingFunction","relativeTimeThreshold","getSetRelativeTimeThreshold","getCalendarFormat","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","raygunUserAgent","raygunUserAgentData","userAgentData","raygunUserAgentDataStatus","getHighEntropyValues","highEntropyUserAgentData","getHighFidelityUAString","userAgentString","platformVersion","fullVersionList","regexChrome","regexEdge","brand","wind","windw","originalOnError","onerror","raygunCoreWebVitalFactory","queueTimings","_parentResource","CoreWebVitals","cleanWebVitalData","queueHandler","parentResource","webVitals","getLCP","getFID","getCLS","timing","du","RaygunObject","readyState","TraceKit","_oldTraceKit","_slice","UNKNOWN_FUNCTION","_has","_isUndefined","what","setRaygun","rg","noConflict","wrapped","report","_oldOnerrorHandler","_onErrorHandlerInstalled","handlers","lastException","lastExceptionStack","notifyHandlers","windowError","exception","collectWindowErrors","traceKitWindowOnError","lineNo","columnNo","errorObj","computeStackTrace","augmentStackTraceWithInitialElement","column","guessFunctionName","gatherContext","useragent","ex","incomplete","Utilities","isReactNative","installGlobalHandler","unsubscribe","debug","sourceCache","getSource","loadSource","reFunctionArgNames","reGuessFunction","linesBefore","linesOfContext","linesAfter","escapeRegExp","escapeCodeAsRegExpForMatchingInsideHTML","findSourceInUrls","re","urls","findSourceInLine","fragment","findSourceByFunctionBody","scripts","getElementsByTagName","script","stackInfo","reference","partial","computeStackTraceByWalkingCallerChain","functionName","funcs","recursion","sourceURL","fileName","lineNumber","computeStackTraceFromStacktraceProp","stacktrace","testRE","stackstring","computeStackTraceFromStackProp","chrome","gecko","winjs","reactNativeDevicePathStripRegex","columnNumber","computeStackTraceFromOperaMultiLineMessage","lineRE1","lineRE2","lineRE3","inlineScriptBlocks","relativeLine","innerText","midline","tracekitResult","ofCaller","computeStackTraceOfCaller","extendToAsynchronousCallbacks","_helper","fnName","originalFn","originalCallback","remoteFetching","pad","getUTCHours","getUTCSeconds","getUTCMilliseconds","mappedValue","oThis","aArgs","fToBind","FNOP","fBound","firstInputEvent","firstInputDelay","firstInputTimeStamp","listenerOpts","capture","startTimeStamp","resetFirstInputPolyfill","eachEventType","recordFirstInputDelay","reportFirstInputDelayIfRecordedAndValid","entryType","timeStamp","processingStart","onInput","performance","onPointerUp","removePointerEventListeners","onPointerCancel","onPointerDown","firstHiddenTime","visibilityState","onVisibilityChange","firstInputPolyfill","onFirstInput","_oldEventAdd","types","_handler","_oldReady","ready","_oldAjax","ajax","jQuery","raygunUtilityFactory","_defaultReactNativeGlobalHandler","getUuid","_p8","createCookie","setAsSecure","expires","toGMTString","readCookie","nameEQ","ca","clearCookie","Options","_debugMode","isApiKeyConfigured","_raygunApiKey","__DEV__","defaultReactNativeGlobalHandler","fatal","localStorageAvailable","localStorage","sessionStorageAvailable","sessionStorage","truncateURL","truncated","queryStart","sanitizedPath","truncated_parts","truncated_length","o1","o2","o3","mergeMutate","mergeArray","t0","t1","isNil","getRandomInt","parseUrl","isNumeric","_ls","auth","protocol","_p","_h","_hs","_ps","param","enhance","newFunction","existingFunction","addEventHandler","useCapture","attachEvent","detachEvent","nodeText","textContent","nodeSelector","tagName","truncate","getOrigin","resolveFullUrl","pathComponents","removeFromArray","newArray","isIE","any","predicate","ErrorUtils","getGlobalHandler","raygunErrorUtilitiesFactory","scriptError","currentLocation","currentUrl","utils","isValidStackLine","stackLine","isScriptError","stackTrace","isBrowserExtensionError","isBrowserExtensionUrl","isValidStackTrace","stackTraceHasValidDomain","whitelistedScriptDomains","foundValidDomain","raygunNetworkTrackingFactory","NetworkTracking","requestHandlers","responseHandlers","errorHandlers","wrapWithHandler","executeHandlers","wrapPrototypeWithHandlers","on","off","XMLHttpRequest","initTime","requestURL","responseType","responseText","responseURL","originalFetch","__raygunOriginalFetch","fetch","polyfill","processFetch","fetchInput","Request","ourResponse","__raygunFetchCallback","raygunViewportFactory","nullResult","isValidDimension","dimensionValue","getViewportDimensions","viewportWidth","innerWidth","viewportHeight","innerHeight","raygunBreadcrumbsFactory","urlMatchesIgnoredHosts","ignoredHosts","Breadcrumbs","MAX_BREADCRUMBS","MAX_MESSAGE_SIZE","BREADCRUMB_LEVELS","DEFAULT_BREADCRUMB_LEVEL","DEFAULT_XHR_IGNORED_HOSTS","breadcrumbLevel","logXhrContents","xhrIgnoredHosts","breadcrumbs","disableConsoleFunctions","disableNavigationFunctions","disableXHRLogging","disableClicksTracking","enableAutoBreadcrumbs","recordBreadcrumb","crumb","level","shouldRecord","setBreadcrumbLevel","setOption","removeBreadcrumbsWithPredicate","sanitizedBreadcrumbs","enableAutoBreadcrumbsXHR","enableAutoBreadcrumbsClicks","enableAutoBreadcrumbsConsole","enableAutoBreadcrumbsNavigation","disableAutoBreadcrumbs","disableAutoBreadcrumbsXHR","disableAutoBreadcrumbsClicks","disableAutoBreadcrumbsConsole","disableAutoBreadcrumbsNavigation","crumbs","filteredCrumbs","removeCrumbsOfType","logConsoleCall","severity","stringifiedArgs","unenhance","history","pushState","buildStateChange","currentPath","search","prevState","parseHash","stateChange","logBreadcrumbWrapper","eventsWithHandlers","oldURL","newURL","requestHandler","responseHandler","errorHandler","raygunFactory","ErrorUtilities","Viewport","_user","_version","_filteredKeys","_beforeSendCallback","_beforeSendRumCallback","_groupingKeyCallback","_beforeXHRCallback","_afterSendCallback","_loadedFrom","$document","_clientIp","detachPromiseRejectionFunction","ProviderStates","_userKey","_traceKit","_raygun","_allowInsecureSubmissions","_ignoreAjaxAbort","_ignoreAjaxError","_enableOfflineSave","_ignore3rdPartyErrors","_disableAnonymousUserTracking","_disableErrorTracking","_disablePulse","_wrapAsynchronousCallbacks","_automaticPerformanceCustomTimings","_trackCoreWebVitals","_trackViewportDimensions","_customData","_tags","_whitelistedScriptDomains","_raygunApiUrl","_excludedHostnames","_excludedUserAgents","_filterScope","_rum","_breadcrumbs","_pulseMaxVirtualPageDuration","_pulseIgnoreUrlCasing","_providerState","_processExceptionQueue","_trackEventQueue","_pulseCustomLoadTimeEnabled","_captureUnhandledRejections","_setCookieAsSecure","_captureMissingRequests","_publicRaygunFunctions","Rand","constructNewRaygun","customdata","ignoreAjaxAbort","ignoreAjaxError","disableAnonymousUserTracking","disableErrorTracking","disablePulse","excludedHostnames","excludedUserAgents","pulseMaxVirtualPageDuration","pulseIgnoreUrlCasing","pulseCustomLoadTimeEnabled","setCookieAsSecure","automaticPerformanceCustomTimings","trackCoreWebVitals","trackViewportDimensions","apiUrl","wrapAsynchronousCallbacks","debugMode","ignore3rdPartyErrors","apiEndpoint","clientIp","ensureUser","bootRaygun","getFromStorage","getItem","setItem","setUserComplete","withCustomData","withTags","tags","attachPromiseRejectionHandler","promiseRejectionHandler","setGlobalHandler","originalAfterSendCallback","processException","ajaxError","processJQueryAjaxError","unbind","detachPromiseRejectionHandler","customData","traceKitException","uuid","Identifier","IsAnonymous","FullName","FirstName","UUID","resetAnonymousUser","clearStorage","removeItem","setVersion","saveIfOffline","enableOffline","filterSensitiveData","filteredKeys","setFilterScope","whitelistCrossOriginDomains","whitelist","onBeforeSend","onBeforeSendRum","groupingKey","onBeforeXHR","onAfterSend","endSession","RealUserMonitoring","virtualPageLoaded","trackCustomTiming","sendCustomTimings","setClientIp","ip","setBreadcrumbOption","setBreadcrumbs","getBreadcrumbs","callAfterSend","userIdentifier","saveToStorage","reason","detail","startRum","makePostCorsRequest","retriggerDelayedCommands","userTriggered","sendSavedErrors","offlineSave","filterValue","executedFilter","filterObject","parentKey","filteredObject","propertyValue","jqXHR","ajaxSettings","thrownError","statusText","getAllResponseHeaders","ajaxErrorMessage","contentType","requestData","responseData","activeTarget","activeElement","outerHTML","qs","shouldDiscardThirdPartyError","hostIndex","userAgentIndex","LineNumber","ColumnNumber","ClassName","FileName","MethodName","queryString","finalCustomData","viewportDimensions","screenData","screen","colorDepth","custom_message","pageLocation","finalMessage","OccurredOn","Details","Message","StackTrace","StackString","Environment","UtcOffset","userLanguage","documentMode","Browser","appCodeName","appName","appVersion","Platform","Client","Version","UserCustomData","Tags","Url","QueryString","Headers","Referer","referrer","Host","User","CustomData","GroupingKey","mutatedPayload","sendToRaygun","_successCallback","_errorCallback","xhr","createCORSRequest","XDomainRequest","setRequestHeader","onreadystatechange","onload","ontimeout","__raygunNoConflict","__instantiatedRaygun","initMetric","PerformanceObserver","supportedEntryTypes","po","getEntries","buffered","onHidden","once","onHiddenOrPageHide","onBFCacheRestore","persisted","bindReporter","reportAllChanges","forceReport","trackChanges","_ref","getVisibilityWatcher","getFCP","onReport","visibilityWatcher","entryHandler","fcpEntry","getEntriesByName","isMonitoringFCP","fcpValue","reportedMetricIDs","onReportWrapped","sessionValue","sessionEntries","hadRecentInput","takeRecords","stopListening","getTTFB","afterLoad","navTiming","getEntriesByType","navigationEntry","navigationStart","getNavigationEntryFromPerformanceTiming","responseStart","apiKey","excludedHostNames","maxVirtualPageDuration","ignoreUrlCasing","customTimingsEnabled","beforeSendCb","_private","cookieName","beforeSend","pendingPayloadData","queuedPerformanceTimings","pendingVirtualPage","sessionId","virtualPage","heartBeatInterval","heartBeatIntervalTime","sendUsingNavigatorBeacon","stopCollectingMetrics","queuedItems","maxQueueItemsSent","xhrRequestMap","xhrStatusMap","Timings","sendNewSessionStart","sendItemImmediately","addViewportToSessionData","device","hasSessionExpired","storageItem","readStorageElement","generateNewSessionId","randomKey","sendPerformance","firstLoad","performanceData","getPerformanceData","performanceEntryExists","fetchStart","getPrimaryTimingData","pathName","getEncodedTimingData","extractChildData","getVirtualPrimaryTimingData","virtualPageStartTime","prepareVirtualEncodedTimingData","getPerformanceNow","attachParentResourceToCollection","_array","attachParentResource","addPerformanceTimingsToQueue","sendChildAssets","forceSend","processVirtualPageTimingsInQueue","sendQueuedItems","sortCollectionByProperty","collection","getCompareFunction","propA","propB","comparison","sendItemsImmediately","pending","generateVirtualEncodedTimingData","itemsToSend","postPayload","makePostCorsRequestRum","successCallback","errorCallback","updateUserAgentData","eventData","dataFragment","Family","Major","Minor","Patch","PatchMinor","stringifiedPayload","sendBeacon","requeueItemsToFront","sendQueuedPerformancePayloads","currentPayloadTimingData","payloadTimings","payloadIncludesPageTiming","addCurrentPayloadEvents","createTimingPayload","sendTimingData","isPageOrVirtualPage","requestId","sendCoreWebVitalTimings","fromVirtualPage","resources","resource","waitingForResourceToFinishLoading","isCustomTimingMeasurement","customTiming","getCustomTimingMeasurement","shouldIgnoreResource","getSecondaryTimingData","addMissingWrtData","getSessionId","nullValue","expired","isNewSession","pageLoaded","clickHandler","updateStorageTimestamp","unloadHandler","visibilityChangeHandler","pageHideHandler","xhrRequestHandler","xhrErrorHandler","xhrResponseHandler","createParentResource","getPageUrl","heartBeat","setInterval","initalStaticPageLoadTimestamp","resumeCollectingMetrics","customTimings","custom1","custom2","custom3","custom4","custom5","custom6","custom7","custom8","custom9","custom10","newTimings","createCustomTimingMeasurement","responses","shouldIgnoreResourceByName","statusCode","maxFiveMinutes","getTimingUrl","timingData","getSecondaryEncodedTimingData","decodedBodySize","xhrStatusesForName","domainLookupStart","domainLookupEnd","connectStart","connectEnd","responseEnd","domLoading","domInteractive","domContentLoadedEventEnd","domComplete","loadEventStart","loadEventEnd","secureConnectionStart","addPaintTimings","firstPaint","fp","msFirstPaint","firstContentfulPaint","fcp","sanitizeNaNs","getTimingDuration","getSecondaryTimingType","staticLoad","shouldIgnoreCasing","_pathname","requestWithParent","requests","responseWithParent","fallbackValue","updatedValue","isXHRTiming","initiatorType","isChildAsset","getTypeForChildAsset","isChromeFetchCall","sessionData","viewport","raygunRumFactory","errorQueue","enablePulse","snippetOptions","globalExecutorInstalled","delayedCommands","snippetOnErrorSignature","delayedExecutionFunctions","executor","onLoadHandler","installGlobalExecutor","parseSnippetOptions","onerrorSignature","commandIndex","Subject","_value","_subscribe","subscriber","subscription","closed","hasError","ObjectUnsubscribedError","Notification","do","accept","nextOrObserver","toObservable","undefinedValueNotification","completeNotification","Observable","_isScalar","lift","operator","observable","observerOrNext","sink","toSubscriber","Subscriber","rxSubscriberSymbol","emptyObserver","syncErrorThrowable","_trySubscribe","syncErrorThrown","syncErrorValue","canReportError","isStopped","promiseCtor","getPromiseCtor","reject","Symbol_observable","operations","pipeFromArray","hostReportError","OuterSubscriber","notifyNext","outerValue","innerValue","outerIndex","innerIndex","innerSub","notifyError","notifyComplete","queue","QueueScheduler","AsyncScheduler","QueueAction","AsyncAction","scheduler","work","schedule","execute","_execute","requestAsyncId","ReplaySubject","bufferSize","windowTime","_events","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","ReplayEvent","_getNow","_trimBufferThenGetEvents","Subscription","observers","SubjectSubscription","ObserveOnSubscriber","eventsCount","spliceCount","SubjectSubscriber","subject","AnonymousSubject","subscriberIndex","destinationOrNext","SafeSubscriber","_next","_error","_complete","_unsubscribeAndRecycle","_parentOrParents","_parentSubscriber","__tryOrSetError","__tryOrUnsub","useDeprecatedSynchronousErrorHandling","wrappedComplete","_unsubscribe","UnsubscriptionError","UnsubscriptionErrorImpl","_subscriptions","_ctorUnsubscribe","flattenUnsubscriptionErrors","teardown","EMPTY","subscriptions","subscriptionIndex","errs","_enable_super_gross_mode_that_will_cause_bad_things","SimpleInnerSubscriber","SimpleOuterSubscriber","innerSubscribe","innerSubscriber","subscribeTo","ConnectableObservable","subjectFactory","_refCount","_isComplete","getSubject","_subject","connect","connection","_connection","ConnectableSubscriber","refCount","higherOrderRefCount","connectableObservableDescriptor","connectableProto","connectable","NONE","observables","resultSelector","isScheduler","fromArray","CombineLatestOperator","CombineLatestSubscriber","toRespond","subscribeToResult","unused","_outerValue","_tryResultSelector","concatAll","mergeAll","defer","observableFactory","emptyScheduled","forkJoin","forkJoinInternal","completed","emitted","scheduled","isInteropObservable","scheduleObservable","isPromise","schedulePromise","scheduleArray","isIterable","Symbol_iterator","scheduleIterable","subscribeToArray","fromEvent","setupSubscription","sourceObj","isEventTarget","isJQueryStyleEventEmitter","isNodeStyleEventEmitter","async","dispatch","counter","concurrent","timer","dueTime","periodOrScheduler","due","AuditOperator","durationSelector","AuditSubscriber","innerSubscription","clearThrottle","auditTime","audit","CatchOperator","caught","CatchSubscriber","err2","concatMap","project","debounceTime","DebounceTimeOperator","DebounceTimeSubscriber","debouncedSubscription","clearDebounce","dispatchNext","debouncedNext","defaultIfEmpty","DefaultIfEmptyOperator","DefaultIfEmptySubscriber","delayFor","DelayOperator","DelaySubscriber","errored","notification","_schedule","scheduleNotification","DelayMessage","keySelector","DistinctUntilChangedOperator","DistinctUntilChangedSubscriber","hasKey","FilterOperator","FilterSubscriber","FinallyOperator","FinallySubscriber","hasDefaultValue","identity","throwIfEmpty","EmptyError","MapOperator","MapSubscriber","mapTo","MapToOperator","MapToSubscriber","MergeMapOperator","MergeMapSubscriber","hasCompleted","_tryNext","_innerSub","ish","multicast","subjectOrSubjectFactory","MulticastOperator","observeOn","ObserveOnOperator","scheduleMessage","ObserveOnMessage","pairwise","PairwiseOperator","PairwiseSubscriber","hasPrev","RefCountOperator","refCounter","RefCountSubscriber","sharedConnection","shareSubjectFactory","share","shareReplay","configOrBufferSize","shareReplayOperator","useRefCount","isComplete","SkipOperator","SkipSubscriber","startWith","SwitchMapOperator","SwitchMapSubscriber","TakeOperator","ArgumentOutOfRangeError","TakeSubscriber","takeUntil","notifier","TakeUntilOperator","takeUntilSubscriber","TakeUntilSubscriber","notifierSubscription","seenValue","takeWhile","inclusive","TakeWhileOperator","TakeWhileSubscriber","nextOrComplete","predicateResult","tap","DoOperator","TapSubscriber","_tapNext","_tapError","_tapComplete","errorFactory","defaultErrorFactory","ThrowIfEmptyOperator","ThrowIfEmptySubscriber","withLatestFrom","WithLatestFromOperator","WithLatestFromSubscriber","_tryProject","Action","recycleAsyncId","clearInterval","errorValue","actions","Scheduler","SchedulerAction","animationFrameScheduler","AnimationFrameScheduler","AnimationFrameAction","cancelAnimationFrame","nextHandle","RESOLVED","activeHandles","findAndClearHandle","Immediate","setImmediate","clearImmediate","asapScheduler","AsapScheduler","AsapAction","getSymbolIterator","rxSubscriber","ArgumentOutOfRangeErrorImpl","EmptyErrorImpl","ObjectUnsubscribedErrorImpl","isObservable","fns","obs","subscribeToObservable","subscribeToPromise","subscribeToIterable","InnerSubscriber","outerSubscriber","_Object$defineProperty","_interopRequireDefault","_reduce","_indexOf","_concat","REGEX_DATA","subParts","union","conjunction","deanchor","leadingAnchor","trailingAnchor","asXRegExp","addFlagX","isRegExp","captureNames","substitution","escape","reduceToSubpatternsObject","subpatterns","subpatternIndex","embedSubpatternAfter","rawLiterals","literals","_context2","_len","substitutions","_key","subs","inlineFlags","_clipDuplicates","numPriorCaps","patternAsRegex","numCaps","numOuterCaps","outerCapsMap","outerCapNames","$0","$1","$2","$3","$4","capName","intro","localCapIndex","subName","_context3","ReferenceError","rewrittenSubpattern","paren","backref","matchRecursive","basicFlags","esc","escapeChar","_hasNativeFlag","leftMatch","rightMatch","openTokens","delimStart","delimEnd","lastOuterEnd","vN","valueNames","unbalanced","errorPos","_sliceInstanceProperty","_Array$from","_Symbol","_getIteratorMethod","_Array$isArray","_slicedToArray2","_forEach","_arrayLikeToArray","unicodeTypes","dec","_dec","_hex","pad4","_pad4","addToken","ERR_UNKNOWN_NAME","_match","fullToken","pPrefix","caretNegation","typePrefix","tokenName","tokenSingleCharName","isNegated","isAstralMode","slug","SyntaxError","inverseOf","bmp","cacheAstral","buildAstral","combined","isBmpLast","astral","cacheInvertedBmp","invertBmp","lastEnd","optionalFlags","leadChar","addUnicodeData","_step","_iterator","_createForOfIteratorHelper","allowArrayLike","_unsupportedIterableToArray","minLen","_context4","_e","normalCompletion","didErr","_e2","normalizedName","normalizedAlias","_getUnicodeProperty","_categories","unicodeData","_scripts","_xregexp","_build","_matchrecursive","_unicodeBase","_unicodeCategories","_unicodeProperties","_unicodeScripts","_sliceInstanceProperty2","_flags","_sort","_parseInt2","_create","_context9","features","namespacing","fixed","regexCache","patternCache","defaultScope","nativeTokens","class","replacementToken","correctExecNpcg","hasFlagsProp","hasNativeFlag","isSupported","hasNativeD","hasNativeS","hasNativeU","hasNativeY","registeredFlags","nonnativeFlags","augment","xSource","xFlags","isInternalOnly","clipDuplicates","copyRegex","xData","getNativeFlags","flagsToAdd","flagsToRemove","xregexpSource","xregexpFlags","removeG","removeY","addG","addY","hasNamedCapture","getContextualTokenSeparator","matchEndPos","followingChar","isQuantifierNext","isType","nullThrows","prepareOptions","registerFlag","runTokens","matchLength","reparse","setAstral","setNamespacing","isInstalled","applied","prepareFlags","appliedPattern","appliedFlags","_XRegExp$exec","_XRegExp$exec2","captures","generated","_step2","_iterator2","cacheName","fakeY","r2","globalize","install","matchChain","chain","recurseChain","addMatch","ERR_UNDEFINED_GROUP","isNamedBackref","groups","backrefValue","_step3","_iterator3","isRegex","s2","replaceEach","replacements","_step4","_iterator4","uninstall","patterns","numPriorCaptures","numCaptures","rewrite","_step5","_iterator5","origLastIndex","groupsObject","_len2","_key2","bracketed","angled","dollarToken","_context5","numNonCaptureArgs","_n","lastLength","lastLastIndex","_context6","_context7","_context8","webpackContext","_s","_arr","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayLikeToArray","stateChangeExpr","scheduleMicroTask","_position","_onStart","triggerMicrotask","AnimationGroupPlayer","_players","doneCount","destroyCount","startCount","timeAtPosition","longestPlayer","longestSoFar","mediaQueriesForWebkitCompatibility","mediaQueryStyleNode","MediaMatcher","_platform","_matchMedia","matchMedia","noopMatchMedia","BLINK","createEmptyStyleRule","sheet","insertRule","media","BreakpointObserver","_mediaMatcher","_queries","_destroySubject","isMatched","splitQueries","coerceArray","mediaQuery","_registerQuery","mql","stateObservable","breakpointStates","breakpoints","queries","a2","ListKeyManager","_items","_activeItemIndex","_activeItem","_wrap","_letterKeyStream","_typeaheadSubscription","_vertical","_allowedModifierKeys","_homeAndEnd","_pageUpAndDown","_skipPredicateFn","_pressedLetters","tabOut","QueryList","_itemChangesSubscription","newItems","newIndex","skipPredicate","withWrap","shouldWrap","withVerticalOrientation","withHorizontalOrientation","_horizontal","withAllowedModifierKeys","withTypeAhead","debounceInterval","letter","_getItemsArray","getLabel","setActiveItem","cancelTypeahead","withHomeAndEnd","withPageUpDown","previousActiveItem","updateActiveItem","onKeydown","keyCode","isModifierAllowed","modifier","TAB","DOWN_ARROW","setNextItemActive","UP_ARROW","setPreviousItemActive","RIGHT_ARROW","LEFT_ARROW","HOME","setFirstItemActive","END","setLastItemActive","PAGE_UP","targetIndex","_setActiveItemByIndex","PAGE_DOWN","hasModifierKey","toLocaleUpperCase","ZERO","NINE","preventDefault","activeItemIndex","activeItem","isTyping","_setActiveItemByDelta","itemArray","_setActiveInWrapMode","_setActiveInDefaultMode","fallbackDelta","ActiveDescendantKeyManager","setInactiveStyles","setActiveStyles","FocusKeyManager","_origin","setFocusOrigin","InteractivityChecker","isDisabled","hasAttribute","isVisible","hasGeometry","offsetWidth","offsetHeight","getClientRects","visibility","isTabbable","frameElement","getFrameElement","getWindow","ownerDocument","defaultView","getTabIndexValue","nodeName","tabIndexValue","IOS","isPotentiallyTabbableIOS","inputType","FIREFOX","tabIndex","isFocusable","isPotentiallyFocusable","isHiddenInput","isInputElement","isNativeFormElement","isAnchorWithHref","isAnchorElement","hasValidTabIndex","ignoreVisibility","FocusTrap","_checker","_ngZone","_document","deferAnchors","_hasAttached","startAnchorListener","focusLastTabbableElement","endAnchorListener","focusFirstTabbableElement","_enabled","attachAnchors","_startAnchor","_endAnchor","_toggleAnchorTabIndex","startAnchor","endAnchor","_createAnchor","focusInitialElementWhenReady","_executeOnStable","focusInitialElement","focusFirstTabbableElementWhenReady","focusLastTabbableElementWhenReady","_getRegionBoundary","bound","markers","_getFirstTabbableElement","_getLastTabbableElement","redirectToElement","focusableChild","hasAttached","tabbableChild","ELEMENT_NODE","isEnabled","toggleAnchors","isStable","onStable","FocusTrapFactory","deferCaptureElements","isFakeMousedownFromScreenReader","buttons","isFakeTouchstartFromScreenReader","touch","changedTouches","radiusX","radiusY","INPUT_MODALITY_DETECTOR_OPTIONS","INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS","ignoreKeys","ALT","CONTROL","MAC_META","META","SHIFT","modalityEventListenerOptions","normalizePassiveListenerOptions","InputModalityDetector","_mostRecentTarget","_modality","_lastTouchMs","_onKeydown","_getEventTarget","_onMousedown","_onTouchstart","modalityDetected","modalityChanged","mostRecentModality","FOCUS_MONITOR_DEFAULT_OPTIONS","captureEventListenerOptions","FocusMonitor","_inputModalityDetector","_windowFocused","_originFromTouchInteraction","_elementInfo","_monitoredElementCount","_rootNodeFocusListenerCount","_windowFocusListener","_windowFocusTimeoutId","_stopInputModalityDetector","_rootNodeFocusAndBlurListener","parentElement","_onFocus","_onBlur","_detectionMode","detectionMode","monitor","checkChildren","nativeElement","coerceElement","rootNode","_getShadowRoot","_getDocument","cachedInfo","_registerGlobalListeners","stopMonitoring","elementInfo","_setClasses","_removeGlobalListeners","focusVia","_getClosestElementsInfo","currentElement","_originChanged","_setOrigin","_info","_getWindow","_getFocusOrigin","focusEventTarget","_shouldBeAttributedToTouch","_lastFocusOrigin","_isLastInteractionFromInputLabel","toggle","isFromInteraction","_originTimeoutId","relatedTarget","Node","_emitOrigin","rootNodeFocusListeners","modality","mostRecentTarget","BLACK_ON_WHITE_CSS_CLASS","WHITE_ON_BLACK_CSS_CLASS","HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS","HighContrastModeDetector","_breakpointSubscription","inject","_hasCheckedHighContrastMode","_applyBodyHighContrastModeCssClasses","getHighContrastMode","testElement","documentWindow","computedStyle","computedColor","bodyClasses","DIR_DOCUMENT","providedIn","DIR_DOCUMENT_FACTORY","RTL_LOCALE_PATTERN","Directionality","EventEmitter","_resolveDirectionality","rawValue","BidiModule","coerceBooleanProperty","coerceNumberProperty","_isNumberValue","coerceCssPixelValue","elementOrRef","ElementRef","DataSource","isDataSource","ArrayDataSource","_DisposeViewRepeaterStrategy","applyChanges","viewContainerRef","itemContextFactory","itemValueResolver","itemViewChanged","forEachOperation","record","adjustedPreviousIndex","currentIndex","view","operation","previousIndex","insertContext","createEmbeddedView","templateRef","_RecycleViewRepeaterStrategy","viewCacheSize","_viewCache","_insertView","_detachAndCacheView","_moveView","viewArgsFactory","cachedView","_insertViewFromCache","$implicit","viewArgs","detachedView","_maybeCacheView","insert","_VIEW_REPEATER_STRATEGY","BACKSPACE","ENTER","ESCAPE","SPACE","DELETE","SEMICOLON","COMMA","modifiers","altKey","shiftKey","ctrlKey","metaKey","hasV8BreakIterator","v8BreakIterator","supportsPassiveEvents","rtlScrollAxisType","scrollBehaviorSupported","shadowDomIsSupported","_platformId","isPlatformBrowser","EDGE","TRIDENT","CSS","ANDROID","SAFARI","PLATFORM_ID","supportsPassiveEventListeners","supportsScrollBehavior","scrollToFunction","scrollTo","getRtlScrollAxisType","scrollContainer","pointerEvents","contentStyle","scrollLeft","_supportsShadowDom","createShadowRoot","attachShadow","getRootNode","ShadowRoot","composedPath","_isTestEnvironment","__karma__","jasmine","jest","Mocha","Portal","_attachedHost","setAttachedHost","ComponentPortal","componentFactoryResolver","projectableNodes","TemplatePortal","elementRef","DomPortal","BasePortalOutlet","_isDisposed","attachDomPortal","_attachedPortal","portal","attachComponentPortal","attachTemplatePortal","_invokeDisposeFn","dispose","setDisposeFn","_disposeFn","DomPortalOutlet","outletElement","_componentFactoryResolver","_appRef","_defaultInjector","anchorNode","replaceChild","componentFactory","resolveComponentFactory","componentRef","createComponent","attachView","hostView","viewCount","detachView","_getComponentRootNode","viewContainer","viewRef","rootNodes","CdkPortal","ɵdir","CdkPortalOutlet","_viewContainerRef","_isInitialized","_getRootNode","attachedRef","_attachedRef","ref","emit","PortalModule","PortalInjector","_parentInjector","_customTokens","notFoundValue","VIRTUAL_SCROLL_STRATEGY","FixedSizeVirtualScrollStrategy","itemSize","minBufferPx","maxBufferPx","_scrolledIndexChange","scrolledIndexChange","_viewport","_itemSize","_minBufferPx","_maxBufferPx","_updateTotalContentSize","_updateRenderedRange","updateItemAndBufferSize","onContentScrolled","onDataLengthChanged","onContentRendered","onRenderedOffsetChanged","scrollToIndex","scrollToOffset","setTotalContentSize","getDataLength","renderedRange","getRenderedRange","newRange","viewportSize","getViewportSize","dataLength","scrollOffset","measureScrollOffset","firstVisibleIndex","maxVisibleItems","newVisibleIndex","startBuffer","expandStart","endBuffer","expandEnd","setRenderedRange","setRenderedContentOffset","_fixedSizeVirtualScrollStrategyFactory","fixedSizeDir","_scrollStrategy","CdkFixedSizeVirtualScroll","ngOnChanges","forwardRef","ScrollDispatcher","_scrolled","_globalSubscription","_scrolledCount","scrollContainers","scrollable","elementScrolled","scrollableReference","scrolled","auditTimeInMs","_addGlobalListener","_removeGlobalListener","ancestorScrolled","elementOrElementRef","ancestors","getAncestorScrollContainers","scrollingContainers","_subscription","_scrollableContainsElement","scrollableElement","getElementRef","CdkScrollable","scrollDispatcher","_elementScrolled","isRtl","scrollHeight","scrollWidth","_applyScrollToOptions","scrollTop","LEFT","i2","ViewportRuler","_change","_changeListener","_viewportSize","_updateViewportSize","getViewportRect","scrollPosition","getViewportScrollPosition","documentRect","scrollY","scrollX","throttleTime","VIRTUAL_SCROLLABLE","CdkVirtualScrollable","measureViewportSize","orientation","viewportEl","SCROLL_SCHEDULER","CdkVirtualScrollViewport","_changeDetectorRef","viewportRuler","_detachedSubject","_renderedRangeSubject","_orientation","_appendOnly","renderedRangeStream","_totalContentSize","_totalContentWidth","_totalContentHeight","_renderedRange","_dataLength","_renderedContentOffset","_renderedContentOffsetNeedsRewrite","_isChangeDetectionPending","_runAfterChangeDetection","_viewportChanges","checkViewportSize","_calculateSpacerSize","appendOnly","_measureViewportSize","_markChangeDetectionNeeded","forOf","_forOf","dataStream","newLength","_doChangeDetection","measureBoundingClientRectWithScrollOffset","rangesEqual","r1","getOffsetToRenderedContentStart","_renderedContentTransform","measureRenderedContentSize","measureViewportOffset","fromRect","scrollerClientRect","contentEl","_contentWrapper","measureRangeSize","runAfter","markForCheck","runAfterChangeDetection","ɵcmp","_c0","_t","virtualScrollable","Optional","Inject","ngContentSelectors","getOffset","CdkVirtualForOf","_template","_differs","_viewRepeater","viewChange","_dataSourceChanges","_changeDataSource","_differ","_needsUpdate","_onRenderedDataChange","cdkVirtualForOf","_cdkVirtualForOf","cdkVirtualForTrackBy","_cdkVirtualForTrackBy","cdkVirtualForTemplate","cdkVirtualForTemplateCacheSize","renderedStartIndex","rangeLen","firstNode","lastNode","ngDoCheck","_renderedItems","_applyChanges","_updateContext","oldDs","newDs","_updateComputedContextProperties","_adjustedPreviousIndex","_getEmbeddedViewArgs","forEachIdentityChange","even","odd","CdkScrollableModule","ScrollingModule","_DOM","getDOM","setRootDomAdapter","DomAdapter","PlatformLocation","historyGo","relativePosition","useBrowserPlatformLocation","ɵɵinject","BrowserPlatformLocation","LOCATION_INITIALIZED","_doc","_history","getBaseHrefFromDOM","getBaseHref","onPopState","getGlobalEventTarget","onHashChange","newPath","supportsState","replaceState","forward","back","go","getState","createBrowserPlatformLocation","joinWithSlash","slashes","stripTrailingSlash","pathEndIdx","normalizeQueryParams","LocationStrategy","PathLocationStrategy","_platformLocation","_removeListenerFns","_baseHref","prepareExternalUrl","internal","includeHash","queryParams","externalUrl","HashLocationStrategy","Location","locationStrategy","_urlChangeListeners","_urlChangeSubscription","_locationStrategy","baseHref","_basePath","_stripOrigin","_stripIndexHtml","ev","isCurrentPathEqualTo","_stripBasePath","basePath","_notifyUrlChangeListeners","onUrlChange","fnIndex","onNext","onThrow","onReturn","createLocation","FormStyle","Format","Standalone","TranslationWidth","Narrow","Abbreviated","Wide","Short","FormatWidth","Medium","Long","Full","NumberSymbol","Decimal","Group","List","PercentSign","PlusSign","MinusSign","Exponential","SuperscriptingExponent","PerMille","TimeSeparator","CurrencyDecimal","CurrencyGroup","getLocaleDayNames","formStyle","ɵfindLocaleData","getLastDefinedValue","ɵLocaleDataIndex","getLocaleMonthNames","getLocaleFirstDayOfWeek","getLocaleDateFormat","getLocaleTimeFormat","getLocaleDateTimeFormat","dateTimeFormatData","getLocaleNumberSymbol","checkFullData","extractTime","ISO8601_DATE_REGEX","NAMED_FORMATS","DATE_FORMATS_SPLIT","ZoneWidth","ShortGMT","Extended","DateType","FullYear","Hours","Minutes","Seconds","FractionalSeconds","Day","TranslationType","DayPeriods","Days","Months","Eras","formatDate","timezone","parsedNb","isoStringToDate","tzHour","tzMin","dateSetter","timeSetter","setUTCHours","getNamedFormat","part","dateTimezoneOffset","timezoneToOffset","convertTimezoneToLocal","reverseValue","addDateMinutes","setMinutes","getMinutes","dateFormatter","getDateFormatter","DATE_FORMATS","dateStrGetter","dateGetter","weekNumberingYearGetter","weekGetter","timeZoneGetter","newDate","localeId","getLocaleId","formatValue","shortTime","shortDate","formatDateTime","mediumTime","mediumDate","longTime","longDate","fullTime","fullDate","opt_values","padNumber","digits","minusSign","negWrap","neg","strNum","getDatePart","getHours","getSeconds","getMilliseconds","formatFractionalSeconds","localeMinus","form","extended","getDateTranslation","currentHours","currentMinutes","rules","getLocaleExtraDayPeriodRules","rule","dayPeriods","getLocaleExtraDayPeriods","afterFrom","beforeTo","getLocaleDayPeriods","amPm","getLocaleEraNames","erasData","getThursdayThisWeek","monthBased","nbDaysBefore1stDayOfMonth","thisThurs","firstThurs","getFirstThursdayOfYear","THURSDAY","requestedTimezoneOffset","extraData","ɵregisterLocaleData","parseCookieValue","cookieStr","eqIndex","cookieValue","NgClass","_iterableDiffers","_keyValueDiffers","_ngEl","_iterableDiffer","_keyValueDiffer","_initialClasses","_rawClass","klass","_removeClasses","_applyClasses","ngClass","ɵisListLikeIterable","iterableChanges","_applyIterableChanges","keyValueChanges","_applyKeyValueChanges","forEachAddedItem","_toggleClass","forEachChangedItem","forEachRemovedItem","ɵstringify","rawClassVal","NgForOfContext","ngForOf","NgForOf","_viewContainer","_ngForOf","_ngForOfDirty","ngForTrackBy","_trackByFn","ngForTemplate","applyViewChange","NgIf","NgIfContext","_thenTemplateRef","_elseTemplateRef","_thenViewRef","_elseViewRef","ngIf","condition","_updateView","ngIfThen","assertTemplate","ngIfElse","SwitchView","_templateRef","_created","enforceState","created","NgSwitch","_defaultUsed","_caseCount","_lastCaseCheckIndex","_lastCasesMatched","ngSwitch","_ngSwitch","_updateDefaultCases","_addCase","_addDefault","_defaultViews","_matchCase","useDefault","NgSwitchCase","_view","ngSwitchCase","NgSwitchDefault","NgStyle","_ngStyle","ngStyle","nameAndUnit","RendererStyleFlags2","NgTemplateOutlet","_viewRef","ngTemplateOutletContext","ngTemplateOutlet","ngTemplateOutletInjector","invalidPipeArgumentError","SubscribableStrategy","createSubscription","updateLatestValue","PromiseStrategy","_promiseStrategy","_subscribableStrategy","AsyncPipe","_latestValue","_obj","_strategy","_dispose","_selectStrategy","_updateLatestValue","ɵisPromise","ɵisSubscribable","ɵpipe","DATE_PIPE_DEFAULT_TIMEZONE","DATE_PIPE_DEFAULT_OPTIONS","defaultTimezone","defaultOptions","LOCALE_ID","KeyValuePipe","differs","keyValues","compareFn","defaultComparator","differ","differChanges","compareFnChanged","forEachItem","makeKeyValuePair","keyValueA","keyValueB","aString","bString","SlicePipe","supports","CommonModule","PLATFORM_BROWSER_ID","platformId","isPlatformServer","ViewportScroller","ɵɵdefineInjectable","BrowserViewportScroller","setOffset","getScrollPosition","supportsScrolling","pageXOffset","pageYOffset","scrollToPosition","scrollToAnchor","elSelected","findAnchorFromDocument","documentResult","getElementsByName","createTreeWalker","treeWalker","NodeFilter","SHOW_ELEMENT","currentNode","nextNode","scrollToElement","setHistoryScrollRestoration","scrollRestoration","supportScrollRestoration","scrollRestorationDescriptor","getScrollRestorationProperty","XhrFactory","HttpHandler","HttpBackend","normalizedNames","lazyUpdate","lazyInit","maybeSetNormalizedName","getAll","op","lcName","copyFrom","applyUpdate","toDelete","existing","HttpUrlEncodingCodec","encodeKey","standardEncoding","encodeValue","decodeKey","decodeValue","STANDARD_ENCODING_REGEX","STANDARD_ENCODING_REPLACEMENTS","valueToString","HttpParams","updates","cloneFrom","encoder","fromString","paramParser","rawParams","codec","eqIdx","list","appendAll","eKey","HttpContext","isArrayBuffer","isBlob","Blob","isFormData","FormData","HttpRequest","third","fourth","reportProgress","withCredentials","mightHaveBody","urlWithParams","qIdx","serializeBody","isUrlSearchParams","URLSearchParams","detectContentTypeHeader","setParams","HttpEventType","Sent","UploadProgress","ResponseHeader","DownloadProgress","Response","HttpResponseBase","defaultStatus","defaultStatusText","HttpHeaderResponse","HttpResponse","HttpErrorResponse","addBody","events$","res$","jsonp","callbackParam","patch","put","interceptorChainEndFn","finalHandlerFn","adaptLegacyInterceptorToChain","chainTailFn","interceptor","initialRequest","downstreamRequest","HTTP_INTERCEPTOR_FNS","legacyInterceptorFnFactory","reduceRight","HttpInterceptorHandler","backend","dedupedInterceptorFns","nextSequencedFn","interceptorFn","chainedInterceptorFn","runInContext","XSSI_PREFIX","HttpXhrBackend","xhrFactory","detectedType","reqBody","headerResponse","partialFromXhr","getResponseUrl","getResponseHeader","onLoad","originalBody","onError","sentHeaders","onDownProgress","progressEvent","loaded","lengthComputable","partialText","onUpProgress","upload","DONE","abort","XSRF_ENABLED","XSRF_DEFAULT_COOKIE_NAME","XSRF_COOKIE_NAME","XSRF_DEFAULT_HEADER_NAME","XSRF_HEADER_NAME","HttpXsrfTokenExtractor","HttpXsrfCookieExtractor","lastCookieString","lastToken","parseCount","ɵparseCookieValue","xsrfInterceptorFn","lcUrl","HttpFeatureKind","Interceptors","LegacyInterceptors","CustomXsrfConfiguration","NoXsrfProtection","JsonpSupport","RequestsMadeViaParent","makeHttpFeature","ɵkind","ɵproviders","provideHttpClient","useExisting","makeEnvironmentProviders","LEGACY_INTERCEPTOR_FN","withXsrfConfiguration","getClosureSafeProperty","objWithPropertyToExtract","fillProperties","overriddenName","newLineIndex","concatStringsWithSpace","__forward_ref__","forwardRefFn","resolveForwardRef","isForwardRef","isEnvironmentProviders","XSS_SECURITY_URL","RuntimeError","formatRuntimeError","renderStringify","throwProviderNotFoundError","injectorName","actual","expected","ɵɵdefineInjector","getInjectableDef","getOwnDefinition","NG_PROV_DEF","NG_INJECTABLE_DEF","isInjectable","getInjectorDef","NG_INJ_DEF","NG_INJECTOR_DEF","ngInjectableDef","ngInjectorDef","InjectFlags","Default","Self","SkipSelf","_injectImplementation","setInjectImplementation","impl","injectRootLimpMode","injectableDef","_global","WorkerGlobalScope","THROW_IF_NOT_FOUND","DI_DECORATOR_FLAG","NG_TEMP_TOKEN_PATH","NEW_LINE","SOURCE","_currentInjector","setCurrentInjector","former","injectInjectorOnly","getInjectImplementation","convertToBitFlags","skipSelf","injectArgs","getInjectFlag","attachInjectFlag","decorator","noSideEffects","ChangeDetectionStrategy","OnPush","ViewEncapsulation$1","Emulated","None","ShadowDom","EMPTY_OBJ","EMPTY_ARRAY","NG_COMP_DEF","NG_DIR_DEF","NG_PIPE_DEF","NG_MOD_DEF","NG_FACTORY_DEF","NG_ELEMENT_ID","__NG_ELEMENT_ID__","componentDefCount","ɵɵdefineComponent","componentDefinition","declaredInputs","providersResolver","decls","vars","consts","hostBindings","hostVars","hostAttrs","contentQueries","outputs","exportAs","onPush","changeDetection","directiveDefs","pipeDefs","dependencies","getStandaloneInjector","viewQuery","setInput","schemas","tView","findHostDirectiveDefs","hostDirectives","invertObject","extractDirectiveDef","nonNull","getPipeDef$1","getComponentDef","getDirectiveDef","ɵɵdefineNgModule","declarations","transitiveCompileScopes","ɵɵsetNgModuleScope","ngModuleDef","getNgModuleDef","secondary","newLookup","minifiedKey","publicName","declaredName","ɵɵdefineDirective","ɵɵdefinePipe","pipeDef","isStandalone","throwNotFound","isLView","isLContainer","isContentQueryHost","tNode","isComponentHost","componentOffset","isDirectiveHost","isComponentDef","isRootView","getFactoryDef","SimpleChange","firstChange","isFirstChange","ɵɵNgOnChangesFeature","NgOnChangesFeatureImpl","ngOnChangesSetInput","rememberChangeHistoryAndInvokeOnChangesHook","simpleChangesStore","getSimpleChangesStore","instance","setSimpleChangesStore","SIMPLE_CHANGES_STORE","previousChange","ngInherit","unwrapRNode","getNativeByIndex","lView","getNativeByTNode","getTNode","getComponentLViewByIndex","nodeIndex","slotValue","viewAttachedToChangeDetector","getConstant","resetPreOrderHookFlags","updateTransplantedViewCount","lContainer","viewOrContainer","instructionState","lFrame","createLFrame","bindingsEnabled","getBindingsEnabled","getLView","getTView","ɵɵrestoreView","viewToRestore","contextLView","ɵɵresetView","getCurrentTNode","currentTNode","getCurrentTNodePlaceholderOk","getCurrentParentTNode","isParent","setCurrentTNode","isCurrentTNodeParent","setCurrentTNodeAsNotParent","getBindingRoot","bindingRootIndex","bindingStartIndex","getBindingIndex","bindingIndex","nextBindingIndex","incrementBindingIndex","setInI18nBlock","isInI18nBlock","inI18n","setBindingRootForHostBindings","currentDirectiveIndex","setCurrentDirectiveIndex","getCurrentDirectiveDef","tData","getCurrentQueryIndex","setCurrentQueryIndex","getDeclarationTNode","declTNode","enterDI","parentTNode","parentLView","allocLFrame","enterView","newView","newLFrame","firstChild","currentLFrame","childLFrame","selectedIndex","elementDepthCount","currentNamespace","leaveViewLight","oldLFrame","leaveDI","leaveView","getSelectedIndex","setSelectedIndex","getSelectedTNode","ɵɵnamespaceSVG","ɵɵnamespaceHTML","namespaceHTMLInternal","registerPostOrderHooks","directiveStart","directiveEnd","lifecycleHooks","ngAfterContentInit","ngAfterContentChecked","ngAfterViewInit","ngAfterViewChecked","contentHooks","contentCheckHooks","viewHooks","viewCheckHooks","destroyHooks","executeCheckHooks","callHooks","executeInitAndCheckHooks","initPhase","incrementInitPhaseFlags","currentView","currentNodeIndex","nodeIndexLimit","lastNodeIndexFound","callHook","isInitHook","directive","NodeInjectorFactory","isViewProvider","injectImplementation","resolving","canSeeViewProviders","injectImpl","setUpAttributes","attrs","namespaceURI","attrName","attrVal","isAnimationProp","isNameOnlyAttributeMarker","marker","mergeHostAttrs","dst","srcMarker","mergeHostAttribute","markerInsertPosition","dstValue","hasParentInjector","parentLocation","getParentInjectorIndex","getParentInjectorView","startView","viewOffset","getParentInjectorViewOffset","parentView","includeViewProviders","setIncludeViewProviders","nextNgElementId","NOT_FOUND","getOrCreateNodeInjectorForNode","existingInjectorIndex","getInjectorIndex","firstCreatePass","injectorIndex","insertBloom","blueprint","parentLoc","getParentInjectorLocation","parentIndex","parentData","declarationViewOffset","lViewCursor","getTNodeFromLView","diPublicInInjector","bloomAdd","bloomHash","notFoundValueOrThrow","lookupTokenUsingModuleInjector","moduleInjector","previousInjectImplementation","getOrCreateInjectable","embeddedInjectorValue","lookupTokenUsingEmbeddedInjector","currentLView","nodeInjectorValue","lookupTokenUsingNodeInjector","embeddedViewInjector","embeddedViewInjectorValue","bloomHashBitOrFactory","tokenId","createNodeInjector","previousTView","hostTElementNode","shouldSearchParent","bloomHasToken","searchTokensOnInjector","currentTView","injectableIdx","locateDirectiveOrProvider","getNodeInjectable","canAccessViewProviders","isHostSpecialCase","nodeProviderIndexes","providerIndexes","tInjectables","injectablesStart","directivesStart","cptViewProvidersCount","providerTokenOrDef","dirDef","isFactory","throwCyclicDependencyError","depPath","stringifyForError","previousIncludeViewProviders","registerPreOrderHooks","directiveIndex","directiveDef","wrappedOnChanges","preOrderHooks","preOrderCheckHooks","injectorView","isFirstHostTNode","NodeInjector","_tNode","_lView","ɵɵgetInheritedFactory","ownConstructor","ownFactory","getFactoryOf","objectPrototype","tViewType","ɵɵinjectAttribute","attrNameToInject","injectAttributeImpl","classes","attrsLength","PARAMETERS","PROP_METADATA","makeMetadataCtor","propName","makeParamDecorator","parentClass","metaCtor","ParamDecoratorFactory","annotationInstance","ParamDecorator","cls","unusedKey","parameters","ngMetadataName","annotationCls","makePropDecorator","additionalProcessing","PropDecoratorFactory","decoratorInstance","PropDecorator","_desc","Query","ViewChild","isViewQuery","descendants","deepForEach","addToArray","keyValueArraySet","keyValueArray","keyValueArrayIndexOf","arrayInsert2","value1","value2","keyValueArrayGet","_arrayIndexOfSorted","Important","DashCase","COMMENT_DISALLOWED","COMMENT_DELIMITER","TRACKED_LVIEWS","uniqueIdCounter","MONKEY_PATCH_KEY_NAME","attachPatchData","registerLView","_icuContainerIterate","icuContainerIterate","tIcuContainerNode","getLViewParent","getFirstLContainer","getNearestLContainer","getNextLContainer","applyToElementOrContainer","lNodeToHandle","beforeNode","isComponent","rNode","nativeAppendChild","nativeInsertBefore","nativeRemoveNode","applyContainer","parentRElement","applyView","createTextNode","updateTextNode","createCommentNode","escapeCommentText","createElementNode","detachMovedView","declarationContainer","movedViews","declarationViewIndex","insertionLContainer","removeIndex","indexInContainer","viewToDetach","declarationLContainer","removedLView","removeViewFromContainer","lQueries","destroyLView","destroyViewTree","rootView","lViewOrLContainer","cleanUpView","firstView","executeOnDestroys","toCall","callContext","processCleanups","tCleanup","cleanup","lCleanup","lastLCleanupIndex","targetIdx","instanceCleanupFn","unregisterLView","getParentRElement","getClosestRElement","nativeAppendOrInsertBefore","nativeParentNode","getInsertInFrontOfRNode","_getInsertInFrontOfRNodeWithI18n","getInsertInFrontOfRNodeWithNoI18n","_processI18nInsertBefore","policy$1","policy","setI18nHandling","getInsertInFrontOfRNodeWithI18n","processI18nInsertBefore","childRNode","childTNode","parentRNode","getFirstNativeNode","tNodeType","getBeforeNodeForView","elIcuContainerChild","rNodeOrLContainer","projectionNodes","getProjectionNodes","projection","viewIndexInContainer","nextViewIndex","firstTNodeOfView","nativeParent","nativeRemoveChild","applyNodes","isProjection","rawSlotValue","nextRNode","applyProjectionRecursive","projectionNext","tProjectionNode","componentLView","nodeToProjectOrRNodes","writeDirectClass","setupStaticAttributes","mergedAttrs","writeDirectStyle","trustedHTMLFromString","getPolicy$1","trustedTypes","createPolicy","createHTML","createScript","createScriptURL","setDocument","getDocument","getPolicy","trustedHTMLFromStringBypass","trustedScriptURLFromStringBypass","SafeValueImpl","changingThisBreaksApplicationSecurity","SafeHtmlImpl","getTypeName","SafeStyleImpl","SafeScriptImpl","SafeUrlImpl","SafeResourceUrlImpl","unwrapSafeValue","allowSanitizationBypassAndThrow","actualType","getSanitizationBypassType","bypassSanitizationTrustHtml","trustedHtml","bypassSanitizationTrustStyle","trustedStyle","bypassSanitizationTrustScript","trustedScript","bypassSanitizationTrustUrl","trustedUrl","bypassSanitizationTrustResourceUrl","trustedResourceUrl","getInertBodyHelper","defaultDoc","inertDocumentHelper","InertDocumentHelper","isDOMParserAvailable","DOMParser","parseFromString","DOMParserHelper","getInertBodyElement","inertDocument","implementation","createHTMLDocument","inertHtml","inertBodyElement","templateEl","innerHTML","inertBody","stripCustomNsAttrs","elAttrs","attributes","childNode","SAFE_URL_PATTERN","_sanitizeUrl","tagSet","sets","VOID_ELEMENTS","OPTIONAL_END_TAG_BLOCK_ELEMENTS","OPTIONAL_END_TAG_INLINE_ELEMENTS","VALID_ELEMENTS","URI_ATTRS","VALID_ATTRS","SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS","SanitizingHtmlSerializer","sanitizedSomething","buf","sanitizeChildren","traverseContent","startElement","TEXT_NODE","chars","nodeValue","endElement","checkClobberedElement","elAttr","lower","encodeEntities","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","SURROGATE_PAIR_REGEXP","NON_ALPHANUMERIC_REGEXP","inertBodyHelper","_sanitizeHtml","unsafeHtmlInput","unsafeHtml","mXSSAttempts","parsedHtml","getTemplateContent","isTemplateElement","SecurityContext","HTML","STYLE","RESOURCE_URL","ɵɵsanitizeHtml","sanitizer","getSanitizer","sanitize","ɵɵsanitizeUrl","unsafeUrl","ɵɵsanitizeResourceUrl","unsafeResourceUrl","ɵɵsanitizeUrlOrResourceUrl","getUrlSanitizer","ENVIRONMENT_INITIALIZER","INJECTOR","INJECTOR_DEF_TYPES","NullInjector","importProvidersFrom","internalImportProvidersFrom","ɵfromNgModule","checkForStandaloneCmp","providersOut","dedup","injectorTypesWithProviders","internalSource","walkProviderTree","processInjectorTypesWithProviders","typesWithProviders","deepForEachProvider","provider","parents","defType","injDef","cmpDef","isDuplicate","dep","importTypesWithProviders","imported","defProviders","USE_VALUE$1","isValueProvider","isTypeProvider","INJECTOR_SCOPE","NOT_YET","CIRCULAR","NULL_INJECTOR$1","getNullInjector","EnvironmentInjector","R3Injector","records","_ngOnDestroyHooks","_onDestroyHooks","forEachSingleProvider","processProvider","makeRecord","injectorDefTypes","assertNotDestroyed","service","previousInjector","couldBeInjectableType","injectableDefInScope","injectableDefOrInjectorDefFactory","hydrate","catchInjectorError","injectorErrorName","tokenPath","formatError","resolveInjectorInitializers","initializers","initializer","providerToRecord","providerToFactory","multiRecord","hasOnDestroy","getUndecoratedInjectableFactory","paramLength","inheritedInjectableDef","getInheritedInjectableDef","typeName","ngModuleType","unwrappedProvider","isFactoryProvider","isExistingProvider","classRef","hasDeps","ComponentRef$1","ComponentFactory$1","_NullComponentFactoryResolver","noComponentFactoryError","ComponentFactoryResolver$1","NULL","injectElementRef","createElementRef","unwrapElementRef","Renderer2","injectRenderer2","nodeAtIndex","Sanitizer","full","VERSION","NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR","getOriginalError","_console","originalError","_findOriginalError","ɵɵresolveWindow","ɵɵresolveDocument","maybeUnwrapFn","classIndexOf","classToSearch","startingIndex","foundIndex","NG_TEMPLATE_SELECTOR","isCssClassMatching","cssClassToMatch","isProjectionMode","isInlineTemplate","hasTagAndTypeMatch","currentSelector","isNodeMatchingSelector","nodeAttrs","nameOnlyMarkerIdx","getNameOnlyMarkerIndex","skipToNextSelector","isPositive","selectorAttrValue","attrIndexInNode","findAttrIndexInNode","nodeAttrValue","compareAgainstClassName","bindingsMode","maybeAttrName","matchTemplateAttribute","attr","isNodeMatchingSelectorList","isSelectorInSelectorList","selectorListLoop","currentSelectorInList","maybeWrapInNotSelector","isNegativeMode","stringifyCSSSelector","currentChunk","valueOrMarker","attrValue","NO_CHANGE","ɵɵadvance","selectIndexInternal","checkNoChangesMode","createInjector","additionalProviders","createInjectorWithoutInjectorInstances","ɵɵdirectiveInject","ɵɵinvalidFactory","refreshContentQueries","directiveDefIdx","createLView","tHostNode","rendererFactory","getUniqueLViewId","getOrCreateTNode","createTNodeAtIndex","createTNode","tParent","insertBeforeIndex","directiveStylingLast","propertyBindings","localNames","initialInputs","tViews","stylesWithoutHost","residualStyles","classesWithoutHost","residualClasses","classBindings","styleBindings","allocExpando","numSlotsToAlloc","initialValue","allocIdx","renderView","executeViewQueryFn","templateFn","executeTemplate","staticContentQueries","staticViewQueries","components","renderChildComponents","hostLView","renderComponent","incompleteFirstPass","refreshView","setBindingIndex","hooksInitPhaseCompleted","markTransplantedViewsForRefresh","movedLView","refreshEmbeddedViews","embeddedLView","embeddedTView","processHostBindingOpCodes","hostBindingOpCodes","opCode","directiveIdx","bindingRootIndx","hostBindingFn","refreshChildComponents","refreshComponent","firstUpdatePass","rf","prevSelectedIndex","isUpdatePhase","executeContentQueries","createDirectivesInstances","instantiateAllDirectives","addComponentLogic","hostTNode","getOrCreateComponentTView","componentView","addToViewTree","setInputsFromAttrs","invokeDirectivesHostBindings","saveResolvedLocalsInData","viewData","localRefExtractor","localIndex","createTView","directives","pipes","constsOrFactory","initialViewLength","createViewBlueprint","expandoStartIndex","directiveRegistry","pipeRegistry","storeCleanupWithContext","cleanupFn","getOrCreateLViewCleanup","getOrCreateTViewCleanup","generatePropertyAliases","aliasMap","propertyAliases","hostDirectiveAliasMap","internalName","addPropertyAlias","elementPropertyInternal","nativeOnly","dataValue","inputData","setInputsForProperty","markDirtyIfOnPush","mapPropName","viewIndex","childComponentLView","resolveDirectives","localRefs","hasDirectives","exportsMap","matchResult","findDirectiveDefMatches","hostDirectiveDefs","hostDirectiveMatches","markAsComponentHost","initializeDirectives","cacheMatchingLocalNames","initTNodeFlags","numberOfDirectives","preOrderHooksFound","preOrderCheckHooksFound","configureViewWithDirective","saveNameToExportMap","lifeCycleHooks","initializeInputAndOutputAliases","hostDirectiveDefinitionMap","tViewData","tNodeAttrs","inputsFromAttrs","inputsStore","outputsStore","aliasData","aliasedOutputs","generateInitialInputs","elementIndex","getCurrentDirectiveIndex","dirIndex","invokeHostBindingsInCreationMode","directiveFactory","nodeInjectorFactory","registerHostBindingOpCodes","directiveVarsIdx","elementIndx","lastSelectedElementIdx","setElementAttribute","initialInputData","inputsToStore","inputConfig","createLContainer","hostNative","componentHostIdx","refreshContainsDirtyView","componentTView","syncViewWithBlueprint","markViewDirty","detectChangesInternal","notifyErrorHandler","viewQueryFn","textBindingInternal","computeStaticStyling","writeToHost","collectNativeNodes","lNode","lViewInAContainer","lViewFirstChildTNode","nodesInSlot","ViewRef$1","_cdRefInjectingView","_attachedToViewContainer","viewRefs","reattach","checkNoChanges","attachToViewContainerRef","detachFromAppRef","renderDetachView","attachToAppRef","RootViewRef","ComponentFactoryResolver","componentDef","ComponentFactory","toRefArray","nonMinified","templateName","ChainedInjector","parentInjector","componentType","stringifyCSSSelectorList","selectorList","isBoundToModule","rootSelectorOrNode","environmentInjector","realEnvironmentInjector","rootViewInjector","hostRenderer","elementName","hostRNode","locateHostElement","elementOrSelector","getNamespace","rootFlags","rootTView","rootLView","tElementNode","rootComponentDef","rootDirectives","createRootComponentTNode","createRootComponentView","applyRootComponentStyling","viewRenderer","setRootNodeAttributes","extractAttrsAndClassesFromSelector","projectNodes","nodesforSlot","createRootComponent","hostFeatures","rootTNode","LifecycleHooksFeature","ComponentRef","_rootLView","ɵɵInheritDefinitionFeature","superType","getSuperType","shouldInheritFields","inheritanceChain","superDef","writeableDef","maybeUnwrapEmpty","superHostBindings","inheritHostBindings","superViewQuery","superContentQueries","inheritViewQuery","inheritContentQueries","defData","mergeHostAttrsAcrossInheritance","prevViewQuery","prevContentQueries","prevHostBindings","_symbolIterator","isListLikeIterable","isJsObject","updateBinding","bindingUpdated","is","bindingUpdated2","exp1","exp2","different","bindingUpdated3","exp3","ɵɵattribute","elementAttributeInternal","interpolation1","interpolation2","ɵɵtemplate","attrsIndex","localRefsIndex","adjustedIndex","templateFirstCreatePass","tViewConsts","comment","ɵɵreference","getContextLView","ɵɵproperty","setDirectiveInputsWhichShadowsStyling","isClassBased","ɵɵelementStart","getNamespace$1","elementStartFirstCreatePass","elementStart","getElementDepthCount","increaseElementDepthCount","ɵɵelementEnd","decreaseElementDepthCount","elementEnd","hasClassInput","hasStyleInput","ɵɵelement","ɵɵelementContainerStart","elementContainerStartFirstCreatePass","ɵɵelementContainerEnd","ɵɵelementContainer","ɵɵgetCurrentView","isSubscribable","ɵɵlistener","listenerFn","eventTargetResolver","listenerInternal","isTNodeDirectiveHost","processOutputs","lCleanupIndex","idxOrTargetGetter","existingListener","findExistingListener","tNodeIdx","cleanupEventName","listenerIdxInLCleanup","__ngLastListenerFn__","__ngNextListenerFn__","wrapListener","propsLength","executeListenerWithErrorHandling","profiler","wrapWithPreventDefault","wrapListenerIn_markDirtyAndPreventDefault","nextListenerFn","returnValue","ɵɵnextContext","nextContextImpl","walkUpViews","nestingLevel","matchingProjectionSlotIndex","projectionSlots","wildcardNgContentIndex","ngProjectAsAttrVal","getProjectAsAttrValue","ngProjectAsAttrIdx","ɵɵprojectionDef","componentNode","projectionHeads","tails","componentChild","slotIndex","ɵɵprojection","selectorIndex","applyProjection","ɵɵpropertyInterpolate","ɵɵpropertyInterpolate1","interpolatedValue","ɵɵpropertyInterpolate2","toTStylingRange","getTStylingRangePrev","tStylingRange","setTStylingRangePrevDuplicate","getTStylingRangeNext","setTStylingRangeNext","setTStylingRangeNextDuplicate","markDuplicates","tStylingKey","isPrevDir","isClassBinding","tStylingAtIndex","isMap","foundDuplicate","tStyleRangeAtCursor","isStylingMatch","tStylingKeyCursor","parserState","textEnd","keyEnd","valueEnd","getLastParsedKey","getLastParsedValue","parseClassNameNext","consumeClassToken","consumeWhitespace","parseStyleNext","consumeStyleKey","ch","consumeSeparator","consumeStyleValue","ch1","ch2","ch3","lastChIndex","consumeQuotedText","resetParserState","quoteCharCode","ɵɵstyleProp","checkStylingProperty","ɵɵclassProp","ɵɵstyleMap","checkStylingMap","styleKeyValueArraySet","styleStringParser","parseStyle","ɵɵclassMap","classStringParser","parseClassName","stylingFirstUpdatePass","updateStyling","normalizeSuffix","stringParser","hasStylingInputShadow","isInHostBindings","staticPrefix","updateStylingMap","oldKeyValueArray","newKeyValueArray","oldIndex","oldKey","newKey","setKey","toStylingKeyValueArray","styleKeyValueArray","unwrappedValue","isHostBindings","wrapInStaticStylingKey","stylingKey","hostDirectiveDef","residual","collectStylingFromTAttrs","collectStylingFromDirectives","templateStylingKey","getTemplateHeadTStylingKey","bindings","setTemplateHeadTStylingKey","collectResidual","insertTStylingBinding","tStylingKeyWithStatic","isHostBinding","tBindings","tmplHead","tmplTail","isKeyDuplicateOfStatic","setTStylingRangePrev","markDuplicateOfResidualStyling","currentDirective","desiredMarker","currentMarker","tRange","higherPriorityValue","getTStylingRangeNextDuplicate","findStylingValue","isStylingValuePresent","getTStylingRangePrevDuplicate","applyStyling","isPrevDirection","rawKey","containsStatics","isStylingMap","valueAtLViewIndex","ɵɵtext","textNative","ɵɵtextInterpolate","ɵɵtextInterpolate1","ɵɵtextInterpolate2","ɵɵtextInterpolate3","interpolation3","ɵɵclassMapInterpolate1","ɵɵhostProperty","ɵɵsyntheticHostProperty","loadComponentRenderer","currentDef","unwrapLView","localeEn","LOCALE_DATA","LocaleDataIndex","LocaleId","ExtraData","findLocaleData","normalizedLocale","getLocaleData","getLocalePluralCase","PluralCase","ng","DayPeriodsFormat","DayPeriodsStandalone","DaysFormat","DaysStandalone","MonthsFormat","MonthsStandalone","FirstDayOfWeek","WeekendRange","DateFormat","TimeFormat","NumberSymbols","NumberFormats","CurrencyCode","CurrencySymbol","CurrencyName","Currencies","pluralMapping","DEFAULT_LOCALE_ID","ELEMENT_MARKER","ICU_MARKER","I18nCreateOpCode","APPEND_EAGERLY","COMMENT","LOCALE_ID$1","setLocaleId","assertDefined","tNodeInsertBeforeIndex","i18nParent","anchorRNode","addTNodeAndUpdateInsertBeforeIndex","previousTNodes","newTNode","existingTNode","isI18nText","isNewTNodeCreatedBefore","getInsertBeforeIndex","setInsertBeforeIndex","getTIcu","createTNodePlaceholder","getCurrentICUCaseIndex","tIcu","currentCase","currentCaseLViewIndex","getParentFromIcuCreateOpCode","mergedCode","getRefFromIcuCreateOpCode","changeMask","changeMaskCounter","applyMutableOpCodes","mutableOpCodes","rootRNode","rootIdx","textNodeIndex","parentIdx","insertInFrontOf","refIdx","caseIndex","anchorIdx","commentValue","commentNodeIndex","elementNodeIndex","applyUpdateOpCodes","updateOpCodes","bindingsStartIndex","checkBit","skipCodes","sanitizeFn","tNodeOrTagName","rText","applyIcuSwitchCase","applyIcuUpdateCase","activeCaseIndex","mask","getCaseIndex","icuExpression","bindingValue","cases","resolvedCase","getPluralCase","applyIcuSwitchCaseRemove","removeCodes","nodeOrIcuIndex","loadIcuContainerVisitor","_removes","enterIcu","icuContainerIteratorNext","removeOpCode","icuContainerIteratorStart","BINDING_REGEXP","NESTED_ICU","ICU_BLOCK_REGEXP","SUBTEMPLATE_REGEXP","PH_REGEXP","NGSP_UNICODE_REGEXP","createTNodeAndAddOpCode","existingTNodes","createOpCodes","isICU","i18nNodeIdx","ensureIcuContainerVisitorLoaded","setTNodeInsertBeforeIndex","assertEqual","i18nStartFirstCreatePassProcessTextNode","hasBinding","generateBindingUpdateOpCodes","destinationNode","bindingStart","maskIndex","sizeIndex","textParts","textValue","toMaskBit","removeInnerTemplateTranslation","tagMatched","inTemplate","icuStart","bindingMask","addUpdateIcuSwitch","mainBinding","setTIcu","valueArr","nestedIcus","icuIndex","parseIcuCase","addUpdateIcuUpdate","parseICUBlock","icuType","i18nParseTextIntoPartsAndICU","binding","blocks","prevPos","braceStack","braces","block","caseName","unsafeCaseHtml","inertRootNode","walkIcuTree","sharedUpdateOpCodes","addCreateNodeAndAppend","lowerAttrName","addCreateAttribute","addRemoveNode","COMMENT_NODE","isNestedIcu","addRemoveNestedIcu","appendToParentIdx","createAtIdx","icuCreateOpCode","ɵɵi18nStart","messageIndex","subTemplateIndex","i18nStartFirstCreatePass","parentTNodeIndex","existingTNodeStack","getTranslationForTemplate","isRootTemplateMessage","msgParts","replaceNgsp","isClosing","tI18n","applyCreateOpCodes","appendNow","ɵɵi18n","ɵɵi18nEnd","ɵɵi18nExp","setMaskBit","hasChange","ɵɵi18nApply","applyI18n","resolveProvider","lInjectablesBlueprint","providerFactory","beginIndex","existingFactoryIndex","registerDestroyHooksIfSupported","existingProvidersFactoryIndex","existingViewProvidersFactoryIndex","doesViewProvidersFactoryExist","multiFactory","factoryFn","componentProviders","multiFactoryAdd","multiViewProvidersFactoryResolver","multiProvidersFactoryResolver","contextIndex","indexInFactory","providerIsTypeProvider","providerIsClassProvider","isClassProvider","existingCallbacksIndex","isComponentProvider","lData","multiResolve","factories","componentCount","multiProviders","ɵɵProvidersFeature","viewProviders","processProvidersFn","NgModuleRef$1","NgModuleFactory$1","createNgModule","NgModuleRef","_parent","_bootstrapComponents","destroyCbs","_r3Injector","NgModuleFactory","moduleType","EnvironmentNgModuleRefAdapter","createEnvironmentInjector","debugName","StandaloneService","_injector","cachedInjectors","getOrCreateStandaloneInjector","standaloneInjector","ɵɵStandaloneFeature","ɵɵpureFunction0","slotOffset","pureFn","getBinding","ɵɵpureFunction1","pureFunction1Internal","ɵɵpureFunction2","pureFunction2Internal","ɵɵpureFunction3","pureFunction3Internal","ɵɵpureFunction4","exp4","pureFunction4Internal","bindingRoot","bindingUpdated4","getPureFunctionReturnValue","returnValueIndex","lastReturnValue","ɵɵpipe","pipeName","getPipeDef","pipeFactory","pipeInstance","ɵɵpipeBind1","isPure","ɵɵpipeBind2","ɵɵpipeBind3","v3","_wrapInTimeout","EventEmitter_","isAsync","__isAsync","nextFn","errorFn","completeFn","symbolIterator","_results","_emitDistinctChangesOnly","dirty","_changesDetected","_changes","resultsTree","identityAccessor","newResultFlat","flat","arrayEquals","valueA","valueB","notifyOnChanges","setDirty","TemplateRef","injectTemplateRef","ViewEngineTemplateRef","R3TemplateRef","_declarationLView","_declarationTContainer","declarationViewLQueries","createTemplateRef","ViewContainerRef","injectViewContainerRef","createContainerRef","VE_ViewContainerRef","R3ViewContainerRef","_lContainer","_hostTNode","_hostLView","getViewRefs","indexOrOptions","componentFactoryOrType","isComponentFactory","ngModuleRef","contextInjector","viewAttachedToContainer","prevIdx","prevLContainer","prevVCRef","adjustedIdx","_adjustIndex","insertView","containerLength","trackMovedView","addViewToContainer","parentNativeNode","getOrCreateViewRefs","viewRefsArr","commentNode","nativeNextSibling","LQuery_","queryList","LQueries_","tQueries","noOfInheritedQueries","viewLQueries","tQuery","getByIndex","indexInDeclarationView","dirtyQueriesWithMatches","getTQuery","TQueryMetadata_","TQueries_","queriesForTemplateRef","childQueryIndex","tqueryClone","track","tquery","TQuery_","crossesNgTemplate","_appliesToNextNode","_declarationNodeIndex","isApplyingToNode","matchTNode","declarationNodeIdx","matchTNodeWithReadOption","getIdxOfMatchingSelector","nodeMatchIdx","directiveOrProviderIdx","matchIdx","createResultForNode","matchingIdx","createResultByTNodeType","createSpecialToken","materializeViewResults","queryIndex","lQuery","tQueryMatches","matchedNodeIdx","collectQueryResults","lViewResults","embeddedLViews","ɵɵqueryRefresh","isCreationMode","ɵɵviewQuery","createTQuery","createLQuery","ɵɵcontentQuery","saveContentQueryAndDirectiveIndex","tViewContentQueries","ɵɵloadQuery","loadQueryInternal","ɵɵtemplateRefExtractor","Input","bindingPropertyName","Output","HostListener","ApplicationInitStatus","appInits","donePromise","runInitializers","asyncInitPromises","initResult","observableAsPromise","APP_ID","_appIdRandomProviderFactory","_randomChar","PLATFORM_INITIALIZER","APP_BOOTSTRAP_LISTENER","Console","getGlobalLocale","$localize","DEFAULT_CURRENCY_CODE","ModuleWithComponentFactories","ngModuleFactory","componentFactories","Compiler","compileModuleSync","compileModuleAsync","compileModuleAndAllComponentsSync","declaration","compileModuleAndAllComponentsAsync","clearCacheFor","getModuleId","enableLongStackTrace","shouldCoalesceEventChangeDetection","shouldCoalesceRunChangeDetection","hasPendingMacrotasks","hasPendingMicrotasks","onUnstable","onMicrotaskEmpty","assertZonePatched","_nesting","_outer","_inner","TaskTrackingZoneSpec","longStackTraceZoneSpec","lastRequestAnimationFrameId","nativeRequestAnimationFrame","getNativeRequestAnimationFrame","nativeCancelAnimationFrame","unpatchedRequestAnimationFrame","__symbol__","unpatchedCancelAnimationFrame","forkInnerZoneWithAngularBehavior","delayChangeDetectionForEventsDelegate","delayChangeDetectionForEvents","isCheckStableRunning","fakeTopEventTask","scheduleEventTask","updateMicroTaskStatus","checkStable","invoke","isAngularZone","onInvokeTask","task","applyThis","applyArgs","onEnter","invokeTask","onInvoke","onHasTask","hasTaskState","hasTask","_hasPendingMicrotasks","microTask","macroTask","onHandleError","isInAngularZone","runTask","EMPTY_PAYLOAD","cancelTask","runGuarded","NoopNgZone","TESTABILITY","TESTABILITY_GETTER","_testabilityGetter","Testability","testabilityGetter","_pendingCount","_isZoneStable","_didWork","_callbacks","taskTrackingZone","setTestabilityGetter","addToWindow","_watchAngularEvents","assertNotInAngularZone","_runCallbacksIfReady","increasePendingRequestCount","decreasePendingRequestCount","timeoutId","doneCb","getPendingTasks","updateCb","macroTasks","creationLocation","addCallback","whenStable","getPendingRequestCount","registerApplication","unregisterApplication","findProviders","using","exactMatch","TestabilityRegistry","_applications","testability","unregisterAllApplications","getTestability","getAllTestabilities","getAllRootElements","findTestabilityInTree","findInAncestors","_platformInjector","ALLOW_MULTIPLE_PLATFORMS","PLATFORM_DESTROY_LISTENERS","NgProbeToken","createPlatformFactory","parentPlatformFactory","extraProviders","getPlatform","platformProviders","createPlatform","PlatformRef","runPlatformInitializers","inits","createPlatformInjector","assertPlatform","requiredToken","_modules","_destroyListeners","bootstrapModuleFactory","moduleFactory","getNgZone","ngZoneToUse","getNgZoneOptions","ngZoneEventCoalescing","ngZoneRunCoalescing","ngZoneInjector","moduleRef","exceptionHandler","_callAndReportToErrorHandler","initStatus","_moduleDoBootstrap","compilerOptions","optionsReducer","compileNgModuleFactory","ApplicationRef","ngDoBootstrap","destroyListeners","objs","_exceptionHandler","_bootstrapListeners","_views","_runningTick","_stable","componentTypes","_onMicrotaskEmptySubscription","isCurrentlyStable","stableSub","unstableSub","assertInAngularZone","merge$1","componentOrFactory","cf","compRef","_loadComponent","NG_DEV_MODE","warnIfDestroyed","isDevMode","ChangeDetectorRef","injectChangeDetectorRef","createViewRef","isPipe","DefaultIterableDifferFactory","trackByFn","DefaultIterableDiffer","trackByIdentity","_linkedRecords","_unlinkedRecords","_previousItHead","_itHead","_itTail","_additionsHead","_additionsTail","_movesHead","_movesTail","_removalsHead","_removalsTail","_identityChangesHead","_identityChangesTail","nextIt","nextRemove","addRemoveOffset","moveOffsets","getPreviousIndex","adjPreviousIndex","_nextRemoved","localMovePreviousIndex","localCurrentIndex","forEachPreviousItem","_nextPrevious","_nextAdded","forEachMovedItem","_nextMoved","_nextIdentityChange","_reset","itemTrackBy","mayBeDirty","trackById","_verifyReinsertion","_addIdentityChange","_mismatch","iterateListLike","_truncate","isDirty","previousRecord","_prev","_reinsertAfter","_moveAfter","_addAfter","IterableChangeRecord_","reinsertRecord","_addToMoves","nextRecord","_addToRemovals","_unlink","prevRecord","_prevRemoved","_insertAfter","_DuplicateMap","toIndex","_prevDup","_nextDup","_DuplicateItemRecordList","_head","_tail","atOrAfterIndex","duplicates","recordList","moveOffset","DefaultKeyValueDifferFactory","DefaultKeyValueDiffer","_records","_mapHead","_appendAfter","_previousMapHead","_changesHead","_changesTail","_nextChanged","_maybeAddToChanges","_getOrCreateRecordForKey","_insertBeforeOrAppend","KeyValueChangeRecord_","_addToAdditions","_addToChanges","defaultIterableDiffersFactory","IterableDiffers","copied","defaultKeyValueDiffersFactory","KeyValueDiffers","kv","platformCore","ApplicationModule","coerceToBoolean","elementInjector","BaseControlValueAccessor","_elementRef","onChange","onTouched","registerOnTouched","registerOnChange","setDisabledState","BuiltInControlValueAccessor","NG_VALUE_ACCESSOR","CHECKBOX_VALUE_ACCESSOR","CheckboxControlValueAccessor","writeValue","DEFAULT_VALUE_ACCESSOR","DefaultValueAccessor","COMPOSITION_BUFFER_MODE","_compositionMode","_composing","_isAndroid","ɵgetDOM","getUserAgent","_handleInput","_compositionStart","_compositionEnd","isEmptyInputValue","hasValidLength","NG_VALIDATORS","NG_ASYNC_VALIDATORS","EMAIL_REGEXP","Validators","minValidator","maxValidator","control","requiredValidator","requiredTrueValidator","required","emailValidator","minLength","minLengthValidator","minlength","requiredLength","actualLength","maxLength","maxLengthValidator","patternValidator","validators","compose","composeAsync","maxlength","nullValidator","regexStr","requiredPattern","actualValue","isPresent","mergeErrors","arrayOfErrors","executeValidators","validator","normalizeValidators","isValidatorFn","presentValidators","composeValidators","composeAsyncValidators","mergeValidators","controlValidators","dirValidator","getControlValidators","_rawValidators","getControlAsyncValidators","_rawAsyncValidators","makeValidatorsArray","hasValidator","addValidators","currentValidators","validatorsToAdd","removeValidators","AbstractControlDirective","_onDestroyCallbacks","pristine","touched","untouched","statusChanges","valueChanges","_setValidators","_composedValidatorFn","_setAsyncValidators","_composedAsyncValidatorFn","asyncValidator","_registerOnDestroy","_invokeOnDestroyCallbacks","errorCode","getError","ControlContainer","formDirective","NgControl","valueAccessor","AbstractControlStatus","cd","_cd","isTouched","isUntouched","isPristine","isInvalid","isPending","isSubmitted","submitted","NgControlStatus","NgControlStatusGroup","VALID","INVALID","PENDING","DISABLED","pickValidators","validatorOrOpts","isOptionsObj","pickAsyncValidators","asyncValidators","AbstractControl","_pendingDirty","_hasOwnPendingAsyncValidator","_pendingTouched","_onCollectionChange","_onDisabledChange","_assignValidators","_assignAsyncValidators","validatorFn","asyncValidatorFn","updateOn","_updateOn","setValidators","setAsyncValidators","addAsyncValidators","removeAsyncValidators","hasAsyncValidator","clearValidators","clearAsyncValidators","markAsTouched","onlySelf","markAllAsTouched","_forEachChild","markAsUntouched","_updateTouched","markAsDirty","markAsPristine","_updatePristine","markAsPending","emitEvent","skipPristineCheck","_parentMarkedDirty","_updateValue","_updateAncestors","changeFn","enable","updateValueAndValidity","getRawValue","_setInitialStatus","_cancelExistingSubscription","_runValidator","_calculateStatus","_runAsyncValidator","_updateTreeValidity","ctrl","_allControlsDisabled","_asyncValidationSubscription","setErrors","_updateControlsErrors","currPath","_find","_initObservables","_anyControlsHaveStatus","_anyControls","_anyControlsDirty","_anyControlsTouched","_registerOnCollectionChange","_setUpdateStrategy","coerceToValidator","coerceToAsyncValidator","FormGroup","controls","_setUpControls","registerControl","addControl","removeControl","setControl","controlName","assertAllValuesPresent","isGroup","assertControlPresent","patchValue","_reduceChildren","_syncPendingControls","subtreeUpdated","_reduceValue","initValue","CALL_SET_DISABLED_STATE","setDisabledStateDefault","setUpControl","callSetDisabledState","setUpValidators","setUpViewChangePipeline","_pendingValue","_pendingChange","updateControl","setUpModelChangePipeline","emitModelEvent","viewToModelUpdate","_unregisterOnChange","setUpBlurPipeline","setUpDisabledChangeHandler","onDisabledChange","registerOnDisabledChange","_unregisterOnDisabledChange","cleanUpControl","validateControlPresenceOnChange","cleanUpValidators","registerOnValidatorChange","onValidatorChange","isControlUpdated","updatedValidators","updatedAsyncValidators","emitModelToViewChange","setUpFormContainer","isPropertyUpdated","viewModel","syncPendingControls","selectValueAccessor","valueAccessors","defaultAccessor","builtinAccessor","customAccessor","isBuiltInAccessor","formDirectiveProvider$1","NgForm","resolvedPromise$1","_directives","ngSubmit","_findContainer","getControl","addFormGroup","removeFormGroup","getFormGroup","updateModel","onSubmit","$event","onReset","resetForm","removeListItem","isFormControlState","formState","FormControl","_onChange","_applyFormState","nonNullable","initialValueIsDefault","emitViewToModelChange","UntypedFormControl","formControlBinding$1","NgModel","resolvedPromise","_registered","_checkForErrors","_checkName","oldName","_getPath","_setUpControl","_updateDisabled","_isStandalone","_setUpStandalone","_checkParentType","disabledValue","ɵcoerceToBoolean","controlPath","ɵNgNoValidate","NUMBER_VALUE_ACCESSOR","NumberValueAccessor","RadioControlRegistryModule","NG_MODEL_WITH_FORM_CONTROL_WARNING","formControlBinding","FormControlDirective","_ngModelWarningConfig","_ngModelWarningSent","_isControlChanged","previousForm","_ngModelWarningSentOnce","formDirectiveProvider","FormGroupDirective","_updateDomValue","_checkFormPresent","_updateValidators","_updateRegistrations","_oldForm","removeListItem$1","_setUpFormContainer","_cleanUpFormContainer","addFormArray","removeFormArray","getFormArray","oldCtrl","newCtrl","isFormControl","cleanUpFormContainer","SELECT_VALUE_ACCESSOR","SelectControlValueAccessor","_buildValueString$1","_optionMap","_idCounter","_compareWith","compareWith","valueString","_getOptionId","_getOptionValue","_registerOption","_extractId$1","NgSelectOption","_select","ngValue","_setElementValue","SELECT_MULTIPLE_VALUE_ACCESSOR","SelectMultipleControlValueAccessor","_buildValueString","optionSelectedStateSetter","ids","opt","_setSelected","selectedOptions","_extractId","ɵNgSelectMultipleOption","toFloat","AbstractValidatorDirective","_validator","inputName","normalizeInput","createValidator","MAX_VALIDATOR","MaxValidator","MIN_VALIDATOR","MinValidator","REQUIRED_VALIDATOR","RequiredValidator","EMAIL_VALIDATOR","EmailValidator","MAX_LENGTH_VALIDATOR","MaxLengthValidator","toInteger","PATTERN_VALIDATOR","PatternValidator","ɵInternalFormsSharedModule","FormsModule","ReactiveFormsModule","warnOnNgModelWithFormControl","GenericBrowserDomAdapter","ɵDomAdapter","supportsDOMEvents","BrowserDomAdapter","ɵsetRootDomAdapter","onAndCancel","getDefaultDocument","createHtmlDocument","isShadowRoot","DocumentFragment","getBaseElementHref","baseElement","relativePath","urlParsingNode","resetBaseElement","getCookie","TRANSITION_ID","SERVER_TRANSITION_PROVIDERS","appInitializerFactory","transitionId","dom","BrowserXhr","EVENT_MANAGER_PLUGINS","EventManager","_eventNameToPlugin","manager","_findPluginFor","addGlobalEventListener","EventManagerPlugin","SharedStylesHost","_stylesSet","addStyles","additions","onStylesAdded","getAllStyles","DomSharedStylesHost","_hostNodes","_addStylesToHost","styleNodes","styleEl","addHost","hostNode","removeHost","styleNode","NAMESPACE_URIS","svg","xhtml","xlink","xml","xmlns","math","COMPONENT_REGEX","compId","decoratePreventDefault","eventHandler","DomRendererFactory2","eventManager","sharedStylesHost","appId","rendererByCompId","defaultRenderer","DefaultDomRenderer2","EmulatedEncapsulationDomRenderer2","applyToHost","ShadowDomRenderer","createElementNS","isTemplateNode","namespaceUri","setAttributeNS","removeAttributeNS","removeProperty","contentAttr","shimContentAttribute","componentShortId","hostAttr","shimHostAttribute","hostEl","nodeOrShadowRoot","DomEventsPlugin","MODIFIER_KEYS","_keyMap","Del","Esc","Left","Right","Up","Down","Menu","Scroll","Win","MODIFIER_KEY_GETTERS","alt","KeyEventsPlugin","parseEventName","parsedEvent","outsideHandler","eventCallback","fullKey","domEventName","_normalizeKey","codeIX","modifierName","fullKeyCode","keycode","modifierGetter","matchEventFullKeyCode","keyName","platformBrowser","ɵPLATFORM_BROWSER_ID","initDomAdapter","makeCurrent","ɵsetDocument","BROWSER_MODULE_PROVIDERS_MARKER","TESTABILITY_PROVIDERS","ɵTESTABILITY_GETTER","BrowserGetTestability","ɵglobal","testabilities","didWork","decrement","didWork_","ɵTESTABILITY","BROWSER_MODULE_PROVIDERS","ɵINJECTOR_SCOPE","providersAlreadyPresent","setTitle","newTitle","DomSanitizer","DomSanitizerImpl","ɵallowSanitizationBypassAndThrow","ɵunwrapSafeValue","ɵ_sanitizeHtml","ɵ_sanitizeUrl","ɵXSS_SECURITY_URL","bypassSecurityTrustHtml","ɵbypassSanitizationTrustHtml","bypassSecurityTrustStyle","ɵbypassSanitizationTrustStyle","bypassSecurityTrustScript","ɵbypassSanitizationTrustScript","bypassSecurityTrustUrl","ɵbypassSanitizationTrustUrl","bypassSecurityTrustResourceUrl","ɵbypassSanitizationTrustResourceUrl","domSanitizerImplFactory","scan","seed","hasSeed","ScanOperator","ScanSubscriber","_seed","takeLast","TakeLastOperator","TakeLastSubscriber","ring","PRIMARY_OUTLET","RouteTitleKey","ParamsAsMap","convertToParamMap","defaultUrlMatcher","segmentGroup","hasChildren","posParams","consumed","shallowEqual","equalArraysOrString","aSorted","bSorted","wrapIntoObservable","ɵisObservable","NG_DEV_MODE$b","pathCompareMap","exact","equalSegmentGroups","containee","matrixParams","equalPath","matrixParamsMatch","numberOfChildren","subset","containsSegmentGroup","paramCompareMap","equalParams","containsParams","ignored","containsTree","paths","containsSegmentGroupHelper","containeePaths","containerPaths","containeeSegment","UrlTree","UrlSegmentGroup","queryParamMap","_queryParamMap","DEFAULT_SERIALIZER","serialize","serializePaths","UrlSegment","parameterMap","_parameterMap","serializePath","UrlSerializer","DefaultUrlSerializer","UrlParser","parseRootSegment","parseQueryParams","parseFragment","tree","serializeSegment","serializeQueryParams","strParams","encodeUriQuery","encodeUriFragment","encodeURI","primary","mapChildrenIntoArray","childOutlet","encodeUriString","encodeUriSegment","decode","decodeQuery","serializeMatrixParams","SEGMENT_RE","matchSegments","QUERY_PARAM_RE","QUERY_PARAM_VALUE_RE","consumeOptional","peekStartsWith","parseChildren","parseQueryParam","parseSegment","parseParens","parseMatrixParams","parseParam","valueMatch","matchQueryParams","matchUrlQueryParamValue","decodedKey","decodedVal","currentVal","allowPrimary","outletName","createRoot","rootCandidate","Pe","squashSegmentGroup","newChildren","childCandidate","mergeTrivialChildren","isUrlTree","createUrlTree","urlTree","commands","nav","computeNavigation","Navigation","numberOfDoubleDots","isAbsolute","cmd","cmdIdx","outlets","segmentPath","urlPart","partIndex","toRoot","createTreeUsingPathIndex","lastPathIndex","startingPosition","findStartingPosition","Position","createPositionApplyingDoubleDots","isMatrixParams","_urlSegment","processChildren","updateSegmentGroupChildren","updateSegmentGroup","_lastPathIndex","isCommandWithOutlets","oldRoot","oldSegmentGroup","newSegmentGroup","qp","replaceSegment","newRoot","oldSegment","newSegment","cmdWithOutlet","prefixedWith","currentCommandIndex","currentPathIndex","noMatch","pathIndex","slicedCommands","createNewSegmentGroup","getOutlets","outlet","createNewSegmentChildren","RouterEvent","NavigationStart","navigationTrigger","restoredState","urlAfterRedirects","NavigationCancel","NavigationError","RoutesRecognized","GuardsCheckStart","GuardsCheckEnd","shouldActivate","ResolveStart","ResolveEnd","RouteConfigLoadStart","RouteConfigLoadEnd","ChildActivationStart","routeConfig","ChildActivationEnd","ActivationStart","ActivationEnd","routerEvent","LegacyCreateUrlTree","relativeTo","currentUrlTree","CreateUrlTreeStrategy","Tree","_root","pathFromRoot","findNode","siblings","findPath","cc","TreeNode","nodeChildrenAsMap","RouterState","setRouterState","createEmptyState","rootComponent","createEmptyStateSnapshot","ActivatedRouteSnapshot","RouterStateSnapshot","emptyUrl","emptyParams","emptyData","emptyQueryParams","ActivatedRoute","futureSnapshot","_futureSnapshot","_routerState","_paramMap","inheritedParamsDataResolve","paramsInheritanceStrategy","inheritingStartingFrom","flattenInherited","_resolvedData","urlSegment","serializeNode","advanceActivatedRoute","nextSnapshot","shallowEqualArrays","equalParamsAndUrlSegments","equalUrlParams","equalSegments","createNode","routeReuseStrategy","shouldReuseRoute","createOrReuseChildren","shouldAttach","detachedRouteHandle","retrieve","createActivatedRoute","NAVIGATION_CANCELING_ERROR","redirectingNavigationError","urlSerializer","redirect","navigationBehaviorOptions","navigationCancelingError","redirectUrl","cancellationCode","isRedirectingNavigationCancelingError$1","isNavigationCancelingError$1","OutletContext","ChildrenOutletContexts","attachRef","contexts","onChildOutletCreated","childName","getOrCreateContext","onChildOutletDestroyed","onOutletDeactivated","onOutletReAttached","NG_DEV_MODE$8","RouterOutlet","_activatedRoute","activateEvents","deactivateEvents","attachEvents","detachEvents","parentContexts","changeDetector","isTrackedInParentContexts","deactivate","initializeOutletWithName","activateWith","isActivated","activatedRoute","activatedRouteData","resolverOrInjector","childContexts","OutletInjector","isComponentFactoryResolver","ɵEmptyOutletComponent","getOrCreateRouteInjectorIfNeeded","currentInjector","standardizeConfig","loadComponent","getOutlet","sortByMatchingOutlets","sortedConfig","getClosestRouteInjector","_loadedInjector","ActivateRoutes","futureState","currState","forwardEvent","activate","futureRoot","currRoot","deactivateChildRoutes","activateChildRoutes","futureNode","currNode","futureChild","childOutletName","deactivateRoutes","deactivateRouteAndItsChildren","shouldDetach","detachAndStoreRouteSubtree","deactivateRouteAndOutlet","activateRoutes","stored","cmpFactoryResolver","CanActivate","CanDeactivate","getAllRouteGuards","getChildRouteGuards","getTokenOrFunctionIdentity","tokenOrFunction","ɵisInjectable","futurePath","checks","canDeactivateChecks","canActivateChecks","prevChildren","getRouteGuards","shouldRun","shouldRunGuardsAndResolvers","runGuardsAndResolvers","isEmptyError","INITIAL_VALUE","prioritizedGuardValue","redirectIfUrlTree","noMatch$1","consumedSegments","remainingSegments","positionalParamSegments","matchWithChecks","runCanMatchGuards","canMatch","canMatchObservables","injectionToken","guard","isCanMatch","slicedSegments","containsEmptyPathMatchesWithNamedOutlets","emptyPathMatch","createChildrenForEmptyPaths","primarySegment","_sourceSegment","_segmentIndexShift","containsEmptyPathMatches","addEmptyPathsToChildrenIfNeeded","isImmediateMatch","rawSegment","noLeftoversInUrl","NG_DEV_MODE$7","NoMatch$1","AbsoluteRedirect","absoluteRedirect","newTree","ApplyRedirects","configLoader","allowRedirects","splitGroup","rootSegmentGroup","expandSegmentGroup","noMatchError","expandChildren","expandSegment","childOutlets","sortedRoutes","expandedChild","last$1","expandSegmentAgainstRoute","matchSegmentAgainstRoute","expandSegmentAgainstRouteUsingRedirect","expandWildCardWithParamsAgainstRouteUsingRedirect","expandRegularSegmentAgainstRouteUsingRedirect","applyRedirectCommands","lineralizeSegments","newSegments","rawSegmentGroup","_loadedRoutes","getChildConfig","routerConfig","childInjector","splitSegmentGroup","matchedOnOutlet","cs","runCanLoadGuards","canLoadObservables","isCanLoad","shouldLoadResult","canLoadFails","applyRedirectCreateUrlTree","createSegmentGroup","createQueryParams","redirectToParams","actualParams","updatedSegments","createSegments","redirectToSegments","actualSegments","findPosParam","findOrReturn","redirectToUrlSegment","NoMatch","Recognizer","rootComponentType","recognize","processSegmentGroup","routeState","inheritParamsAndData","routeNode","processSegment","outletChildren","mergedChildren","mergeEmptyPathMatches","sortActivatedRouteSnapshots","processSegmentAgainstRoute","pathIndexShift","getPathIndexShift","getData","_loadedComponent","getSourceSegmentGroup","getResolve","hasEmptyPathConfig","mergedNodes","duplicateEmptyPathNode","resultNode","mergedNode","hasStaticTitle","switchTap","nextResult","ROUTES","RouterConfigLoader","compiler","componentLoaders","childrenLoaders","onLoadStartListener","loadRunner","maybeUnwrapDefaultExport","onLoadEndListener","loadModuleFactoryOrRoutes","factoryOrRoutes","rawRoutes","requireStandaloneComponents","NG_DEV_MODE$5","isWrappedDefaultExport","NavigationTransitions","currentNavigation","lastSuccessfulNavigation","rootContexts","navigationId","hasRequestedNavigation","handleNavigationRequest","setupNavigations","targetPageId","currentRawUrl","extractedUrl","urlHandlingStrategy","extract","rawUrl","extras","routerState","targetSnapshot","currentRouterState","targetRouterState","guards","guardsResult","overallTransitionState","initialUrl","previousNavigation","browserUrlTree","urlTransition","navigated","onSameUrlNavigation","shouldProcessUrl","isBrowserTriggeredNavigation","applyRedirects","applyRedirects$1","finalUrl","serializer","recognize$1","newObservableError","urlUpdateStrategy","skipLocationChange","setBrowserUrl","routesRecognized","rawUrlTree","navStart","replaceUrl","guardsStart","checkGuards","runCanDeactivateChecks","futureRSS","currRSS","runCanDeactivate","currARS","canDeactivate","canDeactivateObservables","closestInjector","isCanDeactivate","isBoolean","runCanActivateChecks","fireChildActivationStart","fireActivationStart","runCanActivateChild","futureARS","canActivateChildGuardsMapped","getCanActivateChild","canActivateChild","guardsMapped","isCanActivateChild","runCanActivate","canActivateObservables","isCanActivate","guardsEnd","restoreHistory","cancelNavigationTransition","resolveStart","dataResolved","resolveData","canActivateChecksResolved","runResolve","resolveNode","getDataKeys","resolvedData","resolveEnd","loadComponents","loaders","loadedComponent","afterPreactivation","createRouterState","titleStrategy","updateTitle","navCancel","mergedTree","scheduleNavigation","navError","ee","TitleStrategy","buildTitle","pageTitle","getResolvedTitleForRoute","DefaultTitleStrategy","RouteReuseStrategy","DefaultRouteReuseStrategy","BaseRouteReuseStrategy","detachedTree","ROUTER_CONFIGURATION","UrlHandlingStrategy","DefaultUrlHandlingStrategy","newUrlPart","wholeUrl","defaultErrorHandler","defaultMalformedUriErrorHandler","exactMatchOptions","subsetMatchOptions","disposed","currentPageId","ɵConsole","isNgZoneEnabled","malformedUriErrorHandler","lastSuccessfulId","urlCreationStrategy","canceledNavigationResolution","navigationTransitions","resetConfig","browserPageId","ɵrouterPageId","resetRootComponentType","initialNavigation","setUpLocationChangeListener","navigateByUrl","locationSubscription","stateCopy","serializeUrl","getCurrentNavigation","navigationExtras","queryParamsHandling","preserveFragment","removeEmptyProps","validateCommands","isActive","matchOptions","priorPromise","generateNgRouterState","restoringFromCaughtError","targetPagePosition","resetState","resetUrlToCurrentUrlTree","routerPageId","RouterLink","tabIndexAttribute","_preserveFragment","_skipLocationChange","_replaceUrl","onChanges","updateHref","setTabIndexIfNotOnNativeEl","newTabIndex","applyAttributeValue","routerLink","button","sanitizedValue","i3","PreloadingStrategy","RouterPreloader","preloadingStrategy","setUpPreloading","preload","processRoutes","injectorForCurrentRoute","injectorForChildren","preloadConfig","loadedChildren$","recursiveLoadChildren$","loadComponent$","ROUTER_SCROLLER","RouterScroller","viewportScroller","lastId","lastSource","restoredId","scrollPositionRestoration","anchorScrolling","routerEventsSubscription","createScrollEvents","scrollEventsSubscription","consumeScrollEvents","scheduleScrollEvent","routerFeature","getBootstrapListener","bootstrappedComponentRef","bootstrapDone","BOOTSTRAP_DONE","INITIAL_NAVIGATION","ROUTER_PRELOADER","withPreloading","ROUTER_FORROOT_GUARD","ROUTER_PROVIDERS","rootRoute","routerNgProbeToken","provideForRootGuard","provideInitialNavigation","ROUTER_INITIALIZER","locationInitialized","afterNextNavigation","repeat","RepeatOperator","RepeatSubscriber","publish","BlockScrollStrategy","_viewportRuler","_previousHTMLStyles","_isEnabled","_canBeEnabled","_previousScrollPosition","htmlStyle","bodyStyle","previousHtmlScrollBehavior","scrollBehavior","previousBodyScrollBehavior","scroll","CloseScrollStrategy","_scrollDispatcher","_scrollSubscription","_detach","_overlayRef","overlayRef","stream","_initialScrollPosition","updatePosition","NoopScrollStrategy","isElementScrolledOutsideView","containerBounds","isElementClippedByScrolling","scrollContainerRect","RepositionScrollStrategy","scrollThrottle","autoClose","overlayRect","overlayElement","ScrollStrategyOptions","reposition","OverlayConfig","scrollStrategy","panelClass","hasBackdrop","backdropClass","disposeOnNavigation","configKeys","ConnectedOverlayPositionChange","connectionPair","scrollableViewProperties","BaseOverlayDispatcher","_attachedOverlays","OverlayKeyboardDispatcher","_keydownListener","overlays","_keydownEvents","keydownEvents","_isAttached","OverlayOutsideClickDispatcher","_cursorStyleIsSet","_pointerDownListener","_pointerDownEventTarget","_clickListener","_outsidePointerEvents","outsidePointerEvents","_addEventListeners","_cursorOriginalValue","i1$1","OverlayContainer","_containerElement","getContainerElement","_createContainer","containerClass","oppositePlatformContainers","OverlayRef","_portalOutlet","_host","_pane","_keyboardDispatcher","_location","_outsideClickDispatcher","_backdropElement","_backdropClick","_attachments","_detachments","_locationChanges","_backdropClickHandler","_backdropTransitionendHandler","_disposeBackdrop","_positionStrategy","positionStrategy","backdropElement","_previousHostParent","attachResult","_updateStackingOrder","_updateElementSize","_updateElementDirection","_togglePointerEvents","_attachBackdrop","_toggleClasses","detachBackdrop","detachmentResult","_detachContentWhenStable","_disposeScrollStrategy","backdropClick","attachments","detachments","getConfig","updatePositionStrategy","strategy","updateSize","sizeConfig","setDirection","addPanelClass","removePanelClass","getDirection","updateScrollStrategy","minWidth","minHeight","enablePointer","showingClass","backdropToDetach","_backdropTimeout","cssClasses","isAdd","boundingBoxClass","cssUnitPattern","FlexibleConnectedPositionStrategy","connectedTo","_overlayContainer","_lastBoundingBoxSize","_isPushed","_canPush","_growAfterOpen","_hasFlexibleDimensions","_positionLocked","_viewportMargin","_scrollables","_preferredPositions","_positionChanges","_resizeSubscription","_offsetX","_offsetY","_appliedPanelClasses","positionChanges","setOrigin","_validatePositions","_boundingBox","_isInitialRender","_lastPosition","reapplyLastPosition","_clearPanelClasses","_resetOverlayElementStyles","_resetBoundingBoxStyles","_viewportRect","_getNarrowedViewportRect","_originRect","_getOriginRect","_overlayRect","_containerRect","originRect","viewportRect","containerRect","flexibleFits","originPoint","_getOriginPoint","overlayPoint","_getOverlayPoint","overlayFit","_getOverlayFit","isCompletelyWithinViewport","_applyPosition","_canFitWithFlexibleDimensions","boundingBoxRect","_calculateBoundingBoxRect","visibleArea","bestFit","bestScore","_previousPushAmount","extendStyles","alignItems","justifyContent","lastPosition","withScrollableContainers","scrollables","withPositions","withViewportMargin","withFlexibleDimensions","flexibleDimensions","withGrowAfterOpen","growAfterOpen","withPush","canPush","withLockedPosition","isLocked","withDefaultOffsetX","withDefaultOffsetY","withTransformOriginOn","_transformOriginSelector","originX","_isRtl","originY","overlayStartX","overlayStartY","overlayX","overlayY","rawOverlayRect","overlay","getRoundedBoundingClientRect","_getOffset","topOverflow","bottomOverflow","visibleWidth","_subtractOverflows","visibleHeight","fitsInViewportVertically","fitsInViewportHorizontally","getPixelValue","_pushOverlayOnScreen","overflowRight","overflowBottom","overflowTop","overflowLeft","pushX","pushY","_setTransformOrigin","_setOverlayElementStyles","_setBoundingBoxStyles","_addPanelClasses","_getScrollVisibility","changeEvent","xOrigin","yOrigin","transformOrigin","smallestDistanceToViewportEdge","previousHeight","previousWidth","_hasExactPosition","hasExactPosition","hasFlexibleDimensions","_getExactOverlayY","_getExactOverlayX","transformString","horizontalStyleProperty","originBounds","overlayBounds","scrollContainerBounds","isOriginClipped","isOriginOutsideView","isOverlayClipped","isOverlayOutsideView","overflows","currentOverflow","cssClass","clientRect","wrapperClass","GlobalPositionStrategy","_cssPosition","_topOffset","_bottomOffset","_alignItems","_xPosition","_xOffset","_width","_height","centerHorizontally","centerVertically","parentStyles","shouldBeFlushHorizontally","shouldBeFlushVertically","xPosition","marginLeft","marginRight","marginTop","marginBottom","OverlayPositionBuilder","flexibleConnectedTo","nextUniqueId","Overlay","scrollStrategies","_positionBuilder","_directionality","_animationsModuleType","_createHostElement","pane","_createPaneElement","portalOutlet","_createPortalOutlet","overlayConfig","i5","i6","CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER","CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY","OverlayModule","ctx_r0","_c7","_r3","ctx_r2","day_r1","weekNumber_r1","_r5","ctx_r4","ctx_r6","ctx_r7","_r9","ctx_r8","_r11","ctx_r10","_r13","ctx_r12","_r2","ctx_r1","ctx_r3","_r14","ctx_r13","_r21","ctx_r20","_r24","ctx_r23","_r28","ctx_r27","_r32","ctx_r31","_r34","ctx_r33","ctx_r35","_r12","ctx_r11","_r17","ctx_r16","ctx_r18","_r22","ctx_r21","_r27","ctx_r26","ctx_r28","_r33","ctx_r32","ctx_r34","ctx_r36","_r4","ctx_r5","tab_r1","ctx_r14","_c51","NB_THEME_OPTIONS","NB_MEDIA_BREAKPOINTS","NB_BUILT_IN_JS_THEMES","NB_JS_THEMES","NB_WINDOW","NB_DOCUMENT","DEFAULT_MEDIA_BREAKPOINTS","NbMediaBreakpointsService","breakpointsMap","getByWidth","unknown","getBreakpoints","getByName","getBreakpointsMap","BUILT_IN_THEMES","variables","fontMain","fontSecondary","bg","bg2","bg3","bg4","border2","border3","border4","border5","fg","fgHeading","fgText","fgHighlight","layoutBg","success","warning","danger","primaryLight","successLight","infoLight","warningLight","dangerLight","NbJSThemesRegistry","builtInThemes","newThemes","themes","combineByNames","theme","themeName","baseTheme","mergeDeep","oldThemes","mergedThemes","sameOld","tm","mergedTheme","NbThemeService","breakpointService","jsThemesRegistry","themeChanges$","appendLayoutClass$","removeLayoutClass$","changeWindowWidth$","changeTheme","currentTheme","changeWindowWidth","getJsTheme","onThemeChange","onMediaQueryChange","prevWidth","prevPoint","appendLayoutClass","onAppendLayoutClass","removeLayoutClass","onRemoveLayoutClass","NbSpinnerService","registerLoader","showSpinner","executeAll","hideSpinner","getSpinnerElement","NbLayoutDirection","LTR","RTL","NB_LAYOUT_DIRECTION","NbLayoutDirectionService","$directionChange","isLtr","onDirectionChange","NbLayoutScrollService","scrollPositionReq$","manualScroll$","scroll$","scrollable$","onScroll","onManualScroll","onGetPosition","onScrollableChange","fireScrollChange","NbLayoutRulerService","contentDimensionsReq$","getDimensions","onGetDimensions","NbSharedModule","NbFocusTrap","checker","savePreviouslyFocusedElement","restoreFocus","previouslyFocusedElement","blurPreviouslyFocusedElement","blur","NbFocusTrapFactoryService","NbFocusKeyManager","NbFocusKeyManagerFactoryService","NbActiveDescendantKeyManager","NbActiveDescendantKeyManagerFactoryService","NbKeyManagerActiveItemMode","RESET_ACTIVE","FIRST_ACTIVE","NbFocusMonitor","NbA11yModule","NbPortalDirective","NbPortalOutletDirective","NbComponentPortal","NbOverlay","NbOverlayPositionBuilder","NbTemplatePortal","NbOverlayContainer","NbFlexibleConnectedPositionStrategy","NbPortalInjector","CDK_MODULES","NbCdkMappingModule","NbGlobalLogicalPosition","TOP_START","TOP_END","BOTTOM_START","BOTTOM_END","NbGlobalPhysicalPosition","TOP_RIGHT","TOP_LEFT","BOTTOM_RIGHT","BOTTOM_LEFT","NbPositionHelper","layoutDirection","toLogicalPosition","toLogicalPositionWhenLtr","toLogicalPositionWhenRtl","toPhysicalPosition","toPhysicalPositionWhenLtr","toPhysicalPositionWhenRtl","isTopPosition","logicalPosition","isRightPosition","physicalPosition","NbPlatform","NbViewportRulerAdapter","dimensions","NbOverlayContainerAdapter","setContainer","clearContainer","checkContainer","throwLayoutNotFoundError","NbAdjustment","CLOCKWISE","COUNTERCLOCKWISE","VERTICAL","HORIZONTAL","NbPosition","TOP","BOTTOM","RIGHT","START","END_TOP","END_BOTTOM","START_TOP","START_BOTTOM","POSITIONS","RTL_PHYSICAL_POSITIONS","COUNTER_CLOCKWISE_POSITIONS","CLOCKWISE_POSITIONS","VERTICAL_POSITIONS","HORIZONTAL_POSITIONS","NbAdjustableConnectedPositionStrategy","positionChange","appliedPositions","connectedPosition","comparePositions","applyPositions","_direction","adjustment","_adjustment","createPositions","persistChosenPositions","reorderPreferredPositions","mapToLogicalPosition","positionGrid","startPosition","startPositionIndex","firstPart","secondPart","NbGlobalPositionStrategy","NbPositionBuilderService","positionBuilder","overlayContainer","NbPositionedContainerComponent","topStart","topEnd","endTop","endBottom","bottomStart","bottomEnd","startTop","startBottom","NbOverlayContainerComponent","vcr","isStringContent","createChildInjector","attachStringContent","cfr","containerContext","NbOverlayService","NbScrollDispatcherAdapter","scrollService","NbBlockScrollStrategyAdapter","NbScrollStrategyOptions","NbCdkAdapterModule","NbTrigger","CLICK","HOVER","HINT","FOCUS","NbTriggerStrategyBase","destroyed$","isNotOnHostOrContainer","isOnHost","isOnContainer","isOnHostOrContainer","NbClickTriggerStrategy","click$","show$","shouldShow","hide$","NbHoverTriggerStrategy","NbHintTriggerStrategy","NbFocusTriggerStrategy","focusOut$","clickIn$","clickOut$","tabKeyPress$","NbNoopTriggerStrategy","NbTriggerStrategyBuilderService","_trigger","_container","NbOverlayModule","forRoot","NbStatusService","coreStatuses","isCoreStatus","isCustomStatus","isValidStatusString","getStatusClass","windowFactory","NbThemeModule","nbThemeOptions","nbJSThemes","nbMediaBreakpoints","NbColorHelper","color1","color2","d2h","h2d","NbIconPackType","SVG","FONT","NbFontIcon","getClasses","getContent","NbSvgIcon","throwPackNotFoundError","throwWrongPackTypeError","desiredType","NbIconLibraries","packs","registerSvgPack","icons","getPack","defaultPack","getSvgIcon","iconsPack","getPackOrThrow","getDefaultPackOrThrow","getIconFromPack","createSvgIcon","getFontIcon","createFontIcon","ligature","getIcon","throwNoDefaultPackError","NbIconComponent","iconLibrary","statusService","prevClasses","basic","additionalClasses","iconDef","renderIcon","clearIcon","iconDefinition","assignClasses","i1$2","NbIconModule","iconsLibrary","essentialsPackName","NbCardHeaderComponent","NbCardBodyComponent","NbCardFooterComponent","NbCardComponent","accent","tiny","small","medium","large","giant","hasAccent","primaryAccent","infoAccent","successAccent","warningAccent","dangerAccent","basicAccent","controlAccent","nebular_theme_c1","NbCardModule","NbCalendarViewMode","YEAR","NbCalendarSize","MEDIUM","LARGE","convertToBoolProperty","NbDateService","DAYS_IN_WEEK","HOURS_IN_DAY_PERIOD","setLocale","compareDates","isSameDaySafe","date1","date2","isSameDay","isSameMonthSafe","isSameMonth","isSameYearSafe","isSameYear","isSameHourAndMinute","isSameHour","isSameMinute","getTwentyFourHoursFormat","getTwentyFourHoursFormatWithSeconds","getTwelveHoursFormatWithSeconds","getDayPeriod","batch","batchSize","chunkIndex","rangeFromTo","producer","NbCalendarYearModelService","dateService","yearsInView","yearsInRow","getYearsInView","getYearsInRow","getViewYears","viewYear","getYear","viewStartYear","copyWithYear","NbButton","shape","appearance","_fullWidth","_disabled","iconLeft","iconRight","filled","outline","ghost","fullWidth","tabbable","rectangle","semiRound","isIconExist","updateProperties","isPropertyChanged","iconElement","NbButtonComponent","hero","stopImmediatePropagation","NbCalendarViewModeComponent","yearModelService","viewMode","changeMode","getText","getMonthName","getFirstYear","getLastYear","lastRow","NbCalendarPageableNavigationComponent","directionService","NbCalendarYearCellComponent","select","yearCellClass","selectedValue","smallerThanMin","greaterThanMax","isLarge","yearEnd","yearStart","getYearStart","getYearEnd","NbCalendarPickerRowComponent","containerRef","patchWithContext","visibleDate","NbCalendarPickerComponent","NbCalendarYearPickerComponent","cellComponent","yearChange","_cellComponent","onSelect","NbCalendarMonthCellComponent","monthCellClass","monthEnd","monthStart","getMonthStart","getMonthEnd","NbCalendarMonthPickerComponent","monthChange","initMonths","firstMonth","monthIndex","addMonth","NbCalendarDayCellComponent","dayCellClass","boundingMonth","dontFitFilter","NbCalendarMonthModelService","createDaysGrid","activeMonth","createDates","withBoundingMonths","createDateRangeForMonth","startOfWeekDayDiff","getStartOfWeekDayDiff","isShouldAddPrevBoundingMonth","addPrevBoundingMonth","isShouldAddNextBoundingMonth","addNextBoundingMonth","firstWeek","createPrevBoundingDays","createNextBoundingDays","requiredItems","getNumberOfDaysInMonth","startOfMonth","getWeekStartDiff","getFirstDayOfWeek","getDayOfWeek","NbCalendarDaysNamesComponent","createDaysNames","shiftStartOfWeek","getDayOfWeekNames","markIfHoliday","isHoliday","NbCalendarWeekNumberComponent","weekNumbers","getWeeks","getWeekNumber","NbCalendarDayPickerComponent","monthModel","boundingMonths","_showWeekNumber","dateChange","setCellComponent","showWeekNumber","NbBaseCalendarComponent","activeViewMode","showNavigation","ViewMode","setViewMode","setVisibleDate","prevMonth","changeVisibleMonth","nextMonth","prevYear","changeVisibleYear","nextYear","prevYears","changeVisibleYears","nextYears","navigatePrev","navigateNext","onChangeViewMode","addYear","NbCalendarComponent","weekNumberSymbol","NbButtonModule","NbNativeDateService","setSeconds","setMilliseconds","isValidDateString","isValidTimeString","getMonthNameByIndex","addDay","setDate","addMinutes","addHours","getId","getDateFormat","getTwelveHoursFormat","NbCalendarTimeModelService","MINUTES_AND_SECONDS","getHoursRange","getResetTime","endDate","paddToTwoSymbols","buildDateFormat","twelveHoursFormat","withSeconds","NbCalendarActionsComponent","_applyButtonText","_currentTimeButtonText","setCurrentTime","saveValue","applyButtonText","applyText","currentTimeButtonText","currentTimeText","SERVICES","NbCalendarKitModule","NbBaseCalendarModule","NbCalendarModule","NbBaseCalendarRangeCell","hasRange","NbCalendarRangeDayCellComponent","rangeCellClass","isInRange","isGreaterThanStart","isLessThanEnd","NbCalendarRangeYearCellComponent","rangeStart","rangeEnd","cellYear","endYear","NbCalendarRangeMonthCellComponent","isInRage","cellDate","NbCalendarRangeComponent","dayCellComponent","monthCellComponent","yearCellComponent","rangeChange","_monthCellComponent","_yearCellComponent","initDateIfNull","handleSelected","selectionStarted","selectEnd","selectStart","selectRange","NbCalendarRangeModule","NB_TIME_PICKER_CONFIG","NB_DEFAULT_TIMEPICKER_LOCALIZATION_CONFIG","hoursText","minutesText","secondsText","ampmText","NbListComponent","_c9","NbListItemComponent","NbTimePickerCellComponent","platformService","selectedChange$","unselected$","destroy$","_selected","valueContainerElement","_c11","NbTimePickerComponent","calendarTimeModelService","blur$","dayPeriodColumnOptions","isAM","timepickerFormatChange$","computedTimeFormat","setupTimeFormat","_showAmPmLabel","showFooter","onSelectTime","initFromConfig","_timeFormat","_twelveHoursFormat","showAmPmLabel","_withSeconds","singleColumn","_singleColumn","buildColumnOptions","nextTimeFormat","fullTimeOptions","setHost","hostRef","setHour","updateValue","setMinute","setSecond","selectFullTime","changeDayPeriod","dayPeriodToSet","trackByTimeValues","trackBySingleColumnValue","trackByDayPeriod","showSeconds","isSelectedHour","isSelectedMinute","isSelectedSecond","isSelectedDayPeriod","dayPeriod","getFullTimeString","isSelectedFullTimeValue","hoursColumnOptions","generateHours","minutesColumnOptions","generateMinutesOrSeconds","secondsColumnOptions","isFirefox","buildTimeFormat","localeConfig","localization","NbCalendarWithTimeComponent","timepicker","onDateValueChange","onTimeChange","selectedTime","saveCurrentTime","NbDatepickerContainerComponent","NbDatepickerAdapter","NbDatepicker","NB_DATE_ADAPTER","NB_DATE_SERVICE_OPTIONS","NbDatepickerDirective","datepickerAdapters","isDatepickerReady","parseValidator","filterValidator","subscribeOnInputChange","setPicker","picker","setupPicker","inputValue","writePicker","writeInput","hidePicker","datepickerAdapter","nbDatepickerParse","getValidatorConfig","nbDatepickerMin","nbDatepickerMax","nbDatepickerFilter","chooseDatepickerAdapter","noDatepickerAdapterProvided","pickerInputsChangedSubscription","formatChanged$","prevFormat","nextFormat","valueChange","shouldHide","isShown","handleInputChange","parseInputValue","NbBasePicker","triggerStrategyBuilder","dateServiceOptions","init$","onChange$","overlayOffset","pickerRef","subscribeOnTriggers","createOverlay","openDatepicker","hideOnSelect","createPositionStrategy","subscribeOnPositionChange","instantiatePicker","subscribeOnValueChange","writeQueue","patchWithInputs","createTriggerStrategy","triggerStrategy","pickerClass","pickerValueChange","checkFormat","isFormatSet","NbBasePickerComponent","NbDatepickerComponent","NbRangepickerComponent","NbDateTimePickerComponent","calendarWithTimeModelService","showCurrentTimeButton","dateTimeChange","getPathPartOfUrl","getFragmentPartOfUrl","NbRestoreScrollTopHelper","shouldRestore","pageChanged","NbLayoutComponent","themeService","spinnerService","layoutDirectionService","rulerService","scrollBlockClass","isScrollBlocked","centerValue","restoreScrollTopValue","windowModeValue","withScrollValue","withSubheader","afterViewInit$","registerAsOverlayContainer","enableScroll","blockScroll","windowMode","withScroll","restoreScrollTop","unregisterAsOverlayContainer","scrollableContainerRef","currentX","currentY","scrollableContainerElement","layoutElement","layoutContainerRef","layoutWithScrollWidth","scrollableContainerOverflowOldValue","layoutPaddingOldValue","_c12","_c13","_c14","_c15","NbLayoutColumnComponent","leftValue","NbLayoutHeaderComponent","fixedValue","subheader","subheaderValue","NbLayoutModule","itemClick$","addItems$","navigateHome$","getSelectedItem$","itemSelect$","itemHover$","submenuToggle$","collapseAll$","NbMenuItem","possibleChild","NbMenuService","addItems","collapseAll","navigateHome","getSelectedItem","onItemClick","onItemSelect","onItemHover","onSubmenuToggle","NbMenuInternalService","prepareItems","defaultItem","applyDefaults","selectFromUrl","collapseOther","selectedItem","findItemByUrl","selectItem","unselectedItems","resetSelection","collapsedItems","collapseItems","getParents","itemSelect","wasNotExpanded","submenuToggle","collapsedItem","except","onAddItem","onNavigateHome","onCollapseAll","onGetSelectedItem","itemHover","itemClick","menuItem","isSelectedInUrl","isSelectedInPath","isUrlPathEqual","isUrlPathContain","locationPath","isFragmentEqual","isFragmentContain","NbBadgeComponent","_defaultPosition","dotMode","_dotMode","NbToggleStates","Expanded","Collapsed","NbMenuItemComponent","hoverItem","toggleSubMenu","toggleState","isExpanded","onToggleSubMenu","onHoverItem","onSelectItem","getExpandStateIcon","NbMenuComponent","menuInternalService","_autoCollapse","autoCollapse","compareTag","homeItem","getHomeItem","NbBadgeModule","NB_MENU_PROVIDERS","NbMenuModule","getSidebarState$","getSidebarResponsiveState$","NbSidebarService","toggle$","expand$","collapse$","compact$","onToggle","onExpand","onCollapse","onCompact","compact","expand","collapse","getSidebarState","getSidebarResponsiveState","NbSidebarComponent","sidebarService","responsiveValueChange$","responsiveState","containerFixedValue","rightValue","_responsive","compactedBreakpoints","collapsedBreakpoints","responsiveStateChange","collapsed","compacted","containerFixed","subscribeToMediaQueryChange","menu","getMenuLink","nextElementSibling","updateState","isCollapsed","isCompacted","newResponsiveState","_c18","NB_SIDEBAR_PROVIDERS","NbSidebarModule","NbTabContentDirective","NbTabTitleDirective","NbTabComponent","activeValue","responsiveValue","badgeStatus","badgeDot","_badgeDot","lazyLoad","NbTabsetComponent","fullWidthValue","changeTab","tabs","tab","routeParam","tabToSelect","selectTab","selectedTab","_c20","NbTabsetModule","NbUserComponent","domSanitizer","_showName","_showTitle","_showInitials","picture","imageBackgroundStyle","showName","showTitle","showInitials","onlyPicture","getInitials","NbUserModule","NbActionComponent","NbActionsComponent","_c22","NbActionsModule","NbCheckboxComponent","_checked","_indeterminate","checkedChange","checked","indeterminate","setTouched","updateValueAndIndeterminate","NbCheckboxModule","NbDynamicOverlay","positionStrategyChange$","isShown$","overlayDestroy$","setContentAndContext","setComponent","setPositionStrategy","setOverlayConfig","setDisabled","setContent","updateContext","wasAttached","disposeOverlayRef","lastAppliedPosition","renderContainer","hasOverlayInContainer","getContainer","updatePositionWhenStable","createContainerContext","createContainer","renderContent","destroyedOverlay","NbDynamicOverlayChange","isChanged","NbDynamicOverlayHandler","dynamicOverlayService","_overlayConfig","_componentType","_content","dynamicOverlay","clearChanges","rebuild","isPositionStrategyUpdateRequired","isTriggerStrategyUpdateRequired","isContainerRerenderRequired","isComponentTypeUpdateRequired","isOverlayConfigUpdateRequired","isDisabledUpdated","subscribeOnDirectionChange","isContentUpdated","isContextUpdated","isAdjustmentUpdated","isPositionUpdated","isOffsetUpdated","isHostUpdated","isTriggerUpdated","isComponentTypeUpdated","isOverlayConfigUpdated","NbPopoverComponent","detachContent","attachContent","attachTemplate","attachComponent","attachString","NbPopoverDirective","dynamicOverlayHandler","popoverComponent","_popoverClass","nbPopoverShowStateChange","popoverClass","configureDynamicOverlay","NbPopoverModule","NbContextMenuComponent","NbContextMenuDirective","contextMenuHost","_contextMenuClass","contextMenuClass","overlayContext","updateOverlayContext","_tag","validateItems","subscribeOnItemClick","NbContextMenuModule","NbFormFieldControl","NbFormFieldControlConfig","supportsPrefix","supportsSuffix","NbInputDirective","focusMonitor","fieldSize","status$","size$","focused$","disabled$","fullWidth$","NbInputModule","accordionItemBodyTrigger","NbListModule","voidState","NbTooltipComponent","statusClass","NbTooltipDirective","tooltipComponent","_tooltipClass","nbTooltipShowStateChange","tooltipClass","NbTooltipModule","NB_SELECT_INJECTION_TOKEN","lastOptionId","NbOptionComponent","disabledByGroup","selectionChange","alive","withCheckbox","multiple","selectedClass","disabledAttribute","tabindex","activeClass","setSelection","deselect","setDisabledByGroupState","NbOptionListComponent","positionTop","positionBottom","sizeTiny","sizeSmall","sizeMedium","sizeLarge","sizeGiant","NbSelectLabelComponent","nbSelectFormFieldControlConfigFactory","NbSelectComponent","focusKeyManagerFactoryService","placeholder","_multiple","optionsOverlayOffset","selectedChange","selectionModel","overlayPosition","optionsWidth","_optionsWidth","hostWidth","canSelectValue","isOpen","isHidden","selectButtonClasses","selectionView","subscribeOnButtonFocus","subscribeOnOptionClick","attachToOverlay","setActiveOption","handleOptionClick","selectOption","emitSelected","handleMultipleSelect","handleSingleSelect","createKeyManager","subscribeOnOverlayKeys","keyManager","createScrollStrategy","optionsPanelClass","isClickedWithinComponent","clickedOption","isResetValue","safeValue","previouslySelectedOptions","selectValue","corresponding","trySetTouched","_c40","_c41","NbOptionGroupComponent","updateOptionsDisabledState","asyncUpdateOptionsDisabledState","_c43","NbOptionModule","NbSelectModule","lastAutocompleteId","NbAutocompleteComponent","_overlayPosition","activeFirst","_c48","NbAutocompleteDirective","activeDescendantKeyManagerFactory","_onTouched","ariaAutocomplete","hasPopup","isClosed","autocomplete","_autocomplete","ariaExpanded","ariaOwns","ariaActiveDescendant","handleInput","setHostInputValue","getDisplayValue","handleKeydown","handleBlur","handleInputValueUpdate","getActiveItem","setupAutocomplete","customOverlayHost","displayFn","handleDisplayFn","focusInput","initOverlay","checkOverlayVisibility","NbAutocompleteModule","NbTimePickerDirective","_timePickerComponent","timePicker","subscribeToBlur","setupTimepicker","parseNativeDateString","subscribeOnApplyClick","lastInputValue","NbTimepickerModule","NbDateAdapterService","NbRangeAdapterService","subDate","NbDateTimeAdapterService","NbDatepickerModule","NbRadioComponent","_name","boolValue","isPrimary","isSuccess","isWarning","isDanger","isInfo","isBasic","isControl","stopPropagation","_markForCheck","_setName","NbRadioGroupComponent","_status","updateValues","updateNames","updateDisabled","updateStatus","radios","updateAndSubscribeToRadios","updateValueFromCheckedOption","subscribeOnRadiosValueChange","subscribeOnRadiosBlur","radio","updateAndMarkForCheckRadios","propagateValue","hasNoRadios","checkedRadio","_c52","NbRadioModule","race","RaceOperator","RaceSubscriber","hasFirst","zip","ZipOperator","ZipSubscriber","iterators","StaticArrayIterator","StaticIterator","ZipBufferIterator","stillUnsubscribed","notifyInactive","checkIterators","shouldComplete","_tryresultSelector","getOppositePlacement","placement","getBasePlacement","getOppositeVariationPlacement","auto","basePlacements","popper","variationPlacements","placements","modifierPhases","isElement","isHTMLElement","HTMLElement","getDocumentElement","getUAString","uaData","brands","isLayoutViewport","includeScale","isFixedStrategy","scaleX","scaleY","visualViewport","addVisualOffsets","offsetTop","getWindowScroll","win","getWindowScrollBarX","getNodeName","getParentNode","assignedSlot","isScrollParent","_getComputedStyle","overflowY","overflowX","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","updatedList","isTableElement","getTrueOffsetParent","offsetParent","getOffsetParent","getContainingBlock","css","perspective","contain","willChange","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","layoutViewport","getInnerBoundingClientRect","clientTop","clientLeft","getDocumentRect","winScroll","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","popperRect","clippingClientRect","getClippingRect","mainClippingParents","getClippingParents","clippingParents","clipperElement","clippingRect","accRect","contextElement","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","multiply","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","getExpandedFallbackPlacements","oppositePlacement","computeAutoPlacement","_options$allowedAutoP","allPlacements","allowedPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","fittingPlacement","requiresIfExists","within","mathMax","mathMin","getLayoutRect","preventOverflow","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","getAltAxis","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","maxLen","arrowElement","arrow","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","modifiers_arrow","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerOffset","effect","_ref2","_options$element","requires","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","getNodeScroll","getHTMLElementScroll","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","orderedModifiers","effectCleanupFns","isDestroyed","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","orderModifiers","mergeByName","merged","runModifierEffects","_ref3","_ref3$options","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","unsetSides","mapToStyles","_Object$assign2","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","roundOffsetsByDPR","createPopper","_options$scroll","_options$resize","computeStyles","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","applyStyles","attribute","_options$offset","distanceAndSkiddingToXY","invertDistance","skidding","_data$state$placement","_c3","_c31","isDefined","reflow","transitionTimerDelayMs","noopFn","runningTransitions","ngbRunTransition","startFn","runningTransition","transition$","endFn","transitionProperty","runInZone","finishTransition$","stop$","endWith","transitionDurationMs","getTransitionDurationMs","transitionDelay","transitionDuration","transitionEnd$","timer$","NgbConfig","NgbAccordionModule","NgbAlertModule","NgbCarouselModule","NgbCollapseModule","Tab","Enter","Escape","Space","PageUp","PageDown","Home","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","isContainedIn","matchesSelectorIfAny","closest","isMobile","maxTouchPoints","ngbAutoClose","closed$","insideElements","ignoreElements","insideSelector","wrapAsyncForMobile","escapes$","which","mouseDowns$","closeableClicks$","shouldClose","FOCUSABLE_ELEMENTS_SELECTOR","getFocusableBoundaryElements","placementSeparator","spacesRegExp","bootstrapPopperMatches","popperStartPrimaryPlacement","popperEndPrimaryPlacement","popperStartSecondaryPlacement","popperEndSecondaryPlacement","getPopperOptions","baseClass","placementVals","hasAuto","popperPlacements","_placement","getPopperClassPlacement","isRTL","leftClass","rightClass","bsClassRegExp","popperElement","popperPlacement","getBootstrapBaseClassPlacement","newPrimary","classnames","newSecondary","classname","ngbPositioning","popperInstance","positioningOption","popperOptions","updatePopperOptions","createPopperLite","targetElement","addPopperOffset","offset$1","NgbRTL","NgbDatepickerModule","NgbDropdownConfig","NgbNavbar","NgbDropdownItem","NgbDropdownMenu","dropdown","NgbDropdown","NgbDropdownAnchor","NgbDropdownToggle","_changeDetector","ngbNavbar","_destroyCloseHandlers$","_bodyContainer","_open","openChange","_positioning","_applyPlacementClasses","_setCloseHandlers","_applyContainer","_anchor","_menu","appendToBody","dropdownClass","_applyCustomDropdownClass","_zoneSubscription","_positionMenu","_resetContainer","onKeyDown","itemElements","_getMenuElements","itemElement","isEventFromToggle","_isEventFromToggle","_isDropup","focusableElements","_getFirstPlacement","dropdownMenuElement","bodyContainer","newClass","oldClass","dropdownElement","NgbDropdownModule","ContentRef","PopupService","_applicationRef","_contentRef","templateContext","_getContentRef","windowRef","NgbModalBackdrop","_el","NgbActiveModal","dismiss","NgbModalRef","_windowCmptRef","_backdropCmptRef","_beforeDismiss","_closed","_dismissed","_hidden","dismissEvent","_reject","dismissed","shown","_removeModalElements","_dismiss","windowTransition$","backdropTransition$","ModalDismissReasons","BACKDROP_CLICK","ESC","NgbModalWindow","_elRef","_closed$","_elWithFocus","keyboard","fullscreenClass","fullscreen","_show","_disableEventHandling","transitions$","_dialogEl","_restoreFocus","_enableEventHandling","_setFocus","defaultPrevented","_bumpBackdrop","preventClose","autoFocusable","firstFocusable","elWithFocus","elementToFocus","ScrollBar","scrollbarWidth","actualPadding","NgbModalStack","_scrollBar","_rendererFactory","_activeWindowCmptHasChanged","_ariaHiddenValues","_scrollBarRestoreFn","_backdropAttributes","_modalRefs","_windowAttributes","_windowCmpts","_activeInstances","activeWindowCmpt","stopFocusTrap$","refocusOnClick","lastFocusedElement$","tabEvent","focusedElement","lastFocusedElement","ngbFocusTrap","_revertAriaHidden","_setAriaHidden","_restoreScrollBar","scrollBarRestoreFn","_hideScrollBar","contentInjector","containerEl","contentRef","backdropCmptRef","windowCmptRef","_attachWindowComponent","ngbModalRef","beforeDismiss","_registerModalRef","_registerWindowCmpt","_applyWindowOptions","_applyBackdropOptions","activeInstances","dismissAll","hasOpenModals","windowInstance","optionName","backdropInstance","_createFromTemplateRef","_createFromString","_createFromComponent","componentNativeEl","sibling","unregisterModalRef","ngbWindowCmpt","NgbModalConfig","_ngbConfig","_animation","NgbModal","_modalStack","combinedOptions","NgbModalModule","NgbNavModule","NgbPaginationModule","Trigger","isManual","DEFAULT_ALIASES","delayOrNoop","listenToTriggers","triggers","isOpenedFn","openFn","closeFn","openDelay","closeDelay","parsedTriggers","parseTriggers","trimmedTriggers","triggerPair","manualTriggers","observeTriggers","toggleFn","unsubscribeFn","triggerDelay","input$","filteredInput$","currentlyOpen","delayedOpen$","delayedClose$","NgbPopoverConfig","disablePopover","nextId$1","NgbPopoverWindow","isTitleTemplate","NgbPopover","applicationRef","_ngbPopoverWindowId","_popupService","_isDisabled","ngbPopover","popoverTitle","_getPositionTargetElement","_unregisterListenersFn","positionTarget","NgbPopoverModule","NgbProgressbarModule","NgbRatingModule","NgbTimepickerModule","NgbToastModule","NgbTooltipConfig","disableTooltip","nextId","NgbTooltipWindow","NgbTooltip","_ngbTooltipWindowId","ngbTooltip","_ngbTooltip","NgbTooltipModule","ARIA_LIVE_DELAY_FACTORY","NgbTypeaheadModule","NgbOffcanvasModule","NGB_MODULES","NgbModule","TranslateFakeLoader","FakeMissingTranslationHandler","equals","keySet","oe","TranslateParser","TranslateDefaultParser","templateMatcher","interpolateString","interpolateFunction","TranslateCompiler","TranslateFakeCompiler","compile","compileTranslations","TranslateStore","defaultLang","langs","onTranslationChange","USE_STORE","USE_DEFAULT_LANG","DEFAULT_LANGUAGE","USE_EXTEND","currentLoader","useDefaultLang","isolate","_onTranslationChange","_onLangChange","_onDefaultLangChange","_langs","_translations","_translationRequests","_defaultLang","_currentLang","retrieveTranslations","changeDefaultLang","getDefaultLang","changeLang","loadingTranslations","updateLangs","setTranslation","shouldMerge","getLangs","getParsedResult","getStreamOnTranslationChange","reloadLang","resetLang","getBrowserLang","browserLang","browserLanguage","getBrowserCultureLang","browserCultureLang","TranslateDirective","onTranslationChangeSub","checkNodes","onLangChangeSub","onDefaultLangChangeSub","translateParams","currentParams","childNodes","lastKey","lookupKey","trimmedContent","originalContent","lastParams","onTranslation","TranslatePipe","validArgs","documentIsAccessible","escapedName","encodedURIComponent","getCookieRegExp","safeDecodeURIComponent","cookies","currentCookie","expiresOrOptions","toUTCString","expiresDate","deleteAll","_r6","newestOnTop","BasePortalHost","ToastRef","duplicatesCount","_afterClosed","_activate","_manualClose","_resetTimeout","_countDuplicate","manualClose","manualClosed","timeoutReset","countDuplicate","afterClosed","isInactive","afterActivate","onDuplicate","resetTimeout","ToastPackage","toastId","toastType","_onTap","_onAction","triggerTap","onTap","triggerAction","onAction","TOAST_CONFIG","DomPortalHost","_hostDomElement","_portalHost","_paneElements","positionClass","_createOverlayRef","getPaneElement","_createPortalHost","currentlyActive","toasts","toastrConfig","iconClasses","_preBuildNotification","applyConfig","toast","_findToast","activeToast","maxOpened","findDuplicate","resetOnDuplicate","countDuplicates","includeTitleDuplicates","onActivateTick","_buildNotification","duplicate","resetTimeoutOnDuplicate","timeOut","previousToastMessage","keepInactive","autoDismiss","sanitizedMessage","toastPackage","toastInjector","ins","onShown","DefaultGlobalConfig","extendedTimeOut","progressBar","toastClass","titleClass","messageClass","easeTime","progressAnimation","Toast","toastClasses","originalTimeout","activateToast","sub1","sub2","sub3","displayStyle","intervalId","outsideTimeout","hideTime","outsideInterval","updateProgress","tapToast","stickAround","delayedHideToast","runInsideAngular","asyncGeneratorStep"],"sourceRoot":"webpack:///","sources":["./src/app/interfaces/company-settings.model.ts","./src/app/interfaces/shared.model.ts","./src/app/interfaces/dashboard.model.ts","./src/app/interfaces/l10n.model.ts","./src/app/interfaces/regex.model.ts","./src/app/interfaces/setting.model.ts","./src/app/interfaces/survey.model.ts","./src/app/interfaces/employee.model.ts","./src/app/interfaces/language.model.ts","./src/app/interfaces/heatmap.model.ts","./src/app/interfaces/company-list.model.ts","./src/app/interfaces/manager-hotline.model.ts","./src/app/interfaces/target-periods.model.ts","./src/app/pages/pages-menu.ts","./src/app/services/auth-guard.service.ts","./src/app/services/auth-interceptor.service.ts","./src/app/services/config-store.service.ts","./src/app/services/feedback.service.ts","./src/app/services/impersonate.service.ts","./src/app/shared/components/custom-loader/custom-loader.component.html","./src/app/shared/components/custom-loader/custom-loader.component.ts","./src/app/services/loader.service.ts","./src/app/services/navigation-data-middleware.service.ts","./src/app/services/permission.service.ts","./src/app/services/raygun.service.ts","./src/app/services/shared.service.ts","./src/app/services/token.service.ts","./src/app/shared/pipes/localized-date.pipe.ts","./src/app/shared/utils/utils.ts","./src/environments/environment.prod.ts","./node_modules/@angular/animations/fesm2020/browser.mjs","./node_modules/@angular/platform-browser/fesm2020/animations.mjs","./src/app/pages/token/token.component.ts","./src/app/app-routing.module.ts","./src/app/services/analytics.service.ts","./src/app/services/menu.service.ts","./src/app/shared/components/service-disruption-modal/service-disruption-modal.component.ts","./src/app/shared/components/service-disruption-modal/service-disruption-modal.component.html","./src/app/app.component.ts","./src/app/services/global-error-handler.service.ts","./src/app/services/translation.service.ts","./node_modules/@angular/common/locales/da.mjs","./node_modules/@angular/common/locales/sv.mjs","./src/app/app.module.ts","./src/main.ts","./node_modules/@auth0/angular-jwt/fesm2015/auth0-angular-jwt.js","./node_modules/chart.js/dist/chart.esm.js","./node_modules/chart.js/dist/chunks/helpers.segment.js","./node_modules/chartjs-plugin-annotation/dist/chartjs-plugin-annotation.esm.js","./node_modules/core-js-pure/actual/array/from.js","./node_modules/core-js-pure/actual/array/is-array.js","./node_modules/core-js-pure/actual/get-iterator-method.js","./node_modules/core-js-pure/actual/instance/slice.js","./node_modules/core-js-pure/actual/symbol/index.js","./node_modules/core-js-pure/es/array/from.js","./node_modules/core-js-pure/es/array/is-array.js","./node_modules/core-js-pure/es/array/virtual/concat.js","./node_modules/core-js-pure/es/array/virtual/for-each.js","./node_modules/core-js-pure/es/array/virtual/index-of.js","./node_modules/core-js-pure/es/array/virtual/map.js","./node_modules/core-js-pure/es/array/virtual/reduce.js","./node_modules/core-js-pure/es/array/virtual/slice.js","./node_modules/core-js-pure/es/array/virtual/sort.js","./node_modules/core-js-pure/es/get-iterator-method.js","./node_modules/core-js-pure/es/instance/concat.js","./node_modules/core-js-pure/es/instance/flags.js","./node_modules/core-js-pure/es/instance/index-of.js","./node_modules/core-js-pure/es/instance/map.js","./node_modules/core-js-pure/es/instance/reduce.js","./node_modules/core-js-pure/es/instance/slice.js","./node_modules/core-js-pure/es/instance/sort.js","./node_modules/core-js-pure/es/object/create.js","./node_modules/core-js-pure/es/object/define-property.js","./node_modules/core-js-pure/es/parse-int.js","./node_modules/core-js-pure/es/regexp/flags.js","./node_modules/core-js-pure/es/symbol/index.js","./node_modules/core-js-pure/features/array/from.js","./node_modules/core-js-pure/features/array/is-array.js","./node_modules/core-js-pure/features/get-iterator-method.js","./node_modules/core-js-pure/features/instance/slice.js","./node_modules/core-js-pure/features/symbol/index.js","./node_modules/core-js-pure/full/array/from.js","./node_modules/core-js-pure/full/array/is-array.js","./node_modules/core-js-pure/full/get-iterator-method.js","./node_modules/core-js-pure/full/instance/slice.js","./node_modules/core-js-pure/full/symbol/index.js","./node_modules/core-js-pure/internals/a-callable.js","./node_modules/core-js-pure/internals/a-possible-prototype.js","./node_modules/core-js-pure/internals/add-to-unscopables.js","./node_modules/core-js-pure/internals/an-object.js","./node_modules/core-js-pure/internals/array-for-each.js","./node_modules/core-js-pure/internals/array-from.js","./node_modules/core-js-pure/internals/array-includes.js","./node_modules/core-js-pure/internals/array-iteration.js","./node_modules/core-js-pure/internals/array-method-has-species-support.js","./node_modules/core-js-pure/internals/array-method-is-strict.js","./node_modules/core-js-pure/internals/array-reduce.js","./node_modules/core-js-pure/internals/array-slice-simple.js","./node_modules/core-js-pure/internals/array-slice.js","./node_modules/core-js-pure/internals/array-sort.js","./node_modules/core-js-pure/internals/array-species-constructor.js","./node_modules/core-js-pure/internals/array-species-create.js","./node_modules/core-js-pure/internals/call-with-safe-iteration-closing.js","./node_modules/core-js-pure/internals/check-correctness-of-iteration.js","./node_modules/core-js-pure/internals/classof-raw.js","./node_modules/core-js-pure/internals/classof.js","./node_modules/core-js-pure/internals/correct-prototype-getter.js","./node_modules/core-js-pure/internals/create-iter-result-object.js","./node_modules/core-js-pure/internals/create-non-enumerable-property.js","./node_modules/core-js-pure/internals/create-property-descriptor.js","./node_modules/core-js-pure/internals/create-property.js","./node_modules/core-js-pure/internals/define-built-in.js","./node_modules/core-js-pure/internals/define-global-property.js","./node_modules/core-js-pure/internals/delete-property-or-throw.js","./node_modules/core-js-pure/internals/descriptors.js","./node_modules/core-js-pure/internals/document-all.js","./node_modules/core-js-pure/internals/document-create-element.js","./node_modules/core-js-pure/internals/does-not-exceed-safe-integer.js","./node_modules/core-js-pure/internals/dom-iterables.js","./node_modules/core-js-pure/internals/engine-ff-version.js","./node_modules/core-js-pure/internals/engine-is-ie-or-edge.js","./node_modules/core-js-pure/internals/engine-is-node.js","./node_modules/core-js-pure/internals/engine-user-agent.js","./node_modules/core-js-pure/internals/engine-v8-version.js","./node_modules/core-js-pure/internals/engine-webkit-version.js","./node_modules/core-js-pure/internals/entry-virtual.js","./node_modules/core-js-pure/internals/enum-bug-keys.js","./node_modules/core-js-pure/internals/export.js","./node_modules/core-js-pure/internals/fails.js","./node_modules/core-js-pure/internals/function-apply.js","./node_modules/core-js-pure/internals/function-bind-context.js","./node_modules/core-js-pure/internals/function-bind-native.js","./node_modules/core-js-pure/internals/function-call.js","./node_modules/core-js-pure/internals/function-name.js","./node_modules/core-js-pure/internals/function-uncurry-this-clause.js","./node_modules/core-js-pure/internals/function-uncurry-this.js","./node_modules/core-js-pure/internals/get-built-in.js","./node_modules/core-js-pure/internals/get-iterator-method.js","./node_modules/core-js-pure/internals/get-iterator.js","./node_modules/core-js-pure/internals/get-method.js","./node_modules/core-js-pure/internals/global.js","./node_modules/core-js-pure/internals/has-own-property.js","./node_modules/core-js-pure/internals/hidden-keys.js","./node_modules/core-js-pure/internals/html.js","./node_modules/core-js-pure/internals/ie8-dom-define.js","./node_modules/core-js-pure/internals/indexed-object.js","./node_modules/core-js-pure/internals/inspect-source.js","./node_modules/core-js-pure/internals/internal-state.js","./node_modules/core-js-pure/internals/is-array-iterator-method.js","./node_modules/core-js-pure/internals/is-array.js","./node_modules/core-js-pure/internals/is-callable.js","./node_modules/core-js-pure/internals/is-constructor.js","./node_modules/core-js-pure/internals/is-forced.js","./node_modules/core-js-pure/internals/is-null-or-undefined.js","./node_modules/core-js-pure/internals/is-object.js","./node_modules/core-js-pure/internals/is-pure.js","./node_modules/core-js-pure/internals/is-symbol.js","./node_modules/core-js-pure/internals/iterator-close.js","./node_modules/core-js-pure/internals/iterator-create-constructor.js","./node_modules/core-js-pure/internals/iterator-define.js","./node_modules/core-js-pure/internals/iterators-core.js","./node_modules/core-js-pure/internals/iterators.js","./node_modules/core-js-pure/internals/length-of-array-like.js","./node_modules/core-js-pure/internals/math-trunc.js","./node_modules/core-js-pure/internals/number-parse-int.js","./node_modules/core-js-pure/internals/object-create.js","./node_modules/core-js-pure/internals/object-define-properties.js","./node_modules/core-js-pure/internals/object-define-property.js","./node_modules/core-js-pure/internals/object-get-own-property-descriptor.js","./node_modules/core-js-pure/internals/object-get-own-property-names-external.js","./node_modules/core-js-pure/internals/object-get-own-property-names.js","./node_modules/core-js-pure/internals/object-get-own-property-symbols.js","./node_modules/core-js-pure/internals/object-get-prototype-of.js","./node_modules/core-js-pure/internals/object-is-prototype-of.js","./node_modules/core-js-pure/internals/object-keys-internal.js","./node_modules/core-js-pure/internals/object-keys.js","./node_modules/core-js-pure/internals/object-property-is-enumerable.js","./node_modules/core-js-pure/internals/object-set-prototype-of.js","./node_modules/core-js-pure/internals/object-to-string.js","./node_modules/core-js-pure/internals/ordinary-to-primitive.js","./node_modules/core-js-pure/internals/path.js","./node_modules/core-js-pure/internals/regexp-flags.js","./node_modules/core-js-pure/internals/regexp-get-flags.js","./node_modules/core-js-pure/internals/require-object-coercible.js","./node_modules/core-js-pure/internals/set-to-string-tag.js","./node_modules/core-js-pure/internals/shared-key.js","./node_modules/core-js-pure/internals/shared-store.js","./node_modules/core-js-pure/internals/shared.js","./node_modules/core-js-pure/internals/string-multibyte.js","./node_modules/core-js-pure/internals/string-trim.js","./node_modules/core-js-pure/internals/symbol-constructor-detection.js","./node_modules/core-js-pure/internals/symbol-define-to-primitive.js","./node_modules/core-js-pure/internals/symbol-registry-detection.js","./node_modules/core-js-pure/internals/to-absolute-index.js","./node_modules/core-js-pure/internals/to-indexed-object.js","./node_modules/core-js-pure/internals/to-integer-or-infinity.js","./node_modules/core-js-pure/internals/to-length.js","./node_modules/core-js-pure/internals/to-object.js","./node_modules/core-js-pure/internals/to-primitive.js","./node_modules/core-js-pure/internals/to-property-key.js","./node_modules/core-js-pure/internals/to-string-tag-support.js","./node_modules/core-js-pure/internals/to-string.js","./node_modules/core-js-pure/internals/try-to-string.js","./node_modules/core-js-pure/internals/uid.js","./node_modules/core-js-pure/internals/use-symbol-as-uid.js","./node_modules/core-js-pure/internals/v8-prototype-define-bug.js","./node_modules/core-js-pure/internals/weak-map-basic-detection.js","./node_modules/core-js-pure/internals/well-known-symbol-define.js","./node_modules/core-js-pure/internals/well-known-symbol-wrapped.js","./node_modules/core-js-pure/internals/well-known-symbol.js","./node_modules/core-js-pure/internals/whitespaces.js","./node_modules/core-js-pure/modules/es.array.concat.js","./node_modules/core-js-pure/modules/es.array.for-each.js","./node_modules/core-js-pure/modules/es.array.from.js","./node_modules/core-js-pure/modules/es.array.index-of.js","./node_modules/core-js-pure/modules/es.array.is-array.js","./node_modules/core-js-pure/modules/es.array.iterator.js","./node_modules/core-js-pure/modules/es.array.map.js","./node_modules/core-js-pure/modules/es.array.reduce.js","./node_modules/core-js-pure/modules/es.array.slice.js","./node_modules/core-js-pure/modules/es.array.sort.js","./node_modules/core-js-pure/modules/es.json.stringify.js","./node_modules/core-js-pure/modules/es.json.to-string-tag.js","./node_modules/core-js-pure/modules/es.object.create.js","./node_modules/core-js-pure/modules/es.object.define-property.js","./node_modules/core-js-pure/modules/es.object.get-own-property-symbols.js","./node_modules/core-js-pure/modules/es.parse-int.js","./node_modules/core-js-pure/modules/es.string.iterator.js","./node_modules/core-js-pure/modules/es.symbol.async-iterator.js","./node_modules/core-js-pure/modules/es.symbol.constructor.js","./node_modules/core-js-pure/modules/es.symbol.for.js","./node_modules/core-js-pure/modules/es.symbol.has-instance.js","./node_modules/core-js-pure/modules/es.symbol.is-concat-spreadable.js","./node_modules/core-js-pure/modules/es.symbol.iterator.js","./node_modules/core-js-pure/modules/es.symbol.js","./node_modules/core-js-pure/modules/es.symbol.key-for.js","./node_modules/core-js-pure/modules/es.symbol.match-all.js","./node_modules/core-js-pure/modules/es.symbol.match.js","./node_modules/core-js-pure/modules/es.symbol.replace.js","./node_modules/core-js-pure/modules/es.symbol.search.js","./node_modules/core-js-pure/modules/es.symbol.species.js","./node_modules/core-js-pure/modules/es.symbol.split.js","./node_modules/core-js-pure/modules/es.symbol.to-primitive.js","./node_modules/core-js-pure/modules/es.symbol.to-string-tag.js","./node_modules/core-js-pure/modules/es.symbol.unscopables.js","./node_modules/core-js-pure/modules/esnext.symbol.async-dispose.js","./node_modules/core-js-pure/modules/esnext.symbol.dispose.js","./node_modules/core-js-pure/modules/esnext.symbol.matcher.js","./node_modules/core-js-pure/modules/esnext.symbol.metadata-key.js","./node_modules/core-js-pure/modules/esnext.symbol.metadata.js","./node_modules/core-js-pure/modules/esnext.symbol.observable.js","./node_modules/core-js-pure/modules/esnext.symbol.pattern-match.js","./node_modules/core-js-pure/modules/esnext.symbol.replace-all.js","./node_modules/core-js-pure/modules/web.dom-collections.iterator.js","./node_modules/core-js-pure/stable/array/from.js","./node_modules/core-js-pure/stable/array/is-array.js","./node_modules/core-js-pure/stable/array/virtual/for-each.js","./node_modules/core-js-pure/stable/get-iterator-method.js","./node_modules/core-js-pure/stable/instance/concat.js","./node_modules/core-js-pure/stable/instance/flags.js","./node_modules/core-js-pure/stable/instance/for-each.js","./node_modules/core-js-pure/stable/instance/index-of.js","./node_modules/core-js-pure/stable/instance/map.js","./node_modules/core-js-pure/stable/instance/reduce.js","./node_modules/core-js-pure/stable/instance/slice.js","./node_modules/core-js-pure/stable/instance/sort.js","./node_modules/core-js-pure/stable/object/create.js","./node_modules/core-js-pure/stable/object/define-property.js","./node_modules/core-js-pure/stable/parse-int.js","./node_modules/core-js-pure/stable/symbol/index.js","./node_modules/lodash.clonedeep/index.js","./node_modules/moment-timezone/index.js","./node_modules/moment-timezone/moment-timezone.js","./node_modules/moment/locale/da.js","./node_modules/moment/locale/en-gb.js","./node_modules/moment/locale/sv.js","./node_modules/moment/moment.js","./node_modules/raygun4js/dist/raygun.umd.js","./node_modules/rxjs/_esm2015/internal/BehaviorSubject.js","./node_modules/rxjs/_esm2015/internal/Notification.js","./node_modules/rxjs/_esm2015/internal/Observable.js","./node_modules/rxjs/_esm2015/internal/util/toSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/canReportError.js","./node_modules/rxjs/_esm2015/internal/Observer.js","./node_modules/rxjs/_esm2015/internal/OuterSubscriber.js","./node_modules/rxjs/_esm2015/internal/scheduler/queue.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js","./node_modules/rxjs/_esm2015/internal/ReplaySubject.js","./node_modules/rxjs/_esm2015/internal/Subject.js","./node_modules/rxjs/_esm2015/internal/SubjectSubscription.js","./node_modules/rxjs/_esm2015/internal/Subscriber.js","./node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js","./node_modules/rxjs/_esm2015/internal/Subscription.js","./node_modules/rxjs/_esm2015/internal/config.js","./node_modules/rxjs/_esm2015/internal/innerSubscribe.js","./node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js","./node_modules/rxjs/_esm2015/internal/observable/combineLatest.js","./node_modules/rxjs/_esm2015/internal/observable/concat.js","./node_modules/rxjs/_esm2015/internal/operators/concatAll.js","./node_modules/rxjs/_esm2015/internal/observable/defer.js","./node_modules/rxjs/_esm2015/internal/observable/empty.js","./node_modules/rxjs/_esm2015/internal/observable/forkJoin.js","./node_modules/rxjs/_esm2015/internal/observable/from.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js","./node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js","./node_modules/rxjs/_esm2015/internal/util/isIterable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/_esm2015/internal/observable/fromArray.js","./node_modules/rxjs/_esm2015/internal/observable/fromEvent.js","./node_modules/rxjs/_esm2015/internal/observable/interval.js","./node_modules/rxjs/_esm2015/internal/observable/merge.js","./node_modules/rxjs/_esm2015/internal/observable/of.js","./node_modules/rxjs/_esm2015/internal/observable/throwError.js","./node_modules/rxjs/_esm2015/internal/observable/timer.js","./node_modules/rxjs/_esm2015/internal/operators/audit.js","./node_modules/rxjs/_esm2015/internal/operators/auditTime.js","./node_modules/rxjs/_esm2015/internal/operators/catchError.js","./node_modules/rxjs/_esm2015/internal/operators/concatMap.js","./node_modules/rxjs/_esm2015/internal/operators/debounceTime.js","./node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/_esm2015/internal/operators/delay.js","./node_modules/rxjs/_esm2015/internal/util/isDate.js","./node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/_esm2015/internal/operators/filter.js","./node_modules/rxjs/_esm2015/internal/operators/finalize.js","./node_modules/rxjs/_esm2015/internal/operators/first.js","./node_modules/rxjs/_esm2015/internal/operators/map.js","./node_modules/rxjs/_esm2015/internal/operators/mapTo.js","./node_modules/rxjs/_esm2015/internal/operators/mergeAll.js","./node_modules/rxjs/_esm2015/internal/operators/mergeMap.js","./node_modules/rxjs/_esm2015/internal/operators/multicast.js","./node_modules/rxjs/_esm2015/internal/operators/observeOn.js","./node_modules/rxjs/_esm2015/internal/operators/pairwise.js","./node_modules/rxjs/_esm2015/internal/operators/refCount.js","./node_modules/rxjs/_esm2015/internal/operators/share.js","./node_modules/rxjs/_esm2015/internal/operators/shareReplay.js","./node_modules/rxjs/_esm2015/internal/operators/skip.js","./node_modules/rxjs/_esm2015/internal/operators/startWith.js","./node_modules/rxjs/_esm2015/internal/operators/switchMap.js","./node_modules/rxjs/_esm2015/internal/operators/take.js","./node_modules/rxjs/_esm2015/internal/operators/takeUntil.js","./node_modules/rxjs/_esm2015/internal/operators/takeWhile.js","./node_modules/rxjs/_esm2015/internal/operators/tap.js","./node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js","./node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js","./node_modules/rxjs/_esm2015/internal/scheduler/Action.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js","./node_modules/rxjs/_esm2015/internal/Scheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js","./node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js","./node_modules/rxjs/_esm2015/internal/util/Immediate.js","./node_modules/rxjs/_esm2015/internal/scheduler/asap.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js","./node_modules/rxjs/_esm2015/internal/scheduler/async.js","./node_modules/rxjs/_esm2015/internal/symbol/iterator.js","./node_modules/rxjs/_esm2015/internal/symbol/observable.js","./node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js","./node_modules/rxjs/_esm2015/internal/util/EmptyError.js","./node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/_esm2015/internal/util/hostReportError.js","./node_modules/rxjs/_esm2015/internal/util/identity.js","./node_modules/rxjs/_esm2015/internal/util/isArray.js","./node_modules/rxjs/_esm2015/internal/util/isArrayLike.js","./node_modules/rxjs/_esm2015/internal/util/isFunction.js","./node_modules/rxjs/_esm2015/internal/util/isNumeric.js","./node_modules/rxjs/_esm2015/internal/util/isObject.js","./node_modules/rxjs/_esm2015/internal/util/isObservable.js","./node_modules/rxjs/_esm2015/internal/util/isPromise.js","./node_modules/rxjs/_esm2015/internal/util/isScheduler.js","./node_modules/rxjs/_esm2015/internal/util/noop.js","./node_modules/rxjs/_esm2015/internal/util/pipe.js","./node_modules/rxjs/_esm2015/internal/util/subscribeTo.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js","./node_modules/rxjs/_esm2015/internal/InnerSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js","./node_modules/xregexp/lib/addons/build.js","./node_modules/xregexp/lib/addons/matchrecursive.js","./node_modules/xregexp/lib/addons/unicode-base.js","./node_modules/xregexp/lib/addons/unicode-categories.js","./node_modules/xregexp/lib/addons/unicode-properties.js","./node_modules/xregexp/lib/addons/unicode-scripts.js","./node_modules/xregexp/lib/index.js","./node_modules/xregexp/lib/xregexp.js","./node_modules/xregexp/tools/output/categories.js","./node_modules/xregexp/tools/output/properties.js","./node_modules/xregexp/tools/output/scripts.js","./node_modules/moment/locale/ sync [/\\\\](da(\\.js)","./node_modules/@babel/runtime-corejs3/core-js-stable/array/from.js","./node_modules/@babel/runtime-corejs3/core-js-stable/array/is-array.js","./node_modules/@babel/runtime-corejs3/core-js-stable/instance/concat.js","./node_modules/@babel/runtime-corejs3/core-js-stable/instance/flags.js","./node_modules/@babel/runtime-corejs3/core-js-stable/instance/for-each.js","./node_modules/@babel/runtime-corejs3/core-js-stable/instance/index-of.js","./node_modules/@babel/runtime-corejs3/core-js-stable/instance/map.js","./node_modules/@babel/runtime-corejs3/core-js-stable/instance/reduce.js","./node_modules/@babel/runtime-corejs3/core-js-stable/instance/slice.js","./node_modules/@babel/runtime-corejs3/core-js-stable/instance/sort.js","./node_modules/@babel/runtime-corejs3/core-js-stable/object/create.js","./node_modules/@babel/runtime-corejs3/core-js-stable/object/define-property.js","./node_modules/@babel/runtime-corejs3/core-js-stable/parse-int.js","./node_modules/@babel/runtime-corejs3/core-js-stable/symbol.js","./node_modules/@babel/runtime-corejs3/core-js/array/from.js","./node_modules/@babel/runtime-corejs3/core-js/array/is-array.js","./node_modules/@babel/runtime-corejs3/core-js/get-iterator-method.js","./node_modules/@babel/runtime-corejs3/core-js/instance/slice.js","./node_modules/@babel/runtime-corejs3/core-js/symbol.js","./node_modules/@babel/runtime-corejs3/helpers/arrayLikeToArray.js","./node_modules/@babel/runtime-corejs3/helpers/arrayWithHoles.js","./node_modules/@babel/runtime-corejs3/helpers/interopRequireDefault.js","./node_modules/@babel/runtime-corejs3/helpers/iterableToArrayLimit.js","./node_modules/@babel/runtime-corejs3/helpers/nonIterableRest.js","./node_modules/@babel/runtime-corejs3/helpers/slicedToArray.js","./node_modules/@babel/runtime-corejs3/helpers/unsupportedIterableToArray.js","./node_modules/@angular/animations/fesm2020/animations.mjs","./node_modules/@angular/cdk/fesm2020/layout.mjs","./node_modules/@angular/cdk/fesm2020/a11y.mjs","./node_modules/@angular/cdk/fesm2020/bidi.mjs","./node_modules/@angular/cdk/fesm2020/coercion.mjs","./node_modules/@angular/cdk/fesm2020/collections.mjs","./node_modules/@angular/cdk/fesm2020/keycodes.mjs","./node_modules/@angular/cdk/fesm2020/platform.mjs","./node_modules/@angular/cdk/fesm2020/portal.mjs","./node_modules/@angular/cdk/fesm2020/scrolling.mjs","./node_modules/@angular/common/fesm2020/common.mjs","./node_modules/@angular/common/fesm2020/http.mjs","./node_modules/@angular/core/fesm2020/core.mjs","./node_modules/@angular/forms/fesm2020/forms.mjs","./node_modules/@angular/platform-browser/fesm2020/platform-browser.mjs","./node_modules/rxjs/_esm2015/internal/operators/scan.js","./node_modules/rxjs/_esm2015/internal/operators/takeLast.js","./node_modules/rxjs/_esm2015/internal/operators/last.js","./node_modules/@angular/router/fesm2020/router.mjs","./node_modules/rxjs/_esm2015/internal/operators/repeat.js","./node_modules/rxjs/_esm2015/internal/operators/publish.js","./node_modules/@angular/cdk/fesm2020/overlay.mjs","./node_modules/@nebular/theme/fesm2020/nebular-theme.mjs","./node_modules/rxjs/_esm2015/internal/observable/race.js","./node_modules/rxjs/_esm2015/internal/observable/never.js","./node_modules/rxjs/_esm2015/internal/observable/zip.js","./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","./node_modules/@popperjs/core/lib/enums.js","./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","./node_modules/@popperjs/core/lib/utils/math.js","./node_modules/@popperjs/core/lib/utils/userAgent.js","./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","./node_modules/@popperjs/core/lib/dom-utils/contains.js","./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","./node_modules/@popperjs/core/lib/utils/getVariation.js","./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","./node_modules/@popperjs/core/lib/utils/computeOffsets.js","./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","./node_modules/@popperjs/core/lib/utils/detectOverflow.js","./node_modules/@popperjs/core/lib/modifiers/flip.js","./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","./node_modules/@popperjs/core/lib/utils/within.js","./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","./node_modules/@popperjs/core/lib/utils/getAltAxis.js","./node_modules/@popperjs/core/lib/modifiers/arrow.js","./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","./node_modules/@popperjs/core/lib/utils/orderModifiers.js","./node_modules/@popperjs/core/lib/utils/debounce.js","./node_modules/@popperjs/core/lib/createPopper.js","./node_modules/@popperjs/core/lib/utils/mergeByName.js","./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","./node_modules/@popperjs/core/lib/popper-lite.js","./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","./node_modules/@popperjs/core/lib/modifiers/offset.js","./node_modules/@ng-bootstrap/ng-bootstrap/fesm2020/ng-bootstrap.mjs","./node_modules/rxjs/_esm2015/internal/operators/endWith.js","./node_modules/@ngx-translate/core/fesm2020/ngx-translate-core.mjs","./node_modules/ngx-cookie-service/fesm2020/ngx-cookie-service.mjs","./node_modules/ngx-toastr/fesm2020/ngx-toastr.mjs","./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"],"sourcesContent":["import { Moment } from 'moment';\r\nimport { Language } from './language.model';\r\n\r\nexport interface IncidentPrediction {\r\n DepartmentName: string;\r\n IncidentDate: Date;\r\n IncidentDetails: any;\r\n ManagerName: string;\r\n DepartmentMonthMetricModel: DepartmentMetrics[];\r\n}\r\n\r\nexport interface DepartmentMetrics {\r\n MonthStart: Date;\r\n Colour: string;\r\n}\r\n\r\nexport interface CompanySettingsLanguage {\r\n Id: number;\r\n EnglishName: string;\r\n Enabled: boolean;\r\n InUseByNo: number;\r\n}\r\n\r\nexport abstract class SurveySetting {\r\n Id: number;\r\n Name: string;\r\n Enabled: boolean;\r\n StartDate?: string | Moment;\r\n EndDate?: string | Moment;\r\n Frequency?: number;\r\n SurveySelectionRule?: string;\r\n EnabledLangs?: Language[];\r\n\r\n static parseSpecialSurveySelectionRule = (survey: SurveySetting) => {\r\n const surveySelectionRule = JSON.parse(survey.SurveySelectionRule || null);\r\n\r\n survey.EnabledLangs = surveySelectionRule &&\r\n surveySelectionRule['EnabledLanguages'] &&\r\n JSON.parse(surveySelectionRule['EnabledLanguages']) ||\r\n [];\r\n };\r\n\r\n static stringifySpecialSurveySelectionRule = (survey: SurveySetting) => {\r\n const selectionRule = { EnabledLanguages: JSON.stringify(survey.EnabledLangs) };\r\n survey.SurveySelectionRule = JSON.stringify(selectionRule);\r\n };\r\n}\r\n\r\nexport abstract class CompanySettingsDimension {\r\n Code: string;\r\n Enabled?: boolean;\r\n Required?: boolean;\r\n Labels: { [key: number]: string };\r\n isNew?: boolean;\r\n isDone?: boolean;\r\n isValid?: boolean;\r\n static getBlank = () => ({\r\n Code: '',\r\n Labels: {},\r\n isNew: true\r\n } as CompanySettingsDimension);\r\n}\r\n\r\nexport interface CompanyDimensionsLabelsStructure {\r\n [key: string]: {\r\n [languageId: number]: string;\r\n };\r\n};\r\n","import { Observable } from 'rxjs';\r\nimport * as moment from 'moment';\r\nimport { Employee, Manager } from '.';\r\n\r\nexport interface UserPreferences {\r\n activeCompanyId: number;\r\n activeResponseCenterId: number;\r\n activeEntityName: string;\r\n selectedLanguageId: string;\r\n}\r\n\r\nexport interface UserProfile {\r\n ResponseCenters: ResponseCenter[];\r\n Companies: Company[];\r\n Me: IMe;\r\n}\r\n\r\nexport interface CompanyCreationLanguages {\r\n Id: number;\r\n EnglishName: string;\r\n Code: string;\r\n}\r\n\r\nexport interface CompanyCreationWizardData {\r\n Partners: Partner[];\r\n Languages: CompanyCreationLanguages[];\r\n DefaultResponseCenter: ResponseCenter[];\r\n BodyResponseCenter: ResponseCenter[];\r\n SpecialSurveyDefinition: SpecialSurveyDefinition[];\r\n}\r\n\r\nexport interface SpecialSurveyDefinition {\r\n Id: number;\r\n Name: string;\r\n}\r\n\r\nexport interface ResponseCenter {\r\n Id: number;\r\n Name: string;\r\n Mailbox: string;\r\n Hotline: string;\r\n NotifyViaEmail: boolean;\r\n NotifyViaSMS: boolean;\r\n type?: 'rc';\r\n}\r\n\r\nexport interface ResponseCenterAgent {\r\n Id: number;\r\n Name: string;\r\n Count: number;\r\n}\r\n\r\nexport interface EmailActivity {\r\n Value: number;\r\n Name: string;\r\n PersonRelated: boolean;\r\n UserRelated: boolean;\r\n}\r\n\r\nexport interface IMe {\r\n Id: number;\r\n Locale: string;\r\n IanaTimeZone: string;\r\n TimeZone: string;\r\n Firstname: string;\r\n Lastname: string;\r\n Email: string;\r\n IsSystemAdministrator: boolean;\r\n Mobile: string;\r\n Raygun: string;\r\n Roles: Role[];\r\n UserType: UserTypeEnum;\r\n Locked?: boolean;\r\n MonthlyReport?: boolean;\r\n IsHowdyEmployee?: boolean;\r\n IsOwner?: boolean;\r\n}\r\n\r\nexport interface Role {\r\n Id?: number;\r\n CompanyId: number;\r\n Features: any;\r\n ResponseCenterId: number;\r\n RoleType: number;\r\n Role: string;\r\n CompanyName: string;\r\n DepartmentId: number;\r\n DepartmentName: string;\r\n Type?: DepartmentTypeEnum;\r\n PrimaryContact?: boolean;\r\n ResponseCenterName?: string;\r\n}\r\n\r\nexport enum UserTypeEnum {\r\n PortalUser = 'PortalUser',\r\n ApiUser = 'ApiUser'\r\n}\r\n\r\nexport enum UserRoleEnum {\r\n SystemAdministrator = 1,\r\n HowdyEmployee = 2,\r\n PartnerAdministrator = 10,\r\n CompanyAdministrator = 20,\r\n DepartmentManager = 21,\r\n CompanyAdministratorReadOnly = 22,\r\n DepartmentManagerReadOnly = 23,\r\n ResponseCenterAdministrator = 50,\r\n ResponseCenterSupporter = 51,\r\n HRIntegration = 29,\r\n Observer = 30,\r\n NoActiveRole = -1\r\n}\r\n\r\nexport interface CompanySettings {\r\n AllowExternalIntegration: boolean;\r\n AutoInviteNewEmployees: boolean;\r\n NotifyManagers: boolean;\r\n MaxDiffInEmployeeBatchUploads: number;\r\n ShowDepartmentRole: boolean;\r\n DepartmentDimension: string;\r\n TestAccess: boolean;\r\n CasesMinimumSize: number;\r\n ShowReportsModule: boolean;\r\n ShowServiceDisruption: boolean;\r\n FeedbackModuleEnabled: boolean;\r\n ManagerCoachingModuleEnabled: boolean;\r\n BodyModuleEnabled: boolean;\r\n DisablePIIForManagers: boolean;\r\n}\r\nexport interface Owner {\r\n AddOwner: boolean;\r\n FirstName: string;\r\n LastName: string;\r\n Email: string;\r\n Phone: string;\r\n};\r\n\r\nexport interface Partner {\r\n Id: number;\r\n Name: string;\r\n}\r\n\r\nexport interface Product {\r\n Name: string;\r\n Code: string;\r\n}\r\n\r\nexport interface CountryLanguage {\r\n Id: number;\r\n Name: string;\r\n Code: string;\r\n}\r\n\r\nexport interface IndustryCode {\r\n Id: number;\r\n Name: string;\r\n Codes: string[] | string;\r\n}\r\n\r\nexport interface Sales {\r\n Name: string;\r\n}\r\n\r\nexport interface ResponseCenter {\r\n Id: number;\r\n Name: string;\r\n}\r\nexport interface CompanyProductData {\r\n Products: string[];\r\n Partner: Partner;\r\n ResponseWellbeing: ResponseCenter;\r\n ResponseBody: ResponseCenter;\r\n NumberOfUsers: number;\r\n InfoResponseTeam: string;\r\n IsValid: boolean;\r\n}\r\n\r\nexport interface Company {\r\n Address1?: string;\r\n Address2?: string;\r\n AllowIndependantContactWithHealthOffer?: boolean;\r\n AnonHealthOfferFromEmployer?: boolean;\r\n City?: string;\r\n Owner?: string | Owner;\r\n Country?: string;\r\n DefaultLanguageEnglishName?: string;\r\n DefaultLanguageName?: string;\r\n DefaultLanguageId?: number;\r\n DefaultResponseCenterId?: number;\r\n DefaultResponseCenterName?: string;\r\n BodyResponseCenterId?: number;\r\n BodyResponseCenterName?: string;\r\n Id?: number;\r\n MainIndustryCode?: number;\r\n IndustryCodeId?: number;\r\n IndustryCodeName?: string;\r\n Name?: string;\r\n PartnerId?: number;\r\n PartnerName?: string;\r\n StartDate?: moment.Moment | Date;\r\n ZipCode?: string;\r\n SalesTerritory?: string;\r\n ManagingDepartments?: CompanyDepartment[];\r\n AccountStatus?: number;\r\n type?: 'company';\r\n DepartmentDimensions?: DepartmentDimensions;\r\n Settings?: CompanySettings;\r\n Products?: string[];\r\n LicensesPurchased?: number;\r\n ResponseCenterBriefingUrl?: string;\r\n}\r\n\r\nexport enum DepartmentTypeEnum {\r\n Department = 0,\r\n Division = 1,\r\n Project = 2\r\n}\r\n\r\nexport type DepartmentDimensions = {\r\n [key in DepartmentTypeEnum]: string;\r\n};\r\n\r\nexport interface CompanyDepartment {\r\n Id: number;\r\n CreatedOn?: moment.Moment | Date;\r\n CompanyId?: number;\r\n Division?: string;\r\n DivisionId?: number;\r\n Key?: string;\r\n ManagerName?: string;\r\n ManagerId?: number;\r\n Name: string;\r\n Size?: number;\r\n Type?: DepartmentTypeEnum;\r\n ParticipationThisMonth?: number;\r\n ParticipationCurrentMonth?: number;\r\n ParticipationLastMonth?: number;\r\n HasData?: boolean;\r\n HasUsers?: boolean;\r\n HasManagerCase?: boolean;\r\n HowdyScore?: number;\r\n HowdyScoreCurrentMonth?: number;\r\n HowdyScoreLastMonth?: number;\r\n IndexCurrentMonth?: number;\r\n IndexLastMonth?: number;\r\n StateActive?: number;\r\n StateActiveCurrentMonth?: number;\r\n StateActiveLastMonth?: number;\r\n StateInvited?: number;\r\n StateInvitedCurrentMonth?: number;\r\n StateInvitedLastMonth?: number;\r\n Users?: number;\r\n Managers?: Manager[];\r\n}\r\n\r\nexport interface CompanyDimensions {\r\n [key: string]: CompanyDimension;\r\n}\r\n\r\nexport interface CompanyDimensionsValues {\r\n [key: string]: {\r\n value: string;\r\n count: number;\r\n }[];\r\n}\r\n\r\nexport interface CompanyDimension {\r\n Code: string;\r\n Label: string;\r\n AutocompleteSuggestions: DimensionSuggestion[];\r\n Required: boolean;\r\n}\r\n\r\nexport interface DimensionSuggestion {\r\n Suggestion: string;\r\n Usage: number;\r\n}\r\n\r\nexport interface IConfigStore {\r\n GlobalAuthSignIn: string;\r\n GlobalAuthSignOut: string;\r\n GlobalAuthPasswordReset: string;\r\n}\r\n\r\nexport interface UserPermissions {\r\n hasOnlyDepartmentManagerRights: boolean;\r\n hasCompanyHRIntegrationRights: boolean;\r\n hasCompanyAdminRights: boolean;\r\n hasUserAdminRights: boolean;\r\n hasSystemAdminRights: boolean;\r\n hasReadOnlyRights: boolean;\r\n hasOnlyObserverRights: boolean;\r\n hasHowdyEmployeeRights: boolean;\r\n hasResponseCenterAdminRights: boolean;\r\n hasCompanyAdminReadonlyRights: boolean;\r\n}\r\n\r\nexport interface AssignUserRole {\r\n userId: number;\r\n companyId: number;\r\n role: UserRoleEnum;\r\n departmentKey: string;\r\n departmentType: DepartmentTypeEnum;\r\n responseCenterId?: number;\r\n primaryContact?: boolean;\r\n}\r\n\r\nexport interface CanComponentDeactivate {\r\n canDeactivate: () => Observable | Promise | boolean;\r\n}\r\n\r\nexport interface ActivityFlowStepDefinition {\r\n Id: number;\r\n Name: string;\r\n}\r\n\r\nexport interface EmailTestReportModel {\r\n ActivityType: number;\r\n EmployeeId?: number;\r\n ManagerId?: number;\r\n CompanyId?: number;\r\n FlowDefinitionId?: number;\r\n IsTestTemplate: boolean;\r\n Content?: {\r\n AuthorId?: number;\r\n Text: string;\r\n RecipientIds: number[];\r\n };\r\n}\r\n\r\nexport interface ParticipationStatsValues {\r\n TotalNumberOfEmployees?: number;\r\n ActiveEmployees?: number;\r\n InvitedEmployees?: number;\r\n AnsweredEmployees?: number;\r\n NotAnsweredEmployees?: number;\r\n ActiveUsers?: number;\r\n AllUsers?: number;\r\n InactiveUsers?: number;\r\n LoggedInWithin30Days?: number;\r\n NotLoggedInWithin30Days?: number;\r\n}\r\n\r\nexport interface ParticipationStats {\r\n Label: string;\r\n Value: number;\r\n}\r\n\r\nexport const OPEN_VIEW_PARAM = 'openView';\r\nexport enum OpenViewEnum {\r\n Notifications = 'notifications'\r\n}\r\n\r\nexport interface Comment {\r\n Sender: Employee;\r\n Recipients: number[];\r\n Message: string;\r\n}\r\n","import { Moment } from 'moment';\r\nimport { round } from '../shared/utils/utils';\r\nimport { Company, DepartmentTypeEnum } from './shared.model';\r\nimport { CompanyDimensionsLabelsStructure, Manager, SupportedLanguages } from '.';\r\nimport { LanguageEnum } from '@howdy/models';\r\n\r\nexport abstract class Metric {\r\n Answer1AverageScore: number;\r\n Answer2AverageScore: number;\r\n Answer3AverageScore: number;\r\n Answer4AverageScore: number;\r\n Answer5AverageScore: number;\r\n AvgScorePerAnswer: number;\r\n DepartmentId: number;\r\n Department: string;\r\n Division: string;\r\n Project: string;\r\n CompanyId?: number;\r\n BarometerDegree: number;\r\n NoOfEmployees: number;\r\n MonthStart: Moment;\r\n CategoryDarkGreen: number;\r\n CategoryMediumGreen: number;\r\n CategoryLightGreen: number;\r\n CategoryYellow: number;\r\n CategoryRed: number;\r\n CategoryNoAnswer: number;\r\n CategoryDarkGreenAverageScore: number;\r\n CategoryMediumGreenAverageScore: number;\r\n CategoryLightGreenAverageScore: number;\r\n CategoryYellowAverageScore: number;\r\n CategoryRedAverageScore: number;\r\n HowdyScore: number;\r\n StateActive: number;\r\n StateInvited: number;\r\n StateOptout: number;\r\n Participation: number;\r\n ParticipationLast3Months: number;\r\n ParticipationLastYear: number;\r\n ActiveLastYear: number;\r\n ActiveLast3Months: number;\r\n OpenCases: number;\r\n ClosedCases: number;\r\n CasesWithContact: number;\r\n EmployeesWithClosedCaseLastYear: number;\r\n EmployeesWithContactLastYear: number;\r\n BodyOpenCases: number;\r\n BodyClosedCases: number;\r\n BodyCasesWithContact: number;\r\n TeamOpenCases: number;\r\n TeamClosedCases: number;\r\n TeamCasesWithContact: number;\r\n ManagersWithClosedCaseLastYear: number;\r\n ManagersWithContactLastYear: number;\r\n ManagersWithClosedCaseThisYear: number;\r\n ManagersWithContactThisYear: number;\r\n EmployeesWithClosedCaseLastYearBody: number;\r\n EmployeesWithContactLastYearBody: number;\r\n EmployeesWithClosedCaseThisYearBody: number;\r\n EmployeesWithContactThisYearBody: number;\r\n EmployeesWithClosedCaseThisYearWellbeing: number;\r\n EmployeesWithContactThisYearWellbeing: number;\r\n EmployeesWithClosedCaseLastYearWellbeing: number;\r\n EmployeesWithContactLastYearWellbeing: number;\r\n ForecastYearAllWellbeing?: number;\r\n ForecastYearAllBody?: number;\r\n ForecaseQuarterAllWellbeing?: number;\r\n ForecaseQuarterAllBody?: number;\r\n Months: number;\r\n static getParticipationPercentage = (metric: Metric) => {\r\n return metric.StateActive ? metric.Participation / metric.StateActive : 0;\r\n };\r\n}\r\n\r\nexport interface DepartmentCounts {\r\n MonthStart: Moment;\r\n DepartmentCount: number;\r\n}\r\n\r\nexport interface DepartmentDropdownByType {\r\n [type: string]: DepartmentDropdownData[];\r\n}\r\n\r\nexport interface DepartmentDropdownData {\r\n Id: number;\r\n Name: string;\r\n DepartmentId?: number;\r\n Type?: DepartmentTypeEnum;\r\n SortingScore?: number;\r\n HasData?: boolean;\r\n HasUsers?: boolean;\r\n IsDisabled?: boolean;\r\n TooltipText?: string;\r\n Managers?: Manager[];\r\n Color?: IndexMovementColors;\r\n}\r\n\r\nexport interface InterventionData {\r\n Period: string;\r\n AverageConversationEval: number;\r\n IsBody: boolean;\r\n Count: number;\r\n}\r\n\r\nexport interface SelectedDepartmentDropdownDataIds {\r\n [departmentId: number]: boolean;\r\n}\r\n\r\nexport interface CaseDetails {\r\n NumberOfContactCompanyLevel: { [key: number]: number };\r\n NumberOfContactBenchmark: number[];\r\n NumberOfCasesCompanyLevel: { [key: number]: number };\r\n NumberOfCasesBenchmark: number[];\r\n NumberOfRegisteredCompany: number[];\r\n NumberOfOpenCasesCompany: { [key: number]: number };\r\n NumberOfEmployeesWithCaseCompany: number;\r\n NumberOfEmployeesWithContactCompany: number;\r\n Months: string[];\r\n}\r\n\r\nexport interface DashboardData {\r\n metrics: Metric[];\r\n departmentCounts: DepartmentCounts[];\r\n industryBenchmark: WellbeingBenchmark[];\r\n countryBenchmark: WellbeingBenchmark[];\r\n casesBenchmark: CasesBenchmark[];\r\n wellbeingIntervals: WellbeingIntervals;\r\n wellbeingIndexIntervals: WellbeingIndexInterval[];\r\n}\r\n\r\nexport interface WellbeingBenchmark {\r\n MonthStart: Moment;\r\n CategoryDarkGreen: number;\r\n CategoryMediumGreen: number;\r\n CategoryLightGreen: number;\r\n CategoryYellow: number;\r\n CategoryRed: number;\r\n Answer1: number;\r\n Answer2: number;\r\n Answer3: number;\r\n Answer4: number;\r\n Answer5: number;\r\n HowdyScore: number;\r\n Index: number;\r\n Months: number;\r\n}\r\n\r\nexport interface CasesBenchmark {\r\n MonthStart: Moment;\r\n ClosedCases: number;\r\n BodyClosedCases: number;\r\n TeamClosedCases: number;\r\n AllClosedCases: number;\r\n EmployeesWithClosedCaseThisYearWellbeing: number;\r\n EmployeesWithClosedCaseThisYearBody: number;\r\n ManagersWithClosedCaseThisYear: number;\r\n Months: number;\r\n}\r\n\r\nexport interface DepartmentCaseTab {\r\n title: string;\r\n data: DepartmentCaseGroup[];\r\n isEmpty: boolean;\r\n emptyTitle: string;\r\n}\r\n\r\n\r\nexport interface TabContent {\r\n states: DepartmentCaseState[];\r\n label: string;\r\n tab: DepartmentCaseTab;\r\n}\r\n\r\nexport enum DepartmentCaseState {\r\n MissingPrimaryContact = 1,\r\n MissingManager = 2,\r\n NoBookingMade = 3,\r\n NoBookingMadeManager = 4,\r\n InvitedForCoaching = 5,\r\n CallScheduled = 6,\r\n CallCompleted = 7,\r\n CaseClosed = 8,\r\n OpenReminderSent = 9\r\n}\r\n\r\nexport interface DepartmentCaseGroup {\r\n GroupId: number;\r\n IsOpen: boolean;\r\n Name: string;\r\n Cases: DepartmentCase[];\r\n}\r\n\r\nexport interface DepartmentCaseManager {\r\n Name: string;\r\n IsPrimaryContact: boolean;\r\n}\r\n\r\nexport interface DepartmentCase {\r\n Id: number;\r\n CaseId: number;\r\n GroupId: number;\r\n CompanyId?: number;\r\n CompanyName?: string;\r\n State: DepartmentCaseState;\r\n DepartmentId: number;\r\n DepartmentName: string;\r\n Manager: DepartmentCaseManager | DepartmentCaseManager[];\r\n Date: Moment;\r\n Month: Moment;\r\n DateLabel: string;\r\n DateTooltip: string;\r\n HowdyScore: number;\r\n Index: number;\r\n ButtonText?: string;\r\n WellbeingIntervals?: WellbeingIntervals;\r\n}\r\n\r\nexport interface BarItem {\r\n backgroundColor: string;\r\n value: number;\r\n}\r\nexport interface DepartmentOperationsActions {\r\n Label: string;\r\n Icon: string;\r\n Enabled: boolean;\r\n Show?: boolean;\r\n Action: () => void;\r\n}\r\n\r\nexport interface EmployeeDistribution {\r\n red: EmployeeDistributionCategory;\r\n yellow: EmployeeDistributionCategory;\r\n lightGreen: EmployeeDistributionCategory;\r\n green: EmployeeDistributionCategory;\r\n darkGreen: EmployeeDistributionCategory;\r\n}\r\n\r\nexport interface EmployeeDistributionCategory {\r\n icon: string;\r\n color: string;\r\n value: number;\r\n}\r\n\r\nexport interface ActionBoardData {\r\n LoginStreak: LoginStreak;\r\n UserActions: UserAction[];\r\n Reminder: Reminder;\r\n}\r\n\r\nexport interface LoginStreak {\r\n IsFirstLogin: boolean;\r\n MonthStreak: number;\r\n LastFiveMonths: MonthlyLoginStatus[];\r\n}\r\n\r\nexport interface MonthlyLoginStatus {\r\n Month: Moment;\r\n LoggedIn: boolean;\r\n}\r\n\r\nexport interface UserAction {\r\n Action: EffortType;\r\n State: EffortState;\r\n Date?: Moment;\r\n Link?: string;\r\n HaveNotAnsweredCount?: number;\r\n TotalEmployeeCount?: number;\r\n MessageCount?: number;\r\n Agent?: string;\r\n}\r\n\r\nexport interface Reminder {\r\n AssignedPsychologist: string;\r\n Link: string;\r\n Date: Moment;\r\n}\r\n\r\nexport interface Effort {\r\n Id: number;\r\n Title: string;\r\n Description: string;\r\n Action: string;\r\n EffortType: EffortType;\r\n Link?: string;\r\n ButtonText?: string;\r\n NumberOfMessages?: number;\r\n HaveNotAnsweredCount?: number;\r\n TotalEmployeeCount?: number;\r\n State?: EffortState;\r\n CompanyName?: string;\r\n Agent?: string;\r\n Date: Moment;\r\n}\r\n\r\nexport interface ForecastTooltip {\r\n currentValue: number;\r\n currentPeriod: string;\r\n period: string;\r\n forecastValue: number;\r\n}\r\n\r\nexport enum EffortState {\r\n Todo = 0,\r\n Completed = 1,\r\n Skipped = 2\r\n}\r\n\r\nexport enum EffortType {\r\n WellbeingOnAgenda = 1,\r\n ConversationWithEmployees = 2,\r\n SharedLatestData = 3,\r\n ImportanceOfParticipation = 4,\r\n Heatmap = 5,\r\n NewMessages = 6,\r\n CoachingSessionInvited = 7, // invited for coaching season, but not scheduled\r\n CoachingSessionCanCreate = 8, // can create coaching session for this user\r\n CoachingSessionScheduled = 10, // coaching session scheduled\r\n}\r\n\r\nexport enum IndexMovementColors {\r\n Red = '#E3645F',\r\n Yellow = '#FFD545',\r\n Green = '#81D4BD',\r\n Purple = '#B099CC',\r\n Blue = '#00ABE4'\r\n}\r\n\r\nexport enum DepartmentOperationsActionsEnum {\r\n CreateCase = 1,\r\n AddManager = 2,\r\n AddPrimaryContact = 3\r\n}\r\n\r\nexport enum WellbeingIndexCategories {\r\n Low = 0,\r\n Normal = 1,\r\n High = 2\r\n}\r\n\r\nexport enum WellbeingCategories {\r\n DarkGreen = 0,\r\n MediumGreen = 1,\r\n LightGreen = 2,\r\n Yellow = 3,\r\n Red = 4\r\n}\r\n\r\nexport enum WellbeingCategoriesColors {\r\n DarkGreen = '#32991e',\r\n MediumGreen = '#53b223',\r\n LightGreen = '#7acc28',\r\n Yellow = '#ffec26',\r\n Red = '#d82b2b'\r\n}\r\n\r\nexport enum DataLabelChartType {\r\n Wellbeing = 1,\r\n Answer = 2\r\n}\r\n\r\nexport abstract class WellbeingIndexInterval {\r\n Start: number;\r\n End: number;\r\n MinScore: number;\r\n MaxScore: number;\r\n}\r\n\r\nexport abstract class WellbeingInterval {\r\n Start: number;\r\n End: number;\r\n MinScore: number;\r\n MaxScore: number;\r\n private Color: WellbeingCategories;\r\n\r\n static contains = (score: number, interval: WellbeingInterval) => interval.MinScore <= score && score <= interval.MaxScore;\r\n\r\n static containsWellbeing = (wellbeing: number, interval: WellbeingInterval) => interval.Start <= wellbeing && wellbeing < interval.End;\r\n\r\n static getColor = (interval: WellbeingInterval) => {\r\n const categoryIndex = interval.Color;\r\n const colorKey = WellbeingCategories[categoryIndex];\r\n const color = WellbeingCategoriesColors[colorKey];\r\n return color;\r\n };\r\n\r\n static getCategory = (interval: WellbeingInterval) => {\r\n const categoryIndex = interval.Color;\r\n const categoryKey = WellbeingCategories[categoryIndex];\r\n return categoryKey;\r\n };\r\n\r\n static getScoreFromWellbeing = (wellbeing: number, interval: WellbeingInterval) => {\r\n const range = interval.MaxScore - interval.MinScore;\r\n const decimalPart = (wellbeing - interval.Start) / (interval.End - interval.Start);\r\n return WellbeingInterval.containsWellbeing(wellbeing, interval) ? round(interval.MinScore + (range * decimalPart), 1) : 0;\r\n };\r\n}\r\n\r\nexport abstract class WellbeingIntervals extends Array {\r\n static getColor = (score: number, intervals: WellbeingIntervals) => {\r\n const interval = intervals.find(x => WellbeingInterval.contains(score, x));\r\n return interval ? WellbeingInterval.getColor(interval) : null;\r\n };\r\n\r\n static getCategory = (score: number, intervals: WellbeingIntervals) => {\r\n const interval = intervals.find(x => WellbeingInterval.contains(score, x));\r\n return interval ? WellbeingInterval.getCategory(interval) : null;\r\n };\r\n\r\n static getScoreFromWellbeing = (wellbeing: number, intervals: WellbeingIntervals) => {\r\n const interval = intervals.find(x => WellbeingInterval.containsWellbeing(wellbeing, x));\r\n return interval ? WellbeingInterval.getScoreFromWellbeing(wellbeing, interval) : null;\r\n };\r\n}\r\n\r\nexport function groupDepartmentsDropdownByType(\r\n departments: DepartmentDropdownData[],\r\n company: Company,\r\n languageCode: string,\r\n dimensionsLabels: CompanyDimensionsLabelsStructure\r\n): DepartmentDropdownByType {\r\n if (!company) {\r\n return {};\r\n }\r\n\r\n const languageId = SupportedLanguages.find(x => x.code === languageCode)?.id;\r\n const withData = departments.filter(x => x.HasData).sort((a, b) => a.Name.localeCompare(b.Name));\r\n const withoutData = departments.filter(x => !x.HasData).sort((a, b) => a.Name.localeCompare(b.Name));\r\n\r\n return [...withData, ...withoutData]\r\n .filter(department => department.DepartmentId)\r\n .sort((a, b) => a.Type - b.Type)\r\n .reduce((acc, item) => {\r\n const fallbackLanguage = LanguageEnum.English;\r\n const defaultLanguage = company.DefaultLanguageId;\r\n const finalNames = [];\r\n const bucketName = company.DepartmentDimensions[DepartmentTypeEnum[item.Type]];\r\n\r\n if (!bucketName) {\r\n return {};\r\n }\r\n\r\n const bucketNameArray = bucketName.split(',').map((x: string) => x.replace(/ /g, ''));\r\n\r\n if (!!bucketNameArray.length) {\r\n if (!dimensionsLabels[bucketNameArray[0]]) {\r\n return {};\r\n }\r\n\r\n for (const k of bucketNameArray) {\r\n const finalName = !!dimensionsLabels[k][languageId]\r\n ? dimensionsLabels[k][languageId]\r\n : !!dimensionsLabels[k][fallbackLanguage]\r\n ? dimensionsLabels[k][fallbackLanguage]\r\n : dimensionsLabels[k][defaultLanguage];\r\n finalNames.push(finalName);\r\n }\r\n } else {\r\n finalNames.push(bucketName);\r\n }\r\n\r\n const withoutUndef = finalNames.filter(finalName => finalName !== undefined);\r\n const translatedBucketName = withoutUndef.join(', ');\r\n const bucket = acc[translatedBucketName] || [];\r\n\r\n return { ...acc, [translatedBucketName]: bucket.concat(item) };\r\n }, {});\r\n}\r\n\r\nexport type DepartmentMetricNonAdditiveKeys = Pick;\r\n","export interface Label {\r\n Id: number;\r\n Language: string;\r\n LanguageId: number;\r\n Label: string;\r\n Text: string;\r\n PartnerId: number;\r\n CompanyId: number;\r\n}\r\n\r\nexport enum LanguageCodeToId {\r\n en = 1045,\r\n da = 1041,\r\n sv = 1153\r\n}\r\n\r\nexport enum LanguageEnum {\r\n English = 1045,\r\n Danish = 1041,\r\n Swedish = 1153,\r\n Abkhazian = 1000,\r\n Afar = 1001,\r\n Afrikaans = 1002,\r\n Akan = 1003,\r\n Albanian = 1004,\r\n Amharic = 1005,\r\n Arabic = 1006,\r\n Aragonese = 1007,\r\n Armenian = 1008,\r\n Assamese = 1009,\r\n Avaric = 1010,\r\n Avestan = 1011,\r\n Aymara = 1012,\r\n Azerbaijani = 1013,\r\n Bambara = 1014,\r\n Bashkir = 1015,\r\n Basque = 1016,\r\n Belarusian = 1017,\r\n Bengali = 1018,\r\n Bihari_languages = 1019,\r\n Bislama = 1020,\r\n Bokmål_Norwegian = 1021,\r\n Bosnian = 1022,\r\n Breton = 1023,\r\n Bulgarian = 1024,\r\n Burmese = 1025,\r\n Spanish = 1026,\r\n Catalan = 1027,\r\n Central_Khmer = 1028,\r\n Chamorro = 1029,\r\n Chechen = 1030,\r\n Chewa = 1031,\r\n Chinese = 1032,\r\n Chuang = 1033,\r\n Church_Slavic = 1034,\r\n Chuvash = 1035,\r\n Cornish = 1036,\r\n Corsican = 1037,\r\n Cree = 1038,\r\n Croatian = 1039,\r\n Czech = 1040,\r\n Dhivehi = 1042,\r\n Dutch = 1043,\r\n Dzongkha = 1044,\r\n Esperanto = 1046,\r\n Estonian = 1047,\r\n Ewe = 1048,\r\n Faroese = 1049,\r\n Fijian = 1050,\r\n Finnish = 1051,\r\n French = 1052,\r\n Fulah = 1053,\r\n Gaelic = 1054,\r\n Galician = 1055,\r\n Ganda = 1056,\r\n Georgian = 1057,\r\n German = 1058,\r\n Gikuyu = 1059,\r\n Greek = 1060,\r\n Greenlandic = 1061,\r\n Guarani = 1062,\r\n Gujarati = 1063,\r\n Haitian = 1064,\r\n Hausa = 1065,\r\n Hebrew = 1066,\r\n Herero = 1067,\r\n Hindi = 1068,\r\n Hiri_Motu = 1069,\r\n Hungarian = 1070,\r\n Icelandic = 1071,\r\n Ido = 1072,\r\n Igbo = 1073,\r\n Indonesian = 1074,\r\n Interlingua = 1075,\r\n Interlingue = 1076,\r\n Inuktitut = 1077,\r\n Inupiaq = 1078,\r\n Irish = 1079,\r\n Italian = 1080,\r\n Japanese = 1081,\r\n Javanese = 1082,\r\n Kannada = 1083,\r\n Kanuri = 1084,\r\n Kashmiri = 1085,\r\n Kazakh = 1086,\r\n Kinyarwanda = 1087,\r\n Kirghiz = 1088,\r\n Komi = 1089,\r\n Kongo = 1090,\r\n Korean = 1091,\r\n Kuanyama = 1092,\r\n Kurdish = 1093,\r\n Lao = 1094,\r\n Latin = 1095,\r\n Latvian = 1096,\r\n Letzeburgesch = 1097,\r\n Limburgan = 1098,\r\n Lingala = 1099,\r\n Lithuanian = 1100,\r\n Luba_Katanga = 1101,\r\n Macedonian = 1102,\r\n Malagasy = 1103,\r\n Malay = 1104,\r\n Malayalam = 1105,\r\n Maltese = 1106,\r\n Manx = 1107,\r\n Maori = 1108,\r\n Marathi = 1109,\r\n Marshallese = 1110,\r\n Moldavian = 1111,\r\n Mongolian = 1112,\r\n Nauru = 1113,\r\n Navaho = 1114,\r\n Ndebele_North = 1115,\r\n Ndebele_South = 1116,\r\n Ndonga = 1117,\r\n Nepali = 1118,\r\n Northern_Sami = 1119,\r\n Norwegian = 1120,\r\n Norwegian_Nynorsk = 1121,\r\n Nuosu = 1122,\r\n Occitan = 1123,\r\n Ojibwa = 1124,\r\n Oriya = 1125,\r\n Oromo = 1126,\r\n Ossetian = 1127,\r\n Pali = 1128,\r\n Panjabi = 1129,\r\n Pashto = 1130,\r\n Persian = 1131,\r\n Polish = 1132,\r\n Portuguese = 1133,\r\n Quechua = 1134,\r\n Romansh = 1135,\r\n Rundi = 1136,\r\n Russian = 1137,\r\n Samoan = 1138,\r\n Sango = 1139,\r\n Sanskrit = 1140,\r\n Sardinian = 1141,\r\n Serbian = 1142,\r\n Shona = 1143,\r\n Sindhi = 1144,\r\n Sinhala = 1145,\r\n Slovak = 1146,\r\n Slovenian = 1147,\r\n Somali = 1148,\r\n Sotho, Southern = 1149,\r\n Sundanese = 1150,\r\n Swahili = 1151,\r\n Swati = 1152,\r\n Tagalog = 1154,\r\n Tahitian = 1155,\r\n Tajik = 1156,\r\n Tamil = 1157,\r\n Tatar = 1158,\r\n Telugu = 1159,\r\n Thai = 1160,\r\n Tibetan = 1161,\r\n Tigrinya = 1162,\r\n Tonga = 1163,\r\n Tsonga = 1164,\r\n Tswana = 1165,\r\n Turkish = 1166,\r\n Turkmen = 1167,\r\n Twi = 1168,\r\n Uighur = 1169,\r\n Ukrainian = 1170,\r\n Urdu = 1171,\r\n Uzbek = 1172,\r\n Venda = 1173,\r\n Vietnamese = 1174,\r\n Volapük = 1175,\r\n Walloon = 1176,\r\n Welsh = 1177,\r\n Western_Frisian = 1178,\r\n Wolof = 1179,\r\n Xhosa = 1180,\r\n Yiddish = 1181,\r\n Yoruba = 1182,\r\n Zulu = 1183,\r\n Pilipino = 1185\r\n}\r\n","import * as XRegExp from 'xregexp';\r\n\r\nexport const DIMENSION_PATTERN = XRegExp('^[\\\\p{L} \\\\p{M} \\\\-\\\\–\\\\%\\\\#\\\\$\\\\(\\\\)\\\\&\\\\\\/\\\\,\\\\.\\\\`\\\\\\'\\\\\\0-9\\\\-\\\\_ ]+$');\r\nexport const NAME_PATTERN = XRegExp('^[\\\\p{L} \\\\p{M} \\\\-\\\\\\'\\\\\\u00B4\\\\`\\\\.0-9]+$');\r\n// eslint-disable-next-line max-len\r\nexport const EMAIL_PATTERN = XRegExp('^((([a-z]|\\\\d|[!#\\\\$%&\\'\\\\*\\\\+\\\\-\\\\/=\\\\?\\\\^_`{\\\\|}~]|[\\\\u00A0-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF])+(\\\\.([a-z]|\\\\d|[!#\\\\$%&\\'\\\\*\\\\+\\\\-\\\\/=\\\\?\\\\^_`{\\\\|}~]|[\\\\u00A0-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF])+)*)|((\\\\x22)((((\\\\x20|\\\\x09)*(\\\\x0d\\\\x0a))?(\\\\x20|\\\\x09)+)?(([\\\\x01-\\\\x08\\\\x0b\\\\x0c\\\\x0e-\\\\x1f\\\\x7f]|\\\\x21|[\\\\x23-\\\\x5b]|[\\\\x5d-\\\\x7e]|[\\\\u00A0-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF])|(\\\\\\\\([\\\\x01-\\\\x09\\\\x0b\\\\x0c\\\\x0d-\\\\x7f]|[\\\\u00A0-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]))))*(((\\\\x20|\\\\x09)*(\\\\x0d\\\\x0a))?(\\\\x20|\\\\x09)+)?(\\\\x22)))@((([a-z]|\\\\d|[\\\\u00A0-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF])|(([a-z]|\\\\d|[\\\\u00A0-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF])([a-z]|\\\\d|-||_|~|[\\\\u00A0-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF])*([a-z]|\\\\d|[\\\\u00A0-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF])))\\\\.)+(([a-z]|[\\\\u00A0-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF])+|(([a-z]|[\\\\u00A0-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF])+([a-z]+|\\\\d|-|\\\\.{0,1}|_|~|[\\\\u00A0-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF])?([a-z]|[\\\\u00A0-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF])))$');\r\nexport const JOB_TITLE_PATTERN = XRegExp('^[\\\\p{L} \\\\p{M} \\\\\\\\\\\\/\\\\-\\\\\\'\\\\&\\\\.\\\\,0-9]+$');\r\nexport const EMPLOYEE_FIELD_PATTERN = XRegExp('^[\\\\p{L} \\\\p{M} \\\\-\\\\–\\\\%\\\\#\\\\$\\\\(\\\\)\\\\&\\\\\\/\\\\,\\\\.\\\\`\\\\+\\\\\\'\\\\.0-9\\\\-\\\\_ ]+$');\r\nexport const PHONE_REGEX = XRegExp('^\\\\+[0-9]{6,20}$');\r\n","\r\nexport interface Setting {\r\n Id: number;\r\n Level: SettingLevelEnum;\r\n Label: string;\r\n PartnerId: number | null;\r\n CompanyId: number | null;\r\n PersonId: number | null;\r\n StringValue: string;\r\n BoolValue: boolean | null;\r\n IntValue: number | null;\r\n DecimalValue: number | null;\r\n Type: SettingTypeEnum;\r\n}\r\n\r\nexport enum SettingLevelEnum {\r\n Global = 0,\r\n Partner = 10,\r\n Company = 20,\r\n Person = 30\r\n}\r\n\r\nexport enum SettingTypeEnum {\r\n StringValue = 1,\r\n BoolValue = 2,\r\n IntValue = 3,\r\n DecimalValue = 4\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-namespace\r\nexport namespace SettingLevelEnum {\r\n\r\n export function values() {\r\n return Object.keys(SettingLevelEnum).filter(\r\n (type) => isNaN(type as any) && type !== 'values'\r\n );\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-namespace\r\nexport namespace SettingTypeEnum {\r\n\r\n export function values() {\r\n return Object.keys(SettingTypeEnum).filter(\r\n (type) => isNaN(type as any) && type !== 'values'\r\n );\r\n }\r\n}\r\n","import * as moment from 'moment';\r\nimport { Language } from './language.model';\r\n\r\nexport enum SurveyQuestionTypeEnum {\r\n CoverPage = 1,\r\n QuestionWithOptionSetSingleSelection = 2,\r\n QuestionWithText = 3,\r\n Body = 4,\r\n ThankYou = 99,\r\n}\r\n\r\nexport enum SurveyStateEnum {\r\n Draft = 1,\r\n Active = 2,\r\n Inactive = 3,\r\n}\r\n\r\nexport enum SurveyFrequencyEnum {\r\n Continuous,\r\n EveryOtherWeek,\r\n Monthly,\r\n Quarterly\r\n}\r\n\r\nexport const QUESTION_ICONS = {\r\n [SurveyQuestionTypeEnum.CoverPage]: 'far fa-file-alt',\r\n [SurveyQuestionTypeEnum.QuestionWithText]: 'fas fa-pencil-alt',\r\n [SurveyQuestionTypeEnum.QuestionWithOptionSetSingleSelection]: 'far fa-check-circle',\r\n [SurveyQuestionTypeEnum.Body]: 'fa fa-male',\r\n [SurveyQuestionTypeEnum.ThankYou]: 'far fa-handshake'\r\n};\r\n\r\nexport const BODY_COLORS = [\r\n '#32991e',\r\n '#8dbc32',\r\n '#c6d729',\r\n '#eae71e',\r\n '#fbf30c',\r\n '#feda20',\r\n '#ffba44',\r\n '#fea83f',\r\n '#f07e2d',\r\n '#ef582a',\r\n '#eb312e'\r\n];\r\n\r\nexport abstract class SurveyFilter {\r\n dimension?: string;\r\n value?: string;\r\n enabled?: boolean;\r\n static validate = (filter: SurveyFilter) => !filter.enabled || !!(filter.dimension && filter.value);\r\n}\r\n\r\nexport abstract class SurveyQuestion {\r\n Key?: string;\r\n Texts?: MultiLanguageTexts;\r\n StepType: SurveyQuestionTypeEnum;\r\n Order?: number;\r\n AnswerOptions?: AnswerOption[];\r\n EditingLang?: string;\r\n Valid?: boolean;\r\n Deleted?: boolean;\r\n Answers?: SurveyAnswer[];\r\n Configuration?: string;\r\n HasAnswers?: boolean;\r\n static validate = (question: SurveyQuestion): boolean => {\r\n const allAnswerOptionsDefined = (languageCode: string) => (question.AnswerOptions || [])\r\n .filter(ao => !ao.Deleted).every((option: AnswerOption) => !!option.Texts[languageCode].text);\r\n\r\n question.Valid = Object.keys(question.Texts)\r\n .every(languageCode => !!question.Texts[languageCode].text && allAnswerOptionsDefined(languageCode));\r\n\r\n return question.Valid;\r\n };\r\n\r\n static addAnswerOption = (question: SurveyQuestion, languages: Language[], focus = false) => {\r\n question.AnswerOptions.push({\r\n Texts: MultiLanguageTexts.new(null, languages, ''),\r\n Editing: focus\r\n });\r\n };\r\n\r\n static removeAnswerOption = (question: SurveyQuestion, index: number) => question.AnswerOptions.splice(index, 1);\r\n\r\n static removeLanguage = (question: SurveyQuestion, language: Language, defaultLanguage: Language) => {\r\n delete question.Texts[language.code];\r\n (question.AnswerOptions || []).forEach(ao => delete ao.Texts[language.code]);\r\n\r\n if (question.EditingLang === language.code) {\r\n question.EditingLang = defaultLanguage?.code;\r\n }\r\n };\r\n\r\n static addLanguage = (survey: Survey, question: SurveyQuestion, language: Language) => {\r\n const labels = survey.Labels && survey.Labels[language.code] || {};\r\n\r\n const isQuestion = question.StepType !== SurveyQuestionTypeEnum.ThankYou && question.StepType !== SurveyQuestionTypeEnum.CoverPage;\r\n const questionLabelKey = `SurveyDefinition.${survey.SurveyDefinitionId}.Step.${question.Key}.${isQuestion ? 'Question' : 'Content'}`;\r\n\r\n question.Texts[language.code] = { languageId: language.id, text: labels[questionLabelKey] };\r\n\r\n if (question.StepType === SurveyQuestionTypeEnum.QuestionWithOptionSetSingleSelection) {\r\n question.AnswerOptions.forEach(answerOption => {\r\n const aoLabelKey = `SurveyDefinition.${survey.SurveyDefinitionId}.Step.${question.Key}.${answerOption.LabelKey}`;\r\n answerOption.Texts[language.code] = { languageId: language.id, text: labels[aoLabelKey] };\r\n });\r\n }\r\n\r\n question.EditingLang = language.code;\r\n };\r\n\r\n static getBlank = (enabledLanguages: Language[], type: SurveyQuestionTypeEnum) => ({\r\n Texts: MultiLanguageTexts.new(null, enabledLanguages || [], ''),\r\n AnswerOptions: [],\r\n StepType: type,\r\n EditingLang: enabledLanguages[0]?.code\r\n });\r\n\r\n static parseConfiguration(configuration: string): AnswerOption[] {\r\n return JSON.parse(configuration).AnswerOptions.filter(({ Value }) => typeof Value === 'number');\r\n }\r\n}\r\n\r\nexport abstract class Survey {\r\n Id?: number;\r\n Name: string;\r\n CompanyId?: number;\r\n SurveyDefinitionId?: number;\r\n StartDate: Date | moment.Moment;\r\n EndDate: Date | moment.Moment;\r\n State: SurveyStateEnum;\r\n Questions: SurveyQuestion[];\r\n Filter?: SurveyFilter;\r\n Valid?: boolean;\r\n Frequency: SurveyFrequencyEnum;\r\n EnabledLangs?: Language[];\r\n SurveySelectionRule?: string;\r\n CoverPage: SurveyQuestion;\r\n ThankYouPage: SurveyQuestion;\r\n Period?: string;\r\n Labels?: SurveyLabels;\r\n\r\n static addBlankQuestion = (survey: Survey, type: SurveyQuestionTypeEnum) => {\r\n const question = SurveyQuestion.getBlank(survey.EnabledLangs, type);\r\n survey.Questions.push(question);\r\n return question;\r\n };\r\n\r\n static removeQuestion = (survey: Survey, question: SurveyQuestion) => {\r\n survey.Questions = survey.Questions.filter(q => q !== question);\r\n };\r\n\r\n static getBlank = () => {\r\n const monthFromNow = moment.utc().add(1, 'month');\r\n const isLastMonthFromNow = monthFromNow.month() === 11;\r\n const endDateYear = isLastMonthFromNow ? monthFromNow.year() + 1 : monthFromNow.year();\r\n const endDateMonth = isLastMonthFromNow ? 0 : monthFromNow.month() + 1;\r\n\r\n return {\r\n Name: '',\r\n StartDate: moment.utc([monthFromNow.year(), monthFromNow.month(), 1, 4, 0, 0]).local(),\r\n EndDate: moment.utc([endDateYear, endDateMonth, 1, 4, 0, 0]).local(),\r\n Questions: [],\r\n State: SurveyStateEnum.Active,\r\n Filter: {},\r\n Frequency: SurveyFrequencyEnum.Quarterly,\r\n EnabledLangs: [],\r\n CoverPage: SurveyQuestion.getBlank([], SurveyQuestionTypeEnum.CoverPage),\r\n ThankYouPage: SurveyQuestion.getBlank([], SurveyQuestionTypeEnum.ThankYou)\r\n };\r\n };\r\n\r\n static addLanguage = (survey: Survey, language: Language) => {\r\n survey.EnabledLangs.push(language);\r\n [survey.CoverPage, ...survey.Questions, survey.ThankYouPage]\r\n .forEach(question => SurveyQuestion.addLanguage(survey, question, language));\r\n };\r\n\r\n static removeLanguage = (survey: Survey, language: Language) => {\r\n survey.EnabledLangs = survey.EnabledLangs.filter(l => l.code !== language.code);\r\n [survey.CoverPage, ...survey.Questions, survey.ThankYouPage]\r\n .forEach(question => SurveyQuestion.removeLanguage(question, language, survey.EnabledLangs[0]));\r\n };\r\n\r\n static validateQuestions = (survey: Survey) => {\r\n const questions = survey.Questions.filter(q => !q.Deleted);\r\n return [survey.CoverPage, ...questions].every(SurveyQuestion.validate);\r\n };\r\n\r\n static validateFilter = (survey: Survey) => SurveyFilter.validate(survey.Filter);\r\n\r\n static validateFields = (survey: Survey, fields: string[]) => fields.every(field => !!survey[field]) && !!survey.EnabledLangs.length;\r\n\r\n static validate = (survey: Survey) => {\r\n const questionsValid = Survey.validateQuestions(survey);\r\n const filterValid = Survey.validateFilter(survey);\r\n const requiredFieldsValid = Survey.validateFields(survey, ['Name', 'StartDate', 'EndDate']);\r\n survey.Valid = requiredFieldsValid && filterValid && questionsValid;\r\n return survey.Valid;\r\n };\r\n\r\n static parseSurveySelectionRule = (survey: Survey) => {\r\n if (survey.Filter || survey.EnabledLangs) {\r\n return;\r\n }\r\n\r\n const surveySelectionRule = JSON.parse(survey.SurveySelectionRule || null);\r\n\r\n survey.Filter = surveySelectionRule && surveySelectionRule['Filters'] ? {\r\n dimension: Object.keys(surveySelectionRule['Filters'])[0],\r\n value: surveySelectionRule['Filters'][Object.keys(surveySelectionRule['Filters'])[0]],\r\n enabled: true\r\n } : {};\r\n\r\n survey.EnabledLangs = surveySelectionRule &&\r\n surveySelectionRule['EnabledLanguages'] &&\r\n JSON.parse(surveySelectionRule['EnabledLanguages']) ||\r\n [];\r\n };\r\n}\r\n\r\nexport interface SurveyDefinition {\r\n Id: number;\r\n Name: string;\r\n}\r\n\r\nexport interface SurveyTemplate extends SurveyDefinition {\r\n title: string;\r\n description: string;\r\n imgSrc: string;\r\n}\r\n\r\nexport interface AnswerOption {\r\n Deleted?: boolean;\r\n LabelKey?: string;\r\n Value?: number;\r\n Texts?: MultiLanguageTexts;\r\n Editing?: boolean;\r\n}\r\n\r\nexport abstract class MultiLanguageTexts {\r\n [key: string]: LanguageText;\r\n\r\n static new = (labels: SurveyLabels, languages: Language[], labelKey: string) =>\r\n languages.reduce((texts, language) => ({\r\n ...texts,\r\n [language.code]: {\r\n languageId: language.id,\r\n text: labels ? labels[language.code][labelKey] : ''\r\n }\r\n }), {});\r\n}\r\n\r\nexport interface LanguageText {\r\n languageId: number;\r\n text: string;\r\n valid?: boolean;\r\n}\r\n\r\nexport interface SurveyLabels {\r\n [key: string]: SurveyLabel;\r\n}\r\n\r\nexport interface SurveyLabel {\r\n [key: string]: string;\r\n}\r\n\r\nexport interface SurveyAnswer {\r\n Time: moment.Moment;\r\n Answer: string;\r\n QuestionKey: string;\r\n Period: string;\r\n Count: number;\r\n IsBelowAnonymity: boolean;\r\n DepartmentName?: string;\r\n SurveyId: number;\r\n CommentInfo?: CommentInfo;\r\n FormattedRecipients?: string;\r\n RecipientsArray?: string[];\r\n}\r\n\r\ninterface CommentInfo {\r\n Author: string;\r\n ManagerRecipients: Recipient[];\r\n HrRecipients: Recipient[];\r\n SingledOutHr: boolean;\r\n}\r\n\r\ninterface Recipient {\r\n Id: number;\r\n Fullname: string;\r\n IsActive: boolean;\r\n}\r\n","import * as moment from 'moment';\r\n\r\nexport interface Employee {\r\n Birthday: string;\r\n CompanyId: number;\r\n ContactNumber: number;\r\n Dimensions: EmployeeDimensionValue;\r\n EmployedOn: moment.Moment | Date;\r\n EmployeeID: string;\r\n EmploymentStatus: PersonEmploymentStatus;\r\n ExternalId: string;\r\n FirstInvitationDate: moment.Moment | Date;\r\n Firstname: string;\r\n Fullname: string;\r\n Gender: number;\r\n HRContact: string;\r\n HealthOffer: string;\r\n HomeAddress1: string;\r\n HomeAddress2: string;\r\n HomeCity: string;\r\n HomeCountry: string;\r\n HomeZipCode: string;\r\n Id: number;\r\n JobTitle: string;\r\n LanguageId: number;\r\n Lastname: string;\r\n Locked: boolean;\r\n NotifyByEmail: boolean;\r\n NotifyByPush: boolean;\r\n NotifyBySMS: boolean;\r\n OptOut: boolean;\r\n ResponseCenterId: number;\r\n ResponseCenterName: string;\r\n SourcedFromExternalSystem: boolean;\r\n State?: EmployeeState;\r\n StateEffectiveFrom: string;\r\n}\r\n\r\nexport interface EmployeeDimensionValue {\r\n [key: string]: string;\r\n}\r\n\r\nexport enum DepartmentRole {\r\n Employee = 1,\r\n Manager = 2\r\n}\r\n\r\nexport enum PersonEmploymentStatus {\r\n Employed = 0,\r\n OnLeave = 1\r\n}\r\n\r\nexport enum EmployeeState {\r\n Created = 0,\r\n Invited = 1,\r\n Active = 2,\r\n OnLeave = 3,\r\n Removed = 99\r\n}\r\n","import { LanguageEnum } from '@howdy/models';\r\n\r\nexport interface Language {\r\n code: string;\r\n label: string;\r\n id?: number;\r\n flag?: string;\r\n}\r\n\r\nexport const SupportedLanguages: Language[] = [\r\n {\r\n id: LanguageEnum.English,\r\n code: 'en',\r\n label: 'Portal.Shell.TopToolbar.UILanguages.En',\r\n flag: 'en'\r\n },\r\n {\r\n id: LanguageEnum.Swedish,\r\n code: 'sv',\r\n label: 'Portal.Shell.TopToolbar.UILanguages.Sv',\r\n flag: 'se'\r\n },\r\n {\r\n id: LanguageEnum.Danish,\r\n code: 'da',\r\n label: 'Portal.Shell.TopToolbar.UILanguages.Da',\r\n flag: 'da'\r\n }\r\n];\r\n","import { Metric } from './dashboard.model';\r\n\r\nexport interface Heatmap {\r\n CompanyId: number;\r\n DepartmentId: number;\r\n DepartmentName: string;\r\n DepartmentType: number;\r\n HeatLevel: HeatLevelEnum;\r\n PrivateWorkRelatedHeatLevel: HeatLevelEnum;\r\n Percentage: number;\r\n MonthStart: string;\r\n Months: number;\r\n Outcome: number;\r\n OutcomeGroup: OutcomeGroupEnum;\r\n}\r\n\r\nexport interface HeatmapStructure {\r\n [outcomeGroup: string]: {\r\n [outcome: string]: {\r\n [monthStart: string]: Heatmap;\r\n };\r\n };\r\n}\r\n\r\nexport type HeatmapMetrics = Pick;\r\n\r\nexport interface HeatmapMetricsStructure {\r\n [monthStart: string]: HeatmapMetrics & { Participation: number };\r\n}\r\n\r\nexport enum HeatLevelEnum {\r\n HeatLevel1 = 1,\r\n HeatLevel2 = 2,\r\n HeatLevel3 = 3,\r\n HeatLevel4 = 4,\r\n HeatLevel5 = 5,\r\n HeatLevel6 = 6,\r\n HeatLevel7 = 7,\r\n HeatLevel8 = 8,\r\n HeatLevel9 = 9,\r\n HeatLevel10 = 10,\r\n}\r\n\r\nexport const HeatLevelColorScheme: { [K in HeatLevelEnum]?: string } = {\r\n [HeatLevelEnum.HeatLevel1]: '#FFD6D6',\r\n [HeatLevelEnum.HeatLevel2]: '#FFC2C2',\r\n [HeatLevelEnum.HeatLevel3]: '#FF9999',\r\n [HeatLevelEnum.HeatLevel4]: '#FF7070',\r\n [HeatLevelEnum.HeatLevel5]: '#FF4747',\r\n [HeatLevelEnum.HeatLevel6]: '#FF1F1F',\r\n [HeatLevelEnum.HeatLevel7]: '#F50000',\r\n [HeatLevelEnum.HeatLevel8]: '#CC0000',\r\n [HeatLevelEnum.HeatLevel9]: '#A80000',\r\n [HeatLevelEnum.HeatLevel10]: '#850000'\r\n};\r\n\r\nexport enum OutcomeGroupEnum {\r\n Workrelated,\r\n Private,\r\n NoContact,\r\n Other\r\n}\r\n\r\nexport interface CaseOutcomes {\r\n Outcome: number;\r\n OutcomeName: string;\r\n OutcomeGroup: number;\r\n OutcomeGroupName: string;\r\n OutcomeTooltip: string;\r\n Language: string;\r\n IsBody: boolean;\r\n}\r\n","export enum ProductStateEnum {\r\n NotPurchased,\r\n Inactive,\r\n Active\r\n}\r\n\r\nexport interface CompanyList {\r\n Id: number;\r\n Name: string;\r\n Products: {\r\n Body: ProductStateEnum;\r\n Manager: ProductStateEnum;\r\n InfoOffers: ProductStateEnum;\r\n Surveys: ProductStateEnum;\r\n };\r\n Licenses: number;\r\n LicensesDiff: number;\r\n StartDate?: string;\r\n Language?: number;\r\n DefaultResponseCenter?: string;\r\n BodyResponseCenter?: string;\r\n Calls?: number;\r\n SignUpLink?: string;\r\n Users?: string;\r\n Activation?: number;\r\n Answers?: number;\r\n BodyAnswers?: string;\r\n SurveyAnswers?: string;\r\n WellbeingCases?: number;\r\n BodyCases?: number;\r\n};\r\n","import { UserRoleEnum } from './shared.model';\r\n\r\nexport enum ActivityType {\r\n Call = 1,\r\n ScheduledCall = 2,\r\n History = 3,\r\n InternalNote = 4,\r\n TextMessage = 5,\r\n Email = 6\r\n}\r\n\r\nexport enum EmailActivityType {\r\n PasswordRecovery = 4,\r\n TermsOfServiceAccepted = 6,\r\n ReminderToResponseCenter = 7,\r\n ScheduledReport = 8,\r\n EmailChangeRequested = 19,\r\n FlowActivity = 25,\r\n NewPortalUserInvitation = 30,\r\n ManagerIncidentFeedback = 33,\r\n DeveloperAlert = 34,\r\n MonthlyReport = 39,\r\n HowdyFeedback = 42\r\n}\r\n\r\nexport interface IncidentActivity {\r\n Id: number;\r\n Type: ActivityType;\r\n Date: Date;\r\n ToNumber: string;\r\n State: string;\r\n Content: string;\r\n Direction: string;\r\n ToPerson: string;\r\n ByPerson: string;\r\n ScheduledDate: Date;\r\n}\r\n\r\nexport interface CauseCode {\r\n Id: string;\r\n L10nKey: string;\r\n GroupLevel1: string;\r\n GroupLevel2: string;\r\n TranslatedLabel: string;\r\n}\r\n\r\nexport interface Incident {\r\n Id: number;\r\n AssignedTo: string;\r\n CallsCount: number;\r\n CompletedCallsCount: number;\r\n CallsLimit: number;\r\n State: IncidentState;\r\n TypeString: string;\r\n Company: CompanyIncident;\r\n Department: IncidentDepartment;\r\n IncidentCauseCodes: CauseCode[];\r\n Manager: Manager;\r\n Locale?: string;\r\n CreatedOn: Date;\r\n ScheduledStart: Date;\r\n AnonymityCeased: boolean;\r\n ReferredToPsychologist: boolean;\r\n IncidentFeedback: IncidentFeedback;\r\n ResponseCenterId: number;\r\n}\r\n\r\nexport interface CompanyIncident {\r\n Id: number;\r\n Name: string;\r\n ResponseCenterBriefingUrl: string;\r\n}\r\n\r\nexport interface IncidentDepartment {\r\n Id: number;\r\n Division: string;\r\n DivisionId: number;\r\n Key: string;\r\n Name: string;\r\n Size: number;\r\n}\r\n\r\nexport enum IncidentState {\r\n New = 0,\r\n Open = 1,\r\n Pending = 2,\r\n Solved = 3,\r\n Canceled = 4,\r\n CanceledByManager = 5,\r\n Scheduled = 6,\r\n Contacted = 7,\r\n FailedToContact = 8,\r\n OpenReminderSent = 9\r\n}\r\n\r\nexport interface IncidentFeedback {\r\n ContactTime: string;\r\n FeedbackContent: string;\r\n}\r\n\r\nexport enum IncidentCallState {\r\n Planned = 1,\r\n CallCompleted = 2,\r\n CallRescheduledByEmployee = 3,\r\n Failed = 4\r\n}\r\n\r\nexport interface IncidentCall {\r\n Id: number;\r\n AssignedToUser: string;\r\n IncidentId: number;\r\n State: IncidentCallState;\r\n FromNumber: string;\r\n ToNumber: string;\r\n}\r\n\r\nexport interface Manager {\r\n Id: number;\r\n Guid: string;\r\n Firstname: string;\r\n Lastname: string;\r\n Email: string;\r\n Mobile: string;\r\n Timezone: any;\r\n RoleType: UserRoleEnum;\r\n PrimaryContact: boolean;\r\n UserRoleId?: number;\r\n IsOwner?: boolean;\r\n}\r\n\r\nexport interface LowScoreDepartmentMetrics {\r\n MonthStart: Date;\r\n DepartmentId: number;\r\n CompanyId: number;\r\n CompanyName: string;\r\n DepartmentName: string;\r\n HowdyScore: number;\r\n AvgScorePerAnswer: number;\r\n CompanyResponseCenterId: number;\r\n CompanyResponseCenterName: string;\r\n Managers: Manager[];\r\n}\r\n","export enum TargetPeriods {\r\n Month = 'Month',\r\n Quarter = 'Quarter',\r\n Year = 'Year'\r\n}\r\n\r\nexport enum UniquePeriods {\r\n Unique = 'Unique',\r\n All = 'All',\r\n Simple = 'Simple',\r\n Detailed = 'Detailed'\r\n}\r\n\r\nexport enum MonthPeriods {\r\n CurrentMonth = 'CurrentMonth',\r\n LastMonth = 'LastMonth'\r\n}\r\n\r\nexport const TargetPeriodsValue: { [K in TargetPeriods]?: string } = {\r\n [TargetPeriods.Month]: '1',\r\n [TargetPeriods.Quarter]: '3',\r\n [TargetPeriods.Year]: '12',\r\n};\r\n\r\nexport const UniquePeriodsValue: { [K in UniquePeriods]?: string } = {\r\n [UniquePeriods.Unique]: 'Unique',\r\n [UniquePeriods.All]: 'All',\r\n [UniquePeriods.Simple]: 'Simple',\r\n [UniquePeriods.Detailed]: 'Detailed'\r\n};\r\n\r\nexport const MonthPeriodsValue: { [K in MonthPeriods]?: string } = {\r\n [MonthPeriods.CurrentMonth]: 'CurrentMonth',\r\n [MonthPeriods.LastMonth]: 'LastMonth'\r\n};\r\n","import { NbMenuItem } from '@nebular/theme';\r\n\r\nexport const MENU_ITEMS: NbMenuItem[] = [\r\n {\r\n title: 'Dashboard',\r\n icon: { icon: 'chart-column', pack: 'solid', },\r\n link: '/pages/dashboard/overview',\r\n home: true,\r\n },\r\n {\r\n title: 'Loading...',\r\n link: '/pages/xyz',\r\n data: 'Portal.Modules.Company.Tabs.Info.ContactInfo' // AKA Translation\r\n }\r\n];\r\n","import { Injectable } from '@angular/core';\r\nimport { TokenService } from './token.service';\r\nimport { CanActivate, CanLoad, RouterStateSnapshot, Router, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { ConfigStoreService } from './config-store.service';\r\nimport { PermissionService } from './permission.service';\r\nimport { first, filter } from 'rxjs/operators';\r\nimport { SharedService } from './shared.service';\r\nimport { combineLatest, BehaviorSubject } from 'rxjs';\r\nimport { UserPermissions, UserPreferences, ResponseCenter, Company } from '@howdy/models';\r\nimport { RaygunService } from './raygun.service';\r\n\r\ninterface PagesPermissions {\r\n [key: string]: boolean | number;\r\n}\r\n\r\n@Injectable()\r\nexport class AuthGuardService implements CanActivate, CanLoad {\r\n\r\n private pagesPermissions: PagesPermissions;\r\n private pagesPermissions$: BehaviorSubject = new BehaviorSubject(null);\r\n private failedUrls: string[] = [];\r\n private mainBranches = [{\r\n url: '/pages/dashboard',\r\n entities: 'Companies',\r\n preference: 'activeCompanyId'\r\n }, {\r\n url: '/responsecenter/incidents',\r\n entities: 'ResponseCenters',\r\n preference: 'activeResponseCenterId'\r\n }];\r\n\r\n constructor(\r\n private tokenService: TokenService,\r\n private configStore: ConfigStoreService,\r\n private permissionService: PermissionService,\r\n private sharedService: SharedService,\r\n private router: Router,\r\n private raygun: RaygunService\r\n ) {\r\n combineLatest([\r\n this.permissionService.userPermissions$,\r\n this.sharedService.userPreferences$\r\n ]).subscribe((params) => this.setPagesPermissions(...params));\r\n }\r\n\r\n async canActivate(_: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n if (state.url.split('/').length < 3) {\r\n return false;\r\n }\r\n\r\n if (!this.tokenService.isValid()) {\r\n window.location.href = this.configStore.getConfigStoreValues().GlobalAuthSignIn;\r\n return false;\r\n }\r\n\r\n let permissions = this.pagesPermissions;\r\n if (!permissions) {\r\n permissions = await this.pagesPermissions$.asObservable().pipe(filter(x => !!x), first()).toPromise();\r\n }\r\n\r\n const url = state.url.split('/').slice(0, 3).join('/');\r\n const isAllowed = !!permissions[url];\r\n\r\n if (!isAllowed) {\r\n this.logToRaygun(url);\r\n const triedToFixPreferences = this.tryToFixPreferences(url);\r\n\r\n if (!triedToFixPreferences) {\r\n this.tryRedirect(url);\r\n }\r\n } else {\r\n this.failedUrls = [];\r\n }\r\n\r\n return isAllowed;\r\n }\r\n\r\n canLoad(): boolean {\r\n if (!this.tokenService.isValid()) {\r\n window.location.href = this.configStore.getConfigStoreValues().GlobalAuthSignIn;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private setPagesPermissions(permissions: UserPermissions, preferences: UserPreferences) {\r\n this.pagesPermissions = {\r\n '/pages/dashboard': !preferences.activeResponseCenterId && preferences.activeCompanyId,\r\n '/pages/company': preferences.activeCompanyId && (permissions.hasCompanyAdminRights || permissions.hasHowdyEmployeeRights),\r\n '/pages/employee': preferences.activeCompanyId && !permissions.hasOnlyObserverRights,\r\n '/responsecenter/incidents': preferences.activeResponseCenterId,\r\n '/pages/report': preferences.activeCompanyId && permissions.hasCompanyAdminRights,\r\n '/pages/user': permissions.hasUserAdminRights || permissions.hasHowdyEmployeeRights,\r\n '/pages/feedback': preferences.activeCompanyId && (permissions.hasCompanyAdminRights || permissions.hasHowdyEmployeeRights),\r\n '/pages/resources': !preferences.activeResponseCenterId && preferences.activeCompanyId,\r\n '/pages/admin': permissions.hasSystemAdminRights || permissions.hasHowdyEmployeeRights\r\n };\r\n this.pagesPermissions$.next(this.pagesPermissions);\r\n }\r\n\r\n private isTheSameBranch = (a: string, b: string) => a.split('/')[1] === b.split('/')[1];\r\n\r\n private tryToFixPreferences(invalidUrl: string) {\r\n if (this.isTheSameBranch(invalidUrl, this.router.url)) {\r\n return false;\r\n }\r\n\r\n const userProfile = this.sharedService.userProfile;\r\n const requestedBranch = this.mainBranches.find(\r\n x => this.isTheSameBranch(x.url, invalidUrl) && (userProfile[x.entities] as any[]).length > 0);\r\n const otherBranch = this.mainBranches.find(x => !this.isTheSameBranch(x.url, invalidUrl));\r\n\r\n if (requestedBranch) {\r\n this.tryAgain(requestedBranch, otherBranch, invalidUrl);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private tryRedirect(invalidUrl: string) {\r\n this.failedUrls.push(invalidUrl);\r\n\r\n if (this.isTheSameBranch(invalidUrl, this.router.url)) {\r\n // if on the same branch, redirect to 'base' url\r\n const baseUrl = this.mainBranches.map(x => x.url).find(x => this.isTheSameBranch(x, invalidUrl));\r\n\r\n if (this.failedUrls.indexOf(baseUrl) === -1) {\r\n this.router.navigate([ baseUrl ]);\r\n }\r\n\r\n return;\r\n }\r\n\r\n const currentBranch = this.mainBranches.find(x => this.isTheSameBranch(x.url, this.router.url));\r\n\r\n if (currentBranch && this.failedUrls.indexOf(currentBranch.url) === -1) {\r\n // at this point, guard has already tried to fix preferences to other url, failed and there is no access\r\n // so if there is current active branch, stay there\r\n this.router.navigate([ currentBranch.url ]);\r\n return;\r\n }\r\n\r\n // otherwise user is coming to the dashboard for the first time and guard\r\n // is trying any combination of branch and preferences to get him in\r\n const userProfile = this.sharedService.userProfile;\r\n const targetBranch = this.mainBranches.find(x => this.failedUrls.indexOf(x.url) === -1 && (userProfile[x.entities] as []).length > 0);\r\n const otherBranch = this.mainBranches.find(x => targetBranch.url !== x.url);\r\n\r\n if (targetBranch) {\r\n this.tryAgain(targetBranch, otherBranch, targetBranch.url);\r\n }\r\n }\r\n\r\n private tryAgain(branch, invalidBranch, url: string) {\r\n const userProfile = this.sharedService.userProfile;\r\n const newEntity: Company | ResponseCenter = userProfile[branch.entities][0];\r\n\r\n const userPreferences = this.sharedService.userPreferences;\r\n userPreferences[branch.preference] = newEntity.Id;\r\n userPreferences[invalidBranch.preference] = null;\r\n userPreferences.activeEntityName = newEntity.Name;\r\n\r\n this.sharedService.setUserPreferences(userPreferences);\r\n this.router.navigate([url]);\r\n }\r\n\r\n private logToRaygun(url: string) {\r\n const userPreferences = this.sharedService.userPreferences;\r\n const email = this.sharedService.userProfile.Me.Email;\r\n const message = `User ${email} with preferences ${JSON.stringify(userPreferences)} was denied access to url: ${url}`;\r\n this.raygun.send(new Error(message));\r\n }\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\nimport { TokenService } from './token.service';\r\nimport { LoaderService } from './loader.service';\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n\r\n constructor(\r\n private tokenService: TokenService,\r\n private loader: LoaderService\r\n ) { }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n this.loader.show();\r\n // Injecting Token is Auth0 Job (didn't work!)\r\n if (req.url.startsWith('##API##')) {\r\n // if (!this.tokenService.isValid()) this.menuService.navigateHome();\r\n\r\n const token = this.tokenService.getToken();\r\n if (!token) {\r\n console.error('TOKEN Not Found');\r\n // window.location.href = this.configStore.getConfigStoreValues().GlobalAuth_SignIn;\r\n }\r\n const headers = req.headers.set('Authorization', `Bearer ${token}`);\r\n // console.log('Here is your token', token.substr(1, 5), 'for url ', req.url);\r\n\r\n req = req.clone({\r\n url: req.url.replace('##API##', this.tokenService.DataCenterApiEndPoint || 'No-URL-Provided-aM'),\r\n headers\r\n });\r\n }\r\n\r\n return next.handle(req)\r\n .pipe(\r\n catchError((err: HttpErrorResponse) => {\r\n if (err.status === 401) {\r\n console.log('Received unexpected http 401 unauthorized response from server');\r\n // this.tokenService.clearToken();\r\n // window.location.href = this.configStore.getConfigStoreValues().GlobalAuth_SignIn;\r\n if (this.tokenService.getToken() && this.tokenService.isValid) {\r\n return next.handle(req);\r\n }\r\n }\r\n return throwError(err);\r\n }),\r\n finalize(() => this.loader.hide())\r\n );\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { IConfigStore } from '@howdy/models';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable()\r\nexport class ConfigStoreService {\r\n\r\n host: string;\r\n\r\n constructor(@Inject(DOCUMENT) private document: any) {\r\n this.host = this.document.location.hostname;\r\n }\r\n\r\n getConfigStoreValues(): IConfigStore {\r\n switch (this.host) {\r\n case 'portal.howdy.care':\r\n return {\r\n GlobalAuthSignIn: 'https://auth.worklifebarometer.com/',\r\n GlobalAuthSignOut: 'https://auth.worklifebarometer.com/Account/SignOut',\r\n GlobalAuthPasswordReset: 'https://auth.worklifebarometer.com/AuthB2C/PasswordReset'\r\n };\r\n case 'wlb-uat-g-my.azurewebsites.net':\r\n return {\r\n GlobalAuthSignIn: 'https://auth.worklifebarometer.com/',\r\n GlobalAuthSignOut: 'https://auth.worklifebarometer.com/Account/SignOut',\r\n GlobalAuthPasswordReset: 'https://auth.worklifebarometer.com/AuthB2C/PasswordReset'\r\n };\r\n default:\r\n return {\r\n // GlobalAuth_SignIn: \"https://localhost:44301/\",\r\n // GlobalAuth_SignOut: \"https://localhost:44301/Account/SignOut\",\r\n // GlobalAuth_PasswordReset: \"https://localhost:44301/AuthB2C/PasswordReset\"\r\n GlobalAuthSignIn: 'https://auth.worklifebarometer.com/',\r\n GlobalAuthSignOut: 'https://auth.worklifebarometer.com/Account/SignOut',\r\n GlobalAuthPasswordReset: 'https://auth.worklifebarometer.com/AuthB2C/PasswordReset'\r\n };\r\n }\r\n }\r\n\r\n}\r\n","import * as cloneDeep from 'lodash.clonedeep';\r\nimport * as moment from 'moment';\r\nimport {\r\n BehaviorSubject,\r\n Observable,\r\n of\r\n} from 'rxjs';\r\nimport {\r\n AnswerOption,\r\n Language,\r\n MultiLanguageTexts,\r\n Survey,\r\n SurveyAnswer,\r\n SurveyDefinition,\r\n SurveyFrequencyEnum,\r\n SurveyLabel,\r\n SurveyLabels,\r\n SurveyQuestion,\r\n SurveyQuestionTypeEnum,\r\n SurveyStateEnum,\r\n SurveyTemplate\r\n} from '@howdy/models';\r\nimport { filter, first, map, switchMap } from 'rxjs/operators';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { SharedService } from './shared.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FeedbackService {\r\n private currentLanguage: string;\r\n private surveyLabels: SurveyLabels = {};\r\n private _surveyLabels$: BehaviorSubject = new BehaviorSubject(null);\r\n private labelsCache: Map = new Map();\r\n private loadingKeys = new Set();\r\n\r\n get surveyLabels$(): Observable {\r\n return this._surveyLabels$.asObservable().pipe(filter(_ => !!_));\r\n }\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private sharedService: SharedService,\r\n private translateService: TranslateService,\r\n ) {\r\n this.sharedService.onEntityChange$.subscribe(() => this.reloadSurveyLabels(true));\r\n this.sharedService.onLanguageChange$.subscribe(() => this.reloadSurveyLabels());\r\n }\r\n\r\n getCompanySurveys(includeQuestions = false, includeSpecialSurveys = false): Observable {\r\n if (!this.sharedService.userPreferences.activeCompanyId) {\r\n return of([]);\r\n }\r\n\r\n const options = { params: { companyId: `${this.sharedService.userPreferences.activeCompanyId}` } };\r\n\r\n if (includeQuestions) {\r\n options['params']['includeQuestions'] = true;\r\n }\r\n\r\n options['params']['includeSpecialSurveys'] = includeSpecialSurveys;\r\n\r\n return this.http.get('##API##/Survey', options);\r\n }\r\n\r\n getSurveyById(id: number, enabledLanguages: Language[]): Observable {\r\n return this.http.get(`##API##/Survey/${id}`).pipe(map(data => this.mapBackendSurvey(data, enabledLanguages)));\r\n }\r\n\r\n getSurveyTemplates(enabledLanguages: Language[]): Observable {\r\n return this.http.get('##API##/Survey/Templates')\r\n .pipe(\r\n map((templates) =>\r\n templates.filter(async template => { // for each template find out whether there are labels in at least one of enabled languages\r\n for (const language of enabledLanguages) {\r\n const labels = await this.fetchSurveyLabels(language.code);\r\n\r\n if (labels && Object.keys(labels).some((label: string) => label.indexOf(`${template.Id}`) >= 0)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }).map(definition => {\r\n const lang = enabledLanguages.find(language => language.code === this.sharedService.userPreferences.selectedLanguageId);\r\n const translations = lang ? this.surveyLabels[lang.code] : {};\r\n\r\n return {\r\n ...definition,\r\n title: translations[`SurveyDefinition.${definition.Id}.Name`] || definition.Name,\r\n description: translations[`SurveyDefinition.${definition.Id}.Description`] || `Description missing for ${definition.Name}`,\r\n imgSrc: `https://dashboard-s3.s3.eu-west-1.amazonaws.com/images/${definition.Id}.jpg`\r\n };\r\n })\r\n )\r\n );\r\n }\r\n\r\n getSurveyTemplateById(id: number, enabledLanguages: Language[]): Observable {\r\n return this.http.get(`##API##/Survey/Template/${id}`).pipe(map(data => this.mapBackendSurvey(data, enabledLanguages)));\r\n }\r\n\r\n submitNewSurvey(survey: Survey): Observable {\r\n return this.http.post(`##API##/Survey/`, this.prepareSubmitData(survey)).pipe(\r\n switchMap(response =>\r\n this.http.get(`##API##/cache/invalidate`).pipe(\r\n map(() => response)\r\n )\r\n )\r\n );\r\n }\r\n\r\n updateSurvey(survey: Survey) {\r\n return this.http.post(`##API##/Survey/Update`, this.prepareSubmitData(survey));\r\n }\r\n\r\n changeSurveysState(surveysIds: number[], state: number) {\r\n return this.http.post(`##API##/Survey/ChangeState/${state}`, surveysIds);\r\n }\r\n\r\n deleteSurveys(surveysIds: number[]) {\r\n return this.http.post(`##API##/Survey/Delete`, surveysIds);\r\n }\r\n\r\n getSurveyQuestions(surveyId: number) {\r\n return this.http.get(`##API##/Survey/${surveyId}/Questions`);\r\n }\r\n\r\n getSurveyAnswers(surveyId: number, questionKey: string, period: string) {\r\n const companyId = this.sharedService.userPreferences.activeCompanyId;\r\n const params = {\r\n companyId: `${companyId}`,\r\n surveyId: `${surveyId}`,\r\n departmentId: `${null}`\r\n };\r\n\r\n if (questionKey) {\r\n params['questionKey'] = questionKey;\r\n }\r\n\r\n if (period) {\r\n params['period'] = period;\r\n }\r\n\r\n return this.http.get('##API##/Survey/Answers', { params });\r\n }\r\n\r\n getSurveyQuestionDepartmentAnswers(surveyId: number, questionKey: string, period: string, departmentId: number) {\r\n const companyId = this.sharedService.userPreferences.activeCompanyId;\r\n const params = {\r\n companyId: `${companyId}`,\r\n surveyId: `${surveyId}`,\r\n departmentId: `${departmentId}`\r\n };\r\n\r\n if (questionKey) {\r\n params['questionKey'] = questionKey;\r\n }\r\n\r\n if (period) {\r\n params['period'] = period;\r\n }\r\n\r\n return this.http.get('##API##/Survey/AnswersWithDepartment', { params });\r\n }\r\n\r\n async reloadSurveyLabels(entityChanged = false) {\r\n const languageFromPreferences = this.sharedService.userPreferences.selectedLanguageId;\r\n const activeCompanyId = this.sharedService.userPreferences.activeCompanyId;\r\n const languageNotLoaded = !languageFromPreferences;\r\n const nothingChanged = !entityChanged && this.currentLanguage === languageFromPreferences;\r\n\r\n if (!activeCompanyId || languageNotLoaded || nothingChanged) {\r\n return;\r\n }\r\n\r\n this.currentLanguage = languageFromPreferences;\r\n const surveyLabels = await this.fetchSurveyLabels();\r\n\r\n if (!surveyLabels) {\r\n return;\r\n }\r\n\r\n if (!this.translateService.translations[this.currentLanguage]) {\r\n await this.translateService.onLangChange.pipe(first()).toPromise();\r\n }\r\n\r\n Object.keys(surveyLabels).forEach(key => this.translateService.set(key, surveyLabels[key], this.currentLanguage));\r\n this.surveyLabels = { [this.currentLanguage]: (surveyLabels as SurveyLabel) };\r\n this._surveyLabels$.next({ [this.currentLanguage]: (surveyLabels as SurveyLabel) });\r\n }\r\n\r\n async fetchSurveyLabels(language: string = null) {\r\n const targetLanguage = language || this.currentLanguage;\r\n const cacheKey = `${this.sharedService.userPreferences.activeCompanyId}-${targetLanguage}`;\r\n let surveyLabels = this.labelsCache.get(cacheKey);\r\n\r\n if (!surveyLabels && !this.loadingKeys.has(cacheKey)) {\r\n this.loadingKeys.add(cacheKey);\r\n\r\n try {\r\n surveyLabels = await this.getSurveyL10nLabels(targetLanguage).toPromise();\r\n this.labelsCache.set(cacheKey, surveyLabels);\r\n } finally {\r\n this.loadingKeys.delete(cacheKey);\r\n }\r\n }\r\n\r\n return surveyLabels;\r\n }\r\n\r\n getSurveyL10nLabels(language: string = null) {\r\n const companyId = this.sharedService.userPreferences.activeCompanyId;\r\n const options = { params: { companyId: `${companyId}`, languageCode: language || this.currentLanguage } };\r\n return this.http.get(`##API##/i18n/surveylabels`, options);\r\n }\r\n\r\n private prepareSubmitData(survey: Survey) {\r\n const model: Survey = cloneDeep(survey);\r\n model.CompanyId = this.sharedService.userPreferences.activeCompanyId;\r\n\r\n const selectionRule = { EnabledLanguages: JSON.stringify(model.EnabledLangs) };\r\n\r\n if (survey.Filter.enabled && survey.Filter.dimension && survey.Filter.value) {\r\n selectionRule['Filters'] = { [survey.Filter.dimension]: survey.Filter.value };\r\n }\r\n\r\n model.SurveySelectionRule = JSON.stringify(selectionRule);\r\n model.Questions.splice(0, 0, model.CoverPage);\r\n model.Questions.push(model.ThankYouPage);\r\n model.Questions.forEach(question => {\r\n question.Texts = this.transferMultiLanguageTexts(question.Texts);\r\n question.AnswerOptions = question.AnswerOptions\r\n .map(answerOption => ({ ...answerOption, Texts: this.transferMultiLanguageTexts(answerOption.Texts) }));\r\n });\r\n\r\n return model;\r\n }\r\n\r\n private transferMultiLanguageTexts(texts: MultiLanguageTexts) {\r\n return Object.keys(texts).reduce((res, language) => ({\r\n ...res,\r\n [texts[language].languageId]: texts[language].text\r\n }), {});\r\n }\r\n\r\n private mapBackendSurvey(survey: Survey, enabledLanguages: Language[]): Survey {\r\n Survey.parseSurveySelectionRule(survey);\r\n\r\n const enabledLangs = this.getSurveyEnabledLanguages(survey, enabledLanguages);\r\n\r\n let questions: SurveyQuestion[] = survey.Questions\r\n .map(question => this.mapBackendQuestion(question, enabledLangs, survey));\r\n\r\n const bodyQuestion = questions.find(({ StepType }) => StepType === SurveyQuestionTypeEnum.Body);\r\n\r\n if (bodyQuestion) {\r\n bodyQuestion.Texts = {};\r\n questions = questions\r\n .filter(question => question.StepType !== SurveyQuestionTypeEnum.Body || question === bodyQuestion);\r\n }\r\n\r\n const coverPage = questions[0].StepType === SurveyQuestionTypeEnum.CoverPage ? questions.shift() :\r\n SurveyQuestion.getBlank(enabledLangs, SurveyQuestionTypeEnum.CoverPage);\r\n\r\n const thankYouPage = questions.length && questions[questions.length - 1].StepType === SurveyQuestionTypeEnum.ThankYou ?\r\n questions.pop() :\r\n SurveyQuestion.getBlank(enabledLangs, SurveyQuestionTypeEnum.ThankYou);\r\n\r\n const today = moment.utc().add(1, 'month');\r\n const startOfNextMonth = [today.year(), today.month(), 1, 4, 0, 0];\r\n const startOfMonthAfterThat = [today.year(), today.month() + 1, 1, 4, 0, 0];\r\n const final = {\r\n ...survey,\r\n StartDate: moment.utc(survey.StartDate || startOfNextMonth).local(),\r\n EndDate: moment.utc(survey.EndDate || startOfMonthAfterThat).local(),\r\n State: survey.State || SurveyStateEnum.Inactive,\r\n Filter: survey.Filter,\r\n Frequency: Object.keys(SurveyFrequencyEnum).some(x => +x === survey.Frequency)\r\n ? survey.Frequency\r\n : SurveyFrequencyEnum.Monthly,\r\n EnabledLangs: enabledLangs,\r\n Questions: questions,\r\n CoverPage: coverPage,\r\n ThankYouPage: thankYouPage\r\n } as Survey;\r\n Survey.validate(final);\r\n return final;\r\n }\r\n\r\n private mapBackendQuestion(question: SurveyQuestion, enabledLangs: Language[], survey: Survey): SurveyQuestion {\r\n\r\n const answerOptions = this.parseAnswerOptions(question, enabledLangs, survey);\r\n\r\n const isQuestion = question.StepType !== SurveyQuestionTypeEnum.ThankYou && question.StepType !== SurveyQuestionTypeEnum.CoverPage;\r\n const labelKey = `SurveyDefinition.${survey.SurveyDefinitionId}.Step.${question.Key}.${isQuestion ? 'Question' : 'Content'}`;\r\n const texts = MultiLanguageTexts.new(survey.Labels, enabledLangs, labelKey);\r\n\r\n return {\r\n ...question,\r\n Texts: texts,\r\n AnswerOptions: answerOptions,\r\n EditingLang: enabledLangs[0].code,\r\n } as SurveyQuestion;\r\n }\r\n\r\n private getSurveyEnabledLanguages(survey: Survey, enabledLanguages: Language[]) {\r\n const surveyEnabledLanguages = survey.EnabledLangs && survey.EnabledLangs.length ?\r\n survey.EnabledLangs.filter(x => enabledLanguages.some(l => l.id === x.id)) :\r\n enabledLanguages;\r\n\r\n const isCompanyEnabledLanguage = (language: Language) => enabledLanguages.some(enabledlang => enabledlang.id === language.id);\r\n const thereAreSurveyLabelsIn = (language: Language) => Object.keys(survey.Labels[language.code] || {})\r\n .some(label => label.indexOf(`${survey.SurveyDefinitionId}.Step`) >= 0);\r\n\r\n return surveyEnabledLanguages.filter(language => isCompanyEnabledLanguage(language) && thereAreSurveyLabelsIn(language));\r\n }\r\n\r\n private parseAnswerOptions(question: SurveyQuestion, enabledLangs: Language[], survey: Survey): AnswerOption[] {\r\n\r\n if (question.StepType !== SurveyQuestionTypeEnum.QuestionWithOptionSetSingleSelection || !question.Configuration) {\r\n return [];\r\n }\r\n\r\n const answerOptions = JSON.parse(question.Configuration).AnswerOptions;\r\n return answerOptions\r\n .filter(({ Value }) => typeof Value === 'number')\r\n .map(({ LabelKey, Value }) => ({\r\n LabelKey,\r\n Value,\r\n Texts: MultiLanguageTexts.new(\r\n survey.Labels, enabledLangs, `SurveyDefinition.${survey.SurveyDefinitionId}.Step.${question.Key}.${LabelKey}`)\r\n }));\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { TokenService } from './token.service';\r\n\r\n@Injectable()\r\nexport class ImpersonateService {\r\n\r\n get dataCenterCode() {\r\n return this.tokenService.DataCenter;\r\n }\r\n\r\n get isImpersonating() {\r\n return this.tokenService.IsImpersonation;\r\n }\r\n\r\n private _windowRef: Window;\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private tokenService: TokenService\r\n ) {\r\n this._windowRef = window;\r\n }\r\n\r\n impersonateUser(userId: number): void {\r\n const params = {\r\n id: userId.toString(),\r\n environment: this.dataCenterCode\r\n };\r\n\r\n this.httpClient.get(`##API##/User/Impersonate`, { params }).subscribe(\r\n response => {\r\n const token = response.Result;\r\n this.openImpersonatedUserPage(token);\r\n }\r\n );\r\n }\r\n\r\n stopImpersonating() {\r\n if (this.isImpersonating) {\r\n this._windowRef.close();\r\n }\r\n }\r\n\r\n private openImpersonatedUserPage(token: string) {\r\n const origin = location.origin;\r\n const url = `${origin}/#/token/${token}`;\r\n\r\n this._windowRef.open(url, '_blank');\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
Loading...
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n OnInit\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'custom-loader',\r\n templateUrl: './custom-loader.component.html',\r\n styleUrls: ['./custom-loader.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CustomLoaderComponent implements OnInit {\r\n\r\n public appLoaded = false;\r\n public activeRequests = [];\r\n protected finishedRequests = [];\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) { }\r\n\r\n ngOnInit() { }\r\n\r\n requestFired() {\r\n this.activeRequests.push(0);\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n requestFinished() {\r\n if (this.activeRequests.length) {\r\n this.finishedRequests.push(this.activeRequests.pop());\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n }\r\n\r\n}\r\n","import { ActiveToast, ToastrService } from 'ngx-toastr';\r\nimport { CustomLoaderComponent } from '../shared/components/custom-loader/custom-loader.component';\r\nimport { Event, NavigationEnd, Router } from '@angular/router';\r\nimport { filter, take } from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoaderService {\r\n\r\n private activeRequests = 0;\r\n private loader: ActiveToast;\r\n private oldLoader: ActiveToast;\r\n private appLoaded = false;\r\n\r\n constructor(\r\n private toastrService: ToastrService,\r\n private router: Router\r\n ) {\r\n this.router.events.pipe(\r\n filter((event: Event) => event instanceof NavigationEnd),\r\n take(1)\r\n ).subscribe(() => {\r\n this.appLoaded = true;\r\n\r\n if (this.loader) {\r\n this.loader.toastRef.componentInstance.appLoaded = true;\r\n }\r\n });\r\n }\r\n\r\n public show() {\r\n this.activeRequests++;\r\n\r\n if (this.activeRequests === 1 && !this.loader) {\r\n\r\n this.destroyOldLoader();\r\n\r\n this.loader = this.toastrService.info(\r\n null, null, { toastComponent: CustomLoaderComponent, disableTimeOut: true, tapToDismiss: false });\r\n\r\n this.loader.toastRef.componentInstance.appLoaded = this.appLoaded;\r\n }\r\n\r\n this.loader.toastRef.componentInstance.requestFired();\r\n }\r\n\r\n public hide() {\r\n if (this.activeRequests > 0) {\r\n this.activeRequests--;\r\n this.loader.toastRef.componentInstance.requestFinished();\r\n\r\n if (this.activeRequests === 0 && this.loader) {\r\n this.oldLoader = this.loader;\r\n this.loader = null;\r\n\r\n setTimeout(() => this.destroyOldLoader(), 100);\r\n }\r\n }\r\n }\r\n\r\n private destroyOldLoader() {\r\n if (this.oldLoader) {\r\n this.oldLoader.toastRef.close();\r\n this.oldLoader = null;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CompanySettings } from '@howdy/models';\r\n\r\n// This Service to be Middleware to help moving Data from Component to another one since we can't send it directly\r\n@Injectable()\r\nexport class NavigationDataMiddlewareService {\r\n DimensionData: any[];\r\n EmployeeData: any[];\r\n CompanySettings: CompanySettings;\r\n constructor() {}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SharedService } from './shared.service';\r\nimport { Role, UserRoleEnum, UserPermissions } from '@howdy/models';\r\nimport { filter } from 'rxjs/operators';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport * as cloneDeep from 'lodash.clonedeep';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PermissionService {\r\n\r\n get hasOnlyDepartmentManagerRights$(): Observable {\r\n return this._hasOnlyDepartmentManagerRights$.asObservable().pipe(filter(x => !!x));\r\n }\r\n\r\n get hasCompanyHRIntegrationRights$(): Observable {\r\n return this._hasCompanyHRIntegrationRights$.asObservable().pipe(filter(x => !!x));\r\n }\r\n\r\n get hasCompanyAdminRights$(): Observable {\r\n return this._hasCompanyAdminRights$.asObservable().pipe(filter(x => !!x));\r\n }\r\n\r\n get hasCompanyAdminReadonlyRights$(): Observable {\r\n return this._hasCompanyAdminReadonlyRights$.asObservable().pipe(filter(x => !!x));\r\n }\r\n\r\n get hasUserAdminRights$(): Observable {\r\n return this._hasUserAdminRights$.asObservable().pipe(filter(x => !!x));\r\n }\r\n\r\n get hasSystemAdminRights$(): Observable {\r\n return this._hasSystemAdminRights$.asObservable().pipe(filter(x => !!x));\r\n }\r\n\r\n get hasReadOnlyRights$(): Observable {\r\n return this._hasReadOnlyRights$.asObservable().pipe(filter(x => !!x));\r\n }\r\n\r\n get hasOnlyObserverRights$(): Observable {\r\n return this._hasOnlyObserverRights$.asObservable().pipe(filter(x => !!x));\r\n }\r\n\r\n get hasHowdyEmployeeRights$(): Observable {\r\n return this._hasHowdyEmployeeRights$.asObservable().pipe(filter(x => !!x));\r\n }\r\n\r\n get hasResponseCenterAdminRights$(): Observable {\r\n return this._hasResponseCenterAdminRights$.asObservable().pipe(filter(x => !!x));\r\n }\r\n\r\n get userPermissions$(): Observable {\r\n return this._userPermissions$.asObservable().pipe(filter(x => !!x));\r\n }\r\n\r\n get userPermissions(): UserPermissions {\r\n return cloneDeep(this._userPermissions);\r\n }\r\n\r\n private _hasOnlyDepartmentManagerRights$: BehaviorSubject = new BehaviorSubject(null);\r\n private _hasCompanyHRIntegrationRights$: BehaviorSubject = new BehaviorSubject(null);\r\n private _hasCompanyAdminRights$: BehaviorSubject = new BehaviorSubject(null);\r\n private _hasUserAdminRights$: BehaviorSubject = new BehaviorSubject(null);\r\n private _hasSystemAdminRights$: BehaviorSubject = new BehaviorSubject(null);\r\n private _hasReadOnlyRights$: BehaviorSubject = new BehaviorSubject(null);\r\n private _hasOnlyObserverRights$: BehaviorSubject = new BehaviorSubject(null);\r\n private _hasHowdyEmployeeRights$: BehaviorSubject = new BehaviorSubject(null);\r\n private _hasResponseCenterAdminRights$: BehaviorSubject = new BehaviorSubject(null);\r\n private _hasCompanyAdminReadonlyRights$: BehaviorSubject = new BehaviorSubject(null);\r\n private _userPermissions$: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n private roles: Role[];\r\n private _userPermissions: UserPermissions;\r\n\r\n constructor(private sharedService: SharedService) {\r\n this.sharedService.onEntityChange$.subscribe((roles: Role[]) => this.emitValues(roles));\r\n }\r\n\r\n hasOnlyDepartmentManagerRights(): boolean {\r\n return !!this.roles?.length &&\r\n this.roles.every(x => x.RoleType === UserRoleEnum.DepartmentManager || x.RoleType === UserRoleEnum.DepartmentManagerReadOnly);\r\n }\r\n\r\n hasOnlyObserverRights(): boolean {\r\n return !!this.roles?.length && this.roles.every(x => x.RoleType === UserRoleEnum.Observer);\r\n }\r\n\r\n hasReadOnlyRights(): boolean {\r\n const readOnlyRights: UserRoleEnum[] = [\r\n UserRoleEnum.CompanyAdministratorReadOnly,\r\n UserRoleEnum.DepartmentManagerReadOnly,\r\n UserRoleEnum.Observer\r\n ];\r\n\r\n return !!this.roles?.length && this.roles.every(x => readOnlyRights.includes(x.RoleType));\r\n }\r\n\r\n hasCompanyHRIntegrationRights(): boolean {\r\n const isHr = this.roles.some(role => role.RoleType === UserRoleEnum.HRIntegration);\r\n return isHr || this.hasSystemAdminRights();\r\n }\r\n\r\n hasCompanyAdminRights(): boolean {\r\n const isCompanyAdmin = this.roles.some(role => role.RoleType === UserRoleEnum.CompanyAdministrator);\r\n return isCompanyAdmin || this.hasSystemAdminRights();\r\n }\r\n\r\n hasCompanyAdminReadonlyRights(): boolean {\r\n const isCompanyReadonlyAdmin = this.roles.some(role => role.RoleType === UserRoleEnum.CompanyAdministratorReadOnly);\r\n return isCompanyReadonlyAdmin || this.hasSystemAdminRights();\r\n }\r\n\r\n hasUserAdminRights(): boolean {\r\n const isUserAdmin = this.roles.some(role =>\r\n role.RoleType === UserRoleEnum.PartnerAdministrator ||\r\n role.RoleType === UserRoleEnum.CompanyAdministrator ||\r\n role.RoleType === UserRoleEnum.ResponseCenterAdministrator);\r\n return isUserAdmin || this.hasSystemAdminRights();\r\n }\r\n\r\n hasSystemAdminRights(): boolean {\r\n return this.sharedService.userProfile.Me.IsSystemAdministrator;\r\n }\r\n\r\n hasHowdyEmployeeRights(): boolean {\r\n return this.sharedService.userProfile.Me.IsHowdyEmployee;\r\n }\r\n\r\n hasResponseCenterAdminRights(): boolean {\r\n const isResponseCenterAdmin = this.roles.some(role => role.RoleType === UserRoleEnum.ResponseCenterAdministrator);\r\n return isResponseCenterAdmin || this.hasSystemAdminRights();\r\n }\r\n\r\n hasPartnerAdminRights(): boolean {\r\n const isPartnerAdmin = this.roles.some(role => role.RoleType === UserRoleEnum.PartnerAdministrator);\r\n return isPartnerAdmin || this.hasSystemAdminRights();\r\n }\r\n\r\n hasAccessByRole(userRole: UserRoleEnum): boolean {\r\n switch (userRole) {\r\n case UserRoleEnum.SystemAdministrator:\r\n return this.hasSystemAdminRights();\r\n case UserRoleEnum.CompanyAdministrator:\r\n return this.hasCompanyAdminRights();\r\n case UserRoleEnum.DepartmentManager:\r\n return this.hasOnlyDepartmentManagerRights() || this.hasSystemAdminRights();\r\n case UserRoleEnum.HRIntegration:\r\n return this.hasCompanyHRIntegrationRights();\r\n case UserRoleEnum.ResponseCenterAdministrator:\r\n return this.hasResponseCenterAdminRights();\r\n case UserRoleEnum.PartnerAdministrator:\r\n return this.hasPartnerAdminRights();\r\n case UserRoleEnum.HowdyEmployee:\r\n return this.hasHowdyEmployeeRights();\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n hasAccess(userRoles: UserRoleEnum[]): boolean {\r\n\r\n if (!userRoles?.length) {\r\n return false;\r\n }\r\n\r\n return userRoles.some(userRole => this.hasAccessByRole(userRole));\r\n }\r\n\r\n private emitValues(roles: Role[]) {\r\n this.roles = roles;\r\n const permissionMethods = [\r\n 'hasOnlyDepartmentManagerRights', 'hasCompanyHRIntegrationRights', 'hasCompanyAdminRights', 'hasCompanyAdminReadonlyRights',\r\n 'hasUserAdminRights', 'hasSystemAdminRights', 'hasReadOnlyRights', 'hasOnlyObserverRights', 'hasHowdyEmployeeRights',\r\n 'hasResponseCenterAdminRights'\r\n ];\r\n\r\n this._userPermissions = permissionMethods.reduce((permissions, permissionFnName) => {\r\n const permission = this[permissionFnName]();\r\n permissions[permissionFnName] = permission;\r\n this[`_${permissionFnName}$`].next(permission);\r\n return permissions;\r\n }, {} as UserPermissions);\r\n\r\n this._userPermissions$.next(this._userPermissions);\r\n }\r\n}\r\n\r\nexport const BaseAccessRoles = [\r\n UserRoleEnum.Observer,\r\n UserRoleEnum.DepartmentManager,\r\n UserRoleEnum.CompanyAdministrator\r\n];\r\n\r\nexport const HowdyUserAccessRoles = [\r\n UserRoleEnum.HowdyEmployee,\r\n UserRoleEnum.SystemAdministrator,\r\n UserRoleEnum.ResponseCenterSupporter\r\n];\r\n","import { Injectable } from '@angular/core';\r\nimport { SharedService } from '../services/shared.service';\r\nimport { take, filter, map } from 'rxjs/operators';\r\nimport * as rg4js from 'raygun4js';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { IMe, Setting } from '@howdy/models';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RaygunService {\r\n\r\n loggerActive = false;\r\n raygunExcludedCompanies: number[];\r\n\r\n constructor(private sharedService: SharedService, private http: HttpClient) {\r\n this.sharedService.userProfile$.pipe(\r\n filter(({ Me }) => !!Me.Raygun),\r\n map(({ Me }) => Me),\r\n take(1)\r\n ).subscribe((user: IMe) => this.setupRaygun(user));\r\n }\r\n\r\n async setRaygunExcludedCompanies() {\r\n const settings = await this.getRaygunSettings();\r\n this.raygunExcludedCompanies = settings.filter(setting => !setting.BoolValue).map(setting => setting.CompanyId);\r\n }\r\n\r\n send(error: Error | HttpErrorResponse) {\r\n const activeCompany = this.sharedService.userPreferences.activeCompanyId;\r\n const excludeCompany = this.raygunExcludedCompanies?.includes(activeCompany);\r\n\r\n if (this.loggerActive && navigator.onLine && !excludeCompany) {\r\n rg4js('send', { error });\r\n }\r\n }\r\n\r\n getRaygunSettings() {\r\n return this.http.get(`##API##/settings/raygun`).toPromise();\r\n }\r\n\r\n private async setupRaygun(user: IMe) {\r\n const VERSION_NUMBER = '1.0.0.0';\r\n rg4js('apiKey', user.Raygun);\r\n rg4js('setVersion', VERSION_NUMBER);\r\n rg4js('enableCrashReporting', true);\r\n rg4js('options', {\r\n allowInsecureSubmissions: true,\r\n captureUnhandledRejections: true,\r\n captureMissingRequests: true\r\n });\r\n rg4js('onBeforeSend', (payload) => {\r\n console.log('Logging error to raygun');\r\n return payload;\r\n });\r\n this.setUser(user);\r\n this.loggerActive = true;\r\n\r\n if (!this.raygunExcludedCompanies) {\r\n await this.setRaygunExcludedCompanies();\r\n }\r\n }\r\n\r\n private setUser(user: IMe) {\r\n rg4js('setUser', {\r\n identifier: user.Email,\r\n isAnonymous: false,\r\n email: user.Email,\r\n firstName: user.Firstname,\r\n fullName: `${user.Firstname} ${user.Lastname}`\r\n });\r\n }\r\n}\r\n","import * as cloneDeep from 'lodash.clonedeep';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport {\r\n CaseOutcomes,\r\n Company,\r\n CompanyDepartment,\r\n CompanyDimensions,\r\n CompanySettings,\r\n CompanySettingsDimension,\r\n DepartmentDropdownData,\r\n Metric,\r\n Effort,\r\n Heatmap,\r\n IMe,\r\n Reminder,\r\n Role,\r\n TargetPeriods,\r\n UserPreferences,\r\n UserProfile\r\n} from '@howdy/models';\r\nimport { combineLatest, Observable } from 'rxjs';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { distinctUntilChanged, filter, first, map, switchMap } from 'rxjs/operators';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport * as moment from 'moment-timezone';\r\nimport { Moment } from 'moment';\r\nimport { LocalizedDatePipe } from '@howdy/shared/pipes/localized-date.pipe';\r\nimport { toTitleCase } from '@howdy/shared/utils/utils';\r\n\r\n@Injectable()\r\nexport class SharedService {\r\n\r\n private _userProfile$: BehaviorSubject = new BehaviorSubject(undefined);\r\n private _userPreferences$: BehaviorSubject = new BehaviorSubject(undefined);\r\n private _onEntityChange$: BehaviorSubject = new BehaviorSubject(undefined);\r\n private _onLanguageChange$: BehaviorSubject = new BehaviorSubject(undefined);\r\n private _globalDepartment$: BehaviorSubject = new BehaviorSubject(null);\r\n private _departmentMonthMetrics$: BehaviorSubject = new BehaviorSubject(null);\r\n private selectedPeriodSubject = new BehaviorSubject(null);\r\n private _effortsClick$: BehaviorSubject = new BehaviorSubject(null);\r\n private reminderSubject$: BehaviorSubject = new BehaviorSubject(null);\r\n private _selectorPeriodType$: BehaviorSubject = new BehaviorSubject(TargetPeriods.Month);\r\n private _maxDateAvailable$: BehaviorSubject = new BehaviorSubject(moment());\r\n\r\n private _userProfile: UserProfile;\r\n private _userPreferences: UserPreferences;\r\n private _numberOfEfforts: number;\r\n private _minDateAvailable: Moment;\r\n private _currentEfforts: Effort[];\r\n\r\n constructor(\r\n private cookie: CookieService,\r\n private http: HttpClient,\r\n private translateService: TranslateService\r\n ) { }\r\n\r\n get currentEfforts() {\r\n return this._currentEfforts;\r\n }\r\n\r\n set efforts(currentEfforts) {\r\n this._currentEfforts = currentEfforts;\r\n }\r\n\r\n get reminder$() {\r\n return this.reminderSubject$.asObservable();\r\n }\r\n\r\n get effortsClick$(): Observable {\r\n return this._effortsClick$.asObservable();\r\n }\r\n\r\n get selectedPeriod$(): Observable {\r\n return this.selectedPeriodSubject;\r\n }\r\n\r\n set selectedPeriod(period: Moment) {\r\n this.selectedPeriodSubject.next(period);\r\n }\r\n\r\n get numberOfEfforts() {\r\n return this._numberOfEfforts ? this._numberOfEfforts : 0;\r\n }\r\n\r\n get selectorPeriodType$() {\r\n return this._selectorPeriodType$.asObservable();\r\n }\r\n\r\n get minDateAvailable() {\r\n return this._minDateAvailable;\r\n }\r\n\r\n get maxDateAvailable$() {\r\n return this._maxDateAvailable$.asObservable();\r\n }\r\n\r\n get globalDepartment$(): Observable {\r\n return this._globalDepartment$.asObservable().pipe(distinctUntilChanged());\r\n }\r\n\r\n get metrics$(): Observable {\r\n return this._departmentMonthMetrics$.asObservable().pipe(filter(_ => !!_));\r\n }\r\n\r\n get userProfilePreferences$() {\r\n return combineLatest([this._userProfile$, this._userPreferences$])\r\n .pipe(filter(([userProfile, userPreferences]) => !!userProfile && !!userPreferences));\r\n }\r\n\r\n get userProfile$(): Observable {\r\n return this._userProfile$.asObservable().pipe(filter(x => !!x));\r\n }\r\n\r\n get userPreferences$(): Observable {\r\n return this._userPreferences$.asObservable().pipe(filter(x => !!x));\r\n }\r\n\r\n get onEntityChange$(): Observable {\r\n return this._onEntityChange$.asObservable().pipe(filter(x => !!x));\r\n }\r\n\r\n get onLanguageChange$(): Observable {\r\n return this._onLanguageChange$.asObservable().pipe(filter(x => !!x));\r\n }\r\n\r\n get userProfile(): UserProfile {\r\n return cloneDeep(this._userProfile);\r\n }\r\n\r\n get userPreferences(): UserPreferences {\r\n return cloneDeep(this._userPreferences);\r\n }\r\n\r\n get currentEntityRoles(): Role[] {\r\n const entityTypeAttribute = this.userPreferences.activeCompanyId ? 'CompanyId' : 'ResponseCenterId';\r\n const entityId = this.userPreferences.activeCompanyId || this.userPreferences.activeResponseCenterId;\r\n return this.userProfile.Me.Roles.filter(role => role[entityTypeAttribute] === entityId);\r\n }\r\n\r\n get myDepartmentsInCompany(): CompanyDepartment[] {\r\n const companyId = this.userPreferences.activeCompanyId;\r\n return companyId ? this.userProfile.Companies.find(company => company.Id === companyId).ManagingDepartments || [] : [];\r\n }\r\n\r\n get currentCompany(): Company {\r\n const companyId = this.userPreferences?.activeCompanyId;\r\n return companyId && this.userProfile.Companies?.length > 0\r\n ? this.userProfile.Companies.find(company => company.Id === companyId)\r\n : null;\r\n }\r\n\r\n get Moment() {\r\n const locale = this.translateService.currentLang;\r\n\r\n moment.updateLocale(locale, {\r\n longDateFormat: {\r\n L: 'DD-MM-YYYY',\r\n l: 'D-M-YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss'\r\n }\r\n });\r\n\r\n return moment;\r\n }\r\n\r\n onEffortsClick() {\r\n return this._effortsClick$.next();\r\n }\r\n\r\n setSelectorPeriodType(periodType: TargetPeriods) {\r\n this._selectorPeriodType$.next(periodType);\r\n }\r\n\r\n setMinDateAvailable(date: Moment) {\r\n this._minDateAvailable = date;\r\n }\r\n\r\n setMaxDateAvailable(date: Moment) {\r\n this._maxDateAvailable$.next(date);\r\n }\r\n\r\n setNumberOfEfforts(numberOfEfforts: number) {\r\n this._numberOfEfforts = numberOfEfforts;\r\n }\r\n\r\n setReminder(reminder: Reminder): void {\r\n this.reminderSubject$.next(reminder);\r\n }\r\n\r\n setUserPreferences(newPreferences: UserPreferences) {\r\n const oldPreferences = this.userPreferences;\r\n\r\n this._userPreferences = newPreferences;\r\n this._userPreferences$.next(this.userPreferences);\r\n this.saveUserPreferencesToCookie();\r\n\r\n if (!oldPreferences || newPreferences.activeEntityName !== oldPreferences.activeEntityName) {\r\n this._onEntityChange$.next(this.currentEntityRoles);\r\n }\r\n\r\n if (!oldPreferences || newPreferences.selectedLanguageId !== oldPreferences.selectedLanguageId) {\r\n this._onLanguageChange$.next(this.userPreferences);\r\n }\r\n }\r\n\r\n saveUserPreferencesToCookie() {\r\n const userPreferencesString = JSON.stringify(this._userPreferences);\r\n this.cookie.set('UserPreferences', userPreferencesString, this.addDays(new Date(), 3650));\r\n }\r\n\r\n async setGlobalDepartment(department: DepartmentDropdownData) {\r\n this._globalDepartment$.next(department);\r\n }\r\n\r\n async getMeData() {\r\n\r\n // Note: disable cache to prevent login as impersonated user\r\n let headers = new HttpHeaders();\r\n headers = headers.set('Cache-Control', 'no-cache');\r\n\r\n const userPref = await this.getUserPreferencesFromCookie();\r\n const wlbHowdyCompanyId = 1005;\r\n const meData = this.http.get(`##API##/userprofile/me`, { headers });\r\n const preloadedCompanyId = userPref?.activeCompanyId;\r\n const companiesR = preloadedCompanyId\r\n ? this.http.get(`##API##/userprofile/me/companies?companyId=${preloadedCompanyId}`, { headers })\r\n : this.http.get(`##API##/userprofile/me/companies?companyId=null`, { headers });\r\n const responseCentersR = this.http.get(`##API##/userprofile/me/responsecenters`, { headers });\r\n\r\n const [me, companies, responseCenters] = await combineLatest([meData, companiesR, responseCentersR]).pipe(first()).toPromise();\r\n\r\n if (responseCenters.length !== 0) {\r\n responseCenters.unshift({\r\n Id: -1,\r\n Name: 'All Response Centers',\r\n Mailbox: '',\r\n Hotline: '',\r\n NotifyViaEmail: false,\r\n NotifyViaSMS: false,\r\n type: 'rc'\r\n });\r\n }\r\n\r\n const newProfile: UserProfile = {\r\n Me: me,\r\n Companies: companies,\r\n ResponseCenters: responseCenters\r\n };\r\n\r\n if (!companies.length) {\r\n const companiesRequest = this.http.get(`##API##/userprofile/me/companies?companyId=null`, { headers });\r\n newProfile.Companies = await companiesRequest.pipe(first()).toPromise();\r\n userPref.activeCompanyId = null;\r\n }\r\n\r\n this._userProfile = newProfile;\r\n this._userProfile$.next(newProfile);\r\n\r\n if (userPref?.activeCompanyId) {\r\n await this.fetchCompanySettings(userPref.activeCompanyId);\r\n }\r\n\r\n moment.locale(me.Locale);\r\n moment.tz.setDefault(me.IanaTimeZone);\r\n\r\n const languageCode = me.Locale;\r\n\r\n userPref.selectedLanguageId = languageCode === 'en-gb' ? 'en' : languageCode;\r\n\r\n let companyFound = false;\r\n let company = null;\r\n let companyId = null;\r\n if (companies && companies.length > 0 && userPref.activeCompanyId\r\n && ((company = companies.find(c => c.Id === userPref.activeCompanyId)) != null)) {\r\n companyFound = true;\r\n }\r\n\r\n let responseCenterFound = false;\r\n let rc = null;\r\n if (responseCenters && responseCenters.length > 0 && userPref.activeResponseCenterId\r\n && ((rc = responseCenters.find(c => c.Id === userPref.activeResponseCenterId)) != null)) {\r\n responseCenterFound = true;\r\n }\r\n\r\n if (!companyFound && responseCenterFound) {\r\n userPref.activeCompanyId = null;\r\n userPref.activeEntityName = rc.Name;\r\n }\r\n\r\n if (companyFound && !responseCenterFound) {\r\n userPref.activeResponseCenterId = null;\r\n userPref.activeEntityName = company.Name;\r\n }\r\n\r\n if (!companyFound && !responseCenterFound && !newProfile.Me.IsSystemAdministrator && responseCenters.length > 0) {\r\n userPref.activeResponseCenterId = responseCenters[0].Id;\r\n userPref.activeCompanyId = null;\r\n userPref.activeEntityName = responseCenters[0].Name;\r\n } else {\r\n const activeCompanyId = !userPref.activeEntityName ? wlbHowdyCompanyId : userPref.activeCompanyId;\r\n companyId = newProfile.Me.IsSystemAdministrator ? activeCompanyId : newProfile.Companies[0].Id;\r\n\r\n await this.setActiveCompany(companyId, userPref, false);\r\n }\r\n\r\n if (companyFound && responseCenterFound) {\r\n userPref.activeResponseCenterId = responseCenters.length > 0 ? responseCenters[0].Id : null;\r\n userPref.activeEntityName = responseCenters[0].Name;\r\n userPref.activeCompanyId = null;\r\n }\r\n\r\n if (userPref.selectedLanguageId == null) {\r\n userPref.selectedLanguageId = 'en';\r\n }\r\n\r\n this.setUserPreferences(userPref);\r\n const hasRolesInMultipleCompanies = (me.Roles || [])\r\n .map(role => role.CompanyId)\r\n .filter(CompanyId => CompanyId !== null)\r\n .filter((value, index, self) => self.indexOf(value) === index)\r\n .length >= 2;\r\n const canAccessAllCompanies = me.IsSystemAdministrator || me.IsHowdyEmployee || hasRolesInMultipleCompanies;\r\n\r\n if (companies.length === 1 && canAccessAllCompanies && companyId) {\r\n this.getAllCompanies(companyId);\r\n }\r\n }\r\n\r\n async getAllCompanies(preloadedCompanyId: number) {\r\n // Note: disable cache to prevent login as impersonated user\r\n let headers = new HttpHeaders();\r\n headers = headers.set('Cache-Control', 'no-cache');\r\n\r\n const companiesR = this.http.get(`##API##/userprofile/me/companies?companyId=null`, { headers });\r\n const companies = await companiesR.pipe(first()).toPromise();\r\n\r\n const collator = new Intl.Collator('sv');\r\n const updatedProfile = {\r\n ...this._userProfile,\r\n Companies: [\r\n this.userProfile.Companies.find(x => x.Id === preloadedCompanyId),\r\n ...companies.filter(x => x.Id !== preloadedCompanyId)\r\n ].sort((a, b) => collator.compare(a.Name, b.Name))\r\n };\r\n\r\n this._userProfile = updatedProfile;\r\n this._userProfile$.next(updatedProfile);\r\n }\r\n\r\n async getUserPreferencesFromCookie() {\r\n const cookieString = this.cookie.get('UserPreferences');\r\n let userPrefVals = {} as UserPreferences;\r\n if (cookieString) {\r\n const prefCookie = JSON.parse(cookieString);\r\n userPrefVals = prefCookie;\r\n // Why We are having both we shouldn't ??\r\n if (prefCookie.activeResponseCenterId && prefCookie.activeCompanyId) {\r\n delete prefCookie.activeResponseCenterId;\r\n userPrefVals = prefCookie;\r\n }\r\n }\r\n\r\n moment.updateLocale(userPrefVals.selectedLanguageId || 'en', {\r\n longDateFormat: {\r\n L: 'DD-MM-YYYY',\r\n l: 'D-M-YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss'\r\n }\r\n });\r\n\r\n return userPrefVals;\r\n }\r\n\r\n addDays(date: Date, hours: number) {\r\n date.setHours(date.getDate() + hours);\r\n return date;\r\n }\r\n\r\n setLanguageLocalization(languageId: string) {\r\n const newPrefs = { ...this._userPreferences, selectedLanguageId: languageId };\r\n this.setUserPreferences(newPrefs);\r\n moment.updateLocale(languageId, {\r\n longDateFormat: {\r\n L: 'DD-MM-YYYY',\r\n l: 'D-M-YYYY',\r\n LL: 'D MMMM YYYY',\r\n LLL: 'D MMMM YYYY HH:mm',\r\n LLLL: 'dddd D MMMM YYYY HH:mm',\r\n LT: 'HH:mm',\r\n LTS: 'HH:mm:ss'\r\n }\r\n });\r\n }\r\n\r\n formatMonth(monthOfCalculation: Moment, showDays: boolean = true, format: string = 'MMM'): string {\r\n const now = moment();\r\n const isStartOfMonth = monthOfCalculation.isSame(now, 'day');\r\n const isCurrentMonth = now.isSame(monthOfCalculation, 'year') && now.isSame(monthOfCalculation, 'month');\r\n const yesterday = now.subtract(1, 'days');\r\n const datePipe = new LocalizedDatePipe(this.translateService);\r\n\r\n return isCurrentMonth && showDays && !isStartOfMonth\r\n ? yesterday.format('D. ') + toTitleCase(datePipe.transform(yesterday, 'MMM')).replace('.', '')\r\n : toTitleCase(datePipe.transform(monthOfCalculation, format)).replace('.', '');\r\n }\r\n\r\n async setActiveCompany(companyId: number, userPreferences: UserPreferences, updatePreferences = true) {\r\n const company = this._userProfile.Companies.find(x => x.Id === companyId);\r\n\r\n if (!company) {\r\n return;\r\n }\r\n\r\n await this.fetchCompanySettings(companyId);\r\n userPreferences.activeResponseCenterId = null;\r\n userPreferences.activeCompanyId = company.Id;\r\n userPreferences.activeEntityName = company.Name;\r\n\r\n if (updatePreferences) {\r\n this.setUserPreferences(userPreferences);\r\n }\r\n }\r\n\r\n getCompanyIntegrationStatus() {\r\n return this.userPreferences$.pipe(switchMap(\r\n ({ activeCompanyId }) =>\r\n this.http.get(`##API##/Company/${activeCompanyId}/Integration/Status`)), first());\r\n }\r\n\r\n getCompanyIntegrationTestAccessStatus() {\r\n return this.userPreferences$.pipe(switchMap(\r\n ({ activeCompanyId }) =>\r\n this.http.get(`##API##/Company/${activeCompanyId}/Integration/Status/User`)), first());\r\n }\r\n\r\n getCompanyDepartments(includeManagers: boolean = false, includeMetrics: boolean = false, id: number = null) {\r\n const companyId = !!id ? id : this._userPreferences.activeCompanyId;\r\n const options = { params: { includeManagers, includeMetrics } };\r\n return this.http.get(`##API##/Company/${companyId}/Department`, options);\r\n }\r\n\r\n getCompanyDimensions(id: number = null) {\r\n const companyId = !!id ? id : this._userPreferences.activeCompanyId;\r\n return this.http.get(`##API##/Company/${companyId}/Dimension`);\r\n }\r\n\r\n getCompanyEnabledLanguages() {\r\n return this.userPreferences$.pipe(\r\n filter(({ activeCompanyId, activeResponseCenterId }) => !!activeCompanyId && !activeResponseCenterId),\r\n switchMap(({ activeCompanyId }) => this.http.get(`##API##/Company/${activeCompanyId}/Language/Enabled`)),\r\n first()\r\n );\r\n }\r\n\r\n getActiveDimensions() {\r\n const companyId = this._userPreferences.activeCompanyId;\r\n const langId = this.translateService.currentLang;\r\n return this.http.get(`##API##/Company/${companyId}/Dimension/Active/${langId}`);\r\n }\r\n\r\n getHeatmapData(departmentId: number = null) {\r\n const companyId = this._userPreferences.activeCompanyId;\r\n const params = { departmentId: `${departmentId}` };\r\n\r\n return this.http.get(`##API##/Dashboard/Company/${companyId}/heatmap`, { params });\r\n }\r\n\r\n getCaseOutcomes() {\r\n const companyId = this._userPreferences.activeCompanyId;\r\n const languageId = this._userPreferences.selectedLanguageId;\r\n const params = { languageCode: languageId, companyId };\r\n\r\n return this.http.get(`##API##/Company/caseoutcomes`, { params });\r\n }\r\n\r\n private async fetchCompanySettings(companyId: number) {\r\n const company = this._userProfile.Companies.find(x => x.Id === companyId);\r\n\r\n if (company && !company.Settings) {\r\n company.Settings = await this.http.get(`##API##/Company/${companyId}/Integration/Settings`).toPromise();\r\n }\r\n }\r\n\r\n private fetchDepartmentMetrics(departmentId: number) {\r\n const companyId = this.userPreferences.activeCompanyId;\r\n const options = { params: { departmentId: `${departmentId}` } };\r\n return this.http.get(`##API##/Dashboard/Company/${companyId}/metrics`, options)\r\n .pipe(map(metrics => metrics.map(metric => ({ ...metric, MonthStart: moment(metric.MonthStart) }))));\r\n }\r\n}\r\n","import { CookieOptions, CookieService } from 'ngx-cookie-service';\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { Router } from '@angular/router';\r\nimport { OPEN_VIEW_PARAM } from '@howdy/models';\r\n\r\nconst AUTH_URL = 'https://auth.worklifebarometer.com';\r\n\r\n@Injectable()\r\nexport class TokenService {\r\n\r\n rawToken: string;\r\n DataCenter: string;\r\n DataCenterApiEndPoint: string;\r\n Expiry: number;\r\n IsImpersonation: boolean;\r\n\r\n private AuthType: string;\r\n\r\n get authType() {\r\n return this.AuthType;\r\n }\r\n\r\n constructor(\r\n private cookie: CookieService,\r\n private jwtHelperService: JwtHelperService,\r\n private injector: Injector\r\n ) { }\r\n\r\n setToken(token: string) {\r\n const rawToken = token.replace(/\\!/g, '.');\r\n const payload = this.jwtHelperService.decodeToken(rawToken);\r\n\r\n if (!!payload.IsImpersonation) {\r\n this.IsImpersonation = true;\r\n } else {\r\n const options: CookieOptions = { path: '/', sameSite: 'Lax', secure: true };\r\n this.cookie.set('AuthToken', rawToken, options);\r\n }\r\n\r\n this.rawToken = rawToken;\r\n this.DataCenter = payload.dc;\r\n this.DataCenterApiEndPoint = payload.api;\r\n this.AuthType = payload.apt;\r\n this.Expiry = payload.exp;\r\n\r\n return rawToken;\r\n }\r\n\r\n getToken() {\r\n if (this.rawToken != null && this.rawToken !== '') {\r\n return this.rawToken;\r\n } else {\r\n const sessionToken = this.jwtHelperService.tokenGetter();\r\n\r\n if (sessionToken) {\r\n const token = this.setToken(sessionToken);\r\n return token;\r\n } else {\r\n console.error('-------No Token help------');\r\n }\r\n }\r\n }\r\n\r\n readTokenFromURL() {\r\n const router = this.injector.get(Router);\r\n const jwtTokenService = this.injector.get(JwtHelperService);\r\n const cookieService = this.injector.get(CookieService);\r\n\r\n if (window.location.href.indexOf('token') > -1) {\r\n const token = window.location.href.substr(window.location.href.lastIndexOf('/') + 1);\r\n this.setToken(token);\r\n router.navigate(['pages/dashboard']);\r\n } else if (window.location.href.indexOf('managerfeedback') > -1) {\r\n this.clearToken();\r\n let href = window.location.href;\r\n const token = href.substr(href.lastIndexOf('/') + 1);\r\n href = href.substring(0, href.lastIndexOf('/'));\r\n this.setToken(token);\r\n const secretKey = href.substr(href.lastIndexOf('/') + 1);\r\n router.navigate([`forms/managerfeedback/${secretKey}`]);\r\n } else {\r\n const token = cookieService.get('AuthToken');\r\n if (!token || jwtTokenService.isTokenExpired(token)) {\r\n\r\n if (window.location.href.indexOf(OPEN_VIEW_PARAM) >= 0) {\r\n const paramsString = window.location.href.substr(window.location.href.lastIndexOf('?') + 1);\r\n const targetView = paramsString\r\n .split('&')\r\n .find(x => x.startsWith(OPEN_VIEW_PARAM))\r\n .split('=')[1];\r\n this.cookie.set(OPEN_VIEW_PARAM, targetView);\r\n }\r\n\r\n window.location.href = AUTH_URL;\r\n }\r\n this.setToken(token);\r\n }\r\n }\r\n\r\n clearToken() {\r\n this.rawToken = null;\r\n this.cookie.delete('AuthToken');\r\n }\r\n\r\n isValid() {\r\n const token = this.jwtHelperService.tokenGetter();\r\n const decodedToken = token && this.jwtHelperService.decodeToken(token);\r\n const containGuid = token && decodedToken && !!decodedToken.guid;\r\n const isExpired = this.jwtHelperService.isTokenExpired(token);\r\n\r\n return token && decodedToken && containGuid && !isExpired;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { LanguageCodeToId, LanguageEnum } from '@howdy/models';\r\n\r\n\r\n@Pipe({\r\n name: 'localizedDate',\r\n pure: false\r\n})\r\nexport class LocalizedDatePipe implements PipeTransform {\r\n dateTimePattern: string = 'EEEE {} d {} MMMM {} HH.mm';\r\n\r\n constructor(private translateService: TranslateService) {}\r\n\r\n transform(value: any, pattern: string = 'dd MMMM YYYY HH:mm'): any {\r\n const datePipe: DatePipe = new DatePipe(this.translateService.currentLang);\r\n const dateTime = datePipe.transform(value, pattern);\r\n\r\n if (pattern === this.dateTimePattern) {\r\n const languageId = LanguageCodeToId[this.translateService.currentLang];\r\n return this.replacePlaceholders(dateTime, languageId);\r\n }\r\n\r\n return dateTime;\r\n }\r\n\r\n getFormattedDateTime(date: any): string {\r\n const languageId = LanguageCodeToId[this.translateService.currentLang];\r\n const formattedDate = this.transform(date, this.dateTimePattern);\r\n\r\n return this.replacePlaceholders(formattedDate, languageId);\r\n }\r\n\r\n replacePlaceholders(formattedDate: string, languageId: number): string {\r\n if (languageId === LanguageEnum.English) {\r\n return formattedDate\r\n .replace('{}', 'the')\r\n .replace('{}', 'of')\r\n .replace('{}', 'at');\r\n } else if (languageId === LanguageEnum.Danish) {\r\n return formattedDate\r\n .replace('{}', 'den')\r\n .replace('{}', '')\r\n .replace('{}', 'klokken');\r\n } else {\r\n return formattedDate\r\n .replace('{}', 'den')\r\n .replace('{}', '')\r\n .replace('{}', 'kl');\r\n }\r\n }\r\n}\r\n","\r\nexport function triggerDownload(json: any, name?: string) {\r\n const data = `text/json;charset=utf-8,${encodeURIComponent(JSON.stringify(json))}`;\r\n const el = document.createElement('a');\r\n el.download = `${name || 'data'}.json`;\r\n el.href = `data:${data}`;\r\n el.click();\r\n}\r\n\r\nexport function triggerDownloadCsv(csv: any, name?: string) {\r\n const data = `text/csv;charset=utf-8,${encodeURIComponent(csv)}`;\r\n const el = document.createElement('a');\r\n el.download = `${name || 'data'}.csv`;\r\n el.href = `data:${data}`;\r\n el.click();\r\n}\r\n\r\nexport function toTitleCase(s: string): string {\r\n return s && s.length > 1 ? s[0].toUpperCase() + s.substr(1) : s;\r\n}\r\n\r\nexport function phraseToTitleCase(phrase: string): string {\r\n return !!phrase.length\r\n ? phrase\r\n .toLowerCase()\r\n .split(' ')\r\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\r\n .join(' ')\r\n : phrase;\r\n}\r\n\r\nexport function focusFirstInvalidElement(container: HTMLElement): boolean {\r\n const invalids: HTMLInputElement[] = Array.from(container.querySelectorAll(':not(form).ng-invalid'));\r\n const target: HTMLInputElement = invalids.filter((el: HTMLInputElement | HTMLSelectElement) => !el.disabled)[0] || null;\r\n if (target) {\r\n target.scrollIntoView({ behavior: 'smooth' });\r\n target.focus();\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nexport function capitalizeString(s: string): string {\r\n return typeof s === 'string' ? s.charAt(0).toUpperCase() + s.slice(1) : s;\r\n}\r\n\r\nexport function capitalizeKeys(object: any): any {\r\n const validated = JSON.parse(JSON.stringify(object || null));\r\n if (Array.isArray(validated)) {\r\n return object.map(capitalizeKeys);\r\n }\r\n if (typeof validated === 'object' && !!object) {\r\n return Object.keys(object).reduce((res, key) => {\r\n res[capitalizeString(key)] = capitalizeKeys(object[key]);\r\n return res;\r\n }, {});\r\n }\r\n return object;\r\n}\r\n\r\nexport function round(value: number, precision: number = 0) {\r\n const scale = Math.pow(10, Math.trunc(precision));\r\n return Math.round(value * scale) / scale;\r\n}\r\n\r\nexport function splitCamelCaseString(s: string) {\r\n return s.replace(/([a-z])([A-Z])/g, '$1 $2');\r\n}\r\n\r\nexport class Counter {\r\n targetValue: number;\r\n currentValue: number;\r\n animationId: number;\r\n\r\n constructor() { }\r\n\r\n isRunning(): boolean {\r\n return this.targetValue !== this.currentValue;\r\n }\r\n\r\n stop(): void {\r\n cancelAnimationFrame(this.animationId);\r\n this.targetValue = this.currentValue = this.animationId = null;\r\n }\r\n\r\n updateWithAnimation(object: Object, property: string, newValue: number, precision: number = 0, stringify: boolean = false): void {\r\n if (+object[property] === newValue) {\r\n this.targetValue = this.currentValue = null;\r\n return;\r\n }\r\n\r\n if (newValue === null) {\r\n object[property] = null;\r\n return;\r\n }\r\n\r\n this.targetValue = newValue;\r\n this.currentValue = +object[property];\r\n const scale = Math.pow(10, precision);\r\n\r\n const numberOfSteps = Math.abs(newValue - object[property]) * scale;\r\n const step = numberOfSteps > 30 ? numberOfSteps / 30 / scale : 1 / scale;\r\n\r\n const updateValue = () => {\r\n const current = this.currentValue;\r\n const addition = current < newValue && Math.min(current + step, newValue);\r\n const subtraction = current > newValue && Math.max(current - step, newValue);\r\n\r\n this.currentValue = addition || subtraction;\r\n object[property] = stringify ? round(this.currentValue, precision).toFixed(precision) : round(this.currentValue, precision);\r\n\r\n if (+object[property] !== newValue && this.animationId) {\r\n this.animationId = requestAnimationFrame(updateValue);\r\n }\r\n };\r\n\r\n this.animationId = requestAnimationFrame(updateValue);\r\n }\r\n}\r\n\r\nexport class ParallelCounter {\r\n counters: Counter[] = [];\r\n\r\n constructor() { }\r\n\r\n stopAll(): void {\r\n this.counters.forEach(counter => counter.stop());\r\n this.counters = [];\r\n }\r\n\r\n isAnyRunning(): boolean {\r\n return this.counters.some(counter => counter.isRunning());\r\n }\r\n\r\n updateWithAnimation(object: Object, property: string, newValue: number, precision: number = 0, stringify: boolean = false): void {\r\n const counter = new Counter();\r\n this.counters.push(counter);\r\n counter.updateWithAnimation(object, property, newValue, precision, stringify);\r\n }\r\n}\r\n\r\nexport function getRandomColor() {\r\n const r = ('0' + ((Math.random() * 256) | 0).toString(16)).slice(-2);\r\n const g = ('0' + ((Math.random() * 256) | 0).toString(16)).slice(-2);\r\n const b = ('0' + ((Math.random() * 256) | 0).toString(16)).slice(-2);\r\n return '#' + r + g + b;\r\n}\r\n\r\nexport function flatten(array: any[], depth = 1) {\r\n return depth > 0 ? array.reduce((acc, val) => acc.concat(Array.isArray(val) ? flatten(val, depth - 1) : val), []) : array.slice();\r\n}\r\n\r\nexport function objectsEquals(obj1: Object, obj2: Object): boolean {\r\n return Object.keys(obj1).every(key => {\r\n return obj2.hasOwnProperty(key) ?\r\n typeof obj1[key] === 'object' ? objectsEquals(obj1[key], obj2[key]) : obj1[key] === obj2[key] : false;\r\n });\r\n}\r\n","/* eslint-disable max-len */\r\n/**\r\n * @license\r\n * Copyright Akveo. All Rights Reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n */\r\nexport const environment = {\r\n production: true,\r\n agGridLicence: 'Using_this_{AG_Grid}_Enterprise_key_{AG-072555}_in_excess_of_the_licence_granted_is_not_permitted___Please_report_misuse_to_legal@ag-grid.com___For_help_with_changing_this_key_please_contact_info@ag-grid.com___{Worklife_Barometer_ApS}_is_granted_a_{Single_Application}_Developer_License_for_the_application_{Howdy_Portal}_only_for_{1}_Front-End_JavaScript_developer___All_Front-End_JavaScript_developers_working_on_{Howdy_Portal}_need_to_be_licensed___{Howdy_Portal}_has_not_been_granted_a_Deployment_License_Add-on___This_key_works_with_{AG_Grid}_Enterprise_versions_released_before_{31_January_2026}____[v3]_[01]_MTc2OTgxNzYwMDAwMA==4df0c2ba813353a1e2d968aa386b08a2'\r\n};\r\n","/**\n * @license Angular v15.0.4\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵAnimationGroupPlayer, NoopAnimationPlayer, AUTO_STYLE, ɵPRE_STYLE, sequence, style } from '@angular/animations';\nimport * as i0 from '@angular/core';\nimport { ɵRuntimeError, Injectable } from '@angular/core';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst LINE_START = '\\n - ';\nfunction invalidTimingValue(exp) {\n return new ɵRuntimeError(3000 /* RuntimeErrorCode.INVALID_TIMING_VALUE */, ngDevMode && `The provided timing value \"${exp}\" is invalid.`);\n}\nfunction negativeStepValue() {\n return new ɵRuntimeError(3100 /* RuntimeErrorCode.NEGATIVE_STEP_VALUE */, ngDevMode && 'Duration values below 0 are not allowed for this animation step.');\n}\nfunction negativeDelayValue() {\n return new ɵRuntimeError(3101 /* RuntimeErrorCode.NEGATIVE_DELAY_VALUE */, ngDevMode && 'Delay values below 0 are not allowed for this animation step.');\n}\nfunction invalidStyleParams(varName) {\n return new ɵRuntimeError(3001 /* RuntimeErrorCode.INVALID_STYLE_PARAMS */, ngDevMode &&\n `Unable to resolve the local animation param ${varName} in the given list of values`);\n}\nfunction invalidParamValue(varName) {\n return new ɵRuntimeError(3003 /* RuntimeErrorCode.INVALID_PARAM_VALUE */, ngDevMode && `Please provide a value for the animation param ${varName}`);\n}\nfunction invalidNodeType(nodeType) {\n return new ɵRuntimeError(3004 /* RuntimeErrorCode.INVALID_NODE_TYPE */, ngDevMode && `Unable to resolve animation metadata node #${nodeType}`);\n}\nfunction invalidCssUnitValue(userProvidedProperty, value) {\n return new ɵRuntimeError(3005 /* RuntimeErrorCode.INVALID_CSS_UNIT_VALUE */, ngDevMode && `Please provide a CSS unit value for ${userProvidedProperty}:${value}`);\n}\nfunction invalidTrigger() {\n return new ɵRuntimeError(3006 /* RuntimeErrorCode.INVALID_TRIGGER */, ngDevMode &&\n 'animation triggers cannot be prefixed with an `@` sign (e.g. trigger(\\'@foo\\', [...]))');\n}\nfunction invalidDefinition() {\n return new ɵRuntimeError(3007 /* RuntimeErrorCode.INVALID_DEFINITION */, ngDevMode && 'only state() and transition() definitions can sit inside of a trigger()');\n}\nfunction invalidState(metadataName, missingSubs) {\n return new ɵRuntimeError(3008 /* RuntimeErrorCode.INVALID_STATE */, ngDevMode &&\n `state(\"${metadataName}\", ...) must define default values for all the following style substitutions: ${missingSubs.join(', ')}`);\n}\nfunction invalidStyleValue(value) {\n return new ɵRuntimeError(3002 /* RuntimeErrorCode.INVALID_STYLE_VALUE */, ngDevMode && `The provided style string value ${value} is not allowed.`);\n}\nfunction invalidProperty(prop) {\n return new ɵRuntimeError(3009 /* RuntimeErrorCode.INVALID_PROPERTY */, ngDevMode &&\n `The provided animation property \"${prop}\" is not a supported CSS property for animations`);\n}\nfunction invalidParallelAnimation(prop, firstStart, firstEnd, secondStart, secondEnd) {\n return new ɵRuntimeError(3010 /* RuntimeErrorCode.INVALID_PARALLEL_ANIMATION */, ngDevMode &&\n `The CSS property \"${prop}\" that exists between the times of \"${firstStart}ms\" and \"${firstEnd}ms\" is also being animated in a parallel animation between the times of \"${secondStart}ms\" and \"${secondEnd}ms\"`);\n}\nfunction invalidKeyframes() {\n return new ɵRuntimeError(3011 /* RuntimeErrorCode.INVALID_KEYFRAMES */, ngDevMode && `keyframes() must be placed inside of a call to animate()`);\n}\nfunction invalidOffset() {\n return new ɵRuntimeError(3012 /* RuntimeErrorCode.INVALID_OFFSET */, ngDevMode && `Please ensure that all keyframe offsets are between 0 and 1`);\n}\nfunction keyframeOffsetsOutOfOrder() {\n return new ɵRuntimeError(3200 /* RuntimeErrorCode.KEYFRAME_OFFSETS_OUT_OF_ORDER */, ngDevMode && `Please ensure that all keyframe offsets are in order`);\n}\nfunction keyframesMissingOffsets() {\n return new ɵRuntimeError(3202 /* RuntimeErrorCode.KEYFRAMES_MISSING_OFFSETS */, ngDevMode && `Not all style() steps within the declared keyframes() contain offsets`);\n}\nfunction invalidStagger() {\n return new ɵRuntimeError(3013 /* RuntimeErrorCode.INVALID_STAGGER */, ngDevMode && `stagger() can only be used inside of query()`);\n}\nfunction invalidQuery(selector) {\n return new ɵRuntimeError(3014 /* RuntimeErrorCode.INVALID_QUERY */, ngDevMode &&\n `\\`query(\"${selector}\")\\` returned zero elements. (Use \\`query(\"${selector}\", { optional: true })\\` if you wish to allow this.)`);\n}\nfunction invalidExpression(expr) {\n return new ɵRuntimeError(3015 /* RuntimeErrorCode.INVALID_EXPRESSION */, ngDevMode && `The provided transition expression \"${expr}\" is not supported`);\n}\nfunction invalidTransitionAlias(alias) {\n return new ɵRuntimeError(3016 /* RuntimeErrorCode.INVALID_TRANSITION_ALIAS */, ngDevMode && `The transition alias value \"${alias}\" is not supported`);\n}\nfunction validationFailed(errors) {\n return new ɵRuntimeError(3500 /* RuntimeErrorCode.VALIDATION_FAILED */, ngDevMode && `animation validation failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction buildingFailed(errors) {\n return new ɵRuntimeError(3501 /* RuntimeErrorCode.BUILDING_FAILED */, ngDevMode && `animation building failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerBuildFailed(name, errors) {\n return new ɵRuntimeError(3404 /* RuntimeErrorCode.TRIGGER_BUILD_FAILED */, ngDevMode &&\n `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors.map(err => err.message).join('\\n - ')}`);\n}\nfunction animationFailed(errors) {\n return new ɵRuntimeError(3502 /* RuntimeErrorCode.ANIMATION_FAILED */, ngDevMode &&\n `Unable to animate due to the following errors:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction registerFailed(errors) {\n return new ɵRuntimeError(3503 /* RuntimeErrorCode.REGISTRATION_FAILED */, ngDevMode &&\n `Unable to build the animation due to the following errors: ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingOrDestroyedAnimation() {\n return new ɵRuntimeError(3300 /* RuntimeErrorCode.MISSING_OR_DESTROYED_ANIMATION */, ngDevMode && 'The requested animation doesn\\'t exist or has already been destroyed');\n}\nfunction createAnimationFailed(errors) {\n return new ɵRuntimeError(3504 /* RuntimeErrorCode.CREATE_ANIMATION_FAILED */, ngDevMode &&\n `Unable to create the animation due to the following errors:${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingPlayer(id) {\n return new ɵRuntimeError(3301 /* RuntimeErrorCode.MISSING_PLAYER */, ngDevMode && `Unable to find the timeline player referenced by ${id}`);\n}\nfunction missingTrigger(phase, name) {\n return new ɵRuntimeError(3302 /* RuntimeErrorCode.MISSING_TRIGGER */, ngDevMode &&\n `Unable to listen on the animation trigger event \"${phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n}\nfunction missingEvent(name) {\n return new ɵRuntimeError(3303 /* RuntimeErrorCode.MISSING_EVENT */, ngDevMode &&\n `Unable to listen on the animation trigger \"${name}\" because the provided event is undefined!`);\n}\nfunction unsupportedTriggerEvent(phase, name) {\n return new ɵRuntimeError(3400 /* RuntimeErrorCode.UNSUPPORTED_TRIGGER_EVENT */, ngDevMode &&\n `The provided animation trigger event \"${phase}\" for the animation trigger \"${name}\" is not supported!`);\n}\nfunction unregisteredTrigger(name) {\n return new ɵRuntimeError(3401 /* RuntimeErrorCode.UNREGISTERED_TRIGGER */, ngDevMode && `The provided animation trigger \"${name}\" has not been registered!`);\n}\nfunction triggerTransitionsFailed(errors) {\n return new ɵRuntimeError(3402 /* RuntimeErrorCode.TRIGGER_TRANSITIONS_FAILED */, ngDevMode &&\n `Unable to process animations due to the following failed trigger transitions\\n ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerParsingFailed(name, errors) {\n return new ɵRuntimeError(3403 /* RuntimeErrorCode.TRIGGER_PARSING_FAILED */, ngDevMode &&\n `Animation parsing for the ${name} trigger have failed:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction transitionFailed(name, errors) {\n return new ɵRuntimeError(3505 /* RuntimeErrorCode.TRANSITION_FAILED */, ngDevMode && `@${name} has failed due to:\\n ${errors.map(err => err.message).join('\\n- ')}`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Set of all animatable CSS properties\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties\n */\nconst ANIMATABLE_PROP_SET = new Set([\n '-moz-outline-radius',\n '-moz-outline-radius-bottomleft',\n '-moz-outline-radius-bottomright',\n '-moz-outline-radius-topleft',\n '-moz-outline-radius-topright',\n '-ms-grid-columns',\n '-ms-grid-rows',\n '-webkit-line-clamp',\n '-webkit-text-fill-color',\n '-webkit-text-stroke',\n '-webkit-text-stroke-color',\n 'accent-color',\n 'all',\n 'backdrop-filter',\n 'background',\n 'background-color',\n 'background-position',\n 'background-size',\n 'block-size',\n 'border',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-width',\n 'border-color',\n 'border-end-end-radius',\n 'border-end-start-radius',\n 'border-image-outset',\n 'border-image-slice',\n 'border-image-width',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-width',\n 'border-left',\n 'border-left-color',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-width',\n 'border-start-end-radius',\n 'border-start-start-radius',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-shadow',\n 'caret-color',\n 'clip',\n 'clip-path',\n 'color',\n 'column-count',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-width',\n 'column-width',\n 'columns',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-grow',\n 'flex-shrink',\n 'font',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-variation-settings',\n 'font-weight',\n 'gap',\n 'grid-column-gap',\n 'grid-gap',\n 'grid-row-gap',\n 'grid-template-columns',\n 'grid-template-rows',\n 'height',\n 'inline-size',\n 'input-security',\n 'inset',\n 'inset-block',\n 'inset-block-end',\n 'inset-block-start',\n 'inset-inline',\n 'inset-inline-end',\n 'inset-inline-start',\n 'left',\n 'letter-spacing',\n 'line-clamp',\n 'line-height',\n 'margin',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'mask',\n 'mask-border',\n 'mask-position',\n 'mask-size',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-lines',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'object-position',\n 'offset',\n 'offset-anchor',\n 'offset-distance',\n 'offset-path',\n 'offset-position',\n 'offset-rotate',\n 'opacity',\n 'order',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-width',\n 'padding',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'perspective',\n 'perspective-origin',\n 'right',\n 'rotate',\n 'row-gap',\n 'scale',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-coordinate',\n 'scroll-snap-destination',\n 'scrollbar-color',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'tab-size',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-thickness',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-indent',\n 'text-shadow',\n 'text-underline-offset',\n 'top',\n 'transform',\n 'transform-origin',\n 'translate',\n 'vertical-align',\n 'visibility',\n 'width',\n 'word-spacing',\n 'z-index',\n 'zoom',\n]);\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction isBrowser() {\n return (typeof window !== 'undefined' && typeof window.document !== 'undefined');\n}\nfunction isNode() {\n // Checking only for `process` isn't enough to identify whether or not we're in a Node\n // environment, because Webpack by default will polyfill the `process`. While we can discern\n // that Webpack polyfilled it by looking at `process.browser`, it's very Webpack-specific and\n // might not be future-proof. Instead we look at the stringified version of `process` which\n // is `[object process]` in Node and `[object Object]` when polyfilled.\n return typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n}\nfunction optimizeGroupPlayer(players) {\n switch (players.length) {\n case 0:\n return new NoopAnimationPlayer();\n case 1:\n return players[0];\n default:\n return new ɵAnimationGroupPlayer(players);\n }\n}\nfunction normalizeKeyframes$1(driver, normalizer, element, keyframes, preStyles = new Map(), postStyles = new Map()) {\n const errors = [];\n const normalizedKeyframes = [];\n let previousOffset = -1;\n let previousKeyframe = null;\n keyframes.forEach(kf => {\n const offset = kf.get('offset');\n const isSameOffset = offset == previousOffset;\n const normalizedKeyframe = (isSameOffset && previousKeyframe) || new Map();\n kf.forEach((val, prop) => {\n let normalizedProp = prop;\n let normalizedValue = val;\n if (prop !== 'offset') {\n normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n switch (normalizedValue) {\n case ɵPRE_STYLE:\n normalizedValue = preStyles.get(prop);\n break;\n case AUTO_STYLE:\n normalizedValue = postStyles.get(prop);\n break;\n default:\n normalizedValue =\n normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n break;\n }\n }\n normalizedKeyframe.set(normalizedProp, normalizedValue);\n });\n if (!isSameOffset) {\n normalizedKeyframes.push(normalizedKeyframe);\n }\n previousKeyframe = normalizedKeyframe;\n previousOffset = offset;\n });\n if (errors.length) {\n throw animationFailed(errors);\n }\n return normalizedKeyframes;\n}\nfunction listenOnPlayer(player, eventName, event, callback) {\n switch (eventName) {\n case 'start':\n player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player)));\n break;\n case 'done':\n player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player)));\n break;\n case 'destroy':\n player.onDestroy(() => callback(event && copyAnimationEvent(event, 'destroy', player)));\n break;\n }\n}\nfunction copyAnimationEvent(e, phaseName, player) {\n const totalTime = player.totalTime;\n const disabled = player.disabled ? true : false;\n const event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime, disabled);\n const data = e['_data'];\n if (data != null) {\n event['_data'] = data;\n }\n return event;\n}\nfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName = '', totalTime = 0, disabled) {\n return { element, triggerName, fromState, toState, phaseName, totalTime, disabled: !!disabled };\n}\nfunction getOrSetDefaultValue(map, key, defaultValue) {\n let value = map.get(key);\n if (!value) {\n map.set(key, value = defaultValue);\n }\n return value;\n}\nfunction parseTimelineCommand(command) {\n const separatorPos = command.indexOf(':');\n const id = command.substring(1, separatorPos);\n const action = command.slice(separatorPos + 1);\n return [id, action];\n}\nlet _contains = (elm1, elm2) => false;\nlet _query = (element, selector, multi) => {\n return [];\n};\nlet _documentElement = null;\nfunction getParentElement(element) {\n const parent = element.parentNode || element.host; // consider host to support shadow DOM\n if (parent === _documentElement) {\n return null;\n }\n return parent;\n}\n// Define utility methods for browsers and platform-server(domino) where Element\n// and utility methods exist.\nconst _isNode = isNode();\nif (_isNode || typeof Element !== 'undefined') {\n if (!isBrowser()) {\n _contains = (elm1, elm2) => elm1.contains(elm2);\n }\n else {\n // Read the document element in an IIFE that's been marked pure to avoid a top-level property\n // read that may prevent tree-shaking.\n _documentElement = /* @__PURE__ */ (() => document.documentElement)();\n _contains = (elm1, elm2) => {\n while (elm2) {\n if (elm2 === elm1) {\n return true;\n }\n elm2 = getParentElement(elm2);\n }\n return false;\n };\n }\n _query = (element, selector, multi) => {\n if (multi) {\n return Array.from(element.querySelectorAll(selector));\n }\n const elem = element.querySelector(selector);\n return elem ? [elem] : [];\n };\n}\nfunction containsVendorPrefix(prop) {\n // Webkit is the only real popular vendor prefix nowadays\n // cc: http://shouldiprefix.com/\n return prop.substring(1, 6) == 'ebkit'; // webkit or Webkit\n}\nlet _CACHED_BODY = null;\nlet _IS_WEBKIT = false;\nfunction validateStyleProperty(prop) {\n if (!_CACHED_BODY) {\n _CACHED_BODY = getBodyNode() || {};\n _IS_WEBKIT = _CACHED_BODY.style ? ('WebkitAppearance' in _CACHED_BODY.style) : false;\n }\n let result = true;\n if (_CACHED_BODY.style && !containsVendorPrefix(prop)) {\n result = prop in _CACHED_BODY.style;\n if (!result && _IS_WEBKIT) {\n const camelProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.slice(1);\n result = camelProp in _CACHED_BODY.style;\n }\n }\n return result;\n}\nfunction validateWebAnimatableStyleProperty(prop) {\n return ANIMATABLE_PROP_SET.has(prop);\n}\nfunction getBodyNode() {\n if (typeof document != 'undefined') {\n return document.body;\n }\n return null;\n}\nconst containsElement = _contains;\nconst invokeQuery = _query;\nfunction hypenatePropsKeys(original) {\n const newMap = new Map();\n original.forEach((val, prop) => {\n const newProp = prop.replace(/([a-z])([A-Z])/g, '$1-$2');\n newMap.set(newProp, val);\n });\n return newMap;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @publicApi\n */\nclass NoopAnimationDriver {\n validateStyleProperty(prop) {\n return validateStyleProperty(prop);\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return defaultValue || '';\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = [], scrubberAccessRequested) {\n return new NoopAnimationPlayer(duration, delay);\n }\n}\nNoopAnimationDriver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: NoopAnimationDriver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNoopAnimationDriver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: NoopAnimationDriver });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: NoopAnimationDriver, decorators: [{\n type: Injectable\n }] });\n/**\n * @publicApi\n */\nclass AnimationDriver {\n}\nAnimationDriver.NOOP = ( /* @__PURE__ */new NoopAnimationDriver());\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ONE_SECOND = 1000;\nconst SUBSTITUTION_EXPR_START = '{{';\nconst SUBSTITUTION_EXPR_END = '}}';\nconst ENTER_CLASSNAME = 'ng-enter';\nconst LEAVE_CLASSNAME = 'ng-leave';\nconst NG_TRIGGER_CLASSNAME = 'ng-trigger';\nconst NG_TRIGGER_SELECTOR = '.ng-trigger';\nconst NG_ANIMATING_CLASSNAME = 'ng-animating';\nconst NG_ANIMATING_SELECTOR = '.ng-animating';\nfunction resolveTimingValue(value) {\n if (typeof value == 'number')\n return value;\n const matches = value.match(/^(-?[\\.\\d]+)(m?s)/);\n if (!matches || matches.length < 2)\n return 0;\n return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\nfunction _convertTimeValueToMS(value, unit) {\n switch (unit) {\n case 's':\n return value * ONE_SECOND;\n default: // ms or something else\n return value;\n }\n}\nfunction resolveTiming(timings, errors, allowNegativeValues) {\n return timings.hasOwnProperty('duration') ?\n timings :\n parseTimeExpression(timings, errors, allowNegativeValues);\n}\nfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n let duration;\n let delay = 0;\n let easing = '';\n if (typeof exp === 'string') {\n const matches = exp.match(regex);\n if (matches === null) {\n errors.push(invalidTimingValue(exp));\n return { duration: 0, delay: 0, easing: '' };\n }\n duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n const delayMatch = matches[3];\n if (delayMatch != null) {\n delay = _convertTimeValueToMS(parseFloat(delayMatch), matches[4]);\n }\n const easingVal = matches[5];\n if (easingVal) {\n easing = easingVal;\n }\n }\n else {\n duration = exp;\n }\n if (!allowNegativeValues) {\n let containsErrors = false;\n let startIndex = errors.length;\n if (duration < 0) {\n errors.push(negativeStepValue());\n containsErrors = true;\n }\n if (delay < 0) {\n errors.push(negativeDelayValue());\n containsErrors = true;\n }\n if (containsErrors) {\n errors.splice(startIndex, 0, invalidTimingValue(exp));\n }\n }\n return { duration, delay, easing };\n}\nfunction copyObj(obj, destination = {}) {\n Object.keys(obj).forEach(prop => {\n destination[prop] = obj[prop];\n });\n return destination;\n}\nfunction convertToMap(obj) {\n const styleMap = new Map();\n Object.keys(obj).forEach(prop => {\n const val = obj[prop];\n styleMap.set(prop, val);\n });\n return styleMap;\n}\nfunction normalizeKeyframes(keyframes) {\n if (!keyframes.length) {\n return [];\n }\n if (keyframes[0] instanceof Map) {\n return keyframes;\n }\n return keyframes.map(kf => convertToMap(kf));\n}\nfunction normalizeStyles(styles) {\n const normalizedStyles = new Map();\n if (Array.isArray(styles)) {\n styles.forEach(data => copyStyles(data, normalizedStyles));\n }\n else {\n copyStyles(styles, normalizedStyles);\n }\n return normalizedStyles;\n}\nfunction copyStyles(styles, destination = new Map(), backfill) {\n if (backfill) {\n for (let [prop, val] of backfill) {\n destination.set(prop, val);\n }\n }\n for (let [prop, val] of styles) {\n destination.set(prop, val);\n }\n return destination;\n}\nfunction getStyleAttributeString(element, key, value) {\n // Return the key-value pair string to be added to the style attribute for the\n // given CSS style key.\n if (value) {\n return key + ':' + value + ';';\n }\n else {\n return '';\n }\n}\nfunction writeStyleAttribute(element) {\n // Read the style property of the element and manually reflect it to the\n // style attribute. This is needed because Domino on platform-server doesn't\n // understand the full set of allowed CSS properties and doesn't reflect some\n // of them automatically.\n let styleAttrValue = '';\n for (let i = 0; i < element.style.length; i++) {\n const key = element.style.item(i);\n styleAttrValue += getStyleAttributeString(element, key, element.style.getPropertyValue(key));\n }\n for (const key in element.style) {\n // Skip internal Domino properties that don't need to be reflected.\n if (!element.style.hasOwnProperty(key) || key.startsWith('_')) {\n continue;\n }\n const dashKey = camelCaseToDashCase(key);\n styleAttrValue += getStyleAttributeString(element, dashKey, element.style[key]);\n }\n element.setAttribute('style', styleAttrValue);\n}\nfunction setStyles(element, styles, formerStyles) {\n if (element['style']) {\n styles.forEach((val, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n if (formerStyles && !formerStyles.has(prop)) {\n formerStyles.set(prop, element.style[camelProp]);\n }\n element.style[camelProp] = val;\n });\n // On the server set the 'style' attribute since it's not automatically reflected.\n if (isNode()) {\n writeStyleAttribute(element);\n }\n }\n}\nfunction eraseStyles(element, styles) {\n if (element['style']) {\n styles.forEach((_, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\n });\n // On the server set the 'style' attribute since it's not automatically reflected.\n if (isNode()) {\n writeStyleAttribute(element);\n }\n }\n}\nfunction normalizeAnimationEntry(steps) {\n if (Array.isArray(steps)) {\n if (steps.length == 1)\n return steps[0];\n return sequence(steps);\n }\n return steps;\n}\nfunction validateStyleParams(value, options, errors) {\n const params = options.params || {};\n const matches = extractStyleParams(value);\n if (matches.length) {\n matches.forEach(varName => {\n if (!params.hasOwnProperty(varName)) {\n errors.push(invalidStyleParams(varName));\n }\n });\n }\n}\nconst PARAM_REGEX = new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nfunction extractStyleParams(value) {\n let params = [];\n if (typeof value === 'string') {\n let match;\n while (match = PARAM_REGEX.exec(value)) {\n params.push(match[1]);\n }\n PARAM_REGEX.lastIndex = 0;\n }\n return params;\n}\nfunction interpolateParams(value, params, errors) {\n const original = value.toString();\n const str = original.replace(PARAM_REGEX, (_, varName) => {\n let localVal = params[varName];\n // this means that the value was never overridden by the data passed in by the user\n if (localVal == null) {\n errors.push(invalidParamValue(varName));\n localVal = '';\n }\n return localVal.toString();\n });\n // we do this to assert that numeric values stay as they are\n return str == original ? value : str;\n}\nfunction iteratorToArray(iterator) {\n const arr = [];\n let item = iterator.next();\n while (!item.done) {\n arr.push(item.value);\n item = iterator.next();\n }\n return arr;\n}\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\n}\nfunction camelCaseToDashCase(input) {\n return input.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nfunction allowPreviousPlayerStylesMerge(duration, delay) {\n return duration === 0 || delay === 0;\n}\nfunction balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles) {\n if (previousStyles.size && keyframes.length) {\n let startingKeyframe = keyframes[0];\n let missingStyleProps = [];\n previousStyles.forEach((val, prop) => {\n if (!startingKeyframe.has(prop)) {\n missingStyleProps.push(prop);\n }\n startingKeyframe.set(prop, val);\n });\n if (missingStyleProps.length) {\n for (let i = 1; i < keyframes.length; i++) {\n let kf = keyframes[i];\n missingStyleProps.forEach(prop => kf.set(prop, computeStyle(element, prop)));\n }\n }\n }\n return keyframes;\n}\nfunction visitDslNode(visitor, node, context) {\n switch (node.type) {\n case 7 /* AnimationMetadataType.Trigger */:\n return visitor.visitTrigger(node, context);\n case 0 /* AnimationMetadataType.State */:\n return visitor.visitState(node, context);\n case 1 /* AnimationMetadataType.Transition */:\n return visitor.visitTransition(node, context);\n case 2 /* AnimationMetadataType.Sequence */:\n return visitor.visitSequence(node, context);\n case 3 /* AnimationMetadataType.Group */:\n return visitor.visitGroup(node, context);\n case 4 /* AnimationMetadataType.Animate */:\n return visitor.visitAnimate(node, context);\n case 5 /* AnimationMetadataType.Keyframes */:\n return visitor.visitKeyframes(node, context);\n case 6 /* AnimationMetadataType.Style */:\n return visitor.visitStyle(node, context);\n case 8 /* AnimationMetadataType.Reference */:\n return visitor.visitReference(node, context);\n case 9 /* AnimationMetadataType.AnimateChild */:\n return visitor.visitAnimateChild(node, context);\n case 10 /* AnimationMetadataType.AnimateRef */:\n return visitor.visitAnimateRef(node, context);\n case 11 /* AnimationMetadataType.Query */:\n return visitor.visitQuery(node, context);\n case 12 /* AnimationMetadataType.Stagger */:\n return visitor.visitStagger(node, context);\n default:\n throw invalidNodeType(node.type);\n }\n}\nfunction computeStyle(element, prop) {\n return window.getComputedStyle(element)[prop];\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\nfunction createListOfWarnings(warnings) {\n const LINE_START = '\\n - ';\n return `${LINE_START}${warnings.filter(Boolean).map(warning => warning).join(LINE_START)}`;\n}\nfunction warnValidation(warnings) {\n NG_DEV_MODE && console.warn(`animation validation warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnTriggerBuild(name, warnings) {\n NG_DEV_MODE &&\n console.warn(`The animation trigger \"${name}\" has built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnRegister(warnings) {\n NG_DEV_MODE &&\n console.warn(`Animation built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction triggerParsingWarnings(name, warnings) {\n NG_DEV_MODE &&\n console.warn(`Animation parsing for the ${name} trigger presents the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction pushUnrecognizedPropertiesWarning(warnings, props) {\n if (props.length) {\n warnings.push(`The following provided properties are not recognized: ${props.join(', ')}`);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ANY_STATE = '*';\nfunction parseTransitionExpr(transitionValue, errors) {\n const expressions = [];\n if (typeof transitionValue == 'string') {\n transitionValue.split(/\\s*,\\s*/).forEach(str => parseInnerTransitionStr(str, expressions, errors));\n }\n else {\n expressions.push(transitionValue);\n }\n return expressions;\n}\nfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n if (eventStr[0] == ':') {\n const result = parseAnimationAlias(eventStr, errors);\n if (typeof result == 'function') {\n expressions.push(result);\n return;\n }\n eventStr = result;\n }\n const match = eventStr.match(/^(\\*|[-\\w]+)\\s*()\\s*(\\*|[-\\w]+)$/);\n if (match == null || match.length < 4) {\n errors.push(invalidExpression(eventStr));\n return expressions;\n }\n const fromState = match[1];\n const separator = match[2];\n const toState = match[3];\n expressions.push(makeLambdaFromStates(fromState, toState));\n const isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n if (separator[0] == '<' && !isFullAnyStateExpr) {\n expressions.push(makeLambdaFromStates(toState, fromState));\n }\n}\nfunction parseAnimationAlias(alias, errors) {\n switch (alias) {\n case ':enter':\n return 'void => *';\n case ':leave':\n return '* => void';\n case ':increment':\n return (fromState, toState) => parseFloat(toState) > parseFloat(fromState);\n case ':decrement':\n return (fromState, toState) => parseFloat(toState) < parseFloat(fromState);\n default:\n errors.push(invalidTransitionAlias(alias));\n return '* => *';\n }\n}\n// DO NOT REFACTOR ... keep the follow set instantiations\n// with the values intact (closure compiler for some reason\n// removes follow-up lines that add the values outside of\n// the constructor...\nconst TRUE_BOOLEAN_VALUES = new Set(['true', '1']);\nconst FALSE_BOOLEAN_VALUES = new Set(['false', '0']);\nfunction makeLambdaFromStates(lhs, rhs) {\n const LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);\n const RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);\n return (fromState, toState) => {\n let lhsMatch = lhs == ANY_STATE || lhs == fromState;\n let rhsMatch = rhs == ANY_STATE || rhs == toState;\n if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {\n lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);\n }\n if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {\n rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);\n }\n return lhsMatch && rhsMatch;\n };\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst SELF_TOKEN = ':self';\nconst SELF_TOKEN_REGEX = new RegExp(`\\s*${SELF_TOKEN}\\s*,?`, 'g');\n/*\n * [Validation]\n * The visitor code below will traverse the animation AST generated by the animation verb functions\n * (the output is a tree of objects) and attempt to perform a series of validations on the data. The\n * following corner-cases will be validated:\n *\n * 1. Overlap of animations\n * Given that a CSS property cannot be animated in more than one place at the same time, it's\n * important that this behavior is detected and validated. The way in which this occurs is that\n * each time a style property is examined, a string-map containing the property will be updated with\n * the start and end times for when the property is used within an animation step.\n *\n * If there are two or more parallel animations that are currently running (these are invoked by the\n * group()) on the same element then the validator will throw an error. Since the start/end timing\n * values are collected for each property then if the current animation step is animating the same\n * property and its timing values fall anywhere into the window of time that the property is\n * currently being animated within then this is what causes an error.\n *\n * 2. Timing values\n * The validator will validate to see if a timing value of `duration delay easing` or\n * `durationNumber` is valid or not.\n *\n * (note that upon validation the code below will replace the timing data with an object containing\n * {duration,delay,easing}.\n *\n * 3. Offset Validation\n * Each of the style() calls are allowed to have an offset value when placed inside of keyframes().\n * Offsets within keyframes() are considered valid when:\n *\n * - No offsets are used at all\n * - Each style() entry contains an offset value\n * - Each offset is between 0 and 1\n * - Each offset is greater to or equal than the previous one\n *\n * Otherwise an error will be thrown.\n */\nfunction buildAnimationAst(driver, metadata, errors, warnings) {\n return new AnimationAstBuilderVisitor(driver).build(metadata, errors, warnings);\n}\nconst ROOT_SELECTOR = '';\nclass AnimationAstBuilderVisitor {\n constructor(_driver) {\n this._driver = _driver;\n }\n build(metadata, errors, warnings) {\n const context = new AnimationAstBuilderContext(errors);\n this._resetContextStyleTimingState(context);\n const ast = visitDslNode(this, normalizeAnimationEntry(metadata), context);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (context.unsupportedCSSPropertiesFound.size) {\n pushUnrecognizedPropertiesWarning(warnings, [...context.unsupportedCSSPropertiesFound.keys()]);\n }\n }\n return ast;\n }\n _resetContextStyleTimingState(context) {\n context.currentQuerySelector = ROOT_SELECTOR;\n context.collectedStyles = new Map();\n context.collectedStyles.set(ROOT_SELECTOR, new Map());\n context.currentTime = 0;\n }\n visitTrigger(metadata, context) {\n let queryCount = context.queryCount = 0;\n let depCount = context.depCount = 0;\n const states = [];\n const transitions = [];\n if (metadata.name.charAt(0) == '@') {\n context.errors.push(invalidTrigger());\n }\n metadata.definitions.forEach(def => {\n this._resetContextStyleTimingState(context);\n if (def.type == 0 /* AnimationMetadataType.State */) {\n const stateDef = def;\n const name = stateDef.name;\n name.toString().split(/\\s*,\\s*/).forEach(n => {\n stateDef.name = n;\n states.push(this.visitState(stateDef, context));\n });\n stateDef.name = name;\n }\n else if (def.type == 1 /* AnimationMetadataType.Transition */) {\n const transition = this.visitTransition(def, context);\n queryCount += transition.queryCount;\n depCount += transition.depCount;\n transitions.push(transition);\n }\n else {\n context.errors.push(invalidDefinition());\n }\n });\n return {\n type: 7 /* AnimationMetadataType.Trigger */,\n name: metadata.name,\n states,\n transitions,\n queryCount,\n depCount,\n options: null\n };\n }\n visitState(metadata, context) {\n const styleAst = this.visitStyle(metadata.styles, context);\n const astParams = (metadata.options && metadata.options.params) || null;\n if (styleAst.containsDynamicStyles) {\n const missingSubs = new Set();\n const params = astParams || {};\n styleAst.styles.forEach(style => {\n if (style instanceof Map) {\n style.forEach(value => {\n extractStyleParams(value).forEach(sub => {\n if (!params.hasOwnProperty(sub)) {\n missingSubs.add(sub);\n }\n });\n });\n }\n });\n if (missingSubs.size) {\n const missingSubsArr = iteratorToArray(missingSubs.values());\n context.errors.push(invalidState(metadata.name, missingSubsArr));\n }\n }\n return {\n type: 0 /* AnimationMetadataType.State */,\n name: metadata.name,\n style: styleAst,\n options: astParams ? { params: astParams } : null\n };\n }\n visitTransition(metadata, context) {\n context.queryCount = 0;\n context.depCount = 0;\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n const matchers = parseTransitionExpr(metadata.expr, context.errors);\n return {\n type: 1 /* AnimationMetadataType.Transition */,\n matchers,\n animation,\n queryCount: context.queryCount,\n depCount: context.depCount,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitSequence(metadata, context) {\n return {\n type: 2 /* AnimationMetadataType.Sequence */,\n steps: metadata.steps.map(s => visitDslNode(this, s, context)),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitGroup(metadata, context) {\n const currentTime = context.currentTime;\n let furthestTime = 0;\n const steps = metadata.steps.map(step => {\n context.currentTime = currentTime;\n const innerAst = visitDslNode(this, step, context);\n furthestTime = Math.max(furthestTime, context.currentTime);\n return innerAst;\n });\n context.currentTime = furthestTime;\n return {\n type: 3 /* AnimationMetadataType.Group */,\n steps,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimate(metadata, context) {\n const timingAst = constructTimingAst(metadata.timings, context.errors);\n context.currentAnimateTimings = timingAst;\n let styleAst;\n let styleMetadata = metadata.styles ? metadata.styles : style({});\n if (styleMetadata.type == 5 /* AnimationMetadataType.Keyframes */) {\n styleAst = this.visitKeyframes(styleMetadata, context);\n }\n else {\n let styleMetadata = metadata.styles;\n let isEmpty = false;\n if (!styleMetadata) {\n isEmpty = true;\n const newStyleData = {};\n if (timingAst.easing) {\n newStyleData['easing'] = timingAst.easing;\n }\n styleMetadata = style(newStyleData);\n }\n context.currentTime += timingAst.duration + timingAst.delay;\n const _styleAst = this.visitStyle(styleMetadata, context);\n _styleAst.isEmptyStep = isEmpty;\n styleAst = _styleAst;\n }\n context.currentAnimateTimings = null;\n return {\n type: 4 /* AnimationMetadataType.Animate */,\n timings: timingAst,\n style: styleAst,\n options: null\n };\n }\n visitStyle(metadata, context) {\n const ast = this._makeStyleAst(metadata, context);\n this._validateStyleAst(ast, context);\n return ast;\n }\n _makeStyleAst(metadata, context) {\n const styles = [];\n const metadataStyles = Array.isArray(metadata.styles) ? metadata.styles : [metadata.styles];\n for (let styleTuple of metadataStyles) {\n if (typeof styleTuple === 'string') {\n if (styleTuple === AUTO_STYLE) {\n styles.push(styleTuple);\n }\n else {\n context.errors.push(invalidStyleValue(styleTuple));\n }\n }\n else {\n styles.push(convertToMap(styleTuple));\n }\n }\n let containsDynamicStyles = false;\n let collectedEasing = null;\n styles.forEach(styleData => {\n if (styleData instanceof Map) {\n if (styleData.has('easing')) {\n collectedEasing = styleData.get('easing');\n styleData.delete('easing');\n }\n if (!containsDynamicStyles) {\n for (let value of styleData.values()) {\n if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {\n containsDynamicStyles = true;\n break;\n }\n }\n }\n }\n });\n return {\n type: 6 /* AnimationMetadataType.Style */,\n styles,\n easing: collectedEasing,\n offset: metadata.offset,\n containsDynamicStyles,\n options: null\n };\n }\n _validateStyleAst(ast, context) {\n const timings = context.currentAnimateTimings;\n let endTime = context.currentTime;\n let startTime = context.currentTime;\n if (timings && startTime > 0) {\n startTime -= timings.duration + timings.delay;\n }\n ast.styles.forEach(tuple => {\n if (typeof tuple === 'string')\n return;\n tuple.forEach((value, prop) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._driver.validateStyleProperty(prop)) {\n tuple.delete(prop);\n context.unsupportedCSSPropertiesFound.add(prop);\n return;\n }\n }\n // This is guaranteed to have a defined Map at this querySelector location making it\n // safe to add the assertion here. It is set as a default empty map in prior methods.\n const collectedStyles = context.collectedStyles.get(context.currentQuerySelector);\n const collectedEntry = collectedStyles.get(prop);\n let updateCollectedStyle = true;\n if (collectedEntry) {\n if (startTime != endTime && startTime >= collectedEntry.startTime &&\n endTime <= collectedEntry.endTime) {\n context.errors.push(invalidParallelAnimation(prop, collectedEntry.startTime, collectedEntry.endTime, startTime, endTime));\n updateCollectedStyle = false;\n }\n // we always choose the smaller start time value since we\n // want to have a record of the entire animation window where\n // the style property is being animated in between\n startTime = collectedEntry.startTime;\n }\n if (updateCollectedStyle) {\n collectedStyles.set(prop, { startTime, endTime });\n }\n if (context.options) {\n validateStyleParams(value, context.options, context.errors);\n }\n });\n });\n }\n visitKeyframes(metadata, context) {\n const ast = { type: 5 /* AnimationMetadataType.Keyframes */, styles: [], options: null };\n if (!context.currentAnimateTimings) {\n context.errors.push(invalidKeyframes());\n return ast;\n }\n const MAX_KEYFRAME_OFFSET = 1;\n let totalKeyframesWithOffsets = 0;\n const offsets = [];\n let offsetsOutOfOrder = false;\n let keyframesOutOfRange = false;\n let previousOffset = 0;\n const keyframes = metadata.steps.map(styles => {\n const style = this._makeStyleAst(styles, context);\n let offsetVal = style.offset != null ? style.offset : consumeOffset(style.styles);\n let offset = 0;\n if (offsetVal != null) {\n totalKeyframesWithOffsets++;\n offset = style.offset = offsetVal;\n }\n keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n previousOffset = offset;\n offsets.push(offset);\n return style;\n });\n if (keyframesOutOfRange) {\n context.errors.push(invalidOffset());\n }\n if (offsetsOutOfOrder) {\n context.errors.push(keyframeOffsetsOutOfOrder());\n }\n const length = metadata.steps.length;\n let generatedOffset = 0;\n if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n context.errors.push(keyframesMissingOffsets());\n }\n else if (totalKeyframesWithOffsets == 0) {\n generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n }\n const limit = length - 1;\n const currentTime = context.currentTime;\n const currentAnimateTimings = context.currentAnimateTimings;\n const animateDuration = currentAnimateTimings.duration;\n keyframes.forEach((kf, i) => {\n const offset = generatedOffset > 0 ? (i == limit ? 1 : (generatedOffset * i)) : offsets[i];\n const durationUpToThisFrame = offset * animateDuration;\n context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n currentAnimateTimings.duration = durationUpToThisFrame;\n this._validateStyleAst(kf, context);\n kf.offset = offset;\n ast.styles.push(kf);\n });\n return ast;\n }\n visitReference(metadata, context) {\n return {\n type: 8 /* AnimationMetadataType.Reference */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateChild(metadata, context) {\n context.depCount++;\n return {\n type: 9 /* AnimationMetadataType.AnimateChild */,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateRef(metadata, context) {\n return {\n type: 10 /* AnimationMetadataType.AnimateRef */,\n animation: this.visitReference(metadata.animation, context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitQuery(metadata, context) {\n const parentSelector = context.currentQuerySelector;\n const options = (metadata.options || {});\n context.queryCount++;\n context.currentQuery = metadata;\n const [selector, includeSelf] = normalizeSelector(metadata.selector);\n context.currentQuerySelector =\n parentSelector.length ? (parentSelector + ' ' + selector) : selector;\n getOrSetDefaultValue(context.collectedStyles, context.currentQuerySelector, new Map());\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n context.currentQuery = null;\n context.currentQuerySelector = parentSelector;\n return {\n type: 11 /* AnimationMetadataType.Query */,\n selector,\n limit: options.limit || 0,\n optional: !!options.optional,\n includeSelf,\n animation,\n originalSelector: metadata.selector,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitStagger(metadata, context) {\n if (!context.currentQuery) {\n context.errors.push(invalidStagger());\n }\n const timings = metadata.timings === 'full' ?\n { duration: 0, delay: 0, easing: 'full' } :\n resolveTiming(metadata.timings, context.errors, true);\n return {\n type: 12 /* AnimationMetadataType.Stagger */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n timings,\n options: null\n };\n }\n}\nfunction normalizeSelector(selector) {\n const hasAmpersand = selector.split(/\\s*,\\s*/).find(token => token == SELF_TOKEN) ? true : false;\n if (hasAmpersand) {\n selector = selector.replace(SELF_TOKEN_REGEX, '');\n }\n // Note: the :enter and :leave aren't normalized here since those\n // selectors are filled in at runtime during timeline building\n selector = selector.replace(/@\\*/g, NG_TRIGGER_SELECTOR)\n .replace(/@\\w+/g, match => NG_TRIGGER_SELECTOR + '-' + match.slice(1))\n .replace(/:animating/g, NG_ANIMATING_SELECTOR);\n return [selector, hasAmpersand];\n}\nfunction normalizeParams(obj) {\n return obj ? copyObj(obj) : null;\n}\nclass AnimationAstBuilderContext {\n constructor(errors) {\n this.errors = errors;\n this.queryCount = 0;\n this.depCount = 0;\n this.currentTransition = null;\n this.currentQuery = null;\n this.currentQuerySelector = null;\n this.currentAnimateTimings = null;\n this.currentTime = 0;\n this.collectedStyles = new Map();\n this.options = null;\n this.unsupportedCSSPropertiesFound = new Set();\n }\n}\nfunction consumeOffset(styles) {\n if (typeof styles == 'string')\n return null;\n let offset = null;\n if (Array.isArray(styles)) {\n styles.forEach(styleTuple => {\n if (styleTuple instanceof Map && styleTuple.has('offset')) {\n const obj = styleTuple;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n });\n }\n else if (styles instanceof Map && styles.has('offset')) {\n const obj = styles;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n return offset;\n}\nfunction constructTimingAst(value, errors) {\n if (value.hasOwnProperty('duration')) {\n return value;\n }\n if (typeof value == 'number') {\n const duration = resolveTiming(value, errors).duration;\n return makeTimingAst(duration, 0, '');\n }\n const strValue = value;\n const isDynamic = strValue.split(/\\s+/).some(v => v.charAt(0) == '{' && v.charAt(1) == '{');\n if (isDynamic) {\n const ast = makeTimingAst(0, 0, '');\n ast.dynamic = true;\n ast.strValue = strValue;\n return ast;\n }\n const timings = resolveTiming(strValue, errors);\n return makeTimingAst(timings.duration, timings.delay, timings.easing);\n}\nfunction normalizeAnimationOptions(options) {\n if (options) {\n options = copyObj(options);\n if (options['params']) {\n options['params'] = normalizeParams(options['params']);\n }\n }\n else {\n options = {};\n }\n return options;\n}\nfunction makeTimingAst(duration, delay, easing) {\n return { duration, delay, easing };\n}\n\nfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing = null, subTimeline = false) {\n return {\n type: 1 /* AnimationTransitionInstructionType.TimelineAnimation */,\n element,\n keyframes,\n preStyleProps,\n postStyleProps,\n duration,\n delay,\n totalTime: duration + delay,\n easing,\n subTimeline\n };\n}\n\nclass ElementInstructionMap {\n constructor() {\n this._map = new Map();\n }\n get(element) {\n return this._map.get(element) || [];\n }\n append(element, instructions) {\n let existingInstructions = this._map.get(element);\n if (!existingInstructions) {\n this._map.set(element, existingInstructions = []);\n }\n existingInstructions.push(...instructions);\n }\n has(element) {\n return this._map.has(element);\n }\n clear() {\n this._map.clear();\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ONE_FRAME_IN_MILLISECONDS = 1;\nconst ENTER_TOKEN = ':enter';\nconst ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');\nconst LEAVE_TOKEN = ':leave';\nconst LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');\n/*\n * The code within this file aims to generate web-animations-compatible keyframes from Angular's\n * animation DSL code.\n *\n * The code below will be converted from:\n *\n * ```\n * sequence([\n * style({ opacity: 0 }),\n * animate(1000, style({ opacity: 0 }))\n * ])\n * ```\n *\n * To:\n * ```\n * keyframes = [{ opacity: 0, offset: 0 }, { opacity: 1, offset: 1 }]\n * duration = 1000\n * delay = 0\n * easing = ''\n * ```\n *\n * For this operation to cover the combination of animation verbs (style, animate, group, etc...) a\n * combination of AST traversal and merge-sort-like algorithms are used.\n *\n * [AST Traversal]\n * Each of the animation verbs, when executed, will return an string-map object representing what\n * type of action it is (style, animate, group, etc...) and the data associated with it. This means\n * that when functional composition mix of these functions is evaluated (like in the example above)\n * then it will end up producing a tree of objects representing the animation itself.\n *\n * When this animation object tree is processed by the visitor code below it will visit each of the\n * verb statements within the visitor. And during each visit it will build the context of the\n * animation keyframes by interacting with the `TimelineBuilder`.\n *\n * [TimelineBuilder]\n * This class is responsible for tracking the styles and building a series of keyframe objects for a\n * timeline between a start and end time. The builder starts off with an initial timeline and each\n * time the AST comes across a `group()`, `keyframes()` or a combination of the two within a\n * `sequence()` then it will generate a sub timeline for each step as well as a new one after\n * they are complete.\n *\n * As the AST is traversed, the timing state on each of the timelines will be incremented. If a sub\n * timeline was created (based on one of the cases above) then the parent timeline will attempt to\n * merge the styles used within the sub timelines into itself (only with group() this will happen).\n * This happens with a merge operation (much like how the merge works in mergeSort) and it will only\n * copy the most recently used styles from the sub timelines into the parent timeline. This ensures\n * that if the styles are used later on in another phase of the animation then they will be the most\n * up-to-date values.\n *\n * [How Missing Styles Are Updated]\n * Each timeline has a `backFill` property which is responsible for filling in new styles into\n * already processed keyframes if a new style shows up later within the animation sequence.\n *\n * ```\n * sequence([\n * style({ width: 0 }),\n * animate(1000, style({ width: 100 })),\n * animate(1000, style({ width: 200 })),\n * animate(1000, style({ width: 300 }))\n * animate(1000, style({ width: 400, height: 400 })) // notice how `height` doesn't exist anywhere\n * else\n * ])\n * ```\n *\n * What is happening here is that the `height` value is added later in the sequence, but is missing\n * from all previous animation steps. Therefore when a keyframe is created it would also be missing\n * from all previous keyframes up until where it is first used. For the timeline keyframe generation\n * to properly fill in the style it will place the previous value (the value from the parent\n * timeline) or a default value of `*` into the backFill map. The `copyStyles` method in util.ts\n * handles propagating that backfill map to the styles object.\n *\n * When a sub-timeline is created it will have its own backFill property. This is done so that\n * styles present within the sub-timeline do not accidentally seep into the previous/future timeline\n * keyframes\n *\n * [Validation]\n * The code in this file is not responsible for validation. That functionality happens with within\n * the `AnimationValidatorVisitor` code.\n */\nfunction buildAnimationTimelines(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles = new Map(), finalStyles = new Map(), options, subInstructions, errors = []) {\n return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors);\n}\nclass AnimationTimelineBuilderVisitor {\n buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors = []) {\n subInstructions = subInstructions || new ElementInstructionMap();\n const context = new AnimationTimelineContext(driver, rootElement, subInstructions, enterClassName, leaveClassName, errors, []);\n context.options = options;\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n context.currentTimeline.delayNextStep(delay);\n context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n visitDslNode(this, ast, context);\n // this checks to see if an actual animation happened\n const timelines = context.timelines.filter(timeline => timeline.containsAnimation());\n // note: we just want to apply the final styles for the rootElement, so we do not\n // just apply the styles to the last timeline but the last timeline which\n // element is the root one (basically `*`-styles are replaced with the actual\n // state style values only for the root element)\n if (timelines.length && finalStyles.size) {\n let lastRootTimeline;\n for (let i = timelines.length - 1; i >= 0; i--) {\n const timeline = timelines[i];\n if (timeline.element === rootElement) {\n lastRootTimeline = timeline;\n break;\n }\n }\n if (lastRootTimeline && !lastRootTimeline.allowOnlyTimelineStyles()) {\n lastRootTimeline.setStyles([finalStyles], null, context.errors, options);\n }\n }\n return timelines.length ?\n timelines.map(timeline => timeline.buildKeyframes()) :\n [createTimelineInstruction(rootElement, [], [], [], 0, delay, '', false)];\n }\n visitTrigger(ast, context) {\n // these values are not visited in this AST\n }\n visitState(ast, context) {\n // these values are not visited in this AST\n }\n visitTransition(ast, context) {\n // these values are not visited in this AST\n }\n visitAnimateChild(ast, context) {\n const elementInstructions = context.subInstructions.get(context.element);\n if (elementInstructions) {\n const innerContext = context.createSubContext(ast.options);\n const startTime = context.currentTimeline.currentTime;\n const endTime = this._visitSubInstructions(elementInstructions, innerContext, innerContext.options);\n if (startTime != endTime) {\n // we do this on the upper context because we created a sub context for\n // the sub child animations\n context.transformIntoNewTimeline(endTime);\n }\n }\n context.previousNode = ast;\n }\n visitAnimateRef(ast, context) {\n const innerContext = context.createSubContext(ast.options);\n innerContext.transformIntoNewTimeline();\n this._applyAnimationRefDelays([ast.options, ast.animation.options], context, innerContext);\n this.visitReference(ast.animation, innerContext);\n context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n context.previousNode = ast;\n }\n _applyAnimationRefDelays(animationsRefsOptions, context, innerContext) {\n for (const animationRefOptions of animationsRefsOptions) {\n const animationDelay = animationRefOptions?.delay;\n if (animationDelay) {\n const animationDelayValue = typeof animationDelay === 'number' ?\n animationDelay :\n resolveTimingValue(interpolateParams(animationDelay, animationRefOptions?.params ?? {}, context.errors));\n innerContext.delayNextStep(animationDelayValue);\n }\n }\n }\n _visitSubInstructions(instructions, context, options) {\n const startTime = context.currentTimeline.currentTime;\n let furthestTime = startTime;\n // this is a special-case for when a user wants to skip a sub\n // animation from being fired entirely.\n const duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n const delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n if (duration !== 0) {\n instructions.forEach(instruction => {\n const instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n furthestTime =\n Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n });\n }\n return furthestTime;\n }\n visitReference(ast, context) {\n context.updateOptions(ast.options, true);\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n }\n visitSequence(ast, context) {\n const subContextCount = context.subContextCount;\n let ctx = context;\n const options = ast.options;\n if (options && (options.params || options.delay)) {\n ctx = context.createSubContext(options);\n ctx.transformIntoNewTimeline();\n if (options.delay != null) {\n if (ctx.previousNode.type == 6 /* AnimationMetadataType.Style */) {\n ctx.currentTimeline.snapshotCurrentStyles();\n ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n const delay = resolveTimingValue(options.delay);\n ctx.delayNextStep(delay);\n }\n }\n if (ast.steps.length) {\n ast.steps.forEach(s => visitDslNode(this, s, ctx));\n // this is here just in case the inner steps only contain or end with a style() call\n ctx.currentTimeline.applyStylesToKeyframe();\n // this means that some animation function within the sequence\n // ended up creating a sub timeline (which means the current\n // timeline cannot overlap with the contents of the sequence)\n if (ctx.subContextCount > subContextCount) {\n ctx.transformIntoNewTimeline();\n }\n }\n context.previousNode = ast;\n }\n visitGroup(ast, context) {\n const innerTimelines = [];\n let furthestTime = context.currentTimeline.currentTime;\n const delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n ast.steps.forEach(s => {\n const innerContext = context.createSubContext(ast.options);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n visitDslNode(this, s, innerContext);\n furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n innerTimelines.push(innerContext.currentTimeline);\n });\n // this operation is run after the AST loop because otherwise\n // if the parent timeline's collected styles were updated then\n // it would pass in invalid data into the new-to-be forked items\n innerTimelines.forEach(timeline => context.currentTimeline.mergeTimelineCollectedStyles(timeline));\n context.transformIntoNewTimeline(furthestTime);\n context.previousNode = ast;\n }\n _visitTiming(ast, context) {\n if (ast.dynamic) {\n const strValue = ast.strValue;\n const timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;\n return resolveTiming(timingValue, context.errors);\n }\n else {\n return { duration: ast.duration, delay: ast.delay, easing: ast.easing };\n }\n }\n visitAnimate(ast, context) {\n const timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);\n const timeline = context.currentTimeline;\n if (timings.delay) {\n context.incrementTime(timings.delay);\n timeline.snapshotCurrentStyles();\n }\n const style = ast.style;\n if (style.type == 5 /* AnimationMetadataType.Keyframes */) {\n this.visitKeyframes(style, context);\n }\n else {\n context.incrementTime(timings.duration);\n this.visitStyle(style, context);\n timeline.applyStylesToKeyframe();\n }\n context.currentAnimateTimings = null;\n context.previousNode = ast;\n }\n visitStyle(ast, context) {\n const timeline = context.currentTimeline;\n const timings = context.currentAnimateTimings;\n // this is a special case for when a style() call\n // directly follows an animate() call (but not inside of an animate() call)\n if (!timings && timeline.hasCurrentStyleProperties()) {\n timeline.forwardFrame();\n }\n const easing = (timings && timings.easing) || ast.easing;\n if (ast.isEmptyStep) {\n timeline.applyEmptyStep(easing);\n }\n else {\n timeline.setStyles(ast.styles, easing, context.errors, context.options);\n }\n context.previousNode = ast;\n }\n visitKeyframes(ast, context) {\n const currentAnimateTimings = context.currentAnimateTimings;\n const startTime = (context.currentTimeline).duration;\n const duration = currentAnimateTimings.duration;\n const innerContext = context.createSubContext();\n const innerTimeline = innerContext.currentTimeline;\n innerTimeline.easing = currentAnimateTimings.easing;\n ast.styles.forEach(step => {\n const offset = step.offset || 0;\n innerTimeline.forwardTime(offset * duration);\n innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n innerTimeline.applyStylesToKeyframe();\n });\n // this will ensure that the parent timeline gets all the styles from\n // the child even if the new timeline below is not used\n context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n // we do this because the window between this timeline and the sub timeline\n // should ensure that the styles within are exactly the same as they were before\n context.transformIntoNewTimeline(startTime + duration);\n context.previousNode = ast;\n }\n visitQuery(ast, context) {\n // in the event that the first step before this is a style step we need\n // to ensure the styles are applied before the children are animated\n const startTime = context.currentTimeline.currentTime;\n const options = (ast.options || {});\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n if (delay &&\n (context.previousNode.type === 6 /* AnimationMetadataType.Style */ ||\n (startTime == 0 && context.currentTimeline.hasCurrentStyleProperties()))) {\n context.currentTimeline.snapshotCurrentStyles();\n context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n let furthestTime = startTime;\n const elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n context.currentQueryTotal = elms.length;\n let sameElementTimeline = null;\n elms.forEach((element, i) => {\n context.currentQueryIndex = i;\n const innerContext = context.createSubContext(ast.options, element);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n if (element === context.element) {\n sameElementTimeline = innerContext.currentTimeline;\n }\n visitDslNode(this, ast.animation, innerContext);\n // this is here just incase the inner steps only contain or end\n // with a style() call (which is here to signal that this is a preparatory\n // call to style an element before it is animated again)\n innerContext.currentTimeline.applyStylesToKeyframe();\n const endTime = innerContext.currentTimeline.currentTime;\n furthestTime = Math.max(furthestTime, endTime);\n });\n context.currentQueryIndex = 0;\n context.currentQueryTotal = 0;\n context.transformIntoNewTimeline(furthestTime);\n if (sameElementTimeline) {\n context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n context.currentTimeline.snapshotCurrentStyles();\n }\n context.previousNode = ast;\n }\n visitStagger(ast, context) {\n const parentContext = context.parentContext;\n const tl = context.currentTimeline;\n const timings = ast.timings;\n const duration = Math.abs(timings.duration);\n const maxTime = duration * (context.currentQueryTotal - 1);\n let delay = duration * context.currentQueryIndex;\n let staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n switch (staggerTransformer) {\n case 'reverse':\n delay = maxTime - delay;\n break;\n case 'full':\n delay = parentContext.currentStaggerTime;\n break;\n }\n const timeline = context.currentTimeline;\n if (delay) {\n timeline.delayNextStep(delay);\n }\n const startingTime = timeline.currentTime;\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n // time = duration + delay\n // the reason why this computation is so complex is because\n // the inner timeline may either have a delay value or a stretched\n // keyframe depending on if a subtimeline is not used or is used.\n parentContext.currentStaggerTime =\n (tl.currentTime - startingTime) + (tl.startTime - parentContext.currentTimeline.startTime);\n }\n}\nconst DEFAULT_NOOP_PREVIOUS_NODE = {};\nclass AnimationTimelineContext {\n constructor(_driver, element, subInstructions, _enterClassName, _leaveClassName, errors, timelines, initialTimeline) {\n this._driver = _driver;\n this.element = element;\n this.subInstructions = subInstructions;\n this._enterClassName = _enterClassName;\n this._leaveClassName = _leaveClassName;\n this.errors = errors;\n this.timelines = timelines;\n this.parentContext = null;\n this.currentAnimateTimings = null;\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.subContextCount = 0;\n this.options = {};\n this.currentQueryIndex = 0;\n this.currentQueryTotal = 0;\n this.currentStaggerTime = 0;\n this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);\n timelines.push(this.currentTimeline);\n }\n get params() {\n return this.options.params;\n }\n updateOptions(options, skipIfExists) {\n if (!options)\n return;\n const newOptions = options;\n let optionsToUpdate = this.options;\n // NOTE: this will get patched up when other animation methods support duration overrides\n if (newOptions.duration != null) {\n optionsToUpdate.duration = resolveTimingValue(newOptions.duration);\n }\n if (newOptions.delay != null) {\n optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n }\n const newParams = newOptions.params;\n if (newParams) {\n let paramsToUpdate = optionsToUpdate.params;\n if (!paramsToUpdate) {\n paramsToUpdate = this.options.params = {};\n }\n Object.keys(newParams).forEach(name => {\n if (!skipIfExists || !paramsToUpdate.hasOwnProperty(name)) {\n paramsToUpdate[name] = interpolateParams(newParams[name], paramsToUpdate, this.errors);\n }\n });\n }\n }\n _copyOptions() {\n const options = {};\n if (this.options) {\n const oldParams = this.options.params;\n if (oldParams) {\n const params = options['params'] = {};\n Object.keys(oldParams).forEach(name => {\n params[name] = oldParams[name];\n });\n }\n }\n return options;\n }\n createSubContext(options = null, element, newTime) {\n const target = element || this.element;\n const context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this._enterClassName, this._leaveClassName, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n context.previousNode = this.previousNode;\n context.currentAnimateTimings = this.currentAnimateTimings;\n context.options = this._copyOptions();\n context.updateOptions(options);\n context.currentQueryIndex = this.currentQueryIndex;\n context.currentQueryTotal = this.currentQueryTotal;\n context.parentContext = this;\n this.subContextCount++;\n return context;\n }\n transformIntoNewTimeline(newTime) {\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n this.timelines.push(this.currentTimeline);\n return this.currentTimeline;\n }\n appendInstructionToTimeline(instruction, duration, delay) {\n const updatedTimings = {\n duration: duration != null ? duration : instruction.duration,\n delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n easing: ''\n };\n const builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n this.timelines.push(builder);\n return updatedTimings;\n }\n incrementTime(time) {\n this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n }\n delayNextStep(delay) {\n // negative delays are not yet supported\n if (delay > 0) {\n this.currentTimeline.delayNextStep(delay);\n }\n }\n invokeQuery(selector, originalSelector, limit, includeSelf, optional, errors) {\n let results = [];\n if (includeSelf) {\n results.push(this.element);\n }\n if (selector.length > 0) { // only if :self is used then the selector can be empty\n selector = selector.replace(ENTER_TOKEN_REGEX, '.' + this._enterClassName);\n selector = selector.replace(LEAVE_TOKEN_REGEX, '.' + this._leaveClassName);\n const multi = limit != 1;\n let elements = this._driver.query(this.element, selector, multi);\n if (limit !== 0) {\n elements = limit < 0 ? elements.slice(elements.length + limit, elements.length) :\n elements.slice(0, limit);\n }\n results.push(...elements);\n }\n if (!optional && results.length == 0) {\n errors.push(invalidQuery(originalSelector));\n }\n return results;\n }\n}\nclass TimelineBuilder {\n constructor(_driver, element, startTime, _elementTimelineStylesLookup) {\n this._driver = _driver;\n this.element = element;\n this.startTime = startTime;\n this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n this.duration = 0;\n this._previousKeyframe = new Map();\n this._currentKeyframe = new Map();\n this._keyframes = new Map();\n this._styleSummary = new Map();\n this._localTimelineStyles = new Map();\n this._pendingStyles = new Map();\n this._backFill = new Map();\n this._currentEmptyStepKeyframe = null;\n if (!this._elementTimelineStylesLookup) {\n this._elementTimelineStylesLookup = new Map();\n }\n this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);\n if (!this._globalTimelineStyles) {\n this._globalTimelineStyles = this._localTimelineStyles;\n this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n }\n this._loadKeyframe();\n }\n containsAnimation() {\n switch (this._keyframes.size) {\n case 0:\n return false;\n case 1:\n return this.hasCurrentStyleProperties();\n default:\n return true;\n }\n }\n hasCurrentStyleProperties() {\n return this._currentKeyframe.size > 0;\n }\n get currentTime() {\n return this.startTime + this.duration;\n }\n delayNextStep(delay) {\n // in the event that a style() step is placed right before a stagger()\n // and that style() step is the very first style() value in the animation\n // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n // properly applies the style() values to work with the stagger...\n const hasPreStyleStep = this._keyframes.size === 1 && this._pendingStyles.size;\n if (this.duration || hasPreStyleStep) {\n this.forwardTime(this.currentTime + delay);\n if (hasPreStyleStep) {\n this.snapshotCurrentStyles();\n }\n }\n else {\n this.startTime += delay;\n }\n }\n fork(element, currentTime) {\n this.applyStylesToKeyframe();\n return new TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n }\n _loadKeyframe() {\n if (this._currentKeyframe) {\n this._previousKeyframe = this._currentKeyframe;\n }\n this._currentKeyframe = this._keyframes.get(this.duration);\n if (!this._currentKeyframe) {\n this._currentKeyframe = new Map();\n this._keyframes.set(this.duration, this._currentKeyframe);\n }\n }\n forwardFrame() {\n this.duration += ONE_FRAME_IN_MILLISECONDS;\n this._loadKeyframe();\n }\n forwardTime(time) {\n this.applyStylesToKeyframe();\n this.duration = time;\n this._loadKeyframe();\n }\n _updateStyle(prop, value) {\n this._localTimelineStyles.set(prop, value);\n this._globalTimelineStyles.set(prop, value);\n this._styleSummary.set(prop, { time: this.currentTime, value });\n }\n allowOnlyTimelineStyles() {\n return this._currentEmptyStepKeyframe !== this._currentKeyframe;\n }\n applyEmptyStep(easing) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n // special case for animate(duration):\n // all missing styles are filled with a `*` value then\n // if any destination styles are filled in later on the same\n // keyframe then they will override the overridden styles\n // We use `_globalTimelineStyles` here because there may be\n // styles in previous keyframes that are not present in this timeline\n for (let [prop, value] of this._globalTimelineStyles) {\n this._backFill.set(prop, value || AUTO_STYLE);\n this._currentKeyframe.set(prop, AUTO_STYLE);\n }\n this._currentEmptyStepKeyframe = this._currentKeyframe;\n }\n setStyles(input, easing, errors, options) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n const params = (options && options.params) || {};\n const styles = flattenStyles(input, this._globalTimelineStyles);\n for (let [prop, value] of styles) {\n const val = interpolateParams(value, params, errors);\n this._pendingStyles.set(prop, val);\n if (!this._localTimelineStyles.has(prop)) {\n this._backFill.set(prop, this._globalTimelineStyles.get(prop) ?? AUTO_STYLE);\n }\n this._updateStyle(prop, val);\n }\n }\n applyStylesToKeyframe() {\n if (this._pendingStyles.size == 0)\n return;\n this._pendingStyles.forEach((val, prop) => {\n this._currentKeyframe.set(prop, val);\n });\n this._pendingStyles.clear();\n this._localTimelineStyles.forEach((val, prop) => {\n if (!this._currentKeyframe.has(prop)) {\n this._currentKeyframe.set(prop, val);\n }\n });\n }\n snapshotCurrentStyles() {\n for (let [prop, val] of this._localTimelineStyles) {\n this._pendingStyles.set(prop, val);\n this._updateStyle(prop, val);\n }\n }\n getFinalKeyframe() {\n return this._keyframes.get(this.duration);\n }\n get properties() {\n const properties = [];\n for (let prop in this._currentKeyframe) {\n properties.push(prop);\n }\n return properties;\n }\n mergeTimelineCollectedStyles(timeline) {\n timeline._styleSummary.forEach((details1, prop) => {\n const details0 = this._styleSummary.get(prop);\n if (!details0 || details1.time > details0.time) {\n this._updateStyle(prop, details1.value);\n }\n });\n }\n buildKeyframes() {\n this.applyStylesToKeyframe();\n const preStyleProps = new Set();\n const postStyleProps = new Set();\n const isEmpty = this._keyframes.size === 1 && this.duration === 0;\n let finalKeyframes = [];\n this._keyframes.forEach((keyframe, time) => {\n const finalKeyframe = copyStyles(keyframe, new Map(), this._backFill);\n finalKeyframe.forEach((value, prop) => {\n if (value === ɵPRE_STYLE) {\n preStyleProps.add(prop);\n }\n else if (value === AUTO_STYLE) {\n postStyleProps.add(prop);\n }\n });\n if (!isEmpty) {\n finalKeyframe.set('offset', time / this.duration);\n }\n finalKeyframes.push(finalKeyframe);\n });\n const preProps = preStyleProps.size ? iteratorToArray(preStyleProps.values()) : [];\n const postProps = postStyleProps.size ? iteratorToArray(postStyleProps.values()) : [];\n // special case for a 0-second animation (which is designed just to place styles onscreen)\n if (isEmpty) {\n const kf0 = finalKeyframes[0];\n const kf1 = new Map(kf0);\n kf0.set('offset', 0);\n kf1.set('offset', 1);\n finalKeyframes = [kf0, kf1];\n }\n return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n }\n}\nclass SubTimelineBuilder extends TimelineBuilder {\n constructor(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe = false) {\n super(driver, element, timings.delay);\n this.keyframes = keyframes;\n this.preStyleProps = preStyleProps;\n this.postStyleProps = postStyleProps;\n this._stretchStartingKeyframe = _stretchStartingKeyframe;\n this.timings = { duration: timings.duration, delay: timings.delay, easing: timings.easing };\n }\n containsAnimation() {\n return this.keyframes.length > 1;\n }\n buildKeyframes() {\n let keyframes = this.keyframes;\n let { delay, duration, easing } = this.timings;\n if (this._stretchStartingKeyframe && delay) {\n const newKeyframes = [];\n const totalTime = duration + delay;\n const startingGap = delay / totalTime;\n // the original starting keyframe now starts once the delay is done\n const newFirstKeyframe = copyStyles(keyframes[0]);\n newFirstKeyframe.set('offset', 0);\n newKeyframes.push(newFirstKeyframe);\n const oldFirstKeyframe = copyStyles(keyframes[0]);\n oldFirstKeyframe.set('offset', roundOffset(startingGap));\n newKeyframes.push(oldFirstKeyframe);\n /*\n When the keyframe is stretched then it means that the delay before the animation\n starts is gone. Instead the first keyframe is placed at the start of the animation\n and it is then copied to where it starts when the original delay is over. This basically\n means nothing animates during that delay, but the styles are still rendered. For this\n to work the original offset values that exist in the original keyframes must be \"warped\"\n so that they can take the new keyframe + delay into account.\n \n delay=1000, duration=1000, keyframes = 0 .5 1\n \n turns into\n \n delay=0, duration=2000, keyframes = 0 .33 .66 1\n */\n // offsets between 1 ... n -1 are all warped by the keyframe stretch\n const limit = keyframes.length - 1;\n for (let i = 1; i <= limit; i++) {\n let kf = copyStyles(keyframes[i]);\n const oldOffset = kf.get('offset');\n const timeAtKeyframe = delay + oldOffset * duration;\n kf.set('offset', roundOffset(timeAtKeyframe / totalTime));\n newKeyframes.push(kf);\n }\n // the new starting keyframe should be added at the start\n duration = totalTime;\n delay = 0;\n easing = '';\n keyframes = newKeyframes;\n }\n return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n }\n}\nfunction roundOffset(offset, decimalPoints = 3) {\n const mult = Math.pow(10, decimalPoints - 1);\n return Math.round(offset * mult) / mult;\n}\nfunction flattenStyles(input, allStyles) {\n const styles = new Map();\n let allProperties;\n input.forEach(token => {\n if (token === '*') {\n allProperties = allProperties || allStyles.keys();\n for (let prop of allProperties) {\n styles.set(prop, AUTO_STYLE);\n }\n }\n else {\n copyStyles(token, styles);\n }\n });\n return styles;\n}\n\nclass Animation {\n constructor(_driver, input) {\n this._driver = _driver;\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(_driver, input, errors, warnings);\n if (errors.length) {\n throw validationFailed(errors);\n }\n if (warnings.length) {\n warnValidation(warnings);\n }\n this._animationAst = ast;\n }\n buildTimelines(element, startingStyles, destinationStyles, options, subInstructions) {\n const start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) :\n startingStyles;\n const dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) :\n destinationStyles;\n const errors = [];\n subInstructions = subInstructions || new ElementInstructionMap();\n const result = buildAnimationTimelines(this._driver, element, this._animationAst, ENTER_CLASSNAME, LEAVE_CLASSNAME, start, dest, options, subInstructions, errors);\n if (errors.length) {\n throw buildingFailed(errors);\n }\n return result;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @publicApi\n */\nclass AnimationStyleNormalizer {\n}\n/**\n * @publicApi\n */\nclass NoopAnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return propertyName;\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n return value;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst DIMENSIONAL_PROP_SET = new Set([\n 'width',\n 'height',\n 'minWidth',\n 'minHeight',\n 'maxWidth',\n 'maxHeight',\n 'left',\n 'top',\n 'bottom',\n 'right',\n 'fontSize',\n 'outlineWidth',\n 'outlineOffset',\n 'paddingTop',\n 'paddingLeft',\n 'paddingBottom',\n 'paddingRight',\n 'marginTop',\n 'marginLeft',\n 'marginBottom',\n 'marginRight',\n 'borderRadius',\n 'borderWidth',\n 'borderTopWidth',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'textIndent',\n 'perspective'\n]);\nclass WebAnimationsStyleNormalizer extends AnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return dashCaseToCamelCase(propertyName);\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n let unit = '';\n const strVal = value.toString().trim();\n if (DIMENSIONAL_PROP_SET.has(normalizedProperty) && value !== 0 && value !== '0') {\n if (typeof value === 'number') {\n unit = 'px';\n }\n else {\n const valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errors.push(invalidCssUnitValue(userProvidedProperty, value));\n }\n }\n }\n return strVal + unit;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, totalTime, errors) {\n return {\n type: 0 /* AnimationTransitionInstructionType.TransitionAnimation */,\n element,\n triggerName,\n isRemovalTransition,\n fromState,\n fromStyles,\n toState,\n toStyles,\n timelines,\n queriedElements,\n preStyleProps,\n postStyleProps,\n totalTime,\n errors\n };\n}\n\nconst EMPTY_OBJECT = {};\nclass AnimationTransitionFactory {\n constructor(_triggerName, ast, _stateStyles) {\n this._triggerName = _triggerName;\n this.ast = ast;\n this._stateStyles = _stateStyles;\n }\n match(currentState, nextState, element, params) {\n return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState, element, params);\n }\n buildStyles(stateName, params, errors) {\n let styler = this._stateStyles.get('*');\n if (stateName !== undefined) {\n styler = this._stateStyles.get(stateName?.toString()) || styler;\n }\n return styler ? styler.buildStyles(params, errors) : new Map();\n }\n build(driver, element, currentState, nextState, enterClassName, leaveClassName, currentOptions, nextOptions, subInstructions, skipAstBuild) {\n const errors = [];\n const transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;\n const currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;\n const currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);\n const nextAnimationParams = nextOptions && nextOptions.params || EMPTY_OBJECT;\n const nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);\n const queriedElements = new Set();\n const preStyleMap = new Map();\n const postStyleMap = new Map();\n const isRemoval = nextState === 'void';\n const animationOptions = {\n params: applyParamDefaults(nextAnimationParams, transitionAnimationParams),\n delay: this.ast.options?.delay,\n };\n const timelines = skipAstBuild ?\n [] :\n buildAnimationTimelines(driver, element, this.ast.animation, enterClassName, leaveClassName, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n let totalTime = 0;\n timelines.forEach(tl => {\n totalTime = Math.max(tl.duration + tl.delay, totalTime);\n });\n if (errors.length) {\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, totalTime, errors);\n }\n timelines.forEach(tl => {\n const elm = tl.element;\n const preProps = getOrSetDefaultValue(preStyleMap, elm, new Set());\n tl.preStyleProps.forEach(prop => preProps.add(prop));\n const postProps = getOrSetDefaultValue(postStyleMap, elm, new Set());\n tl.postStyleProps.forEach(prop => postProps.add(prop));\n if (elm !== element) {\n queriedElements.add(elm);\n }\n });\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n checkNonAnimatableInTimelines(timelines, this._triggerName, driver);\n }\n const queriedElementsList = iteratorToArray(queriedElements.values());\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, queriedElementsList, preStyleMap, postStyleMap, totalTime);\n }\n}\n/**\n * Checks inside a set of timelines if they try to animate a css property which is not considered\n * animatable, in that case it prints a warning on the console.\n * Besides that the function doesn't have any other effect.\n *\n * Note: this check is done here after the timelines are built instead of doing on a lower level so\n * that we can make sure that the warning appears only once per instruction (we can aggregate here\n * all the issues instead of finding them separately).\n *\n * @param timelines The built timelines for the current instruction.\n * @param triggerName The name of the trigger for the current instruction.\n * @param driver Animation driver used to perform the check.\n *\n */\nfunction checkNonAnimatableInTimelines(timelines, triggerName, driver) {\n if (!driver.validateAnimatableStyleProperty) {\n return;\n }\n const invalidNonAnimatableProps = new Set();\n timelines.forEach(({ keyframes }) => {\n const nonAnimatablePropsInitialValues = new Map();\n keyframes.forEach(keyframe => {\n for (const [prop, value] of keyframe.entries()) {\n if (!driver.validateAnimatableStyleProperty(prop)) {\n if (nonAnimatablePropsInitialValues.has(prop) && !invalidNonAnimatableProps.has(prop)) {\n const propInitialValue = nonAnimatablePropsInitialValues.get(prop);\n if (propInitialValue !== value) {\n invalidNonAnimatableProps.add(prop);\n }\n }\n else {\n nonAnimatablePropsInitialValues.set(prop, value);\n }\n }\n }\n });\n });\n if (invalidNonAnimatableProps.size > 0) {\n console.warn(`Warning: The animation trigger \"${triggerName}\" is attempting to animate the following` +\n ' not animatable properties: ' + Array.from(invalidNonAnimatableProps).join(', ') + '\\n' +\n '(to check the list of all animatable properties visit https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties)');\n }\n}\nfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState, element, params) {\n return matchFns.some(fn => fn(currentState, nextState, element, params));\n}\nfunction applyParamDefaults(userParams, defaults) {\n const result = copyObj(defaults);\n for (const key in userParams) {\n if (userParams.hasOwnProperty(key) && userParams[key] != null) {\n result[key] = userParams[key];\n }\n }\n return result;\n}\nclass AnimationStateStyles {\n constructor(styles, defaultParams, normalizer) {\n this.styles = styles;\n this.defaultParams = defaultParams;\n this.normalizer = normalizer;\n }\n buildStyles(params, errors) {\n const finalStyles = new Map();\n const combinedParams = copyObj(this.defaultParams);\n Object.keys(params).forEach(key => {\n const value = params[key];\n if (value !== null) {\n combinedParams[key] = value;\n }\n });\n this.styles.styles.forEach(value => {\n if (typeof value !== 'string') {\n value.forEach((val, prop) => {\n if (val) {\n val = interpolateParams(val, combinedParams, errors);\n }\n const normalizedProp = this.normalizer.normalizePropertyName(prop, errors);\n val = this.normalizer.normalizeStyleValue(prop, normalizedProp, val, errors);\n finalStyles.set(prop, val);\n });\n }\n });\n return finalStyles;\n }\n}\n\nfunction buildTrigger(name, ast, normalizer) {\n return new AnimationTrigger(name, ast, normalizer);\n}\nclass AnimationTrigger {\n constructor(name, ast, _normalizer) {\n this.name = name;\n this.ast = ast;\n this._normalizer = _normalizer;\n this.transitionFactories = [];\n this.states = new Map();\n ast.states.forEach(ast => {\n const defaultParams = (ast.options && ast.options.params) || {};\n this.states.set(ast.name, new AnimationStateStyles(ast.style, defaultParams, _normalizer));\n });\n balanceProperties(this.states, 'true', '1');\n balanceProperties(this.states, 'false', '0');\n ast.transitions.forEach(ast => {\n this.transitionFactories.push(new AnimationTransitionFactory(name, ast, this.states));\n });\n this.fallbackTransition = createFallbackTransition(name, this.states, this._normalizer);\n }\n get containsQueries() {\n return this.ast.queryCount > 0;\n }\n matchTransition(currentState, nextState, element, params) {\n const entry = this.transitionFactories.find(f => f.match(currentState, nextState, element, params));\n return entry || null;\n }\n matchStyles(currentState, params, errors) {\n return this.fallbackTransition.buildStyles(currentState, params, errors);\n }\n}\nfunction createFallbackTransition(triggerName, states, normalizer) {\n const matchers = [(fromState, toState) => true];\n const animation = { type: 2 /* AnimationMetadataType.Sequence */, steps: [], options: null };\n const transition = {\n type: 1 /* AnimationMetadataType.Transition */,\n animation,\n matchers,\n options: null,\n queryCount: 0,\n depCount: 0\n };\n return new AnimationTransitionFactory(triggerName, transition, states);\n}\nfunction balanceProperties(stateMap, key1, key2) {\n if (stateMap.has(key1)) {\n if (!stateMap.has(key2)) {\n stateMap.set(key2, stateMap.get(key1));\n }\n }\n else if (stateMap.has(key2)) {\n stateMap.set(key1, stateMap.get(key2));\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst EMPTY_INSTRUCTION_MAP = new ElementInstructionMap();\nclass TimelineAnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._animations = new Map();\n this._playersById = new Map();\n this.players = [];\n }\n register(id, metadata) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw registerFailed(errors);\n }\n else {\n if (warnings.length) {\n warnRegister(warnings);\n }\n this._animations.set(id, ast);\n }\n }\n _buildPlayer(i, preStyles, postStyles) {\n const element = i.element;\n const keyframes = normalizeKeyframes$1(this._driver, this._normalizer, element, i.keyframes, preStyles, postStyles);\n return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, [], true);\n }\n create(id, element, options = {}) {\n const errors = [];\n const ast = this._animations.get(id);\n let instructions;\n const autoStylesMap = new Map();\n if (ast) {\n instructions = buildAnimationTimelines(this._driver, element, ast, ENTER_CLASSNAME, LEAVE_CLASSNAME, new Map(), new Map(), options, EMPTY_INSTRUCTION_MAP, errors);\n instructions.forEach(inst => {\n const styles = getOrSetDefaultValue(autoStylesMap, inst.element, new Map());\n inst.postStyleProps.forEach(prop => styles.set(prop, null));\n });\n }\n else {\n errors.push(missingOrDestroyedAnimation());\n instructions = [];\n }\n if (errors.length) {\n throw createAnimationFailed(errors);\n }\n autoStylesMap.forEach((styles, element) => {\n styles.forEach((_, prop) => {\n styles.set(prop, this._driver.computeStyle(element, prop, AUTO_STYLE));\n });\n });\n const players = instructions.map(i => {\n const styles = autoStylesMap.get(i.element);\n return this._buildPlayer(i, new Map(), styles);\n });\n const player = optimizeGroupPlayer(players);\n this._playersById.set(id, player);\n player.onDestroy(() => this.destroy(id));\n this.players.push(player);\n return player;\n }\n destroy(id) {\n const player = this._getPlayer(id);\n player.destroy();\n this._playersById.delete(id);\n const index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n }\n _getPlayer(id) {\n const player = this._playersById.get(id);\n if (!player) {\n throw missingPlayer(id);\n }\n return player;\n }\n listen(id, element, eventName, callback) {\n // triggerName, fromState, toState are all ignored for timeline animations\n const baseEvent = makeAnimationEvent(element, '', '', '');\n listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n return () => { };\n }\n command(id, element, command, args) {\n if (command == 'register') {\n this.register(id, args[0]);\n return;\n }\n if (command == 'create') {\n const options = (args[0] || {});\n this.create(id, element, options);\n return;\n }\n const player = this._getPlayer(id);\n switch (command) {\n case 'play':\n player.play();\n break;\n case 'pause':\n player.pause();\n break;\n case 'reset':\n player.reset();\n break;\n case 'restart':\n player.restart();\n break;\n case 'finish':\n player.finish();\n break;\n case 'init':\n player.init();\n break;\n case 'setPosition':\n player.setPosition(parseFloat(args[0]));\n break;\n case 'destroy':\n this.destroy(id);\n break;\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst QUEUED_CLASSNAME = 'ng-animate-queued';\nconst QUEUED_SELECTOR = '.ng-animate-queued';\nconst DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst DISABLED_SELECTOR = '.ng-animate-disabled';\nconst STAR_CLASSNAME = 'ng-star-inserted';\nconst STAR_SELECTOR = '.ng-star-inserted';\nconst EMPTY_PLAYER_ARRAY = [];\nconst NULL_REMOVAL_STATE = {\n namespaceId: '',\n setForRemoval: false,\n setForMove: false,\n hasAnimation: false,\n removedBeforeQueried: false\n};\nconst NULL_REMOVED_QUERIED_STATE = {\n namespaceId: '',\n setForMove: false,\n setForRemoval: false,\n hasAnimation: false,\n removedBeforeQueried: true\n};\nconst REMOVAL_FLAG = '__ng_removed';\nclass StateValue {\n constructor(input, namespaceId = '') {\n this.namespaceId = namespaceId;\n const isObj = input && input.hasOwnProperty('value');\n const value = isObj ? input['value'] : input;\n this.value = normalizeTriggerValue(value);\n if (isObj) {\n const options = copyObj(input);\n delete options['value'];\n this.options = options;\n }\n else {\n this.options = {};\n }\n if (!this.options.params) {\n this.options.params = {};\n }\n }\n get params() {\n return this.options.params;\n }\n absorbOptions(options) {\n const newParams = options.params;\n if (newParams) {\n const oldParams = this.options.params;\n Object.keys(newParams).forEach(prop => {\n if (oldParams[prop] == null) {\n oldParams[prop] = newParams[prop];\n }\n });\n }\n }\n}\nconst VOID_VALUE = 'void';\nconst DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nclass AnimationTransitionNamespace {\n constructor(id, hostElement, _engine) {\n this.id = id;\n this.hostElement = hostElement;\n this._engine = _engine;\n this.players = [];\n this._triggers = new Map();\n this._queue = [];\n this._elementListeners = new Map();\n this._hostClassName = 'ng-tns-' + id;\n addClass(hostElement, this._hostClassName);\n }\n listen(element, name, phase, callback) {\n if (!this._triggers.has(name)) {\n throw missingTrigger(phase, name);\n }\n if (phase == null || phase.length == 0) {\n throw missingEvent(name);\n }\n if (!isTriggerEventValid(phase)) {\n throw unsupportedTriggerEvent(phase, name);\n }\n const listeners = getOrSetDefaultValue(this._elementListeners, element, []);\n const data = { name, phase, callback };\n listeners.push(data);\n const triggersWithStates = getOrSetDefaultValue(this._engine.statesByElement, element, new Map());\n if (!triggersWithStates.has(name)) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n triggersWithStates.set(name, DEFAULT_STATE_VALUE);\n }\n return () => {\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n this._engine.afterFlush(() => {\n const index = listeners.indexOf(data);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n if (!this._triggers.has(name)) {\n triggersWithStates.delete(name);\n }\n });\n };\n }\n register(name, ast) {\n if (this._triggers.has(name)) {\n // throw\n return false;\n }\n else {\n this._triggers.set(name, ast);\n return true;\n }\n }\n _getTrigger(name) {\n const trigger = this._triggers.get(name);\n if (!trigger) {\n throw unregisteredTrigger(name);\n }\n return trigger;\n }\n trigger(element, triggerName, value, defaultToFallback = true) {\n const trigger = this._getTrigger(triggerName);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n let triggersWithStates = this._engine.statesByElement.get(element);\n if (!triggersWithStates) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n this._engine.statesByElement.set(element, triggersWithStates = new Map());\n }\n let fromState = triggersWithStates.get(triggerName);\n const toState = new StateValue(value, this.id);\n const isObj = value && value.hasOwnProperty('value');\n if (!isObj && fromState) {\n toState.absorbOptions(fromState.options);\n }\n triggersWithStates.set(triggerName, toState);\n if (!fromState) {\n fromState = DEFAULT_STATE_VALUE;\n }\n const isRemoval = toState.value === VOID_VALUE;\n // normally this isn't reached by here, however, if an object expression\n // is passed in then it may be a new object each time. Comparing the value\n // is important since that will stay the same despite there being a new object.\n // The removal arc here is special cased because the same element is triggered\n // twice in the event that it contains animations on the outer/inner portions\n // of the host container\n if (!isRemoval && fromState.value === toState.value) {\n // this means that despite the value not changing, some inner params\n // have changed which means that the animation final styles need to be applied\n if (!objEquals(fromState.params, toState.params)) {\n const errors = [];\n const fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n const toStyles = trigger.matchStyles(toState.value, toState.params, errors);\n if (errors.length) {\n this._engine.reportError(errors);\n }\n else {\n this._engine.afterFlush(() => {\n eraseStyles(element, fromStyles);\n setStyles(element, toStyles);\n });\n }\n }\n return;\n }\n const playersOnElement = getOrSetDefaultValue(this._engine.playersByElement, element, []);\n playersOnElement.forEach(player => {\n // only remove the player if it is queued on the EXACT same trigger/namespace\n // we only also deal with queued players here because if the animation has\n // started then we want to keep the player alive until the flush happens\n // (which is where the previousPlayers are passed into the new player)\n if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n player.destroy();\n }\n });\n let transition = trigger.matchTransition(fromState.value, toState.value, element, toState.params);\n let isFallbackTransition = false;\n if (!transition) {\n if (!defaultToFallback)\n return;\n transition = trigger.fallbackTransition;\n isFallbackTransition = true;\n }\n this._engine.totalQueuedPlayers++;\n this._queue.push({ element, triggerName, transition, fromState, toState, player, isFallbackTransition });\n if (!isFallbackTransition) {\n addClass(element, QUEUED_CLASSNAME);\n player.onStart(() => {\n removeClass(element, QUEUED_CLASSNAME);\n });\n }\n player.onDone(() => {\n let index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n const players = this._engine.playersByElement.get(element);\n if (players) {\n let index = players.indexOf(player);\n if (index >= 0) {\n players.splice(index, 1);\n }\n }\n });\n this.players.push(player);\n playersOnElement.push(player);\n return player;\n }\n deregister(name) {\n this._triggers.delete(name);\n this._engine.statesByElement.forEach(stateMap => stateMap.delete(name));\n this._elementListeners.forEach((listeners, element) => {\n this._elementListeners.set(element, listeners.filter(entry => {\n return entry.name != name;\n }));\n });\n }\n clearElementCache(element) {\n this._engine.statesByElement.delete(element);\n this._elementListeners.delete(element);\n const elementPlayers = this._engine.playersByElement.get(element);\n if (elementPlayers) {\n elementPlayers.forEach(player => player.destroy());\n this._engine.playersByElement.delete(element);\n }\n }\n _signalRemovalForInnerTriggers(rootElement, context) {\n const elements = this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true);\n // emulate a leave animation for all inner nodes within this node.\n // If there are no animations found for any of the nodes then clear the cache\n // for the element.\n elements.forEach(elm => {\n // this means that an inner remove() operation has already kicked off\n // the animation on this element...\n if (elm[REMOVAL_FLAG])\n return;\n const namespaces = this._engine.fetchNamespacesByElement(elm);\n if (namespaces.size) {\n namespaces.forEach(ns => ns.triggerLeaveAnimation(elm, context, false, true));\n }\n else {\n this.clearElementCache(elm);\n }\n });\n // If the child elements were removed along with the parent, their animations might not\n // have completed. Clear all the elements from the cache so we don't end up with a memory leak.\n this._engine.afterFlushAnimationsDone(() => elements.forEach(elm => this.clearElementCache(elm)));\n }\n triggerLeaveAnimation(element, context, destroyAfterComplete, defaultToFallback) {\n const triggerStates = this._engine.statesByElement.get(element);\n const previousTriggersValues = new Map();\n if (triggerStates) {\n const players = [];\n triggerStates.forEach((state, triggerName) => {\n previousTriggersValues.set(triggerName, state.value);\n // this check is here in the event that an element is removed\n // twice (both on the host level and the component level)\n if (this._triggers.has(triggerName)) {\n const player = this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);\n if (player) {\n players.push(player);\n }\n }\n });\n if (players.length) {\n this._engine.markElementAsRemoved(this.id, element, true, context, previousTriggersValues);\n if (destroyAfterComplete) {\n optimizeGroupPlayer(players).onDone(() => this._engine.processLeaveNode(element));\n }\n return true;\n }\n }\n return false;\n }\n prepareLeaveAnimationListeners(element) {\n const listeners = this._elementListeners.get(element);\n const elementStates = this._engine.statesByElement.get(element);\n // if this statement fails then it means that the element was picked up\n // by an earlier flush (or there are no listeners at all to track the leave).\n if (listeners && elementStates) {\n const visitedTriggers = new Set();\n listeners.forEach(listener => {\n const triggerName = listener.name;\n if (visitedTriggers.has(triggerName))\n return;\n visitedTriggers.add(triggerName);\n const trigger = this._triggers.get(triggerName);\n const transition = trigger.fallbackTransition;\n const fromState = elementStates.get(triggerName) || DEFAULT_STATE_VALUE;\n const toState = new StateValue(VOID_VALUE);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition: true\n });\n });\n }\n }\n removeNode(element, context) {\n const engine = this._engine;\n if (element.childElementCount) {\n this._signalRemovalForInnerTriggers(element, context);\n }\n // this means that a * => VOID animation was detected and kicked off\n if (this.triggerLeaveAnimation(element, context, true))\n return;\n // find the player that is animating and make sure that the\n // removal is delayed until that player has completed\n let containsPotentialParentTransition = false;\n if (engine.totalAnimations) {\n const currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n // when this `if statement` does not continue forward it means that\n // a previous animation query has selected the current element and\n // is animating it. In this situation want to continue forwards and\n // allow the element to be queued up for animation later.\n if (currentPlayers && currentPlayers.length) {\n containsPotentialParentTransition = true;\n }\n else {\n let parent = element;\n while (parent = parent.parentNode) {\n const triggers = engine.statesByElement.get(parent);\n if (triggers) {\n containsPotentialParentTransition = true;\n break;\n }\n }\n }\n }\n // at this stage we know that the element will either get removed\n // during flush or will be picked up by a parent query. Either way\n // we need to fire the listeners for this element when it DOES get\n // removed (once the query parent animation is done or after flush)\n this.prepareLeaveAnimationListeners(element);\n // whether or not a parent has an animation we need to delay the deferral of the leave\n // operation until we have more information (which we do after flush() has been called)\n if (containsPotentialParentTransition) {\n engine.markElementAsRemoved(this.id, element, false, context);\n }\n else {\n const removalFlag = element[REMOVAL_FLAG];\n if (!removalFlag || removalFlag === NULL_REMOVAL_STATE) {\n // we do this after the flush has occurred such\n // that the callbacks can be fired\n engine.afterFlush(() => this.clearElementCache(element));\n engine.destroyInnerAnimations(element);\n engine._onRemovalComplete(element, context);\n }\n }\n }\n insertNode(element, parent) {\n addClass(element, this._hostClassName);\n }\n drainQueuedTransitions(microtaskId) {\n const instructions = [];\n this._queue.forEach(entry => {\n const player = entry.player;\n if (player.destroyed)\n return;\n const element = entry.element;\n const listeners = this._elementListeners.get(element);\n if (listeners) {\n listeners.forEach((listener) => {\n if (listener.name == entry.triggerName) {\n const baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n baseEvent['_data'] = microtaskId;\n listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n }\n });\n }\n if (player.markedForDestroy) {\n this._engine.afterFlush(() => {\n // now we can destroy the element properly since the event listeners have\n // been bound to the player\n player.destroy();\n });\n }\n else {\n instructions.push(entry);\n }\n });\n this._queue = [];\n return instructions.sort((a, b) => {\n // if depCount == 0 them move to front\n // otherwise if a contains b then move back\n const d0 = a.transition.ast.depCount;\n const d1 = b.transition.ast.depCount;\n if (d0 == 0 || d1 == 0) {\n return d0 - d1;\n }\n return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n });\n }\n destroy(context) {\n this.players.forEach(p => p.destroy());\n this._signalRemovalForInnerTriggers(this.hostElement, context);\n }\n elementContainsData(element) {\n let containsData = false;\n if (this._elementListeners.has(element))\n containsData = true;\n containsData =\n (this._queue.find(entry => entry.element === element) ? true : false) || containsData;\n return containsData;\n }\n}\nclass TransitionAnimationEngine {\n constructor(bodyNode, driver, _normalizer) {\n this.bodyNode = bodyNode;\n this.driver = driver;\n this._normalizer = _normalizer;\n this.players = [];\n this.newHostElements = new Map();\n this.playersByElement = new Map();\n this.playersByQueriedElement = new Map();\n this.statesByElement = new Map();\n this.disabledNodes = new Set();\n this.totalAnimations = 0;\n this.totalQueuedPlayers = 0;\n this._namespaceLookup = {};\n this._namespaceList = [];\n this._flushFns = [];\n this._whenQuietFns = [];\n this.namespacesByHostElement = new Map();\n this.collectedEnterElements = [];\n this.collectedLeaveElements = [];\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n }\n /** @internal */\n _onRemovalComplete(element, context) {\n this.onRemovalComplete(element, context);\n }\n get queuedPlayers() {\n const players = [];\n this._namespaceList.forEach(ns => {\n ns.players.forEach(player => {\n if (player.queued) {\n players.push(player);\n }\n });\n });\n return players;\n }\n createNamespace(namespaceId, hostElement) {\n const ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n if (this.bodyNode && this.driver.containsElement(this.bodyNode, hostElement)) {\n this._balanceNamespaceList(ns, hostElement);\n }\n else {\n // defer this later until flush during when the host element has\n // been inserted so that we know exactly where to place it in\n // the namespace list\n this.newHostElements.set(hostElement, ns);\n // given that this host element is a part of the animation code, it\n // may or may not be inserted by a parent node that is of an\n // animation renderer type. If this happens then we can still have\n // access to this item when we query for :enter nodes. If the parent\n // is a renderer then the set data-structure will normalize the entry\n this.collectEnterElement(hostElement);\n }\n return this._namespaceLookup[namespaceId] = ns;\n }\n _balanceNamespaceList(ns, hostElement) {\n const namespaceList = this._namespaceList;\n const namespacesByHostElement = this.namespacesByHostElement;\n const limit = namespaceList.length - 1;\n if (limit >= 0) {\n let found = false;\n // Find the closest ancestor with an existing namespace so we can then insert `ns` after it,\n // establishing a top-down ordering of namespaces in `this._namespaceList`.\n let ancestor = this.driver.getParentElement(hostElement);\n while (ancestor) {\n const ancestorNs = namespacesByHostElement.get(ancestor);\n if (ancestorNs) {\n // An animation namespace has been registered for this ancestor, so we insert `ns`\n // right after it to establish top-down ordering of animation namespaces.\n const index = namespaceList.indexOf(ancestorNs);\n namespaceList.splice(index + 1, 0, ns);\n found = true;\n break;\n }\n ancestor = this.driver.getParentElement(ancestor);\n }\n if (!found) {\n // No namespace exists that is an ancestor of `ns`, so `ns` is inserted at the front to\n // ensure that any existing descendants are ordered after `ns`, retaining the desired\n // top-down ordering.\n namespaceList.unshift(ns);\n }\n }\n else {\n namespaceList.push(ns);\n }\n namespacesByHostElement.set(hostElement, ns);\n return ns;\n }\n register(namespaceId, hostElement) {\n let ns = this._namespaceLookup[namespaceId];\n if (!ns) {\n ns = this.createNamespace(namespaceId, hostElement);\n }\n return ns;\n }\n registerTrigger(namespaceId, name, trigger) {\n let ns = this._namespaceLookup[namespaceId];\n if (ns && ns.register(name, trigger)) {\n this.totalAnimations++;\n }\n }\n destroy(namespaceId, context) {\n if (!namespaceId)\n return;\n const ns = this._fetchNamespace(namespaceId);\n this.afterFlush(() => {\n this.namespacesByHostElement.delete(ns.hostElement);\n delete this._namespaceLookup[namespaceId];\n const index = this._namespaceList.indexOf(ns);\n if (index >= 0) {\n this._namespaceList.splice(index, 1);\n }\n });\n this.afterFlushAnimationsDone(() => ns.destroy(context));\n }\n _fetchNamespace(id) {\n return this._namespaceLookup[id];\n }\n fetchNamespacesByElement(element) {\n // normally there should only be one namespace per element, however\n // if @triggers are placed on both the component element and then\n // its host element (within the component code) then there will be\n // two namespaces returned. We use a set here to simply deduplicate\n // the namespaces in case (for the reason described above) there are multiple triggers\n const namespaces = new Set();\n const elementStates = this.statesByElement.get(element);\n if (elementStates) {\n for (let stateValue of elementStates.values()) {\n if (stateValue.namespaceId) {\n const ns = this._fetchNamespace(stateValue.namespaceId);\n if (ns) {\n namespaces.add(ns);\n }\n }\n }\n }\n return namespaces;\n }\n trigger(namespaceId, element, name, value) {\n if (isElementNode(element)) {\n const ns = this._fetchNamespace(namespaceId);\n if (ns) {\n ns.trigger(element, name, value);\n return true;\n }\n }\n return false;\n }\n insertNode(namespaceId, element, parent, insertBefore) {\n if (!isElementNode(element))\n return;\n // special case for when an element is removed and reinserted (move operation)\n // when this occurs we do not want to use the element for deletion later\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n details.setForRemoval = false;\n details.setForMove = true;\n const index = this.collectedLeaveElements.indexOf(element);\n if (index >= 0) {\n this.collectedLeaveElements.splice(index, 1);\n }\n }\n // in the event that the namespaceId is blank then the caller\n // code does not contain any animation code in it, but it is\n // just being called so that the node is marked as being inserted\n if (namespaceId) {\n const ns = this._fetchNamespace(namespaceId);\n // This if-statement is a workaround for router issue #21947.\n // The router sometimes hits a race condition where while a route\n // is being instantiated a new navigation arrives, triggering leave\n // animation of DOM that has not been fully initialized, until this\n // is resolved, we need to handle the scenario when DOM is not in a\n // consistent state during the animation.\n if (ns) {\n ns.insertNode(element, parent);\n }\n }\n // only *directives and host elements are inserted before\n if (insertBefore) {\n this.collectEnterElement(element);\n }\n }\n collectEnterElement(element) {\n this.collectedEnterElements.push(element);\n }\n markElementAsDisabled(element, value) {\n if (value) {\n if (!this.disabledNodes.has(element)) {\n this.disabledNodes.add(element);\n addClass(element, DISABLED_CLASSNAME);\n }\n }\n else if (this.disabledNodes.has(element)) {\n this.disabledNodes.delete(element);\n removeClass(element, DISABLED_CLASSNAME);\n }\n }\n removeNode(namespaceId, element, isHostElement, context) {\n if (isElementNode(element)) {\n const ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n if (ns) {\n ns.removeNode(element, context);\n }\n else {\n this.markElementAsRemoved(namespaceId, element, false, context);\n }\n if (isHostElement) {\n const hostNS = this.namespacesByHostElement.get(element);\n if (hostNS && hostNS.id !== namespaceId) {\n hostNS.removeNode(element, context);\n }\n }\n }\n else {\n this._onRemovalComplete(element, context);\n }\n }\n markElementAsRemoved(namespaceId, element, hasAnimation, context, previousTriggersValues) {\n this.collectedLeaveElements.push(element);\n element[REMOVAL_FLAG] = {\n namespaceId,\n setForRemoval: context,\n hasAnimation,\n removedBeforeQueried: false,\n previousTriggersValues\n };\n }\n listen(namespaceId, element, name, phase, callback) {\n if (isElementNode(element)) {\n return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n }\n return () => { };\n }\n _buildInstruction(entry, subTimelines, enterClassName, leaveClassName, skipBuildAst) {\n return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, enterClassName, leaveClassName, entry.fromState.options, entry.toState.options, subTimelines, skipBuildAst);\n }\n destroyInnerAnimations(containerElement) {\n let elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n elements.forEach(element => this.destroyActiveAnimationsForElement(element));\n if (this.playersByQueriedElement.size == 0)\n return;\n elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n elements.forEach(element => this.finishActiveQueriedAnimationOnElement(element));\n }\n destroyActiveAnimationsForElement(element) {\n const players = this.playersByElement.get(element);\n if (players) {\n players.forEach(player => {\n // special case for when an element is set for destruction, but hasn't started.\n // in this situation we want to delay the destruction until the flush occurs\n // so that any event listeners attached to the player are triggered.\n if (player.queued) {\n player.markedForDestroy = true;\n }\n else {\n player.destroy();\n }\n });\n }\n }\n finishActiveQueriedAnimationOnElement(element) {\n const players = this.playersByQueriedElement.get(element);\n if (players) {\n players.forEach(player => player.finish());\n }\n }\n whenRenderingDone() {\n return new Promise(resolve => {\n if (this.players.length) {\n return optimizeGroupPlayer(this.players).onDone(() => resolve());\n }\n else {\n resolve();\n }\n });\n }\n processLeaveNode(element) {\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n // this will prevent it from removing it twice\n element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n if (details.namespaceId) {\n this.destroyInnerAnimations(element);\n const ns = this._fetchNamespace(details.namespaceId);\n if (ns) {\n ns.clearElementCache(element);\n }\n }\n this._onRemovalComplete(element, details.setForRemoval);\n }\n if (element.classList?.contains(DISABLED_CLASSNAME)) {\n this.markElementAsDisabled(element, false);\n }\n this.driver.query(element, DISABLED_SELECTOR, true).forEach(node => {\n this.markElementAsDisabled(node, false);\n });\n }\n flush(microtaskId = -1) {\n let players = [];\n if (this.newHostElements.size) {\n this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n this.newHostElements.clear();\n }\n if (this.totalAnimations && this.collectedEnterElements.length) {\n for (let i = 0; i < this.collectedEnterElements.length; i++) {\n const elm = this.collectedEnterElements[i];\n addClass(elm, STAR_CLASSNAME);\n }\n }\n if (this._namespaceList.length &&\n (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n const cleanupFns = [];\n try {\n players = this._flushAnimations(cleanupFns, microtaskId);\n }\n finally {\n for (let i = 0; i < cleanupFns.length; i++) {\n cleanupFns[i]();\n }\n }\n }\n else {\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n this.processLeaveNode(element);\n }\n }\n this.totalQueuedPlayers = 0;\n this.collectedEnterElements.length = 0;\n this.collectedLeaveElements.length = 0;\n this._flushFns.forEach(fn => fn());\n this._flushFns = [];\n if (this._whenQuietFns.length) {\n // we move these over to a variable so that\n // if any new callbacks are registered in another\n // flush they do not populate the existing set\n const quietFns = this._whenQuietFns;\n this._whenQuietFns = [];\n if (players.length) {\n optimizeGroupPlayer(players).onDone(() => {\n quietFns.forEach(fn => fn());\n });\n }\n else {\n quietFns.forEach(fn => fn());\n }\n }\n }\n reportError(errors) {\n throw triggerTransitionsFailed(errors);\n }\n _flushAnimations(cleanupFns, microtaskId) {\n const subTimelines = new ElementInstructionMap();\n const skippedPlayers = [];\n const skippedPlayersMap = new Map();\n const queuedInstructions = [];\n const queriedElements = new Map();\n const allPreStyleElements = new Map();\n const allPostStyleElements = new Map();\n const disabledElementsSet = new Set();\n this.disabledNodes.forEach(node => {\n disabledElementsSet.add(node);\n const nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);\n for (let i = 0; i < nodesThatAreDisabled.length; i++) {\n disabledElementsSet.add(nodesThatAreDisabled[i]);\n }\n });\n const bodyNode = this.bodyNode;\n const allTriggerElements = Array.from(this.statesByElement.keys());\n const enterNodeMap = buildRootMap(allTriggerElements, this.collectedEnterElements);\n // this must occur before the instructions are built below such that\n // the :enter queries match the elements (since the timeline queries\n // are fired during instruction building).\n const enterNodeMapIds = new Map();\n let i = 0;\n enterNodeMap.forEach((nodes, root) => {\n const className = ENTER_CLASSNAME + i++;\n enterNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n const allLeaveNodes = [];\n const mergedLeaveNodes = new Set();\n const leaveNodesWithoutAnimations = new Set();\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n allLeaveNodes.push(element);\n mergedLeaveNodes.add(element);\n if (details.hasAnimation) {\n this.driver.query(element, STAR_SELECTOR, true).forEach(elm => mergedLeaveNodes.add(elm));\n }\n else {\n leaveNodesWithoutAnimations.add(element);\n }\n }\n }\n const leaveNodeMapIds = new Map();\n const leaveNodeMap = buildRootMap(allTriggerElements, Array.from(mergedLeaveNodes));\n leaveNodeMap.forEach((nodes, root) => {\n const className = LEAVE_CLASSNAME + i++;\n leaveNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n cleanupFns.push(() => {\n enterNodeMap.forEach((nodes, root) => {\n const className = enterNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n leaveNodeMap.forEach((nodes, root) => {\n const className = leaveNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n allLeaveNodes.forEach(element => {\n this.processLeaveNode(element);\n });\n });\n const allPlayers = [];\n const erroneousTransitions = [];\n for (let i = this._namespaceList.length - 1; i >= 0; i--) {\n const ns = this._namespaceList[i];\n ns.drainQueuedTransitions(microtaskId).forEach(entry => {\n const player = entry.player;\n const element = entry.element;\n allPlayers.push(player);\n if (this.collectedEnterElements.length) {\n const details = element[REMOVAL_FLAG];\n // animations for move operations (elements being removed and reinserted,\n // e.g. when the order of an *ngFor list changes) are currently not supported\n if (details && details.setForMove) {\n if (details.previousTriggersValues &&\n details.previousTriggersValues.has(entry.triggerName)) {\n const previousValue = details.previousTriggersValues.get(entry.triggerName);\n // we need to restore the previous trigger value since the element has\n // only been moved and hasn't actually left the DOM\n const triggersWithStates = this.statesByElement.get(entry.element);\n if (triggersWithStates && triggersWithStates.has(entry.triggerName)) {\n const state = triggersWithStates.get(entry.triggerName);\n state.value = previousValue;\n triggersWithStates.set(entry.triggerName, state);\n }\n }\n player.destroy();\n return;\n }\n }\n const nodeIsOrphaned = !bodyNode || !this.driver.containsElement(bodyNode, element);\n const leaveClassName = leaveNodeMapIds.get(element);\n const enterClassName = enterNodeMapIds.get(element);\n const instruction = this._buildInstruction(entry, subTimelines, enterClassName, leaveClassName, nodeIsOrphaned);\n if (instruction.errors && instruction.errors.length) {\n erroneousTransitions.push(instruction);\n return;\n }\n // even though the element may not be in the DOM, it may still\n // be added at a later point (due to the mechanics of content\n // projection and/or dynamic component insertion) therefore it's\n // important to still style the element.\n if (nodeIsOrphaned) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // if an unmatched transition is queued and ready to go\n // then it SHOULD NOT render an animation and cancel the\n // previously running animations.\n if (entry.isFallbackTransition) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // this means that if a parent animation uses this animation as a sub-trigger\n // then it will instruct the timeline builder not to add a player delay, but\n // instead stretch the first keyframe gap until the animation starts. This is\n // important in order to prevent extra initialization styles from being\n // required by the user for the animation.\n const timelines = [];\n instruction.timelines.forEach(tl => {\n tl.stretchStartingKeyframe = true;\n if (!this.disabledNodes.has(tl.element)) {\n timelines.push(tl);\n }\n });\n instruction.timelines = timelines;\n subTimelines.append(element, instruction.timelines);\n const tuple = { instruction, player, element };\n queuedInstructions.push(tuple);\n instruction.queriedElements.forEach(element => getOrSetDefaultValue(queriedElements, element, []).push(player));\n instruction.preStyleProps.forEach((stringMap, element) => {\n if (stringMap.size) {\n let setVal = allPreStyleElements.get(element);\n if (!setVal) {\n allPreStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n }\n });\n instruction.postStyleProps.forEach((stringMap, element) => {\n let setVal = allPostStyleElements.get(element);\n if (!setVal) {\n allPostStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n });\n });\n }\n if (erroneousTransitions.length) {\n const errors = [];\n erroneousTransitions.forEach(instruction => {\n errors.push(transitionFailed(instruction.triggerName, instruction.errors));\n });\n allPlayers.forEach(player => player.destroy());\n this.reportError(errors);\n }\n const allPreviousPlayersMap = new Map();\n // this map tells us which element in the DOM tree is contained by\n // which animation. Further down this map will get populated once\n // the players are built and in doing so we can use it to efficiently\n // figure out if a sub player is skipped due to a parent player having priority.\n const animationElementMap = new Map();\n queuedInstructions.forEach(entry => {\n const element = entry.element;\n if (subTimelines.has(element)) {\n animationElementMap.set(element, element);\n this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n }\n });\n skippedPlayers.forEach(player => {\n const element = player.element;\n const previousPlayers = this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n previousPlayers.forEach(prevPlayer => {\n getOrSetDefaultValue(allPreviousPlayersMap, element, []).push(prevPlayer);\n prevPlayer.destroy();\n });\n });\n // this is a special case for nodes that will be removed either by\n // having their own leave animations or by being queried in a container\n // that will be removed once a parent animation is complete. The idea\n // here is that * styles must be identical to ! styles because of\n // backwards compatibility (* is also filled in by default in many places).\n // Otherwise * styles will return an empty value or \"auto\" since the element\n // passed to getComputedStyle will not be visible (since * === destination)\n const replaceNodes = allLeaveNodes.filter(node => {\n return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n });\n // POST STAGE: fill the * styles\n const postStylesMap = new Map();\n const allLeaveQueriedNodes = cloakAndComputeStyles(postStylesMap, this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n allLeaveQueriedNodes.forEach(node => {\n if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n replaceNodes.push(node);\n }\n });\n // PRE STAGE: fill the ! styles\n const preStylesMap = new Map();\n enterNodeMap.forEach((nodes, root) => {\n cloakAndComputeStyles(preStylesMap, this.driver, new Set(nodes), allPreStyleElements, ɵPRE_STYLE);\n });\n replaceNodes.forEach(node => {\n const post = postStylesMap.get(node);\n const pre = preStylesMap.get(node);\n postStylesMap.set(node, new Map([...Array.from(post?.entries() ?? []), ...Array.from(pre?.entries() ?? [])]));\n });\n const rootPlayers = [];\n const subPlayers = [];\n const NO_PARENT_ANIMATION_ELEMENT_DETECTED = {};\n queuedInstructions.forEach(entry => {\n const { element, player, instruction } = entry;\n // this means that it was never consumed by a parent animation which\n // means that it is independent and therefore should be set for animation\n if (subTimelines.has(element)) {\n if (disabledElementsSet.has(element)) {\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n player.disabled = true;\n player.overrideTotalTime(instruction.totalTime);\n skippedPlayers.push(player);\n return;\n }\n // this will flow up the DOM and query the map to figure out\n // if a parent animation has priority over it. In the situation\n // that a parent is detected then it will cancel the loop. If\n // nothing is detected, or it takes a few hops to find a parent,\n // then it will fill in the missing nodes and signal them as having\n // a detected parent (or a NO_PARENT value via a special constant).\n let parentWithAnimation = NO_PARENT_ANIMATION_ELEMENT_DETECTED;\n if (animationElementMap.size > 1) {\n let elm = element;\n const parentsToAdd = [];\n while (elm = elm.parentNode) {\n const detectedParent = animationElementMap.get(elm);\n if (detectedParent) {\n parentWithAnimation = detectedParent;\n break;\n }\n parentsToAdd.push(elm);\n }\n parentsToAdd.forEach(parent => animationElementMap.set(parent, parentWithAnimation));\n }\n const innerPlayer = this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n player.setRealPlayer(innerPlayer);\n if (parentWithAnimation === NO_PARENT_ANIMATION_ELEMENT_DETECTED) {\n rootPlayers.push(player);\n }\n else {\n const parentPlayers = this.playersByElement.get(parentWithAnimation);\n if (parentPlayers && parentPlayers.length) {\n player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n }\n skippedPlayers.push(player);\n }\n }\n else {\n eraseStyles(element, instruction.fromStyles);\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n // there still might be a ancestor player animating this\n // element therefore we will still add it as a sub player\n // even if its animation may be disabled\n subPlayers.push(player);\n if (disabledElementsSet.has(element)) {\n skippedPlayers.push(player);\n }\n }\n });\n // find all of the sub players' corresponding inner animation players\n subPlayers.forEach(player => {\n // even if no players are found for a sub animation it\n // will still complete itself after the next tick since it's Noop\n const playersForElement = skippedPlayersMap.get(player.element);\n if (playersForElement && playersForElement.length) {\n const innerPlayer = optimizeGroupPlayer(playersForElement);\n player.setRealPlayer(innerPlayer);\n }\n });\n // the reason why we don't actually play the animation is\n // because all that a skipped player is designed to do is to\n // fire the start/done transition callback events\n skippedPlayers.forEach(player => {\n if (player.parentPlayer) {\n player.syncPlayerEvents(player.parentPlayer);\n }\n else {\n player.destroy();\n }\n });\n // run through all of the queued removals and see if they\n // were picked up by a query. If not then perform the removal\n // operation right away unless a parent animation is ongoing.\n for (let i = 0; i < allLeaveNodes.length; i++) {\n const element = allLeaveNodes[i];\n const details = element[REMOVAL_FLAG];\n removeClass(element, LEAVE_CLASSNAME);\n // this means the element has a removal animation that is being\n // taken care of and therefore the inner elements will hang around\n // until that animation is over (or the parent queried animation)\n if (details && details.hasAnimation)\n continue;\n let players = [];\n // if this element is queried or if it contains queried children\n // then we want for the element not to be removed from the page\n // until the queried animations have finished\n if (queriedElements.size) {\n let queriedPlayerResults = queriedElements.get(element);\n if (queriedPlayerResults && queriedPlayerResults.length) {\n players.push(...queriedPlayerResults);\n }\n let queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n for (let j = 0; j < queriedInnerElements.length; j++) {\n let queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n if (queriedPlayers && queriedPlayers.length) {\n players.push(...queriedPlayers);\n }\n }\n }\n const activePlayers = players.filter(p => !p.destroyed);\n if (activePlayers.length) {\n removeNodesAfterAnimationDone(this, element, activePlayers);\n }\n else {\n this.processLeaveNode(element);\n }\n }\n // this is required so the cleanup method doesn't remove them\n allLeaveNodes.length = 0;\n rootPlayers.forEach(player => {\n this.players.push(player);\n player.onDone(() => {\n player.destroy();\n const index = this.players.indexOf(player);\n this.players.splice(index, 1);\n });\n player.play();\n });\n return rootPlayers;\n }\n elementContainsData(namespaceId, element) {\n let containsData = false;\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval)\n containsData = true;\n if (this.playersByElement.has(element))\n containsData = true;\n if (this.playersByQueriedElement.has(element))\n containsData = true;\n if (this.statesByElement.has(element))\n containsData = true;\n return this._fetchNamespace(namespaceId).elementContainsData(element) || containsData;\n }\n afterFlush(callback) {\n this._flushFns.push(callback);\n }\n afterFlushAnimationsDone(callback) {\n this._whenQuietFns.push(callback);\n }\n _getPreviousPlayers(element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n let players = [];\n if (isQueriedElement) {\n const queriedElementPlayers = this.playersByQueriedElement.get(element);\n if (queriedElementPlayers) {\n players = queriedElementPlayers;\n }\n }\n else {\n const elementPlayers = this.playersByElement.get(element);\n if (elementPlayers) {\n const isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;\n elementPlayers.forEach(player => {\n if (player.queued)\n return;\n if (!isRemovalAnimation && player.triggerName != triggerName)\n return;\n players.push(player);\n });\n }\n }\n if (namespaceId || triggerName) {\n players = players.filter(player => {\n if (namespaceId && namespaceId != player.namespaceId)\n return false;\n if (triggerName && triggerName != player.triggerName)\n return false;\n return true;\n });\n }\n return players;\n }\n _beforeAnimationBuild(namespaceId, instruction, allPreviousPlayersMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // when a removal animation occurs, ALL previous players are collected\n // and destroyed (even if they are outside of the current namespace)\n const targetNameSpaceId = instruction.isRemovalTransition ? undefined : namespaceId;\n const targetTriggerName = instruction.isRemovalTransition ? undefined : triggerName;\n for (const timelineInstruction of instruction.timelines) {\n const element = timelineInstruction.element;\n const isQueriedElement = element !== rootElement;\n const players = getOrSetDefaultValue(allPreviousPlayersMap, element, []);\n const previousPlayers = this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n previousPlayers.forEach(player => {\n const realPlayer = player.getRealPlayer();\n if (realPlayer.beforeDestroy) {\n realPlayer.beforeDestroy();\n }\n player.destroy();\n players.push(player);\n });\n }\n // this needs to be done so that the PRE/POST styles can be\n // computed properly without interfering with the previous animation\n eraseStyles(rootElement, instruction.fromStyles);\n }\n _buildAnimation(namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // we first run this so that the previous animation player\n // data can be passed into the successive animation players\n const allQueriedPlayers = [];\n const allConsumedElements = new Set();\n const allSubElements = new Set();\n const allNewPlayers = instruction.timelines.map(timelineInstruction => {\n const element = timelineInstruction.element;\n allConsumedElements.add(element);\n // FIXME (matsko): make sure to-be-removed animations are removed properly\n const details = element[REMOVAL_FLAG];\n if (details && details.removedBeforeQueried)\n return new NoopAnimationPlayer(timelineInstruction.duration, timelineInstruction.delay);\n const isQueriedElement = element !== rootElement;\n const previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY)\n .map(p => p.getRealPlayer()))\n .filter(p => {\n // the `element` is not apart of the AnimationPlayer definition, but\n // Mock/WebAnimations\n // use the element within their implementation. This will be added in Angular5 to\n // AnimationPlayer\n const pp = p;\n return pp.element ? pp.element === element : false;\n });\n const preStyles = preStylesMap.get(element);\n const postStyles = postStylesMap.get(element);\n const keyframes = normalizeKeyframes$1(this.driver, this._normalizer, element, timelineInstruction.keyframes, preStyles, postStyles);\n const player = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n // this means that this particular player belongs to a sub trigger. It is\n // important that we match this player up with the corresponding (@trigger.listener)\n if (timelineInstruction.subTimeline && skippedPlayersMap) {\n allSubElements.add(element);\n }\n if (isQueriedElement) {\n const wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n wrappedPlayer.setRealPlayer(player);\n allQueriedPlayers.push(wrappedPlayer);\n }\n return player;\n });\n allQueriedPlayers.forEach(player => {\n getOrSetDefaultValue(this.playersByQueriedElement, player.element, []).push(player);\n player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n });\n allConsumedElements.forEach(element => addClass(element, NG_ANIMATING_CLASSNAME));\n const player = optimizeGroupPlayer(allNewPlayers);\n player.onDestroy(() => {\n allConsumedElements.forEach(element => removeClass(element, NG_ANIMATING_CLASSNAME));\n setStyles(rootElement, instruction.toStyles);\n });\n // this basically makes all of the callbacks for sub element animations\n // be dependent on the upper players for when they finish\n allSubElements.forEach(element => {\n getOrSetDefaultValue(skippedPlayersMap, element, []).push(player);\n });\n return player;\n }\n _buildPlayer(instruction, keyframes, previousPlayers) {\n if (keyframes.length > 0) {\n return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n }\n // special case for when an empty transition|definition is provided\n // ... there is no point in rendering an empty animation\n return new NoopAnimationPlayer(instruction.duration, instruction.delay);\n }\n}\nclass TransitionAnimationPlayer {\n constructor(namespaceId, triggerName, element) {\n this.namespaceId = namespaceId;\n this.triggerName = triggerName;\n this.element = element;\n this._player = new NoopAnimationPlayer();\n this._containsRealPlayer = false;\n this._queuedCallbacks = new Map();\n this.destroyed = false;\n this.markedForDestroy = false;\n this.disabled = false;\n this.queued = true;\n this.totalTime = 0;\n }\n setRealPlayer(player) {\n if (this._containsRealPlayer)\n return;\n this._player = player;\n this._queuedCallbacks.forEach((callbacks, phase) => {\n callbacks.forEach(callback => listenOnPlayer(player, phase, undefined, callback));\n });\n this._queuedCallbacks.clear();\n this._containsRealPlayer = true;\n this.overrideTotalTime(player.totalTime);\n this.queued = false;\n }\n getRealPlayer() {\n return this._player;\n }\n overrideTotalTime(totalTime) {\n this.totalTime = totalTime;\n }\n syncPlayerEvents(player) {\n const p = this._player;\n if (p.triggerCallback) {\n player.onStart(() => p.triggerCallback('start'));\n }\n player.onDone(() => this.finish());\n player.onDestroy(() => this.destroy());\n }\n _queueEvent(name, callback) {\n getOrSetDefaultValue(this._queuedCallbacks, name, []).push(callback);\n }\n onDone(fn) {\n if (this.queued) {\n this._queueEvent('done', fn);\n }\n this._player.onDone(fn);\n }\n onStart(fn) {\n if (this.queued) {\n this._queueEvent('start', fn);\n }\n this._player.onStart(fn);\n }\n onDestroy(fn) {\n if (this.queued) {\n this._queueEvent('destroy', fn);\n }\n this._player.onDestroy(fn);\n }\n init() {\n this._player.init();\n }\n hasStarted() {\n return this.queued ? false : this._player.hasStarted();\n }\n play() {\n !this.queued && this._player.play();\n }\n pause() {\n !this.queued && this._player.pause();\n }\n restart() {\n !this.queued && this._player.restart();\n }\n finish() {\n this._player.finish();\n }\n destroy() {\n this.destroyed = true;\n this._player.destroy();\n }\n reset() {\n !this.queued && this._player.reset();\n }\n setPosition(p) {\n if (!this.queued) {\n this._player.setPosition(p);\n }\n }\n getPosition() {\n return this.queued ? 0 : this._player.getPosition();\n }\n /** @internal */\n triggerCallback(phaseName) {\n const p = this._player;\n if (p.triggerCallback) {\n p.triggerCallback(phaseName);\n }\n }\n}\nfunction deleteOrUnsetInMap(map, key, value) {\n let currentValues = map.get(key);\n if (currentValues) {\n if (currentValues.length) {\n const index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n map.delete(key);\n }\n }\n return currentValues;\n}\nfunction normalizeTriggerValue(value) {\n // we use `!= null` here because it's the most simple\n // way to test against a \"falsy\" value without mixing\n // in empty strings or a zero value. DO NOT OPTIMIZE.\n return value != null ? value : null;\n}\nfunction isElementNode(node) {\n return node && node['nodeType'] === 1;\n}\nfunction isTriggerEventValid(eventName) {\n return eventName == 'start' || eventName == 'done';\n}\nfunction cloakElement(element, value) {\n const oldValue = element.style.display;\n element.style.display = value != null ? value : 'none';\n return oldValue;\n}\nfunction cloakAndComputeStyles(valuesMap, driver, elements, elementPropsMap, defaultStyle) {\n const cloakVals = [];\n elements.forEach(element => cloakVals.push(cloakElement(element)));\n const failedElements = [];\n elementPropsMap.forEach((props, element) => {\n const styles = new Map();\n props.forEach(prop => {\n const value = driver.computeStyle(element, prop, defaultStyle);\n styles.set(prop, value);\n // there is no easy way to detect this because a sub element could be removed\n // by a parent animation element being detached.\n if (!value || value.length == 0) {\n element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n failedElements.push(element);\n }\n });\n valuesMap.set(element, styles);\n });\n // we use a index variable here since Set.forEach(a, i) does not return\n // an index value for the closure (but instead just the value)\n let i = 0;\n elements.forEach(element => cloakElement(element, cloakVals[i++]));\n return failedElements;\n}\n/*\nSince the Angular renderer code will return a collection of inserted\nnodes in all areas of a DOM tree, it's up to this algorithm to figure\nout which nodes are roots for each animation @trigger.\n\nBy placing each inserted node into a Set and traversing upwards, it\nis possible to find the @trigger elements and well any direct *star\ninsertion nodes, if a @trigger root is found then the enter element\nis placed into the Map[@trigger] spot.\n */\nfunction buildRootMap(roots, nodes) {\n const rootMap = new Map();\n roots.forEach(root => rootMap.set(root, []));\n if (nodes.length == 0)\n return rootMap;\n const NULL_NODE = 1;\n const nodeSet = new Set(nodes);\n const localRootMap = new Map();\n function getRoot(node) {\n if (!node)\n return NULL_NODE;\n let root = localRootMap.get(node);\n if (root)\n return root;\n const parent = node.parentNode;\n if (rootMap.has(parent)) { // ngIf inside @trigger\n root = parent;\n }\n else if (nodeSet.has(parent)) { // ngIf inside ngIf\n root = NULL_NODE;\n }\n else { // recurse upwards\n root = getRoot(parent);\n }\n localRootMap.set(node, root);\n return root;\n }\n nodes.forEach(node => {\n const root = getRoot(node);\n if (root !== NULL_NODE) {\n rootMap.get(root).push(node);\n }\n });\n return rootMap;\n}\nfunction addClass(element, className) {\n element.classList?.add(className);\n}\nfunction removeClass(element, className) {\n element.classList?.remove(className);\n}\nfunction removeNodesAfterAnimationDone(engine, element, players) {\n optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\nfunction flattenGroupPlayers(players) {\n const finalPlayers = [];\n _flattenGroupPlayersRecur(players, finalPlayers);\n return finalPlayers;\n}\nfunction _flattenGroupPlayersRecur(players, finalPlayers) {\n for (let i = 0; i < players.length; i++) {\n const player = players[i];\n if (player instanceof ɵAnimationGroupPlayer) {\n _flattenGroupPlayersRecur(player.players, finalPlayers);\n }\n else {\n finalPlayers.push(player);\n }\n }\n}\nfunction objEquals(a, b) {\n const k1 = Object.keys(a);\n const k2 = Object.keys(b);\n if (k1.length != k2.length)\n return false;\n for (let i = 0; i < k1.length; i++) {\n const prop = k1[i];\n if (!b.hasOwnProperty(prop) || a[prop] !== b[prop])\n return false;\n }\n return true;\n}\nfunction replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {\n const postEntry = allPostStyleElements.get(element);\n if (!postEntry)\n return false;\n let preEntry = allPreStyleElements.get(element);\n if (preEntry) {\n postEntry.forEach(data => preEntry.add(data));\n }\n else {\n allPreStyleElements.set(element, postEntry);\n }\n allPostStyleElements.delete(element);\n return true;\n}\n\nclass AnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._triggerCache = {};\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n this._transitionEngine = new TransitionAnimationEngine(bodyNode, _driver, _normalizer);\n this._timelineEngine = new TimelineAnimationEngine(bodyNode, _driver, _normalizer);\n this._transitionEngine.onRemovalComplete = (element, context) => this.onRemovalComplete(element, context);\n }\n registerTrigger(componentId, namespaceId, hostElement, name, metadata) {\n const cacheKey = componentId + '-' + name;\n let trigger = this._triggerCache[cacheKey];\n if (!trigger) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw triggerBuildFailed(name, errors);\n }\n if (warnings.length) {\n warnTriggerBuild(name, warnings);\n }\n trigger = buildTrigger(name, ast, this._normalizer);\n this._triggerCache[cacheKey] = trigger;\n }\n this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n }\n register(namespaceId, hostElement) {\n this._transitionEngine.register(namespaceId, hostElement);\n }\n destroy(namespaceId, context) {\n this._transitionEngine.destroy(namespaceId, context);\n }\n onInsert(namespaceId, element, parent, insertBefore) {\n this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n }\n onRemove(namespaceId, element, context, isHostElement) {\n this._transitionEngine.removeNode(namespaceId, element, isHostElement || false, context);\n }\n disableAnimations(element, disable) {\n this._transitionEngine.markElementAsDisabled(element, disable);\n }\n process(namespaceId, element, property, value) {\n if (property.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(property);\n const args = value;\n this._timelineEngine.command(id, element, action, args);\n }\n else {\n this._transitionEngine.trigger(namespaceId, element, property, value);\n }\n }\n listen(namespaceId, element, eventName, eventPhase, callback) {\n // @@listen\n if (eventName.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(eventName);\n return this._timelineEngine.listen(id, element, action, callback);\n }\n return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n }\n flush(microtaskId = -1) {\n this._transitionEngine.flush(microtaskId);\n }\n get players() {\n return this._transitionEngine.players\n .concat(this._timelineEngine.players);\n }\n whenRenderingDone() {\n return this._transitionEngine.whenRenderingDone();\n }\n}\n\n/**\n * Returns an instance of `SpecialCasedStyles` if and when any special (non animateable) styles are\n * detected.\n *\n * In CSS there exist properties that cannot be animated within a keyframe animation\n * (whether it be via CSS keyframes or web-animations) and the animation implementation\n * will ignore them. This function is designed to detect those special cased styles and\n * return a container that will be executed at the start and end of the animation.\n *\n * @returns an instance of `SpecialCasedStyles` if any special styles are detected otherwise `null`\n */\nfunction packageNonAnimatableStyles(element, styles) {\n let startStyles = null;\n let endStyles = null;\n if (Array.isArray(styles) && styles.length) {\n startStyles = filterNonAnimatableStyles(styles[0]);\n if (styles.length > 1) {\n endStyles = filterNonAnimatableStyles(styles[styles.length - 1]);\n }\n }\n else if (styles instanceof Map) {\n startStyles = filterNonAnimatableStyles(styles);\n }\n return (startStyles || endStyles) ? new SpecialCasedStyles(element, startStyles, endStyles) :\n null;\n}\n/**\n * Designed to be executed during a keyframe-based animation to apply any special-cased styles.\n *\n * When started (when the `start()` method is run) then the provided `startStyles`\n * will be applied. When finished (when the `finish()` method is called) the\n * `endStyles` will be applied as well any any starting styles. Finally when\n * `destroy()` is called then all styles will be removed.\n */\nclass SpecialCasedStyles {\n constructor(_element, _startStyles, _endStyles) {\n this._element = _element;\n this._startStyles = _startStyles;\n this._endStyles = _endStyles;\n this._state = 0 /* SpecialCasedStylesState.Pending */;\n let initialStyles = SpecialCasedStyles.initialStylesByElement.get(_element);\n if (!initialStyles) {\n SpecialCasedStyles.initialStylesByElement.set(_element, initialStyles = new Map());\n }\n this._initialStyles = initialStyles;\n }\n start() {\n if (this._state < 1 /* SpecialCasedStylesState.Started */) {\n if (this._startStyles) {\n setStyles(this._element, this._startStyles, this._initialStyles);\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n finish() {\n this.start();\n if (this._state < 2 /* SpecialCasedStylesState.Finished */) {\n setStyles(this._element, this._initialStyles);\n if (this._endStyles) {\n setStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n destroy() {\n this.finish();\n if (this._state < 3 /* SpecialCasedStylesState.Destroyed */) {\n SpecialCasedStyles.initialStylesByElement.delete(this._element);\n if (this._startStyles) {\n eraseStyles(this._element, this._startStyles);\n this._endStyles = null;\n }\n if (this._endStyles) {\n eraseStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n setStyles(this._element, this._initialStyles);\n this._state = 3 /* SpecialCasedStylesState.Destroyed */;\n }\n }\n}\nSpecialCasedStyles.initialStylesByElement = ( /* @__PURE__ */new WeakMap());\nfunction filterNonAnimatableStyles(styles) {\n let result = null;\n styles.forEach((val, prop) => {\n if (isNonAnimatableStyle(prop)) {\n result = result || new Map();\n result.set(prop, val);\n }\n });\n return result;\n}\nfunction isNonAnimatableStyle(prop) {\n return prop === 'display' || prop === 'position';\n}\n\nclass WebAnimationsPlayer {\n constructor(element, keyframes, options, _specialStyles) {\n this.element = element;\n this.keyframes = keyframes;\n this.options = options;\n this._specialStyles = _specialStyles;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._initialized = false;\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n // the following original fns are persistent copies of the _onStartFns and _onDoneFns\n // and are used to reset the fns to their original values upon reset()\n // (since the _onStartFns and _onDoneFns get deleted after they are called)\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this.time = 0;\n this.parentPlayer = null;\n this.currentSnapshot = new Map();\n this._duration = options['duration'];\n this._delay = options['delay'] || 0;\n this.time = this._duration + this._delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this._buildPlayer();\n this._preparePlayerBeforeStart();\n }\n _buildPlayer() {\n if (this._initialized)\n return;\n this._initialized = true;\n const keyframes = this.keyframes;\n this.domPlayer =\n this._triggerWebAnimation(this.element, keyframes, this.options);\n this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : new Map();\n this.domPlayer.addEventListener('finish', () => this._onFinish());\n }\n _preparePlayerBeforeStart() {\n // this is required so that the player doesn't start to animate right away\n if (this._delay) {\n this._resetDomPlayerState();\n }\n else {\n this.domPlayer.pause();\n }\n }\n _convertKeyframesToObject(keyframes) {\n const kfs = [];\n keyframes.forEach(frame => {\n kfs.push(Object.fromEntries(frame));\n });\n return kfs;\n }\n /** @internal */\n _triggerWebAnimation(element, keyframes, options) {\n // jscompiler doesn't seem to know animate is a native property because it's not fully\n // supported yet across common browsers (we polyfill it for Edge/Safari) [CL #143630929]\n return element['animate'](this._convertKeyframesToObject(keyframes), options);\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n play() {\n this._buildPlayer();\n if (!this.hasStarted()) {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n this._started = true;\n if (this._specialStyles) {\n this._specialStyles.start();\n }\n }\n this.domPlayer.play();\n }\n pause() {\n this.init();\n this.domPlayer.pause();\n }\n finish() {\n this.init();\n if (this._specialStyles) {\n this._specialStyles.finish();\n }\n this._onFinish();\n this.domPlayer.finish();\n }\n reset() {\n this._resetDomPlayerState();\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n _resetDomPlayerState() {\n if (this.domPlayer) {\n this.domPlayer.cancel();\n }\n }\n restart() {\n this.reset();\n this.play();\n }\n hasStarted() {\n return this._started;\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._resetDomPlayerState();\n this._onFinish();\n if (this._specialStyles) {\n this._specialStyles.destroy();\n }\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n setPosition(p) {\n if (this.domPlayer === undefined) {\n this.init();\n }\n this.domPlayer.currentTime = p * this.time;\n }\n getPosition() {\n return this.domPlayer.currentTime / this.time;\n }\n get totalTime() {\n return this._delay + this._duration;\n }\n beforeDestroy() {\n const styles = new Map();\n if (this.hasStarted()) {\n // note: this code is invoked only when the `play` function was called prior to this\n // (thus `hasStarted` returns true), this implies that the code that initializes\n // `_finalKeyframe` has also been executed and the non-null assertion can be safely used here\n const finalKeyframe = this._finalKeyframe;\n finalKeyframe.forEach((val, prop) => {\n if (prop !== 'offset') {\n styles.set(prop, this._finished ? val : computeStyle(this.element, prop));\n }\n });\n }\n this.currentSnapshot = styles;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName === 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\n\nclass WebAnimationsDriver {\n validateStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n return validateStyleProperty(prop);\n }\n return true;\n }\n validateAnimatableStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const cssProp = camelCaseToDashCase(prop);\n return validateWebAnimatableStyleProperty(cssProp);\n }\n return true;\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return window.getComputedStyle(element)[prop];\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = []) {\n const fill = delay == 0 ? 'both' : 'forwards';\n const playerOptions = { duration, delay, fill };\n // we check for this to avoid having a null|undefined value be present\n // for the easing (which results in an error for certain browsers #9752)\n if (easing) {\n playerOptions['easing'] = easing;\n }\n const previousStyles = new Map();\n const previousWebAnimationPlayers = previousPlayers.filter(player => player instanceof WebAnimationsPlayer);\n if (allowPreviousPlayerStylesMerge(duration, delay)) {\n previousWebAnimationPlayers.forEach(player => {\n player.currentSnapshot.forEach((val, prop) => previousStyles.set(prop, val));\n });\n }\n let _keyframes = normalizeKeyframes(keyframes).map(styles => copyStyles(styles));\n _keyframes = balancePreviousStylesIntoKeyframes(element, _keyframes, previousStyles);\n const specialStyles = packageNonAnimatableStyles(element, _keyframes);\n return new WebAnimationsPlayer(element, _keyframes, playerOptions, specialStyles);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AnimationDriver, Animation as ɵAnimation, AnimationEngine as ɵAnimationEngine, AnimationStyleNormalizer as ɵAnimationStyleNormalizer, NoopAnimationDriver as ɵNoopAnimationDriver, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, WebAnimationsDriver as ɵWebAnimationsDriver, WebAnimationsPlayer as ɵWebAnimationsPlayer, WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer, allowPreviousPlayerStylesMerge as ɵallowPreviousPlayerStylesMerge, containsElement as ɵcontainsElement, getParentElement as ɵgetParentElement, invokeQuery as ɵinvokeQuery, normalizeKeyframes as ɵnormalizeKeyframes, validateStyleProperty as ɵvalidateStyleProperty };\n","/**\n * @license Angular v15.0.4\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { ViewEncapsulation, Injectable, Inject, RendererFactory2, NgZone, ANIMATION_MODULE_TYPE, NgModule } from '@angular/core';\nexport { ANIMATION_MODULE_TYPE } from '@angular/core';\nimport { ɵDomRendererFactory2, BrowserModule } from '@angular/platform-browser';\nimport { AnimationBuilder, sequence, AnimationFactory } from '@angular/animations';\nimport * as i1 from '@angular/animations/browser';\nimport { ɵAnimationEngine, ɵWebAnimationsStyleNormalizer, ɵAnimationStyleNormalizer, AnimationDriver, ɵWebAnimationsDriver, ɵNoopAnimationDriver } from '@angular/animations/browser';\nimport { DOCUMENT } from '@angular/common';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass BrowserAnimationBuilder extends AnimationBuilder {\n constructor(rootRenderer, doc) {\n super();\n this._nextAnimationId = 0;\n const typeData = { id: '0', encapsulation: ViewEncapsulation.None, styles: [], data: { animation: [] } };\n this._renderer = rootRenderer.createRenderer(doc.body, typeData);\n }\n build(animation) {\n const id = this._nextAnimationId.toString();\n this._nextAnimationId++;\n const entry = Array.isArray(animation) ? sequence(animation) : animation;\n issueAnimationCommand(this._renderer, null, id, 'register', [entry]);\n return new BrowserAnimationFactory(id, this._renderer);\n }\n}\nBrowserAnimationBuilder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: BrowserAnimationBuilder, deps: [{ token: i0.RendererFactory2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nBrowserAnimationBuilder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: BrowserAnimationBuilder });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: BrowserAnimationBuilder, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\nclass BrowserAnimationFactory extends AnimationFactory {\n constructor(_id, _renderer) {\n super();\n this._id = _id;\n this._renderer = _renderer;\n }\n create(element, options) {\n return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer);\n }\n}\nclass RendererAnimationPlayer {\n constructor(id, element, options, _renderer) {\n this.id = id;\n this.element = element;\n this._renderer = _renderer;\n this.parentPlayer = null;\n this._started = false;\n this.totalTime = 0;\n this._command('create', options);\n }\n _listen(eventName, callback) {\n return this._renderer.listen(this.element, `@@${this.id}:${eventName}`, callback);\n }\n _command(command, ...args) {\n return issueAnimationCommand(this._renderer, this.element, this.id, command, args);\n }\n onDone(fn) {\n this._listen('done', fn);\n }\n onStart(fn) {\n this._listen('start', fn);\n }\n onDestroy(fn) {\n this._listen('destroy', fn);\n }\n init() {\n this._command('init');\n }\n hasStarted() {\n return this._started;\n }\n play() {\n this._command('play');\n this._started = true;\n }\n pause() {\n this._command('pause');\n }\n restart() {\n this._command('restart');\n }\n finish() {\n this._command('finish');\n }\n destroy() {\n this._command('destroy');\n }\n reset() {\n this._command('reset');\n this._started = false;\n }\n setPosition(p) {\n this._command('setPosition', p);\n }\n getPosition() {\n return this._renderer.engine.players[+this.id]?.getPosition() ?? 0;\n }\n}\nfunction issueAnimationCommand(renderer, element, id, command, args) {\n return renderer.setProperty(element, `@@${id}:${command}`, args);\n}\n\nconst ANIMATION_PREFIX = '@';\nconst DISABLE_ANIMATIONS_FLAG = '@.disabled';\nclass AnimationRendererFactory {\n constructor(delegate, engine, _zone) {\n this.delegate = delegate;\n this.engine = engine;\n this._zone = _zone;\n this._currentId = 0;\n this._microtaskId = 1;\n this._animationCallbacksBuffer = [];\n this._rendererCache = new Map();\n this._cdRecurDepth = 0;\n this.promise = Promise.resolve(0);\n engine.onRemovalComplete = (element, delegate) => {\n // Note: if a component element has a leave animation, and a host leave animation,\n // the view engine will call `removeChild` for the parent\n // component renderer as well as for the child component renderer.\n // Therefore, we need to check if we already removed the element.\n const parentNode = delegate?.parentNode(element);\n if (parentNode) {\n delegate.removeChild(parentNode, element);\n }\n };\n }\n createRenderer(hostElement, type) {\n const EMPTY_NAMESPACE_ID = '';\n // cache the delegates to find out which cached delegate can\n // be used by which cached renderer\n const delegate = this.delegate.createRenderer(hostElement, type);\n if (!hostElement || !type || !type.data || !type.data['animation']) {\n let renderer = this._rendererCache.get(delegate);\n if (!renderer) {\n // Ensure that the renderer is removed from the cache on destroy\n // since it may contain references to detached DOM nodes.\n const onRendererDestroy = () => this._rendererCache.delete(delegate);\n renderer =\n new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine, onRendererDestroy);\n // only cache this result when the base renderer is used\n this._rendererCache.set(delegate, renderer);\n }\n return renderer;\n }\n const componentId = type.id;\n const namespaceId = type.id + '-' + this._currentId;\n this._currentId++;\n this.engine.register(namespaceId, hostElement);\n const registerTrigger = (trigger) => {\n if (Array.isArray(trigger)) {\n trigger.forEach(registerTrigger);\n }\n else {\n this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger.name, trigger);\n }\n };\n const animationTriggers = type.data['animation'];\n animationTriggers.forEach(registerTrigger);\n return new AnimationRenderer(this, namespaceId, delegate, this.engine);\n }\n begin() {\n this._cdRecurDepth++;\n if (this.delegate.begin) {\n this.delegate.begin();\n }\n }\n _scheduleCountTask() {\n // always use promise to schedule microtask instead of use Zone\n this.promise.then(() => {\n this._microtaskId++;\n });\n }\n /** @internal */\n scheduleListenerCallback(count, fn, data) {\n if (count >= 0 && count < this._microtaskId) {\n this._zone.run(() => fn(data));\n return;\n }\n if (this._animationCallbacksBuffer.length == 0) {\n Promise.resolve(null).then(() => {\n this._zone.run(() => {\n this._animationCallbacksBuffer.forEach(tuple => {\n const [fn, data] = tuple;\n fn(data);\n });\n this._animationCallbacksBuffer = [];\n });\n });\n }\n this._animationCallbacksBuffer.push([fn, data]);\n }\n end() {\n this._cdRecurDepth--;\n // this is to prevent animations from running twice when an inner\n // component does CD when a parent component instead has inserted it\n if (this._cdRecurDepth == 0) {\n this._zone.runOutsideAngular(() => {\n this._scheduleCountTask();\n this.engine.flush(this._microtaskId);\n });\n }\n if (this.delegate.end) {\n this.delegate.end();\n }\n }\n whenRenderingDone() {\n return this.engine.whenRenderingDone();\n }\n}\nAnimationRendererFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: AnimationRendererFactory, deps: [{ token: i0.RendererFactory2 }, { token: i1.ɵAnimationEngine }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });\nAnimationRendererFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: AnimationRendererFactory });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: AnimationRendererFactory, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }, { type: i1.ɵAnimationEngine }, { type: i0.NgZone }]; } });\nclass BaseAnimationRenderer {\n constructor(namespaceId, delegate, engine, _onDestroy) {\n this.namespaceId = namespaceId;\n this.delegate = delegate;\n this.engine = engine;\n this._onDestroy = _onDestroy;\n this.destroyNode = this.delegate.destroyNode ? (n) => delegate.destroyNode(n) : null;\n }\n get data() {\n return this.delegate.data;\n }\n destroy() {\n this.engine.destroy(this.namespaceId, this.delegate);\n this.delegate.destroy();\n this._onDestroy?.();\n }\n createElement(name, namespace) {\n return this.delegate.createElement(name, namespace);\n }\n createComment(value) {\n return this.delegate.createComment(value);\n }\n createText(value) {\n return this.delegate.createText(value);\n }\n appendChild(parent, newChild) {\n this.delegate.appendChild(parent, newChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, false);\n }\n insertBefore(parent, newChild, refChild, isMove = true) {\n this.delegate.insertBefore(parent, newChild, refChild);\n // If `isMove` true than we should animate this insert.\n this.engine.onInsert(this.namespaceId, newChild, parent, isMove);\n }\n removeChild(parent, oldChild, isHostElement) {\n this.engine.onRemove(this.namespaceId, oldChild, this.delegate, isHostElement);\n }\n selectRootElement(selectorOrNode, preserveContent) {\n return this.delegate.selectRootElement(selectorOrNode, preserveContent);\n }\n parentNode(node) {\n return this.delegate.parentNode(node);\n }\n nextSibling(node) {\n return this.delegate.nextSibling(node);\n }\n setAttribute(el, name, value, namespace) {\n this.delegate.setAttribute(el, name, value, namespace);\n }\n removeAttribute(el, name, namespace) {\n this.delegate.removeAttribute(el, name, namespace);\n }\n addClass(el, name) {\n this.delegate.addClass(el, name);\n }\n removeClass(el, name) {\n this.delegate.removeClass(el, name);\n }\n setStyle(el, style, value, flags) {\n this.delegate.setStyle(el, style, value, flags);\n }\n removeStyle(el, style, flags) {\n this.delegate.removeStyle(el, style, flags);\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX && name == DISABLE_ANIMATIONS_FLAG) {\n this.disableAnimations(el, !!value);\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n }\n setValue(node, value) {\n this.delegate.setValue(node, value);\n }\n listen(target, eventName, callback) {\n return this.delegate.listen(target, eventName, callback);\n }\n disableAnimations(element, value) {\n this.engine.disableAnimations(element, value);\n }\n}\nclass AnimationRenderer extends BaseAnimationRenderer {\n constructor(factory, namespaceId, delegate, engine, onDestroy) {\n super(namespaceId, delegate, engine, onDestroy);\n this.factory = factory;\n this.namespaceId = namespaceId;\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX) {\n if (name.charAt(1) == '.' && name == DISABLE_ANIMATIONS_FLAG) {\n value = value === undefined ? true : !!value;\n this.disableAnimations(el, value);\n }\n else {\n this.engine.process(this.namespaceId, el, name.slice(1), value);\n }\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n }\n listen(target, eventName, callback) {\n if (eventName.charAt(0) == ANIMATION_PREFIX) {\n const element = resolveElementFromTarget(target);\n let name = eventName.slice(1);\n let phase = '';\n // @listener.phase is for trigger animation callbacks\n // @@listener is for animation builder callbacks\n if (name.charAt(0) != ANIMATION_PREFIX) {\n [name, phase] = parseTriggerCallbackName(name);\n }\n return this.engine.listen(this.namespaceId, element, name, phase, event => {\n const countId = event['_data'] || -1;\n this.factory.scheduleListenerCallback(countId, callback, event);\n });\n }\n return this.delegate.listen(target, eventName, callback);\n }\n}\nfunction resolveElementFromTarget(target) {\n switch (target) {\n case 'body':\n return document.body;\n case 'document':\n return document;\n case 'window':\n return window;\n default:\n return target;\n }\n}\nfunction parseTriggerCallbackName(triggerName) {\n const dotIndex = triggerName.indexOf('.');\n const trigger = triggerName.substring(0, dotIndex);\n const phase = triggerName.slice(dotIndex + 1);\n return [trigger, phase];\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass InjectableAnimationEngine extends ɵAnimationEngine {\n // The `ApplicationRef` is injected here explicitly to force the dependency ordering.\n // Since the `ApplicationRef` should be created earlier before the `AnimationEngine`, they\n // both have `ngOnDestroy` hooks and `flush()` must be called after all views are destroyed.\n constructor(doc, driver, normalizer, appRef) {\n super(doc.body, driver, normalizer);\n }\n ngOnDestroy() {\n this.flush();\n }\n}\nInjectableAnimationEngine.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: InjectableAnimationEngine, deps: [{ token: DOCUMENT }, { token: i1.AnimationDriver }, { token: i1.ɵAnimationStyleNormalizer }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });\nInjectableAnimationEngine.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: InjectableAnimationEngine });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: InjectableAnimationEngine, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1.AnimationDriver }, { type: i1.ɵAnimationStyleNormalizer }, { type: i0.ApplicationRef }]; } });\nfunction instantiateDefaultStyleNormalizer() {\n return new ɵWebAnimationsStyleNormalizer();\n}\nfunction instantiateRendererFactory(renderer, engine, zone) {\n return new AnimationRendererFactory(renderer, engine, zone);\n}\nconst SHARED_ANIMATION_PROVIDERS = [\n { provide: AnimationBuilder, useClass: BrowserAnimationBuilder },\n { provide: ɵAnimationStyleNormalizer, useFactory: instantiateDefaultStyleNormalizer },\n { provide: ɵAnimationEngine, useClass: InjectableAnimationEngine }, {\n provide: RendererFactory2,\n useFactory: instantiateRendererFactory,\n deps: [ɵDomRendererFactory2, ɵAnimationEngine, NgZone]\n }\n];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserModule.\n */\nconst BROWSER_ANIMATIONS_PROVIDERS = [\n { provide: AnimationDriver, useFactory: () => new ɵWebAnimationsDriver() },\n { provide: ANIMATION_MODULE_TYPE, useValue: 'BrowserAnimations' }, ...SHARED_ANIMATION_PROVIDERS\n];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserTestingModule.\n */\nconst BROWSER_NOOP_ANIMATIONS_PROVIDERS = [\n { provide: AnimationDriver, useClass: ɵNoopAnimationDriver },\n { provide: ANIMATION_MODULE_TYPE, useValue: 'NoopAnimations' }, ...SHARED_ANIMATION_PROVIDERS\n];\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Exports `BrowserModule` with additional [dependency-injection providers](guide/glossary#provider)\n * for use with animations. See [Animations](guide/animations).\n * @publicApi\n */\nclass BrowserAnimationsModule {\n /**\n * Configures the module based on the specified object.\n *\n * @param config Object used to configure the behavior of the `BrowserAnimationsModule`.\n * @see `BrowserAnimationsModuleConfig`\n *\n * @usageNotes\n * When registering the `BrowserAnimationsModule`, you can use the `withConfig`\n * function as follows:\n * ```\n * @NgModule({\n * imports: [BrowserAnimationsModule.withConfig(config)]\n * })\n * class MyNgModule {}\n * ```\n */\n static withConfig(config) {\n return {\n ngModule: BrowserAnimationsModule,\n providers: config.disableAnimations ? BROWSER_NOOP_ANIMATIONS_PROVIDERS :\n BROWSER_ANIMATIONS_PROVIDERS\n };\n }\n}\nBrowserAnimationsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: BrowserAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nBrowserAnimationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.0.4\", ngImport: i0, type: BrowserAnimationsModule, exports: [BrowserModule] });\nBrowserAnimationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: BrowserAnimationsModule, providers: BROWSER_ANIMATIONS_PROVIDERS, imports: [BrowserModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: BrowserAnimationsModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [BrowserModule],\n providers: BROWSER_ANIMATIONS_PROVIDERS,\n }]\n }] });\n/**\n * Returns the set of [dependency-injection providers](guide/glossary#provider)\n * to enable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to enable animations in an application\n * bootstrapped using the `bootstrapApplication` function. In this scenario there\n * is no need to import the `BrowserAnimationsModule` NgModule at all, just add\n * providers returned by this function to the `providers` list as show below.\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideAnimations() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideAnimations` call results in app code.\n return [...BROWSER_ANIMATIONS_PROVIDERS];\n}\n/**\n * A null player that must be imported to allow disabling of animations.\n * @publicApi\n */\nclass NoopAnimationsModule {\n}\nNoopAnimationsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: NoopAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNoopAnimationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.0.4\", ngImport: i0, type: NoopAnimationsModule, exports: [BrowserModule] });\nNoopAnimationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: NoopAnimationsModule, providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS, imports: [BrowserModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.4\", ngImport: i0, type: NoopAnimationsModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [BrowserModule],\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,\n }]\n }] });\n/**\n * Returns the set of [dependency-injection providers](guide/glossary#provider)\n * to disable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to bootstrap an application using\n * the `bootstrapApplication` function, but you need to disable animations\n * (for example, when running tests).\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideNoopAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideNoopAnimations() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideNoopAnimations` call results in app code.\n return [...BROWSER_NOOP_ANIMATIONS_PROVIDERS];\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BrowserAnimationsModule, NoopAnimationsModule, provideAnimations, provideNoopAnimations, AnimationRenderer as ɵAnimationRenderer, AnimationRendererFactory as ɵAnimationRendererFactory, BrowserAnimationBuilder as ɵBrowserAnimationBuilder, BrowserAnimationFactory as ɵBrowserAnimationFactory, InjectableAnimationEngine as ɵInjectableAnimationEngine };\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'token',\r\n template: `\r\n

Test from TOKEN

\r\n \r\n `\r\n})\r\nexport class TokenComponent implements OnInit {\r\n\r\n constructor(\r\n private route: ActivatedRoute\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n const token = this.route.snapshot.paramMap.get('token');\r\n console.log(`We have TOKEN with value starts with ${token.substr(0, 6)}`);\r\n // TODO Un comment these lines\r\n // this.tokenSerivce.setToken(token);\r\n // const redirectedFromS = this.cookie.get('RedirectFrom');\r\n // const redirectedFrom = redirectedFromS != null && redirectedFromS !== '' ? JSON.parse(redirectedFromS) : null;\r\n\r\n // if (redirectedFrom && redirectedFrom.name && redirectedFrom.params) {\r\n // this.cookie.delete('RedirectFrom');\r\n // this.router.navigate([redirectedFrom.name], { queryParams: redirectedFrom.params });\r\n // }\r\n // else {\r\n // this.nbMenuService.navigateHome();\r\n // }\r\n\r\n }\r\n\r\n}\r\n","import { ExtraOptions, RouterModule, Routes } from '@angular/router';\r\nimport { NgModule } from '@angular/core';\r\nimport { TokenComponent } from './pages/token/token.component';\r\nimport { AuthGuardService } from './services/auth-guard.service';\r\n\r\nconst routes: Routes = [\r\n { path: 'token/:token', component: TokenComponent },\r\n { path: 'pages', loadChildren: () => import('../app/pages/pages.module').then(m => m.PagesModule), canLoad: [AuthGuardService] },\r\n {\r\n path: 'responsecenter/incidents',\r\n loadChildren: () => import('../app/pages/manager-hotline/manager-hotline.module').then(m => m.ManagerHotlineModule),\r\n canLoad: [AuthGuardService],\r\n canActivate: [AuthGuardService]\r\n },\r\n { path: 'forms', loadChildren: () => import('../app/forms/howdy-forms.module').then(m => m.HowdyFormsModule) },\r\n { path: '', redirectTo: 'pages/dashboard', pathMatch: 'full' },\r\n];\r\n\r\nconst config: ExtraOptions = {\r\n useHash: true\r\n};\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, config)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule {\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\nimport { filter } from 'rxjs/operators';\r\n\r\ndeclare const ga: any;\r\n\r\n@Injectable()\r\nexport class AnalyticsService {\r\n private enabled: boolean;\r\n\r\n constructor(private location: Location, private router: Router) {\r\n this.enabled = true;\r\n }\r\n\r\n trackPageViews() {\r\n if (this.enabled) {\r\n this.router.events.pipe(\r\n filter((event) => event instanceof NavigationEnd),\r\n ).subscribe(() => {\r\n ga('send', { hitType: 'pageview', page: this.location.path() });\r\n });\r\n }\r\n }\r\n\r\n trackEvent(eventName: string) {\r\n if (this.enabled) {\r\n ga('send', 'event', eventName);\r\n }\r\n }\r\n}\r\n","import { combineLatest } from 'rxjs';\r\nimport { first } from 'rxjs/operators';\r\nimport { FeedbackService } from './feedback.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { MENU_ITEMS } from '../pages/pages-menu';\r\nimport { NbMenuItem } from '@nebular/theme';\r\nimport { PermissionService } from './permission.service';\r\nimport { Router } from '@angular/router';\r\nimport { SharedService } from './shared.service';\r\nimport { SurveyQuestionTypeEnum, UserPermissions } from '@howdy/models';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Injectable()\r\nexport class MenuService {\r\n\r\n initialized = false;\r\n\r\n constructor(\r\n private router: Router,\r\n private sharedService: SharedService,\r\n private translate: TranslateService,\r\n private permissionService: PermissionService,\r\n private feedbackService: FeedbackService\r\n ) { }\r\n\r\n initializeMenu() {\r\n if (this.initialized) {\r\n return;\r\n }\r\n\r\n combineLatest([\r\n this.sharedService.onLanguageChange$,\r\n this.permissionService.userPermissions$\r\n ]).subscribe(() => {\r\n this.initialized = true;\r\n this.refreshMenuItems(this.permissionService.userPermissions);\r\n });\r\n }\r\n\r\n private async refreshMenuItems(permissions: UserPermissions) {\r\n const userPreference = this.sharedService.userPreferences;\r\n const navModel = MENU_ITEMS;\r\n const loadedTranslations = this.translate.translations[this.translate.currentLang];\r\n\r\n if (!loadedTranslations) {\r\n await this.translate.onDefaultLangChange.toPromise();\r\n }\r\n\r\n navModel.splice(1);\r\n const dashboard = navModel[0];\r\n dashboard.title = this.translate.instant('Portal.Shell.MainMenu.Dashboard.Title');\r\n dashboard.hidden = !!userPreference.activeResponseCenterId || !userPreference.activeCompanyId;\r\n dashboard.expanded = true;\r\n\r\n const isReportModuleEnabled = this.sharedService.currentCompany?.Settings?.ShowReportsModule;\r\n const isFeedbackEnabled = this.sharedService.currentCompany?.Settings?.FeedbackModuleEnabled;\r\n const disablePIIForManagers = this.sharedService.currentCompany?.Settings?.DisablePIIForManagers;\r\n const surveys = await this.feedbackService.getCompanySurveys(true, true).pipe(first()).toPromise();\r\n\r\n dashboard.children = [\r\n {\r\n title: this.translate.instant('Portal.Shell.MainMenu.Dashboard.Overview.Title'),\r\n link: '/pages/dashboard/overview',\r\n },\r\n {\r\n title: this.translate.instant('Portal.Shell.MainMenu.Dashboard.Cases.Title'),\r\n link: '/pages/dashboard/cases',\r\n }\r\n ];\r\n\r\n if (isFeedbackEnabled) {\r\n dashboard.children = [\r\n ...dashboard.children,\r\n {\r\n title: this.translate.instant('Portal.Shell.MainMenu.Dashboard.FeedbackAnswers.Body.Title'),\r\n link: '/pages/dashboard/surveyanswers/body',\r\n hidden: !surveys.filter(x => x.Questions?.some(q => q.StepType === SurveyQuestionTypeEnum.Body)).length\r\n },\r\n {\r\n title: this.translate.instant('Portal.Shell.MainMenu.Dashboard.FeedbackAnswers.Other.Title'),\r\n link: '/pages/dashboard/surveyanswers/other',\r\n hidden: !surveys.filter(x => x.Questions?.every(q => q.StepType !== SurveyQuestionTypeEnum.Body)).length\r\n }\r\n ];\r\n }\r\n\r\n dashboard.children.push({\r\n hidden: (!userPreference.activeCompanyId || permissions.hasOnlyDepartmentManagerRights || permissions.hasReadOnlyRights)\r\n && !permissions.hasHowdyEmployeeRights && !permissions.hasCompanyAdminReadonlyRights,\r\n title: this.translate.instant('Portal.Shell.MainMenu.Dashboard.DrillDown.Title'),\r\n link: '/pages/dashboard/departments',\r\n });\r\n\r\n const otherMenuItems: NbMenuItem[] = [{\r\n title: this.translate.instant('Portal.Shell.MainMenu.Company.Title'),\r\n icon: 'building',\r\n hidden: !userPreference.activeCompanyId || permissions.hasOnlyDepartmentManagerRights || permissions.hasReadOnlyRights,\r\n children: [\r\n {\r\n title: this.translate.instant('Portal.Modules.Company.Tabs.Settings.Title'),\r\n link: '/pages/company/settings/company-settings',\r\n },\r\n {\r\n title: this.translate.instant('Portal.Modules.Company.Tabs.Integration.Title'),\r\n link: '/pages/company/settings/integrations',\r\n },\r\n {\r\n title: this.translate.instant('Portal.Modules.Company.Tabs.APICalls.Title'),\r\n link: '/pages/company/settings/api-calls',\r\n }\r\n ]\r\n },\r\n {\r\n title: this.translate.instant('Portal.Shell.MainMenu.Employees.Title'),\r\n icon: 'user',\r\n link: '/pages/employee',\r\n hidden: !userPreference.activeCompanyId\r\n || permissions.hasOnlyObserverRights\r\n || (permissions.hasOnlyDepartmentManagerRights && disablePIIForManagers)\r\n },\r\n {\r\n title: this.translate.instant('Portal.Modules.Incidents.Title'),\r\n icon: 'chart-line',\r\n hidden: !userPreference.activeResponseCenterId,\r\n children: [\r\n {\r\n title: this.translate.instant('Portal.Modules.Incidents.Tabs.Overview.Title'),\r\n link: '/responsecenter/incidents/overview',\r\n }\r\n ]\r\n },\r\n {\r\n title: this.translate.instant('Portal.Shell.MainMenu.Reports.Title'),\r\n icon: 'file',\r\n hidden: !(isReportModuleEnabled && userPreference.activeCompanyId && permissions.hasCompanyAdminRights),\r\n children: [\r\n {\r\n title: this.translate.instant('Portal.Shell.MainMenu.Reports.Overview.Title'),\r\n link: '/pages/report/overview',\r\n },\r\n {\r\n title: this.translate.instant('Portal.Shell.MainMenu.Reports.AwaitingApproval.Title'),\r\n link: '/pages/report/awaitingapproval',\r\n }\r\n ]\r\n },\r\n {\r\n title: this.translate.instant('Portal.Shell.MainMenu.Users.Title'),\r\n icon: 'user-lock',\r\n link: '/pages/user',\r\n hidden: !((permissions.hasUserAdminRights || permissions.hasHowdyEmployeeRights) && userPreference.activeCompanyId)\r\n },\r\n {\r\n title: this.translate.instant('Portal.Shell.MainMenu.Feedback'),\r\n icon: 'clipboard-check',\r\n link: '/pages/feedback',\r\n hidden: !(userPreference.activeCompanyId && (permissions.hasCompanyAdminRights || permissions.hasHowdyEmployeeRights))\r\n },\r\n {\r\n title: this.translate.instant('Portal.Shell.MainMenu.Resources.Title'),\r\n icon: 'lightbulb',\r\n link: '/pages/resources',\r\n hidden: !userPreference.activeCompanyId\r\n },\r\n {\r\n title: 'Administration',\r\n group: true,\r\n hidden: !permissions.hasSystemAdminRights || !permissions.hasHowdyEmployeeRights\r\n },\r\n {\r\n title: 'Tools',\r\n icon: 'cog',\r\n hidden: !(permissions.hasSystemAdminRights || permissions.hasHowdyEmployeeRights),\r\n children: [\r\n {\r\n title: this.translate.instant('Portal.Shell.MainMenu.CompanyList.Title'),\r\n link: '/pages/admin/company-list'\r\n },\r\n {\r\n title: this.translate.instant('Portal.Shell.MainMenu.LabelEditor.Title'),\r\n link: '/pages/admin/l10neditor'\r\n },\r\n {\r\n title: this.translate.instant('Portal.Shell.MainMenu.SettingsEditor.Title'),\r\n link: '/pages/admin/settings-list',\r\n hidden: !permissions.hasSystemAdminRights\r\n },\r\n {\r\n title: 'Push notification',\r\n link: '/pages/admin/push-notification',\r\n hidden: !userPreference.activeCompanyId || !permissions.hasSystemAdminRights\r\n },\r\n {\r\n title: 'Email test',\r\n link: '/pages/admin/email-test',\r\n hidden: !permissions.hasResponseCenterAdminRights\r\n },\r\n {\r\n title: 'Intervention rating',\r\n link: '/pages/admin/intervention-test',\r\n hidden: !(permissions.hasResponseCenterAdminRights || permissions.hasHowdyEmployeeRights)\r\n },\r\n {\r\n title: 'Create coaching cases',\r\n link: '/pages/admin/manager-incident',\r\n hidden: !permissions.hasResponseCenterAdminRights\r\n },\r\n {\r\n title: 'Coaching overview',\r\n link: '/pages/admin/manager-coaching',\r\n hidden: !(permissions.hasResponseCenterAdminRights || permissions.hasHowdyEmployeeRights)\r\n }\r\n ]\r\n }];\r\n\r\n const allMenuItems = [dashboard, ...otherMenuItems];\r\n\r\n this.fixSelectionAfterPageReload(dashboard, otherMenuItems);\r\n this.setParentOfAllChildrenMenuItems(allMenuItems);\r\n\r\n if (navModel.length === 1) {\r\n navModel.push(...otherMenuItems);\r\n }\r\n }\r\n\r\n private fixSelectionAfterPageReload(dashboard: NbMenuItem, otherMenuItems: NbMenuItem[]) {\r\n const activeUrl = this.router.url;\r\n\r\n dashboard.children.forEach(child => {\r\n if (!!child?.link) {\r\n child['selected'] = activeUrl === child.link;\r\n }\r\n });\r\n\r\n otherMenuItems.forEach(item => {\r\n if (!!item?.link) {\r\n item['selected'] = activeUrl === item.link;\r\n } else {\r\n item.children?.forEach(child => {\r\n child['selected'] = activeUrl === child?.link;\r\n });\r\n }\r\n });\r\n }\r\n\r\n private setParentOfAllChildrenMenuItems(menuItems: NbMenuItem[]) {\r\n menuItems.forEach(item => {\r\n this.setParent(item);\r\n });\r\n }\r\n\r\n private setParent(item: NbMenuItem) {\r\n if (item.children) {\r\n item.children.forEach(child => {\r\n child.parent = item;\r\n this.setParent(child);\r\n });\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'service-disruption-modal',\r\n templateUrl: './service-disruption-modal.component.html',\r\n styleUrls: ['./service-disruption-modal.component.scss']\r\n})\r\nexport class ServiceDisruptionModalComponent implements OnInit {\r\n\r\n constructor(public activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n ×\r\n \r\n
\r\n
\r\n \r\n
{{ 'Portal.Modules.Dashboard.ServiceDisruption.Title' | translate }}
\r\n

{{ 'Portal.Modules.Dashboard.ServiceDisruption.Description' | translate }}

\r\n
\r\n","/**\r\n * @license\r\n * Copyright Akveo. All Rights Reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n */\r\n\r\nimport annotationPlugin from 'chartjs-plugin-annotation';\r\nimport { AnalyticsService } from './services/analytics.service';\r\nimport { ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { Chart, registerables } from 'chart.js';\r\nimport { first } from 'rxjs/operators';\r\nimport { MenuService } from './services/menu.service';\r\nimport { NbIconLibraries } from '@nebular/theme';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ServiceDisruptionModalComponent } from './shared/components/service-disruption-modal/service-disruption-modal.component';\r\nimport { SharedService } from './services/shared.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'ngx-app',\r\n template: '',\r\n})\r\nexport class AppComponent implements OnInit {\r\n\r\n constructor(\r\n private analytics: AnalyticsService,\r\n private translate: TranslateService,\r\n private sharedService: SharedService,\r\n private menuService: MenuService,\r\n private toastrService: ToastrService,\r\n private iconLibraries: NbIconLibraries,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private modalService: NgbModal\r\n ) {\r\n this.iconLibraries.registerFontPack('nebular', { iconClassPrefix: 'nb' });\r\n this.iconLibraries.registerFontPack('solid', { packClass: 'fas', iconClassPrefix: 'fa' });\r\n this.iconLibraries.registerFontPack('regular', { packClass: 'far', iconClassPrefix: 'fa' });\r\n this.iconLibraries.setDefaultPack('solid');\r\n }\r\n\r\n async ngOnInit() {\r\n\r\n try {\r\n await this.sharedService.getMeData();\r\n } catch (error) {\r\n this.toastrService.error(\r\n error.message,\r\n 'Error',\r\n { closeButton: true, disableTimeOut: true, tapToDismiss: false, enableHtml: true });\r\n }\r\n\r\n this.analytics.trackPageViews();\r\n\r\n // Add languages\r\n this.translate.addLangs(['en', 'da', 'sv']);\r\n\r\n // Set the default language\r\n const languageId = this.sharedService.userPreferences?.selectedLanguageId || 'en';\r\n\r\n this.translate.setDefaultLang(languageId);\r\n await this.translate.use(languageId).pipe(first()).toPromise();\r\n\r\n this.menuService.initializeMenu();\r\n\r\n Chart.defaults.font.family = '\"Poppins\",\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif';\r\n Chart.register(...registerables);\r\n Chart.register(annotationPlugin);\r\n\r\n document.getElementById('initial-loader').remove();\r\n\r\n this.showServiceDisruption();\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private async showServiceDisruption() {\r\n const showServiceDisruption = this.sharedService.currentCompany?.Settings?.ShowServiceDisruption;\r\n\r\n if (showServiceDisruption) {\r\n this.modalService.open(ServiceDisruptionModalComponent, { size: 'lg', backdrop: 'static', centered: true });\r\n }\r\n }\r\n}\r\n","import {\r\n ErrorHandler,\r\n Inject,\r\n Injectable,\r\n Injector,\r\n NgZone\r\n} from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { RaygunService } from './raygun.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { TokenService } from './token.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Injectable()\r\nexport class GlobalErrorHandlerService implements ErrorHandler {\r\n\r\n constructor(\r\n private ngZone: NgZone,\r\n private translateService: TranslateService,\r\n private raygun: RaygunService,\r\n private tokenService: TokenService,\r\n @Inject(Injector) private injector: Injector\r\n ) { }\r\n\r\n handleError(error: Error | HttpErrorResponse) {\r\n if (!navigator.onLine && this.tokenService.getToken()) {\r\n this.ngZone.run(() => {\r\n this._toastrService.error(\r\n this.translateService.instant('Portal.Common.Message.NoInternet'),\r\n null,\r\n { closeButton: true, disableTimeOut: true, tapToDismiss: false, enableHtml: true });\r\n });\r\n }\r\n\r\n this.raygun.send(error);\r\n\r\n console.error(error);\r\n }\r\n\r\n // Note: get ToastrService from injector rather than constructor injection to avoid cyclic dependency error\r\n private get _toastrService(): ToastrService {\r\n return this.injector.get(ToastrService);\r\n }\r\n}\r\n","import { TranslateLoader, MissingTranslationHandler, MissingTranslationHandlerParams, TranslateService } from '@ngx-translate/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { environment } from '../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { RaygunService } from './raygun.service';\r\nimport { Injector } from '@angular/core';\r\n\r\nclass CustomLoader implements TranslateLoader {\r\n constructor(private http: HttpClient, public prefix: string = '/assets/i18n/', public suffix: string = '.json') { }\r\n\r\n getTranslation(lang: string): Observable {\r\n if (lang === 'none') {\r\n return of({ key: 'value' });\r\n } else {\r\n return this.http.get(`${this.prefix}${lang}${this.suffix}`);\r\n }\r\n }\r\n}\r\n\r\nexport function createTranslateLoader(http: HttpClient) {\r\n return new CustomLoader(http, '##API##/i18n/', '/');\r\n}\r\n\r\nexport class MyMissingTranslationHandler implements MissingTranslationHandler {\r\n\r\n private reportedLabels: Set = new Set();\r\n\r\n constructor(private injector: Injector) { }\r\n\r\n handle(params: MissingTranslationHandlerParams) {\r\n const translateService = this.injector.get(TranslateService);\r\n const currentLang = translateService.currentLang;\r\n const cacheKey = `${params.key}/${params.translateService.currentLang}`;\r\n const blackList = ['SurveyDefinition', 'Reporting.Dimension'];\r\n\r\n const key = params.key;\r\n const keys = key.split('.');\r\n const isProduction = environment.production;\r\n const isValidKey = key.indexOf(' ') === -1 && keys.length > 1;\r\n const isCurrentLanguage = currentLang && translateService.translations[currentLang];\r\n const isCacheKey = this.reportedLabels.has(cacheKey);\r\n const isInBlackList = blackList.some(x => key.startsWith(x));\r\n const maxReportSizeCheck = this.reportedLabels.size < 10;\r\n\r\n if (\r\n isProduction &&\r\n isCurrentLanguage &&\r\n isValidKey &&\r\n !isCacheKey &&\r\n !isInBlackList &&\r\n maxReportSizeCheck\r\n ) {\r\n if (console) {\r\n console.log(key);\r\n }\r\n\r\n const error = new Error(`Label not found: '${key}' / '${params.translateService.currentLang}'`);\r\n const raygun = this.injector.get(RaygunService);\r\n\r\n this.reportedLabels.add(cacheKey);\r\n raygun.send(error);\r\n }\r\n\r\n return keys.slice(-1)[0];\r\n }\r\n}\r\n\r\nexport const TranslateLabelsByEnviroment = {\r\n provide: TranslateLoader,\r\n useFactory: createTranslateLoader,\r\n deps: [HttpClient]\r\n};\r\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// THIS CODE IS GENERATED - DO NOT MODIFY.\nconst u = undefined;\nfunction plural(val) {\n const n = val, i = Math.floor(Math.abs(val)), t = parseInt(val.toString().replace(/^[^.]*\\.?|0+$/g, ''), 10) || 0;\n if (n === 1 || !(t === 0) && (i === 0 || i === 1))\n return 1;\n return 5;\n}\nexport default [\"da\", [[\"a\", \"p\"], [\"AM\", \"PM\"], u], [[\"AM\", \"PM\"], u, u], [[\"S\", \"M\", \"T\", \"O\", \"T\", \"F\", \"L\"], [\"søn.\", \"man.\", \"tir.\", \"ons.\", \"tor.\", \"fre.\", \"lør.\"], [\"søndag\", \"mandag\", \"tirsdag\", \"onsdag\", \"torsdag\", \"fredag\", \"lørdag\"], [\"sø\", \"ma\", \"ti\", \"on\", \"to\", \"fr\", \"lø\"]], [[\"S\", \"M\", \"T\", \"O\", \"T\", \"F\", \"L\"], [\"søn\", \"man\", \"tir\", \"ons\", \"tor\", \"fre\", \"lør\"], [\"søndag\", \"mandag\", \"tirsdag\", \"onsdag\", \"torsdag\", \"fredag\", \"lørdag\"], [\"sø\", \"ma\", \"ti\", \"on\", \"to\", \"fr\", \"lø\"]], [[\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"], [\"jan.\", \"feb.\", \"mar.\", \"apr.\", \"maj\", \"jun.\", \"jul.\", \"aug.\", \"sep.\", \"okt.\", \"nov.\", \"dec.\"], [\"januar\", \"februar\", \"marts\", \"april\", \"maj\", \"juni\", \"juli\", \"august\", \"september\", \"oktober\", \"november\", \"december\"]], u, [[\"fKr\", \"eKr\"], [\"f.Kr.\", \"e.Kr.\"], u], 1, [6, 0], [\"dd.MM.y\", \"d. MMM y\", \"d. MMMM y\", \"EEEE 'den' d. MMMM y\"], [\"HH.mm\", \"HH.mm.ss\", \"HH.mm.ss z\", \"HH.mm.ss zzzz\"], [\"{1} {0}\", u, \"{1} 'kl'. {0}\", u], [\",\", \".\", \";\", \"%\", \"+\", \"-\", \"E\", \"×\", \"‰\", \"∞\", \"NaN\", \".\"], [\"#,##0.###\", \"#,##0 %\", \"#,##0.00 ¤\", \"#E0\"], \"DKK\", \"kr.\", \"dansk krone\", { \"AUD\": [\"AU$\", \"$\"], \"BYN\": [u, \"Br.\"], \"DKK\": [\"kr.\"], \"ISK\": [u, \"kr.\"], \"JPY\": [\"JP¥\", \"¥\"], \"NOK\": [u, \"kr.\"], \"PHP\": [u, \"₱\"], \"RON\": [u, \"L\"], \"SEK\": [u, \"kr.\"], \"THB\": [\"฿\"], \"TWD\": [\"NT$\"], \"USD\": [\"US$\", \"$\"] }, \"ltr\", plural];\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// THIS CODE IS GENERATED - DO NOT MODIFY.\nconst u = undefined;\nfunction plural(val) {\n const n = val, i = Math.floor(Math.abs(val)), v = val.toString().replace(/^[^.]*\\.?/, '').length;\n if (i === 1 && v === 0)\n return 1;\n return 5;\n}\nexport default [\"sv\", [[\"fm\", \"em\"], u, u], [[\"fm\", \"em\"], [\"f.m.\", \"e.m.\"], [\"förmiddag\", \"eftermiddag\"]], [[\"S\", \"M\", \"T\", \"O\", \"T\", \"F\", \"L\"], [\"sön\", \"mån\", \"tis\", \"ons\", \"tors\", \"fre\", \"lör\"], [\"söndag\", \"måndag\", \"tisdag\", \"onsdag\", \"torsdag\", \"fredag\", \"lördag\"], [\"sö\", \"må\", \"ti\", \"on\", \"to\", \"fr\", \"lö\"]], u, [[\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"], [\"jan.\", \"feb.\", \"mars\", \"apr.\", \"maj\", \"juni\", \"juli\", \"aug.\", \"sep.\", \"okt.\", \"nov.\", \"dec.\"], [\"januari\", \"februari\", \"mars\", \"april\", \"maj\", \"juni\", \"juli\", \"augusti\", \"september\", \"oktober\", \"november\", \"december\"]], u, [[\"f.Kr.\", \"e.Kr.\"], u, [\"före Kristus\", \"efter Kristus\"]], 1, [6, 0], [\"y-MM-dd\", \"d MMM y\", \"d MMMM y\", \"EEEE d MMMM y\"], [\"HH:mm\", \"HH:mm:ss\", \"HH:mm:ss z\", \"HH:mm:ss zzzz\"], [\"{1} {0}\", u, u, u], [\",\", \" \", \";\", \"%\", \"+\", \"−\", \"×10^\", \"×\", \"‰\", \"∞\", \"NaN\", \":\"], [\"#,##0.###\", \"#,##0 %\", \"#,##0.00 ¤\", \"#E0\"], \"SEK\", \"kr\", \"svensk krona\", { \"AUD\": [u, \"$\"], \"BBD\": [\"Bds$\", \"$\"], \"BMD\": [\"BM$\", \"$\"], \"BRL\": [\"BR$\", \"R$\"], \"BSD\": [\"BS$\", \"$\"], \"BYN\": [u, \"р.\"], \"BZD\": [\"BZ$\", \"$\"], \"CNY\": [u, \"¥\"], \"DKK\": [\"Dkr\", \"kr\"], \"DOP\": [\"RD$\", \"$\"], \"EEK\": [\"Ekr\"], \"EGP\": [\"EG£\", \"E£\"], \"ESP\": [], \"GBP\": [u, \"£\"], \"HKD\": [u, \"$\"], \"IEP\": [\"IE£\"], \"INR\": [u, \"₹\"], \"ISK\": [\"Ikr\", \"kr\"], \"JMD\": [\"JM$\", \"$\"], \"JPY\": [u, \"¥\"], \"KRW\": [u, \"₩\"], \"NOK\": [\"Nkr\", \"kr\"], \"NZD\": [u, \"$\"], \"PHP\": [u, \"₱\"], \"RON\": [u, \"L\"], \"SEK\": [\"kr\"], \"TWD\": [u, \"NT$\"], \"USD\": [\"US$\", \"$\"], \"VND\": [u, \"₫\"] }, \"ltr\", plural];\n","/**\r\n * @license\r\n * Copyright Akveo. All Rights Reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n */\r\nimport { MissingTranslationHandler, TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { APP_BASE_HREF } from '@angular/common';\r\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\r\nimport { APP_INITIALIZER, NgModule, ErrorHandler, Injector, LOCALE_ID } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { JWT_OPTIONS, JwtModule, JwtHelperService } from '@auth0/angular-jwt';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { TokenComponent } from './pages/token/token.component';\r\nimport { AuthGuardService } from './services/auth-guard.service';\r\nimport { AuthInterceptor } from './services/auth-interceptor.service';\r\nimport { ConfigStoreService } from './services/config-store.service';\r\nimport { MenuService } from './services/menu.service';\r\nimport { NavigationDataMiddlewareService } from './services/navigation-data-middleware.service';\r\nimport { SharedService } from './services/shared.service';\r\nimport { TokenService } from './services/token.service';\r\nimport { AnalyticsService } from './services/analytics.service';\r\nimport { GlobalErrorHandlerService } from './services/global-error-handler.service';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { CustomLoaderComponent } from './shared/components/custom-loader/custom-loader.component';\r\nimport { TranslateLabelsByEnviroment, MyMissingTranslationHandler } from './services/translation.service';\r\nimport { ImpersonateService } from './services/impersonate.service';\r\nimport { registerLocaleData } from '@angular/common';\r\nimport localeDa from '@angular/common/locales/da';\r\nimport localeSv from '@angular/common/locales/sv';\r\n\r\nregisterLocaleData(localeDa);\r\nregisterLocaleData(localeSv);\r\n\r\nexport function jwtOptionsFactory(cookieService) {\r\n return {\r\n tokenGetter: () => cookieService.get('AuthToken')\r\n };\r\n}\r\n\r\nexport function tokenStartup(tokenService: TokenService) {\r\n return () => {\r\n tokenService.readTokenFromURL();\r\n };\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n TokenComponent,\r\n CustomLoaderComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n JwtModule.forRoot({\r\n jwtOptionsProvider: {\r\n provide: JWT_OPTIONS,\r\n useFactory: jwtOptionsFactory,\r\n deps: [CookieService]\r\n },\r\n config: {\r\n allowedDomains: ['localhost:8452', 'howdy.care']\r\n }\r\n }),\r\n AppRoutingModule,\r\n TranslateModule.forRoot({\r\n loader: TranslateLabelsByEnviroment,\r\n missingTranslationHandler: {\r\n provide: MissingTranslationHandler,\r\n useClass: MyMissingTranslationHandler,\r\n deps: [Injector]\r\n }\r\n }),\r\n ToastrModule.forRoot({\r\n preventDuplicates: true\r\n })\r\n ],\r\n bootstrap: [AppComponent],\r\n providers: [\r\n { provide: APP_BASE_HREF, useValue: '/' },\r\n CookieService,\r\n AuthGuardService,\r\n TokenService,\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: tokenStartup,\r\n deps: [TokenService, JwtHelperService, CookieService],\r\n multi: true,\r\n },\r\n ConfigStoreService,\r\n { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },\r\n { provide: ErrorHandler, useClass: GlobalErrorHandlerService },\r\n SharedService,\r\n MenuService,\r\n NavigationDataMiddlewareService,\r\n AnalyticsService,\r\n ImpersonateService\r\n ]\r\n})\r\n\r\nexport class AppModule { }\r\n","/**\r\n * @license\r\n * Copyright Akveo. All Rights Reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n */\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(console.error);\r\n","import * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, Inject, NgModule, Optional, SkipSelf } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { mergeMap } from 'rxjs/operators';\nimport { from } from 'rxjs';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\n\nconst JWT_OPTIONS = new InjectionToken('JWT_OPTIONS');\n\n// tslint:disable:no-bitwise\nclass JwtHelperService {\n constructor(config = null) {\n this.tokenGetter = (config && config.tokenGetter) || function () { };\n }\n urlBase64Decode(str) {\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0: {\n break;\n }\n case 2: {\n output += '==';\n break;\n }\n case 3: {\n output += '=';\n break;\n }\n default: {\n throw new Error('Illegal base64url string!');\n }\n }\n return this.b64DecodeUnicode(output);\n }\n // credits for decoder goes to https://github.com/atk\n b64decode(str) {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let output = '';\n str = String(str).replace(/=+$/, '');\n if (str.length % 4 === 1) {\n throw new Error(`'atob' failed: The string to be decoded is not correctly encoded.`);\n }\n for (\n // initialize result and counters\n let bc = 0, bs, buffer, idx = 0; \n // get next character\n (buffer = str.charAt(idx++)); \n // character found in table? initialize bit storage and add its ascii value;\n ~buffer &&\n ((bs = bc % 4 ? bs * 64 + buffer : buffer),\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4)\n ? (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6))))\n : 0) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n }\n b64DecodeUnicode(str) {\n return decodeURIComponent(Array.prototype.map\n .call(this.b64decode(str), (c) => {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(''));\n }\n decodeToken(token = this.tokenGetter()) {\n if (!token || token === '') {\n return null;\n }\n const parts = token.split('.');\n if (parts.length !== 3) {\n throw new Error(`The inspected token doesn't appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.`);\n }\n const decoded = this.urlBase64Decode(parts[1]);\n if (!decoded) {\n throw new Error('Cannot decode the token.');\n }\n return JSON.parse(decoded);\n }\n getTokenExpirationDate(token = this.tokenGetter()) {\n let decoded;\n decoded = this.decodeToken(token);\n if (!decoded || !decoded.hasOwnProperty('exp')) {\n return null;\n }\n const date = new Date(0);\n date.setUTCSeconds(decoded.exp);\n return date;\n }\n isTokenExpired(token = this.tokenGetter(), offsetSeconds) {\n if (!token || token === '') {\n return true;\n }\n const date = this.getTokenExpirationDate(token);\n offsetSeconds = offsetSeconds || 0;\n if (date === null) {\n return false;\n }\n return !(date.valueOf() > new Date().valueOf() + offsetSeconds * 1000);\n }\n getAuthScheme(authScheme, request) {\n if (typeof authScheme === 'function') {\n return authScheme(request);\n }\n return authScheme;\n }\n}\nJwtHelperService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: JwtHelperService, deps: [{ token: JWT_OPTIONS }], target: i0.ɵɵFactoryTarget.Injectable });\nJwtHelperService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: JwtHelperService });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: JwtHelperService, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [JWT_OPTIONS]\n }] }]; } });\n\nclass JwtInterceptor {\n constructor(config, jwtHelper, document) {\n this.jwtHelper = jwtHelper;\n this.document = document;\n this.standardPorts = ['80', '443'];\n this.tokenGetter = config.tokenGetter;\n this.headerName = config.headerName || 'Authorization';\n this.authScheme =\n config.authScheme || config.authScheme === ''\n ? config.authScheme\n : 'Bearer ';\n this.allowedDomains = config.allowedDomains || [];\n this.disallowedRoutes = config.disallowedRoutes || [];\n this.throwNoTokenError = config.throwNoTokenError || false;\n this.skipWhenExpired = config.skipWhenExpired;\n }\n isAllowedDomain(request) {\n const requestUrl = new URL(request.url, this.document.location.origin);\n // If the host equals the current window origin,\n // the domain is allowed by default\n if (requestUrl.host === this.document.location.host) {\n return true;\n }\n // If not the current domain, check the allowed list\n const hostName = `${requestUrl.hostname}${requestUrl.port && !this.standardPorts.includes(requestUrl.port)\n ? ':' + requestUrl.port\n : ''}`;\n return (this.allowedDomains.findIndex((domain) => typeof domain === 'string'\n ? domain === hostName\n : domain instanceof RegExp\n ? domain.test(hostName)\n : false) > -1);\n }\n isDisallowedRoute(request) {\n const requestedUrl = new URL(request.url, this.document.location.origin);\n return (this.disallowedRoutes.findIndex((route) => {\n if (typeof route === 'string') {\n const parsedRoute = new URL(route, this.document.location.origin);\n return (parsedRoute.hostname === requestedUrl.hostname &&\n parsedRoute.pathname === requestedUrl.pathname);\n }\n if (route instanceof RegExp) {\n return route.test(request.url);\n }\n return false;\n }) > -1);\n }\n handleInterception(token, request, next) {\n const authScheme = this.jwtHelper.getAuthScheme(this.authScheme, request);\n let tokenIsExpired = false;\n if (!token && this.throwNoTokenError) {\n throw new Error('Could not get token from tokenGetter function.');\n }\n if (this.skipWhenExpired) {\n tokenIsExpired = token ? this.jwtHelper.isTokenExpired(token) : true;\n }\n if (token && tokenIsExpired && this.skipWhenExpired) {\n request = request.clone();\n }\n else if (token) {\n request = request.clone({\n setHeaders: {\n [this.headerName]: `${authScheme}${token}`,\n },\n });\n }\n return next.handle(request);\n }\n intercept(request, next) {\n if (!this.isAllowedDomain(request) || this.isDisallowedRoute(request)) {\n return next.handle(request);\n }\n const token = this.tokenGetter(request);\n if (token instanceof Promise) {\n return from(token).pipe(mergeMap((asyncToken) => {\n return this.handleInterception(asyncToken, request, next);\n }));\n }\n else {\n return this.handleInterception(token, request, next);\n }\n }\n}\nJwtInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: JwtInterceptor, deps: [{ token: JWT_OPTIONS }, { token: JwtHelperService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nJwtInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: JwtInterceptor });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: JwtInterceptor, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [JWT_OPTIONS]\n }] }, { type: JwtHelperService }, { type: Document, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\nclass JwtModule {\n constructor(parentModule) {\n if (parentModule) {\n throw new Error(`JwtModule is already loaded. It should only be imported in your application's main module.`);\n }\n }\n static forRoot(options) {\n return {\n ngModule: JwtModule,\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: JwtInterceptor,\n multi: true,\n },\n options.jwtOptionsProvider || {\n provide: JWT_OPTIONS,\n useValue: options.config,\n },\n JwtHelperService,\n ],\n };\n }\n}\nJwtModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: JwtModule, deps: [{ token: JwtModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });\nJwtModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: JwtModule });\nJwtModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: JwtModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.16\", ngImport: i0, type: JwtModule, decorators: [{\n type: NgModule\n }], ctorParameters: function () { return [{ type: JwtModule, decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }] }]; } });\n\n/*\n * Public API Surface of angular-jwt\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { JWT_OPTIONS, JwtHelperService, JwtInterceptor, JwtModule };\n","/*!\n * Chart.js v3.8.2\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, d as defaults, i as isObject, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as createContext, j as defined, s as sign, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as isNumber, w as _limitValue, x as _lookupByKey, y as _parseObjectDataRadialScale, z as getRelativePosition, A as _rlookupByKey, B as _isPointInArea, C as getAngleFromPoint, D as toPadding, E as each, F as getMaximumSize, G as _getParentNode, I as readUsedSize, J as throttled, K as supportsEventListenerOptions, L as _isDomSupported, M as log10, N as _factorize, O as finiteOrDefault, Q as callback, R as _addGrace, S as toDegrees, U as _measureText, V as _int16Range, W as _alignPixel, X as clipArea, Y as renderText, Z as unclipArea, $ as toFont, a0 as _toLeftRightCenter, a1 as _alignStartEnd, a2 as overrides, a3 as merge, a4 as _capitalize, a5 as descriptors, a6 as isFunction, a7 as _attachContext, a8 as _createResolver, a9 as _descriptors, aa as mergeIf, ab as uid, ac as debounce, ad as retinaScale, ae as clearCanvas, af as setsEqual, ag as _elementsEqual, ah as _isClickEvent, ai as _isBetween, aj as _readValueToProps, ak as _updateBezierControlPoints, al as _computeSegments, am as _boundSegments, an as _steppedInterpolation, ao as _bezierInterpolation, ap as _pointInLine, aq as _steppedLineTo, ar as _bezierCurveTo, as as drawPoint, at as addRoundedRectPath, au as toTRBL, av as toTRBLCorners, aw as _boundSegment, ax as _normalizeAngle, ay as getRtlAdapter, az as overrideTextDirection, aA as _textX, aB as restoreTextDirection, aC as drawPointLegend, aD as noop, aE as distanceBetweenPoints, aF as _setMinAndMaxByKey, aG as niceNum, aH as almostWhole, aI as almostEquals, aJ as _decimalPlaces, aK as _longestText, aL as _filterBetween, aM as _lookup } from './chunks/helpers.segment.js';\nexport { d as defaults } from './chunks/helpers.segment.js';\n\nclass Animator {\n constructor() {\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach(fn => fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, () => {\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart) => {\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for (; i >= 0; --i) {\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color(from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid\n ? c1.mix(c0, factor).hexString()\n : to;\n },\n number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to) {\n const currentValue = target[prop];\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n const from = resolve([cfg.from, currentValue, to]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || (elapsed < duration));\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = (elapsed / duration) % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej) => {\n promises.push({res, rej});\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for (let i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n}\n\nconst numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\ndefaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined,\n});\nconst animationOptions = Object.keys(defaults.animation);\ndefaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n});\ndefaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n },\n});\ndefaults.describe('animations', {\n _fallback: 'animation',\n});\ndefaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n },\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0\n },\n }\n }\n});\nclass Animations {\n constructor(chart, config) {\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach(key => {\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions) {\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [key]).forEach((prop) => {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(() => {\n target.options = newOptions;\n }, () => {\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for (i = props.length - 1; i >= 0; --i) {\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for (let i = 0; i < keys.length; i++) {\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {$shared: false, $animations: {}});\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || (value === 0 || sign(value) === sign(otherValue)))) {\n value += otherValue;\n }\n }\n return value;\n}\nfunction convertObjectDataToArray(data) {\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || (stacked === undefined && meta.stack !== undefined);\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const {min, max, minDefined, maxDefined} = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n const value = stack[meta.index];\n if ((positive && value > 0) || (!positive && value < 0)) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const {chart, _cachedMeta: meta} = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const {iScale, vScale, index: datasetIndex} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for (let i = 0; i < ilen; ++i) {\n const item = parsed[i];\n const {[iAxis]: index, [vAxis]: value} = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent,\n {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n }\n );\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items) {\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n }\n}\nconst isDirectUpdateMode = (mode) => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked\n && {keys: getSortedDatasetIndices(chart, true), values: null};\nclass DatasetController {\n constructor(chart, datasetIndex) {\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale\n ? meta.vScale\n : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n this._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const {_cachedMeta: meta, _data: data} = this;\n const {iScale, _stacked} = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]\n };\n return applyStack(stack, value, meta.index, {mode});\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n const {min: otherMin, max: otherMax} = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || (elements.length - start);\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for (i = start; i < start + count; ++i) {\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset\n ? this.resolveDatasetElementOptions(mode)\n : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context ||\n (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context ||\n (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = () => this.getContext(index, active);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || (sharedOptions !== previouslySharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {sharedOptions, includeOptions};\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: (!active && this.getSharedOptions(options)) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList) {\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr) => {\n arr.length += count;\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([this.index, ...args]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync(['_removeElements', start, count]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync(['_insertElements', start, newCount]);\n }\n }\n _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n}\nDatasetController.defaults = {};\nDatasetController.prototype.datasetElementType = null;\nDatasetController.prototype.dataElementType = null;\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n }\n return scale._cache.$bar;\n}\nfunction computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = () => {\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - (size / 2)\n };\n}\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {start, end, reverse, top, bottom};\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n const {start, end, reverse, top, bottom} = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, {inflateAmount}, ratio) {\n properties.inflateAmount = inflateAmount === 'auto'\n ? ratio === 1 ? 0.33 : 0\n : inflateAmount;\n}\nclass BarController extends DatasetController {\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {iScale, vScale} = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom)\n ? '[' + custom.start + ', ' + custom.end + ']'\n : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const {index, _cachedMeta: {vScale}} = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n for (let i = start; i < start + count; i++) {\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {base, head: base} : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || (index === stack._top || index === stack._bottom),\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const {iScale} = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type)\n .filter(meta => meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n const skipNull = (meta) => {\n const parsed = meta.controller.getParsed(dataIndex);\n const val = parsed && parsed[meta.vScale.axis];\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n for (const meta of metasets) {\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n if (stacked === false || stacks.indexOf(meta.stack) === -1 ||\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = (name !== undefined)\n ? stacks.indexOf(name)\n : -1;\n return (index === -1)\n ? stacks.length - 1\n : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const {_cachedMeta: {vScale, _stacked}, options: {base: baseValue, minBarLength}} = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex'\n ? computeFlexCategoryTraits(index, ruler, options, stackCount)\n : computeFitCategoryTraits(index, ruler, options, stackCount);\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\nBarController.id = 'bar';\nBarController.defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n};\nBarController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true,\n }\n }\n};\n\nclass BubbleController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {xScale, yScale} = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: meta.label,\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {$shared: false});\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\nBubbleController.id = 'bubble';\nBubbleController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n};\nBubbleController.overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n }\n }\n }\n }\n};\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {ratioX, ratioY, offsetX, offsetY};\n}\nclass DoughnutController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i) => +data[i];\n if (isObject(data[start])) {\n const {key = 'value'} = this._parsing;\n getter = (i) => +resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for (let i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min,\n };\n }\n update(mode) {\n const chart = this.chart;\n const {chartArea} = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const {circumference, rotation} = this._getRotationExtents();\n const {ratioX, ratioY, offsetX, offsetY} = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if ((reset && opts.animation.animateRotate) || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n let startAngle = this._getRotation();\n let i;\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n for (i = start; i < start + count; ++i) {\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for (i = 0; i < metaData.length; i++) {\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for (let i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\nDoughnutController.id = 'doughnut';\nDoughnutController.defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n },\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r',\n};\nDoughnutController.descriptors = {\n _scriptable: (name) => name !== 'spacing',\n _indexable: (name) => name !== 'spacing',\n};\nDoughnutController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(tooltipItem) {\n let dataLabel = tooltipItem.label;\n const value = ': ' + tooltipItem.formattedValue;\n if (isArray(dataLabel)) {\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n return dataLabel;\n }\n }\n }\n }\n};\n\nclass LineController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const {dataset: line, data: points = [], _dataset} = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\nLineController.id = 'line';\nLineController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false,\n};\nLineController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n },\n _value_: {\n type: 'linear',\n },\n }\n};\nfunction getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const {iScale, _parsed} = meta;\n const axis = iScale.axis;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(Math.min(\n _lookupByKey(_parsed, iScale.axis, min).lo,\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo),\n 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n _lookupByKey(_parsed, iScale.axis, max).hi + 1,\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max)).hi + 1),\n start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {start, count};\n}\nfunction scaleRangesChanged(meta) {\n const {xScale, yScale, _scaleRanges} = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nclass PolarAreaController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n meta.data.forEach((element, index) => {\n const parsed = this.getParsed(index).r;\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n return range;\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? (outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - (radiusLength * this.index);\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for (i = start; i < start + count; i++) {\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index) => {\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index)\n ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle)\n : 0;\n }\n}\nPolarAreaController.id = 'polarArea';\nPolarAreaController.defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n },\n },\n indexAxis: 'r',\n startAngle: 0,\n};\nPolarAreaController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(context) {\n return context.chart.data.labels[context.dataIndex] + ': ' + context.formattedValue;\n }\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n};\n\nclass PieController extends DoughnutController {\n}\nPieController.id = 'pie';\nPieController.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n};\n\nclass RadarController extends DatasetController {\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\nRadarController.id = 'radar';\nRadarController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n },\n};\nRadarController.overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear',\n }\n }\n};\n\nclass ScatterController extends LineController {\n}\nScatterController.id = 'scatter';\nScatterController.defaults = {\n showLine: false,\n fill: false\n};\nScatterController.overrides = {\n interaction: {\n mode: 'point'\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(item) {\n return '(' + item.label + ', ' + item.formattedValue + ')';\n }\n }\n }\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n};\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPolarAreaController: PolarAreaController,\nPieController: PieController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\nfunction abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\nclass DateAdapter {\n constructor(options) {\n this.options = options || {};\n }\n formats() {\n return abstract();\n }\n parse(value, format) {\n return abstract();\n }\n format(timestamp, format) {\n return abstract();\n }\n add(timestamp, amount, unit) {\n return abstract();\n }\n diff(a, b, unit) {\n return abstract();\n }\n startOf(timestamp, unit, weekday) {\n return abstract();\n }\n endOf(timestamp, unit) {\n return abstract();\n }\n}\nDateAdapter.override = function(members) {\n Object.assign(DateAdapter.prototype, members);\n};\nvar adapters = {\n _date: DateAdapter\n};\n\nfunction binarySearch(metaset, axis, value, intersect) {\n const {controller, data, _sorted} = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {lo: start.lo, hi: end.hi};\n }\n }\n }\n return {lo: 0, hi: data.length - 1};\n}\nfunction evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n const {index, data} = metasets[i];\n const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);\n for (let j = lo; j <= hi; ++j) {\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\nfunction getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n };\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\nfunction getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const {startAngle, endAngle} = element.getProps(['startAngle', 'endAngle'], useFinalPosition);\n const {angle} = getAngleFromPoint(element, {x: position.x, y: position.y});\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({element, datasetIndex, index});\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [{element, datasetIndex, index}];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({element, datasetIndex, index});\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n return axis === 'r' && !intersect\n ? getNearestRadialItems(chart, position, axis, useFinalPosition)\n : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\nfunction getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index) => {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({element, datasetIndex, index});\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\nvar Interaction = {\n evaluateInteractionItems,\n modes: {\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible)\n : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta) => {\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({element, datasetIndex: meta.index, index});\n }\n });\n return elements;\n },\n dataset(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) :\n getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for (let i = 0; i < data.length; ++i) {\n items.push({element: data[i], datasetIndex, index: i});\n }\n }\n return items;\n },\n point(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n x(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n y(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\nfunction filterByPosition(array, position) {\n return array.filter(v => v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b) => {\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0.index - v1.index :\n v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n ({position: pos, options: {stack, stackWeight = 1}} = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && (pos + stack),\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts) {\n const {stack, pos, stackWeight} = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {count: 0, placed: 0, weight: 0, size: 0});\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\nfunction setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const {vBoxMaxWidth, hBoxMaxHeight} = params;\n let i, ilen, layout;\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n const {fullSize} = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const {pos, box} = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {size: 0, count: 1};\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal\n ? {same: widthChanged, other: heightChanged}\n : {same: heightChanged, other: widthChanged};\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {left: 0, top: 0, right: 0, bottom: 0};\n positions.forEach((pos) => {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal\n ? marginForPositions(['left', 'right'])\n : marginForPositions(['top', 'bottom']);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(\n layout.width || chartArea.w,\n layout.height || chartArea.h,\n getMargins(layout.horizontal, chartArea)\n );\n const {same, other} = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let {x, y} = chartArea;\n for (const layout of boxes) {\n const box = layout.box;\n const stack = stacks[layout.stack] || {count: 1, placed: 0, weight: 1};\n const weight = (layout.stackWeight / stack.weight) || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\ndefaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n});\nvar layouts = {\n addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [{\n z: 0,\n draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n chart.boxes.push(item);\n },\n removeBox(chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, box => {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) =>\n wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w,\n };\n each(boxes.chartArea, (layout) => {\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {left: 0, top: 0, right: 0, bottom: 0});\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\nconst EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = value => value === null || value === '';\nfunction initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const {x, y} = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList) {\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart) => {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height) => {\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event) => {\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart, (args) => {\n const event = args[0];\n return [event, event.offsetX, event.offsetY];\n });\n addListener(canvas, type, proxy);\n return proxy;\n}\nclass DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach((prop) => {\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key) => {\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || (typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas)) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass Element {\n constructor() {\n this.x = undefined;\n this.y = undefined;\n this.active = false;\n this.options = undefined;\n this.$animations = undefined;\n }\n tooltipPosition(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n return this;\n }\n const ret = {};\n props.forEach(prop => {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\nElement.defaults = {};\nElement.defaultRoutes = undefined;\n\nconst formatters = {\n values(value) {\n return isArray(value) ? value : '' + value;\n },\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = tickValue / (Math.pow(10, Math.floor(log10(tickValue))));\n if (remain === 1 || remain === 2 || remain === 5) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\nvar Ticks = {formatters};\n\ndefaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawBorder: true,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false,\n borderDash: [],\n borderDashOffset: 0.0,\n borderWidth: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2,\n }\n});\ndefaults.route('scale.ticks', 'color', '', 'color');\ndefaults.route('scale.grid', 'color', '', 'borderColor');\ndefaults.route('scale.grid', 'borderColor', '', 'borderColor');\ndefaults.route('scale.title', 'color', '', 'color');\ndefaults.describe('scale', {\n _fallback: false,\n _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash',\n});\ndefaults.describe('scales', {\n _fallback: 'scale',\n});\ndefaults.describe('scale.ticks', {\n _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name) => name !== 'backdropPadding',\n});\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const ticksLimit = tickOpts.maxTicksLimit || determineMaxTicks(scale);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\nfunction getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\nfunction getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align) => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nfunction sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\nfunction garbageCollect(caches, length) {\n each(caches, (cache) => {\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return (lines * font.lineHeight) + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if ((reverse && position !== 'right') || (!reverse && position === 'right')) {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const {top, left, bottom, right, chart} = scale;\n const {chartArea, scales} = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {titleX, titleY, maxWidth, rotation};\n}\nclass Scale extends Element {\n constructor(cfg) {\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let {_userMin, _userMax, _suggestedMin, _suggestedMax} = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {min, max};\n }\n const metas = this.getMatchingVisibleMetas();\n for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [this]);\n }\n update(maxWidth, maxHeight, margins) {\n const {beginAtZero, grace, ticks: tickOpts} = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal()\n ? this.width + margins.left + margins.right\n : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [this]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [this]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [this]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [this]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [this]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = this.ticks.length;\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid)\n\t\t\t\t- tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(\n Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)),\n Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))\n ));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [this]);\n }\n afterAutoSkip() {}\n beforeFit() {\n callback(this.options.beforeFit, [this]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const {chart, options: {ticks: tickOpts, title: titleOpts, grid: gridOpts}} = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const {first, last, widest, highest} = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const {ticks: {align, padding}, position} = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [this]);\n }\n isHorizontal() {\n const {axis, position} = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length) {\n const {ctx, _longestTextCache: caches} = this;\n const widths = [];\n const heights = [];\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for (i = 0; i < length; ++i) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx) => ({width: widths[idx] || 0, height: heights[idx] || 0});\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights,\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const {min, max} = this;\n return min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context ||\n\t\t\t\t(tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context ||\n\t\t\t(this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal()\n ? h * cos > w * sin ? w / cos : h / sin\n : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const {grid, position} = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = borderOpts.drawBorder ? borderOpts.borderWidth : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for (i = 0; i < ticksLength; i += step) {\n const optsAtIndex = grid.setContext(this.getContext(i));\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = grid.borderDash || [];\n const borderDashOffset = optsAtIndex.borderDashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset,\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const {position, ticks: optionTicks} = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const {align, crossAlign, padding, mirror} = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = ((chartArea.top + chartArea.bottom) / 2) + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = ((chartArea.left + chartArea.right) / 2) - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n if (isHorizontal) {\n x = pixel;\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = y + textOffset - labelPadding.top;\n let left = x - labelPadding.left;\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor,\n };\n }\n items.push({\n rotation,\n label,\n font,\n color,\n strokeColor,\n strokeWidth,\n textOffset,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [x, y],\n backdrop,\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const {position, ticks} = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const {position, ticks: {crossAlign, mirror, padding}} = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += (widest / 2);\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {textAlign, x};\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {top: 0, left: this.left, bottom: chart.height, right: this.right};\n } if (position === 'top' || position === 'bottom') {\n return {top: this.top, left: 0, bottom: this.bottom, right: chart.width};\n }\n }\n drawBackground() {\n const {ctx, options: {backgroundColor}, left, top, width, height} = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex(t => t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style) => {\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine(\n {x: item.x1, y: item.y1},\n {x: item.x2, y: item.y2},\n item\n );\n }\n if (grid.drawTicks) {\n drawLine(\n {x: item.tx1, y: item.ty1},\n {x: item.tx2, y: item.ty2},\n {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n }\n );\n }\n }\n }\n }\n drawBorder() {\n const {chart, ctx, options: {grid}} = this;\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.borderWidth;\n ctx.strokeStyle = borderOpts.borderColor;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n const tickFont = item.font;\n const label = item.label;\n if (item.backdrop) {\n ctx.fillStyle = item.backdrop.color;\n ctx.fillRect(item.backdrop.left, item.backdrop.top, item.backdrop.width, item.backdrop.height);\n }\n let y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, item);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const {ctx, options: {position, title, reverse}} = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const {titleX, titleY, maxWidth, rotation} = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw: (chartArea) => {\n this.draw(chartArea);\n }\n }];\n }\n return [{\n z: gz,\n draw: (chartArea) => {\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n }, {\n z: gz + 1,\n draw: () => {\n this.drawBorder();\n }\n }, {\n z: tz,\n draw: (chartArea) => {\n this.drawLabels(chartArea);\n }\n }];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override) {\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(property => {\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [scope].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor() {\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [...args].forEach(arg => {\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || (reg === this.plugins && arg.id)) {\n this._exec(method, reg, arg);\n } else {\n each(arg, item => {\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for (let i = 0; i < this._typedRegistries.length; i++) {\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = new Registry();\n\nclass PluginService {\n constructor() {\n this._init = [];\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors) {\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [chart, args, descriptor.options];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\nfunction allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for (let i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for (let i = 0; i < local.length; i++) {\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n return {plugins, localIds};\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, {plugins, localIds}, options, all) {\n const result = [];\n const context = chart.getContext();\n for (const plugin of plugins) {\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {plugin, local: localIds[id]}, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, {plugin, local}, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [''], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y') {\n return id;\n }\n return scaleOptions.axis || axisFromPosition(scaleOptions.position) || id.charAt(0).toLowerCase();\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {scales: {}};\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const firstIDs = Object.create(null);\n const scales = Object.create(null);\n Object.keys(configScales).forEach(id => {\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n firstIDs[axis] = firstIDs[axis] || id;\n scales[id] = mergeIf(Object.create(null), [{axis}, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n config.data.datasets.forEach(dataset => {\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(defaultID => {\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || firstIDs[axis] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{axis}, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n Object.keys(scales).forEach(key => {\n const scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key) => {\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config) {\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType,\n () => [[\n `datasets.${datasetType}`,\n ''\n ]]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`,\n () => [\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`,\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`,\n () => [[\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`,\n () => [[\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || [],\n ]]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const {options, type} = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach(keys => {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(key => addIfFound(scopes, mainScope, key));\n }\n keys.forEach(key => addIfFound(scopes, options, key));\n keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach(key => addIfFound(scopes, defaults, key));\n keys.forEach(key => addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const {options, type} = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {type},\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n const result = {$shared: true};\n const {resolver, subPrefixes} = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names) {\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n const {resolver} = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context)\n ? _attachContext(resolver, context, undefined, descriptorDefaults)\n : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = value => isObject(value)\n && Object.getOwnPropertyNames(value).reduce((acc, key) => acc || isFunction(value[key]), false);\nfunction needContext(proxy, names) {\n const {isScriptable, isIndexable} = _descriptors(proxy);\n for (const prop of names) {\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if ((scriptable && (isFunction(value) || hasFunction(value)))\n || (indexable && isArray(value))) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"3.8.2\";\n\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || (KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x');\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1]\n ? a[l2] - b[l2]\n : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [context], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [context], chart);\n}\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key) => {\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c) => c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys) {\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\nfunction determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nclass Chart {\n constructor(item, userConfig) {\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error(\n 'Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' +\n\t\t\t\t' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.'\n );\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(mode => this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const {options: {aspectRatio, maintainAspectRatio}, width, height, _aspectRatio} = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {width, height};\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {size: newSize});\n callback(options.onResize, [this, newSize], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID) => {\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id) => {\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(\n Object.keys(scaleOpts).map((id) => {\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n })\n );\n }\n each(items, (item) => {\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id) => {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale) => {\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b) => a.index - b.index);\n if (numMeta > numData) {\n for (let i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const {_metasets: metasets, data: {datasets}} = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index) => {\n if (datasets.filter(x => x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const {datasetElementType, dataElementType} = defaults.datasets[type];\n Object.assign(ControllerClass.prototype, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex) => {\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n const {controller} = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller) => {\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {mode});\n this._layers.sort(compare2Level('z', '_idx'));\n const {_active, _lastEvent} = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, (scale) => {\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const {_hiddenIndices} = this;\n const changes = this._getUniformDataChanges() || [];\n for (const {method, start, count} of changes) {\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx) => new Set(\n _dataChanges\n .filter(c => c[0] === idx)\n .map((c, i) => i + ',' + c.splice(1).join(','))\n );\n const changeSet = makeSet(0);\n for (let i = 1; i < datasetCount; i++) {\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet)\n .map(c => c.split(','))\n .map(a => ({method: a[1], start: +a[2], count: +a[3]}));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {cancelable: true}) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box) => {\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index) => {\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this.getDatasetMeta(i).controller.configure();\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._updateDataset(i, isFunction(mode) ? mode({datasetIndex: i}) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {mode});\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {meta, index, mode, cancelable: true};\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {cancelable: true}) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({chart: this});\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const {width, height} = this._resizeBeforeDraw;\n this._resize(width, height);\n this._resizeBeforeDraw = null;\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {cancelable: true}) === false) {\n return;\n }\n const layers = this._layers;\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {cancelable: true}) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = this.chartArea;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n meta.controller.draw();\n if (useClip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {chart: this, type: 'chart'}));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {visible});\n this.update((ctx) => ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const {canvas, ctx} = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n this.notifyPlugins('destroy');\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y) => {\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type) => _add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener) => {\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height) => {\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = () => {\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = () => {\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin) => (plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const {_active: lastActive = [], options} = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [e, active, this], this);\n if (isClick) {\n callback(options.onClick, [e, active, this], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nconst invalidatePlugins = () => each(Chart.instances, (chart) => chart._plugins.invalidate());\nconst enumerable = true;\nObject.defineProperties(Chart, {\n defaults: {\n enumerable,\n value: defaults\n },\n instances: {\n enumerable,\n value: instances\n },\n overrides: {\n enumerable,\n value: overrides\n },\n registry: {\n enumerable,\n value: registry\n },\n version: {\n enumerable,\n value: version\n },\n getChart: {\n enumerable,\n value: getChart\n },\n register: {\n enumerable,\n value: (...items) => {\n registry.add(...items);\n invalidatePlugins();\n }\n },\n unregister: {\n enumerable,\n value: (...items) => {\n registry.remove(...items);\n invalidatePlugins();\n }\n }\n});\n\nfunction clipArc(ctx, element, endAngle) {\n const {startAngle, pixelMargin, x, y, outerRadius, innerRadius} = element;\n let angleMargin = pixelMargin / outerRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n const computeOuterLimit = (val) => {\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit),\n };\n}\nfunction rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta),\n };\n}\nfunction pathArc(ctx, element, offset, spacing, end) {\n const {x, y, startAngle: start, pixelMargin, innerRadius: innerR} = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? (alpha * avNogSpacingRadius) / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const {outerStart, outerEnd, innerStart, innerEnd} = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle);\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), startAngle + (innerStart / innerRadius), true);\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing) {\n const {fullCircles, startAngle, circumference} = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + circumference % TAU;\n if (circumference % TAU === 0) {\n endAngle += TAU;\n }\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.fill();\n return endAngle;\n}\nfunction drawFullCircleBorders(ctx, element, inner) {\n const {x, y, startAngle, pixelMargin, fullCircles} = element;\n const outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n const innerRadius = element.innerRadius + pixelMargin;\n let i;\n if (inner) {\n clipArc(ctx, element, startAngle + TAU);\n }\n ctx.beginPath();\n ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle, startAngle + TAU);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n}\nfunction drawBorder(ctx, element, offset, spacing, endAngle) {\n const {options} = element;\n const {borderWidth, borderJoinStyle} = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n if (element.fullCircles) {\n drawFullCircleBorders(ctx, element, inner);\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.stroke();\n}\nclass ArcElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps(['x', 'y'], useFinalPosition);\n const {angle, distance} = getAngleFromPoint(point, {x: chartX, y: chartY});\n const {startAngle, endAngle, innerRadius, outerRadius, circumference} = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = this.options.spacing / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const betweenAngles = _circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return (betweenAngles && withinRadius);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, startAngle, endAngle, innerRadius, outerRadius} = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference',\n ], useFinalPosition);\n const {offset, spacing} = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const {options, circumference} = this;\n const offset = (options.offset || 0) / 2;\n const spacing = (options.spacing || 0) / 2;\n this.pixelMargin = (options.borderAlign === 'inner') ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n let radiusOffset = 0;\n if (offset) {\n radiusOffset = offset / 2;\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * radiusOffset, Math.sin(halfAngle) * radiusOffset);\n if (this.circumference >= PI) {\n radiusOffset = offset;\n }\n }\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n const endAngle = drawArc(ctx, this, radiusOffset, spacing);\n drawBorder(ctx, this, radiusOffset, spacing, endAngle);\n ctx.restore();\n }\n}\nArcElement.id = 'arc';\nArcElement.defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n};\nArcElement.defaultRoutes = {\n backgroundColor: 'backgroundColor'\n};\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const {start: paramsStart = 0, end: paramsEnd = count - 1} = params;\n const {start: segmentStart, end: segmentEnd} = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\nfunction pathSegment(ctx, line, segment, params) {\n const {points, options} = line;\n const {count, start, loop, ilen} = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let {move = true, reverse} = params || {};\n let i, point, prev;\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\nfunction fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const {count, start, ilen} = pathVars(points, segment, params);\n const {move = true, reverse} = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index) => (start + (reverse ? ilen - index : index)) % count;\n const drawX = () => {\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\nfunction _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const {segments, options} = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments) {\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {start, end: start + count - 1})) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n constructor(cfg) {\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {property, start: value, end: value});\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n const {start, end} = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || (this.points.length - start);\n for (const segment of segments) {\n loop &= segmentMethod(ctx, this, segment, {start, end: start + count - 1});\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\nLineElement.id = 'line';\nLineElement.defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0,\n};\nLineElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nLineElement.descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash' && name !== 'fill',\n};\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const {[axis]: value} = el.getProps([axis], useFinalPosition);\n return (Math.abs(pos - value) < options.radius + options.hitRadius);\n}\nclass PointElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return ((Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2)) < Math.pow(options.hitRadius + options.radius, 2));\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n return options.radius + options.hitRadius;\n }\n}\nPointElement.id = 'point';\nPointElement.defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n};\nPointElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nfunction getBarBounds(bar, useFinalPosition) {\n const {x, y, base, width, height} = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {left, top, right, bottom};\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const {enableBorderRadius} = bar.getProps(['enableBorderRadius']);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r)),\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds\n\t\t&& (skipX || _isBetween(x, bounds.left, bounds.right))\n\t\t&& (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const {inflateAmount, options: {borderColor, backgroundColor}} = this;\n const {inner, outer} = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, base, horizontal} = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\nBarElement.id = 'bar';\nBarElement.defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n};\nBarElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nLineElement: LineElement,\nPointElement: PointElement,\nBarElement: BarElement\n});\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for (i = 0; i < samples - 2; i++) {\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const {x: pointAx, y: pointAy} = data[a];\n maxArea = area = -1;\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs(\n (pointAx - avgX) * (data[j].y - pointAy) -\n (pointAx - data[j].x) * (avgY - pointAy)\n );\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX,\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {value: data});\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset) => {\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const {iScale} = meta;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {start, count};\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false,\n },\n beforeElementsUpdate: (chart, args, options) => {\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex) => {\n const {_data, indexAxis} = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n return;\n }\n if (!meta.controller.supportsDecimation) {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let {start, count} = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments) {\n let {start, end} = segment;\n end = _findSegmentEnd(start, end, points);\n const bounds = _getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments) {\n const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources) {\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {property, start, end};\n}\nfunction _pointsFromSegments(boundary, line) {\n const {x = null, y = null} = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({start, end}) => {\n end = _findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({x: first.x, y});\n points.push({x: last.x, y});\n } else if (x !== null) {\n points.push({x, y: first.y});\n points.push({x, y: last.y});\n }\n });\n return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n for (;end > start; end--) {\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {tension: 0},\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction _shouldApplyFill(source) {\n return source && source.fill !== false;\n}\n\nfunction _resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [index];\n let target;\n if (!propagate) {\n return fill;\n }\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\nfunction _decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n}\nfunction _getTargetPixel(fill, scale) {\n let pixel = null;\n if (fill === 'start') {\n pixel = scale.bottom;\n } else if (fill === 'end') {\n pixel = scale.top;\n } else if (isObject(fill)) {\n pixel = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n pixel = scale.getBasePixel();\n }\n return pixel;\n}\nfunction _getTargetValue(fill, scale, startValue) {\n let value;\n if (fill === 'start') {\n value = startValue;\n } else if (fill === 'end') {\n value = scale.options.reverse ? scale.min : scale.max;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n return value;\n}\nfunction parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\n\nfunction _buildStackLine(source) {\n const {scale, index, line} = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({x: null, y: scale.bottom}, line));\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n for (let j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({points, options: {}});\n}\nfunction getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for (let i = 0; i < metas.length; i++) {\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for (let j = 0; j < linesBelow.length; j++) {\n const line = linesBelow[j];\n const {first, last, point} = findPoint(line, sourcePoint, 'x');\n if (!point || (first && last)) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\nfunction findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {first, last, point};\n}\n\nclass simpleArc {\n constructor(opts) {\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const {x, y, radius} = this;\n bounds = bounds || {start: 0, end: TAU};\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const {x, y, radius} = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\n\nfunction _getTarget(source) {\n const {chart, fill, line} = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return _createBoundaryLine(boundary, line);\n}\nfunction getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n const {scale = {}, fill} = source;\n const pixel = _getTargetPixel(fill, scale);\n if (isNumberFinite(pixel)) {\n const horizontal = scale.isHorizontal();\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n return null;\n}\nfunction computeCircularBoundary(source) {\n const {scale, fill} = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const start = options.reverse ? scale.max : scale.min;\n const value = _getTargetValue(fill, scale, start);\n const target = [];\n if (options.grid.circular) {\n const center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for (let i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\n\nfunction _drawfill(ctx, source, area) {\n const target = _getTarget(source);\n const {line, scale, axis} = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const {above = color, below = color} = fillOption || {};\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {line, target, above, below, area, scale, axis});\n unclipArea(ctx);\n }\n}\nfunction doFill(ctx, cfg) {\n const {line, target, above, below, area, scale} = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n if (property === 'x' && below !== above) {\n clipVertical(ctx, target, area.top);\n fill(ctx, {line, target, color: above, scale, property});\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n }\n fill(ctx, {line, target, color: below, scale, property});\n ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n const {segments, points} = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments) {\n const {start, end} = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {move: lineLoop});\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction fill(ctx, cfg) {\n const {line, target, property, color, scale} = cfg;\n const segments = _segments(line, target, property);\n for (const {source: src, target: tgt, start, end} of segments) {\n const {style: {backgroundColor = color} = {}} = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && _getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {move: lineLoop, reverse: true});\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction clipBounds(ctx, scale, bounds) {\n const {top, bottom} = scale.chart.chartArea;\n const {property, start, end} = bounds || {};\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nvar index = {\n id: 'filler',\n afterDatasetsUpdate(chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line,\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw(chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize) => {\n let {boxHeight = fontSize, boxWidth = fontSize} = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config) {\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [this.chart], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item) => labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const {options, ctx} = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const {boxWidth, itemHeight} = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxWidth, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [0];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {left: 0, top, row, width: itemWidth, height: itemHeight};\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxHeight, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {left, top: currentColHeight, col, width: itemWidth, height: itemHeight};\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const {legendHitBoxes: hitboxes, options: {align, labels: {padding}, rtl}} = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes) {\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes) {\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const {options: opts, columnSizes, lineWidths, ctx} = this;\n const {align, labels: labelOpts} = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const {color: fontColor, padding} = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const {boxWidth, boxHeight, itemHeight} = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPointLegend(ctx, drawOptions, centerX, centerY, boxWidth);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some(v => v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + (itemHeight / 2), labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i) => {\n ctx.strokeStyle = legendItem.fontColor || fontColor;\n ctx.fillStyle = legendItem.fontColor || fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right)\n && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width)\n && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, this], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n}\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start(chart, _args, options) {\n const legend = chart.legend = new Legend({ctx: chart.ctx, options, chart});\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate(chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate(chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick(e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx) => ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels(chart) {\n const datasets = chart.data.datasets;\n const {labels: {usePointStyle, pointStyle, textAlign, color}} = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta) => {\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: 0,\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx) => ctx.chart.options.color,\n display: false,\n position: 'center',\n text: '',\n }\n },\n descriptors: {\n _scriptable: (name) => !name.startsWith('on'),\n labels: {\n _scriptable: (name) => !['generateLabels', 'filter', 'sort'].includes(name),\n }\n },\n};\n\nclass Title extends Element {\n constructor(config) {\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const {top, left, bottom, right, options} = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {titleX, titleY, maxWidth, rotation};\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const {titleX, titleY, maxWidth, rotation} = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start(chart, _args, options) {\n createTitle(chart, options);\n },\n stop(chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate(chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold',\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start(chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate(chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal',\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst positioners = {\n average(items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let x = 0;\n let y = 0;\n let count = 0;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n return {\n x: x / count,\n y: y / count\n };\n },\n nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\nfunction createTooltipItem(chart, item) {\n const {element, datasetIndex, index} = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const {label, value} = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\nfunction getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const {body, footer, title} = tooltip;\n const {boxWidth, boxHeight} = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight\n\t\t\t+ (titleLineCount - 1) * options.titleSpacing\n\t\t\t+ options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight\n\t\t\t+ (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight\n\t\t\t+ (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop\n\t\t\t+ footerLineCount * footerFont.lineHeight\n\t\t\t+ (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? (boxWidth + 2 + options.boxPadding) : 0;\n each(body, (bodyItem) => {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {width, height};\n}\nfunction determineYAlign(chart, size) {\n const {y, height} = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > (chart.height - height / 2)) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const {x, width} = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const {x, width} = size;\n const {width: chartWidth, chartArea: {left, right}} = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\nfunction determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let {x, width} = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= (width / 2);\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let {y, height} = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= (height / 2);\n }\n return y;\n}\nfunction getBackgroundPoint(options, size, alignment, chart) {\n const {caretSize, caretPadding, cornerRadius} = options;\n const {xAlign, yAlign} = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center'\n ? tooltip.x + tooltip.width / 2\n : align === 'right'\n ? tooltip.x + tooltip.width - padding.right\n : tooltip.x + padding.left;\n}\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nclass Tooltip extends Element {\n constructor(config) {\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart || config._chart;\n this._chart = this.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context ||\n\t\t\t(this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const {callbacks} = options;\n const beforeTitle = callbacks.beforeTitle.apply(this, [context]);\n const title = callbacks.title.apply(this, [context]);\n const afterTitle = callbacks.afterTitle.apply(this, [context]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.beforeBody.apply(this, [tooltipItems]));\n }\n getBody(tooltipItems, options) {\n const {callbacks} = options;\n const bodyItems = [];\n each(tooltipItems, (context) => {\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(scoped.beforeLabel.call(this, context)));\n pushOrConcat(bodyItem.lines, scoped.label.call(this, context));\n pushOrConcat(bodyItem.after, splitNewlines(scoped.afterLabel.call(this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.afterBody.apply(this, [tooltipItems]));\n }\n getFooter(tooltipItems, options) {\n const {callbacks} = options;\n const beforeFooter = callbacks.beforeFooter.apply(this, [tooltipItems]);\n const footer = callbacks.footer.apply(this, [tooltipItems]);\n const afterFooter = callbacks.afterFooter.apply(this, [tooltipItems]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n }\n each(tooltipItems, (context) => {\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(scoped.labelColor.call(this, context));\n labelPointStyles.push(scoped.labelPointStyle.call(this, context));\n labelTextColors.push(scoped.labelTextColor.call(this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {chart: this.chart, tooltip: this, replay});\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const {xAlign, yAlign} = this;\n const {caretSize, cornerRadius} = options;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n const {x: ptX, y: ptY} = tooltipPoint;\n const {width, height} = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + (caretSize);\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {x1, x2, x3, y1, y2, y3};\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColors = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const {boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.fillStyle = labelColors.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = isObject(labelColors.borderWidth) ? Math.max(...Object.values(labelColors.borderWidth)) : (labelColors.borderWidth || 1);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth - boxPadding);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - boxPadding - 2);\n const borderRadius = toTRBLCorners(labelColors.borderRadius);\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const {body} = this;\n const {bodySpacing, bodyAlign, displayColors, boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right'\n ? bodyAlign === 'center' ? (boxWidth / 2 + boxPadding) : (boxWidth + 2 + boxPadding)\n : 0;\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const {xAlign, yAlign} = this;\n const {x, y} = pt;\n const {width, height} = tooltipSize;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n _willRender() {\n return !!this.opacity;\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const {caretX, caretY, options} = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nTooltip.positioners = positioners;\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({chart, options});\n }\n },\n beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw(chart) {\n const tooltip = chart.tooltip;\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', args) === false) {\n return;\n }\n tooltip.draw(chart.ctx);\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n afterEvent(chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold',\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {\n },\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold',\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts) => opts.bodyFont.size,\n boxWidth: (ctx, opts) => opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart',\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY'],\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: {\n beforeTitle: noop,\n title(tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0,\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n }\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name) => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false,\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: ['interaction']\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nDecimation: plugin_decimation,\nFiller: index,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels) => {\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({index, label: raw});\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\nclass CategoryScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const {index, label} of added) {\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index\n : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = (min === 0 && max === labels.length - 1) ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for (let value = min; value <= max; value++) {\n ticks.push({value});\n }\n return ticks;\n }\n getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\nCategoryScale.id = 'category';\nCategoryScale.defaults = {\n ticks: {\n callback: CategoryScale.prototype.getLabelForValue\n }\n};\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const {min: rmin, max: rmax} = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{value: rmin}, {value: rmax}];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(\n _decimalPlaces(spacing),\n _decimalPlaces(niceMin)\n );\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({value: min});\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for (; j < numSpaces; ++j) {\n ticks.push({value: Math.round((niceMin + j * spacing) * factor) / factor});\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({value: max});\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({value: niceMax});\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, {horizontal, minRotation}) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const {beginAtZero} = this.options;\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = 1;\n if (max >= Number.MAX_SAFE_INTEGER || min <= Number.MIN_SAFE_INTEGER) {\n offset = Math.abs(max * 0.05);\n }\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let {maxTicksLimit, stepSize} = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\nLinearScale.id = 'linear';\nLinearScale.defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n};\n\nfunction isMajor(tickVal) {\n const remain = tickVal / (Math.pow(10, Math.floor(log10(tickVal))));\n return remain === 1;\n}\nfunction generateTicks(generationOptions, dataRange) {\n const endExp = Math.floor(log10(dataRange.max));\n const endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n const ticks = [];\n let tickVal = finiteOrDefault(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n let exp = Math.floor(log10(tickVal));\n let significand = Math.floor(tickVal / Math.pow(10, exp));\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n do {\n ticks.push({value: tickVal, major: isMajor(tickVal)});\n ++significand;\n if (significand === 10) {\n significand = 1;\n ++exp;\n precision = exp >= 0 ? 1 : precision;\n }\n tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n } while (exp < endExp || (exp === endExp && significand < endSignificand));\n const lastTick = finiteOrDefault(generationOptions.max, tickVal);\n ticks.push({value: lastTick, major: isMajor(tickVal)});\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n const exp = (v, m) => Math.pow(10, Math.floor(log10(v)) + m);\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(exp(min, -1));\n setMax(exp(max, +1));\n }\n }\n if (min <= 0) {\n setMin(exp(max, -1));\n }\n if (max <= 0) {\n setMax(exp(min, +1));\n }\n if (this._zero && this.min !== this._suggestedMin && min === exp(this.min, 0)) {\n setMin(exp(min, -1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined\n ? '0'\n : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min\n ? 0\n : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\nLogarithmicScale.id = 'logarithmic';\nLogarithmicScale.defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n};\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\nfunction fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(\n orig.l - limits.l,\n limits.r - orig.r,\n orig.t - limits.t,\n limits.b - orig.b\n );\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const extra = getTickBackdropHeight(opts) / 2;\n const outerDistance = scale.drawingArea;\n const additionalAngle = opts.pointLabels.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i], additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const size = labelSizes[i];\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n items.push({\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= (w / 2);\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= (h / 2);\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabels(scale, labelCount) {\n const {ctx, options: {pointLabels}} = scale;\n for (let i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n const plFont = toFont(optsAtIndex.font);\n const {x, y, textAlign, left, top, right, bottom} = scale._pointLabelItems[i];\n const {backdropColor} = optsAtIndex;\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(optsAtIndex.borderRadius);\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n renderText(\n ctx,\n scale._pointLabels[i],\n x,\n y + (plFont.lineHeight / 2),\n plFont,\n {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n }\n );\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const {ctx} = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for (let i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const {color, lineWidth} = gridLineOpts;\n if ((!circular && !labelCount) || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(gridLineOpts.borderDash);\n ctx.lineDashOffset = gridLineOpts.borderDashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n constructor(cfg) {\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels()\n .map((value, index) => {\n const label = callback(this.options.pointLabels.callback, [value, index], this);\n return label || label === 0 ? label : '';\n })\n .filter((v, i) => this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const {left, top, right, bottom} = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom,\n };\n }\n drawBackground() {\n const {backgroundColor, grid: {circular}} = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const {angleLines, grid} = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index) => {\n if (index !== 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const optsAtIndex = grid.setContext(this.getContext(index - 1));\n drawRadiusLine(this, optsAtIndex, offset, labelCount);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for (i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const {color, lineWidth} = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.ticks.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index) => {\n if (index === 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(\n -width / 2 - padding.left,\n -offset - tickFont.size / 2 - padding.top,\n width + padding.width,\n tickFont.size + padding.height\n );\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\nRadialLinearScale.id = 'radialLinear';\nRadialLinearScale.defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback(label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n};\nRadialLinearScale.defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n};\nRadialLinearScale.descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n};\n\nconst INTERVALS = {\n millisecond: {common: true, size: 1, steps: 1000},\n second: {common: true, size: 1000, steps: 60},\n minute: {common: true, size: 60000, steps: 60},\n hour: {common: true, size: 3600000, steps: 24},\n day: {common: true, size: 86400000, steps: 30},\n week: {common: false, size: 604800000, steps: 4},\n month: {common: true, size: 2.628e9, steps: 12},\n quarter: {common: false, size: 7.884e9, steps: 4},\n year: {common: true, size: 3.154e10}\n};\nconst UNITS = (Object.keys(INTERVALS));\nfunction sorter(a, b) {\n return a - b;\n}\nfunction parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const {parser, round, isoWeekday} = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string'\n ? adapter.parse(value, parser)\n : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true)\n ? adapter.startOf(value, 'isoWeek', isoWeekday)\n : adapter.startOf(value, round);\n }\n return +value;\n}\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\nfunction determineMajorUnit(unit) {\n for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const {lo, hi} = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n constructor(props) {\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {min, max};\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip\n ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min))\n : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined\n : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n afterAutoSkip() {\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map(tick => +tick.value));\n }\n }\n initOffsets(timestamps) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {start, end, factor: 1 / (start + 1 + end)};\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(timeOpts.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort((a, b) => a - b).map(x => +x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n const label = this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n const formatter = options.ticks.callback;\n return formatter ? callback(formatter, [label, index, ticks], this) : label;\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n h: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return (this._cache.data = metas[0].controller.getAllParsedValues(this));\n }\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return (this._cache.data = this.normalize(timestamps));\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(parse(this, labels[i]));\n }\n return (this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps));\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\nTimeScale.id = 'time';\nTimeScale.defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n major: {\n enabled: false\n }\n }\n};\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({lo, hi} = _lookupByKey(table, 'pos', val));\n }\n ({pos: prevSource, time: prevTarget} = table[lo]);\n ({pos: nextSource, time: nextTarget} = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({lo, hi} = _lookupByKey(table, 'time', val));\n }\n ({time: prevSource, pos: prevTarget} = table[lo]);\n ({time: nextSource, pos: nextTarget} = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n constructor(props) {\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const {min, max} = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {time: min, pos: 0},\n {time: max, pos: 1}\n ];\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({time: curr, pos: i / (ilen - 1)});\n }\n }\n return table;\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\nTimeSeriesScale.id = 'timeseries';\nTimeSeriesScale.defaults = TimeScale.defaults;\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales,\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, index as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, elements, layouts, plugins, registerables, registry, scales };\n","/*!\n * Chart.js v3.8.2\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\nconst requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}());\nfunction throttled(fn, thisArg, updateFn) {\n const updateArgs = updateFn || ((args) => Array.prototype.slice.call(args));\n let ticking = false;\n let args = [];\n return function(...rest) {\n args = updateArgs(rest);\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\nfunction debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\nconst _toLeftRightCenter = (align) => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\nconst _alignStartEnd = (align, start, end) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\nconst _textX = (align, left, right, rtl) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\nfunction noop() {}\nconst uid = (function() {\n let id = 0;\n return function() {\n return id++;\n };\n}());\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\nconst isNumberFinite = (value) => (typeof value === 'number' || value instanceof Number) && isFinite(+value);\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : value / dimension;\nconst toDimension = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\nfunction _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n for (let i = 0; i < ilen; ++i) {\n source = sources[i];\n if (!isObject(source)) {\n continue;\n }\n const keys = Object.keys(source);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n return merge(target, source, {merger: _mergerIf});\n}\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\nconst emptyString = '';\nconst dot = '.';\nfunction indexOfDotOrLength(key, start) {\n const idx = key.indexOf(dot, start);\n return idx === -1 ? key.length : idx;\n}\nfunction resolveObjectKey(obj, key) {\n if (key === emptyString) {\n return obj;\n }\n let pos = 0;\n let idx = indexOfDotOrLength(key, pos);\n while (obj && idx > pos) {\n obj = obj[key.slice(pos, idx)];\n pos = idx + 1;\n idx = indexOfDotOrLength(key, pos);\n }\n return obj;\n}\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value) => typeof value !== 'undefined';\nconst isFunction = (value) => typeof value === 'function';\nconst setsEqual = (a, b) => {\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\nfunction _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\nconst PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\nfunction _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b) => a - b).pop();\n return result;\n}\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\nfunction _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < (-0.5 * PI)) {\n angle += TAU;\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\nfunction _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nconst atEdge = (t) => t === 0 || t === 1;\nconst elasticIn = (t, s, p) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\nconst effects = {\n linear: t => t,\n easeInQuad: t => t * t,\n easeOutQuad: t => -t * (t - 2),\n easeInOutQuad: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n easeInCubic: t => t * t * t,\n easeOutCubic: t => (t -= 1) * t * t + 1,\n easeInOutCubic: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: t => t * t * t * t,\n easeOutQuart: t => -((t -= 1) * t * t * t - 1),\n easeInOutQuart: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: t => t * t * t * t * t,\n easeOutQuint: t => (t -= 1) * t * t * t * t + 1,\n easeInOutQuint: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: t => -Math.cos(t * HALF_PI) + 1,\n easeOutSine: t => Math.sin(t * HALF_PI),\n easeInOutSine: t => -0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: t => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: t => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: t => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: t => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: t => Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: t => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: t => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: t => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic(t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack(t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack(t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n easeInBounce: t => 1 - effects.easeOutBounce(1 - t),\n easeOutBounce(t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n easeInOutBounce: t => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n};\n\n/*!\n * @kurkle/color v0.2.1\n * https://github.com/kurkle/color#readme\n * (c) 2022 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\nconst map = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nconst names$1 = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\nfunction index_esm(input) {\n return new Color(input);\n}\n\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n return false;\n}\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\nclass Defaults {\n constructor(_descriptors) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n}\nvar defaults = new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\nfunction _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\nfunction _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n drawPointLegend(ctx, options, x, y, null);\n}\nfunction drawPointLegend(ctx, options, x, y, w) {\n let type, xOffset, yOffset, size, cornerRadius, width;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch (style) {\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return !area || (point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin);\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\nfunction renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n ctx.restore();\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction addRoundedRectPath(ctx, rect) {\n const {x, y, w, h, radius} = rect;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nconst FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\nfunction toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = v => +v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\nfunction toTRBL(value) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\nfunction toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\nfunction resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\nfunction _addGrace(minmax, grace, beginAtZero) {\n const {min, max} = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add) => beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {lo, hi};\n}\nconst _lookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] < value);\nconst _rlookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] >= value);\nfunction _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n delete array._chartjs;\n}\nfunction _arrayUnique(items) {\n const set = new Set();\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n if (set.size === ilen) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction _createResolver(scopes, prefixes = [''], rootScopes = scopes, fallback, getTarget = () => scopes[0]) {\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: rootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope) => _createResolver([scope, ...scopes], prefixes, rootScopes, fallback),\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get(target, prop) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set(target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value;\n delete target._keys;\n return true;\n }\n });\n}\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get(target, prop, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\nfunction _descriptors(proxy, defaults = {scriptable: true, indexable: true}) {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\nconst readKey = (prefix, name) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value) => isObject(value) && prop !== 'adapters' &&\n (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n const value = resolve();\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop];\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, value, target, receiver) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n value = value(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n return value;\n }\n return target;\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (defined(value)) {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (defined(value)) {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n const {iScale} = meta;\n const {key = 'r'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i) => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis) => indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01;\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\nfunction monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\nfunction splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element) => window.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target) => (x > 0 || y > 0) && (!target || !target.shadowRoot);\nfunction getCanvasPosition(e, canvas) {\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const {offsetX, offsetY} = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\nfunction getRelativePosition(evt, chart) {\n if ('native' in evt) {\n return evt;\n }\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(evt, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect();\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = v => Math.round(v * 10) / 10;\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n height = round1(width / 2);\n }\n return {\n width,\n height\n };\n}\nfunction retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n const canvas = chart.canvas;\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\nconst supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n }\n return passiveSupported;\n}());\nfunction readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\nfunction _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x(x) {\n return x;\n },\n setWidth(w) {\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) {\n return x;\n },\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: _isBetween,\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n let {start, end, loop} = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n return result;\n}\nfunction _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n while (start < count && points[start].skip) {\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while (end > start && points[end % count].skip) {\n end--;\n }\n end %= count;\n return {start, end};\n}\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n return result;\n}\nfunction _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [{start, end, loop}], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const {_datasetIndex: datasetIndex, options: {spanGaps}} = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while (points[s % count].skip) {\n s -= dir;\n }\n while (points[e % count].skip) {\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({start: s % count, end: e % count, loop: l, style: st});\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments) {\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { toFont as $, _rlookupByKey as A, _isPointInArea as B, getAngleFromPoint as C, toPadding as D, each as E, getMaximumSize as F, _getParentNode as G, HALF_PI as H, readUsedSize as I, throttled as J, supportsEventListenerOptions as K, _isDomSupported as L, log10 as M, _factorize as N, finiteOrDefault as O, PI as P, callback as Q, _addGrace as R, toDegrees as S, TAU as T, _measureText as U, _int16Range as V, _alignPixel as W, clipArea as X, renderText as Y, unclipArea as Z, _arrayUnique as _, resolve as a, RAD_PER_DEG as a$, _toLeftRightCenter as a0, _alignStartEnd as a1, overrides as a2, merge as a3, _capitalize as a4, descriptors as a5, isFunction as a6, _attachContext as a7, _createResolver as a8, _descriptors as a9, _textX as aA, restoreTextDirection as aB, drawPointLegend as aC, noop as aD, distanceBetweenPoints as aE, _setMinAndMaxByKey as aF, niceNum as aG, almostWhole as aH, almostEquals as aI, _decimalPlaces as aJ, _longestText as aK, _filterBetween as aL, _lookup as aM, isPatternOrGradient as aN, getHoverColor as aO, clone$1 as aP, _merger as aQ, _mergerIf as aR, _deprecated as aS, toFontString as aT, splineCurve as aU, splineCurveMonotone as aV, getStyle as aW, fontString as aX, toLineHeight as aY, PITAU as aZ, INFINITY as a_, mergeIf as aa, uid as ab, debounce as ac, retinaScale as ad, clearCanvas as ae, setsEqual as af, _elementsEqual as ag, _isClickEvent as ah, _isBetween as ai, _readValueToProps as aj, _updateBezierControlPoints as ak, _computeSegments as al, _boundSegments as am, _steppedInterpolation as an, _bezierInterpolation as ao, _pointInLine as ap, _steppedLineTo as aq, _bezierCurveTo as ar, drawPoint as as, addRoundedRectPath as at, toTRBL as au, toTRBLCorners as av, _boundSegment as aw, _normalizeAngle as ax, getRtlAdapter as ay, overrideTextDirection as az, isArray as b, QUARTER_PI as b0, TWO_THIRDS_PI as b1, _angleDiff as b2, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, createContext as h, isObject as i, defined as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, isNumber as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _limitValue as w, _lookupByKey as x, _parseObjectDataRadialScale as y, getRelativePosition as z };\n","/*!\n* chartjs-plugin-annotation v2.1.0\n* https://www.chartjs.org/chartjs-plugin-annotation/index\n * (c) 2022 chartjs-plugin-annotation Contributors\n * Released under the MIT License\n */\nimport { Element, defaults, Animations, Chart } from 'chart.js';\nimport { distanceBetweenPoints, defined, callback, isObject, valueOrDefault, toRadians, toFont, isArray, addRoundedRectPath, toTRBLCorners, isFinite, toPadding, toDegrees, PI, drawPoint, RAD_PER_DEG, clipArea, unclipArea } from 'chart.js/helpers';\n\n/**\n * @typedef { import(\"chart.js\").ChartEvent } ChartEvent\n * @typedef { import('../../types/element').AnnotationElement } AnnotationElement\n */\n\nconst interaction = {\n modes: {\n /**\n * Point mode returns all elements that hit test based on the event position\n * @param {Object} state - the state of the plugin\n * @param {ChartEvent} event - the event we are find things at\n * @return {AnnotationElement[]} - elements that are found\n */\n point(state, event) {\n return filterElements(state, event, {intersect: true});\n },\n\n /**\n * Nearest mode returns the element closest to the event position\n * @param {Object} state - the state of the plugin\n * @param {ChartEvent} event - the event we are find things at\n * @param {Object} options - interaction options to use\n * @return {AnnotationElement[]} - elements that are found (only 1 element)\n */\n nearest(state, event, options) {\n return getNearestItem(state, event, options);\n },\n /**\n * x mode returns the elements that hit-test at the current x coordinate\n * @param {Object} state - the state of the plugin\n * @param {ChartEvent} event - the event we are find things at\n * @param {Object} options - interaction options to use\n * @return {AnnotationElement[]} - elements that are found\n */\n x(state, event, options) {\n return filterElements(state, event, {intersect: options.intersect, axis: 'x'});\n },\n\n /**\n * y mode returns the elements that hit-test at the current y coordinate\n * @param {Object} state - the state of the plugin\n * @param {ChartEvent} event - the event we are find things at\n * @param {Object} options - interaction options to use\n * @return {AnnotationElement[]} - elements that are found\n */\n y(state, event, options) {\n return filterElements(state, event, {intersect: options.intersect, axis: 'y'});\n }\n }\n};\n\n/**\n * Returns all elements that hit test based on the event position\n * @param {Object} state - the state of the plugin\n * @param {ChartEvent} event - the event we are find things at\n * @param {Object} options - interaction options to use\n * @return {AnnotationElement[]} - elements that are found\n */\nfunction getElements(state, event, options) {\n const mode = interaction.modes[options.mode] || interaction.modes.nearest;\n return mode(state, event, options);\n}\n\nfunction inRangeByAxis(element, event, axis) {\n if (axis !== 'x' && axis !== 'y') {\n return element.inRange(event.x, event.y, 'x', true) || element.inRange(event.x, event.y, 'y', true);\n }\n return element.inRange(event.x, event.y, axis, true);\n}\n\nfunction getPointByAxis(event, center, axis) {\n if (axis === 'x') {\n return {x: event.x, y: center.y};\n } else if (axis === 'y') {\n return {x: center.x, y: event.y};\n }\n return center;\n}\n\nfunction filterElements(state, event, options) {\n return state.visibleElements.filter((element) => options.intersect ? element.inRange(event.x, event.y) : inRangeByAxis(element, event, options.axis));\n}\n\nfunction getNearestItem(state, event, options) {\n let minDistance = Number.POSITIVE_INFINITY;\n\n return filterElements(state, event, options)\n .reduce((nearestItems, element) => {\n const center = element.getCenterPoint();\n const evenPoint = getPointByAxis(event, center, options.axis);\n const distance = distanceBetweenPoints(event, evenPoint);\n if (distance < minDistance) {\n nearestItems = [element];\n minDistance = distance;\n } else if (distance === minDistance) {\n // Can have multiple items at the same distance in which case we sort by size\n nearestItems.push(element);\n }\n\n return nearestItems;\n }, [])\n .sort((a, b) => a._index - b._index)\n .slice(0, 1); // return only the top item;\n}\n\nconst moveHooks = ['enter', 'leave'];\n\n/**\n * @typedef { import(\"chart.js\").Chart } Chart\n * @typedef { import('../../types/options').AnnotationPluginOptions } AnnotationPluginOptions\n */\n\nconst hooks = moveHooks.concat('click');\n\n/**\n * @param {Chart} chart\n * @param {Object} state\n * @param {AnnotationPluginOptions} options\n */\nfunction updateListeners(chart, state, options) {\n state.listened = false;\n state.moveListened = false;\n state._getElements = getElements; // for testing\n\n hooks.forEach(hook => {\n if (typeof options[hook] === 'function') {\n state.listened = true;\n state.listeners[hook] = options[hook];\n } else if (defined(state.listeners[hook])) {\n delete state.listeners[hook];\n }\n });\n moveHooks.forEach(hook => {\n if (typeof options[hook] === 'function') {\n state.moveListened = true;\n }\n });\n\n if (!state.listened || !state.moveListened) {\n state.annotations.forEach(scope => {\n if (!state.listened && typeof scope.click === 'function') {\n state.listened = true;\n }\n if (!state.moveListened) {\n moveHooks.forEach(hook => {\n if (typeof scope[hook] === 'function') {\n state.listened = true;\n state.moveListened = true;\n }\n });\n }\n });\n }\n}\n\n/**\n * @param {Object} state\n * @param {ChartEvent} event\n * @param {AnnotationPluginOptions} options\n * @return {boolean|undefined}\n */\nfunction handleEvent(state, event, options) {\n if (state.listened) {\n switch (event.type) {\n case 'mousemove':\n case 'mouseout':\n return handleMoveEvents(state, event, options);\n case 'click':\n return handleClickEvents(state, event, options);\n }\n }\n}\n\nfunction handleMoveEvents(state, event, options) {\n if (!state.moveListened) {\n return;\n }\n\n let elements;\n\n if (event.type === 'mousemove') {\n elements = getElements(state, event, options.interaction);\n } else {\n elements = [];\n }\n\n const previous = state.hovered;\n state.hovered = elements;\n\n const context = {state, event};\n let changed = dispatchMoveEvents(context, 'leave', previous, elements);\n return dispatchMoveEvents(context, 'enter', elements, previous) || changed;\n}\n\nfunction dispatchMoveEvents({state, event}, hook, elements, checkElements) {\n let changed;\n for (const element of elements) {\n if (checkElements.indexOf(element) < 0) {\n changed = dispatchEvent(element.options[hook] || state.listeners[hook], element, event) || changed;\n }\n }\n return changed;\n}\n\nfunction handleClickEvents(state, event, options) {\n const listeners = state.listeners;\n const elements = getElements(state, event, options.interaction);\n let changed;\n for (const element of elements) {\n changed = dispatchEvent(element.options.click || listeners.click, element, event) || changed;\n }\n return changed;\n}\n\nfunction dispatchEvent(handler, element, event) {\n return callback(handler, [element.$context, event]) === true;\n}\n\nconst isOlderPart = (act, req) => req > act || (act.length > req.length && act.slice(0, req.length) === req);\n\n/**\n * @typedef { import('chart.js').Point } Point\n * @typedef { import('chart.js').InteractionAxis } InteractionAxis\n * @typedef { import('../../types/element').AnnotationElement } AnnotationElement\n */\n\nconst EPSILON = 0.001;\nconst clamp = (x, from, to) => Math.min(to, Math.max(from, x));\n\n/**\n * @param {Object} obj\n * @param {number} from\n * @param {number} to\n * @returns {Object}\n */\nfunction clampAll(obj, from, to) {\n for (const key of Object.keys(obj)) {\n obj[key] = clamp(obj[key], from, to);\n }\n return obj;\n}\n\n/**\n * @param {Point} point\n * @param {Point} center\n * @param {number} radius\n * @param {number} borderWidth\n * @returns {boolean}\n */\nfunction inPointRange(point, center, radius, borderWidth) {\n if (!point || !center || radius <= 0) {\n return false;\n }\n const hBorderWidth = borderWidth / 2;\n return (Math.pow(point.x - center.x, 2) + Math.pow(point.y - center.y, 2)) <= Math.pow(radius + hBorderWidth, 2);\n}\n\n/**\n * @param {Point} point\n * @param {{x: number, y: number, x2: number, y2: number}} rect\n * @param {InteractionAxis} axis\n * @param {number} borderWidth\n * @returns {boolean}\n */\nfunction inBoxRange(point, {x, y, x2, y2}, axis, borderWidth) {\n const hBorderWidth = borderWidth / 2;\n const inRangeX = point.x >= x - hBorderWidth - EPSILON && point.x <= x2 + hBorderWidth + EPSILON;\n const inRangeY = point.y >= y - hBorderWidth - EPSILON && point.y <= y2 + hBorderWidth + EPSILON;\n if (axis === 'x') {\n return inRangeX;\n } else if (axis === 'y') {\n return inRangeY;\n }\n return inRangeX && inRangeY;\n}\n\n/**\n * @param {AnnotationElement} element\n * @param {boolean} useFinalPosition\n * @returns {Point}\n */\nfunction getElementCenterPoint(element, useFinalPosition) {\n const {centerX, centerY} = element.getProps(['centerX', 'centerY'], useFinalPosition);\n return {x: centerX, y: centerY};\n}\n\n/**\n * @param {string} pkg\n * @param {string} min\n * @param {string} ver\n * @param {boolean} [strict=true]\n * @returns {boolean}\n */\nfunction requireVersion(pkg, min, ver, strict = true) {\n const parts = ver.split('.');\n let i = 0;\n for (const req of min.split('.')) {\n const act = parts[i++];\n if (parseInt(req, 10) < parseInt(act, 10)) {\n break;\n }\n if (isOlderPart(act, req)) {\n if (strict) {\n throw new Error(`${pkg} v${ver} is not supported. v${min} or newer is required.`);\n } else {\n return false;\n }\n }\n }\n return true;\n}\n\nconst isPercentString = (s) => typeof s === 'string' && s.endsWith('%');\nconst toPercent = (s) => clamp(parseFloat(s) / 100, 0, 1);\n\n/**\n * @typedef { import('../../types/options').AnnotationPointCoordinates } AnnotationPointCoordinates\n * @typedef { import('../../types/label').CoreLabelOptions } CoreLabelOptions\n * @typedef { import('../../types/label').LabelPositionObject } LabelPositionObject\n */\n\n/**\n * @param {number} size\n * @param {number|string} position\n * @param {number} to\n * @returns {number}\n */\nfunction getRelativePosition(size, position) {\n if (position === 'start') {\n return 0;\n }\n if (position === 'end') {\n return size;\n }\n if (isPercentString(position)) {\n return toPercent(position) * size;\n }\n return size / 2;\n}\n\n/**\n * @param {number} size\n * @param {number|string} value\n * @param {number} to\n * @returns {number}\n */\nfunction getSize(size, value) {\n if (typeof value === 'number') {\n return value;\n } else if (isPercentString(value)) {\n return toPercent(value) * size;\n }\n return size;\n}\n\n/**\n * @param {{x: number, width: number}} size\n * @param {CoreLabelOptions} options\n * @returns {number}\n */\nfunction calculateTextAlignment(size, options) {\n const {x, width} = size;\n const textAlign = options.textAlign;\n if (textAlign === 'center') {\n return x + width / 2;\n } else if (textAlign === 'end' || textAlign === 'right') {\n return x + width;\n }\n return x;\n}\n\n/**\n * @param {LabelPositionObject|string} value\n * @returns {LabelPositionObject}\n */\nfunction toPosition(value) {\n if (isObject(value)) {\n return {\n x: valueOrDefault(value.x, 'center'),\n y: valueOrDefault(value.y, 'center'),\n };\n }\n value = valueOrDefault(value, 'center');\n return {\n x: value,\n y: value\n };\n}\n\n/**\n * @param {AnnotationPointCoordinates} options\n * @returns {boolean}\n */\nfunction isBoundToPoint(options) {\n return options && (defined(options.xValue) || defined(options.yValue));\n}\n\nconst widthCache = new Map();\n\n/**\n * @typedef { import('chart.js').Point } Point\n * @typedef { import('../../types/label').CoreLabelOptions } CoreLabelOptions\n */\n\n/**\n * Determine if content is an image or a canvas.\n * @param {*} content\n * @returns boolean|undefined\n * @todo move this function to chart.js helpers\n */\nfunction isImageOrCanvas(content) {\n if (content && typeof content === 'object') {\n const type = content.toString();\n return (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]');\n }\n}\n\n/**\n * Set the translation on the canvas if the rotation must be applied.\n * @param {CanvasRenderingContext2D} ctx - chart canvas context\n * @param {Point} point - the point of translation\n * @param {number} rotation - rotation (in degrees) to apply\n */\nfunction translate(ctx, {x, y}, rotation) {\n if (rotation) {\n ctx.translate(x, y);\n ctx.rotate(toRadians(rotation));\n ctx.translate(-x, -y);\n }\n}\n\n/**\n * @param {CanvasRenderingContext2D} ctx\n * @param {Object} options\n * @returns {boolean|undefined}\n */\nfunction setBorderStyle(ctx, options) {\n if (options && options.borderWidth) {\n ctx.lineCap = options.borderCapStyle;\n ctx.setLineDash(options.borderDash);\n ctx.lineDashOffset = options.borderDashOffset;\n ctx.lineJoin = options.borderJoinStyle;\n ctx.lineWidth = options.borderWidth;\n ctx.strokeStyle = options.borderColor;\n return true;\n }\n}\n\n/**\n * @param {CanvasRenderingContext2D} ctx\n * @param {Object} options\n */\nfunction setShadowStyle(ctx, options) {\n ctx.shadowColor = options.backgroundShadowColor;\n ctx.shadowBlur = options.shadowBlur;\n ctx.shadowOffsetX = options.shadowOffsetX;\n ctx.shadowOffsetY = options.shadowOffsetY;\n}\n\n/**\n * @param {CanvasRenderingContext2D} ctx\n * @param {CoreLabelOptions} options\n * @returns {{width: number, height: number}}\n */\nfunction measureLabelSize(ctx, options) {\n const content = options.content;\n if (isImageOrCanvas(content)) {\n return {\n width: getSize(content.width, options.width),\n height: getSize(content.height, options.height)\n };\n }\n const font = toFont(options.font);\n const strokeWidth = options.textStrokeWidth;\n const lines = isArray(content) ? content : [content];\n const mapKey = lines.join() + font.string + strokeWidth + (ctx._measureText ? '-spriting' : '');\n if (!widthCache.has(mapKey)) {\n ctx.save();\n ctx.font = font.string;\n const count = lines.length;\n let width = 0;\n for (let i = 0; i < count; i++) {\n const text = lines[i];\n width = Math.max(width, ctx.measureText(text).width + strokeWidth);\n }\n ctx.restore();\n const height = count * font.lineHeight + strokeWidth;\n widthCache.set(mapKey, {width, height});\n }\n return widthCache.get(mapKey);\n}\n\n/**\n * @param {CanvasRenderingContext2D} ctx\n * @param {{x: number, y: number, width: number, height: number}} rect\n * @param {Object} options\n */\nfunction drawBox(ctx, rect, options) {\n const {x, y, width, height} = rect;\n ctx.save();\n setShadowStyle(ctx, options);\n const stroke = setBorderStyle(ctx, options);\n ctx.fillStyle = options.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x, y, w: width, h: height,\n radius: clampAll(toTRBLCorners(options.borderRadius), 0, Math.min(width, height) / 2)\n });\n ctx.closePath();\n ctx.fill();\n if (stroke) {\n ctx.shadowColor = options.borderShadowColor;\n ctx.stroke();\n }\n ctx.restore();\n}\n\n/**\n * @param {CanvasRenderingContext2D} ctx\n * @param {{x: number, y: number, width: number, height: number}} rect\n * @param {CoreLabelOptions} options\n */\nfunction drawLabel(ctx, rect, options) {\n const content = options.content;\n if (isImageOrCanvas(content)) {\n ctx.drawImage(content, rect.x, rect.y, rect.width, rect.height);\n return;\n }\n const labels = isArray(content) ? content : [content];\n const font = toFont(options.font);\n const lh = font.lineHeight;\n const x = calculateTextAlignment(rect, options);\n const y = rect.y + (lh / 2) + options.textStrokeWidth / 2;\n ctx.save();\n ctx.font = font.string;\n ctx.textBaseline = 'middle';\n ctx.textAlign = options.textAlign;\n if (setTextStrokeStyle(ctx, options)) {\n labels.forEach((l, i) => ctx.strokeText(l, x, y + (i * lh)));\n }\n ctx.fillStyle = options.color;\n labels.forEach((l, i) => ctx.fillText(l, x, y + (i * lh)));\n ctx.restore();\n}\n\nfunction setTextStrokeStyle(ctx, options) {\n if (options.textStrokeWidth > 0) {\n // https://stackoverflow.com/questions/13627111/drawing-text-with-an-outer-stroke-with-html5s-canvas\n ctx.lineJoin = 'round';\n ctx.miterLimit = 2;\n ctx.lineWidth = options.textStrokeWidth;\n ctx.strokeStyle = options.textStrokeColor;\n return true;\n }\n}\n\n/**\n * @typedef { import(\"chart.js\").Chart } Chart\n * @typedef { import(\"chart.js\").Scale } Scale\n * @typedef { import(\"chart.js\").Point } Point\n * @typedef { import('../../types/element').AnnotationBoxModel } AnnotationBoxModel\n * @typedef { import('../../types/options').CoreAnnotationOptions } CoreAnnotationOptions\n * @typedef { import('../../types/options').PointAnnotationOptions } PointAnnotationOptions\n * @typedef { import('../../types/options').PolygonAnnotationOptions } PolygonAnnotationOptions\n */\n\n/**\n * @param {Scale} scale\n * @param {number|string} value\n * @param {number} fallback\n * @returns {number}\n */\nfunction scaleValue(scale, value, fallback) {\n value = typeof value === 'number' ? value : scale.parse(value);\n return isFinite(value) ? scale.getPixelForValue(value) : fallback;\n}\n\n/**\n * Search the scale defined in chartjs by the axis related to the annotation options key.\n * @param {{ [key: string]: Scale }} scales\n * @param {CoreAnnotationOptions} options\n * @param {string} key\n * @returns {string}\n */\nfunction retrieveScaleID(scales, options, key) {\n const scaleID = options[key];\n if (scaleID || key === 'scaleID') {\n return scaleID;\n }\n const axis = key.charAt(0);\n const axes = Object.values(scales).filter((scale) => scale.axis && scale.axis === axis);\n if (axes.length) {\n return axes[0].id;\n }\n return axis;\n}\n\n/**\n * @param {Scale} scale\n * @param {{min: number, max: number, start: number, end: number}} options\n * @returns {{start: number, end: number}|undefined}\n */\nfunction getDimensionByScale(scale, options) {\n if (scale) {\n const reverse = scale.options.reverse;\n const start = scaleValue(scale, options.min, reverse ? options.end : options.start);\n const end = scaleValue(scale, options.max, reverse ? options.start : options.end);\n return {\n start,\n end\n };\n }\n}\n\n/**\n * @param {Chart} chart\n * @param {CoreAnnotationOptions} options\n * @returns {Point}\n */\nfunction getChartPoint(chart, options) {\n const {chartArea, scales} = chart;\n const xScale = scales[retrieveScaleID(scales, options, 'xScaleID')];\n const yScale = scales[retrieveScaleID(scales, options, 'yScaleID')];\n let x = chartArea.width / 2;\n let y = chartArea.height / 2;\n\n if (xScale) {\n x = scaleValue(xScale, options.xValue, xScale.left + xScale.width / 2);\n }\n\n if (yScale) {\n y = scaleValue(yScale, options.yValue, yScale.top + yScale.height / 2);\n }\n return {x, y};\n}\n\n/**\n * @param {Chart} chart\n * @param {CoreAnnotationOptions} options\n * @returns {AnnotationBoxModel}\n */\nfunction resolveBoxProperties(chart, options) {\n const scales = chart.scales;\n const xScale = scales[retrieveScaleID(scales, options, 'xScaleID')];\n const yScale = scales[retrieveScaleID(scales, options, 'yScaleID')];\n\n if (!xScale && !yScale) {\n return {};\n }\n\n let {left: x, right: x2} = xScale || chart.chartArea;\n let {top: y, bottom: y2} = yScale || chart.chartArea;\n const xDim = getChartDimensionByScale(xScale, {min: options.xMin, max: options.xMax, start: x, end: x2});\n x = xDim.start;\n x2 = xDim.end;\n const yDim = getChartDimensionByScale(yScale, {min: options.yMin, max: options.yMax, start: y2, end: y});\n y = yDim.start;\n y2 = yDim.end;\n\n return {\n x,\n y,\n x2,\n y2,\n width: x2 - x,\n height: y2 - y,\n centerX: x + (x2 - x) / 2,\n centerY: y + (y2 - y) / 2\n };\n}\n\n/**\n * @param {Chart} chart\n * @param {PointAnnotationOptions|PolygonAnnotationOptions} options\n * @returns {AnnotationBoxModel}\n */\nfunction resolvePointProperties(chart, options) {\n if (!isBoundToPoint(options)) {\n const box = resolveBoxProperties(chart, options);\n let radius = options.radius;\n if (!radius || isNaN(radius)) {\n radius = Math.min(box.width, box.height) / 2;\n options.radius = radius;\n }\n const size = radius * 2;\n return {\n x: box.x + options.xAdjust,\n y: box.y + options.yAdjust,\n x2: box.x + size + options.xAdjust,\n y2: box.y + size + options.yAdjust,\n centerX: box.centerX + options.xAdjust,\n centerY: box.centerY + options.yAdjust,\n width: size,\n height: size\n };\n }\n return getChartCircle(chart, options);\n}\n\n/**\n * @param {Chart} chart\n * @param {CoreAnnotationOptions} options\n * @returns {AnnotationBoxModel}\n */\nfunction resolveBoxAndLabelProperties(chart, options) {\n const properties = resolveBoxProperties(chart, options);\n const {x, y} = properties;\n properties.elements = [{\n type: 'label',\n optionScope: 'label',\n properties: resolveLabelElementProperties$1(chart, properties, options)\n }];\n properties.initProperties = {x, y};\n return properties;\n}\n\nfunction getChartCircle(chart, options) {\n const point = getChartPoint(chart, options);\n const size = options.radius * 2;\n return {\n x: point.x - options.radius + options.xAdjust,\n y: point.y - options.radius + options.yAdjust,\n x2: point.x + options.radius + options.xAdjust,\n y2: point.y + options.radius + options.yAdjust,\n centerX: point.x + options.xAdjust,\n centerY: point.y + options.yAdjust,\n width: size,\n height: size\n };\n}\n\nfunction getChartDimensionByScale(scale, options) {\n const result = getDimensionByScale(scale, options) || options;\n return {\n start: Math.min(result.start, result.end),\n end: Math.max(result.start, result.end)\n };\n}\n\nfunction calculateX({properties, options}, labelSize, position, padding) {\n const {x: start, x2: end, width: size} = properties;\n return calculatePosition$1({start, end, size, borderWidth: options.borderWidth}, {\n position: position.x,\n padding: {start: padding.left, end: padding.right},\n adjust: options.label.xAdjust,\n size: labelSize.width\n });\n}\n\nfunction calculateY({properties, options}, labelSize, position, padding) {\n const {y: start, y2: end, height: size} = properties;\n return calculatePosition$1({start, end, size, borderWidth: options.borderWidth}, {\n position: position.y,\n padding: {start: padding.top, end: padding.bottom},\n adjust: options.label.yAdjust,\n size: labelSize.height\n });\n}\n\nfunction calculatePosition$1(boxOpts, labelOpts) {\n const {start, end, borderWidth} = boxOpts;\n const {position, padding: {start: padStart, end: padEnd}, adjust} = labelOpts;\n const availableSize = end - borderWidth - start - padStart - padEnd - labelOpts.size;\n return start + borderWidth / 2 + adjust + getRelativePosition(availableSize, position);\n}\n\nfunction resolveLabelElementProperties$1(chart, properties, options) {\n const label = options.label;\n label.backgroundColor = 'transparent';\n label.callout.display = false;\n const position = toPosition(label.position);\n const padding = toPadding(label.padding);\n const labelSize = measureLabelSize(chart.ctx, label);\n const x = calculateX({properties, options}, labelSize, position, padding);\n const y = calculateY({properties, options}, labelSize, position, padding);\n const width = labelSize.width + padding.width;\n const height = labelSize.height + padding.height;\n return {\n x,\n y,\n x2: x + width,\n y2: y + height,\n width,\n height,\n centerX: x + width / 2,\n centerY: y + height / 2,\n rotation: label.rotation\n };\n}\n\n/**\n * @typedef {import('chart.js').Point} Point\n */\n\n/**\n * Rotate a `point` relative to `center` point by `angle`\n * @param {Point} point - the point to rotate\n * @param {Point} center - center point for rotation\n * @param {number} angle - angle for rotation, in radians\n * @returns {Point} rotated point\n */\nfunction rotated(point, center, angle) {\n const cos = Math.cos(angle);\n const sin = Math.sin(angle);\n const cx = center.x;\n const cy = center.y;\n\n return {\n x: cx + cos * (point.x - cx) - sin * (point.y - cy),\n y: cy + sin * (point.x - cx) + cos * (point.y - cy)\n };\n}\n\n/**\n * @typedef { import(\"chart.js\").Chart } Chart\n * @typedef { import(\"chart.js\").Scale } Scale\n * @typedef { import('../../types/options').CoreAnnotationOptions } CoreAnnotationOptions\n */\n\n/**\n * @param {Chart} chart\n * @param {Scale} scale\n * @param {CoreAnnotationOptions[]} annotations\n */\nfunction adjustScaleRange(chart, scale, annotations) {\n const range = getScaleLimits(chart.scales, scale, annotations);\n let changed = changeScaleLimit(scale, range, 'min', 'suggestedMin');\n changed = changeScaleLimit(scale, range, 'max', 'suggestedMax') || changed;\n if (changed && typeof scale.handleTickRangeOptions === 'function') {\n scale.handleTickRangeOptions();\n }\n}\n\n/**\n * @param {CoreAnnotationOptions[]} annotations\n * @param {{ [key: string]: Scale }} scales\n */\nfunction verifyScaleOptions(annotations, scales) {\n for (const annotation of annotations) {\n verifyScaleIDs(annotation, scales);\n }\n}\n\nfunction changeScaleLimit(scale, range, limit, suggestedLimit) {\n if (isFinite(range[limit]) && !scaleLimitDefined(scale.options, limit, suggestedLimit)) {\n const changed = scale[limit] !== range[limit];\n scale[limit] = range[limit];\n return changed;\n }\n}\n\nfunction scaleLimitDefined(scaleOptions, limit, suggestedLimit) {\n return defined(scaleOptions[limit]) || defined(scaleOptions[suggestedLimit]);\n}\n\nfunction verifyScaleIDs(annotation, scales) {\n for (const key of ['scaleID', 'xScaleID', 'yScaleID']) {\n const scaleID = retrieveScaleID(scales, annotation, key);\n if (scaleID && !scales[scaleID] && verifyProperties(annotation, key)) {\n console.warn(`No scale found with id '${scaleID}' for annotation '${annotation.id}'`);\n }\n }\n}\n\nfunction verifyProperties(annotation, key) {\n if (key === 'scaleID') {\n return true;\n }\n const axis = key.charAt(0);\n for (const prop of ['Min', 'Max', 'Value']) {\n if (defined(annotation[axis + prop])) {\n return true;\n }\n }\n return false;\n}\n\nfunction getScaleLimits(scales, scale, annotations) {\n const axis = scale.axis;\n const scaleID = scale.id;\n const scaleIDOption = axis + 'ScaleID';\n const limits = {\n min: valueOrDefault(scale.min, Number.NEGATIVE_INFINITY),\n max: valueOrDefault(scale.max, Number.POSITIVE_INFINITY)\n };\n for (const annotation of annotations) {\n if (annotation.scaleID === scaleID) {\n updateLimits(annotation, scale, ['value', 'endValue'], limits);\n } else if (retrieveScaleID(scales, annotation, scaleIDOption) === scaleID) {\n updateLimits(annotation, scale, [axis + 'Min', axis + 'Max', axis + 'Value'], limits);\n }\n }\n return limits;\n}\n\nfunction updateLimits(annotation, scale, props, limits) {\n for (const prop of props) {\n const raw = annotation[prop];\n if (defined(raw)) {\n const value = scale.parse(raw);\n limits.min = Math.min(limits.min, value);\n limits.max = Math.max(limits.max, value);\n }\n }\n}\n\nclass BoxAnnotation extends Element {\n\n inRange(mouseX, mouseY, axis, useFinalPosition) {\n const {x, y} = rotated({x: mouseX, y: mouseY}, this.getCenterPoint(useFinalPosition), toRadians(-this.options.rotation));\n return inBoxRange({x, y}, this.getProps(['x', 'y', 'x2', 'y2'], useFinalPosition), axis, this.options.borderWidth);\n }\n\n getCenterPoint(useFinalPosition) {\n return getElementCenterPoint(this, useFinalPosition);\n }\n\n draw(ctx) {\n ctx.save();\n translate(ctx, this.getCenterPoint(), this.options.rotation);\n drawBox(ctx, this, this.options);\n ctx.restore();\n }\n\n get label() {\n return this.elements && this.elements[0];\n }\n\n resolveElementProperties(chart, options) {\n return resolveBoxAndLabelProperties(chart, options);\n }\n}\n\nBoxAnnotation.id = 'boxAnnotation';\n\nBoxAnnotation.defaults = {\n adjustScaleRange: true,\n backgroundShadowColor: 'transparent',\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderRadius: 0,\n borderShadowColor: 'transparent',\n borderWidth: 1,\n display: true,\n label: {\n backgroundColor: 'transparent',\n borderWidth: 0,\n callout: {\n display: false\n },\n color: 'black',\n content: null,\n display: false,\n drawTime: undefined,\n font: {\n family: undefined,\n lineHeight: undefined,\n size: undefined,\n style: undefined,\n weight: 'bold'\n },\n height: undefined,\n padding: 6,\n position: 'center',\n rotation: undefined,\n textAlign: 'start',\n textStrokeColor: undefined,\n textStrokeWidth: 0,\n width: undefined,\n xAdjust: 0,\n yAdjust: 0,\n z: undefined\n },\n rotation: 0,\n shadowBlur: 0,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n xMax: undefined,\n xMin: undefined,\n xScaleID: undefined,\n yMax: undefined,\n yMin: undefined,\n yScaleID: undefined,\n z: 0\n};\n\nBoxAnnotation.defaultRoutes = {\n borderColor: 'color',\n backgroundColor: 'color'\n};\n\nBoxAnnotation.descriptors = {\n label: {\n _fallback: true\n }\n};\n\nconst positions = ['left', 'bottom', 'top', 'right'];\n\nclass LabelAnnotation extends Element {\n\n inRange(mouseX, mouseY, axis, useFinalPosition) {\n const {x, y} = rotated({x: mouseX, y: mouseY}, this.getCenterPoint(useFinalPosition), toRadians(-this.rotation));\n return inBoxRange({x, y}, this.getProps(['x', 'y', 'x2', 'y2'], useFinalPosition), axis, this.options.borderWidth);\n }\n\n getCenterPoint(useFinalPosition) {\n return getElementCenterPoint(this, useFinalPosition);\n }\n\n draw(ctx) {\n const options = this.options;\n const visible = !defined(this._visible) || this._visible;\n if (!options.display || !options.content || !visible) {\n return;\n }\n ctx.save();\n translate(ctx, this.getCenterPoint(), this.rotation);\n drawCallout(ctx, this);\n drawBox(ctx, this, options);\n drawLabel(ctx, getLabelSize(this), options);\n ctx.restore();\n }\n\n resolveElementProperties(chart, options) {\n let point;\n if (!isBoundToPoint(options)) {\n const {centerX, centerY} = resolveBoxProperties(chart, options);\n point = {x: centerX, y: centerY};\n } else {\n point = getChartPoint(chart, options);\n }\n const padding = toPadding(options.padding);\n const labelSize = measureLabelSize(chart.ctx, options);\n const boxSize = measureRect(point, labelSize, options, padding);\n return {\n pointX: point.x,\n pointY: point.y,\n ...boxSize,\n rotation: options.rotation\n };\n }\n}\n\nLabelAnnotation.id = 'labelAnnotation';\n\nLabelAnnotation.defaults = {\n adjustScaleRange: true,\n backgroundColor: 'transparent',\n backgroundShadowColor: 'transparent',\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderRadius: 0,\n borderShadowColor: 'transparent',\n borderWidth: 0,\n callout: {\n borderCapStyle: 'butt',\n borderColor: undefined,\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 1,\n display: false,\n margin: 5,\n position: 'auto',\n side: 5,\n start: '50%',\n },\n color: 'black',\n content: null,\n display: true,\n font: {\n family: undefined,\n lineHeight: undefined,\n size: undefined,\n style: undefined,\n weight: undefined\n },\n height: undefined,\n padding: 6,\n position: 'center',\n rotation: 0,\n shadowBlur: 0,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n textAlign: 'center',\n textStrokeColor: undefined,\n textStrokeWidth: 0,\n width: undefined,\n xAdjust: 0,\n xMax: undefined,\n xMin: undefined,\n xScaleID: undefined,\n xValue: undefined,\n yAdjust: 0,\n yMax: undefined,\n yMin: undefined,\n yScaleID: undefined,\n yValue: undefined,\n z: 0\n};\n\nLabelAnnotation.defaultRoutes = {\n borderColor: 'color'\n};\n\nfunction measureRect(point, size, options, padding) {\n const width = size.width + padding.width + options.borderWidth;\n const height = size.height + padding.height + options.borderWidth;\n const position = toPosition(options.position);\n const x = calculatePosition(point.x, width, options.xAdjust, position.x);\n const y = calculatePosition(point.y, height, options.yAdjust, position.y);\n\n return {\n x,\n y,\n x2: x + width,\n y2: y + height,\n width,\n height,\n centerX: x + width / 2,\n centerY: y + height / 2\n };\n}\n\nfunction calculatePosition(start, size, adjust = 0, position) {\n return start - getRelativePosition(size, position) + adjust;\n}\n\nfunction drawCallout(ctx, element) {\n const {pointX, pointY, options} = element;\n const callout = options.callout;\n const calloutPosition = callout && callout.display && resolveCalloutPosition(element, callout);\n if (!calloutPosition || isPointInRange(element, callout, calloutPosition)) {\n return;\n }\n\n ctx.save();\n ctx.beginPath();\n const stroke = setBorderStyle(ctx, callout);\n if (!stroke) {\n return ctx.restore();\n }\n const {separatorStart, separatorEnd} = getCalloutSeparatorCoord(element, calloutPosition);\n const {sideStart, sideEnd} = getCalloutSideCoord(element, calloutPosition, separatorStart);\n if (callout.margin > 0 || options.borderWidth === 0) {\n ctx.moveTo(separatorStart.x, separatorStart.y);\n ctx.lineTo(separatorEnd.x, separatorEnd.y);\n }\n ctx.moveTo(sideStart.x, sideStart.y);\n ctx.lineTo(sideEnd.x, sideEnd.y);\n const rotatedPoint = rotated({x: pointX, y: pointY}, element.getCenterPoint(), toRadians(-element.rotation));\n ctx.lineTo(rotatedPoint.x, rotatedPoint.y);\n ctx.stroke();\n ctx.restore();\n}\n\nfunction getCalloutSeparatorCoord(element, position) {\n const {x, y, x2, y2} = element;\n const adjust = getCalloutSeparatorAdjust(element, position);\n let separatorStart, separatorEnd;\n if (position === 'left' || position === 'right') {\n separatorStart = {x: x + adjust, y};\n separatorEnd = {x: separatorStart.x, y: y2};\n } else {\n // position 'top' or 'bottom'\n separatorStart = {x, y: y + adjust};\n separatorEnd = {x: x2, y: separatorStart.y};\n }\n return {separatorStart, separatorEnd};\n}\n\nfunction getCalloutSeparatorAdjust(element, position) {\n const {width, height, options} = element;\n const adjust = options.callout.margin + options.borderWidth / 2;\n if (position === 'right') {\n return width + adjust;\n } else if (position === 'bottom') {\n return height + adjust;\n }\n return -adjust;\n}\n\nfunction getCalloutSideCoord(element, position, separatorStart) {\n const {y, width, height, options} = element;\n const start = options.callout.start;\n const side = getCalloutSideAdjust(position, options.callout);\n let sideStart, sideEnd;\n if (position === 'left' || position === 'right') {\n sideStart = {x: separatorStart.x, y: y + getSize(height, start)};\n sideEnd = {x: sideStart.x + side, y: sideStart.y};\n } else {\n // position 'top' or 'bottom'\n sideStart = {x: separatorStart.x + getSize(width, start), y: separatorStart.y};\n sideEnd = {x: sideStart.x, y: sideStart.y + side};\n }\n return {sideStart, sideEnd};\n}\n\nfunction getCalloutSideAdjust(position, options) {\n const side = options.side;\n if (position === 'left' || position === 'top') {\n return -side;\n }\n return side;\n}\n\nfunction resolveCalloutPosition(element, options) {\n const position = options.position;\n if (positions.includes(position)) {\n return position;\n }\n return resolveCalloutAutoPosition(element, options);\n}\n\nfunction resolveCalloutAutoPosition(element, options) {\n const {x, y, x2, y2, width, height, pointX, pointY, centerX, centerY, rotation} = element;\n const center = {x: centerX, y: centerY};\n const start = options.start;\n const xAdjust = getSize(width, start);\n const yAdjust = getSize(height, start);\n const xPoints = [x, x + xAdjust, x + xAdjust, x2];\n const yPoints = [y + yAdjust, y2, y, y2];\n const result = [];\n for (let index = 0; index < 4; index++) {\n const rotatedPoint = rotated({x: xPoints[index], y: yPoints[index]}, center, toRadians(rotation));\n result.push({\n position: positions[index],\n distance: distanceBetweenPoints(rotatedPoint, {x: pointX, y: pointY})\n });\n }\n return result.sort((a, b) => a.distance - b.distance)[0].position;\n}\n\nfunction getLabelSize({x, y, width, height, options}) {\n const hBorderWidth = options.borderWidth / 2;\n const padding = toPadding(options.padding);\n return {\n x: x + padding.left + hBorderWidth,\n y: y + padding.top + hBorderWidth,\n width: width - padding.left - padding.right - options.borderWidth,\n height: height - padding.top - padding.bottom - options.borderWidth\n };\n}\n\nfunction isPointInRange(element, callout, position) {\n const {pointX, pointY} = element;\n const margin = callout.margin;\n let x = pointX;\n let y = pointY;\n if (position === 'left') {\n x += margin;\n } else if (position === 'right') {\n x -= margin;\n } else if (position === 'top') {\n y += margin;\n } else if (position === 'bottom') {\n y -= margin;\n }\n return element.inRange(x, y);\n}\n\nconst pointInLine = (p1, p2, t) => ({x: p1.x + t * (p2.x - p1.x), y: p1.y + t * (p2.y - p1.y)});\nconst interpolateX = (y, p1, p2) => pointInLine(p1, p2, Math.abs((y - p1.y) / (p2.y - p1.y))).x;\nconst interpolateY = (x, p1, p2) => pointInLine(p1, p2, Math.abs((x - p1.x) / (p2.x - p1.x))).y;\nconst sqr = v => v * v;\nconst rangeLimit = (mouseX, mouseY, {x, y, x2, y2}, axis) => axis === 'y' ? {start: Math.min(y, y2), end: Math.max(y, y2), value: mouseY} : {start: Math.min(x, x2), end: Math.max(x, x2), value: mouseX};\n\nclass LineAnnotation extends Element {\n\n inRange(mouseX, mouseY, axis, useFinalPosition) {\n const hBorderWidth = this.options.borderWidth / 2;\n if (axis !== 'x' && axis !== 'y') {\n const epsilon = sqr(hBorderWidth);\n const point = {mouseX, mouseY};\n return intersects(this, point, epsilon, useFinalPosition) || isOnLabel(this, point, useFinalPosition);\n }\n const limit = rangeLimit(mouseX, mouseY, this.getProps(['x', 'y', 'x2', 'y2'], useFinalPosition), axis);\n return (limit.value >= limit.start - hBorderWidth && limit.value <= limit.end + hBorderWidth) || isOnLabel(this, {mouseX, mouseY}, useFinalPosition, axis);\n }\n\n getCenterPoint(useFinalPosition) {\n return getElementCenterPoint(this, useFinalPosition);\n }\n\n draw(ctx) {\n const {x, y, x2, y2, options} = this;\n\n ctx.save();\n if (!setBorderStyle(ctx, options)) {\n // no border width, then line is not drawn\n return ctx.restore();\n }\n setShadowStyle(ctx, options);\n const angle = Math.atan2(y2 - y, x2 - x);\n const length = Math.sqrt(Math.pow(x2 - x, 2) + Math.pow(y2 - y, 2));\n const {startOpts, endOpts, startAdjust, endAdjust} = getArrowHeads(this);\n\n ctx.translate(x, y);\n ctx.rotate(angle);\n ctx.beginPath();\n ctx.moveTo(0 + startAdjust, 0);\n ctx.lineTo(length - endAdjust, 0);\n ctx.shadowColor = options.borderShadowColor;\n ctx.stroke();\n drawArrowHead(ctx, 0, startAdjust, startOpts);\n drawArrowHead(ctx, length, -endAdjust, endOpts);\n ctx.restore();\n }\n\n get label() {\n return this.elements && this.elements[0];\n }\n\n resolveElementProperties(chart, options) {\n const {scales, chartArea} = chart;\n const scale = scales[options.scaleID];\n const area = {x: chartArea.left, y: chartArea.top, x2: chartArea.right, y2: chartArea.bottom};\n let min, max;\n\n if (scale) {\n min = scaleValue(scale, options.value, NaN);\n max = scaleValue(scale, options.endValue, min);\n if (scale.isHorizontal()) {\n area.x = min;\n area.x2 = max;\n } else {\n area.y = min;\n area.y2 = max;\n }\n } else {\n const xScale = scales[retrieveScaleID(scales, options, 'xScaleID')];\n const yScale = scales[retrieveScaleID(scales, options, 'yScaleID')];\n\n if (xScale) {\n applyScaleValueToDimension(area, xScale, {min: options.xMin, max: options.xMax, start: xScale.left, end: xScale.right, startProp: 'x', endProp: 'x2'});\n }\n\n if (yScale) {\n applyScaleValueToDimension(area, yScale, {min: options.yMin, max: options.yMax, start: yScale.bottom, end: yScale.top, startProp: 'y', endProp: 'y2'});\n }\n }\n const {x, y, x2, y2} = area;\n const inside = isLineInArea(area, chart.chartArea);\n const properties = inside\n ? limitLineToArea({x, y}, {x: x2, y: y2}, chart.chartArea)\n : {x, y, x2, y2, width: Math.abs(x2 - x), height: Math.abs(y2 - y)};\n properties.centerX = (x2 + x) / 2;\n properties.centerY = (y2 + y) / 2;\n const labelProperties = resolveLabelElementProperties(chart, properties, options.label);\n // additonal prop to manage zoom/pan\n labelProperties._visible = inside;\n\n properties.elements = [{\n type: 'label',\n optionScope: 'label',\n properties: labelProperties\n }];\n return properties;\n }\n}\n\nLineAnnotation.id = 'lineAnnotation';\n\nconst arrowHeadsDefaults = {\n backgroundColor: undefined,\n backgroundShadowColor: undefined,\n borderColor: undefined,\n borderDash: undefined,\n borderDashOffset: undefined,\n borderShadowColor: undefined,\n borderWidth: undefined,\n display: undefined,\n fill: undefined,\n length: undefined,\n shadowBlur: undefined,\n shadowOffsetX: undefined,\n shadowOffsetY: undefined,\n width: undefined\n};\n\nLineAnnotation.defaults = {\n adjustScaleRange: true,\n arrowHeads: {\n display: false,\n end: Object.assign({}, arrowHeadsDefaults),\n fill: false,\n length: 12,\n start: Object.assign({}, arrowHeadsDefaults),\n width: 6\n },\n borderDash: [],\n borderDashOffset: 0,\n borderShadowColor: 'transparent',\n borderWidth: 2,\n display: true,\n endValue: undefined,\n label: {\n backgroundColor: 'rgba(0,0,0,0.8)',\n backgroundShadowColor: 'transparent',\n borderCapStyle: 'butt',\n borderColor: 'black',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderRadius: 6,\n borderShadowColor: 'transparent',\n borderWidth: 0,\n callout: Object.assign({}, LabelAnnotation.defaults.callout),\n color: '#fff',\n content: null,\n display: false,\n drawTime: undefined,\n font: {\n family: undefined,\n lineHeight: undefined,\n size: undefined,\n style: undefined,\n weight: 'bold'\n },\n height: undefined,\n padding: 6,\n position: 'center',\n rotation: 0,\n shadowBlur: 0,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n textAlign: 'center',\n textStrokeColor: undefined,\n textStrokeWidth: 0,\n width: undefined,\n xAdjust: 0,\n yAdjust: 0,\n z: undefined\n },\n scaleID: undefined,\n shadowBlur: 0,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n value: undefined,\n xMax: undefined,\n xMin: undefined,\n xScaleID: undefined,\n yMax: undefined,\n yMin: undefined,\n yScaleID: undefined,\n z: 0\n};\n\nLineAnnotation.descriptors = {\n arrowHeads: {\n start: {\n _fallback: true\n },\n end: {\n _fallback: true\n },\n _fallback: true\n }\n};\n\nLineAnnotation.defaultRoutes = {\n borderColor: 'color'\n};\n\nfunction isLineInArea({x, y, x2, y2}, {top, right, bottom, left}) {\n return !(\n (x < left && x2 < left) ||\n (x > right && x2 > right) ||\n (y < top && y2 < top) ||\n (y > bottom && y2 > bottom)\n );\n}\n\nfunction limitPointToArea({x, y}, p2, {top, right, bottom, left}) {\n if (x < left) {\n y = interpolateY(left, {x, y}, p2);\n x = left;\n }\n if (x > right) {\n y = interpolateY(right, {x, y}, p2);\n x = right;\n }\n if (y < top) {\n x = interpolateX(top, {x, y}, p2);\n y = top;\n }\n if (y > bottom) {\n x = interpolateX(bottom, {x, y}, p2);\n y = bottom;\n }\n return {x, y};\n}\n\nfunction limitLineToArea(p1, p2, area) {\n const {x, y} = limitPointToArea(p1, p2, area);\n const {x: x2, y: y2} = limitPointToArea(p2, p1, area);\n return {x, y, x2, y2, width: Math.abs(x2 - x), height: Math.abs(y2 - y)};\n}\n\nfunction intersects(element, {mouseX, mouseY}, epsilon = EPSILON, useFinalPosition) {\n // Adapted from https://stackoverflow.com/a/6853926/25507\n const {x: x1, y: y1, x2, y2} = element.getProps(['x', 'y', 'x2', 'y2'], useFinalPosition);\n const dx = x2 - x1;\n const dy = y2 - y1;\n const lenSq = sqr(dx) + sqr(dy);\n const t = lenSq === 0 ? -1 : ((mouseX - x1) * dx + (mouseY - y1) * dy) / lenSq;\n let xx, yy;\n if (t < 0) {\n xx = x1;\n yy = y1;\n } else if (t > 1) {\n xx = x2;\n yy = y2;\n } else {\n xx = x1 + t * dx;\n yy = y1 + t * dy;\n }\n return (sqr(mouseX - xx) + sqr(mouseY - yy)) <= epsilon;\n}\n\nfunction isOnLabel(element, {mouseX, mouseY}, useFinalPosition, axis) {\n const label = element.label;\n return label.options.display && label.inRange(mouseX, mouseY, axis, useFinalPosition);\n}\n\nfunction applyScaleValueToDimension(area, scale, options) {\n const dim = getDimensionByScale(scale, options);\n area[options.startProp] = dim.start;\n area[options.endProp] = dim.end;\n}\n\nfunction resolveLabelElementProperties(chart, properties, options) {\n const borderWidth = options.borderWidth;\n const padding = toPadding(options.padding);\n const textSize = measureLabelSize(chart.ctx, options);\n const width = textSize.width + padding.width + borderWidth;\n const height = textSize.height + padding.height + borderWidth;\n return calculateLabelPosition(properties, options, {width, height, padding}, chart.chartArea);\n}\n\nfunction calculateAutoRotation(properties) {\n const {x, y, x2, y2} = properties;\n const rotation = Math.atan2(y2 - y, x2 - x);\n // Flip the rotation if it goes > PI/2 or < -PI/2, so label stays upright\n return rotation > PI / 2 ? rotation - PI : rotation < PI / -2 ? rotation + PI : rotation;\n}\n\nfunction calculateLabelPosition(properties, label, sizes, chartArea) {\n const {width, height, padding} = sizes;\n const {xAdjust, yAdjust} = label;\n const p1 = {x: properties.x, y: properties.y};\n const p2 = {x: properties.x2, y: properties.y2};\n const rotation = label.rotation === 'auto' ? calculateAutoRotation(properties) : toRadians(label.rotation);\n const size = rotatedSize(width, height, rotation);\n const t = calculateT(properties, label, {labelSize: size, padding}, chartArea);\n const pt = pointInLine(p1, p2, t);\n const xCoordinateSizes = {size: size.w, min: chartArea.left, max: chartArea.right, padding: padding.left};\n const yCoordinateSizes = {size: size.h, min: chartArea.top, max: chartArea.bottom, padding: padding.top};\n const centerX = adjustLabelCoordinate(pt.x, xCoordinateSizes) + xAdjust;\n const centerY = adjustLabelCoordinate(pt.y, yCoordinateSizes) + yAdjust;\n return {\n x: centerX - (width / 2),\n y: centerY - (height / 2),\n x2: centerX + (width / 2),\n y2: centerY + (height / 2),\n centerX,\n centerY,\n pointX: pt.x,\n pointY: pt.y,\n width,\n height,\n rotation: toDegrees(rotation)\n };\n}\n\nfunction rotatedSize(width, height, rotation) {\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n return {\n w: Math.abs(width * cos) + Math.abs(height * sin),\n h: Math.abs(width * sin) + Math.abs(height * cos)\n };\n}\n\nfunction calculateT(properties, label, sizes, chartArea) {\n let t;\n const space = spaceAround(properties, chartArea);\n if (label.position === 'start') {\n t = calculateTAdjust({w: properties.x2 - properties.x, h: properties.y2 - properties.y}, sizes, label, space);\n } else if (label.position === 'end') {\n t = 1 - calculateTAdjust({w: properties.x - properties.x2, h: properties.y - properties.y2}, sizes, label, space);\n } else {\n t = getRelativePosition(1, label.position);\n }\n return t;\n}\n\nfunction calculateTAdjust(lineSize, sizes, label, space) {\n const {labelSize, padding} = sizes;\n const lineW = lineSize.w * space.dx;\n const lineH = lineSize.h * space.dy;\n const x = (lineW > 0) && ((labelSize.w / 2 + padding.left - space.x) / lineW);\n const y = (lineH > 0) && ((labelSize.h / 2 + padding.top - space.y) / lineH);\n return clamp(Math.max(x, y), 0, 0.25);\n}\n\nfunction spaceAround(properties, chartArea) {\n const {x, x2, y, y2} = properties;\n const t = Math.min(y, y2) - chartArea.top;\n const l = Math.min(x, x2) - chartArea.left;\n const b = chartArea.bottom - Math.max(y, y2);\n const r = chartArea.right - Math.max(x, x2);\n return {\n x: Math.min(l, r),\n y: Math.min(t, b),\n dx: l <= r ? 1 : -1,\n dy: t <= b ? 1 : -1\n };\n}\n\nfunction adjustLabelCoordinate(coordinate, labelSizes) {\n const {size, min, max, padding} = labelSizes;\n const halfSize = size / 2;\n if (size > max - min) {\n // if it does not fit, display as much as possible\n return (max + min) / 2;\n }\n if (min >= (coordinate - padding - halfSize)) {\n coordinate = min + padding + halfSize;\n }\n if (max <= (coordinate + padding + halfSize)) {\n coordinate = max - padding - halfSize;\n }\n return coordinate;\n}\n\nfunction getArrowHeads(line) {\n const options = line.options;\n const arrowStartOpts = options.arrowHeads && options.arrowHeads.start;\n const arrowEndOpts = options.arrowHeads && options.arrowHeads.end;\n return {\n startOpts: arrowStartOpts,\n endOpts: arrowEndOpts,\n startAdjust: getLineAdjust(line, arrowStartOpts),\n endAdjust: getLineAdjust(line, arrowEndOpts)\n };\n}\n\nfunction getLineAdjust(line, arrowOpts) {\n if (!arrowOpts || !arrowOpts.display) {\n return 0;\n }\n const {length, width} = arrowOpts;\n const adjust = line.options.borderWidth / 2;\n const p1 = {x: length, y: width + adjust};\n const p2 = {x: 0, y: adjust};\n return Math.abs(interpolateX(0, p1, p2));\n}\n\nfunction drawArrowHead(ctx, offset, adjust, arrowOpts) {\n if (!arrowOpts || !arrowOpts.display) {\n return;\n }\n const {length, width, fill, backgroundColor, borderColor} = arrowOpts;\n const arrowOffsetX = Math.abs(offset - length) + adjust;\n ctx.beginPath();\n setShadowStyle(ctx, arrowOpts);\n setBorderStyle(ctx, arrowOpts);\n ctx.moveTo(arrowOffsetX, -width);\n ctx.lineTo(offset + adjust, 0);\n ctx.lineTo(arrowOffsetX, width);\n if (fill === true) {\n ctx.fillStyle = backgroundColor || borderColor;\n ctx.closePath();\n ctx.fill();\n ctx.shadowColor = 'transparent';\n } else {\n ctx.shadowColor = arrowOpts.borderShadowColor;\n }\n ctx.stroke();\n}\n\nclass EllipseAnnotation extends Element {\n\n inRange(mouseX, mouseY, axis, useFinalPosition) {\n const rotation = this.options.rotation;\n const borderWidth = this.options.borderWidth;\n if (axis !== 'x' && axis !== 'y') {\n return pointInEllipse({x: mouseX, y: mouseY}, this.getProps(['width', 'height', 'centerX', 'centerY'], useFinalPosition), rotation, borderWidth);\n }\n const {x, y, x2, y2} = this.getProps(['x', 'y', 'x2', 'y2'], useFinalPosition);\n const hBorderWidth = borderWidth / 2;\n const limit = axis === 'y' ? {start: y, end: y2} : {start: x, end: x2};\n const rotatedPoint = rotated({x: mouseX, y: mouseY}, this.getCenterPoint(useFinalPosition), toRadians(-rotation));\n return rotatedPoint[axis] >= limit.start - hBorderWidth - EPSILON && rotatedPoint[axis] <= limit.end + hBorderWidth + EPSILON;\n }\n\n getCenterPoint(useFinalPosition) {\n return getElementCenterPoint(this, useFinalPosition);\n }\n\n draw(ctx) {\n const {width, height, centerX, centerY, options} = this;\n\n ctx.save();\n translate(ctx, this.getCenterPoint(), options.rotation);\n setShadowStyle(ctx, this.options);\n ctx.beginPath();\n ctx.fillStyle = options.backgroundColor;\n const stroke = setBorderStyle(ctx, options);\n ctx.ellipse(centerX, centerY, height / 2, width / 2, PI / 2, 0, 2 * PI);\n ctx.fill();\n if (stroke) {\n ctx.shadowColor = options.borderShadowColor;\n ctx.stroke();\n }\n ctx.restore();\n }\n\n get label() {\n return this.elements && this.elements[0];\n }\n\n resolveElementProperties(chart, options) {\n return resolveBoxAndLabelProperties(chart, options);\n }\n\n}\n\nEllipseAnnotation.id = 'ellipseAnnotation';\n\nEllipseAnnotation.defaults = {\n adjustScaleRange: true,\n backgroundShadowColor: 'transparent',\n borderDash: [],\n borderDashOffset: 0,\n borderShadowColor: 'transparent',\n borderWidth: 1,\n display: true,\n label: Object.assign({}, BoxAnnotation.defaults.label),\n rotation: 0,\n shadowBlur: 0,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n xMax: undefined,\n xMin: undefined,\n xScaleID: undefined,\n yMax: undefined,\n yMin: undefined,\n yScaleID: undefined,\n z: 0\n};\n\nEllipseAnnotation.defaultRoutes = {\n borderColor: 'color',\n backgroundColor: 'color'\n};\n\nEllipseAnnotation.descriptors = {\n label: {\n _fallback: true\n }\n};\n\nfunction pointInEllipse(p, ellipse, rotation, borderWidth) {\n const {width, height, centerX, centerY} = ellipse;\n const xRadius = width / 2;\n const yRadius = height / 2;\n\n if (xRadius <= 0 || yRadius <= 0) {\n return false;\n }\n // https://stackoverflow.com/questions/7946187/point-and-ellipse-rotated-position-test-algorithm\n const angle = toRadians(rotation || 0);\n const hBorderWidth = borderWidth / 2 || 0;\n const cosAngle = Math.cos(angle);\n const sinAngle = Math.sin(angle);\n const a = Math.pow(cosAngle * (p.x - centerX) + sinAngle * (p.y - centerY), 2);\n const b = Math.pow(sinAngle * (p.x - centerX) - cosAngle * (p.y - centerY), 2);\n return (a / Math.pow(xRadius + hBorderWidth, 2)) + (b / Math.pow(yRadius + hBorderWidth, 2)) <= 1.0001;\n}\n\nclass PointAnnotation extends Element {\n\n inRange(mouseX, mouseY, axis, useFinalPosition) {\n const {x, y, x2, y2, width} = this.getProps(['x', 'y', 'x2', 'y2', 'width'], useFinalPosition);\n const borderWidth = this.options.borderWidth;\n if (axis !== 'x' && axis !== 'y') {\n return inPointRange({x: mouseX, y: mouseY}, this.getCenterPoint(useFinalPosition), width / 2, borderWidth);\n }\n const hBorderWidth = borderWidth / 2;\n const limit = axis === 'y' ? {start: y, end: y2, value: mouseY} : {start: x, end: x2, value: mouseX};\n return limit.value >= limit.start - hBorderWidth && limit.value <= limit.end + hBorderWidth;\n }\n\n getCenterPoint(useFinalPosition) {\n return getElementCenterPoint(this, useFinalPosition);\n }\n\n draw(ctx) {\n const options = this.options;\n const borderWidth = options.borderWidth;\n if (options.radius < 0.1) {\n return;\n }\n ctx.save();\n ctx.fillStyle = options.backgroundColor;\n setShadowStyle(ctx, options);\n const stroke = setBorderStyle(ctx, options);\n options.borderWidth = 0;\n drawPoint(ctx, options, this.centerX, this.centerY);\n if (stroke && !isImageOrCanvas(options.pointStyle)) {\n ctx.shadowColor = options.borderShadowColor;\n ctx.stroke();\n }\n ctx.restore();\n options.borderWidth = borderWidth;\n }\n\n resolveElementProperties(chart, options) {\n return resolvePointProperties(chart, options);\n }\n}\n\nPointAnnotation.id = 'pointAnnotation';\n\nPointAnnotation.defaults = {\n adjustScaleRange: true,\n backgroundShadowColor: 'transparent',\n borderDash: [],\n borderDashOffset: 0,\n borderShadowColor: 'transparent',\n borderWidth: 1,\n display: true,\n pointStyle: 'circle',\n radius: 10,\n rotation: 0,\n shadowBlur: 0,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n xAdjust: 0,\n xMax: undefined,\n xMin: undefined,\n xScaleID: undefined,\n xValue: undefined,\n yAdjust: 0,\n yMax: undefined,\n yMin: undefined,\n yScaleID: undefined,\n yValue: undefined,\n z: 0\n};\n\nPointAnnotation.defaultRoutes = {\n borderColor: 'color',\n backgroundColor: 'color'\n};\n\nclass PolygonAnnotation extends Element {\n\n inRange(mouseX, mouseY, axis, useFinalPosition) {\n if (axis !== 'x' && axis !== 'y') {\n return this.options.radius >= 0.1 && this.elements.length > 1 && pointIsInPolygon(this.elements, mouseX, mouseY, useFinalPosition);\n }\n const rotatedPoint = rotated({x: mouseX, y: mouseY}, this.getCenterPoint(useFinalPosition), toRadians(-this.options.rotation));\n const axisPoints = this.elements.map((point) => axis === 'y' ? point.bY : point.bX);\n const start = Math.min(...axisPoints);\n const end = Math.max(...axisPoints);\n return rotatedPoint[axis] >= start && rotatedPoint[axis] <= end;\n }\n\n getCenterPoint(useFinalPosition) {\n return getElementCenterPoint(this, useFinalPosition);\n }\n\n draw(ctx) {\n const {elements, options} = this;\n ctx.save();\n ctx.beginPath();\n ctx.fillStyle = options.backgroundColor;\n setShadowStyle(ctx, options);\n const stroke = setBorderStyle(ctx, options);\n let first = true;\n for (const el of elements) {\n if (first) {\n ctx.moveTo(el.x, el.y);\n first = false;\n } else {\n ctx.lineTo(el.x, el.y);\n }\n }\n ctx.closePath();\n ctx.fill();\n // If no border, don't draw it\n if (stroke) {\n ctx.shadowColor = options.borderShadowColor;\n ctx.stroke();\n }\n ctx.restore();\n }\n\n resolveElementProperties(chart, options) {\n const properties = resolvePointProperties(chart, options);\n const {x, y} = properties;\n const {sides, rotation} = options;\n const elements = [];\n const angle = (2 * PI) / sides;\n let rad = rotation * RAD_PER_DEG;\n for (let i = 0; i < sides; i++, rad += angle) {\n elements.push(buildPointElement(properties, options, rad));\n }\n properties.elements = elements;\n properties.initProperties = {x, y};\n return properties;\n }\n}\n\nPolygonAnnotation.id = 'polygonAnnotation';\n\nPolygonAnnotation.defaults = {\n adjustScaleRange: true,\n backgroundShadowColor: 'transparent',\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderShadowColor: 'transparent',\n borderWidth: 1,\n display: true,\n point: {\n radius: 0\n },\n radius: 10,\n rotation: 0,\n shadowBlur: 0,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n sides: 3,\n xAdjust: 0,\n xMax: undefined,\n xMin: undefined,\n xScaleID: undefined,\n xValue: undefined,\n yAdjust: 0,\n yMax: undefined,\n yMin: undefined,\n yScaleID: undefined,\n yValue: undefined,\n z: 0\n};\n\nPolygonAnnotation.defaultRoutes = {\n borderColor: 'color',\n backgroundColor: 'color'\n};\n\nfunction buildPointElement({centerX, centerY}, {radius, borderWidth}, rad) {\n const halfBorder = borderWidth / 2;\n const sin = Math.sin(rad);\n const cos = Math.cos(rad);\n const point = {x: centerX + sin * radius, y: centerY - cos * radius};\n return {\n type: 'point',\n optionScope: 'point',\n properties: {\n x: point.x,\n y: point.y,\n centerX: point.x,\n centerY: point.y,\n bX: centerX + sin * (radius + halfBorder),\n bY: centerY - cos * (radius + halfBorder)\n }\n };\n}\n\nfunction pointIsInPolygon(points, x, y, useFinalPosition) {\n let isInside = false;\n let A = points[points.length - 1].getProps(['bX', 'bY'], useFinalPosition);\n for (const point of points) {\n const B = point.getProps(['bX', 'bY'], useFinalPosition);\n if ((B.bY > y) !== (A.bY > y) && x < (A.bX - B.bX) * (y - B.bY) / (A.bY - B.bY) + B.bX) {\n isInside = !isInside;\n }\n A = B;\n }\n return isInside;\n}\n\nconst annotationTypes = {\n box: BoxAnnotation,\n ellipse: EllipseAnnotation,\n label: LabelAnnotation,\n line: LineAnnotation,\n point: PointAnnotation,\n polygon: PolygonAnnotation\n};\n\n/**\n * Register fallback for annotation elements\n * For example lineAnnotation options would be looked through:\n * - the annotation object (options.plugins.annotation.annotations[id])\n * - element options (options.elements.lineAnnotation)\n * - element defaults (defaults.elements.lineAnnotation)\n * - annotation plugin defaults (defaults.plugins.annotation, this is what we are registering here)\n */\nObject.keys(annotationTypes).forEach(key => {\n defaults.describe(`elements.${annotationTypes[key].id}`, {\n _fallback: 'plugins.annotation.common'\n });\n});\n\nconst directUpdater = {\n update: Object.assign\n};\n\n/**\n * @typedef { import(\"chart.js\").Chart } Chart\n * @typedef { import(\"chart.js\").UpdateMode } UpdateMode\n * @typedef { import('../../types/options').AnnotationPluginOptions } AnnotationPluginOptions\n */\n\n/**\n * Resolve the annotation type, checking if is supported.\n * @param {string} [type=line] - annotation type\n * @returns {string} resolved annotation type\n */\nfunction resolveType(type = 'line') {\n if (annotationTypes[type]) {\n return type;\n }\n console.warn(`Unknown annotation type: '${type}', defaulting to 'line'`);\n return 'line';\n}\n\n/**\n * @param {Chart} chart\n * @param {Object} state\n * @param {AnnotationPluginOptions} options\n * @param {UpdateMode} mode\n */\nfunction updateElements(chart, state, options, mode) {\n const animations = resolveAnimations(chart, options.animations, mode);\n\n const annotations = state.annotations;\n const elements = resyncElements(state.elements, annotations);\n\n for (let i = 0; i < annotations.length; i++) {\n const annotationOptions = annotations[i];\n const element = getOrCreateElement(elements, i, annotationOptions.type);\n const resolver = annotationOptions.setContext(getContext(chart, element, annotationOptions));\n const properties = element.resolveElementProperties(chart, resolver);\n\n properties.skip = toSkip(properties);\n\n if ('elements' in properties) {\n updateSubElements(element, properties, resolver, animations);\n // Remove the sub-element definitions from properties, so the actual elements\n // are not overwritten by their definitions\n delete properties.elements;\n }\n\n if (!defined(element.x)) {\n // If the element is newly created, assing the properties directly - to\n // make them readily awailable to any scriptable options. If we do not do this,\n // the properties retruned by `resolveElementProperties` are available only\n // after options resolution.\n Object.assign(element, properties);\n }\n\n properties.options = resolveAnnotationOptions(resolver);\n\n animations.update(element, properties);\n }\n}\n\nfunction toSkip(properties) {\n return isNaN(properties.x) || isNaN(properties.y);\n}\n\nfunction resolveAnimations(chart, animOpts, mode) {\n if (mode === 'reset' || mode === 'none' || mode === 'resize') {\n return directUpdater;\n }\n return new Animations(chart, animOpts);\n}\n\nfunction updateSubElements(mainElement, {elements, initProperties}, resolver, animations) {\n const subElements = mainElement.elements || (mainElement.elements = []);\n subElements.length = elements.length;\n for (let i = 0; i < elements.length; i++) {\n const definition = elements[i];\n const properties = definition.properties;\n const subElement = getOrCreateElement(subElements, i, definition.type, initProperties);\n const subResolver = resolver[definition.optionScope].override(definition);\n properties.options = resolveAnnotationOptions(subResolver);\n animations.update(subElement, properties);\n }\n}\n\nfunction getOrCreateElement(elements, index, type, initProperties) {\n const elementClass = annotationTypes[resolveType(type)];\n let element = elements[index];\n if (!element || !(element instanceof elementClass)) {\n element = elements[index] = new elementClass();\n if (isObject(initProperties)) {\n Object.assign(element, initProperties);\n }\n }\n return element;\n}\n\nfunction resolveAnnotationOptions(resolver) {\n const elementClass = annotationTypes[resolveType(resolver.type)];\n const result = {};\n result.id = resolver.id;\n result.type = resolver.type;\n result.drawTime = resolver.drawTime;\n Object.assign(result,\n resolveObj(resolver, elementClass.defaults),\n resolveObj(resolver, elementClass.defaultRoutes));\n for (const hook of hooks) {\n result[hook] = resolver[hook];\n }\n return result;\n}\n\nfunction resolveObj(resolver, defs) {\n const result = {};\n for (const prop of Object.keys(defs)) {\n const optDefs = defs[prop];\n const value = resolver[prop];\n result[prop] = isObject(optDefs) ? resolveObj(value, optDefs) : value;\n }\n return result;\n}\n\nfunction getContext(chart, element, annotation) {\n return element.$context || (element.$context = Object.assign(Object.create(chart.getContext()), {\n element,\n id: annotation.id,\n type: 'annotation'\n }));\n}\n\nfunction resyncElements(elements, annotations) {\n const count = annotations.length;\n const start = elements.length;\n\n if (start < count) {\n const add = count - start;\n elements.splice(start, 0, ...new Array(add));\n } else if (start > count) {\n elements.splice(count, start - count);\n }\n return elements;\n}\n\nvar version = \"2.1.0\";\n\nconst chartStates = new Map();\n\nvar annotation = {\n id: 'annotation',\n\n version,\n\n beforeRegister() {\n requireVersion('chart.js', '3.7', Chart.version);\n },\n\n afterRegister() {\n Chart.register(annotationTypes);\n },\n\n afterUnregister() {\n Chart.unregister(annotationTypes);\n },\n\n beforeInit(chart) {\n chartStates.set(chart, {\n annotations: [],\n elements: [],\n visibleElements: [],\n listeners: {},\n listened: false,\n moveListened: false,\n hovered: []\n });\n },\n\n beforeUpdate(chart, args, options) {\n const state = chartStates.get(chart);\n const annotations = state.annotations = [];\n\n let annotationOptions = options.annotations;\n if (isObject(annotationOptions)) {\n Object.keys(annotationOptions).forEach(key => {\n const value = annotationOptions[key];\n if (isObject(value)) {\n value.id = key;\n annotations.push(value);\n }\n });\n } else if (isArray(annotationOptions)) {\n annotations.push(...annotationOptions);\n }\n verifyScaleOptions(annotations, chart.scales);\n },\n\n afterDataLimits(chart, args) {\n const state = chartStates.get(chart);\n adjustScaleRange(chart, args.scale, state.annotations.filter(a => a.display && a.adjustScaleRange));\n },\n\n afterUpdate(chart, args, options) {\n const state = chartStates.get(chart);\n updateListeners(chart, state, options);\n updateElements(chart, state, options, args.mode);\n state.visibleElements = state.elements.filter(el => !el.skip && el.options.display);\n },\n\n beforeDatasetsDraw(chart, _args, options) {\n draw(chart, 'beforeDatasetsDraw', options.clip);\n },\n\n afterDatasetsDraw(chart, _args, options) {\n draw(chart, 'afterDatasetsDraw', options.clip);\n },\n\n beforeDraw(chart, _args, options) {\n draw(chart, 'beforeDraw', options.clip);\n },\n\n afterDraw(chart, _args, options) {\n draw(chart, 'afterDraw', options.clip);\n },\n\n beforeEvent(chart, args, options) {\n const state = chartStates.get(chart);\n if (handleEvent(state, args.event, options)) {\n args.changed = true;\n }\n },\n\n destroy(chart) {\n chartStates.delete(chart);\n },\n\n _getState(chart) {\n return chartStates.get(chart);\n },\n\n defaults: {\n animations: {\n numbers: {\n properties: ['x', 'y', 'x2', 'y2', 'width', 'height', 'centerX', 'centerY', 'pointX', 'pointY', 'radius'],\n type: 'number'\n },\n },\n clip: true,\n interaction: {\n mode: undefined,\n axis: undefined,\n intersect: undefined\n },\n common: {\n drawTime: 'afterDatasetsDraw',\n label: {\n }\n }\n },\n\n descriptors: {\n _indexable: false,\n _scriptable: (prop) => !hooks.includes(prop),\n annotations: {\n _allKeys: false,\n _fallback: (prop, opts) => `elements.${annotationTypes[resolveType(opts.type)].id}`\n },\n interaction: {\n _fallback: true\n },\n common: {\n label: {\n _fallback: true\n }\n }\n },\n\n additionalOptionScopes: ['']\n};\n\nfunction draw(chart, caller, clip) {\n const {ctx, chartArea} = chart;\n const {visibleElements} = chartStates.get(chart);\n\n if (clip) {\n clipArea(ctx, chartArea);\n }\n\n const drawableElements = getDrawableElements(visibleElements, caller).sort((a, b) => a.options.z - b.options.z);\n\n for (const element of drawableElements) {\n element.draw(chart.ctx, chartArea);\n }\n\n if (clip) {\n unclipArea(ctx);\n }\n}\n\nfunction getDrawableElements(elements, caller) {\n const drawableElements = [];\n for (const el of elements) {\n if (el.options.drawTime === caller) {\n drawableElements.push(el);\n }\n if (el.elements && el.elements.length) {\n for (const sub of el.elements) {\n if (sub.options.display && sub.options.drawTime === caller) {\n drawableElements.push(sub);\n }\n }\n }\n }\n return drawableElements;\n}\n\nexport { annotation as default };\n","var parent = require('../../stable/array/from');\n\nmodule.exports = parent;\n","var parent = require('../../stable/array/is-array');\n\nmodule.exports = parent;\n","var parent = require('../stable/get-iterator-method');\n\nmodule.exports = parent;\n","var parent = require('../../stable/instance/slice');\n\nmodule.exports = parent;\n","var parent = require('../../stable/symbol');\n\nmodule.exports = parent;\n","require('../../modules/es.string.iterator');\nrequire('../../modules/es.array.from');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.from;\n","require('../../modules/es.array.is-array');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.isArray;\n","require('../../../modules/es.array.concat');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').concat;\n","require('../../../modules/es.array.for-each');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').forEach;\n","require('../../../modules/es.array.index-of');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').indexOf;\n","require('../../../modules/es.array.map');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').map;\n","require('../../../modules/es.array.reduce');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').reduce;\n","require('../../../modules/es.array.slice');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').slice;\n","require('../../../modules/es.array.sort');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').sort;\n","require('../modules/es.array.iterator');\nrequire('../modules/es.string.iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = getIteratorMethod;\n","var isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/concat');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.concat;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.concat) ? method : own;\n};\n","var isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar flags = require('../regexp/flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (it) {\n return (it === RegExpPrototype || isPrototypeOf(RegExpPrototype, it)) ? flags(it) : it.flags;\n};\n","var isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/index-of');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.indexOf;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.indexOf) ? method : own;\n};\n","var isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/map');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.map;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.map) ? method : own;\n};\n","var isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/reduce');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.reduce;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.reduce) ? method : own;\n};\n","var isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/slice');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.slice;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.slice) ? method : own;\n};\n","var isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/sort');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.sort;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.sort) ? method : own;\n};\n","require('../../modules/es.object.create');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nmodule.exports = function create(P, D) {\n return Object.create(P, D);\n};\n","require('../../modules/es.object.define-property');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nvar defineProperty = module.exports = function defineProperty(it, key, desc) {\n return Object.defineProperty(it, key, desc);\n};\n\nif (Object.defineProperty.sham) defineProperty.sham = true;\n","require('../modules/es.parse-int');\nvar path = require('../internals/path');\n\nmodule.exports = path.parseInt;\n","require('../../modules/es.regexp.flags');\nvar getRegExpFlags = require('../../internals/regexp-get-flags');\n\nmodule.exports = getRegExpFlags;\n","require('../../modules/es.array.concat');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.symbol');\nrequire('../../modules/es.symbol.async-iterator');\nrequire('../../modules/es.symbol.description');\nrequire('../../modules/es.symbol.has-instance');\nrequire('../../modules/es.symbol.is-concat-spreadable');\nrequire('../../modules/es.symbol.iterator');\nrequire('../../modules/es.symbol.match');\nrequire('../../modules/es.symbol.match-all');\nrequire('../../modules/es.symbol.replace');\nrequire('../../modules/es.symbol.search');\nrequire('../../modules/es.symbol.species');\nrequire('../../modules/es.symbol.split');\nrequire('../../modules/es.symbol.to-primitive');\nrequire('../../modules/es.symbol.to-string-tag');\nrequire('../../modules/es.symbol.unscopables');\nrequire('../../modules/es.json.to-string-tag');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.reflect.to-string-tag');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol;\n","module.exports = require('../../full/array/from');\n","module.exports = require('../../full/array/is-array');\n","module.exports = require('../full/get-iterator-method');\n","module.exports = require('../../full/instance/slice');\n","module.exports = require('../../full/symbol');\n","var parent = require('../../actual/array/from');\n\nmodule.exports = parent;\n","var parent = require('../../actual/array/is-array');\n\nmodule.exports = parent;\n","var parent = require('../actual/get-iterator-method');\n\nmodule.exports = parent;\n","var parent = require('../../actual/instance/slice');\n\nmodule.exports = parent;\n","var parent = require('../../actual/symbol');\nrequire('../../modules/esnext.symbol.async-dispose');\nrequire('../../modules/esnext.symbol.dispose');\nrequire('../../modules/esnext.symbol.matcher');\nrequire('../../modules/esnext.symbol.metadata-key');\nrequire('../../modules/esnext.symbol.observable');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.symbol.metadata');\nrequire('../../modules/esnext.symbol.pattern-match');\nrequire('../../modules/esnext.symbol.replace-all');\n\nmodule.exports = parent;\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","module.exports = function () { /* empty */ };\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","var aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (target, key, value, options) {\n if (options && options.enumerable) target[key] = value;\n else createNonEnumerableProperty(target, key, value);\n return target;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","var path = require('../internals/path');\n\nmodule.exports = function (CONSTRUCTOR) {\n return path[CONSTRUCTOR + 'Prototype'];\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar isCallable = require('../internals/is-callable');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar isForced = require('../internals/is-forced');\nvar path = require('../internals/path');\nvar bind = require('../internals/function-bind-context');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\n\nvar wrapConstructor = function (NativeConstructor) {\n var Wrapper = function (a, b, c) {\n if (this instanceof Wrapper) {\n switch (arguments.length) {\n case 0: return new NativeConstructor();\n case 1: return new NativeConstructor(a);\n case 2: return new NativeConstructor(a, b);\n } return new NativeConstructor(a, b, c);\n } return apply(NativeConstructor, this, arguments);\n };\n Wrapper.prototype = NativeConstructor.prototype;\n return Wrapper;\n};\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var PROTO = options.proto;\n\n var nativeSource = GLOBAL ? global : STATIC ? global[TARGET] : (global[TARGET] || {}).prototype;\n\n var target = GLOBAL ? path : path[TARGET] || createNonEnumerableProperty(path, TARGET, {})[TARGET];\n var targetPrototype = target.prototype;\n\n var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE;\n var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor;\n\n for (key in source) {\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contains in native\n USE_NATIVE = !FORCED && nativeSource && hasOwn(nativeSource, key);\n\n targetProperty = target[key];\n\n if (USE_NATIVE) if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(nativeSource, key);\n nativeProperty = descriptor && descriptor.value;\n } else nativeProperty = nativeSource[key];\n\n // export native or implementation\n sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key];\n\n if (USE_NATIVE && typeof targetProperty == typeof sourceProperty) continue;\n\n // bind timers to global for call from export context\n if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, global);\n // wrap global constructors for prevent changs in this version\n else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty);\n // make static versions for prototype methods\n else if (PROTO && isCallable(sourceProperty)) resultProperty = uncurryThis(sourceProperty);\n // default case\n else resultProperty = sourceProperty;\n\n // add a flag to not completely full polyfills\n if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(resultProperty, 'sham', true);\n }\n\n createNonEnumerableProperty(target, key, resultProperty);\n\n if (PROTO) {\n VIRTUAL_PROTOTYPE = TARGET + 'Prototype';\n if (!hasOwn(path, VIRTUAL_PROTOTYPE)) {\n createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {});\n }\n // export virtual prototype methods\n createNonEnumerableProperty(path[VIRTUAL_PROTOTYPE], key, sourceProperty);\n // export real prototype methods\n if (options.real && targetPrototype && !targetPrototype[key]) {\n createNonEnumerableProperty(targetPrototype, key, sourceProperty);\n }\n }\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (variable) {\n return isCallable(variable) ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = true;\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = {};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineProperty = require('../internals/object-define-property').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/object-to-string');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC, SET_METHOD) {\n if (it) {\n var target = STATIC ? it : it.prototype;\n if (!hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n if (SET_METHOD && !TO_STRING_TAG_SUPPORT) {\n createNonEnumerableProperty(target, 'toString', toString);\n }\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.26.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.26.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","var $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.es/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n isArray: isArray\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n create: create\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n// eslint-disable-next-line es/no-object-defineproperty -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, {\n defineProperty: defineProperty\n});\n","var $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","var $ = require('../internals/export');\nvar $parseInt = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != $parseInt }, {\n parseInt: $parseInt\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","var $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matchAll` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.matchall\ndefineWellKnownSymbol('matchAll');\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.match` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.search` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.species` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.split` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n","var getBuiltIn = require('../internals/get-built-in');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag(getBuiltIn('Symbol'), 'Symbol');\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncDispose` well-known symbol\n// https://github.com/tc39/proposal-using-statement\ndefineWellKnownSymbol('asyncDispose');\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.dispose` well-known symbol\n// https://github.com/tc39/proposal-using-statement\ndefineWellKnownSymbol('dispose');\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matcher` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('matcher');\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadataKey` well-known symbol\n// https://github.com/tc39/proposal-decorator-metadata\ndefineWellKnownSymbol('metadataKey');\n","// TODO: Remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadata` well-known symbol\n// https://github.com/tc39/proposal-decorators\ndefineWellKnownSymbol('metadata');\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.observable` well-known symbol\n// https://github.com/tc39/proposal-observable\ndefineWellKnownSymbol('observable');\n","// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.patternMatch` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('patternMatch');\n","// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\ndefineWellKnownSymbol('replaceAll');\n","require('../modules/es.array.iterator');\nvar DOMIterables = require('../internals/dom-iterables');\nvar global = require('../internals/global');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype && classof(CollectionPrototype) !== TO_STRING_TAG) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n Iterators[COLLECTION_NAME] = Iterators.Array;\n}\n","var parent = require('../../es/array/from');\n\nmodule.exports = parent;\n","var parent = require('../../es/array/is-array');\n\nmodule.exports = parent;\n","var parent = require('../../../es/array/virtual/for-each');\n\nmodule.exports = parent;\n","var parent = require('../es/get-iterator-method');\nrequire('../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n","var parent = require('../../es/instance/concat');\n\nmodule.exports = parent;\n","var parent = require('../../es/instance/flags');\n\nmodule.exports = parent;\n","require('../../modules/web.dom-collections.iterator');\nvar classof = require('../../internals/classof');\nvar hasOwn = require('../../internals/has-own-property');\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/for-each');\n\nvar ArrayPrototype = Array.prototype;\n\nvar DOMIterables = {\n DOMTokenList: true,\n NodeList: true\n};\n\nmodule.exports = function (it) {\n var own = it.forEach;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.forEach)\n || hasOwn(DOMIterables, classof(it)) ? method : own;\n};\n","var parent = require('../../es/instance/index-of');\n\nmodule.exports = parent;\n","var parent = require('../../es/instance/map');\n\nmodule.exports = parent;\n","var parent = require('../../es/instance/reduce');\n\nmodule.exports = parent;\n","var parent = require('../../es/instance/slice');\n\nmodule.exports = parent;\n","var parent = require('../../es/instance/sort');\n\nmodule.exports = parent;\n","var parent = require('../../es/object/create');\n\nmodule.exports = parent;\n","var parent = require('../../es/object/define-property');\n\nmodule.exports = parent;\n","var parent = require('../es/parse-int');\n\nmodule.exports = parent;\n","var parent = require('../../es/symbol');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\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\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n","var moment = module.exports = require(\"./moment-timezone\");\nmoment.tz.load(require('./data/packed/latest.json'));\n","//! moment-timezone.js\n//! version : 0.5.39\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(require('moment')); // Node\n\t} else if (typeof define === 'function' && define.amd) {\n\t\tdefine(['moment'], factory); // AMD\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Resolves es6 module loading issue\n\tif (moment.version === undefined && moment.default) {\n\t\tmoment = moment.default;\n\t}\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.39\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tcountries = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\t\tif (target < untils[i]) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tcountries : function () {\n\t\t\tvar zone_name = this.name;\n\t\t\treturn Object.keys(countries).filter(function (country_code) {\n\t\t\t\treturn countries[country_code].zones.indexOf(zone_name) !== -1;\n\t\t\t});\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCountry object\n\t************************************/\n\n\tfunction Country (country_name, zone_names) {\n\t\tthis.name = country_name;\n\t\tthis.zones = zone_names;\n\t}\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (台北標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\toffsets = [last],\n\t\t\tchange, next, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\tif (next.offset !== last.offset) {\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t}\n\t\t\tlast = next;\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\ti, j, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\tguessesOffset = guesses[offsets[i].offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction getCountryNames () {\n\t\treturn Object.keys(countries);\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction addCountries (data) {\n\t\tvar i, country_code, country_zones, split;\n\t\tif (!data || !data.length) return;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tsplit = data[i].split('|');\n\t\t\tcountry_code = split[0].toUpperCase();\n\t\t\tcountry_zones = split[1].split(' ');\n\t\t\tcountries[country_code] = new Country(\n\t\t\t\tcountry_code,\n\t\t\t\tcountry_zones\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction getCountry (name) {\n\t\tname = name.toUpperCase();\n\t\treturn countries[name] || null;\n\t}\n\n\tfunction zonesForCountry(country, with_offset) {\n\t\tcountry = getCountry(country);\n\n\t\tif (!country) return null;\n\n\t\tvar zones = country.zones.sort();\n\n\t\tif (with_offset) {\n\t\t\treturn zones.map(function (zone_name) {\n\t\t\t\tvar zone = getZone(zone_name);\n\t\t\t\treturn {\n\t\t\t\t\tname: zone_name,\n\t\t\t\t\toffset: zone.utcOffset(new Date())\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\treturn zones;\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\taddCountries(data.countries);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tzone = getZone(name),\n\t\t\tout = moment.utc.apply(null, args);\n\n\t\tif (zone && !moment.isMoment(input) && needsOffset(out)) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz._countries\t= countries;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\ttz.countries = getCountryNames;\n\ttz.zonesForCountry = zonesForCountry;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\tfn.local = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\n}));\n","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n 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 arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n 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 =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","/*! Raygun4js - v2.25.6 - 2022-07-25\r\n* https://github.com/MindscapeHQ/raygun4js\r\n* Copyright (c) 2022 MindscapeHQ; Licensed MIT */\r\nwindow.raygunUserAgent = navigator.userAgent;\r\n\r\nwindow.raygunUserAgentData = window.navigator.userAgentData || null;\r\nwindow.raygunUserAgentDataStatus = 1; // 1: Start, 2: high entropy success, 3: timed-out\r\n\r\n//Run this asap so that the High Entropy user agent data will be available, when we send data to the server\r\n(function () {\r\n setTimeout(function () { if (window.raygunUserAgentDataStatus === 1) { window.raygunUserAgentDataStatus = 3; } }, 200);\r\n\r\n if (!(window && window.navigator && window.navigator.userAgentData)) { return; }\r\n\r\n if (!!window.navigator.userAgentData.getHighEntropyValues) {\r\n var hints = [\"platformVersion\", \"fullVersionList\" /* ,\"model\" //We may want model (device) info in the future */];\r\n\r\n window.navigator.userAgentData\r\n .getHighEntropyValues(hints)\r\n .then(\r\n function (highEntropyUserAgentData) {\r\n window.raygunUserAgentData = highEntropyUserAgentData;\r\n window.raygunUserAgent = getHighFidelityUAString(window.raygunUserAgent);\r\n\r\n window.raygunUserAgentDataStatus = 2;\r\n },\r\n function (e) {\r\n window.console.error('Error calling getHighEntropyValues: ', e);\r\n });\r\n }\r\n\r\n})();\r\n\r\n\r\nfunction getHighFidelityUAString(userAgentString) {\r\n\r\n if (!window.raygunUserAgentData) {\r\n return userAgentString;\r\n }\r\n if (window.raygunUserAgentData.platform === \"Windows\") {\r\n var platformVersion = (window.raygunUserAgentData.platformVersion || '').split(\".\");\r\n var majorVersion = parseInt(platformVersion[0], 10) || 0;\r\n if (majorVersion >= 13) {\r\n userAgentString = userAgentString.replace('Windows NT 10.0', 'Windows NT 11.0');\r\n }\r\n }\r\n var fullVersionList = window.raygunUserAgentData.fullVersionList;\r\n\r\n if (!fullVersionList) {\r\n return userAgentString;\r\n }\r\n\r\n var regexChrome = /Chrome\\/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)/i;\r\n var regexEdge = /Edg\\/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)/i;\r\n // var regexOpera = /OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)/i; // Not used below, yet???\r\n\r\n for (var n = 0; n < fullVersionList.length; n++) {\r\n\r\n var version = fullVersionList[n].version;\r\n var brand = fullVersionList[n].brand;\r\n\r\n if (brand === \"Chromium\") {\r\n userAgentString = userAgentString.replace(regexChrome, 'Chrome\\/' + version);\r\n }\r\n if (brand === \"Microsoft Edge\") {\r\n userAgentString = userAgentString.replace(regexEdge, 'Edg\\/' + version);\r\n }\r\n //Opera (version 88) behaves differently, it correctly populates the UserAgent string; but not the high entropy UserAgentData. This may change in the future?! \r\n /* \r\n if (brand === \"Opera\") { \r\n userAgentString = userAgentString.replace(regexOpera, 'OPR\\/' + version);\r\n }\r\n */\r\n }\r\n\r\n return userAgentString;\r\n}\r\n// https://github.com/umdjs/umd/blob/master/templates/returnExportsGlobal.js\r\n\r\n(function (root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define('raygun4js', function () {\r\n return (root.Raygun = factory());\r\n });\r\n } else if (typeof module === 'object' && module.exports) {\r\n // Node. Does not work with strict CommonJS, but\r\n // only CommonJS-like environments that support module.exports,\r\n // like Node.\r\n module.exports = factory();\r\n } else {\r\n // Browser globals\r\n root.Raygun = factory();\r\n }\r\n}(this, function () {\r\n\r\n var windw = this || window || global;\r\n var originalOnError = windw.onerror;\r\n windw.onerror = function (msg, url, line, col, err) {\r\n if (originalOnError) {\r\n originalOnError(msg, url, line, col, err);\r\n }\r\n\r\n if (!err) {\r\n err = new Error(msg);\r\n }\r\n\r\n windw['rg4js'].q = windw['rg4js'].q || [];\r\n windw['rg4js'].q.push({e: err});\r\n };\r\n\r\n // Similar approach as the snippet, creates the rg4js proxy function, which is exported in umd.outro.js once the\r\n // script is executed, and later overwritten by the loader once it's finished\r\n (function(wind) { wind['RaygunObject'] = 'rg4js';\r\n wind[wind['RaygunObject']] = wind[wind['RaygunObject']] || function() {\r\n if (wind && typeof wind['Raygun'] === 'undefined' ||\r\n (typeof document === 'undefined' || document.readyState !== 'complete')) {\r\n // onload hasn't been called, cache the commands just like the snippet\r\n (wind[wind['RaygunObject']].o = wind[wind['RaygunObject']].o || []).push(arguments)\r\n } else {\r\n // onload has been called and provider has executed, call the executor proxy function\r\n return wind[wind['RaygunObject']](arguments[0], arguments[1]);\r\n }\r\n \r\n }})(windw);\r\n\r\n(function(window, undefined) {\r\n\r\n\r\nvar TraceKit = {};\r\nvar _oldTraceKit = window.TraceKit;\r\n\r\n// global reference to slice\r\nvar _slice = [].slice;\r\nvar UNKNOWN_FUNCTION = '?';\r\nvar Raygun;\r\n\r\n\r\n/**\r\n * _has, a better form of hasOwnProperty\r\n * Example: _has(MainHostObject, property) === true/false\r\n *\r\n * @param {Object} host object to check property\r\n * @param {string} key to check\r\n */\r\nfunction _has(object, key) {\r\n return Object.prototype.hasOwnProperty.call(object, key);\r\n}\r\n\r\nfunction _isUndefined(what) {\r\n return typeof what === 'undefined';\r\n}\r\n\r\n/**\r\n * TraceKit gets loaded before Raygun\r\n * Raygun uses this callback to give TraceKit an instance of Raygun\r\n * This is required to use the Utilities module\r\n */\r\nTraceKit.setRaygun = function setRaygun(rg) {\r\n if (!Raygun) {\r\n Raygun = rg;\r\n }\r\n};\r\n\r\n/**\r\n * TraceKit.noConflict: Export TraceKit out to another variable\r\n * Example: var TK = TraceKit.noConflict()\r\n */\r\nTraceKit.noConflict = function noConflict() {\r\n window.TraceKit = _oldTraceKit;\r\n return TraceKit;\r\n};\r\n\r\n/**\r\n * TraceKit.wrap: Wrap any function in a TraceKit reporter\r\n * Example: func = TraceKit.wrap(func);\r\n *\r\n * @param {Function} func Function to be wrapped\r\n * @return {Function} The wrapped func\r\n */\r\nTraceKit.wrap = function traceKitWrapper(func) {\r\n function wrapped() {\r\n try {\r\n return func.apply(this, arguments);\r\n } catch (e) {\r\n TraceKit.report(e);\r\n throw e;\r\n }\r\n }\r\n return wrapped;\r\n};\r\n\r\n/**\r\n * TraceKit.report: cross-browser processing of unhandled exceptions\r\n *\r\n * Syntax:\r\n * TraceKit.report.subscribe(function(stackInfo) { ... })\r\n * TraceKit.report.unsubscribe(function(stackInfo) { ... })\r\n * TraceKit.report(exception)\r\n * try { ...code... } catch(ex) { TraceKit.report(ex); }\r\n *\r\n * Supports:\r\n * - Firefox: full stack trace with line numbers, plus column number\r\n * on top frame; column number is not guaranteed\r\n * - Opera: full stack trace with line and column numbers\r\n * - Chrome: full stack trace with line and column numbers\r\n * - Safari: line and column number for the top frame only; some frames\r\n * may be missing, and column number is not guaranteed\r\n * - IE: line and column number for the top frame only; some frames\r\n * may be missing, and column number is not guaranteed\r\n *\r\n * In theory, TraceKit should work on all of the following versions:\r\n * - IE5.5+ (only 8.0 tested)\r\n * - Firefox 0.9+ (only 3.5+ tested)\r\n * - Opera 7+ (only 10.50 tested; versions 9 and earlier may require\r\n * Exceptions Have Stacktrace to be enabled in opera:config)\r\n * - Safari 3+ (only 4+ tested)\r\n * - Chrome 1+ (only 5+ tested)\r\n * - Konqueror 3.5+ (untested)\r\n *\r\n * Requires TraceKit.computeStackTrace.\r\n *\r\n * Tries to catch all unhandled exceptions and report them to the\r\n * subscribed handlers. Please note that TraceKit.report will rethrow the\r\n * exception. This is REQUIRED in order to get a useful stack trace in IE.\r\n * If the exception does not reach the top of the browser, you will only\r\n * get a stack trace from the point where TraceKit.report was called.\r\n *\r\n * Handlers receive a stackInfo object as described in the\r\n * TraceKit.computeStackTrace docs.\r\n */\r\nTraceKit.report = (function reportModuleWrapper() {\r\n var handlers = [],\r\n lastException = null,\r\n lastExceptionStack = null;\r\n\r\n /**\r\n * Add a crash handler.\r\n * @param {Function} handler\r\n */\r\n function subscribe(handler) {\r\n installGlobalHandler();\r\n handlers.push(handler);\r\n }\r\n\r\n /**\r\n * Remove a crash handler.\r\n * @param {Function} handler\r\n */\r\n function unsubscribe(handler) {\r\n for (var i = handlers.length - 1; i >= 0; --i) {\r\n if (handlers[i] === handler) {\r\n handlers.splice(i, 1);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Dispatch stack information to all handlers.\r\n * @param {Object.} stack\r\n */\r\n function notifyHandlers(stack, windowError) {\r\n var exception = null;\r\n if (windowError && !TraceKit.collectWindowErrors) {\r\n return;\r\n }\r\n for (var i in handlers) {\r\n if (_has(handlers, i)) {\r\n try {\r\n handlers[i].apply(null, [stack].concat(_slice.call(arguments, 2)));\r\n } catch (inner) {\r\n exception = inner;\r\n }\r\n }\r\n }\r\n\r\n if (exception) {\r\n throw exception;\r\n }\r\n }\r\n\r\n var _oldOnerrorHandler, _onErrorHandlerInstalled;\r\n\r\n /**\r\n * Ensures all global unhandled exceptions are recorded.\r\n * Supported by Gecko and IE.\r\n * @param {string} message Error message.\r\n * @param {string} url URL of script that generated the exception.\r\n * @param {(number|string)} lineNo The line number at which the error\r\n * occurred.\r\n */\r\n function traceKitWindowOnError(message, url, lineNo, columnNo, errorObj) {\r\n var stack = null;\r\n\r\n if (errorObj) {\r\n stack = TraceKit.computeStackTrace(errorObj);\r\n }\r\n else\r\n {\r\n if (lastExceptionStack) {\r\n TraceKit.computeStackTrace.augmentStackTraceWithInitialElement(lastExceptionStack, url, lineNo, message);\r\n stack = lastExceptionStack;\r\n lastExceptionStack = null;\r\n lastException = null;\r\n } else {\r\n var location = {\r\n 'url': url,\r\n 'line': lineNo,\r\n 'column': columnNo\r\n };\r\n location.func = TraceKit.computeStackTrace.guessFunctionName(location.url, location.line);\r\n location.context = TraceKit.computeStackTrace.gatherContext(location.url, location.line);\r\n stack = {\r\n 'mode': 'onerror',\r\n 'message': message,\r\n 'url': document.location.href,\r\n 'stack': [location],\r\n 'useragent': window.raygunUserAgent\r\n };\r\n }\r\n }\r\n\r\n notifyHandlers(stack, 'from window.onerror');\r\n\r\n if (_oldOnerrorHandler) {\r\n return _oldOnerrorHandler.apply(this, arguments);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function installGlobalHandler ()\r\n {\r\n if (_onErrorHandlerInstalled === true) {\r\n return;\r\n }\r\n _oldOnerrorHandler = window.onerror;\r\n window.onerror = traceKitWindowOnError;\r\n _onErrorHandlerInstalled = true;\r\n }\r\n\r\n /**\r\n * Reports an unhandled Error to TraceKit.\r\n * @param {Error} ex\r\n */\r\n function report(ex) {\r\n var args;\r\n if (typeof document !== 'undefined') {\r\n args = _slice.call(arguments, 1);\r\n }\r\n\r\n if (lastExceptionStack) {\r\n if (lastException === ex) {\r\n return; // already caught by an inner catch block, ignore\r\n } else {\r\n var s = lastExceptionStack;\r\n lastExceptionStack = null;\r\n lastException = null;\r\n notifyHandlers.apply(null, [s, null].concat(args));\r\n }\r\n }\r\n\r\n var stack = TraceKit.computeStackTrace(ex);\r\n lastExceptionStack = stack;\r\n lastException = ex;\r\n\r\n // If the stack trace is incomplete, wait for 2 seconds for\r\n // slow slow IE to see if onerror occurs or not before reporting\r\n // this exception; otherwise, we will end up with an incomplete\r\n // stack trace\r\n window.setTimeout(function () {\r\n if (lastException === ex) {\r\n lastExceptionStack = null;\r\n lastException = null;\r\n notifyHandlers.apply(null, [stack, null].concat(args));\r\n }\r\n }, (stack.incomplete ? 2000 : 0));\r\n\r\n if (!Raygun.Utilities.isReactNative()) {\r\n throw ex; // re-throw to propagate to the top level (and cause window.onerror)\r\n }\r\n // Else case for this is handled in attach\r\n }\r\n\r\n report.subscribe = subscribe;\r\n report.unsubscribe = unsubscribe;\r\n return report;\r\n}());\r\n\r\n/**\r\n * TraceKit.computeStackTrace: cross-browser stack traces in JavaScript\r\n *\r\n * Syntax:\r\n * s = TraceKit.computeStackTrace.ofCaller([depth])\r\n * s = TraceKit.computeStackTrace(exception) // consider using TraceKit.report instead (see below)\r\n * Returns:\r\n * s.name - exception name\r\n * s.message - exception message\r\n * s.stack[i].url - JavaScript or HTML file URL\r\n * s.stack[i].func - function name, or empty for anonymous functions (if guessing did not work)\r\n * s.stack[i].args - arguments passed to the function, if known\r\n * s.stack[i].line - line number, if known\r\n * s.stack[i].column - column number, if known\r\n * s.stack[i].context - an array of source code lines; the middle element corresponds to the correct line#\r\n * s.mode - 'stack', 'stacktrace', 'multiline', 'callers', 'onerror', or 'failed' -- method used to collect the stack trace\r\n *\r\n * Supports:\r\n * - Firefox: full stack trace with line numbers and unreliable column\r\n * number on top frame\r\n * - Opera 10: full stack trace with line and column numbers\r\n * - Opera 9-: full stack trace with line numbers\r\n * - Chrome: full stack trace with line and column numbers\r\n * - Safari: line and column number for the topmost stacktrace element\r\n * only\r\n * - IE: no line numbers whatsoever\r\n *\r\n * Tries to guess names of anonymous functions by looking for assignments\r\n * in the source code. In IE and Safari, we have to guess source file names\r\n * by searching for function bodies inside all page scripts. This will not\r\n * work for scripts that are loaded cross-domain.\r\n * Here be dragons: some function names may be guessed incorrectly, and\r\n * duplicate functions may be mismatched.\r\n *\r\n * TraceKit.computeStackTrace should only be used for tracing purposes.\r\n * Logging of unhandled exceptions should be done with TraceKit.report,\r\n * which builds on top of TraceKit.computeStackTrace and provides better\r\n * IE support by utilizing the window.onerror event to retrieve information\r\n * about the top of the stack.\r\n *\r\n * Note: In IE and Safari, no stack trace is recorded on the Error object,\r\n * so computeStackTrace instead walks its *own* chain of callers.\r\n * This means that:\r\n * * in Safari, some methods may be missing from the stack trace;\r\n * * in IE, the topmost function in the stack trace will always be the\r\n * caller of computeStackTrace.\r\n *\r\n * This is okay for tracing (because you are likely to be calling\r\n * computeStackTrace from the function you want to be the topmost element\r\n * of the stack trace anyway), but not okay for logging unhandled\r\n * exceptions (because your catch block will likely be far away from the\r\n * inner function that actually caused the exception).\r\n *\r\n * Tracing example:\r\n * function trace(message) {\r\n * var stackInfo = TraceKit.computeStackTrace.ofCaller();\r\n * var data = message + \"\\n\";\r\n * for(var i in stackInfo.stack) {\r\n * var item = stackInfo.stack[i];\r\n * data += (item.func || '[anonymous]') + \"() in \" + item.url + \":\" + (item.line || '0') + \"\\n\";\r\n * }\r\n * if (window.console)\r\n * console.info(data);\r\n * else\r\n * alert(data);\r\n * }\r\n */\r\nTraceKit.computeStackTrace = (function computeStackTraceWrapper() {\r\n var debug = false,\r\n sourceCache = {};\r\n\r\n /**\r\n * Attempts to retrieve source code via XMLHttpRequest, which is used\r\n * to look up anonymous function names.\r\n * @param {string} url URL of source code.\r\n * @return {string} Source contents.\r\n */\r\n function loadSource(url) {\r\n if (typeof url !== 'string') {\r\n return [];\r\n }\r\n\r\n return ''; // Remote fetching disabled due to deprecated synchronous XHR support in browsers\r\n }\r\n\r\n /**\r\n * Retrieves source code from the source code cache.\r\n * @param {string} url URL of source code.\r\n * @return {Array.} Source contents.\r\n */\r\n function getSource(url) {\r\n if (!_has(sourceCache, url)) {\r\n // URL needs to be able to fetched within the acceptable domain. Otherwise,\r\n // cross-domain errors will be triggered.\r\n var source = '';\r\n\r\n url = url || \"\";\r\n\r\n var domain;\r\n if (typeof document !== 'undefined') {\r\n domain = document.domain;\r\n } else {\r\n domain = window.location.hostname;\r\n }\r\n\r\n if (url.indexOf && url.indexOf(domain) !== -1) {\r\n source = loadSource(url);\r\n }\r\n\r\n sourceCache[url] = source ? source.split('\\n') : [];\r\n }\r\n\r\n return sourceCache[url];\r\n }\r\n\r\n /**\r\n * Tries to use an externally loaded copy of source code to determine\r\n * the name of a function by looking at the name of the variable it was\r\n * assigned to, if any.\r\n * @param {string} url URL of source code.\r\n * @param {(string|number)} lineNo Line number in source code.\r\n * @return {string} The function name, if discoverable.\r\n */\r\n function guessFunctionName(url, lineNo) {\r\n var reFunctionArgNames = /function ([^(]*)\\(([^)]*)\\)/,\r\n reGuessFunction = /['\"]?([0-9A-Za-z$_]+)['\"]?\\s*[:=]\\s*(function|eval|new Function)/,\r\n line = '',\r\n maxLines = 10,\r\n source = getSource(url),\r\n m;\r\n\r\n if (!source.length) {\r\n return UNKNOWN_FUNCTION;\r\n }\r\n\r\n // Walk backwards from the first line in the function until we find the line which\r\n // matches the pattern above, which is the function definition\r\n for (var i = 0; i < maxLines; ++i) {\r\n line = source[lineNo - i] + line;\r\n\r\n if (!_isUndefined(line)) {\r\n if ((m = reGuessFunction.exec(line))) {\r\n return m[1];\r\n } else if ((m = reFunctionArgNames.exec(line))) {\r\n return m[1];\r\n }\r\n }\r\n }\r\n\r\n return UNKNOWN_FUNCTION;\r\n }\r\n\r\n /**\r\n * Retrieves the surrounding lines from where an exception occurred.\r\n * @param {string} url URL of source code.\r\n * @param {(string|number)} line Line number in source code to centre\r\n * around for context.\r\n * @return {?Array.} Lines of source code.\r\n */\r\n function gatherContext(url, line) {\r\n var source = getSource(url);\r\n\r\n if (!source.length) {\r\n return null;\r\n }\r\n\r\n var context = [],\r\n // linesBefore & linesAfter are inclusive with the offending line.\r\n // if linesOfContext is even, there will be one extra line\r\n // *before* the offending line.\r\n linesBefore = Math.floor(TraceKit.linesOfContext / 2),\r\n // Add one extra line if linesOfContext is odd\r\n linesAfter = linesBefore + (TraceKit.linesOfContext % 2),\r\n start = Math.max(0, line - linesBefore - 1),\r\n end = Math.min(source.length, line + linesAfter - 1);\r\n\r\n line -= 1; // convert to 0-based index\r\n\r\n for (var i = start; i < end; ++i) {\r\n if (!_isUndefined(source[i])) {\r\n context.push(source[i]);\r\n }\r\n }\r\n\r\n return context.length > 0 ? context : null;\r\n }\r\n\r\n /**\r\n * Escapes special characters, except for whitespace, in a string to be\r\n * used inside a regular expression as a string literal.\r\n * @param {string} text The string.\r\n * @return {string} The escaped string literal.\r\n */\r\n function escapeRegExp(text) {\r\n return text.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#]/g, '\\\\$&');\r\n }\r\n\r\n /**\r\n * Escapes special characters in a string to be used inside a regular\r\n * expression as a string literal. Also ensures that HTML entities will\r\n * be matched the same as their literal friends.\r\n * @param {string} body The string.\r\n * @return {string} The escaped string.\r\n */\r\n function escapeCodeAsRegExpForMatchingInsideHTML(body) {\r\n return escapeRegExp(body).replace('<', '(?:<|<)').replace('>', '(?:>|>)').replace('&', '(?:&|&)').replace('\"', '(?:\"|")').replace(/\\s+/g, '\\\\s+');\r\n }\r\n\r\n /**\r\n * Determines where a code fragment occurs in the source code.\r\n * @param {RegExp} re The function definition.\r\n * @param {Array.} urls A list of URLs to search.\r\n * @return {?Object.} An object containing\r\n * the url, line, and column number of the defined function.\r\n */\r\n function findSourceInUrls(re, urls) {\r\n var source, m;\r\n for (var i = 0, j = urls.length; i < j; ++i) {\r\n // console.log('searching', urls[i]);\r\n if ((source = getSource(urls[i])).length) {\r\n source = source.join('\\n');\r\n if ((m = re.exec(source))) {\r\n // console.log('Found function in ' + urls[i]);\r\n\r\n return {\r\n 'url': urls[i],\r\n 'line': source.substring(0, m.index).split('\\n').length,\r\n 'column': m.index - source.lastIndexOf('\\n', m.index) - 1\r\n };\r\n }\r\n }\r\n }\r\n\r\n // console.log('no match');\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Determines at which column a code fragment occurs on a line of the\r\n * source code.\r\n * @param {string} fragment The code fragment.\r\n * @param {string} url The URL to search.\r\n * @param {(string|number)} line The line number to examine.\r\n * @return {?number} The column number.\r\n */\r\n function findSourceInLine(fragment, url, line) {\r\n var source = getSource(url),\r\n re = new RegExp('\\\\b' + escapeRegExp(fragment) + '\\\\b'),\r\n m;\r\n\r\n line -= 1;\r\n\r\n if (source && source.length > line && (m = re.exec(source[line]))) {\r\n return m.index;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Determines where a function was defined within the source code.\r\n * @param {(Function|string)} func A function reference or serialized\r\n * function definition.\r\n * @return {?Object.} An object containing\r\n * the url, line, and column number of the defined function.\r\n */\r\n function findSourceByFunctionBody(func) {\r\n var urls = [window.location.href],\r\n scripts = document.getElementsByTagName('script'),\r\n body,\r\n code = '' + func,\r\n codeRE = /^function(?:\\s+([\\w$]+))?\\s*\\(([\\w\\s,]*)\\)\\s*\\{\\s*(\\S[\\s\\S]*\\S)\\s*\\}\\s*$/,\r\n eventRE = /^function on([\\w$]+)\\s*\\(event\\)\\s*\\{\\s*(\\S[\\s\\S]*\\S)\\s*\\}\\s*$/,\r\n re,\r\n parts,\r\n result;\r\n\r\n for (var i = 0; i < scripts.length; ++i) {\r\n var script = scripts[i];\r\n if (script.src) {\r\n urls.push(script.src);\r\n }\r\n }\r\n\r\n if (!(parts = codeRE.exec(code))) {\r\n re = new RegExp(escapeRegExp(code).replace(/\\s+/g, '\\\\s+'));\r\n }\r\n\r\n // not sure if this is really necessary, but I don’t have a test\r\n // corpus large enough to confirm that and it was in the original.\r\n else {\r\n var name = parts[1] ? '\\\\s+' + parts[1] : '',\r\n args = parts[2].split(',').join('\\\\s*,\\\\s*');\r\n\r\n body = escapeRegExp(parts[3]).replace(/;$/, ';?'); // semicolon is inserted if the function ends with a comment.replace(/\\s+/g, '\\\\s+');\r\n re = new RegExp('function' + name + '\\\\s*\\\\(\\\\s*' + args + '\\\\s*\\\\)\\\\s*{\\\\s*' + body + '\\\\s*}');\r\n }\r\n\r\n // look for a normal function definition\r\n if ((result = findSourceInUrls(re, urls))) {\r\n return result;\r\n }\r\n\r\n // look for an old-school event handler function\r\n if ((parts = eventRE.exec(code))) {\r\n var event = parts[1];\r\n body = escapeCodeAsRegExpForMatchingInsideHTML(parts[2]);\r\n\r\n // look for a function defined in HTML as an onXXX handler\r\n re = new RegExp('on' + event + '=[\\\\\\'\"]\\\\s*' + body + '\\\\s*[\\\\\\'\"]', 'i');\r\n\r\n if ((result = findSourceInUrls(re, urls[0]))) {\r\n return result;\r\n }\r\n\r\n // look for ???\r\n re = new RegExp(body);\r\n\r\n if ((result = findSourceInUrls(re, urls))) {\r\n return result;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n // Contents of Exception in various browsers.\r\n //\r\n // SAFARI:\r\n // ex.message = Can't find variable: qq\r\n // ex.line = 59\r\n // ex.sourceId = 580238192\r\n // ex.sourceURL = http://...\r\n // ex.expressionBeginOffset = 96\r\n // ex.expressionCaretOffset = 98\r\n // ex.expressionEndOffset = 98\r\n // ex.name = ReferenceError\r\n //\r\n // FIREFOX:\r\n // ex.message = qq is not defined\r\n // ex.fileName = http://...\r\n // ex.lineNumber = 59\r\n // ex.stack = ...stack trace... (see the example below)\r\n // ex.name = ReferenceError\r\n //\r\n // CHROME:\r\n // ex.message = qq is not defined\r\n // ex.name = ReferenceError\r\n // ex.type = not_defined\r\n // ex.arguments = ['aa']\r\n // ex.stack = ...stack trace...\r\n //\r\n // INTERNET EXPLORER:\r\n // ex.message = ...\r\n // ex.name = ReferenceError\r\n //\r\n // OPERA:\r\n // ex.message = ...message... (see the example below)\r\n // ex.name = ReferenceError\r\n // ex.opera#sourceloc = 11 (pretty much useless, duplicates the info in ex.message)\r\n // ex.stacktrace = n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'\r\n\r\n /**\r\n * Computes stack trace information from the stack property.\r\n * Chrome and Gecko use this property.\r\n * Added WinJS regex for Raygun4JS's offline caching support\r\n * Added stack string sanitization for React Native in release mode, for JavaScriptCore, which uses the Gecko regex\r\n * @param {Error} ex\r\n * @return {?Object.} Stack trace information.\r\n */\r\n function computeStackTraceFromStackProp(ex) {\r\n var parseError;\r\n\r\n if (!ex.stack) {\r\n return null;\r\n }\r\n\r\n var chrome = /^\\s*at (.*?) ?\\(((?:file|https?|\\s*|blob|chrome-extension|native|webpack|ionic|capacitor|app|eval||\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i,\r\n gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|ionic|capacitor|app|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i,\r\n winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i,\r\n lines = ex.stack.split('\\n'),\r\n stack = [],\r\n parts,\r\n element,\r\n reference = /^(.*) is undefined$/.exec(ex.message);\r\n\r\n if (Raygun.Utilities.isReactNative()) {\r\n var reactNativeDevicePathStripRegex = /^(.*@)?.*\\/[^\\.]+(\\.app|CodePush)\\/?(.*)/;\r\n var sourcemapPrefix = 'file://reactnative.local/';\r\n\r\n for (var i = 0; i < lines.length; i++) {\r\n parts = reactNativeDevicePathStripRegex.exec(lines[i]);\r\n\r\n if (parts !== null) {\r\n var functionName = parts[1] ? parts[1] : 'anonymous@';\r\n var filenameLineNumAndColumnNum = parts[3];\r\n lines[i] = functionName + sourcemapPrefix + filenameLineNumAndColumnNum;\r\n }\r\n }\r\n }\r\n\r\n for (var i = 0, j = lines.length; i < j; ++i) {\r\n if ((parts = gecko.exec(lines[i]))) {\r\n element = {\r\n 'url': parts[3],\r\n 'func': parts[1] || UNKNOWN_FUNCTION,\r\n 'args': parts[2] ? parts[2].split(',') : '',\r\n 'line': +parts[4],\r\n 'column': parts[5] ? +parts[5] : null\r\n };\r\n } else if ((parts = chrome.exec(lines[i]))) {\r\n element = {\r\n 'url': parts[2],\r\n 'func': parts[1] || UNKNOWN_FUNCTION,\r\n 'line': +parts[3],\r\n 'column': parts[4] ? +parts[4] : null\r\n };\r\n } else if ((parts = winjs.exec(lines[i]))) {\r\n element = {\r\n 'url': parts[2],\r\n 'func': parts[1] || UNKNOWN_FUNCTION,\r\n 'line': +parts[3],\r\n 'column': parts[4] ? +parts[4] : null\r\n };\r\n } else {\r\n continue;\r\n }\r\n\r\n if (!element.func && element.line) {\r\n element.func = guessFunctionName(element.url, element.line);\r\n }\r\n\r\n if (typeof document !== 'undefined' && element.line) {\r\n element.context = gatherContext(element.url, element.line);\r\n }\r\n\r\n stack.push(element);\r\n }\r\n\r\n if (stack[0] && stack[0].line && !stack[0].column && reference) {\r\n stack[0].column = findSourceInLine(reference[1], stack[0].url, stack[0].line);\r\n } else if (!stack[0].column && typeof ex.columnNumber !== 'undefined') {\r\n // Firefox column number\r\n stack[0].column = ex.columnNumber + 1;\r\n }\r\n\r\n if (!stack.length) {\r\n return null;\r\n }\r\n\r\n var res = {\r\n 'mode': 'stack',\r\n 'name': ex ? ex.name : '',\r\n 'message': ex ? ex.message : '',\r\n 'url': typeof document !== 'undefined' ? document.location.href : '',\r\n 'stack': stack,\r\n 'useragent': navigator ? window.raygunUserAgent : '',\r\n 'stackstring': ex && ex.stack ? ex.stack.toString() : ''\r\n };\r\n\r\n return res;\r\n }\r\n\r\n /**\r\n * Computes stack trace information from the stacktrace property.\r\n * Opera 10 uses this property.\r\n * @param {Error} ex\r\n * @return {?Object.} Stack trace information.\r\n */\r\n function computeStackTraceFromStacktraceProp(ex) {\r\n // Access and store the stacktrace property before doing ANYTHING\r\n // else to it because Opera is not very good at providing it\r\n // reliably in other circumstances.\r\n var stacktrace = ex.stacktrace;\r\n\r\n var testRE = / line (\\d+), column (\\d+) in (?:]+)>|([^\\)]+))\\((.*)\\) in (.*):\\s*$/i,\r\n lines = stacktrace ? stacktrace.split('\\n') : [],\r\n stack = [],\r\n parts;\r\n\r\n for (var i = 0, j = lines.length; i < j; i += 2) {\r\n if ((parts = testRE.exec(lines[i]))) {\r\n var element = {\r\n 'line': +parts[1],\r\n 'column': +parts[2],\r\n 'func': parts[3] || parts[4],\r\n 'args': parts[5] ? parts[5].split(',') : [],\r\n 'url': parts[6]\r\n };\r\n\r\n if (!element.func && element.line) {\r\n element.func = guessFunctionName(element.url, element.line);\r\n }\r\n if (element.line) {\r\n try {\r\n element.context = gatherContext(element.url, element.line);\r\n } catch (exc) {}\r\n }\r\n\r\n if (!element.context) {\r\n element.context = [lines[i + 1]];\r\n }\r\n\r\n stack.push(element);\r\n }\r\n }\r\n\r\n if (!stack.length) {\r\n return null;\r\n }\r\n\r\n return {\r\n 'mode': 'stacktrace',\r\n 'name': ex.name,\r\n 'message': ex.message,\r\n 'url': document.location.href,\r\n 'stack': stack,\r\n 'useragent': window.raygunUserAgent,\r\n 'stackstring': stacktrace\r\n };\r\n }\r\n\r\n /**\r\n * NOT TESTED.\r\n * Computes stack trace information from an error message that includes\r\n * the stack trace.\r\n * Opera 9 and earlier use this method if the option to show stack\r\n * traces is turned on in opera:config.\r\n * @param {Error} ex\r\n * @return {?Object.} Stack information.\r\n */\r\n function computeStackTraceFromOperaMultiLineMessage(ex) {\r\n // Opera includes a stack trace into the exception message. An example is:\r\n //\r\n // Statement on line 3: Undefined variable: undefinedFunc\r\n // Backtrace:\r\n // Line 3 of linked script file://localhost/Users/andreyvit/Projects/TraceKit/javascript-client/sample.js: In function zzz\r\n // undefinedFunc(a);\r\n // Line 7 of inline#1 script in file://localhost/Users/andreyvit/Projects/TraceKit/javascript-client/sample.html: In function yyy\r\n // zzz(x, y, z);\r\n // Line 3 of inline#1 script in file://localhost/Users/andreyvit/Projects/TraceKit/javascript-client/sample.html: In function xxx\r\n // yyy(a, a, a);\r\n // Line 1 of function script\r\n // try { xxx('hi'); return false; } catch(ex) { TraceKit.report(ex); }\r\n // ...\r\n\r\n var lines = ex.message.split('\\n');\r\n if (lines.length < 4) {\r\n return null;\r\n }\r\n\r\n var lineRE1 = /^\\s*Line (\\d+) of linked script ((?:file|http|https)\\S+)(?:: in function (\\S+))?\\s*$/i,\r\n lineRE2 = /^\\s*Line (\\d+) of inline#(\\d+) script in ((?:file|http|https)\\S+)(?:: in function (\\S+))?\\s*$/i,\r\n lineRE3 = /^\\s*Line (\\d+) of function script\\s*$/i,\r\n stack = [],\r\n scripts = document.getElementsByTagName('script'),\r\n inlineScriptBlocks = [],\r\n parts,\r\n i,\r\n len,\r\n source;\r\n\r\n for (i in scripts) {\r\n if (_has(scripts, i) && !scripts[i].src) {\r\n inlineScriptBlocks.push(scripts[i]);\r\n }\r\n }\r\n\r\n for (i = 2, len = lines.length; i < len; i += 2) {\r\n var item = null;\r\n if ((parts = lineRE1.exec(lines[i]))) {\r\n item = {\r\n 'url': parts[2],\r\n 'func': parts[3],\r\n 'line': +parts[1]\r\n };\r\n } else if ((parts = lineRE2.exec(lines[i]))) {\r\n item = {\r\n 'url': parts[3],\r\n 'func': parts[4]\r\n };\r\n var relativeLine = (+parts[1]); // relative to the start of the