SYMBOL INDEX (3373 symbols across 219 files)
FILE: alerting/alert/alert.go
type Alert (line 23) | type Alert struct
method ValidateAndSetDefaults (line 76) | func (alert *Alert) ValidateAndSetDefaults() error {
method GetDescription (line 93) | func (alert *Alert) GetDescription() string {
method IsEnabled (line 102) | func (alert *Alert) IsEnabled() bool {
method IsSendingOnResolved (line 110) | func (alert *Alert) IsSendingOnResolved() bool {
method Checksum (line 119) | func (alert *Alert) Checksum() string {
method ProviderOverrideAsBytes (line 131) | func (alert *Alert) ProviderOverrideAsBytes() []byte {
FILE: alerting/alert/alert_test.go
function TestAlert_ValidateAndSetDefaults (line 9) | func TestAlert_ValidateAndSetDefaults(t *testing.T) {
function TestAlert_IsEnabled (line 111) | func TestAlert_IsEnabled(t *testing.T) {
function TestAlert_GetDescription (line 123) | func TestAlert_GetDescription(t *testing.T) {
function TestAlert_IsSendingOnResolved (line 132) | func TestAlert_IsSendingOnResolved(t *testing.T) {
function TestAlert_Checksum (line 144) | func TestAlert_Checksum(t *testing.T) {
FILE: alerting/alert/type.go
type Type (line 5) | type Type
constant TypeAWSSES (line 9) | TypeAWSSES Type = "aws-ses"
constant TypeClickUp (line 12) | TypeClickUp Type = "clickup"
constant TypeCustom (line 15) | TypeCustom Type = "custom"
constant TypeDatadog (line 18) | TypeDatadog Type = "datadog"
constant TypeDiscord (line 21) | TypeDiscord Type = "discord"
constant TypeEmail (line 24) | TypeEmail Type = "email"
constant TypeGitHub (line 27) | TypeGitHub Type = "github"
constant TypeGitLab (line 30) | TypeGitLab Type = "gitlab"
constant TypeGitea (line 33) | TypeGitea Type = "gitea"
constant TypeGoogleChat (line 36) | TypeGoogleChat Type = "googlechat"
constant TypeGotify (line 39) | TypeGotify Type = "gotify"
constant TypeHomeAssistant (line 42) | TypeHomeAssistant Type = "homeassistant"
constant TypeIFTTT (line 45) | TypeIFTTT Type = "ifttt"
constant TypeIlert (line 48) | TypeIlert Type = "ilert"
constant TypeIncidentIO (line 51) | TypeIncidentIO Type = "incident-io"
constant TypeLine (line 54) | TypeLine Type = "line"
constant TypeMatrix (line 57) | TypeMatrix Type = "matrix"
constant TypeMattermost (line 60) | TypeMattermost Type = "mattermost"
constant TypeMessagebird (line 63) | TypeMessagebird Type = "messagebird"
constant TypeNewRelic (line 66) | TypeNewRelic Type = "newrelic"
constant TypeN8N (line 69) | TypeN8N Type = "n8n"
constant TypeNtfy (line 72) | TypeNtfy Type = "ntfy"
constant TypeOpsgenie (line 75) | TypeOpsgenie Type = "opsgenie"
constant TypePagerDuty (line 78) | TypePagerDuty Type = "pagerduty"
constant TypePlivo (line 81) | TypePlivo Type = "plivo"
constant TypePushover (line 84) | TypePushover Type = "pushover"
constant TypeRocketChat (line 87) | TypeRocketChat Type = "rocketchat"
constant TypeSendGrid (line 90) | TypeSendGrid Type = "sendgrid"
constant TypeSignal (line 93) | TypeSignal Type = "signal"
constant TypeSIGNL4 (line 96) | TypeSIGNL4 Type = "signl4"
constant TypeSlack (line 99) | TypeSlack Type = "slack"
constant TypeSplunk (line 102) | TypeSplunk Type = "splunk"
constant TypeSquadcast (line 105) | TypeSquadcast Type = "squadcast"
constant TypeTeams (line 108) | TypeTeams Type = "teams"
constant TypeTeamsWorkflows (line 111) | TypeTeamsWorkflows Type = "teams-workflows"
constant TypeTelegram (line 114) | TypeTelegram Type = "telegram"
constant TypeTwilio (line 117) | TypeTwilio Type = "twilio"
constant TypeVonage (line 120) | TypeVonage Type = "vonage"
constant TypeWebex (line 123) | TypeWebex Type = "webex"
constant TypeZapier (line 126) | TypeZapier Type = "zapier"
constant TypeZulip (line 129) | TypeZulip Type = "zulip"
FILE: alerting/config.go
type Config (line 54) | type Config struct
method GetAlertingProviderByAlertType (line 180) | func (config *Config) GetAlertingProviderByAlertType(alertType alert.T...
method SetAlertingProviderToNil (line 199) | func (config *Config) SetAlertingProviderToNil(p provider.AlertProvide...
FILE: alerting/provider/awsses/awsses.go
constant CharSet (line 20) | CharSet = "UTF-8"
type Config (line 29) | type Config struct
method Validate (line 38) | func (cfg *Config) Validate() error {
method Merge (line 50) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 69) | type AlertProvider struct
method Validate (line 86) | func (provider *AlertProvider) Validate() error {
method Send (line 100) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method createClient (line 136) | func (provider *AlertProvider) createClient(ctx context.Context, cfg *...
method buildMessageSubjectAndBody (line 152) | func (provider *AlertProvider) buildMessageSubjectAndBody(ep *endpoint...
method GetDefaultAlert (line 182) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 187) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 212) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 80) | type Override struct
FILE: alerting/provider/awsses/awsses_test.go
function TestAlertProvider_Validate (line 10) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_ValidateWithOverride (line 29) | func TestAlertProvider_ValidateWithOverride(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 69) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 120) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_getConfigWithOverrides (line 129) | func TestAlertProvider_getConfigWithOverrides(t *testing.T) {
FILE: alerting/provider/clickup/clickup.go
type Config (line 32) | type Config struct
method Validate (line 44) | func (cfg *Config) Validate() error {
method Merge (line 73) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 104) | type AlertProvider struct
method Validate (line 121) | func (provider *AlertProvider) Validate() error {
method Send (line 134) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method CreateTask (line 162) | func (provider *AlertProvider) CreateTask(cfg *Config, body map[string...
method CloseTask (line 186) | func (provider *AlertProvider) CloseTask(cfg *Config, ep *endpoint.End...
method UpdateTaskStatus (line 228) | func (provider *AlertProvider) UpdateTaskStatus(cfg *Config, taskID, s...
method GetDefaultAlert (line 253) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 258) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 282) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 115) | type Override struct
FILE: alerting/provider/clickup/clickup_test.go
function TestAlertProvider_Validate (line 16) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_ValidateSetsDefaultAPIURL (line 50) | func TestAlertProvider_ValidateSetsDefaultAPIURL(t *testing.T) {
function TestAlertProvider_Send (line 60) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 188) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 197) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/custom/custom.go
type Config (line 21) | type Config struct
method Validate (line 32) | func (cfg *Config) Validate() error {
method Merge (line 39) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 62) | type AlertProvider struct
method Validate (line 79) | func (provider *AlertProvider) Validate() error {
method Send (line 83) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildHTTPRequest (line 101) | func (provider *AlertProvider) buildHTTPRequest(cfg *Config, ep *endpo...
method GetAlertStatePlaceholderValue (line 152) | func (provider *AlertProvider) GetAlertStatePlaceholderValue(cfg *Conf...
method GetDefaultAlert (line 166) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 171) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 196) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 73) | type Override struct
FILE: alerting/provider/custom/custom_test.go
function TestAlertProvider_Validate (line 15) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_Send (line 30) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildHTTPRequest (line 107) | func TestAlertProvider_buildHTTPRequest(t *testing.T) {
function TestAlertProviderWithResultErrors_buildHTTPRequest (line 154) | func TestAlertProviderWithResultErrors_buildHTTPRequest(t *testing.T) {
function TestAlertProvider_buildHTTPRequestWithCustomPlaceholder (line 210) | func TestAlertProvider_buildHTTPRequestWithCustomPlaceholder(t *testing....
function TestAlertProvider_buildHTTPRequestWithCustomPlaceholderAndResultConditions (line 264) | func TestAlertProvider_buildHTTPRequestWithCustomPlaceholderAndResultCon...
function TestAlertProvider_GetAlertStatePlaceholderValueDefaults (line 327) | func TestAlertProvider_GetAlertStatePlaceholderValueDefaults(t *testing....
function TestAlertProvider_GetDefaultAlert (line 342) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 351) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/datadog/datadog.go
type Config (line 23) | type Config struct
method Validate (line 29) | func (cfg *Config) Validate() error {
method Merge (line 36) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 49) | type AlertProvider struct
method Validate (line 66) | func (provider *AlertProvider) Validate() error {
method Send (line 80) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 124) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 181) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 186) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 211) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 60) | type Override struct
type Body (line 113) | type Body struct
FILE: alerting/provider/datadog/datadog_test.go
function TestAlertProvider_Validate (line 15) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_Send (line 52) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 176) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
FILE: alerting/provider/discord/discord.go
type Config (line 22) | type Config struct
method Validate (line 28) | func (cfg *Config) Validate() error {
method Merge (line 35) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 48) | type AlertProvider struct
method Validate (line 64) | func (provider *AlertProvider) Validate() error {
method Send (line 78) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 120) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 170) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 175) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 200) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 58) | type Override struct
type Body (line 101) | type Body struct
type Embed (line 106) | type Embed struct
type Field (line 113) | type Field struct
FILE: alerting/provider/discord/discord_test.go
function TestAlertProvider_Validate (line 14) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_ValidateWithOverride (line 25) | func TestAlertProvider_ValidateWithOverride(t *testing.T) {
function TestAlertProvider_Send (line 64) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 172) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 265) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 274) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/email/email.go
type Config (line 24) | type Config struct
method Validate (line 36) | func (cfg *Config) Validate() error {
method Merge (line 49) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 74) | type AlertProvider struct
method Validate (line 91) | func (provider *AlertProvider) Validate() error {
method Send (line 105) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildMessageSubjectAndBody (line 143) | func (provider *AlertProvider) buildMessageSubjectAndBody(ep *endpoint...
method GetDefaultAlert (line 180) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 185) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 210) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 85) | type Override struct
FILE: alerting/provider/email/email_test.go
function TestAlertProvider_Validate (line 10) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_ValidateWithNoCredentials (line 21) | func TestAlertProvider_ValidateWithNoCredentials(t *testing.T) {
function TestAlertProvider_ValidateWithOverride (line 28) | func TestAlertProvider_ValidateWithOverride(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 71) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 152) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 161) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/gitea/gitea.go
type Config (line 24) | type Config struct
method Validate (line 38) | func (cfg *Config) Validate() error {
method Merge (line 85) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 101) | type AlertProvider struct
method Validate (line 109) | func (provider *AlertProvider) Validate() error {
method Send (line 115) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildIssueBody (line 170) | func (provider *AlertProvider) buildIssueBody(ep *endpoint.Endpoint, a...
method GetDefaultAlert (line 193) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 198) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 214) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
FILE: alerting/provider/gitea/gitea_test.go
function isIgnorableTestError (line 16) | func isIgnorableTestError(err error) bool {
function TestAlertProvider_Validate (line 27) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_Send (line 72) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 128) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 182) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 191) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/github/github.go
type Config (line 24) | type Config struct
method Validate (line 34) | func (cfg *Config) Validate() error {
method Merge (line 81) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 91) | type AlertProvider struct
method Validate (line 99) | func (provider *AlertProvider) Validate() error {
method Send (line 105) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildIssueBody (line 143) | func (provider *AlertProvider) buildIssueBody(ep *endpoint.Endpoint, a...
method GetDefaultAlert (line 166) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 171) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 187) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
FILE: alerting/provider/github/github_test.go
function TestAlertProvider_Validate (line 15) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_Send (line 60) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 116) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 170) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 179) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/gitlab/gitlab.go
constant DefaultSeverity (line 20) | DefaultSeverity = "critical"
constant DefaultMonitoringTool (line 21) | DefaultMonitoringTool = "gatus"
type Config (line 29) | type Config struct
method Validate (line 38) | func (cfg *Config) Validate() error {
method Merge (line 56) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 78) | type AlertProvider struct
method Validate (line 86) | func (provider *AlertProvider) Validate() error {
method Send (line 92) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildAlertBody (line 133) | func (provider *AlertProvider) buildAlertBody(cfg *Config, ep *endpoin...
method GetDefaultAlert (line 180) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 185) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 201) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type AlertBody (line 119) | type AlertBody struct
FILE: alerting/provider/gitlab/gitlab_test.go
function TestAlertProvider_Validate (line 14) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_Send (line 54) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildAlertBody (line 111) | func TestAlertProvider_buildAlertBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 160) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 169) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/googlechat/googlechat.go
type Config (line 22) | type Config struct
method Validate (line 27) | func (cfg *Config) Validate() error {
method Merge (line 34) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 44) | type AlertProvider struct
method Validate (line 61) | func (provider *AlertProvider) Validate() error {
method Send (line 75) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 141) | func (provider *AlertProvider) buildRequestBody(ep *endpoint.Endpoint,...
method GetDefaultAlert (line 215) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 220) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 245) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 55) | type Override struct
type Body (line 98) | type Body struct
type Cards (line 102) | type Cards struct
type Sections (line 106) | type Sections struct
type Widgets (line 110) | type Widgets struct
type KeyValue (line 115) | type KeyValue struct
type Buttons (line 123) | type Buttons struct
type TextButton (line 127) | type TextButton struct
type OnClick (line 132) | type OnClick struct
type OpenLink (line 136) | type OpenLink struct
FILE: alerting/provider/googlechat/googlechat_test.go
function TestAlertProvider_Validate (line 14) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_ValidateWithOverride (line 25) | func TestAlertProvider_ValidateWithOverride(t *testing.T) {
function TestAlertProvider_Send (line 62) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 139) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 207) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 216) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/gotify/gotify.go
constant DefaultPriority (line 17) | DefaultPriority = 5
type Config (line 24) | type Config struct
method Validate (line 31) | func (cfg *Config) Validate() error {
method Merge (line 44) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 60) | type AlertProvider struct
method Validate (line 68) | func (provider *AlertProvider) Validate() error {
method Send (line 73) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 103) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 137) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 142) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 158) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Body (line 96) | type Body struct
FILE: alerting/provider/gotify/gotify_test.go
function TestAlertProvider_Validate (line 12) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 48) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 108) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 115) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/homeassistant/homeassistant.go
type Config (line 23) | type Config struct
method Validate (line 28) | func (cfg *Config) Validate() error {
method Merge (line 38) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 48) | type AlertProvider struct
method Validate (line 65) | func (provider *AlertProvider) Validate() error {
method Send (line 79) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 119) | func (provider *AlertProvider) buildRequestBody(ep *endpoint.Endpoint,...
method GetDefaultAlert (line 166) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 171) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 193) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 59) | type Override struct
type Body (line 103) | type Body struct
FILE: alerting/provider/homeassistant/homeassistant_test.go
function TestAlertProvider_Validate (line 14) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_ValidateWithOverride (line 29) | func TestAlertProvider_ValidateWithOverride(t *testing.T) {
function TestAlertProvider_Send (line 55) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 122) | func TestAlertProvider_buildRequestBody(t *testing.T) {
FILE: alerting/provider/ifttt/ifttt.go
type Config (line 23) | type Config struct
method Validate (line 28) | func (cfg *Config) Validate() error {
method Merge (line 38) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 48) | type AlertProvider struct
method Validate (line 65) | func (provider *AlertProvider) Validate() error {
method Send (line 79) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 114) | func (provider *AlertProvider) buildRequestBody(ep *endpoint.Endpoint,...
method GetDefaultAlert (line 154) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 159) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 184) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 59) | type Override struct
type Body (line 107) | type Body struct
FILE: alerting/provider/ifttt/ifttt_test.go
function TestAlertProvider_Validate (line 15) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_Send (line 47) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 147) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
FILE: alerting/provider/ilert/ilert.go
constant restAPIUrl (line 18) | restAPIUrl = "https://api.ilert.com/api/v1/events/gatus/"
type Config (line 26) | type Config struct
method Validate (line 30) | func (cfg *Config) Validate() error {
method Merge (line 37) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 44) | type AlertProvider struct
method Validate (line 59) | func (provider *AlertProvider) Validate() error {
method Send (line 72) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 108) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 136) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 140) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 165) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 54) | type Override struct
type Body (line 97) | type Body struct
FILE: alerting/provider/ilert/ilert_test.go
function TestAlertProvider_Validate (line 16) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_ValidateWithOverride (line 54) | func TestAlertProvider_ValidateWithOverride(t *testing.T) {
function TestAlertProvider_Send (line 81) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_BuildRequestBody (line 160) | func TestAlertProvider_BuildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 224) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 233) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/incidentio/dedup.go
function generateDeduplicationKey (line 14) | func generateDeduplicationKey(ep *endpoint.Endpoint, alert *alert.Alert)...
FILE: alerting/provider/incidentio/incidentio.go
constant restAPIUrl (line 22) | restAPIUrl = "https://api.incident.io/v2/alert_events/http/"
type Config (line 32) | type Config struct
method Validate (line 39) | func (cfg *Config) Validate() error {
method Merge (line 52) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 68) | type AlertProvider struct
method Validate (line 83) | func (provider *AlertProvider) Validate() error {
method Send (line 96) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 141) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetConfig (line 194) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method GetDefaultAlert (line 219) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method ValidateOverrides (line 223) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 78) | type Override struct
type Body (line 127) | type Body struct
type Response (line 137) | type Response struct
FILE: alerting/provider/incidentio/incidentio_test.go
function TestAlertProvider_Validate (line 16) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_Send (line 85) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_BuildRequestBody (line 181) | func TestAlertProvider_BuildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 304) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 313) | func TestAlertProvider_GetConfig(t *testing.T) {
function TestAlertProvider_ValidateWithOverride (line 408) | func TestAlertProvider_ValidateWithOverride(t *testing.T) {
FILE: alerting/provider/line/line.go
type Config (line 23) | type Config struct
method Validate (line 28) | func (cfg *Config) Validate() error {
method Merge (line 38) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 48) | type AlertProvider struct
method Validate (line 65) | func (provider *AlertProvider) Validate() error {
method Send (line 79) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 121) | func (provider *AlertProvider) buildRequestBody(ep *endpoint.Endpoint,...
method GetDefaultAlert (line 160) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 165) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 190) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 59) | type Override struct
type Body (line 110) | type Body struct
type Message (line 115) | type Message struct
FILE: alerting/provider/line/line_test.go
function TestAlertProvider_Validate (line 14) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_Send (line 46) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 136) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function contains (line 145) | func contains(s, substr string) bool {
FILE: alerting/provider/matrix/matrix.go
constant defaultServerURL (line 19) | defaultServerURL = "https://matrix-client.matrix.org"
type Config (line 27) | type Config struct
method Validate (line 38) | func (cfg *Config) Validate() error {
method Merge (line 51) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 64) | type AlertProvider struct
method Validate (line 81) | func (provider *AlertProvider) Validate() error {
method Send (line 95) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 137) | func (provider *AlertProvider) buildRequestBody(ep *endpoint.Endpoint,...
method GetDefaultAlert (line 212) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 217) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 242) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 75) | type Override struct
type Body (line 129) | type Body struct
function buildPlaintextMessageBody (line 148) | func buildPlaintextMessageBody(ep *endpoint.Endpoint, alert *alert.Alert...
function buildHTMLMessageBody (line 173) | func buildHTMLMessageBody(ep *endpoint.Endpoint, alert *alert.Alert, res...
function randStringBytes (line 201) | func randStringBytes(n int) string {
FILE: alerting/provider/matrix/matrix_test.go
function TestAlertProvider_Validate (line 14) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_ValidateWithOverride (line 45) | func TestAlertProvider_ValidateWithOverride(t *testing.T) {
function TestAlertProvider_Send (line 95) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 182) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 231) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 240) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/mattermost/mattermost.go
type Config (line 22) | type Config struct
method Validate (line 28) | func (cfg *Config) Validate() error {
method Merge (line 35) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 48) | type AlertProvider struct
method Validate (line 65) | func (provider *AlertProvider) Validate() error {
method Send (line 79) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 126) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 178) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 183) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 208) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 59) | type Override struct
type Body (line 102) | type Body struct
type Attachment (line 110) | type Attachment struct
type Field (line 119) | type Field struct
FILE: alerting/provider/mattermost/mattermost_test.go
function TestAlertProvider_Validate (line 14) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_ValidateWithOverride (line 25) | func TestAlertProvider_ValidateWithOverride(t *testing.T) {
function TestAlertProvider_Send (line 62) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 139) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 189) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 198) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/messagebird/messagebird.go
constant restAPIURL (line 17) | restAPIURL = "https://rest.messagebird.com/messages"
type Config (line 25) | type Config struct
method Validate (line 31) | func (cfg *Config) Validate() error {
method Merge (line 44) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 57) | type AlertProvider struct
method Validate (line 65) | func (provider *AlertProvider) Validate() error {
method Send (line 71) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 102) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 118) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 123) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 139) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Body (line 95) | type Body struct
FILE: alerting/provider/messagebird/messagebird_test.go
function TestMessagebirdAlertProvider_IsValid (line 14) | func TestMessagebirdAlertProvider_IsValid(t *testing.T) {
function TestAlertProvider_Send (line 31) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 108) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 158) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 167) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/n8n/n8n.go
type Config (line 22) | type Config struct
method Validate (line 27) | func (cfg *Config) Validate() error {
method Merge (line 34) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 44) | type AlertProvider struct
method Validate (line 59) | func (provider *AlertProvider) Validate() error {
method Send (line 73) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 113) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 146) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 151) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 176) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 53) | type Override struct
type Body (line 96) | type Body struct
type ConditionResult (line 107) | type ConditionResult struct
FILE: alerting/provider/n8n/n8n_test.go
function TestAlertProvider_Validate (line 14) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_ValidateWithOverride (line 25) | func TestAlertProvider_ValidateWithOverride(t *testing.T) {
function TestAlertProvider_Send (line 62) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 139) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 266) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 275) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/newrelic/newrelic.go
type Config (line 24) | type Config struct
method Validate (line 30) | func (cfg *Config) Validate() error {
method Merge (line 40) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 53) | type AlertProvider struct
method Validate (line 70) | func (provider *AlertProvider) Validate() error {
method Send (line 84) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 135) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 182) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 187) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 212) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 64) | type Override struct
type Event (line 120) | type Event struct
FILE: alerting/provider/newrelic/newrelic_test.go
function TestAlertProvider_Validate (line 15) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_Send (line 52) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 182) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
FILE: alerting/provider/ntfy/ntfy.go
constant DefaultURL (line 20) | DefaultURL = "https://ntfy.sh"
constant DefaultPriority (line 21) | DefaultPriority = 3
constant TokenPrefix (line 22) | TokenPrefix = "tk_"
type Config (line 32) | type Config struct
method Validate (line 43) | func (cfg *Config) Validate() error {
method Merge (line 62) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 90) | type AlertProvider struct
method Validate (line 107) | func (provider *AlertProvider) Validate() error {
method Send (line 131) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 175) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 210) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 215) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 240) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 101) | type Override struct
type Body (line 164) | type Body struct
FILE: alerting/provider/ntfy/ntfy_test.go
function TestAlertProvider_Validate (line 14) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 99) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_Send (line 181) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_GetConfig (line 304) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/opsgenie/opsgenie.go
constant restAPI (line 20) | restAPI = "https://api.opsgenie.com/v2/alerts"
type Config (line 27) | type Config struct
method Validate (line 57) | func (cfg *Config) Validate() error {
method Merge (line 76) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 97) | type AlertProvider struct
method Validate (line 105) | func (provider *AlertProvider) Validate() error {
method Send (line 112) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method sendAlertRequest (line 138) | func (provider *AlertProvider) sendAlertRequest(cfg *Config, ep *endpo...
method closeAlert (line 143) | func (provider *AlertProvider) closeAlert(cfg *Config, ep *endpoint.En...
method sendRequest (line 149) | func (provider *AlertProvider) sendRequest(cfg *Config, url, method st...
method buildCreateRequestBody (line 172) | func (provider *AlertProvider) buildCreateRequestBody(cfg *Config, ep ...
method buildCloseRequestBody (line 224) | func (provider *AlertProvider) buildCloseRequestBody(ep *endpoint.Endp...
method GetDefaultAlert (line 232) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 237) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 253) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
function buildKey (line 258) | func buildKey(ep *endpoint.Endpoint) string {
function toKebabCase (line 266) | func toKebabCase(val string) string {
type alertCreateRequest (line 270) | type alertCreateRequest struct
type alertCloseRequest (line 281) | type alertCloseRequest struct
FILE: alerting/provider/opsgenie/opsgenie_test.go
function TestAlertProvider_Validate (line 14) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_Send (line 25) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildCreateRequestBody (line 101) | func TestAlertProvider_buildCreateRequestBody(t *testing.T) {
function TestAlertProvider_buildCloseRequestBody (line 277) | func TestAlertProvider_buildCloseRequestBody(t *testing.T) {
function TestAlertProvider_GetConfig (line 322) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/pagerduty/pagerduty.go
constant restAPIURL (line 19) | restAPIURL = "https://events.pagerduty.com/v2/enqueue"
type Config (line 27) | type Config struct
method Validate (line 31) | func (cfg *Config) Validate() error {
method Merge (line 38) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 45) | type AlertProvider struct
method Validate (line 62) | func (provider *AlertProvider) Validate() error {
method Send (line 79) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 131) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 156) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 161) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 186) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 56) | type Override struct
type Body (line 117) | type Body struct
type Payload (line 124) | type Payload struct
type pagerDutyResponsePayload (line 191) | type pagerDutyResponsePayload struct
FILE: alerting/provider/pagerduty/pagerduty_test.go
function TestAlertProvider_Validate (line 14) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_ValidateWithOverride (line 25) | func TestAlertProvider_ValidateWithOverride(t *testing.T) {
function TestAlertProvider_Send (line 52) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 129) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 167) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 176) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/plivo/plivo.go
type Config (line 26) | type Config struct
method Validate (line 33) | func (cfg *Config) Validate() error {
method Merge (line 49) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 65) | type AlertProvider struct
method Validate (line 82) | func (provider *AlertProvider) Validate() error {
method Send (line 96) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method sendSMS (line 112) | func (provider *AlertProvider) sendSMS(cfg *Config, to, message string...
method buildMessage (line 141) | func (provider *AlertProvider) buildMessage(cfg *Config, ep *endpoint....
method GetDefaultAlert (line 150) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 155) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 180) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 76) | type Override struct
FILE: alerting/provider/plivo/plivo_test.go
function TestPlivoAlertProvider_IsValid (line 15) | func TestPlivoAlertProvider_IsValid(t *testing.T) {
function TestAlertProvider_Send (line 113) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildMessage (line 200) | func TestAlertProvider_buildMessage(t *testing.T) {
function TestAlertProvider_sendSMS (line 246) | func TestAlertProvider_sendSMS(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 307) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 316) | func TestAlertProvider_GetConfig(t *testing.T) {
function TestConfig_Validate (line 419) | func TestConfig_Validate(t *testing.T) {
function TestConfig_Merge (line 488) | func TestConfig_Merge(t *testing.T) {
FILE: alerting/provider/provider.go
type AlertProvider (line 49) | type AlertProvider interface
type Config (line 63) | type Config interface
function MergeProviderDefaultAlertIntoEndpointAlert (line 69) | func MergeProviderDefaultAlertIntoEndpointAlert(providerDefaultAlert, en...
FILE: alerting/provider/provider_test.go
function TestParseWithDefaultAlert (line 10) | func TestParseWithDefaultAlert(t *testing.T) {
FILE: alerting/provider/pushover/pushover.go
constant ApiURL (line 18) | ApiURL = "https://api.pushover.net/1/messages.json"
constant defaultPriority (line 19) | defaultPriority = 0
type Config (line 29) | type Config struct
method Validate (line 63) | func (cfg *Config) Validate() error {
method Merge (line 85) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 113) | type AlertProvider struct
method Validate (line 121) | func (provider *AlertProvider) Validate() error {
method Send (line 127) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 163) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 204) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 209) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 225) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Body (line 150) | type Body struct
FILE: alerting/provider/pushover/pushover_test.go
function TestPushoverAlertProvider_IsValid (line 14) | func TestPushoverAlertProvider_IsValid(t *testing.T) {
function TestAlertProvider_Send (line 49) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 126) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 212) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 221) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/rocketchat/rocketchat.go
type Config (line 22) | type Config struct
method Validate (line 27) | func (cfg *Config) Validate() error {
method Merge (line 34) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 44) | type AlertProvider struct
method Validate (line 61) | func (provider *AlertProvider) Validate() error {
method Send (line 75) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 125) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 179) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 184) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 209) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 55) | type Override struct
type Body (line 102) | type Body struct
type Attachment (line 109) | type Attachment struct
type Field (line 118) | type Field struct
FILE: alerting/provider/rocketchat/rocketchat_test.go
function TestAlertProvider_Validate (line 15) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_Send (line 47) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 157) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
FILE: alerting/provider/sendgrid/sendgrid.go
constant ApiURL (line 19) | ApiURL = "https://api.sendgrid.com/v3/mail/send"
type Config (line 29) | type Config struct
method Validate (line 38) | func (cfg *Config) Validate() error {
method Merge (line 51) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 67) | type AlertProvider struct
method Validate (line 84) | func (provider *AlertProvider) Validate() error {
method Send (line 98) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildSendGridPayload (line 148) | func (provider *AlertProvider) buildSendGridPayload(cfg *Config, subje...
method buildMessageSubjectAndBody (line 178) | func (provider *AlertProvider) buildMessageSubjectAndBody(ep *endpoint...
method GetDefaultAlert (line 215) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 220) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 245) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 78) | type Override struct
type SendGridPayload (line 127) | type SendGridPayload struct
type Personalization (line 134) | type Personalization struct
type Email (line 138) | type Email struct
type Content (line 142) | type Content struct
FILE: alerting/provider/sendgrid/sendgrid_test.go
function TestAlertProvider_Validate (line 15) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_ValidateWithOverride (line 26) | func TestAlertProvider_ValidateWithOverride(t *testing.T) {
function TestAlertProvider_Send (line 107) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildSendGridPayload (line 174) | func TestAlertProvider_buildSendGridPayload(t *testing.T) {
function TestAlertProvider_buildMessageSubjectAndBody (line 219) | func TestAlertProvider_buildMessageSubjectAndBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 300) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 309) | func TestAlertProvider_GetConfig(t *testing.T) {
function TestConfig_Validate (line 440) | func TestConfig_Validate(t *testing.T) {
function TestConfig_Merge (line 483) | func TestConfig_Merge(t *testing.T) {
function TestConfig_MergeWithClientConfig (line 498) | func TestConfig_MergeWithClientConfig(t *testing.T) {
FILE: alerting/provider/signal/signal.go
type Config (line 25) | type Config struct
method Validate (line 31) | func (cfg *Config) Validate() error {
method Merge (line 47) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 60) | type AlertProvider struct
method Validate (line 77) | func (provider *AlertProvider) Validate() error {
method Send (line 91) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 128) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 163) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 168) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 193) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 71) | type Override struct
type Body (line 121) | type Body struct
FILE: alerting/provider/signal/signal_test.go
function TestAlertProvider_Validate (line 15) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_Send (line 52) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 144) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
FILE: alerting/provider/signl4/signl4.go
type Config (line 22) | type Config struct
method Validate (line 26) | func (cfg *Config) Validate() error {
method Merge (line 33) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 40) | type AlertProvider struct
method Validate (line 57) | func (provider *AlertProvider) Validate() error {
method Send (line 71) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 108) | func (provider *AlertProvider) buildRequestBody(ep *endpoint.Endpoint,...
method GetDefaultAlert (line 151) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 156) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 181) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 51) | type Override struct
type Body (line 99) | type Body struct
FILE: alerting/provider/signl4/signl4_test.go
function TestAlertProvider_Validate (line 14) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_ValidateWithOverride (line 25) | func TestAlertProvider_ValidateWithOverride(t *testing.T) {
function TestAlertProvider_Send (line 62) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 139) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 224) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 233) | func TestAlertProvider_GetConfig(t *testing.T) {
function TestAlertProvider_GetConfigWithInvalidAlertOverride (line 324) | func TestAlertProvider_GetConfigWithInvalidAlertOverride(t *testing.T) {
function TestAlertProvider_ValidateWithDuplicateGroupOverride (line 356) | func TestAlertProvider_ValidateWithDuplicateGroupOverride(t *testing.T) {
function TestAlertProvider_ValidateOverridesWithInvalidAlert (line 378) | func TestAlertProvider_ValidateOverridesWithInvalidAlert(t *testing.T) {
FILE: alerting/provider/slack/slack.go
type Config (line 22) | type Config struct
method Validate (line 27) | func (cfg *Config) Validate() error {
method Merge (line 34) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 44) | type AlertProvider struct
method Validate (line 61) | func (provider *AlertProvider) Validate() error {
method Send (line 75) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 118) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 167) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 172) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 197) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 55) | type Override struct
type Body (line 98) | type Body struct
type Attachment (line 103) | type Attachment struct
type Field (line 111) | type Field struct
FILE: alerting/provider/slack/slack_test.go
function TestAlertProvider_Validate (line 14) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_ValidateWithOverride (line 25) | func TestAlertProvider_ValidateWithOverride(t *testing.T) {
function TestAlertProvider_Send (line 62) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 139) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 234) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 243) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/splunk/splunk.go
type Config (line 24) | type Config struct
method Validate (line 32) | func (cfg *Config) Validate() error {
method Merge (line 42) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 61) | type AlertProvider struct
method Validate (line 78) | func (provider *AlertProvider) Validate() error {
method Send (line 92) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 139) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 187) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 192) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 217) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 72) | type Override struct
type Body (line 120) | type Body struct
type Event (line 128) | type Event struct
FILE: alerting/provider/splunk/splunk_test.go
function TestAlertProvider_Validate (line 14) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_Send (line 51) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 148) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
FILE: alerting/provider/squadcast/squadcast.go
type Config (line 22) | type Config struct
method Validate (line 26) | func (cfg *Config) Validate() error {
method Merge (line 33) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 40) | type AlertProvider struct
method Validate (line 57) | func (provider *AlertProvider) Validate() error {
method Send (line 71) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 107) | func (provider *AlertProvider) buildRequestBody(ep *endpoint.Endpoint,...
method GetDefaultAlert (line 157) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 162) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 187) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 51) | type Override struct
type Body (line 98) | type Body struct
FILE: alerting/provider/squadcast/squadcast_test.go
function TestAlertProvider_Validate (line 15) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_Send (line 42) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 134) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
FILE: alerting/provider/teams/teams.go
type Config (line 22) | type Config struct
method Validate (line 30) | func (cfg *Config) Validate() error {
method Merge (line 37) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 50) | type AlertProvider struct
method Validate (line 67) | func (provider *AlertProvider) Validate() error {
method Send (line 81) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 119) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 163) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 168) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 193) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 61) | type Override struct
type Body (line 104) | type Body struct
type Section (line 113) | type Section struct
FILE: alerting/provider/teams/teams_test.go
function TestAlertProvider_Validate (line 14) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_ValidateWithOverride (line 25) | func TestAlertProvider_ValidateWithOverride(t *testing.T) {
function TestAlertProvider_Send (line 62) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 139) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 200) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 209) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/teamsworkflows/teamsworkflows.go
type Config (line 22) | type Config struct
method Validate (line 27) | func (cfg *Config) Validate() error {
method Merge (line 34) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 44) | type AlertProvider struct
method Validate (line 61) | func (provider *AlertProvider) Validate() error {
method Send (line 75) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 138) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 230) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 235) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 260) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 55) | type Override struct
type AdaptiveCardBody (line 99) | type AdaptiveCardBody struct
type CardBody (line 107) | type CardBody struct
type MSTeamsBody (line 121) | type MSTeamsBody struct
type FactSetBody (line 126) | type FactSetBody struct
type Fact (line 132) | type Fact struct
FILE: alerting/provider/teamsworkflows/teamsworkflows_test.go
function TestAlertProvider_Validate (line 14) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_ValidateWithOverride (line 25) | func TestAlertProvider_ValidateWithOverride(t *testing.T) {
function TestAlertProvider_Send (line 62) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 139) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 200) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 209) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/telegram/telegram.go
constant ApiURL (line 17) | ApiURL = "https://api.telegram.org"
type Config (line 25) | type Config struct
method Validate (line 34) | func (cfg *Config) Validate() error {
method Merge (line 47) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 66) | type AlertProvider struct
method Validate (line 83) | func (provider *AlertProvider) Validate() error {
method Send (line 97) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 128) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 164) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 169) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 194) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 77) | type Override struct
type Body (line 120) | type Body struct
FILE: alerting/provider/telegram/telegram_test.go
function TestAlertProvider_Validate (line 14) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_Send (line 47) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 124) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 200) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 209) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/twilio/twilio.go
type Config (line 26) | type Config struct
method Validate (line 38) | func (cfg *Config) Validate() error {
method Merge (line 54) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 76) | type AlertProvider struct
method Validate (line 84) | func (provider *AlertProvider) Validate() error {
method Send (line 89) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 114) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 147) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 152) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 168) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
FILE: alerting/provider/twilio/twilio_test.go
function TestTwilioAlertProvider_IsValid (line 13) | func TestTwilioAlertProvider_IsValid(t *testing.T) {
function TestAlertProvider_Send (line 31) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 108) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 175) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 184) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/vonage/vonage.go
constant ApiURL (line 18) | ApiURL = "https://rest.nexmo.com/sms/json"
type Config (line 28) | type Config struct
method Validate (line 35) | func (cfg *Config) Validate() error {
method Merge (line 51) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 67) | type AlertProvider struct
method Validate (line 84) | func (provider *AlertProvider) Validate() error {
method Send (line 98) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method sendSMS (line 115) | func (provider *AlertProvider) sendSMS(cfg *Config, to, message string...
method buildMessage (line 170) | func (provider *AlertProvider) buildMessage(cfg *Config, ep *endpoint....
method GetDefaultAlert (line 179) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 184) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 209) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 78) | type Override struct
type Response (line 154) | type Response struct
type Message (line 159) | type Message struct
FILE: alerting/provider/vonage/vonage_test.go
function TestVonageAlertProvider_IsValid (line 15) | func TestVonageAlertProvider_IsValid(t *testing.T) {
function TestVonageAlertProvider_IsValidWithOverride (line 33) | func TestVonageAlertProvider_IsValidWithOverride(t *testing.T) {
function TestVonageAlertProvider_IsNotValidWithInvalidOverrideGroup (line 58) | func TestVonageAlertProvider_IsNotValidWithInvalidOverrideGroup(t *testi...
function TestVonageAlertProvider_IsNotValidWithDuplicateOverrideGroup (line 83) | func TestVonageAlertProvider_IsNotValidWithDuplicateOverrideGroup(t *tes...
function TestVonageAlertProvider_IsValidWithInvalidFrom (line 117) | func TestVonageAlertProvider_IsValidWithInvalidFrom(t *testing.T) {
function TestVonageAlertProvider_IsValidWithInvalidTo (line 131) | func TestVonageAlertProvider_IsValidWithInvalidTo(t *testing.T) {
function TestAlertProvider_Send (line 145) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_buildMessage (line 279) | func TestAlertProvider_buildMessage(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 339) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_GetConfig (line 348) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: alerting/provider/webex/webex.go
type Config (line 22) | type Config struct
method Validate (line 26) | func (cfg *Config) Validate() error {
method Merge (line 33) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 40) | type AlertProvider struct
method Validate (line 57) | func (provider *AlertProvider) Validate() error {
method Send (line 71) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 105) | func (provider *AlertProvider) buildRequestBody(ep *endpoint.Endpoint,...
method GetDefaultAlert (line 138) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 143) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 168) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 51) | type Override struct
type Body (line 98) | type Body struct
FILE: alerting/provider/webex/webex_test.go
function TestAlertProvider_Validate (line 15) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_Send (line 42) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 127) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
FILE: alerting/provider/zapier/zapier.go
type Config (line 23) | type Config struct
method Validate (line 27) | func (cfg *Config) Validate() error {
method Merge (line 34) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 41) | type AlertProvider struct
method Validate (line 58) | func (provider *AlertProvider) Validate() error {
method Send (line 72) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 117) | func (provider *AlertProvider) buildRequestBody(ep *endpoint.Endpoint,...
method GetDefaultAlert (line 164) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 169) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 194) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 52) | type Override struct
type Body (line 99) | type Body struct
FILE: alerting/provider/zapier/zapier_test.go
function TestAlertProvider_Validate (line 15) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_Send (line 42) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 155) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
FILE: alerting/provider/zulip/zulip.go
type Config (line 25) | type Config struct
method Validate (line 32) | func (cfg *Config) Validate() error {
method Merge (line 48) | func (cfg *Config) Merge(override *Config) {
type AlertProvider (line 64) | type AlertProvider struct
method Validate (line 81) | func (provider *AlertProvider) Validate() error {
method Send (line 95) | func (provider *AlertProvider) Send(ep *endpoint.Endpoint, alert *aler...
method buildRequestBody (line 122) | func (provider *AlertProvider) buildRequestBody(cfg *Config, ep *endpo...
method GetDefaultAlert (line 150) | func (provider *AlertProvider) GetDefaultAlert() *alert.Alert {
method GetConfig (line 155) | func (provider *AlertProvider) GetConfig(group string, alert *alert.Al...
method ValidateOverrides (line 180) | func (provider *AlertProvider) ValidateOverrides(group string, alert *...
type Override (line 75) | type Override struct
FILE: alerting/provider/zulip/zulip_test.go
function TestAlertProvider_Validate (line 16) | func TestAlertProvider_Validate(t *testing.T) {
function TestAlertProvider_buildRequestBody (line 93) | func TestAlertProvider_buildRequestBody(t *testing.T) {
function TestAlertProvider_GetDefaultAlert (line 219) | func TestAlertProvider_GetDefaultAlert(t *testing.T) {
function TestAlertProvider_Send (line 228) | func TestAlertProvider_Send(t *testing.T) {
function TestAlertProvider_GetConfig (line 339) | func TestAlertProvider_GetConfig(t *testing.T) {
FILE: api/api.go
type API (line 25) | type API struct
method Router (line 43) | func (a *API) Router() *fiber.App {
method createRouter (line 47) | func (a *API) createRouter(cfg *config.Config) *fiber.App {
function New (line 29) | func New(cfg *config.Config) *API {
FILE: api/api_test.go
function TestNew (line 14) | func TestNew(t *testing.T) {
FILE: api/badge.go
constant badgeColorHexAwesome (line 21) | badgeColorHexAwesome = "#40cc11"
constant badgeColorHexGreat (line 22) | badgeColorHexGreat = "#94cc11"
constant badgeColorHexGood (line 23) | badgeColorHexGood = "#ccd311"
constant badgeColorHexPassable (line 24) | badgeColorHexPassable = "#ccb311"
constant badgeColorHexBad (line 25) | badgeColorHexBad = "#cc8111"
constant badgeColorHexVeryBad (line 26) | badgeColorHexVeryBad = "#c7130a"
constant HealthStatusUp (line 30) | HealthStatusUp = "up"
constant HealthStatusDown (line 31) | HealthStatusDown = "down"
constant HealthStatusUnknown (line 32) | HealthStatusUnknown = "?"
function UptimeBadge (line 42) | func UptimeBadge(c *fiber.Ctx) error {
function ResponseTimeBadge (line 79) | func ResponseTimeBadge(cfg *config.Config) fiber.Handler {
function HealthBadge (line 116) | func HealthBadge(c *fiber.Ctx) error {
function HealthBadgeShields (line 145) | func HealthBadgeShields(c *fiber.Ctx) error {
function generateUptimeBadgeSVG (line 178) | func generateUptimeBadgeSVG(duration string, uptime float64) []byte {
function getBadgeColorFromUptime (line 231) | func getBadgeColorFromUptime(uptime float64) string {
function generateResponseTimeBadgeSVG (line 246) | func generateResponseTimeBadgeSVG(duration string, averageResponseTime i...
function getBadgeColorFromResponseTime (line 296) | func getBadgeColorFromResponseTime(responseTime int, key string, cfg *co...
function generateHealthBadgeSVG (line 310) | func generateHealthBadgeSVG(healthStatus string) []byte {
function generateHealthBadgeShields (line 359) | func generateHealthBadgeShields(healthStatus string) ([]byte, error) {
function getBadgeColorFromHealth (line 370) | func getBadgeColorFromHealth(healthStatus string) string {
function getBadgeShieldsColorFromHealth (line 379) | func getBadgeShieldsColorFromHealth(healthStatus string) string {
FILE: api/badge_test.go
function TestBadge (line 17) | func TestBadge(t *testing.T) {
function TestGetBadgeColorFromUptime (line 161) | func TestGetBadgeColorFromUptime(t *testing.T) {
function TestGetBadgeColorFromResponseTime (line 216) | func TestGetBadgeColorFromResponseTime(t *testing.T) {
function TestGetBadgeColorFromHealth (line 370) | func TestGetBadgeColorFromHealth(t *testing.T) {
FILE: api/cache.go
constant cacheTTL (line 10) | cacheTTL = 10 * time.Second
FILE: api/chart.go
constant timeFormat (line 19) | timeFormat = "3:04PM"
function ResponseTimeChart (line 34) | func ResponseTimeChart(c *fiber.Ctx) error {
function ResponseTimeHistory (line 130) | func ResponseTimeHistory(c *fiber.Ctx) error {
FILE: api/chart_test.go
function TestResponseTimeChart (line 15) | func TestResponseTimeChart(t *testing.T) {
function TestResponseTimeHistory (line 85) | func TestResponseTimeHistory(t *testing.T) {
FILE: api/config.go
type ConfigHandler (line 12) | type ConfigHandler struct
method GetConfig (line 17) | func (handler ConfigHandler) GetConfig(c *fiber.Ctx) error {
FILE: api/config_test.go
function TestConfigHandler_ServeHTTP (line 12) | func TestConfigHandler_ServeHTTP(t *testing.T) {
FILE: api/custom_css.go
type CustomCSSHandler (line 7) | type CustomCSSHandler struct
method GetCustomCSS (line 11) | func (handler CustomCSSHandler) GetCustomCSS(c *fiber.Ctx) error {
FILE: api/endpoint_status.go
function EndpointStatuses (line 22) | func EndpointStatuses(cfg *config.Config) fiber.Handler {
function getEndpointStatusesFromRemoteInstances (line 54) | func getEndpointStatusesFromRemoteInstances(remoteConfig *remote.Config)...
function EndpointStatus (line 87) | func EndpointStatus(cfg *config.Config) fiber.Handler {
FILE: api/endpoint_status_test.go
function TestEndpointStatus (line 84) | func TestEndpointStatus(t *testing.T) {
function TestEndpointStatuses (line 154) | func TestEndpointStatuses(t *testing.T) {
FILE: api/external_endpoint.go
function CreateExternalEndpointResult (line 18) | func CreateExternalEndpointResult(cfg *config.Config) fiber.Handler {
FILE: api/external_endpoint_test.go
function TestCreateExternalEndpointResult (line 18) | func TestCreateExternalEndpointResult(t *testing.T) {
FILE: api/raw.go
function UptimeRaw (line 14) | func UptimeRaw(c *fiber.Ctx) error {
function ResponseTimeRaw (line 49) | func ResponseTimeRaw(c *fiber.Ctx) error {
FILE: api/raw_test.go
function TestRawDataEndpoint (line 16) | func TestRawDataEndpoint(t *testing.T) {
FILE: api/spa.go
function SinglePageApplication (line 13) | func SinglePageApplication(uiConfig *ui.Config) fiber.Handler {
FILE: api/spa_test.go
function TestSinglePageApplication (line 18) | func TestSinglePageApplication(t *testing.T) {
FILE: api/suite_status.go
function SuiteStatuses (line 14) | func SuiteStatuses(cfg *config.Config) fiber.Handler {
function SuiteStatus (line 37) | func SuiteStatus(cfg *config.Config) fiber.Handler {
FILE: api/suite_status_test.go
function TestSuiteStatus (line 144) | func TestSuiteStatus(t *testing.T) {
function TestSuiteStatus_SuiteNotInStoreButInConfig (line 214) | func TestSuiteStatus_SuiteNotInStoreButInConfig(t *testing.T) {
function TestSuiteStatuses (line 366) | func TestSuiteStatuses(t *testing.T) {
function TestSuiteStatuses_NoSuitesInStoreButExistInConfig (line 450) | func TestSuiteStatuses_NoSuitesInStoreButExistInConfig(t *testing.T) {
function boolPtr (line 504) | func boolPtr(b bool) *bool {
function contains (line 508) | func contains(s, substr string) bool {
FILE: api/util.go
constant DefaultPage (line 11) | DefaultPage = 1
constant DefaultPageSize (line 14) | DefaultPageSize = 50
function extractPageAndPageSizeFromRequest (line 17) | func extractPageAndPageSizeFromRequest(c *fiber.Ctx, maximumNumberOfResu...
FILE: api/util_test.go
function TestExtractPageAndPageSizeFromRequest (line 12) | func TestExtractPageAndPageSizeFromRequest(t *testing.T) {
FILE: client/client.go
constant dnsPort (line 34) | dnsPort = 53
function GetHTTPClient (line 47) | func GetHTTPClient(config *Config) *http.Client {
function GetDomainExpiration (line 58) | func GetDomainExpiration(hostname string) (domainExpiration time.Duratio...
function parseLocalAddressPlaceholder (line 92) | func parseLocalAddressPlaceholder(item string, localAddr net.Addr) string {
function CanCreateNetworkConnection (line 98) | func CanCreateNetworkConnection(netType string, address string, body str...
function CanCreateSCTPConnection (line 125) | func CanCreateSCTPConnection(address string, config *Config) bool {
function CanPerformStartTLS (line 151) | func CanPerformStartTLS(address string, config *Config) (connected bool,...
function CanPerformTLS (line 209) | func CanPerformTLS(address string, body string, config *Config) (connect...
function CanCreateSSHConnection (line 251) | func CanCreateSSHConnection(address, username, password, privateKey stri...
function CheckSSHBanner (line 289) | func CheckSSHBanner(address string, cfg *Config) (bool, int, error) {
function ExecuteSSHCommand (line 318) | func ExecuteSSHCommand(sshClient *ssh.Client, body string, config *Confi...
function Ping (line 355) | func Ping(address string, config *Config) (bool, time.Duration) {
function ShouldRunPingerAsPrivileged (line 377) | func ShouldRunPingerAsPrivileged() bool {
function QueryWebSocket (line 395) | func QueryWebSocket(address, body string, headers map[string]string, con...
function QueryDNS (line 446) | func QueryDNS(queryType, queryName, url string) (connected bool, dnsRcod...
function InjectHTTPClient (line 510) | func InjectHTTPClient(httpClient *http.Client) {
function rdapQuery (line 515) | func rdapQuery(hostname string) (*whois.Response, error) {
function reverseNameForIP (line 535) | func reverseNameForIP(ipStr string) (string, error) {
FILE: client/client_test.go
function TestGetHTTPClient (line 19) | func TestGetHTTPClient(t *testing.T) {
function TestRdapQuery (line 45) | func TestRdapQuery(t *testing.T) {
function TestGetDomainExpiration (line 60) | func TestGetDomainExpiration(t *testing.T) {
function TestPing (line 88) | func TestPing(t *testing.T) {
function TestShouldRunPingerAsPrivileged (line 136) | func TestShouldRunPingerAsPrivileged(t *testing.T) {
function TestCanPerformStartTLS (line 162) | func TestCanPerformStartTLS(t *testing.T) {
function TestCanPerformTLS (line 223) | func TestCanPerformTLS(t *testing.T) {
function TestCanCreateConnection (line 292) | func TestCanCreateConnection(t *testing.T) {
function TestHttpClientProvidesOAuth2BearerToken (line 307) | func TestHttpClientProvidesOAuth2BearerToken(t *testing.T) {
function TestQueryWebSocket (line 363) | func TestQueryWebSocket(t *testing.T) {
function TestTlsRenegotiation (line 375) | func TestTlsRenegotiation(t *testing.T) {
function TestQueryDNS (line 419) | func TestQueryDNS(t *testing.T) {
function TestCheckSSHBanner (line 549) | func TestCheckSSHBanner(t *testing.T) {
FILE: client/config.go
constant defaultTimeout (line 22) | defaultTimeout = 10 * time.Second
function GetDefaultConfig (line 41) | func GetDefaultConfig() *Config {
type Config (line 47) | type Config struct
method ValidateAndSetDefaults (line 120) | func (c *Config) ValidateAndSetDefaults() error {
method HasCustomDNSResolver (line 145) | func (c *Config) HasCustomDNSResolver() bool {
method parseDNSResolver (line 150) | func (c *Config) parseDNSResolver() (*DNSResolverConfig, error) {
method HasOAuth2Config (line 177) | func (c *Config) HasOAuth2Config() bool {
method HasIAPConfig (line 182) | func (c *Config) HasIAPConfig() bool {
method HasTLSConfig (line 187) | func (c *Config) HasTLSConfig() bool {
method getHTTPClient (line 214) | func (c *Config) getHTTPClient() *http.Client {
type DNSResolverConfig (line 89) | type DNSResolverConfig struct
type OAuth2Config (line 96) | type OAuth2Config struct
method isValid (line 197) | func (c *OAuth2Config) isValid() bool {
type IAPConfig (line 104) | type IAPConfig struct
method isValid (line 192) | func (c *IAPConfig) isValid() bool {
type TLSConfig (line 109) | type TLSConfig struct
method isValid (line 202) | func (t *TLSConfig) isValid() error {
function validateIAPToken (line 289) | func validateIAPToken(ctx context.Context, c IAPConfig) bool {
function configureIAP (line 310) | func configureIAP(httpClient *http.Client, c IAPConfig) *http.Client {
function configureOAuth2 (line 327) | func configureOAuth2(httpClient *http.Client, c OAuth2Config) *http.Clie...
function configureTLS (line 341) | func configureTLS(tlsConfig *tls.Config, c TLSConfig) *tls.Config {
FILE: client/config_test.go
function TestConfig_getHTTPClient (line 10) | func TestConfig_getHTTPClient(t *testing.T) {
function TestConfig_ValidateAndSetDefaults_withCustomDNSResolver (line 40) | func TestConfig_ValidateAndSetDefaults_withCustomDNSResolver(t *testing....
function TestConfig_getHTTPClient_withCustomProxyURL (line 84) | func TestConfig_getHTTPClient_withCustomProxyURL(t *testing.T) {
function TestConfig_TlsIsValid (line 110) | func TestConfig_TlsIsValid(t *testing.T) {
FILE: client/grpc.go
function PerformGRPCHealthCheck (line 18) | func PerformGRPCHealthCheck(address string, useTLS bool, cfg *Config) (b...
FILE: config/announcement/announcement.go
constant TypeOutage (line 11) | TypeOutage = "outage"
constant TypeWarning (line 14) | TypeWarning = "warning"
constant TypeInformation (line 17) | TypeInformation = "information"
constant TypeOperational (line 20) | TypeOperational = "operational"
constant TypeNone (line 23) | TypeNone = "none"
type Announcement (line 47) | type Announcement struct
method ValidateAndSetDefaults (line 63) | func (a *Announcement) ValidateAndSetDefaults() error {
function SortByTimestamp (line 84) | func SortByTimestamp(announcements []*Announcement) {
function ValidateAndSetDefaults (line 91) | func ValidateAndSetDefaults(announcements []*Announcement) error {
FILE: config/announcement/announcement_test.go
function TestAnnouncement_ValidateAndSetDefaults (line 9) | func TestAnnouncement_ValidateAndSetDefaults(t *testing.T) {
function TestAnnouncement_ValidateAndSetDefaults_AllTypes (line 89) | func TestAnnouncement_ValidateAndSetDefaults_AllTypes(t *testing.T) {
function TestSortByTimestamp (line 109) | func TestSortByTimestamp(t *testing.T) {
function TestSortByTimestamp_WithArchivedField (line 130) | func TestSortByTimestamp_WithArchivedField(t *testing.T) {
function TestValidateAndSetDefaults_Slice (line 155) | func TestValidateAndSetDefaults_Slice(t *testing.T) {
function TestAnnouncement_ArchivedFieldDefaults (line 219) | func TestAnnouncement_ArchivedFieldDefaults(t *testing.T) {
function TestValidateAndSetDefaults_EmptySlice (line 236) | func TestValidateAndSetDefaults_EmptySlice(t *testing.T) {
FILE: config/config.go
constant DefaultConfigurationFilePath (line 38) | DefaultConfigurationFilePath = "config/config.yaml"
constant DefaultFallbackConfigurationFilePath (line 42) | DefaultFallbackConfigurationFilePath = "config/config.yml"
constant DefaultConcurrency (line 45) | DefaultConcurrency = 3
type Config (line 63) | type Config struct
method GetUniqueExtraMetricLabels (line 133) | func (config *Config) GetUniqueExtraMetricLabels() []string {
method GetEndpointByKey (line 152) | func (config *Config) GetEndpointByKey(key string) *endpoint.Endpoint {
method GetExternalEndpointByKey (line 162) | func (config *Config) GetExternalEndpointByKey(key string) *endpoint.E...
method HasLoadedConfigurationBeenModified (line 174) | func (config *Config) HasLoadedConfigurationBeenModified() bool {
method UpdateLastFileModTime (line 193) | func (config *Config) UpdateLastFileModTime() {
function LoadConfiguration (line 199) | func LoadConfiguration(configPath string) (*Config, error) {
function walkConfigDir (line 261) | func walkConfigDir(path string, fn fs.WalkDirFunc) error {
function parseAndValidateConfigBytes (line 282) | func parseAndValidateConfigBytes(yamlBytes []byte) (config *Config, err ...
function ValidateConnectivityConfig (line 348) | func ValidateConnectivityConfig(config *Config) error {
function ValidateTunnelingConfig (line 358) | func ValidateTunnelingConfig(config *Config) error {
function resolveTunnelForClientConfig (line 383) | func resolveTunnelForClientConfig(config *Config, clientConfig *client.C...
function ValidateAnnouncementsConfig (line 408) | func ValidateAnnouncementsConfig(config *Config) error {
function ValidateRemoteConfig (line 419) | func ValidateRemoteConfig(config *Config) error {
function ValidateStorageConfig (line 428) | func ValidateStorageConfig(config *Config) error {
function ValidateMaintenanceConfig (line 443) | func ValidateMaintenanceConfig(config *Config) error {
function ValidateUIConfig (line 454) | func ValidateUIConfig(config *Config) error {
function ValidateWebConfig (line 465) | func ValidateWebConfig(config *Config) error {
function ValidateEndpointsConfig (line 474) | func ValidateEndpointsConfig(config *Config) error {
function ValidateSuitesConfig (line 505) | func ValidateSuitesConfig(config *Config) error {
function ValidateUniqueKeys (line 540) | func ValidateUniqueKeys(config *Config) error {
function ValidateSecurityConfig (line 577) | func ValidateSecurityConfig(config *Config) error {
function ValidateAlertingConfig (line 591) | func ValidateAlertingConfig(alertingConfig *alerting.Config, endpoints [...
function ValidateAndSetConcurrencyDefaults (line 688) | func ValidateAndSetConcurrencyDefaults(config *Config) {
FILE: config/config_test.go
function TestLoadConfiguration (line 65) | func TestLoadConfiguration(t *testing.T) {
function TestConfig_HasLoadedConfigurationBeenModified (line 296) | func TestConfig_HasLoadedConfigurationBeenModified(t *testing.T) {
function TestParseAndValidateConfigBytes (line 348) | func TestParseAndValidateConfigBytes(t *testing.T) {
function TestParseAndValidateConfigBytesDefault (line 502) | func TestParseAndValidateConfigBytesDefault(t *testing.T) {
function TestParseAndValidateConfigBytesWithAddress (line 542) | func TestParseAndValidateConfigBytesWithAddress(t *testing.T) {
function TestParseAndValidateConfigBytesWithPort (line 575) | func TestParseAndValidateConfigBytesWithPort(t *testing.T) {
function TestParseAndValidateConfigBytesWithPortAndHost (line 608) | func TestParseAndValidateConfigBytesWithPortAndHost(t *testing.T) {
function TestParseAndValidateConfigBytesWithInvalidPort (line 642) | func TestParseAndValidateConfigBytesWithInvalidPort(t *testing.T) {
function TestParseAndValidateConfigBytesWithMetricsAndCustomUserAgentHeader (line 658) | func TestParseAndValidateConfigBytesWithMetricsAndCustomUserAgentHeader(...
function TestParseAndValidateConfigBytesWithMetricsAndHostAndPort (line 695) | func TestParseAndValidateConfigBytesWithMetricsAndHostAndPort(t *testing...
function TestParseAndValidateBadConfigBytes (line 733) | func TestParseAndValidateBadConfigBytes(t *testing.T) {
function TestParseAndValidateConfigBytesWithAlerting (line 749) | func TestParseAndValidateConfigBytesWithAlerting(t *testing.T) {
function TestParseAndValidateConfigBytesWithAlertingAndDefaultAlert (line 937) | func TestParseAndValidateConfigBytesWithAlertingAndDefaultAlert(t *testi...
function TestParseAndValidateConfigBytesWithAlertingAndDefaultAlertAndMultipleAlertsOfSameTypeWithOverriddenParameters (line 1369) | func TestParseAndValidateConfigBytesWithAlertingAndDefaultAlertAndMultip...
function TestParseAndValidateConfigBytesWithInvalidPagerDutyAlertingConfig (line 1450) | func TestParseAndValidateConfigBytesWithInvalidPagerDutyAlertingConfig(t...
function TestParseAndValidateConfigBytesWithInvalidPushoverAlertingConfig (line 1477) | func TestParseAndValidateConfigBytesWithInvalidPushoverAlertingConfig(t ...
function TestParseAndValidateConfigBytesWithCustomAlertingConfig (line 1504) | func TestParseAndValidateConfigBytesWithCustomAlertingConfig(t *testing....
function TestParseAndValidateConfigBytesWithCustomAlertingConfigAndCustomPlaceholderValues (line 1548) | func TestParseAndValidateConfigBytesWithCustomAlertingConfigAndCustomPla...
function TestParseAndValidateConfigBytesWithCustomAlertingConfigAndOneCustomPlaceholderValue (line 1591) | func TestParseAndValidateConfigBytesWithCustomAlertingConfigAndOneCustom...
function TestParseAndValidateConfigBytesWithInvalidEndpointName (line 1632) | func TestParseAndValidateConfigBytesWithInvalidEndpointName(t *testing.T) {
function TestParseAndValidateConfigBytesWithDuplicateEndpointName (line 1645) | func TestParseAndValidateConfigBytesWithDuplicateEndpointName(t *testing...
function TestParseAndValidateConfigBytesWithInvalidStorageConfig (line 1738) | func TestParseAndValidateConfigBytesWithInvalidStorageConfig(t *testing....
function TestParseAndValidateConfigBytesWithInvalidYAML (line 1753) | func TestParseAndValidateConfigBytesWithInvalidYAML(t *testing.T) {
function TestParseAndValidateConfigBytesWithInvalidSecurityConfig (line 1768) | func TestParseAndValidateConfigBytesWithInvalidSecurityConfig(t *testing...
function TestParseAndValidateConfigBytesWithValidSecurityConfig (line 1785) | func TestParseAndValidateConfigBytesWithValidSecurityConfig(t *testing.T) {
function TestParseAndValidateConfigBytesWithLiteralDollarSign (line 1822) | func TestParseAndValidateConfigBytesWithLiteralDollarSign(t *testing.T) {
function TestParseAndValidateConfigBytesWithNoEndpoints (line 1849) | func TestParseAndValidateConfigBytesWithNoEndpoints(t *testing.T) {
function TestGetAlertingProviderByAlertType (line 1856) | func TestGetAlertingProviderByAlertType(t *testing.T) {
function TestConfig_GetUniqueExtraMetricLabels (line 1953) | func TestConfig_GetUniqueExtraMetricLabels(t *testing.T) {
function TestParseAndValidateConfigBytesWithDuplicateKeysAcrossEntityTypes (line 2064) | func TestParseAndValidateConfigBytesWithDuplicateKeysAcrossEntityTypes(t...
function TestParseAndValidateConfigBytesWithSuites (line 2231) | func TestParseAndValidateConfigBytesWithSuites(t *testing.T) {
function TestValidateTunnelingConfig (line 2443) | func TestValidateTunnelingConfig(t *testing.T) {
function TestResolveTunnelForClientConfig (line 2569) | func TestResolveTunnelForClientConfig(t *testing.T) {
FILE: config/connectivity/connectivity.go
type Config (line 17) | type Config struct
method ValidateAndSetDefaults (line 21) | func (c *Config) ValidateAndSetDefaults() error {
type Checker (line 36) | type Checker struct
method Check (line 44) | func (c *Checker) Check() bool {
method IsConnected (line 49) | func (c *Checker) IsConnected() bool {
FILE: config/connectivity/connectivity_test.go
function TestConfig (line 9) | func TestConfig(t *testing.T) {
function TestChecker_IsConnected (line 57) | func TestChecker_IsConnected(t *testing.T) {
FILE: config/endpoint/common.go
function validateEndpointNameGroupAndAlerts (line 19) | func validateEndpointNameGroupAndAlerts(name, group string, alerts []*al...
FILE: config/endpoint/common_test.go
function TestValidateEndpointNameGroupAndAlerts (line 10) | func TestValidateEndpointNameGroupAndAlerts(t *testing.T) {
FILE: config/endpoint/condition.go
constant maximumLengthBeforeTruncatingWhenComparedWithPattern (line 20) | maximumLengthBeforeTruncatingWhenComparedWithPattern = 25
type Condition (line 24) | type Condition
method Validate (line 27) | func (c Condition) Validate() error {
method evaluate (line 37) | func (c Condition) evaluate(result *Result, dontResolveFailedCondition...
method hasBodyPlaceholder (line 96) | func (c Condition) hasBodyPlaceholder() bool {
method hasDomainExpirationPlaceholder (line 102) | func (c Condition) hasDomainExpirationPlaceholder() bool {
method hasIPPlaceholder (line 108) | func (c Condition) hasIPPlaceholder() bool {
function isEqual (line 117) | func isEqual(first, second string) bool {
function sanitizeAndResolveWithContext (line 174) | func sanitizeAndResolveWithContext(elements []string, result *Result, co...
function sanitizeAndResolveNumericalWithContext (line 194) | func sanitizeAndResolveNumericalWithContext(list []string, result *Resul...
function prettifyNumericalParameters (line 217) | func prettifyNumericalParameters(parameters []string, resolvedParameters...
function formatDuration (line 241) | func formatDuration(d time.Duration) string {
function prettify (line 259) | func prettify(parameters []string, resolvedParameters []string, operator...
FILE: config/endpoint/condition_bench_test.go
function BenchmarkCondition_evaluateWithBodyStringAny (line 7) | func BenchmarkCondition_evaluateWithBodyStringAny(b *testing.B) {
function BenchmarkCondition_evaluateWithBodyStringAnyFailure (line 16) | func BenchmarkCondition_evaluateWithBodyStringAnyFailure(b *testing.B) {
function BenchmarkCondition_evaluateWithBodyString (line 25) | func BenchmarkCondition_evaluateWithBodyString(b *testing.B) {
function BenchmarkCondition_evaluateWithBodyStringFailure (line 34) | func BenchmarkCondition_evaluateWithBodyStringFailure(b *testing.B) {
function BenchmarkCondition_evaluateWithBodyStringFailureInvalidPath (line 43) | func BenchmarkCondition_evaluateWithBodyStringFailureInvalidPath(b *test...
function BenchmarkCondition_evaluateWithBodyStringLen (line 52) | func BenchmarkCondition_evaluateWithBodyStringLen(b *testing.B) {
function BenchmarkCondition_evaluateWithBodyStringLenFailure (line 61) | func BenchmarkCondition_evaluateWithBodyStringLenFailure(b *testing.B) {
function BenchmarkCondition_evaluateWithStatus (line 70) | func BenchmarkCondition_evaluateWithStatus(b *testing.B) {
function BenchmarkCondition_evaluateWithStatusFailure (line 79) | func BenchmarkCondition_evaluateWithStatusFailure(b *testing.B) {
FILE: config/endpoint/condition_result.go
type ConditionResult (line 4) | type ConditionResult struct
FILE: config/endpoint/condition_test.go
function TestCondition_Validate (line 13) | func TestCondition_Validate(t *testing.T) {
function TestCondition_evaluate (line 59) | func TestCondition_evaluate(t *testing.T) {
function TestCondition_evaluateWithInvalidOperator (line 780) | func TestCondition_evaluateWithInvalidOperator(t *testing.T) {
function TestConditionEvaluateWithInvalidContextPlaceholder (line 792) | func TestConditionEvaluateWithInvalidContextPlaceholder(t *testing.T) {
function TestConditionEvaluateWithValidContextPlaceholder (line 818) | func TestConditionEvaluateWithValidContextPlaceholder(t *testing.T) {
function TestConditionEvaluateWithMixedValidAndInvalidContext (line 841) | func TestConditionEvaluateWithMixedValidAndInvalidContext(t *testing.T) {
FILE: config/endpoint/dns/dns.go
type Config (line 19) | type Config struct
method ValidateAndSetDefault (line 27) | func (d *Config) ValidateAndSetDefault() error {
FILE: config/endpoint/dns/dns_test.go
function TestConfig_ValidateAndSetDefault (line 7) | func TestConfig_ValidateAndSetDefault(t *testing.T) {
function TestConfig_ValidateAndSetDefaultsWithInvalidDNSQueryType (line 18) | func TestConfig_ValidateAndSetDefaultsWithInvalidDNSQueryType(t *testing...
FILE: config/endpoint/endpoint.go
type Type (line 31) | type Type
constant HostHeader (line 35) | HostHeader = "Host"
constant ContentTypeHeader (line 38) | ContentTypeHeader = "Content-Type"
constant UserAgentHeader (line 41) | UserAgentHeader = "User-Agent"
constant GatusUserAgent (line 44) | GatusUserAgent = "Gatus/1.0"
constant TypeDNS (line 46) | TypeDNS Type = "DNS"
constant TypeTCP (line 47) | TypeTCP Type = "TCP"
constant TypeSCTP (line 48) | TypeSCTP Type = "SCTP"
constant TypeUDP (line 49) | TypeUDP Type = "UDP"
constant TypeICMP (line 50) | TypeICMP Type = "ICMP"
constant TypeSTARTTLS (line 51) | TypeSTARTTLS Type = "STARTTLS"
constant TypeTLS (line 52) | TypeTLS Type = "TLS"
constant TypeHTTP (line 53) | TypeHTTP Type = "HTTP"
constant TypeGRPC (line 54) | TypeGRPC Type = "GRPC"
constant TypeWS (line 55) | TypeWS Type = "WEBSOCKET"
constant TypeSSH (line 56) | TypeSSH Type = "SSH"
constant TypeUNKNOWN (line 57) | TypeUNKNOWN Type = "UNKNOWN"
type Endpoint (line 81) | type Endpoint struct
method IsEnabled (line 156) | func (e *Endpoint) IsEnabled() bool {
method Type (line 164) | func (e *Endpoint) Type() Type {
method ValidateAndSetDefaults (line 194) | func (e *Endpoint) ValidateAndSetDefaults() error {
method DisplayName (line 267) | func (e *Endpoint) DisplayName() string {
method Key (line 275) | func (e *Endpoint) Key() string {
method Close (line 282) | func (e *Endpoint) Close() {
method EvaluateHealth (line 289) | func (e *Endpoint) EvaluateHealth() *Result {
method EvaluateHealthWithContext (line 294) | func (e *Endpoint) EvaluateHealthWithContext(context *gontext.Gontext)...
method preprocessWithContext (line 370) | func (e *Endpoint) preprocessWithContext(result *Result, context *gont...
method getParsedBody (line 418) | func (e *Endpoint) getParsedBody() string {
method getIP (line 441) | func (e *Endpoint) getIP(result *Result) {
method call (line 450) | func (e *Endpoint) call(result *Result) {
method buildHTTPRequest (line 570) | func (e *Endpoint) buildHTTPRequest() *http.Request {
method needsToReadBody (line 592) | func (e *Endpoint) needsToReadBody() bool {
method needsToRetrieveDomainExpiration (line 610) | func (e *Endpoint) needsToRetrieveDomainExpiration() bool {
method needsToRetrieveIP (line 620) | func (e *Endpoint) needsToRetrieveIP() bool {
function replaceContextPlaceholders (line 396) | func replaceContextPlaceholders(input string, ctx *gontext.Gontext) (str...
function hasHeader (line 630) | func hasHeader(headers map[string]string, name string) bool {
FILE: config/endpoint/endpoint_test.go
function TestHasHeader (line 24) | func TestHasHeader(t *testing.T) {
function TestEndpoint (line 48) | func TestEndpoint(t *testing.T) {
function TestEndpoint_ResolveSuccessfulConditions (line 295) | func TestEndpoint_ResolveSuccessfulConditions(t *testing.T) {
function TestEndpoint_IsEnabled (line 320) | func TestEndpoint_IsEnabled(t *testing.T) {
function TestEndpoint_Type (line 332) | func TestEndpoint_Type(t *testing.T) {
function TestEndpoint_ValidateAndSetDefaults (line 442) | func TestEndpoint_ValidateAndSetDefaults(t *testing.T) {
function TestEndpoint_ValidateAndSetDefaultsWithInvalidCondition (line 498) | func TestEndpoint_ValidateAndSetDefaultsWithInvalidCondition(t *testing....
function TestEndpoint_ValidateAndSetDefaultsWithClientConfig (line 509) | func TestEndpoint_ValidateAndSetDefaultsWithClientConfig(t *testing.T) {
function TestEndpoint_ValidateAndSetDefaultsWithDNS (line 539) | func TestEndpoint_ValidateAndSetDefaultsWithDNS(t *testing.T) {
function TestEndpoint_ValidateAndSetDefaultsWithSSH (line 558) | func TestEndpoint_ValidateAndSetDefaultsWithSSH(t *testing.T) {
function TestEndpoint_ValidateAndSetDefaultsWithSimpleErrors (line 619) | func TestEndpoint_ValidateAndSetDefaultsWithSimpleErrors(t *testing.T) {
function TestEndpoint_buildHTTPRequest (line 676) | func TestEndpoint_buildHTTPRequest(t *testing.T) {
function TestEndpoint_buildHTTPRequestWithCustomUserAgent (line 699) | func TestEndpoint_buildHTTPRequestWithCustomUserAgent(t *testing.T) {
function TestEndpoint_buildHTTPRequestWithHostHeader (line 725) | func TestEndpoint_buildHTTPRequestWithHostHeader(t *testing.T) {
function TestEndpoint_buildHTTPRequestWithLowercaseUserAgent (line 749) | func TestEndpoint_buildHTTPRequestWithLowercaseUserAgent(t *testing.T) {
function TestEndpoint_buildHTTPRequestWithLowercaseContentType (line 772) | func TestEndpoint_buildHTTPRequestWithLowercaseContentType(t *testing.T) {
function TestEndpoint_buildHTTPRequestWithLowercaseHostHeader (line 798) | func TestEndpoint_buildHTTPRequestWithLowercaseHostHeader(t *testing.T) {
function TestEndpoint_buildHTTPRequestWithGraphQLEnabled (line 819) | func TestEndpoint_buildHTTPRequestWithGraphQLEnabled(t *testing.T) {
function TestIntegrationEvaluateHealth (line 853) | func TestIntegrationEvaluateHealth(t *testing.T) {
function TestIntegrationEvaluateHealthWithErrorAndHideURL (line 880) | func TestIntegrationEvaluateHealthWithErrorAndHideURL(t *testing.T) {
function TestIntegrationEvaluateHealthForDNS (line 908) | func TestIntegrationEvaluateHealthForDNS(t *testing.T) {
function TestIntegrationEvaluateHealthForSSH (line 936) | func TestIntegrationEvaluateHealthForSSH(t *testing.T) {
function TestIntegrationEvaluateHealthForICMP (line 985) | func TestIntegrationEvaluateHealthForICMP(t *testing.T) {
function TestEndpoint_DisplayName (line 1007) | func TestEndpoint_DisplayName(t *testing.T) {
function TestEndpoint_getIP (line 1016) | func TestEndpoint_getIP(t *testing.T) {
function TestEndpoint_needsToReadBody (line 1029) | func TestEndpoint_needsToReadBody(t *testing.T) {
function TestEndpoint_needsToRetrieveDomainExpiration (line 1087) | func TestEndpoint_needsToRetrieveDomainExpiration(t *testing.T) {
function TestEndpoint_needsToRetrieveIP (line 1096) | func TestEndpoint_needsToRetrieveIP(t *testing.T) {
function TestEndpoint_preprocessWithContext (line 1105) | func TestEndpoint_preprocessWithContext(t *testing.T) {
function TestEndpoint_HideUIFeatures (line 1586) | func TestEndpoint_HideUIFeatures(t *testing.T) {
FILE: config/endpoint/event.go
type Event (line 8) | type Event struct
type EventType (line 17) | type EventType
function NewEventFromResult (line 31) | func NewEventFromResult(result *Result) *Event {
FILE: config/endpoint/event_test.go
function TestNewEventFromResult (line 7) | func TestNewEventFromResult(t *testing.T) {
FILE: config/endpoint/external_endpoint.go
type ExternalEndpoint (line 24) | type ExternalEndpoint struct
method ValidateAndSetDefaults (line 54) | func (externalEndpoint *ExternalEndpoint) ValidateAndSetDefaults() err...
method IsEnabled (line 69) | func (externalEndpoint *ExternalEndpoint) IsEnabled() bool {
method DisplayName (line 77) | func (externalEndpoint *ExternalEndpoint) DisplayName() string {
method Key (line 85) | func (externalEndpoint *ExternalEndpoint) Key() string {
method ToEndpoint (line 90) | func (externalEndpoint *ExternalEndpoint) ToEndpoint() *Endpoint {
FILE: config/endpoint/external_endpoint_test.go
function TestExternalEndpoint_ValidateAndSetDefaults (line 12) | func TestExternalEndpoint_ValidateAndSetDefaults(t *testing.T) {
function TestExternalEndpoint_IsEnabled (line 117) | func TestExternalEndpoint_IsEnabled(t *testing.T) {
function TestExternalEndpoint_DisplayName (line 155) | func TestExternalEndpoint_DisplayName(t *testing.T) {
function TestExternalEndpoint_Key (line 197) | func TestExternalEndpoint_Key(t *testing.T) {
function TestExternalEndpoint_ToEndpoint (line 238) | func TestExternalEndpoint_ToEndpoint(t *testing.T) {
function TestExternalEndpoint_ValidationEdgeCases (line 325) | func TestExternalEndpoint_ValidationEdgeCases(t *testing.T) {
function boolPtr (line 378) | func boolPtr(b bool) *bool {
FILE: config/endpoint/heartbeat/heartbeat.go
type Config (line 7) | type Config struct
FILE: config/endpoint/placeholder.go
constant StatusPlaceholder (line 17) | StatusPlaceholder = "[STATUS]"
constant IPPlaceholder (line 22) | IPPlaceholder = "[IP]"
constant DNSRCodePlaceholder (line 27) | DNSRCodePlaceholder = "[DNS_RCODE]"
constant ResponseTimePlaceholder (line 32) | ResponseTimePlaceholder = "[RESPONSE_TIME]"
constant BodyPlaceholder (line 37) | BodyPlaceholder = "[BODY]"
constant ConnectedPlaceholder (line 42) | ConnectedPlaceholder = "[CONNECTED]"
constant CertificateExpirationPlaceholder (line 47) | CertificateExpirationPlaceholder = "[CERTIFICATE_EXPIRATION]"
constant DomainExpirationPlaceholder (line 50) | DomainExpirationPlaceholder = "[DOMAIN_EXPIRATION]"
constant ContextPlaceholder (line 54) | ContextPlaceholder = "[CONTEXT]"
constant LengthFunctionPrefix (line 62) | LengthFunctionPrefix = "len("
constant HasFunctionPrefix (line 67) | HasFunctionPrefix = "has("
constant PatternFunctionPrefix (line 72) | PatternFunctionPrefix = "pat("
constant AnyFunctionPrefix (line 77) | AnyFunctionPrefix = "any("
constant FunctionSuffix (line 80) | FunctionSuffix = ")"
constant InvalidConditionElementSuffix (line 86) | InvalidConditionElementSuffix = "(INVALID)"
type functionType (line 90) | type functionType
constant noFunction (line 96) | noFunction functionType = iota
constant functionLen (line 97) | functionLen
constant functionHas (line 98) | functionHas
function ResolvePlaceholder (line 126) | func ResolvePlaceholder(placeholder string, result *Result, ctx *gontext...
function extractFunctionWrapper (line 194) | func extractFunctionWrapper(placeholder string) (functionType, string) {
function resolveJSONPathPlaceholder (line 207) | func resolveJSONPathPlaceholder(placeholder string, fn functionType, ori...
function resolveContextPlaceholder (line 232) | func resolveContextPlaceholder(placeholder string, fn functionType, orig...
function formatWithFunction (line 264) | func formatWithFunction(value string, fn functionType) string {
FILE: config/endpoint/placeholder_test.go
function TestResolvePlaceholder (line 10) | func TestResolvePlaceholder(t *testing.T) {
function TestResolvePlaceholderWithoutContext (line 97) | func TestResolvePlaceholderWithoutContext(t *testing.T) {
FILE: config/endpoint/result.go
type Result (line 9) | type Result struct
method AddError (line 69) | func (r *Result) AddError(error string) {
FILE: config/endpoint/result_test.go
function TestResult_AddError (line 7) | func TestResult_AddError(t *testing.T) {
FILE: config/endpoint/ssh/ssh.go
type Config (line 15) | type Config struct
method Validate (line 22) | func (cfg *Config) Validate() error {
FILE: config/endpoint/ssh/ssh_test.go
function TestSSH_validatePasswordCfg (line 8) | func TestSSH_validatePasswordCfg(t *testing.T) {
function TestSSH_validatePrivateKeyCfg (line 25) | func TestSSH_validatePrivateKeyCfg(t *testing.T) {
FILE: config/endpoint/status.go
type Status (line 7) | type Status struct
function NewStatus (line 32) | func NewStatus(group, name string) *Status {
FILE: config/endpoint/status_test.go
function TestNewEndpointStatus (line 7) | func TestNewEndpointStatus(t *testing.T) {
FILE: config/endpoint/ui/ui.go
type Config (line 6) | type Config struct
method ValidateAndSetDefaults (line 45) | func (config *Config) ValidateAndSetDefaults() error {
type Badge (line 32) | type Badge struct
type ResponseTime (line 36) | type ResponseTime struct
function GetDefaultConfig (line 62) | func GetDefaultConfig() *Config {
FILE: config/endpoint/ui/ui_test.go
function TestValidateAndSetDefaults (line 8) | func TestValidateAndSetDefaults(t *testing.T) {
FILE: config/endpoint/uptime.go
type Uptime (line 5) | type Uptime struct
type HourlyUptimeStatistics (line 13) | type HourlyUptimeStatistics struct
function NewUptime (line 20) | func NewUptime() *Uptime {
FILE: config/gontext/gontext.go
type Gontext (line 16) | type Gontext struct
method Get (line 37) | func (g *Gontext) Get(path string) (interface{}, error) {
method Set (line 58) | func (g *Gontext) Set(path string, value interface{}) error {
method GetAll (line 91) | func (g *Gontext) GetAll() map[string]interface{} {
function New (line 22) | func New(initial map[string]interface{}) *Gontext {
function deepCopyValue (line 103) | func deepCopyValue(v interface{}) interface{} {
FILE: config/gontext/gontext_test.go
function TestNew (line 8) | func TestNew(t *testing.T) {
function TestGontext_Get (line 73) | func TestGontext_Get(t *testing.T) {
function TestGontext_Set (line 181) | func TestGontext_Set(t *testing.T) {
function TestGontext_SetOverrideBehavior (line 254) | func TestGontext_SetOverrideBehavior(t *testing.T) {
function TestGontext_GetAll (line 292) | func TestGontext_GetAll(t *testing.T) {
function TestGontext_ConcurrentAccess (line 335) | func TestGontext_ConcurrentAccess(t *testing.T) {
function TestDeepCopyValue (line 374) | func TestDeepCopyValue(t *testing.T) {
FILE: config/key/key.go
function ConvertGroupAndNameToKey (line 6) | func ConvertGroupAndNameToKey(groupName, name string) string {
function sanitize (line 10) | func sanitize(s string) string {
FILE: config/key/key_bench_test.go
function BenchmarkConvertGroupAndNameToKey (line 7) | func BenchmarkConvertGroupAndNameToKey(b *testing.B) {
FILE: config/key/key_test.go
function TestConvertGroupAndNameToKey (line 5) | func TestConvertGroupAndNameToKey(t *testing.T) {
FILE: config/maintenance/maintenance.go
type Config (line 34) | type Config struct
method IsEnabled (line 57) | func (c *Config) IsEnabled() bool {
method ValidateAndSetDefaults (line 68) | func (c *Config) ValidateAndSetDefaults() error {
method IsUnderMaintenance (line 100) | func (c *Config) IsUnderMaintenance() bool {
function GetDefaultConfig (line 49) | func GetDefaultConfig() *Config {
function hhmmToDuration (line 127) | func hhmmToDuration(s string) (time.Duration, error) {
function extractNumericalValueFromPotentiallyZeroPaddedString (line 146) | func extractNumericalValueFromPotentiallyZeroPaddedString(s string) (int...
FILE: config/maintenance/maintenance_test.go
function TestGetDefaultConfig (line 11) | func TestGetDefaultConfig(t *testing.T) {
function TestConfig_ValidateAndSetDefaults (line 17) | func TestConfig_ValidateAndSetDefaults(t *testing.T) {
function TestConfig_IsUnderMaintenance (line 176) | func TestConfig_IsUnderMaintenance(t *testing.T) {
function normalizeHour (line 346) | func normalizeHour(hour int) int {
function inTimezone (line 353) | func inTimezone(passedTime time.Time, timezone string, t *testing.T) tim...
FILE: config/remote/remote.go
type Config (line 11) | type Config struct
method ValidateAndSetDefaults (line 24) | func (c *Config) ValidateAndSetDefaults() error {
type Instance (line 19) | type Instance struct
FILE: config/suite/result.go
type Result (line 10) | type Result struct
method AddError (line 37) | func (r *Result) AddError(err string) {
method CalculateSuccess (line 42) | func (r *Result) CalculateSuccess() {
FILE: config/suite/suite.go
type Suite (line 36) | type Suite struct
method IsEnabled (line 60) | func (s *Suite) IsEnabled() bool {
method Key (line 68) | func (s *Suite) Key() string {
method ValidateAndSetDefaults (line 73) | func (s *Suite) ValidateAndSetDefaults() error {
method Execute (line 116) | func (s *Suite) Execute() *Result {
function StoreResultValues (line 174) | func StoreResultValues(ctx *gontext.Gontext, mappings map[string]string,...
function extractValueForStorage (line 201) | func extractValueForStorage(placeholder string, result *endpoint.Result)...
FILE: config/suite/suite_status.go
type Status (line 4) | type Status struct
function NewStatus (line 19) | func NewStatus(s *Suite) *Status {
FILE: config/suite/suite_test.go
function TestSuite_ValidateAndSetDefaults (line 12) | func TestSuite_ValidateAndSetDefaults(t *testing.T) {
function TestSuite_IsEnabled (line 100) | func TestSuite_IsEnabled(t *testing.T) {
function TestSuite_Key (line 132) | func TestSuite_Key(t *testing.T) {
function TestSuite_DefaultValues (line 164) | func TestSuite_DefaultValues(t *testing.T) {
function boolPtr (line 193) | func boolPtr(b bool) *bool {
function TestStoreResultValues (line 197) | func TestStoreResultValues(t *testing.T) {
function TestStoreResultValuesWithInvalidPath (line 244) | func TestStoreResultValuesWithInvalidPath(t *testing.T) {
function TestSuite_ExecuteWithAlwaysRunEndpoints (line 288) | func TestSuite_ExecuteWithAlwaysRunEndpoints(t *testing.T) {
function TestSuite_ExecuteWithoutAlwaysRunEndpoints (line 346) | func TestSuite_ExecuteWithoutAlwaysRunEndpoints(t *testing.T) {
function TestResult_AddError (line 391) | func TestResult_AddError(t *testing.T) {
function TestResult_CalculateSuccess (line 415) | func TestResult_CalculateSuccess(t *testing.T) {
FILE: config/tunneling/sshtunnel/sshtunnel.go
type Config (line 13) | type Config struct
method ValidateAndSetDefaults (line 23) | func (c *Config) ValidateAndSetDefaults() error {
type SSHTunnel (line 43) | type SSHTunnel struct
method Connect (line 72) | func (t *SSHTunnel) Connect() error {
method connectUnsafe (line 80) | func (t *SSHTunnel) connectUnsafe() error {
method Close (line 102) | func (t *SSHTunnel) Close() error {
method Dial (line 114) | func (t *SSHTunnel) Dial(network, addr string) (net.Conn, error) {
function New (line 53) | func New(config *Config) *SSHTunnel {
FILE: config/tunneling/sshtunnel/sshtunnel_test.go
function TestConfig_ValidateAndSetDefaults (line 7) | func TestConfig_ValidateAndSetDefaults(t *testing.T) {
function TestNew (line 123) | func TestNew(t *testing.T) {
function TestSSHTunnel_Close (line 140) | func TestSSHTunnel_Close(t *testing.T) {
FILE: config/tunneling/tunneling.go
type Config (line 12) | type Config struct
method ValidateAndSetDefaults (line 21) | func (tc *Config) ValidateAndSetDefaults() error {
method GetTunnel (line 34) | func (tc *Config) GetTunnel(name string) (*sshtunnel.SSHTunnel, error) {
method Close (line 56) | func (tc *Config) Close() error {
FILE: config/tunneling/tunneling_test.go
function TestConfig_ValidateAndSetDefaults (line 9) | func TestConfig_ValidateAndSetDefaults(t *testing.T) {
function TestConfig_GetTunnel (line 105) | func TestConfig_GetTunnel(t *testing.T) {
function TestConfig_Close (line 151) | func TestConfig_Close(t *testing.T) {
FILE: config/ui/ui.go
constant defaultTitle (line 13) | defaultTitle = "Health Dashboard | Gatus"
constant defaultDescription (line 14) | defaultDescription = "Gatus is an advanced automated status pag...
constant defaultHeader (line 15) | defaultHeader = "Gatus"
constant defaultDashboardHeading (line 16) | defaultDashboardHeading = "Health Dashboard"
constant defaultDashboardSubheading (line 17) | defaultDashboardSubheading = "Monitor the health of your endpoints in r...
constant defaultLogo (line 18) | defaultLogo = ""
constant defaultLink (line 19) | defaultLink = ""
constant defaultFavicon (line 20) | defaultFavicon = "/favicon.ico"
constant defaultFavicon16 (line 21) | defaultFavicon16 = "/favicon-16x16.png"
constant defaultFavicon32 (line 22) | defaultFavicon32 = "/favicon-32x32.png"
constant defaultCustomCSS (line 23) | defaultCustomCSS = ""
constant defaultSortBy (line 24) | defaultSortBy = "name"
constant defaultFilterBy (line 25) | defaultFilterBy = "none"
type Config (line 37) | type Config struct
method IsDarkMode (line 57) | func (cfg *Config) IsDarkMode() bool {
method ValidateAndSetDefaults (line 108) | func (cfg *Config) ValidateAndSetDefaults() error {
type Button (line 65) | type Button struct
method Validate (line 71) | func (btn *Button) Validate() error {
type Favicon (line 78) | type Favicon struct
function GetDefaultConfig (line 85) | func GetDefaultConfig() *Config {
type ViewData (line 169) | type ViewData struct
FILE: config/ui/ui_test.go
function TestConfig_ValidateAndSetDefaults (line 9) | func TestConfig_ValidateAndSetDefaults(t *testing.T) {
function TestButton_Validate (line 125) | func TestButton_Validate(t *testing.T) {
function TestGetDefaultConfig (line 164) | func TestGetDefaultConfig(t *testing.T) {
function TestConfig_ValidateAndSetDefaults_DefaultSortBy (line 186) | func TestConfig_ValidateAndSetDefaults_DefaultSortBy(t *testing.T) {
function TestConfig_ValidateAndSetDefaults_DefaultFilterBy (line 238) | func TestConfig_ValidateAndSetDefaults_DefaultFilterBy(t *testing.T) {
FILE: config/util.go
function toPtr (line 4) | func toPtr[T any](value T) *T {
FILE: config/web/web.go
constant DefaultAddress (line 12) | DefaultAddress = "0.0.0.0"
constant DefaultPort (line 15) | DefaultPort = 8080
constant DefaultReadBufferSize (line 18) | DefaultReadBufferSize = 8192
constant MinimumReadBufferSize (line 22) | MinimumReadBufferSize = 4096
type Config (line 26) | type Config struct
method ValidateAndSetDefaults (line 63) | func (web *Config) ValidateAndSetDefaults() error {
method HasTLS (line 89) | func (web *Config) HasTLS() bool {
method SocketAddress (line 94) | func (web *Config) SocketAddress() string {
type TLSConfig (line 45) | type TLSConfig struct
method isValid (line 98) | func (t *TLSConfig) isValid() error {
function GetDefaultConfig (line 54) | func GetDefaultConfig() *Config {
FILE: config/web/web_test.go
function TestGetDefaultConfig (line 7) | func TestGetDefaultConfig(t *testing.T) {
function TestConfig_ValidateAndSetDefaults (line 23) | func TestConfig_ValidateAndSetDefaults(t *testing.T) {
function TestConfig_SocketAddress (line 116) | func TestConfig_SocketAddress(t *testing.T) {
function TestConfig_isValid (line 126) | func TestConfig_isValid(t *testing.T) {
FILE: controller/controller.go
function Handle (line 18) | func Handle(cfg *config.Config) {
function Shutdown (line 44) | func Shutdown() {
FILE: controller/controller_test.go
function TestHandle (line 16) | func TestHandle(t *testing.T) {
function TestHandleTLS (line 51) | func TestHandleTLS(t *testing.T) {
function TestShutdown (line 95) | func TestShutdown(t *testing.T) {
FILE: jsonpath/jsonpath.go
function Eval (line 11) | func Eval(path string, b []byte) (string, int, error) {
function walk (line 24) | func walk(path string, object interface{}) (string, int, error) {
function extractValue (line 69) | func extractValue(currentKey string, value interface{}) interface{} {
FILE: jsonpath/jsonpath_bench_test.go
function BenchmarkEval (line 5) | func BenchmarkEval(b *testing.B) {
FILE: jsonpath/jsonpath_test.go
function TestEval (line 7) | func TestEval(t *testing.T) {
FILE: main.go
constant GatusConfigPathEnvVar (line 19) | GatusConfigPathEnvVar = "GATUS_CONFIG_PATH"
constant GatusConfigFileEnvVar (line 20) | GatusConfigFileEnvVar = "GATUS_CONFIG_FILE"
constant GatusLogLevelEnvVar (line 21) | GatusLogLevelEnvVar = "GATUS_LOG_LEVEL"
function main (line 24) | func main() {
function start (line 51) | func start(cfg *config.Config) {
function stop (line 58) | func stop(cfg *config.Config) {
function save (line 65) | func save() {
function configureLogging (line 71) | func configureLogging() {
function loadConfiguration (line 86) | func loadConfiguration() (*config.Config, error) {
function initializeStorage (line 102) | func initializeStorage(cfg *config.Config) {
function closeTunnels (line 218) | func closeTunnels(cfg *config.Config) {
function listenToConfigurationFileChanges (line 226) | func listenToConfigurationFileChanges(cfg *config.Config) {
FILE: metrics/metrics.go
constant namespace (line 12) | namespace = "gatus"
function UnregisterPrometheusMetrics (line 34) | func UnregisterPrometheusMetrics() {
function InitializePrometheusMetrics (line 77) | func InitializePrometheusMetrics(cfg *config.Config, reg prometheus.Regi...
function PublishMetricsForEndpoint (line 168) | func PublishMetricsForEndpoint(ep *endpoint.Endpoint, result *endpoint.R...
function PublishMetricsForSuite (line 204) | func PublishMetricsForSuite(s *suite.Suite, result *suite.Result, extraL...
FILE: metrics/metrics_test.go
function TestInitializePrometheusMetrics (line 19) | func TestInitializePrometheusMetrics(t *testing.T) {
function TestPublishMetricsForEndpoint_withExtraLabels (line 67) | func TestPublishMetricsForEndpoint_withExtraLabels(t *testing.T) {
function TestPublishMetricsForEndpoint (line 114) | func TestPublishMetricsForEndpoint(t *testing.T) {
function TestPublishMetricsForSuite (line 244) | func TestPublishMetricsForSuite(t *testing.T) {
function TestPublishMetricsForSuite_NoGroup (line 302) | func TestPublishMetricsForSuite_NoGroup(t *testing.T) {
FILE: pattern/pattern.go
function Match (line 9) | func Match(pattern, s string) bool {
FILE: pattern/pattern_bench_test.go
function BenchmarkMatch (line 5) | func BenchmarkMatch(b *testing.B) {
function BenchmarkMatchWithBackslash (line 14) | func BenchmarkMatchWithBackslash(b *testing.B) {
FILE: pattern/pattern_test.go
function TestMatch (line 8) | func TestMatch(t *testing.T) {
function testMatch (line 30) | func testMatch(t *testing.T, pattern, key string, expectedToMatch bool) {
FILE: security/basic.go
type BasicConfig (line 4) | type BasicConfig struct
method isValid (line 14) | func (c *BasicConfig) isValid() bool {
FILE: security/basic_test.go
function TestBasicConfig_IsValidUsingBcrypt (line 5) | func TestBasicConfig_IsValidUsingBcrypt(t *testing.T) {
function TestBasicConfig_IsValidWhenPasswordIsInvalidUsingBcrypt (line 15) | func TestBasicConfig_IsValidWhenPasswordIsInvalidUsingBcrypt(t *testing....
FILE: security/config.go
constant cookieNameState (line 16) | cookieNameState = "gatus_state"
constant cookieNameNonce (line 17) | cookieNameNonce = "gatus_nonce"
constant cookieNameSession (line 18) | cookieNameSession = "gatus_session"
type Config (line 22) | type Config struct
method ValidateAndSetDefaults (line 30) | func (c *Config) ValidateAndSetDefaults() bool {
method RegisterHandlers (line 35) | func (c *Config) RegisterHandlers(router fiber.Router) error {
method ApplySecurityMiddleware (line 48) | func (c *Config) ApplySecurityMiddleware(router fiber.Router) error {
method IsAuthenticated (line 97) | func (c *Config) IsAuthenticated(ctx *fiber.Ctx) bool {
FILE: security/config_test.go
function TestConfig_ValidateAndSetDefaults (line 12) | func TestConfig_ValidateAndSetDefaults(t *testing.T) {
function TestConfig_ApplySecurityMiddleware (line 22) | func TestConfig_ApplySecurityMiddleware(t *testing.T) {
function TestConfig_RegisterHandlers (line 101) | func TestConfig_RegisterHandlers(t *testing.T) {
FILE: security/oidc.go
constant DefaultOIDCSessionTTL (line 17) | DefaultOIDCSessionTTL = 8 * time.Hour
type OIDCConfig (line 21) | type OIDCConfig struct
method ValidateAndSetDefaults (line 35) | func (c *OIDCConfig) ValidateAndSetDefaults() bool {
method initialize (line 42) | func (c *OIDCConfig) initialize() error {
method loginHandler (line 59) | func (c *OIDCConfig) loginHandler(ctx *fiber.Ctx) error {
method callbackHandler (line 80) | func (c *OIDCConfig) callbackHandler(w http.ResponseWriter, r *http.Re...
method setSessionCookie (line 139) | func (c *OIDCConfig) setSessionCookie(w http.ResponseWriter, idToken *...
FILE: security/oidc_test.go
function TestOIDCConfig_ValidateAndSetDefaults (line 12) | func TestOIDCConfig_ValidateAndSetDefaults(t *testing.T) {
function TestOIDCConfig_callbackHandler (line 30) | func TestOIDCConfig_callbackHandler(t *testing.T) {
function TestOIDCConfig_setSessionCookie (line 68) | func TestOIDCConfig_setSessionCookie(t *testing.T) {
function TestOIDCConfig_setSessionCookieWithCustomTTL (line 77) | func TestOIDCConfig_setSessionCookieWithCustomTTL(t *testing.T) {
FILE: storage/config.go
constant DefaultMaximumNumberOfResults (line 8) | DefaultMaximumNumberOfResults = 100
constant DefaultMaximumNumberOfEvents (line 9) | DefaultMaximumNumberOfEvents = 50
type Config (line 18) | type Config struct
method ValidateAndSetDefaults (line 42) | func (c *Config) ValidateAndSetDefaults() error {
FILE: storage/store/common/paging/endpoint_status_params.go
type EndpointStatusParams (line 4) | type EndpointStatusParams struct
method WithEvents (line 17) | func (params *EndpointStatusParams) WithEvents(page, pageSize int) *En...
method WithResults (line 24) | func (params *EndpointStatusParams) WithResults(page, pageSize int) *E...
function NewEndpointStatusParams (line 12) | func NewEndpointStatusParams() *EndpointStatusParams {
FILE: storage/store/common/paging/endpoint_status_params_test.go
function TestNewEndpointStatusParams (line 5) | func TestNewEndpointStatusParams(t *testing.T) {
FILE: storage/store/common/paging/suite_status_params.go
type SuiteStatusParams (line 4) | type SuiteStatusParams struct
method WithPagination (line 18) | func (params *SuiteStatusParams) WithPagination(page, pageSize int) *S...
function NewSuiteStatusParams (line 10) | func NewSuiteStatusParams() *SuiteStatusParams {
FILE: storage/store/common/paging/suite_status_params_test.go
function TestNewSuiteStatusParams (line 7) | func TestNewSuiteStatusParams(t *testing.T) {
function TestSuiteStatusParams_WithPagination (line 20) | func TestSuiteStatusParams_WithPagination(t *testing.T) {
function TestSuiteStatusParams_ChainedMethods (line 85) | func TestSuiteStatusParams_ChainedMethods(t *testing.T) {
function TestSuiteStatusParams_OverwritePagination (line 97) | func TestSuiteStatusParams_OverwritePagination(t *testing.T) {
function TestSuiteStatusParams_ReturnsSelf (line 116) | func TestSuiteStatusParams_ReturnsSelf(t *testing.T) {
FILE: storage/store/memory/memory.go
type Store (line 20) | type Store struct
method GetAllEndpointStatuses (line 46) | func (s *Store) GetAllEndpointStatuses(params *paging.EndpointStatusPa...
method GetAllSuiteStatuses (line 63) | func (s *Store) GetAllSuiteStatuses(params *paging.SuiteStatusParams) ...
method GetEndpointStatus (line 79) | func (s *Store) GetEndpointStatus(groupName, endpointName string, para...
method GetEndpointStatusByKey (line 84) | func (s *Store) GetEndpointStatusByKey(key string, params *paging.Endp...
method GetSuiteStatusByKey (line 95) | func (s *Store) GetSuiteStatusByKey(key string, params *paging.SuiteSt...
method GetUptimeByKey (line 106) | func (s *Store) GetUptimeByKey(key string, from, to time.Time) (float6...
method GetAverageResponseTimeByKey (line 137) | func (s *Store) GetAverageResponseTimeByKey(key string, from, to time....
method GetHourlyAverageResponseTimeByKey (line 167) | func (s *Store) GetHourlyAverageResponseTimeByKey(key string, from, to...
method InsertEndpointResult (line 193) | func (s *Store) InsertEndpointResult(ep *endpoint.Endpoint, result *en...
method InsertSuiteResult (line 211) | func (s *Store) InsertSuiteResult(su *suite.Suite, result *suite.Resul...
method DeleteAllEndpointStatusesNotInKeys (line 238) | func (s *Store) DeleteAllEndpointStatusesNotInKeys(keys []string) int {
method DeleteAllSuiteStatusesNotInKeys (line 250) | func (s *Store) DeleteAllSuiteStatusesNotInKeys(keys []string) int {
method GetTriggeredEndpointAlert (line 269) | func (s *Store) GetTriggeredEndpointAlert(ep *endpoint.Endpoint, alert...
method UpsertTriggeredEndpointAlert (line 277) | func (s *Store) UpsertTriggeredEndpointAlert(ep *endpoint.Endpoint, tr...
method DeleteTriggeredEndpointAlert (line 284) | func (s *Store) DeleteTriggeredEndpointAlert(ep *endpoint.Endpoint, tr...
method DeleteAllTriggeredAlertsNotInChecksumsByEndpoint (line 293) | func (s *Store) DeleteAllTriggeredAlertsNotInChecksumsByEndpoint(ep *e...
method HasEndpointStatusNewerThan (line 298) | func (s *Store) HasEndpointStatusNewerThan(key string, timestamp time....
method Clear (line 319) | func (s *Store) Clear() {
method Save (line 325) | func (s *Store) Save() error {
method Close (line 330) | func (s *Store) Close() {
function NewStore (line 34) | func NewStore(maximumNumberOfResults, maximumNumberOfEvents int) (*Store...
FILE: storage/store/memory/memory_test.go
function TestStore_SanityCheck (line 87) | func TestStore_SanityCheck(t *testing.T) {
function TestStore_Save (line 128) | func TestStore_Save(t *testing.T) {
function TestStore_HasEndpointStatusNewerThan (line 141) | func TestStore_HasEndpointStatusNewerThan(t *testing.T) {
function TestStore_MixedEndpointsAndSuites (line 170) | func TestStore_MixedEndpointsAndSuites(t *testing.T) {
function TestStore_EndpointStatusCastingSafety (line 642) | func TestStore_EndpointStatusCastingSafety(t *testing.T) {
function TestStore_MaximumLimits (line 690) | func TestStore_MaximumLimits(t *testing.T) {
function TestSuiteResultOrdering (line 787) | func TestSuiteResultOrdering(t *testing.T) {
function TestStore_ConcurrentAccess (line 914) | func TestStore_ConcurrentAccess(t *testing.T) {
FILE: storage/store/memory/uptime.go
constant uptimeCleanUpThreshold (line 10) | uptimeCleanUpThreshold = 32 * 24
constant uptimeRetention (line 11) | uptimeRetention = 30 * 24 * time.Hour
function processUptimeAfterResult (line 16) | func processUptimeAfterResult(uptime *endpoint.Uptime, result *endpoint....
FILE: storage/store/memory/uptime_bench_test.go
function BenchmarkProcessUptimeAfterResult (line 10) | func BenchmarkProcessUptimeAfterResult(b *testing.B) {
FILE: storage/store/memory/uptime_test.go
function TestProcessUptimeAfterResult (line 11) | func TestProcessUptimeAfterResult(t *testing.T) {
function TestAddResultUptimeIsCleaningUpAfterItself (line 46) | func TestAddResultUptimeIsCleaningUpAfterItself(t *testing.T) {
function checkHourlyStatistics (line 63) | func checkHourlyStatistics(t *testing.T, hourlyUptimeStatistics *endpoin...
FILE: storage/store/memory/util.go
function ShallowCopyEndpointStatus (line 11) | func ShallowCopyEndpointStatus(ss *endpoint.Status, params *paging.Endpo...
function ShallowCopySuiteStatus (line 42) | func ShallowCopySuiteStatus(ss *suite.Status, params *paging.SuiteStatus...
function getStartAndEndIndex (line 62) | func getStartAndEndIndex(numberOfResults int, page, pageSize int) (int, ...
function AddResult (line 81) | func AddResult(ss *endpoint.Status, result *endpoint.Result, maximumNumb...
FILE: storage/store/memory/util_bench_test.go
function BenchmarkShallowCopyEndpointStatus (line 11) | func BenchmarkShallowCopyEndpointStatus(b *testing.B) {
FILE: storage/store/memory/util_test.go
function TestAddResult (line 13) | func TestAddResult(t *testing.T) {
function TestShallowCopyEndpointStatus (line 29) | func TestShallowCopyEndpointStatus(t *testing.T) {
function TestShallowCopySuiteStatus (line 69) | func TestShallowCopySuiteStatus(t *testing.T) {
FILE: storage/store/sql/specific_postgres.go
method createPostgresSchema (line 3) | func (s *Store) createPostgresSchema() error {
FILE: storage/store/sql/specific_sqlite.go
method createSQLiteSchema (line 3) | func (s *Store) createSQLiteSchema() error {
FILE: storage/store/sql/sql.go
constant arraySeparator (line 31) | arraySeparator = "|~|"
constant eventsAboveMaximumCleanUpThreshold (line 33) | eventsAboveMaximumCleanUpThreshold = 10
constant resultsAboveMaximumCleanUpThreshold (line 34) | resultsAboveMaximumCleanUpThreshold = 10
constant uptimeTotalEntriesMergeThreshold (line 36) | uptimeTotalEntriesMergeThreshold = 100
constant uptimeAgeCleanUpThreshold (line 37) | uptimeAgeCleanUpThreshold = 32 * 24 * time.Hour
constant uptimeRetention (line 38) | uptimeRetention = 30 * 24 * time.Hour
constant uptimeHourlyBuffer (line 39) | uptimeHourlyBuffer = 48 * time.Hour
constant cacheTTL (line 41) | cacheTTL = 10 * time.Minute
type Store (line 55) | type Store struct
method createSchema (line 108) | func (s *Store) createSchema() error {
method GetAllEndpointStatuses (line 117) | func (s *Store) GetAllEndpointStatuses(params *paging.EndpointStatusPa...
method GetEndpointStatus (line 142) | func (s *Store) GetEndpointStatus(groupName, endpointName string, para...
method GetEndpointStatusByKey (line 147) | func (s *Store) GetEndpointStatusByKey(key string, params *paging.Endp...
method GetUptimeByKey (line 164) | func (s *Store) GetUptimeByKey(key string, from, to time.Time) (float6...
method GetAverageResponseTimeByKey (line 189) | func (s *Store) GetAverageResponseTimeByKey(key string, from, to time....
method GetHourlyAverageResponseTimeByKey (line 214) | func (s *Store) GetHourlyAverageResponseTimeByKey(key string, from, to...
method InsertEndpointResult (line 239) | func (s *Store) InsertEndpointResult(ep *endpoint.Endpoint, result *en...
method DeleteAllEndpointStatusesNotInKeys (line 384) | func (s *Store) DeleteAllEndpointStatusesNotInKeys(keys []string) int {
method GetTriggeredEndpointAlert (line 442) | func (s *Store) GetTriggeredEndpointAlert(ep *endpoint.Endpoint, alert...
method UpsertTriggeredEndpointAlert (line 460) | func (s *Store) UpsertTriggeredEndpointAlert(ep *endpoint.Endpoint, tr...
method DeleteTriggeredEndpointAlert (line 507) | func (s *Store) DeleteTriggeredEndpointAlert(ep *endpoint.Endpoint, tr...
method DeleteAllTriggeredAlertsNotInChecksumsByEndpoint (line 516) | func (s *Store) DeleteAllTriggeredAlertsNotInChecksumsByEndpoint(ep *e...
method HasEndpointStatusNewerThan (line 547) | func (s *Store) HasEndpointStatusNewerThan(key string, timestamp time....
method Clear (line 565) | func (s *Store) Clear() {
method Save (line 573) | func (s *Store) Save() error {
method Close (line 578) | func (s *Store) Close() {
method insertEndpoint (line 587) | func (s *Store) insertEndpoint(tx *sql.Tx, ep *endpoint.Endpoint) (int...
method insertEndpointEvent (line 603) | func (s *Store) insertEndpointEvent(tx *sql.Tx, endpointID int64, even...
method insertEndpointResult (line 617) | func (s *Store) insertEndpointResult(tx *sql.Tx, endpointID int64, res...
method insertEndpointResultWithSuiteID (line 622) | func (s *Store) insertEndpointResultWithSuiteID(tx *sql.Tx, endpointID...
method insertConditionResults (line 650) | func (s *Store) insertConditionResults(tx *sql.Tx, endpointResultID in...
method updateEndpointUptime (line 665) | func (s *Store) updateEndpointUptime(tx *sql.Tx, endpointID int64, res...
method getAllEndpointKeys (line 689) | func (s *Store) getAllEndpointKeys(tx *sql.Tx) (keys []string, err err...
method getEndpointStatusByKey (line 711) | func (s *Store) getEndpointStatusByKey(tx *sql.Tx, key string, paramet...
method getEndpointIDGroupAndNameByKey (line 742) | func (s *Store) getEndpointIDGroupAndNameByKey(tx *sql.Tx, key string)...
method getEndpointEventsByEndpointID (line 761) | func (s *Store) getEndpointEventsByEndpointID(tx *sql.Tx, endpointID i...
method getEndpointResultsByEndpointID (line 791) | func (s *Store) getEndpointResultsByEndpointID(tx *sql.Tx, endpointID ...
method getEndpointUptime (line 856) | func (s *Store) getEndpointUptime(tx *sql.Tx, endpointID int64, from, ...
method getEndpointAverageResponseTime (line 883) | func (s *Store) getEndpointAverageResponseTime(tx *sql.Tx, endpointID ...
method getEndpointHourlyAverageResponseTimes (line 910) | func (s *Store) getEndpointHourlyAverageResponseTimes(tx *sql.Tx, endp...
method getEndpointID (line 937) | func (s *Store) getEndpointID(tx *sql.Tx, ep *endpoint.Endpoint) (int6...
method getNumberOfEventsByEndpointID (line 949) | func (s *Store) getNumberOfEventsByEndpointID(tx *sql.Tx, endpointID i...
method getNumberOfResultsByEndpointID (line 955) | func (s *Store) getNumberOfResultsByEndpointID(tx *sql.Tx, endpointID ...
method getNumberOfUptimeEntriesByEndpointID (line 961) | func (s *Store) getNumberOfUptimeEntriesByEndpointID(tx *sql.Tx, endpo...
method getAgeOfOldestEndpointUptimeEntry (line 967) | func (s *Store) getAgeOfOldestEndpointUptimeEntry(tx *sql.Tx, endpoint...
method getLastEndpointResultSuccessValue (line 993) | func (s *Store) getLastEndpointResultSuccessValue(tx *sql.Tx, endpoint...
method deleteOldEndpointEvents (line 1006) | func (s *Store) deleteOldEndpointEvents(tx *sql.Tx, endpointID int64) ...
method deleteOldEndpointResults (line 1026) | func (s *Store) deleteOldEndpointResults(tx *sql.Tx, endpointID int64)...
method deleteOldUptimeEntries (line 1045) | func (s *Store) deleteOldUptimeEntries(tx *sql.Tx, endpointID int64, m...
method mergeHourlyUptimeEntriesOlderThanMergeThresholdIntoDailyUptimeEntries (line 1057) | func (s *Store) mergeHourlyUptimeEntriesOlderThanMergeThresholdIntoDai...
method GetAllSuiteStatuses (line 1163) | func (s *Store) GetAllSuiteStatuses(params *paging.SuiteStatusParams) ...
method GetSuiteStatusByKey (line 1228) | func (s *Store) GetSuiteStatusByKey(key string, params *paging.SuiteSt...
method InsertSuiteResult (line 1285) | func (s *Store) InsertSuiteResult(su *suite.Suite, result *suite.Resul...
method DeleteAllSuiteStatusesNotInKeys (line 1367) | func (s *Store) DeleteAllSuiteStatusesNotInKeys(keys []string) int {
method getSuiteID (line 1425) | func (s *Store) getSuiteID(tx *sql.Tx, su *suite.Suite) (int64, error) {
method insertSuite (line 1438) | func (s *Store) insertSuite(tx *sql.Tx, su *suite.Suite) (int64, error) {
method getSuiteResults (line 1453) | func (s *Store) getSuiteResults(tx *sql.Tx, suiteID int64, page, pageS...
method getNumberOfSuiteResultsByID (line 1605) | func (s *Store) getNumberOfSuiteResultsByID(tx *sql.Tx, suiteID int64)...
method deleteOldSuiteResults (line 1612) | func (s *Store) deleteOldSuiteResults(tx *sql.Tx, suiteID int64) error {
function NewStore (line 69) | func NewStore(driver, path string, caching bool, maximumNumberOfResults,...
function generateCacheKey (line 1136) | func generateCacheKey(endpointKey string, p *paging.EndpointStatusParams...
function extractKeyAndParamsFromCacheKey (line 1140) | func extractKeyAndParamsFromCacheKey(cacheKey string) (string, *paging.E...
FILE: storage/store/sql/sql_test.go
function TestNewStore (line 86) | func TestNewStore(t *testing.T) {
function TestStore_InsertCleansUpOldUptimeEntriesProperly (line 100) | func TestStore_InsertCleansUpOldUptimeEntriesProperly(t *testing.T) {
function TestStore_HourlyUptimeEntriesAreMergedIntoDailyUptimeEntriesProperly (line 157) | func TestStore_HourlyUptimeEntriesAreMergedIntoDailyUptimeEntriesProperl...
function TestStore_getEndpointUptime (line 214) | func TestStore_getEndpointUptime(t *testing.T) {
function TestStore_InsertCleansUpEventsAndResultsProperly (line 276) | func TestStore_InsertCleansUpEventsAndResultsProperly(t *testing.T) {
function TestStore_InsertWithCaching (line 295) | func TestStore_InsertWithCaching(t *testing.T) {
function TestStore_Persistence (line 329) | func TestStore_Persistence(t *testing.T) {
function TestStore_Save (line 415) | func TestStore_Save(t *testing.T) {
function TestStore_SanityCheck (line 425) | func TestStore_SanityCheck(t *testing.T) {
function TestStore_InvalidTransaction (line 469) | func TestStore_InvalidTransaction(t *testing.T) {
function TestStore_NoRows (line 527) | func TestStore_NoRows(t *testing.T) {
function TestStore_BrokenSchema (line 541) | func TestStore_BrokenSchema(t *testing.T) {
function TestCacheKey (line 643) | func TestCacheKey(t *testing.T) {
function TestTriggeredEndpointAlertsPersistence (line 729) | func TestTriggeredEndpointAlertsPersistence(t *testing.T) {
function TestStore_DeleteAllTriggeredAlertsNotInChecksumsByEndpoint (line 795) | func TestStore_DeleteAllTriggeredAlertsNotInChecksumsByEndpoint(t *testi...
function TestStore_HasEndpointStatusNewerThan (line 857) | func TestStore_HasEndpointStatusNewerThan(t *testing.T) {
function TestEventOrderingFix (line 893) | func TestEventOrderingFix(t *testing.T) {
FILE: storage/store/store.go
type Store (line 18) | type Store interface
function Get (line 107) | func Get() Store {
function Initialize (line 120) | func Initialize(cfg *storage.Config) error {
function autoSave (line 154) | func autoSave(ctx context.Context, store Store, interval time.Duration) {
FILE: storage/store/store_bench_test.go
function BenchmarkStore_GetAllEndpointStatuses (line 15) | func BenchmarkStore_GetAllEndpointStatuses(b *testing.B) {
function BenchmarkStore_Insert (line 84) | func BenchmarkStore_Insert(b *testing.B) {
function BenchmarkStore_GetEndpointStatusByKey (line 156) | func BenchmarkStore_GetEndpointStatusByKey(b *testing.B) {
FILE: storage/store/store_test.go
type Scenario (line 88) | type Scenario struct
function initStoresAndBaseScenarios (line 93) | func initStoresAndBaseScenarios(t *testing.T, testName string) []*Scenar...
function cleanUp (line 122) | func cleanUp(scenarios []*Scenario) {
function TestStore_GetEndpointStatusByKey (line 128) | func TestStore_GetEndpointStatusByKey(t *testing.T) {
function TestStore_GetEndpointStatusForMissingStatusReturnsNil (line 173) | func TestStore_GetEndpointStatusForMissingStatusReturnsNil(t *testing.T) {
function TestStore_GetAllEndpointStatuses (line 204) | func TestStore_GetAllEndpointStatuses(t *testing.T) {
function TestStore_GetAllEndpointStatusesWithResultsAndEvents (line 264) | func TestStore_GetAllEndpointStatusesWithResultsAndEvents(t *testing.T) {
function TestStore_GetEndpointStatusPage1IsHasMoreRecentResultsThanPage2 (line 296) | func TestStore_GetEndpointStatusPage1IsHasMoreRecentResultsThanPage2(t *...
function TestStore_GetUptimeByKey (line 336) | func TestStore_GetUptimeByKey(t *testing.T) {
function TestStore_GetAverageResponseTimeByKey (line 366) | func TestStore_GetAverageResponseTimeByKey(t *testing.T) {
function TestStore_GetHourlyAverageResponseTimeByKey (line 423) | func TestStore_GetHourlyAverageResponseTimeByKey(t *testing.T) {
function TestStore_Insert (line 462) | func TestStore_Insert(t *testing.T) {
function TestStore_DeleteAllEndpointStatusesNotInKeys (line 540) | func TestStore_DeleteAllEndpointStatusesNotInKeys(t *testing.T) {
function TestGet (line 573) | func TestGet(t *testing.T) {
function TestInitialize (line 580) | func TestInitialize(t *testing.T) {
function TestAutoSave (line 644) | func TestAutoSave(t *testing.T) {
FILE: storage/type.go
type Type (line 4) | type Type
constant TypeMemory (line 7) | TypeMemory Type = "memory"
constant TypeSQLite (line 8) | TypeSQLite Type = "sqlite"
constant TypePostgres (line 9) | TypePostgres Type = "postgres"
FILE: test/mock.go
type MockRoundTripper (line 5) | type MockRoundTripper
method RoundTrip (line 7) | func (f MockRoundTripper) RoundTrip(r *http.Request) (*http.Response, ...
FILE: watchdog/alerting.go
function HandleAlerting (line 16) | func HandleAlerting(ep *endpoint.Endpoint, result *endpoint.Result, aler...
function handleAlertsToTrigger (line 27) | func handleAlertsToTrigger(ep *endpoint.Endpoint, result *endpoint.Resul...
function handleAlertsToResolve (line 83) | func handleAlertsToResolve(ep *endpoint.Endpoint, result *endpoint.Resul...
FILE: watchdog/alerting_test.go
function TestHandleAlerting (line 35) | func TestHandleAlerting(t *testing.T) {
function TestHandleAlertingWhenAlertingConfigIsNil (line 83) | func TestHandleAlertingWhenAlertingConfigIsNil(t *testing.T) {
function TestHandleAlertingWithBadAlertProvider (line 89) | func TestHandleAlertingWithBadAlertProvider(t *testing.T) {
function TestHandleAlertingWhenTriggeredAlertIsAlmostResolvedButendpointStartFailingAgain (line 115) | func TestHandleAlertingWhenTriggeredAlertIsAlmostResolvedButendpointStar...
function TestHandleAlertingWhenTriggeredAlertIsResolvedButSendOnResolvedIsFalse (line 150) | func TestHandleAlertingWhenTriggeredAlertIsResolvedButSendOnResolvedIsFa...
function TestHandleAlertingWhenTriggeredAlertIsResolvedPagerDuty (line 185) | func TestHandleAlertingWhenTriggeredAlertIsResolvedPagerDuty(t *testing....
function TestHandleAlertingWhenTriggeredAlertIsResolvedPushover (line 221) | func TestHandleAlertingWhenTriggeredAlertIsResolvedPushover(t *testing.T) {
function TestHandleAlertingWithProviderThatReturnsAnError (line 258) | func TestHandleAlertingWithProviderThatReturnsAnError(t *testing.T) {
function TestHandleAlertingWithProviderThatOnlyReturnsErrorOnResolve (line 572) | func TestHandleAlertingWithProviderThatOnlyReturnsErrorOnResolve(t *test...
function TestHandleAlertingWithMinimumReminderInterval (line 625) | func TestHandleAlertingWithMinimumReminderInterval(t *testing.T) {
function verify (line 667) | func verify(t *testing.T, ep *endpoint.Endpoint, expectedNumberOfFailure...
FILE: watchdog/endpoint.go
function monitorEndpoint (line 15) | func monitorEndpoint(ep *endpoint.Endpoint, cfg *config.Config, extraLab...
function executeEndpoint (line 35) | func executeEndpoint(ep *endpoint.Endpoint, cfg *config.Config, extraLab...
function UpdateEndpointStatus (line 75) | func UpdateEndpointStatus(ep *endpoint.Endpoint, result *endpoint.Result) {
FILE: watchdog/external_endpoint.go
function monitorExternalEndpointHeartbeat (line 14) | func monitorExternalEndpointHeartbeat(ee *endpoint.ExternalEndpoint, cfg...
function executeExternalEndpointHeartbeat (line 28) | func executeExternalEndpointHeartbeat(ee *endpoint.ExternalEndpoint, cfg...
FILE: watchdog/suite.go
function monitorSuite (line 15) | func monitorSuite(s *suite.Suite, cfg *config.Config, extraLabels []stri...
function executeSuite (line 33) | func executeSuite(s *suite.Suite, cfg *config.Config, extraLabels []stri...
function UpdateSuiteStatus (line 80) | func UpdateSuiteStatus(s *suite.Suite, result *suite.Result) {
FILE: watchdog/watchdog.go
constant UnlimitedConcurrencyWeight (line 14) | UnlimitedConcurrencyWeight = 10000
function Monitor (line 27) | func Monitor(cfg *config.Config) {
function Shutdown (line 62) | func Shutdown(cfg *config.Config) {
FILE: web/app/src/utils/misc.js
function combineClasses (line 4) | function combineClasses(...inputs) {
FILE: web/static.go
constant RootPath (line 11) | RootPath = "static"
constant IndexPath (line 12) | IndexPath = RootPath + "/index.html"
FILE: web/static/js/app.js
function v (line 1) | function v(...e){return(0,p.m6)((0,m.W)(e))}
method setup (line 1) | setup(e){const t=(0,g.j)("inline-flex items-center justify-center whites...
method setup (line 1) | setup(e){return(e,t)=>((0,l.wg)(),(0,l.iD)("div",{class:(0,n.C_)((0,r.SU...
method setup (line 1) | setup(e){return(e,t)=>((0,l.wg)(),(0,l.iD)("div",{class:(0,n.C_)((0,r.SU...
method setup (line 1) | setup(e){return(e,t)=>((0,l.wg)(),(0,l.iD)("h3",{class:(0,n.C_)((0,r.SU)...
method setup (line 1) | setup(e){return(e,t)=>((0,l.wg)(),(0,l.iD)("div",{class:(0,n.C_)((0,r.SU...
function F (line 1) | function F(e,t){return(0,l.wg)(),(0,l.iD)("div",R,t[0]||(t[0]=[(0,l._)("...
method setup (line 1) | setup(e){const t=(0,i.yj)(),s=e,a=(0,r.iH)(!0),o=(0,r.iH)(0),u=(0,r.iH)(...
method setup (line 1) | setup(e){const t=e,s=(0,l.Fl)((()=>{const e={xs:"w-4 h-4",sm:"w-6 h-6",m...
method setup (line 1) | setup(e){const t=(0,i.yj)(),s=(0,r.iH)(!1),a=(0,r.iH)({oidc:!1,authentic...
method setup (line 1) | setup(e){const t=(0,g.j)("inline-flex items-center rounded-full border p...
method setup (line 1) | setup(e){const t=e,s=(0,l.Fl)((()=>{switch(t.status){case"healthy":retur...
method setup (line 1) | setup(e,{emit:t}){const s=(0,i.tv)(),o=e,u=t,d=(0,r.iH)(null),c=(0,l.Fl)...
method setup (line 1) | setup(e,{emit:t}){const s=(0,i.tv)(),o=e,u=t,d=(0,r.iH)(null),c=(0,l.Fl)...
method setup (line 1) | setup(e){return(t,s)=>((0,l.wg)(),(0,l.iD)("input",{class:(0,n.C_)((0,r....
method setup (line 1) | setup(e,{emit:t}){const s=e,a=t,o=(0,r.iH)(!1),i=(0,r.iH)(null),u=(0,r.i...
method setup (line 1) | setup(e,{emit:t}){const s=(0,r.iH)(""),a=(0,r.iH)(localStorage.getItem("...
method setup (line 1) | setup(e,{emit:t}){const s=t,o=[{value:"10",label:"10s"},{value:"30",labe...
method setup (line 1) | setup(e){const t=e,s=(0,r.iH)(!1),a=()=>{s.value=!s.value},o={outage:{ic...
method setup (line 1) | setup(e){const t=e,s=(0,r.iH)(!1),a={outage:{icon:ks.Z,background:"bg-re...
method setup (line 1) | setup(e,{emit:t}){const s=e,a=(0,l.Fl)((()=>s.announcements?s.announceme...
method setup (line 1) | setup(e,{emit:t}){const s=e,a=t,o=(0,r.iH)(s.currentPageProp),i=(0,l.Fl)...
method setup (line 1) | setup(e){al.kL.register(al.uw,al.f$,al.od,al.jn,al.Dx,al.u,al.De,al.Gu,a...
method setup (line 1) | setup(e,{emit:t}){const s=(0,i.tv)(),o=(0,i.yj)(),u=t,d=(0,r.iH)(null),c...
method setup (line 1) | setup(e){const t=e,s=(0,l.Fl)((()=>{switch(t.step.status){case"success":...
method setup (line 1) | setup(e){const t=e,s=(0,l.Fl)((()=>t.completedSteps)),a=(0,l.Fl)((()=>t....
method setup (line 1) | setup(e){const t=e,s=(0,l.Fl)((()=>{switch(t.step.status){case"success":...
method setup (line 1) | setup(e){const t=(0,i.tv)(),s=(0,i.yj)(),a=(0,r.iH)(!1),o=(0,r.iH)(null)...
function s (line 1) | function s(a){var l=t[a];if(void 0!==l)return l.exports;var n=t[a]={expo...
FILE: web/static/js/chunk-vendors.js
class s (line 6) | class s{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,thi...
method constructor (line 6) | constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effe...
method active (line 6) | get active(){return this._active}
method pause (line 6) | pause(){if(this._active){let t,e;if(this._isPaused=!0,this.scopes)for(...
method resume (line 6) | resume(){if(this._active&&this._isPaused){let t,e;if(this._isPaused=!1...
method run (line 6) | run(t){if(this._active){const e=r;try{return r=this,t()}finally{r=e}}e...
method on (line 6) | on(){1===++this._on&&(this.prevScope=r,r=this)}
method off (line 6) | off(){this._on>0&&0===--this._on&&(r=this.prevScope,this.prevScope=voi...
method stop (line 6) | stop(t){if(this._active){let e,n;for(this._active=!1,e=0,n=this.effect...
function a (line 6) | function a(){return r}
class c (line 6) | class c{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,t...
method constructor (line 6) | constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.fl...
method pause (line 6) | pause(){this.flags|=64}
method resume (line 6) | resume(){64&this.flags&&(this.flags&=-65,l.has(this)&&(l.delete(this),...
method notify (line 6) | notify(){2&this.flags&&!(32&this.flags)||8&this.flags||f(this)}
method run (line 6) | run(){if(!(1&this.flags))return this.fn();this.flags|=2,T(this),m(this...
method stop (line 6) | stop(){if(1&this.flags){for(let t=this.deps;t;t=t.nextDep)v(t);this.de...
method trigger (line 6) | trigger(){64&this.flags?l.add(this):this.scheduler?this.scheduler():th...
method runIfDirty (line 6) | runIfDirty(){x(this)&&this.run()}
method dirty (line 6) | get dirty(){return x(this)}
method constructor (line 230) | constructor(t,e){this._chart=t,this._properties=new Map,this.configure...
method configure (line 230) | configure(t){if(!(0,i.i)(t))return;const e=Object.keys(i.d.animation),...
method _animateOptions (line 230) | _animateOptions(t,e){const n=e.options,i=h(t,n);if(!i)return[];const r...
method _createAnimations (line 230) | _createAnimations(t,e){const n=this._properties,i=[],r=t.$animations||...
method update (line 230) | update(t,e){if(0===this._properties.size)return void Object.assign(t,e...
function f (line 6) | function f(t,e=!1){if(t.flags|=8,e)return t.next=h,void(h=t);t.next=u,u=t}
function p (line 6) | function p(){d++}
function g (line 6) | function g(){if(--d>0)return;if(h){let t=h;h=void 0;while(t){const e=t.n...
function m (line 6) | function m(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLi...
function b (line 6) | function b(t){let e,n=t.depsTail,i=n;while(i){const t=i.prevDep;-1===i.v...
function x (line 6) | function x(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.versio...
function y (line 6) | function y(t){if(4&t.flags&&!(16&t.flags))return;if(t.flags&=-17,t.globa...
function v (line 6) | function v(t,e=!1){const{dep:n,prevSub:i,nextSub:r}=t;if(i&&(i.nextSub=r...
function w (line 6) | function w(t){const{prevDep:e,nextDep:n}=t;e&&(e.nextDep=n,t.prevDep=voi...
function M (line 6) | function M(){_.push(k),k=!1}
function S (line 6) | function S(){const t=_.pop();k=void 0===t||t}
function T (line 6) | function T(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const t=o;o=void...
class C (line 6) | class C{constructor(t,e){this.sub=t,this.dep=e,this.version=e.version,th...
method constructor (line 6) | constructor(t,e){this.sub=t,this.dep=e,this.version=e.version,this.nex...
class A (line 6) | class A{constructor(t){this.computed=t,this.version=0,this.activeLink=vo...
method constructor (line 6) | constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,t...
method track (line 6) | track(t){if(!o||!k||o===this.computed)return;let e=this.activeLink;if(...
method trigger (line 6) | trigger(t){this.version++,D++,this.notify(t)}
method notify (line 6) | notify(t){p();try{0;for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&...
function O (line 6) | function O(t){if(t.dep.sc++,4&t.sub.flags){const e=t.dep.computed;if(e&&...
function L (line 6) | function L(t,e,n){if(k&&o){let e=P.get(t);e||P.set(t,e=new Map);let i=e....
function z (line 6) | function z(t,e,n,r,o,s){const a=P.get(t);if(!a)return void D++;const l=t...
method override (line 230) | static override(t){Object.assign(z.prototype,t)}
method constructor (line 230) | constructor(t){this.options=t||{}}
method init (line 230) | init(){}
method formats (line 230) | formats(){return L()}
method parse (line 230) | parse(){return L()}
method format (line 230) | format(){return L()}
method add (line 230) | add(){return L()}
method diff (line 230) | diff(){return L()}
method startOf (line 230) | startOf(){return L()}
method endOf (line 230) | endOf(){return L()}
function N (line 6) | function N(t){const e=Mt(t);return e===t?e:(L(e,"iterate",I),kt(t)?e:e.m...
function F (line 6) | function F(t){return L(t=Mt(t),"iterate",I),t}
method [Symbol.iterator] (line 6) | [Symbol.iterator](){return H(this,Symbol.iterator,Tt)}
method concat (line 6) | concat(...t){return N(this).concat(...t.map((t=>(0,i.kJ)(t)?N(t):t)))}
method entries (line 6) | entries(){return H(this,"entries",(t=>(t[1]=Tt(t[1]),t)))}
method every (line 6) | every(t,e){return $(this,"every",t,e,void 0,arguments)}
method filter (line 6) | filter(t,e){return $(this,"filter",t,e,(t=>t.map(Tt)),arguments)}
method find (line 6) | find(t,e){return $(this,"find",t,e,Tt,arguments)}
method findIndex (line 6) | findIndex(t,e){return $(this,"findIndex",t,e,void 0,arguments)}
method findLast (line 6) | findLast(t,e){return $(this,"findLast",t,e,Tt,arguments)}
method findLastIndex (line 6) | findLastIndex(t,e){return $(this,"findLastIndex",t,e,void 0,arguments)}
method forEach (line 6) | forEach(t,e){return $(this,"forEach",t,e,void 0,arguments)}
method includes (line 6) | includes(...t){return Y(this,"includes",t)}
method indexOf (line 6) | indexOf(...t){return Y(this,"indexOf",t)}
method join (line 6) | join(t){return N(this).join(t)}
method lastIndexOf (line 6) | lastIndexOf(...t){return Y(this,"lastIndexOf",t)}
method map (line 6) | map(t,e){return $(this,"map",t,e,void 0,arguments)}
method pop (line 6) | pop(){return V(this,"pop")}
method push (line 6) | push(...t){return V(this,"push",t)}
method reduce (line 6) | reduce(t,...e){return B(this,"reduce",t,e)}
method reduceRight (line 6) | reduceRight(t,...e){return B(this,"reduceRight",t,e)}
method shift (line 6) | shift(){return V(this,"shift")}
method some (line 6) | some(t,e){return $(this,"some",t,e,void 0,arguments)}
method splice (line 6) | splice(...t){return V(this,"splice",t)}
method toReversed (line 6) | toReversed(){return N(this).toReversed()}
method toSorted (line 6) | toSorted(t){return N(this).toSorted(t)}
method toSpliced (line 6) | toSpliced(...t){return N(this).toSpliced(...t)}
method unshift (line 6) | unshift(...t){return V(this,"unshift",t)}
method values (line 6) | values(){return H(this,"values",Tt)}
function H (line 6) | function H(t,e,n){const i=F(t),r=i[e]();return i===t||kt(t)||(r._next=r....
function $ (line 6) | function $(t,e,n,i,r,o){const s=F(t),a=s!==t&&!kt(t),l=s[e];if(l!==W[e])...
function B (line 6) | function B(t,e,n,i){const r=F(t);let o=n;return r!==t&&(kt(t)?n.length>3...
function Y (line 6) | function Y(t,e,n){const i=Mt(t);L(i,"iterate",I);const r=i[e](...n);retu...
function V (line 6) | function V(t,e,n=[]){M(),p();const i=Mt(t)[e].apply(t,n);return g(),S(),i}
function X (line 6) | function X(t){(0,i.yk)(t)||(t=String(t));const e=Mt(this);return L(e,"ha...
class G (line 6) | class G{constructor(t=!1,e=!1){this._isReadonly=t,this._isShallow=e}get(...
method constructor (line 6) | constructor(t=!1,e=!1){this._isReadonly=t,this._isShallow=e}
method get (line 6) | get(t,e,n){if("__v_skip"===e)return t["__v_skip"];const r=this._isRead...
class Z (line 6) | class Z extends G{constructor(t=!1){super(!1,t)}set(t,e,n,r){let o=t[e];...
method constructor (line 6) | constructor(t=!1){super(!1,t)}
method set (line 6) | set(t,e,n,r){let o=t[e];if(!this._isShallow){const e=wt(o);if(kt(n)||w...
method deleteProperty (line 6) | deleteProperty(t,e){const n=(0,i.RI)(t,e),r=t[e],o=Reflect.deletePrope...
method has (line 6) | has(t,e){const n=Reflect.has(t,e);return(0,i.yk)(e)&&q.has(e)||L(t,"ha...
method ownKeys (line 6) | ownKeys(t){return L(t,"iterate",(0,i.kJ)(t)?"length":E),Reflect.ownKey...
class Q (line 6) | class Q extends G{constructor(t=!1){super(!0,t)}set(t,e){return!0}delete...
method constructor (line 6) | constructor(t=!1){super(!0,t)}
method set (line 6) | set(t,e){return!0}
method deleteProperty (line 6) | deleteProperty(t,e){return!0}
function it (line 6) | function it(t,e,n){return function(...r){const o=this["__v_raw"],s=Mt(o)...
function rt (line 6) | function rt(t){return function(...e){return"delete"!==t&&("clear"===t?vo...
function ot (line 6) | function ot(t,e){const n={get(n){const r=this["__v_raw"],o=Mt(r),s=Mt(n)...
function st (line 6) | function st(t,e){const n=ot(t,e);return(e,r,o)=>"__v_isReactive"===r?!t:...
function pt (line 6) | function pt(t){switch(t){case"Object":case"Array":return 1;case"Map":cas...
method run (line 244) | run(t,e,n,i){const r=this.parse(t,e,n,i);return r?{setter:new dt(r.val...
method validate (line 244) | validate(t,e,n){return!0}
function gt (line 6) | function gt(t){return t["__v_skip"]||!Object.isExtensible(t)?0:pt((0,i.W...
method parse (line 244) | parse(t,e,n){switch(e){case"G":case"GG":case"GGG":return n.era(t,{widt...
method set (line 244) | set(t,e,n){return e.era=n,t.setFullYear(n,0,1),t.setHours(0,0,0,0),t}
function mt (line 6) | function mt(t){return wt(t)?t:yt(t,!1,J,at,ut)}
function bt (line 6) | function bt(t){return yt(t,!1,tt,lt,ht)}
function xt (line 6) | function xt(t){return yt(t,!0,K,ct,dt)}
function yt (line 6) | function yt(t,e,n,r,o){if(!(0,i.Kn)(t))return t;if(t["__v_raw"]&&(!e||!t...
function vt (line 6) | function vt(t){return wt(t)?vt(t["__v_raw"]):!(!t||!t["__v_isReactive"])}
function wt (line 6) | function wt(t){return!(!t||!t["__v_isReadonly"])}
function kt (line 6) | function kt(t){return!(!t||!t["__v_isShallow"])}
function _t (line 6) | function _t(t){return!!t&&!!t["__v_raw"]}
function Mt (line 6) | function Mt(t){const e=t&&t["__v_raw"];return e?Mt(e):t}
function St (line 6) | function St(t){return!(0,i.RI)(t,"__v_skip")&&Object.isExtensible(t)&&(0...
function Ct (line 6) | function Ct(t){return!!t&&!0===t["__v_isRef"]}
function At (line 6) | function At(t){return Pt(t,!1)}
function Ot (line 6) | function Ot(t){return Pt(t,!0)}
method parse (line 244) | parse(t,e,n){const i=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){c...
method validate (line 244) | validate(t,e){return e.isTwoDigitYear||e.year>0}
method set (line 244) | set(t,e,n,i){const r=At(t,i);if(n.isTwoDigitYear){const e=St(n.year,r)...
function Pt (line 6) | function Pt(t,e){return Ct(t)?t:new Et(t,e)}
method acquireContext (line 230) | acquireContext(t,e){const n=t&&t.getContext&&t.getContext("2d");return...
method releaseContext (line 230) | releaseContext(t){const e=t.canvas;if(!e[dt])return!1;const n=e[dt].in...
method addEventListener (line 230) | addEventListener(t,e,n){this.removeEventListener(t,e);const i=t.$proxi...
method removeEventListener (line 230) | removeEventListener(t,e){const n=t.$proxies||(t.$proxies={}),i=n[e];if...
method getDevicePixelRatio (line 230) | getDevicePixelRatio(){return window.devicePixelRatio}
method getMaximumSize (line 230) | getMaximumSize(t,e,n,r){return(0,i.G)(t,e,n,r)}
method isAttached (line 230) | isAttached(t){const e=t&&(0,i.I)(t);return!(!e||!e.isConnected)}
class Et (line 6) | class Et{constructor(t,e){this.dep=new A,this["__v_isRef"]=!0,this["__v_...
method constructor (line 6) | constructor(t,e){this.dep=new A,this["__v_isRef"]=!0,this["__v_isShall...
method value (line 6) | get value(){return this.dep.track(),this._value}
method value (line 6) | set value(t){const e=this._rawValue,n=this["__v_isShallow"]||kt(t)||wt...
method parse (line 244) | parse(t,e){return _t("R"===e?4:e.length,t)}
method set (line 244) | set(t,e,n){const i=u(t,0);return i.setFullYear(n,0,4),i.setHours(0,0,0...
function Rt (line 6) | function Rt(t){return Ct(t)?t.value:t}
method tooltipPosition (line 230) | tooltipPosition(t){const{x:e,y:n}=this.getProps(["x","y"],t);return{x:...
method hasValue (line 230) | hasValue(){return(0,i.x)(this.x)&&(0,i.x)(this.y)}
method getProps (line 230) | getProps(t,e){const n=this.$animations;if(!e||!n)return this;const i={...
method parse (line 244) | parse(t,e){return _t("u"===e?4:e.length,t)}
method set (line 244) | set(t,e,n){return t.setFullYear(n,0,1),t.setHours(0,0,0,0),t}
function Lt (line 6) | function Lt(t){return vt(t)?t:new Proxy(t,It)}
method parse (line 244) | parse(t,e,n){switch(e){case"q":case"qq":return kt(e.length,t);case"qo"...
method validate (line 244) | validate(t,e){return e>=1&&e<=4}
method set (line 244) | set(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}
class zt (line 6) | class zt{constructor(t,e,n){this.fn=t,this.setter=e,this._value=void 0,t...
method constructor (line 6) | constructor(t,e,n){this.fn=t,this.setter=e,this._value=void 0,this.dep...
method notify (line 6) | notify(){if(this.flags|=16,!(8&this.flags||o===this))return f(this,!0)...
method value (line 6) | get value(){const t=this.dep.track();return y(this),t&&(t.version=this...
method value (line 6) | set value(t){this.setter&&this.setter(t)}
method parse (line 244) | parse(t,e,n){const i=t=>t-1;switch(e){case"M":return xt(yt(mt.month,t)...
method validate (line 244) | validate(t,e){return e>=0&&e<=11}
method set (line 244) | set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}
function Nt (line 6) | function Nt(t,e,n=!1){let r,o;(0,i.mf)(t)?r=t:(r=t.get,o=t.set);const s=...
method parse (line 244) | parse(t,e,n){const i=t=>t-1;switch(e){case"L":return xt(yt(mt.month,t)...
method validate (line 244) | validate(t,e){return e>=0&&e<=11}
method set (line 244) | set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}
function Wt (line 6) | function Wt(t,e=!1,n=Ht){if(n){let e=jt.get(n);e||jt.set(n,e=[]),e.push(...
method parse (line 244) | parse(t,e,n){switch(e){case"w":return yt(mt.week,t);case"wo":return n....
method validate (line 244) | validate(t,e){return e>=1&&e<=53}
method set (line 244) | set(t,e,n,i){return Ct(Ht(t,n,i),i)}
function $t (line 6) | function $t(t,e,n=i.kT){const{immediate:r,deep:o,once:s,scheduler:l,augm...
function Bt (line 6) | function Bt(t,e=1/0,n){if(e<=0||!(0,i.Kn)(t)||t["__v_skip"])return t;if(...
function o (line 6) | function o(t,e,n,i){try{return i?t(...i):t()}catch(r){a(r,e,n)}}
function s (line 6) | function s(t,e,n,i){if((0,r.mf)(t)){const s=o(t,e,n,i);return s&&(0,r.tI...
method constructor (line 6) | constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effe...
method active (line 6) | get active(){return this._active}
method pause (line 6) | pause(){if(this._active){let t,e;if(this._isPaused=!0,this.scopes)for(...
method resume (line 6) | resume(){if(this._active&&this._isPaused){let t,e;if(this._isPaused=!1...
method run (line 6) | run(t){if(this._active){const e=r;try{return r=this,t()}finally{r=e}}e...
method on (line 6) | on(){1===++this._on&&(this.prevScope=r,r=this)}
method off (line 6) | off(){this._on>0&&0===--this._on&&(r=this.prevScope,this.prevScope=voi...
method stop (line 6) | stop(t){if(this._active){let e,n;for(this._active=!1,e=0,n=this.effect...
function a (line 6) | function a(t,e,n,s=!0){const a=e?e.vnode:null,{errorHandler:c,throwUnhan...
function l (line 6) | function l(t,e,n,i=!0,r=!1){if(r)throw t;console.error(t)}
method constructor (line 230) | constructor(t,e,n,r){const o=e[n];r=(0,i.a)([t.to,r,o,t.from]);const s...
method active (line 230) | active(){return this._active}
method update (line 230) | update(t,e,n){if(this._active){this._notify(!1);const r=this._target[t...
method cancel (line 230) | cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._no...
method tick (line 230) | tick(t){const e=t-this._start,n=this._duration,i=this._prop,r=this._fr...
method wait (line 230) | wait(){const t=this._promises||(this._promises=[]);return new Promise(...
method _notify (line 230) | _notify(t){const e=t?"res":"rej",n=this._promises||[];for(let i=0;i>>1,r=c[i],o=_...
function x (line 6) | function x(t){if(!(1&t.flags)){const e=_(t),n=c[c.length-1];!n||!(2&t.fl...
function y (line 6) | function y(){g||(g=p.then(M))}
function v (line 6) | function v(t){(0,r.kJ)(t)?h.push(...t):d&&-1===t.id?d.splice(f+1,0,t):1&...
function w (line 6) | function w(t,e,n=u+1){for(0;n_(t)-_(e...
function M (line 6) | function M(t){r.dG;try{for(u=0;u{i._...
method constructor (line 6) | constructor(t,e){this.sub=t,this.dep=e,this.version=e.version,this.nex...
function A (line 6) | function A(t,e){if(null===S)return t;const n=Ln(S),o=t.dirs||(t.dirs=[])...
method constructor (line 6) | constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,t...
method track (line 6) | track(t){if(!o||!k||o===this.computed)return;let e=this.activeLink;if(...
method trigger (line 6) | trigger(t){this.version++,D++,this.notify(t)}
method notify (line 6) | notify(t){p();try{0;for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&...
function O (line 6) | function O(t,e,n,r){const o=t.dirs,a=e&&e.dirs;for(let l=0;l(0,r.l7)({name:t.name},e,{setup:t...
function B (line 7) | function B(t){t.ids=[t.ids[0]+t.ids[2]+++"-",0,0]}
function Y (line 7) | function Y(t,e,n,s,a=!1){if((0,r.kJ)(t))return void t.forEach(((t,i)=>Y(...
function q (line 8) | function q(t,e){return(0,r.kJ)(t)?t.some((t=>q(t,e))):(0,r.HD)(t)?t.spli...
method constructor (line 237) | constructor(t){if(t instanceof q)return t;const e=typeof t;let n;"obje...
method valid (line 237) | get valid(){return this._valid}
method rgb (line 237) | get rgb(){var t=Y(this._rgb);return t&&(t.a=a(t.a)),t}
method rgb (line 237) | set rgb(t){this._rgb=V(t)}
method rgbString (line 237) | rgbString(){return this._valid?j(this._rgb):void 0}
method hexString (line 237) | hexString(){return this._valid?b(this._rgb):void 0}
method hslString (line 237) | hslString(){return this._valid?P(this._rgb):void 0}
method mix (line 237) | mix(t,e){if(t){const n=this.rgb,i=t.rgb;let r;const o=e===r?.5:e,s=2*o...
method interpolate (line 237) | interpolate(t,e){return t&&(this._rgb=$(this._rgb,t._rgb,e)),this}
method clone (line 237) | clone(){return new q(this.rgb)}
method alpha (line 237) | alpha(t){return this._rgb.a=s(t),this}
method clearer (line 237) | clearer(t){const e=this._rgb;return e.a*=1-t,this}
method greyscale (line 237) | greyscale(){const t=this._rgb,e=i(.3*t.r+.59*t.g+.11*t.b);return t.r=t...
method opaquer (line 237) | opaquer(t){const e=this._rgb;return e.a*=1+t,this}
method negate (line 237) | negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,...
method lighten (line 237) | lighten(t){return B(this._rgb,2,t),this}
method darken (line 237) | darken(t){return B(this._rgb,2,-t),this}
method saturate (line 237) | saturate(t){return B(this._rgb,1,t),this}
method desaturate (line 237) | desaturate(t){return B(this._rgb,1,-t),this}
method rotate (line 237) | rotate(t){return O(this._rgb,t),this}
function X (line 8) | function X(t,e){Z(t,"a",e)}
function G (line 8) | function G(t,e){Z(t,"da",e)}
method constructor (line 6) | constructor(t=!1,e=!1){this._isReadonly=t,this._isShallow=e}
method get (line 6) | get(t,e,n){if("__v_skip"===e)return t["__v_skip"];const r=this._isRead...
function Z (line 8) | function Z(t,e,n=yn){const i=t.__wdc||(t.__wdc=()=>{let e=n;while(e){if(...
method constructor (line 6) | constructor(t=!1){super(!1,t)}
method set (line 6) | set(t,e,n,r){let o=t[e];if(!this._isShallow){const e=wt(o);if(kt(n)||w...
method deleteProperty (line 6) | deleteProperty(t,e){const n=(0,i.RI)(t,e),r=t[e],o=Reflect.deletePrope...
method has (line 6) | has(t,e){const n=Reflect.has(t,e);return(0,i.yk)(e)&&q.has(e)||L(t,"ha...
method ownKeys (line 6) | ownKeys(t){return L(t,"iterate",(0,i.kJ)(t)?"length":E),Reflect.ownKey...
function Q (line 8) | function Q(t,e,n,i){const o=tt(e,t,i,!0);at((()=>{(0,r.Od)(i[e],o)}),n)}
method constructor (line 6) | constructor(t=!1){super(!0,t)}
method set (line 6) | set(t,e){return!0}
method deleteProperty (line 6) | deleteProperty(t,e){return!0}
function J (line 8) | function J(t){t.shapeFlag&=-257,t.shapeFlag&=-513}
function K (line 8) | function K(t){return 128&t.shapeFlag?t.ssContent:t}
function tt (line 8) | function tt(t,e,n=yn,r=!1){if(n){const o=n[t]||(n[t]=[]),a=e.__weh||(e._...
function ht (line 8) | function ht(t,e=yn){tt("ec",t,e)}
method acquireContext (line 230) | acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}
method updateConfig (line 230) | updateConfig(t){t.options.animation=!1}
method validate (line 244) | validate(t,e){return!0}
function ft (line 8) | function ft(t,e){return mt(dt,t,!0,e)||t}
method constructor (line 244) | constructor(t,e){super(),this.context=t||(t=>u(e,t))}
method set (line 244) | set(t,e){return e.timestampIsSet?t:u(t,lt(t,this.context))}
function gt (line 8) | function gt(t){return(0,r.HD)(t)?mt(dt,t,!1)||t:t||pt}
method parse (line 244) | parse(t,e,n){switch(e){case"G":case"GG":case"GGG":return n.era(t,{widt...
method set (line 244) | set(t,e,n){return e.era=n,t.setFullYear(n,0,1),t.setHours(0,0,0,0),t}
function mt (line 8) | function mt(t,e,n=!0,i=!1){const o=S||yn;if(o){const n=o.type;if(t===dt)...
function bt (line 8) | function bt(t,e){return t&&(t[e]||t[(0,r._A)(e)]||t[(0,r.kC)((0,r._A)(e)...
function xt (line 8) | function xt(t,e,n,o){let s;const a=n&&n[o],l=(0,r.kJ)(t);if(l||(0,r.HD)(...
function yt (line 8) | function yt(t,e,n={},i,o){if(S.ce||S.parent&&V(S.parent)&&S.parent.ce)re...
function vt (line 8) | function vt(t){return t.some((t=>!Ke(t)||t.type!==$e&&!(t.type===He&&!vt...
method get (line 8) | get({_:t},e){if("__v_skip"===e)return!0;const{ctx:n,setupState:o,data:s,...
method set (line 8) | set({_:t},e,n){const{data:i,setupState:o,ctx:s}=t;return _t(o,e)?(o[e]=n...
method has (line 8) | has({_:{data:t,setupState:e,accessCache:n,ctx:i,appContext:o,propsOption...
method defineProperty (line 8) | defineProperty(t,e,n){return null!=n.get?t._.accessCache[e]=0:(0,r.RI)(n...
function St (line 8) | function St(t){return(0,r.kJ)(t)?t.reduce(((t,e)=>(t[e]=null,t)),{}):t}
function Dt (line 8) | function Dt(t){const e=Pt(t),n=t.proxy,o=t.ctx;Tt=!1,e.beforeCreate&&At(...
method parse (line 244) | parse(t,e,n){const i=t=>({year:t,isTwoDigitYear:"yy"===e});switch(e){c...
method validate (line 244) | validate(t,e){return e.isTwoDigitYear||e.year>0}
method set (line 244) | set(t,e,n){const i=t.getFullYear();if(n.isTwoDigitYear){const e=St(n.y...
function Ct (line 8) | function Ct(t,e,n=r.dG){(0,r.kJ)(t)&&(t=zt(t));for(const o in t){const n...
function At (line 8) | function At(t,e,n){s((0,r.kJ)(t)?t.map((t=>t.bind(e.proxy))):t.bind(e.pr...
function Ot (line 8) | function Ot(t,e,n,i){let o=i.includes(".")?De(n,i):()=>n[i];if((0,r.HD)(...
method parse (line 244) | parse(t,e,n){const i=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){c...
method validate (line 244) | validate(t,e){return e.isTwoDigitYear||e.year>0}
method set (line 244) | set(t,e,n,i){const r=At(t,i);if(n.isTwoDigitYear){const e=St(n.year,r)...
function Pt (line 8) | function Pt(t){const e=t.type,{mixins:n,extends:i}=e,{mixins:o,optionsCa...
method acquireContext (line 230) | acquireContext(t,e){const n=t&&t.getContext&&t.getContext("2d");return...
method releaseContext (line 230) | releaseContext(t){const e=t.canvas;if(!e[dt])return!1;const n=e[dt].in...
method addEventListener (line 230) | addEventListener(t,e,n){this.removeEventListener(t,e);const i=t.$proxi...
method removeEventListener (line 230) | removeEventListener(t,e){const n=t.$proxies||(t.$proxies={}),i=n[e];if...
method getDevicePixelRatio (line 230) | getDevicePixelRatio(){return window.devicePixelRatio}
method getMaximumSize (line 230) | getMaximumSize(t,e,n,r){return(0,i.G)(t,e,n,r)}
method isAttached (line 230) | isAttached(t){const e=t&&(0,i.I)(t);return!(!e||!e.isConnected)}
function Et (line 8) | function Et(t,e,n,i=!1){const{mixins:r,extends:o}=e;o&&Et(t,o,n,!0),r&&r...
method constructor (line 6) | constructor(t,e){this.dep=new A,this["__v_isRef"]=!0,this["__v_isShall...
method value (line 6) | get value(){return this.dep.track(),this._value}
method value (line 6) | set value(t){const e=this._rawValue,n=this["__v_isShallow"]||kt(t)||wt...
method parse (line 244) | parse(t,e){return _t("R"===e?4:e.length,t)}
method set (line 244) | set(t,e,n){const i=u(t,0);return i.setFullYear(n,0,4),i.setHours(0,0,0...
function It (line 8) | function It(t,e){return e?t?function(){return(0,r.l7)((0,r.mf)(t)?t.call...
method parse (line 244) | parse(t,e,n){switch(e){case"Q":case"QQ":return kt(e.length,t);case"Qo"...
method validate (line 244) | validate(t,e){return e>=1&&e<=4}
method set (line 244) | set(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}
function Lt (line 8) | function Lt(t,e){return Ft(zt(t),zt(e))}
method parse (line 244) | parse(t,e,n){switch(e){case"q":case"qq":return kt(e.length,t);case"qo"...
method validate (line 244) | validate(t,e){return e>=1&&e<=4}
method set (line 244) | set(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}
function zt (line 8) | function zt(t){if((0,r.kJ)(t)){const e={};for(let n=0;nt-1;switch(e){case"M":return xt(yt(mt.month,t)...
method validate (line 244) | validate(t,e){return e>=0&&e<=11}
method set (line 244) | set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}
function Nt (line 8) | function Nt(t,e){return t?[...new Set([].concat(t,e))]:e}
method parse (line 244) | parse(t,e,n){const i=t=>t-1;switch(e){case"L":return xt(yt(mt.month,t)...
method validate (line 244) | validate(t,e){return e>=0&&e<=11}
method set (line 244) | set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}
function Ft (line 8) | function Ft(t,e){return t?(0,r.l7)(Object.create(null),t,e):e}
function jt (line 8) | function jt(t,e){return t?(0,r.kJ)(t)&&(0,r.kJ)(e)?[...new Set([...t,......
function Ht (line 8) | function Ht(t,e){if(!t)return e;if(!e)return t;const n=(0,r.l7)(Object.c...
function Wt (line 8) | function Wt(){return{app:null,config:{isNativeTag:r.NO,performance:!1,gl...
method parse (line 244) | parse(t,e,n){switch(e){case"w":return yt(mt.week,t);case"wo":return n....
method validate (line 244) | validate(t,e){return e>=1&&e<=53}
method set (line 244) | set(t,e,n,i){return Ct(Ht(t,n,i),i)}
function Bt (line 8) | function Bt(t,e){return function(n,i=null){(0,r.mf)(n)||(n=(0,r.l7)({},n...
function Vt (line 8) | function Vt(t,e){if(yn){let n=yn.provides;const i=yn.parent&&yn.parent.p...
function Ut (line 8) | function Ut(t,e,n=!1){const i=vn();if(i||Yt){let o=Yt?Yt._context.provid...
method parse (line 244) | parse(t,e,n){switch(e){case"I":return yt(mt.week,t);case"Io":return n....
method validate (line 244) | validate(t,e){return e>=1&&e<=53}
method set (line 244) | set(t,e,n){return Pt(Vt(t,n))}
function Zt (line 8) | function Zt(t,e,n,r=!1){const o={},s=Xt();t.propsDefaults=Object.create(...
method parse (line 244) | parse(t,e,n){switch(e){case"D":case"DD":return yt(mt.dayOfYear,t);case...
method validate (line 244) | validate(t,e){const n=t.getFullYear(),i=Tt(n);return i?e>=1&&e<=366:e>...
method set (line 244) | set(t,e,n){return t.setMonth(0,n),t.setHours(0,0,0,0),t}
function Qt (line 8) | function Qt(t,e,n,o){const{props:s,attrs:a,vnode:{patchFlag:l}}=t,c=(0,i...
function Jt (line 8) | function Jt(t,e,n,o){const[s,a]=t.propsOptions;let l,c=!1;if(e)for(let i...
function Kt (line 8) | function Kt(t,e,n,i,o,s){const a=t[n];if(null!=a){const t=(0,r.RI)(a,"de...
method constructor (line 230) | constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void...
method init (line 230) | init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,...
method parse (line 230) | parse(t,e){return t}
method getUserBounds (line 230) | getUserBounds(){let{_userMin:t,_userMax:e,_suggestedMin:n,_suggestedMa...
method getMinMax (line 230) | getMinMax(t){let e,{min:n,max:r,minDefined:o,maxDefined:s}=this.getUse...
method getPadding (line 230) | getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,ri...
method getTicks (line 230) | getTicks(){return this.ticks}
method getLabels (line 230) | getLabels(){const t=this.chart.data;return this.options.labels||(this....
method getLabelItems (line 230) | getLabelItems(t=this.chart.chartArea){const e=this._labelItems||(this....
method beforeLayout (line 230) | beforeLayout(){this._cache={},this._dataLimitsCached=!1}
method beforeUpdate (line 230) | beforeUpdate(){(0,i.Q)(this.options.beforeUpdate,[this])}
method update (line 230) | update(t,e,n){const{beginAtZero:r,grace:o,ticks:s}=this.options,a=s.sa...
method configure (line 230) | configure(){let t,e,n=this.options.reverse;this.isHorizontal()?(t=this...
method afterUpdate (line 230) | afterUpdate(){(0,i.Q)(this.options.afterUpdate,[this])}
method beforeSetDimensions (line 230) | beforeSetDimensions(){(0,i.Q)(this.options.beforeSetDimensions,[this])}
method setDimensions (line 230) | setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.lef...
method afterSetDimensions (line 230) | afterSetDimensions(){(0,i.Q)(this.options.afterSetDimensions,[this])}
method _callHooks (line 230) | _callHooks(t){this.chart.notifyPlugins(t,this.getContext()),(0,i.Q)(th...
method beforeDataLimits (line 230) | beforeDataLimits(){this._callHooks("beforeDataLimits")}
method determineDataLimits (line 230) | determineDataLimits(){}
method afterDataLimits (line 230) | afterDataLimits(){this._callHooks("afterDataLimits")}
method beforeBuildTicks (line 230) | beforeBuildTicks(){this._callHooks("beforeBuildTicks")}
method buildTicks (line 230) | buildTicks(){return[]}
method afterBuildTicks (line 230) | afterBuildTicks(){this._callHooks("afterBuildTicks")}
method beforeTickToLabelConversion (line 230) | beforeTickToLabelConversion(){(0,i.Q)(this.options.beforeTickToLabelCo...
method generateTickLabels (line 230) | generateTickLabels(t){const e=this.options.ticks;let n,r,o;for(n=0,r=t...
method afterTickToLabelConversion (line 230) | afterTickToLabelConversion(){(0,i.Q)(this.options.afterTickToLabelConv...
method beforeCalculateLabelRotation (line 230) | beforeCalculateLabelRotation(){(0,i.Q)(this.options.beforeCalculateLab...
method calculateLabelRotation (line 230) | calculateLabelRotation(){const t=this.options,e=t.ticks,n=Bt(this.tick...
method afterCalculateLabelRotation (line 230) | afterCalculateLabelRotation(){(0,i.Q)(this.options.afterCalculateLabel...
method afterAutoSkip (line 230) | afterAutoSkip(){}
method beforeFit (line 230) | beforeFit(){(0,i.Q)(this.options.beforeFit,[this])}
method fit (line 230) | fit(){const t={width:0,height:0},{chart:e,options:{ticks:n,title:r,gri...
method _calculatePadding (line 230) | _calculatePadding(t,e,n,i){const{ticks:{align:r,padding:o},position:s}...
method _handleMargins (line 230) | _handleMargins(){this._margins&&(this._margins.left=Math.max(this.padd...
method afterFit (line 230) | afterFit(){(0,i.Q)(this.options.afterFit,[this])}
method isHorizontal (line 230) | isHorizontal(){const{axis:t,position:e}=this.options;return"top"===e||...
method isFullSize (line 230) | isFullSize(){return this.options.fullSize}
method _convertTicksToLabels (line 230) | _convertTicksToLabels(t){let e,n;for(this.beforeTickToLabelConversion(...
method _getLabelSizes (line 230) | _getLabelSizes(){let t=this._labelSizes;if(!t){const e=this.options.ti...
method _computeLabelSizes (line 230) | _computeLabelSizes(t,e,n){const{ctx:r,_longestTextCache:o}=this,s=[],a...
method getLabelForValue (line 230) | getLabelForValue(t){return t}
method getPixelForValue (line 230) | getPixelForValue(t,e){return NaN}
method getValueForPixel (line 230) | getValueForPixel(t){}
method getPixelForTick (line 230) | getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:th...
method getPixelForDecimal (line 230) | getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._start...
method getDecimalForPixel (line 230) | getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return...
method getBasePixel (line 230) | getBasePixel(){return this.getPixelForValue(this.getBaseValue())}
method getBaseValue (line 230) | getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}
method getContext (line 230) | getContext(t){const e=this.ticks||[];if(t>=0&&t=0&&e<=6}
method set (line 244) | set(t,e,n,i){return t=Jt(t,n,i),t.setHours(0,0,0,0),t}
function ee (line 8) | function ee(t,e,n=!1){const i=n?te:e.propsCache,o=i.get(t);if(o)return o...
method parse (line 244) | parse(t,e,n,i){const r=t=>{const e=7*Math.floor((t-1)/7);return(t+i.we...
method validate (line 244) | validate(t,e){return e>=0&&e<=6}
method set (line 244) | set(t,e,n,i){return t=Jt(t,n,i),t.setHours(0,0,0,0),t}
function ne (line 8) | function ne(t){return"$"!==t[0]&&!(0,r.Gg)(t)}
method inRange (line 258) | inRange(t,e,n,i){return y({x:t,y:e},{rect:this.getProps(["x","y","x2",...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const e=this.options,n=!(0,r.h)(this._visible)||this._visible;...
method resolveElementProperties (line 258) | resolveElementProperties(t,e){let n;if(I(e))n=mt(t,e);else{const{cente...
function he (line 8) | function he(){"boolean"!==typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__...
method parse (line 244) | parse(t,e,n){switch(e){case"k":return yt(mt.hour24h,t);case"ko":return...
method validate (line 244) | validate(t,e){return e>=1&&e<=24}
method set (line 244) | set(t,e,n){const i=n<=24?n%24:n;return t.setHours(i,0,0,0),t}
function fe (line 8) | function fe(t){return pe(t)}
method parse (line 244) | parse(t,e,n){switch(e){case"s":return yt(mt.second,t);case"so":return ...
method validate (line 244) | validate(t,e){return e>=0&&e<=59}
method set (line 244) | set(t,e,n){return t.setSeconds(n,0),t}
method inRange (line 258) | inRange(t,e,n,i){const r=(this.options.borderWidth+this.options.hitTol...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const{x:e,y:n,x2:i,y2:r,cp:o,options:s}=this;if(t.save(),!V(t,...
method label (line 258) | get label(){return this.elements&&this.elements[0]}
method resolveElementProperties (line 258) | resolveElementProperties(t,e){const n=yt(t,e),{x:i,y:o,x2:s,y2:a}=n,l=...
function pe (line 8) | function pe(t,e){he();const n=(0,r.E9)();n.__VUE__=!0;const{insert:o,rem...
method parse (line 244) | parse(t,e){const n=t=>Math.trunc(t*Math.pow(10,3-e.length));return xt(...
method set (line 244) | set(t,e,n){return t.setMilliseconds(n),t}
function ge (line 8) | function ge({type:t,props:e},n){return"svg"===n&&"foreignObject"===t||"m...
function me (line 8) | function me({effect:t,job:e},n){n?(t.flags|=32,e.flags|=4):(t.flags&=-33...
method parse (line 244) | parse(t,e){switch(e){case"X":return vt(bt.basicOptionalMinutes,t);case...
method set (line 244) | set(t,e,n){return e.timestampIsSet?t:u(t,t.getTime()-ge(t)-n)}
function be (line 8) | function be(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}
method parse (line 244) | parse(t,e){switch(e){case"x":return vt(bt.basicOptionalMinutes,t);case...
method set (line 244) | set(t,e,n){return e.timestampIsSet?t:u(t,t.getTime()-ge(t)-n)}
function xe (line 8) | function xe(t,e,n=!1){const i=t.children,o=e.children;if((0,r.kJ)(i)&&(0...
method parse (line 244) | parse(t){return wt(t)}
method set (line 244) | set(t,e,n){return[u(t,1e3*n),{timestampIsSet:!0}]}
function ye (line 8) | function ye(t){const e=t.slice(),n=[0];let i,r,o,s,a;const l=t.length;fo...
method parse (line 244) | parse(t){return wt(t)}
method set (line 244) | set(t,e,n){return[u(t,n),{timestampIsSet:!0}]}
function ve (line 8) | function ve(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.as...
function we (line 8) | function we(t){if(t)for(let e=0;e{let e=t;for(let t=0;t[[`datasets.${t}`,""]]))}
method datasetAnimationScopeKeys (line 230) | datasetAnimationScopeKeys(t,e){return Se(`${t}.transition.${e}`,(()=>[...
method datasetElementScopeKeys (line 230) | datasetElementScopeKeys(t,e){return Se(`${t}-${e}`,(()=>[[`datasets.${...
method pluginScopeKeys (line 230) | pluginScopeKeys(t){const e=t.id,n=this.type;return Se(`${n}-plugin-${e...
method _cachedScopes (line 230) | _cachedScopes(t,e){const n=this._scopeCache;let i=n.get(t);return i&&!...
method getOptionScopes (line 230) | getOptionScopes(t,e,n){const{options:r,type:o}=this,s=this._cachedScop...
method chartOptionScopes (line 230) | chartOptionScopes(){const{options:t,type:e}=this;return[t,i.a3[e]||{},...
method resolveNamedOptions (line 230) | resolveNamedOptions(t,e,n,r=[""]){const o={$shared:!0},{resolver:s,sub...
method createResolver (line 230) | createResolver(t,e,n=[""],r){const{resolver:o}=Ce(this._resolverCache,...
function Ae (line 8) | function Ae(t,e,...n){if(t.isUnmounted)return;const i=t.vnode.props||r.k...
function Oe (line 8) | function Oe(t,e,n=!1){const i=e.emitsCache,o=i.get(t);if(void 0!==o)retu...
function Pe (line 8) | function Pe(t,e){return!(!t||!(0,r.F7)(e))&&(e=e.slice(2).replace(/Once$...
function Ee (line 8) | function Ee(t){const{type:e,vnode:n,proxy:i,withProxy:o,propsOptions:[s]...
function Le (line 8) | function Le(t,e,n){const{props:i,children:r,component:o}=t,{props:s,chil...
method inRange (line 258) | inRange(t,e,n,i){const o=this.options.rotation,s=(this.options.borderW...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const{width:e,height:n,centerX:i,centerY:o,options:s}=this;t.s...
method label (line 258) | get label(){return this.elements&&this.elements[0]}
method resolveElementProperties (line 258) | resolveElementProperties(t,e){return vt(t,e)}
function ze (line 8) | function ze(t,e,n){const i=Object.keys(e);if(i.length!==Object.keys(t).l...
function Ne (line 8) | function Ne({vnode:t,parent:e},n){while(e){const i=e.subTree;if(i.suspen...
method inRange (line 258) | inRange(t,e,n,i){const{x:r,y:o,x2:s,y2:a,width:l}=this.getProps(["x","...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const e=this.options,n=e.borderWidth;if(e.radius<.1)return;t.s...
method resolveElementProperties (line 258) | resolveElementProperties(t,e){const n=xt(t,e);return n.initProperties=...
function je (line 8) | function je(t,e){e&&e.pendingBranch?(0,r.kJ)(t)?e.effects.push(...t):e.e...
function Ue (line 8) | function Ue(t=!1){Ye.push(Ve=t?null:[])}
function qe (line 8) | function qe(){Ye.pop(),Ve=Ye[Ye.length-1]||null}
function Ge (line 8) | function Ge(t,e=!1){Xe+=t,t<0&&Ve&&e&&(Ve.hasOnce=!0)}
function Ze (line 8) | function Ze(t){return t.dynamicChildren=Xe>0?Ve||r.Z6:null,qe(),Xe>0&&Ve...
function Qe (line 8) | function Qe(t,e,n,i,r,o){return Ze(rn(t,e,n,i,r,o,!0))}
function Je (line 8) | function Je(t,e,n,i,r){return Ze(on(t,e,n,i,r,!0))}
function Ke (line 8) | function Ke(t){return!!t&&!0===t.__v_isVNode}
function tn (line 8) | function tn(t,e){return t.type===e.type&&t.key===e.key}
function rn (line 8) | function rn(t,e=null,n=null,i=0,o=null,s=(t===He?0:1),a=!1,l=!1){const c...
function sn (line 8) | function sn(t,e=null,n=null,o=0,s=null,a=!1){if(t&&t!==pt||(t=$e),Ke(t))...
function an (line 8) | function an(t){return t?(0,i.X3)(t)||Gt(t)?(0,r.l7)({},t):t:null}
function ln (line 8) | function ln(t,e,n=!1,i=!1){const{props:o,ref:s,patchFlag:a,children:l,tr...
function cn (line 8) | function cn(t=" ",e=0){return on(We,null,t,e)}
function un (line 8) | function un(t="",e=!1){return e?(Ue(),Je($e,null,t)):on($e,null,t)}
function hn (line 8) | function hn(t){return null==t||"boolean"===typeof t?on($e):(0,r.kJ)(t)?o...
function dn (line 8) | function dn(t){return null===t.el&&-1!==t.patchFlag||t.memo?t:ln(t)}
function fn (line 8) | function fn(t,e){let n=0;const{shapeFlag:i}=t;if(null==e)e=null;else if(...
function pn (line 8) | function pn(...t){const e={};for(let n=0;n{t.exposed=e||{}};return{attrs:new Proxy(t.att...
function Ln (line 8) | function Ln(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(...
function zn (line 8) | function zn(t,e=!0){return(0,r.mf)(t)?t.displayName||t.name:t.name||e&&t...
function Nn (line 8) | function Nn(t){return(0,r.mf)(t)&&"__vccOpts"in t}
function jn (line 8) | function jn(t,e,n){const i=arguments.length;return 2===i?(0,r.Kn)(e)&&!(...
method constructor (line 230) | constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hov...
method update (line 230) | update(t,e,n){this.maxWidth=t,this.maxHeight=e,this._margins=n,this.se...
method setDimensions (line 230) | setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.lef...
method buildLabels (line 230) | buildLabels(){const t=this.options.labels||{};let e=(0,i.Q)(t.generate...
method fit (line 230) | fit(){const{options:t,ctx:e}=this;if(!t.display)return void(this.width...
method _fitRows (line 230) | _fitRows(t,e,n,i){const{ctx:r,maxWidth:o,options:{labels:{padding:s}}}...
method _fitCols (line 230) | _fitCols(t,e,n,i){const{ctx:r,maxHeight:o,options:{labels:{padding:s}}...
method adjustHitBoxes (line 230) | adjustHitBoxes(){if(!this.options.display)return;const t=this._compute...
method isHorizontal (line 230) | isHorizontal(){return"top"===this.options.position||"bottom"===this.op...
method draw (line 230) | draw(){if(this.options.display){const t=this.ctx;(0,i.Y)(t,this),this....
method _draw (line 230) | _draw(){const{options:t,columnSizes:e,lineWidths:n,ctx:r}=this,{align:...
method drawTitle (line 230) | drawTitle(){const t=this.options,e=t.title,n=(0,i.a0)(e.font),r=(0,i.E...
method _computeTitleHeight (line 230) | _computeTitleHeight(){const t=this.options.title,e=(0,i.a0)(t.font),n=...
method _getLegendItemAt (line 230) | _getLegendItemAt(t,e){let n,r,o;if((0,i.ak)(t,this.left,this.right)&&(...
method handleEvent (line 230) | handleEvent(t){const e=this.options;if(!Yn(t.type,e))return;const n=th...
method setScopeId (line 14) | setScopeId(t,e){t.setAttribute(e,"")}
method insertStaticContent (line 14) | insertStaticContent(t,e,n,i,r,o){const s=n?n.previousSibling:e.lastChild...
function g (line 14) | function g(t,e,n){const i=t[f];i&&(e=(e?[e,...i]:[...i]).join(" ")),null...
function v (line 14) | function v(t,e,n){const i=t.style,o=(0,r.HD)(n);let s=!1;if(n&&!o){if(e)...
function k (line 14) | function k(t,e,n){if((0,r.kJ)(n))n.forEach((n=>k(t,e,n)));else if(null==...
function S (line 14) | function S(t,e){const n=M[e];if(n)return n;let i=(0,r._A)(e);if("filter"...
function D (line 14) | function D(t,e,n,i,o,s=(0,r.Pq)(e)){i&&e.startsWith("xlink:")?null==n?t....
function C (line 14) | function C(t,e,n,i,o){if("innerHTML"===e||"textContent"===e)return void(...
method constructor (line 6) | constructor(t,e){this.sub=t,this.dep=e,this.version=e.version,this.nex...
function A (line 14) | function A(t,e,n,i){t.addEventListener(e,n,i)}
method constructor (line 6) | constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,t...
method track (line 6) | track(t){if(!o||!k||o===this.computed)return;let e=this.activeLink;if(...
method trigger (line 6) | trigger(t){this.version++,D++,this.notify(t)}
method notify (line 6) | notify(t){p();try{0;for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&...
function O (line 14) | function O(t,e,n,i){t.removeEventListener(e,n,i)}
function E (line 14) | function E(t,e,n,i,r=null){const o=t[P]||(t[P]={}),s=o[e];if(i&&s)s.valu...
function I (line 14) | function I(t){let e;if(R.test(t)){let n;e={};while(n=t.match(R))t=t.slic...
method initialize (line 230) | initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,su...
method update (line 230) | update(t){const e=this._cachedMeta,{dataset:n,data:r=[],_dataset:o}=e,...
method updateElements (line 230) | updateElements(t,e,n,r){const o="reset"===r,{iScale:s,vScale:a,_stacke...
method getMaxOverflow (line 230) | getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,n=e.options&&e.o...
method draw (line 230) | draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.cha...
function F (line 14) | function F(t,e){const n=t=>{if(t._vts){if(t._vts<=n.attached)return}else...
function j (line 14) | function j(t,e){if((0,r.kJ)(e)){const n=t.stopImmediatePropagation;retur...
function $ (line 14) | function $(t,e,n,i){if(i)return"innerHTML"===e||"textContent"===e||!!(e ...
method created (line 16) | created(t,{value:e,modifiers:{number:n}},o){const s=(0,r.DM)(e);A(t,"cha...
method mounted (line 16) | mounted(t,{value:e}){U(t,e)}
method beforeUpdate (line 16) | beforeUpdate(t,e,n){t[Y]=B(n)}
method updated (line 16) | updated(t,{value:e}){t._assigning||U(t,e)}
function U (line 16) | function U(t,e){const n=t.multiple,i=(0,r.kJ)(e);if(!n||i||(0,r.DM)(e)){...
function q (line 16) | function q(t){return"_value"in t?t._value:t.value}
method constructor (line 237) | constructor(t){if(t instanceof q)return t;const e=typeof t;let n;"obje...
method valid (line 237) | get valid(){return this._valid}
method rgb (line 237) | get rgb(){var t=Y(this._rgb);return t&&(t.a=a(t.a)),t}
method rgb (line 237) | set rgb(t){this._rgb=V(t)}
method rgbString (line 237) | rgbString(){return this._valid?j(this._rgb):void 0}
method hexString (line 237) | hexString(){return this._valid?b(this._rgb):void 0}
method hslString (line 237) | hslString(){return this._valid?P(this._rgb):void 0}
method mix (line 237) | mix(t,e){if(t){const n=this.rgb,i=t.rgb;let r;const o=e===r?.5:e,s=2*o...
method interpolate (line 237) | interpolate(t,e){return t&&(this._rgb=$(this._rgb,t._rgb,e)),this}
method clone (line 237) | clone(){return new q(this.rgb)}
method alpha (line 237) | alpha(t){return this._rgb.a=s(t),this}
method clearer (line 237) | clearer(t){const e=this._rgb;return e.a*=1-t,this}
method greyscale (line 237) | greyscale(){const t=this._rgb,e=i(.3*t.r+.59*t.g+.11*t.b);return t.r=t...
method opaquer (line 237) | opaquer(t){const e=this._rgb;return e.a*=1+t,this}
method negate (line 237) | negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,...
method lighten (line 237) | lighten(t){return B(this._rgb,2,t),this}
method darken (line 237) | darken(t){return B(this._rgb,2,-t),this}
method saturate (line 237) | saturate(t){return B(this._rgb,1,t),this}
method desaturate (line 237) | desaturate(t){return B(this._rgb,1,-t),this}
method rotate (line 237) | rotate(t){return O(this._rgb,t),this}
function et (line 16) | function et(){return tt||(tt=(0,i.Us)(K))}
function it (line 16) | function it(t){return t instanceof SVGElement?"svg":"function"===typeof ...
function rt (line 16) | function rt(t){if((0,r.HD)(t)){const e=document.querySelector(t);return ...
function i (line 23) | function i(t){const e=Object.create(null);for(const n of t.split(","))e[...
function U (line 23) | function U(t){if(p(t)){const e={};for(let n=0;n{if...
method constructor (line 6) | constructor(t=!1){super(!1,t)}
method set (line 6) | set(t,e,n,r){let o=t[e];if(!this._isShallow){const e=wt(o);if(kt(n)||w...
method deleteProperty (line 6) | deleteProperty(t,e){const n=(0,i.RI)(t,e),r=t[e],o=Reflect.deletePrope...
method has (line 6) | has(t,e){const n=Reflect.has(t,e);return(0,i.yk)(e)&&q.has(e)||L(t,"ha...
method ownKeys (line 6) | ownKeys(t){return L(t,"iterate",(0,i.kJ)(t)?"length":E),Reflect.ownKey...
function Q (line 23) | function Q(t){let e="";if(v(t))e=t;else if(p(t))for(let n=0;nnt(t,e)))}
class r (line 230) | class r{constructor(){this._request=null,this._charts=new Map,this._runn...
method constructor (line 230) | constructor(){this._request=null,this._charts=new Map,this._running=!1...
method _notify (line 230) | _notify(t,e,n,i){const r=e.listeners[i],o=e.duration;r.forEach((i=>i({...
method _refresh (line 230) | _refresh(){this._request||(this._running=!0,this._request=i.r.call(win...
method _update (line 230) | _update(t=Date.now()){let e=0;this._charts.forEach(((n,i)=>{if(!n.runn...
method _getAnims (line 230) | _getAnims(t){const e=this._charts;let n=e.get(t);return n||(n={running...
method listen (line 230) | listen(t,e,n){this._getAnims(t).listeners[e].push(n)}
method add (line 230) | add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)}
method has (line 230) | has(t){return this._getAnims(t).items.length>0}
method start (line 230) | start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now...
method running (line 230) | running(t){if(!this._running)return!1;const e=this._charts.get(t);retu...
method stop (line 230) | stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;cons...
method remove (line 230) | remove(t){return this._charts.delete(t)}
method boolean (line 230) | boolean(t,e,n){return n>.5?e:t}
method color (line 230) | color(t,e,n){const r=(0,i.c)(t||s),o=r.valid&&(0,i.c)(e||s);return o&&o....
method number (line 230) | number(t,e,n){return t+(e-t)*n}
class l (line 230) | class l{constructor(t,e,n,r){const o=e[n];r=(0,i.a)([t.to,r,o,t.from]);c...
method constructor (line 230) | constructor(t,e,n,r){const o=e[n];r=(0,i.a)([t.to,r,o,t.from]);const s...
method active (line 230) | active(){return this._active}
method update (line 230) | update(t,e,n){if(this._active){this._notify(!1);const r=this._target[t...
method cancel (line 230) | cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._no...
method tick (line 230) | tick(t){const e=t-this._start,n=this._duration,i=this._prop,r=this._fr...
method wait (line 230) | wait(){const t=this._promises||(this._promises=[]);return new Promise(...
method _notify (line 230) | _notify(t){const e=t?"res":"rej",n=this._promises||[];for(let i=0;in[t].a...
function S (line 230) | function S(t,e){return(0,i.j)(t,{active:!1,dataset:void 0,datasetIndex:e...
function T (line 230) | function T(t,e,n){return(0,i.j)(t,{active:!1,dataIndex:e,parsed:void 0,r...
function D (line 230) | function D(t,e){const n=t.controller.index,i=t.vScale&&t.vScale.axis;if(...
class P (line 230) | class P{static defaults={};static datasetElementType=null;static dataEle...
method constructor (line 230) | constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cache...
method initialize (line 230) | initialize(){const t=this._cachedMeta;this.configure(),this.linkScales...
method updateIndex (line 230) | updateIndex(t){this.index!==t&&D(this._cachedMeta),this.index=t}
method linkScales (line 230) | linkScales(){const t=this.chart,e=this._cachedMeta,n=this.getDataset()...
method getDataset (line 230) | getDataset(){return this.chart.data.datasets[this.index]}
method getMeta (line 230) | getMeta(){return this.chart.getDatasetMeta(this.index)}
method getScaleForId (line 230) | getScaleForId(t){return this.chart.scales[t]}
method _getOtherScale (line 230) | _getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScal...
method reset (line 230) | reset(){this._update("reset")}
method _destroy (line 230) | _destroy(){const t=this._cachedMeta;this._data&&(0,i.u)(this._data,thi...
method _dataCheck (line 230) | _dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),n=this._d...
method addElements (line 230) | addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetE...
method buildOrUpdateElements (line 230) | buildOrUpdateElements(t){const e=this._cachedMeta,n=this.getDataset();...
method configure (line 230) | configure(){const t=this.chart.config,e=t.datasetScopeKeys(this._type)...
method parse (line 230) | parse(t,e){const{_cachedMeta:n,_data:r}=this,{iScale:o,_stacked:s}=n,a...
method parsePrimitiveData (line 230) | parsePrimitiveData(t,e,n,i){const{iScale:r,vScale:o}=t,s=r.axis,a=o.ax...
method parseArrayData (line 230) | parseArrayData(t,e,n,i){const{xScale:r,yScale:o}=t,s=new Array(i);let ...
method parseObjectData (line 230) | parseObjectData(t,e,n,r){const{xScale:o,yScale:s}=t,{xAxisKey:a="x",yA...
method getParsed (line 230) | getParsed(t){return this._cachedMeta._parsed[t]}
method getDataElement (line 230) | getDataElement(t){return this._cachedMeta.data[t]}
method applyStack (line 230) | applyStack(t,e,n){const i=this.chart,r=this._cachedMeta,o=e[t.axis],s=...
method updateRangeFromParsed (line 230) | updateRangeFromParsed(t,e,n,i){const r=n[e.axis];let o=null===r?NaN:r;...
method getMinMax (line 230) | getMinMax(t,e){const n=this._cachedMeta,r=n._parsed,o=n._sorted&&t===n...
method getAllParsedValues (line 230) | getAllParsedValues(t){const e=this._cachedMeta._parsed,n=[];let r,o,s;...
method getMaxOverflow (line 230) | getMaxOverflow(){return!1}
method getLabelAndValue (line 230) | getLabelAndValue(t){const e=this._cachedMeta,n=e.iScale,i=e.vScale,r=t...
method _update (line 230) | _update(t){const e=this._cachedMeta;this.update(t||"default"),e._clip=...
method update (line 230) | update(t){}
method draw (line 230) | draw(){const t=this._ctx,e=this.chart,n=this._cachedMeta,i=n.data||[],...
method getStyle (line 230) | getStyle(t,e){const n=e?"active":"default";return void 0===t&&this._ca...
method getContext (line 230) | getContext(t,e,n){const i=this.getDataset();let r;if(t>=0&&t0&&!...
method getLabelAndValue (line 230) | getLabelAndValue(t){const e=this._cachedMeta,n=this.chart,r=n.data.lab...
method getMaxBorderWidth (line 230) | getMaxBorderWidth(t){let e=0;const n=this.chart;let i,r,o,s,a;if(!t)fo...
method getMaxOffset (line 230) | getMaxOffset(t){let e=0;for(let n=0,i=t.length;nt.pos===e))}
function G (line 230) | function G(t,e){return t.filter((t=>-1===q.indexOf(t.pos)&&t.box.axis===...
method constructor (line 6) | constructor(t=!1,e=!1){this._isReadonly=t,this._isShallow=e}
method get (line 6) | get(t,e,n){if("__v_skip"===e)return t["__v_skip"];const r=this._isRead...
function Z (line 230) | function Z(t,e){return t.sort(((t,n)=>{const i=e?n:t,r=e?t:n;return i.we...
method constructor (line 6) | constructor(t=!1){super(!1,t)}
method set (line 6) | set(t,e,n,r){let o=t[e];if(!this._isShallow){const e=wt(o);if(kt(n)||w...
method deleteProperty (line 6) | deleteProperty(t,e){const n=(0,i.RI)(t,e),r=t[e],o=Reflect.deletePrope...
method has (line 6) | has(t,e){const n=Reflect.has(t,e);return(0,i.yk)(e)&&q.has(e)||L(t,"ha...
method ownKeys (line 6) | ownKeys(t){return L(t,"iterate",(0,i.kJ)(t)?"length":E),Reflect.ownKey...
function Q (line 230) | function Q(t){const e=[];let n,i,r,o,s,a;for(n=0,i=(t||[]).length;nt.box.fullSize)),!0),i=Z(X(...
function et (line 230) | function et(t,e,n,i){return Math.max(t[n],e[n])+Math.max(t[i],e[i])}
function nt (line 230) | function nt(t,e){t.top=Math.max(t.top,e.top),t.left=Math.max(t.left,e.le...
function it (line 230) | function it(t,e,n,r){const{pos:o,box:s}=n,a=t.maxPadding;if(!(0,i.i)(o))...
function rt (line 230) | function rt(t){const e=t.maxPadding;function n(n){const i=Math.max(e[n]-...
function ot (line 230) | function ot(t,e){const n=e.maxPadding;function i(t){const i={left:0,top:...
function st (line 230) | function st(t,e,n,i){const r=[];let o,s,a,l,c,u;for(o=0,s=t.length,c=0;o...
function at (line 230) | function at(t,e,n,i,r){t.top=n,t.left=e,t.right=e+i,t.bottom=n+r,t.width...
function lt (line 230) | function lt(t,e,n,r){const o=n.padding;let{x:s,y:a}=e;for(const l of t){...
method addBox (line 230) | addBox(t,e){t.boxes||(t.boxes=[]),e.fullSize=e.fullSize||!1,e.position=e...
method removeBox (line 230) | removeBox(t,e){const n=t.boxes?t.boxes.indexOf(e):-1;-1!==n&&t.boxes.spl...
method configure (line 230) | configure(t,e,n){e.fullSize=n.fullSize,e.position=n.position,e.weight=n....
method update (line 230) | update(t,e,n,r){if(!t)return;const o=(0,i.E)(t.options.layout.padding),s...
class ut (line 230) | class ut{acquireContext(t,e){}releaseContext(t){return!1}addEventListene...
method acquireContext (line 230) | acquireContext(t,e){}
method releaseContext (line 230) | releaseContext(t){return!1}
method addEventListener (line 230) | addEventListener(t,e,n){}
method removeEventListener (line 230) | removeEventListener(t,e,n){}
method getDevicePixelRatio (line 230) | getDevicePixelRatio(){return 1}
method getMaximumSize (line 230) | getMaximumSize(t,e,n,i){return e=Math.max(0,e||t.width),n=n||t.height,...
method isAttached (line 230) | isAttached(t){return!0}
method updateConfig (line 230) | updateConfig(t){}
class ht (line 230) | class ht extends ut{acquireContext(t){return t&&t.getContext&&t.getConte...
method acquireContext (line 230) | acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}
method updateConfig (line 230) | updateConfig(t){t.options.animation=!1}
method validate (line 244) | validate(t,e){return!0}
function gt (line 230) | function gt(t,e){const n=t.style,r=t.getAttribute("height"),o=t.getAttri...
method parse (line 244) | parse(t,e,n){switch(e){case"G":case"GG":case"GGG":return n.era(t,{widt...
method set (line 244) | set(t,e,n){return e.era=n,t.setFullYear(n,0,1),t.setHours(0,0,0,0),t}
function bt (line 230) | function bt(t,e,n){t&&t.addEventListener(e,n,mt)}
function xt (line 230) | function xt(t,e,n){t&&t.canvas&&t.canvas.removeEventListener(e,n,mt)}
function yt (line 230) | function yt(t,e){const n=ft[t.type]||t.type,{x:r,y:o}=(0,i.z)(t,e);retur...
function vt (line 230) | function vt(t,e){for(const n of t)if(n===e||n.contains(e))return!0}
function wt (line 230) | function wt(t,e,n){const i=t.canvas,r=new MutationObserver((t=>{let e=!1...
function kt (line 230) | function kt(t,e,n){const i=t.canvas,r=new MutationObserver((t=>{let e=!1...
function St (line 230) | function St(){const t=window.devicePixelRatio;t!==Mt&&(Mt=t,_t.forEach((...
function Tt (line 230) | function Tt(t,e){_t.size||window.addEventListener("resize",St),_t.set(t,e)}
function Dt (line 230) | function Dt(t){_t.delete(t),_t.size||window.removeEventListener("resize"...
method parse (line 244) | parse(t,e,n){const i=t=>({year:t,isTwoDigitYear:"yy"===e});switch(e){c...
method validate (line 244) | validate(t,e){return e.isTwoDigitYear||e.year>0}
method set (line 244) | set(t,e,n){const i=t.getFullYear();if(n.isTwoDigitYear){const e=St(n.y...
function Ct (line 230) | function Ct(t,e,n){const r=t.canvas,o=r&&(0,i.I)(r);if(!o)return;const s...
function At (line 230) | function At(t,e,n){n&&n.disconnect(),"resize"===e&&Dt(t)}
function Ot (line 230) | function Ot(t,e,n){const r=t.canvas,o=(0,i.L)((e=>{null!==t.ctx&&n(yt(e,...
method parse (line 244) | parse(t,e,n){const i=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){c...
method validate (line 244) | validate(t,e){return e.isTwoDigitYear||e.year>0}
method set (line 244) | set(t,e,n,i){const r=At(t,i);if(n.isTwoDigitYear){const e=St(n.year,r)...
class Pt (line 230) | class Pt extends ut{acquireContext(t,e){const n=t&&t.getContext&&t.getCo...
method acquireContext (line 230) | acquireContext(t,e){const n=t&&t.getContext&&t.getContext("2d");return...
method releaseContext (line 230) | releaseContext(t){const e=t.canvas;if(!e[dt])return!1;const n=e[dt].in...
method addEventListener (line 230) | addEventListener(t,e,n){this.removeEventListener(t,e);const i=t.$proxi...
method removeEventListener (line 230) | removeEventListener(t,e){const n=t.$proxies||(t.$proxies={}),i=n[e];if...
method getDevicePixelRatio (line 230) | getDevicePixelRatio(){return window.devicePixelRatio}
method getMaximumSize (line 230) | getMaximumSize(t,e,n,r){return(0,i.G)(t,e,n,r)}
method isAttached (line 230) | isAttached(t){const e=t&&(0,i.I)(t);return!(!e||!e.isConnected)}
function Et (line 230) | function Et(t){return!(0,i.M)()||"undefined"!==typeof OffscreenCanvas&&t...
method constructor (line 6) | constructor(t,e){this.dep=new A,this["__v_isRef"]=!0,this["__v_isShall...
method value (line 6) | get value(){return this.dep.track(),this._value}
method value (line 6) | set value(t){const e=this._rawValue,n=this["__v_isShallow"]||kt(t)||wt...
method parse (line 244) | parse(t,e){return _t("R"===e?4:e.length,t)}
method set (line 244) | set(t,e,n){const i=u(t,0);return i.setFullYear(n,0,4),i.setHours(0,0,0...
class Rt (line 230) | class Rt{static defaults={};static defaultRoutes=void 0;x;y;active=!1;op...
method tooltipPosition (line 230) | tooltipPosition(t){const{x:e,y:n}=this.getProps(["x","y"],t);return{x:...
method hasValue (line 230) | hasValue(){return(0,i.x)(this.x)&&(0,i.x)(this.y)}
method getProps (line 230) | getProps(t,e){const n=this.$animations;if(!e||!n)return this;const i={...
method parse (line 244) | parse(t,e){return _t("u"===e?4:e.length,t)}
method set (line 244) | set(t,e,n){return t.setFullYear(n,0,1),t.setHours(0,0,0,0),t}
function It (line 230) | function It(t,e){const n=t.options.ticks,r=Lt(t),o=Math.min(n.maxTicksLi...
method parse (line 244) | parse(t,e,n){switch(e){case"Q":case"QQ":return kt(e.length,t);case"Qo"...
method validate (line 244) | validate(t,e){return e>=1&&e<=4}
method set (line 244) | set(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}
function Lt (line 230) | function Lt(t){const e=t.options.offset,n=t._tickSize(),i=t._length/n+(e...
method parse (line 244) | parse(t,e,n){switch(e){case"q":case"qq":return kt(e.length,t);case"qo"...
method validate (line 244) | validate(t,e){return e>=1&&e<=4}
method set (line 244) | set(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}
function zt (line 230) | function zt(t,e,n){const r=Ht(t),o=e.length/n;if(!r)return Math.max(o,1)...
method constructor (line 6) | constructor(t,e,n){this.fn=t,this.setter=e,this._value=void 0,this.dep...
method notify (line 6) | notify(){if(this.flags|=16,!(8&this.flags||o===this))return f(this,!0)...
method value (line 6) | get value(){const t=this.dep.track();return y(this),t&&(t.version=this...
method value (line 6) | set value(t){this.setter&&this.setter(t)}
method parse (line 244) | parse(t,e,n){const i=t=>t-1;switch(e){case"M":return xt(yt(mt.month,t)...
method validate (line 244) | validate(t,e){return e>=0&&e<=11}
method set (line 244) | set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}
function Nt (line 230) | function Nt(t){const e=[];let n,i;for(n=0,i=t.length;nt-1;switch(e){case"L":return xt(yt(mt.month,t)...
method validate (line 244) | validate(t,e){return e>=0&&e<=11}
method set (line 244) | set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}
function Ft (line 230) | function Ft(t,e,n,i){let r,o=0,s=n[0];for(i=Math.ceil(i),r=0;r{const n=t.gc,i=n.length/2;let r;if(i>e){...
method parse (line 244) | parse(t,e,n){switch(e){case"I":return yt(mt.week,t);case"Io":return n....
method validate (line 244) | validate(t,e){return e>=1&&e<=53}
method set (line 244) | set(t,e,n){return Pt(Vt(t,n))}
function qt (line 230) | function qt(t){return t.drawTicks?t.tickLength:0}
function Xt (line 230) | function Xt(t,e){if(!t.display)return 0;const n=(0,i.a0)(t.font,e),r=(0,...
method inRange (line 258) | inRange(t,e,n,i){const{x:o,y:s}=h({x:t,y:e},this.getCenterPoint(i),(0,...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){t.save(),Y(t,this.getCenterPoint(),this.options.rotation),X(t,...
method label (line 258) | get label(){return this.elements&&this.elements[0]}
method resolveElementProperties (line 258) | resolveElementProperties(t,e){return vt(t,e)}
function Gt (line 230) | function Gt(t,e){return(0,i.j)(t,{scale:e,type:"scale"})}
method parse (line 244) | parse(t,e,n){switch(e){case"d":return yt(mt.date,t);case"do":return n....
method validate (line 244) | validate(t,e){const n=t.getFullYear(),i=Tt(n),r=t.getMonth();return i?...
method set (line 244) | set(t,e,n){return t.setDate(n),t.setHours(0,0,0,0),t}
method inRange (line 258) | inRange(t,e,n,i){return y({x:t,y:e},{rect:this.getProps(["x","y","x2",...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const e=this.options;e.display&&e.content&&(ee(t,this),t.save(...
method resolveElementProperties (line 258) | resolveElementProperties(t,e){const n=Zt(t,e);if(!n)return{};const{con...
function Zt (line 230) | function Zt(t,e,n){return(0,i.j)(t,{tick:n,index:e,type:"tick"})}
method parse (line 244) | parse(t,e,n){switch(e){case"D":case"DD":return yt(mt.dayOfYear,t);case...
method validate (line 244) | validate(t,e){const n=t.getFullYear(),i=Tt(n);return i?e>=1&&e<=366:e>...
method set (line 244) | set(t,e,n){return t.setMonth(0,n),t.setHours(0,0,0,0),t}
function Qt (line 230) | function Qt(t,e,n){let r=(0,i.a1)(t);return(n&&"right"!==e||!n&&"right"=...
function Jt (line 230) | function Jt(t,e,n,r){const{top:o,left:s,bottom:a,right:l,chart:c}=t,{cha...
class Kt (line 230) | class Kt extends Rt{constructor(t){super(),this.id=t.id,this.type=t.type...
method constructor (line 230) | constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void...
method init (line 230) | init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,...
method parse (line 230) | parse(t,e){return t}
method getUserBounds (line 230) | getUserBounds(){let{_userMin:t,_userMax:e,_suggestedMin:n,_suggestedMa...
method getMinMax (line 230) | getMinMax(t){let e,{min:n,max:r,minDefined:o,maxDefined:s}=this.getUse...
method getPadding (line 230) | getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,ri...
method getTicks (line 230) | getTicks(){return this.ticks}
method getLabels (line 230) | getLabels(){const t=this.chart.data;return this.options.labels||(this....
method getLabelItems (line 230) | getLabelItems(t=this.chart.chartArea){const e=this._labelItems||(this....
method beforeLayout (line 230) | beforeLayout(){this._cache={},this._dataLimitsCached=!1}
method beforeUpdate (line 230) | beforeUpdate(){(0,i.Q)(this.options.beforeUpdate,[this])}
method update (line 230) | update(t,e,n){const{beginAtZero:r,grace:o,ticks:s}=this.options,a=s.sa...
method configure (line 230) | configure(){let t,e,n=this.options.reverse;this.isHorizontal()?(t=this...
method afterUpdate (line 230) | afterUpdate(){(0,i.Q)(this.options.afterUpdate,[this])}
method beforeSetDimensions (line 230) | beforeSetDimensions(){(0,i.Q)(this.options.beforeSetDimensions,[this])}
method setDimensions (line 230) | setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.lef...
method afterSetDimensions (line 230) | afterSetDimensions(){(0,i.Q)(this.options.afterSetDimensions,[this])}
method _callHooks (line 230) | _callHooks(t){this.chart.notifyPlugins(t,this.getContext()),(0,i.Q)(th...
method beforeDataLimits (line 230) | beforeDataLimits(){this._callHooks("beforeDataLimits")}
method determineDataLimits (line 230) | determineDataLimits(){}
method afterDataLimits (line 230) | afterDataLimits(){this._callHooks("afterDataLimits")}
method beforeBuildTicks (line 230) | beforeBuildTicks(){this._callHooks("beforeBuildTicks")}
method buildTicks (line 230) | buildTicks(){return[]}
method afterBuildTicks (line 230) | afterBuildTicks(){this._callHooks("afterBuildTicks")}
method beforeTickToLabelConversion (line 230) | beforeTickToLabelConversion(){(0,i.Q)(this.options.beforeTickToLabelCo...
method generateTickLabels (line 230) | generateTickLabels(t){const e=this.options.ticks;let n,r,o;for(n=0,r=t...
method afterTickToLabelConversion (line 230) | afterTickToLabelConversion(){(0,i.Q)(this.options.afterTickToLabelConv...
method beforeCalculateLabelRotation (line 230) | beforeCalculateLabelRotation(){(0,i.Q)(this.options.beforeCalculateLab...
method calculateLabelRotation (line 230) | calculateLabelRotation(){const t=this.options,e=t.ticks,n=Bt(this.tick...
method afterCalculateLabelRotation (line 230) | afterCalculateLabelRotation(){(0,i.Q)(this.options.afterCalculateLabel...
method afterAutoSkip (line 230) | afterAutoSkip(){}
method beforeFit (line 230) | beforeFit(){(0,i.Q)(this.options.beforeFit,[this])}
method fit (line 230) | fit(){const t={width:0,height:0},{chart:e,options:{ticks:n,title:r,gri...
method _calculatePadding (line 230) | _calculatePadding(t,e,n,i){const{ticks:{align:r,padding:o},position:s}...
method _handleMargins (line 230) | _handleMargins(){this._margins&&(this._margins.left=Math.max(this.padd...
method afterFit (line 230) | afterFit(){(0,i.Q)(this.options.afterFit,[this])}
method isHorizontal (line 230) | isHorizontal(){const{axis:t,position:e}=this.options;return"top"===e||...
method isFullSize (line 230) | isFullSize(){return this.options.fullSize}
method _convertTicksToLabels (line 230) | _convertTicksToLabels(t){let e,n;for(this.beforeTickToLabelConversion(...
method _getLabelSizes (line 230) | _getLabelSizes(){let t=this._labelSizes;if(!t){const e=this.options.ti...
method _computeLabelSizes (line 230) | _computeLabelSizes(t,e,n){const{ctx:r,_longestTextCache:o}=this,s=[],a...
method getLabelForValue (line 230) | getLabelForValue(t){return t}
method getPixelForValue (line 230) | getPixelForValue(t,e){return NaN}
method getValueForPixel (line 230) | getValueForPixel(t){}
method getPixelForTick (line 230) | getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:th...
method getPixelForDecimal (line 230) | getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._start...
method getDecimalForPixel (line 230) | getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return...
method getBasePixel (line 230) | getBasePixel(){return this.getPixelForValue(this.getBaseValue())}
method getBaseValue (line 230) | getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}
method getContext (line 230) | getContext(t){const e=this.ticks||[];if(t>=0&&t=0&&e<=6}
method set (line 244) | set(t,e,n,i){return t=Jt(t,n,i),t.setHours(0,0,0,0),t}
class te (line 230) | class te{constructor(t,e,n){this.type=t,this.scope=e,this.override=n,thi...
method constructor (line 230) | constructor(t,e,n){this.type=t,this.scope=e,this.override=n,this.items...
method isForType (line 230) | isForType(t){return Object.prototype.isPrototypeOf.call(this.type.prot...
method register (line 230) | register(t){const e=Object.getPrototypeOf(t);let n;ie(e)&&(n=this.regi...
method get (line 230) | get(t){return this.items[t]}
method unregister (line 230) | unregister(t){const e=this.items,n=t.id,r=this.scope;n in e&&delete e[...
method parse (line 244) | parse(t,e,n,i){const r=t=>{const e=7*Math.floor((t-1)/7);return(t+i.we...
method validate (line 244) | validate(t,e){return e>=0&&e<=6}
method set (line 244) | set(t,e,n,i){return t=Jt(t,n,i),t.setHours(0,0,0,0),t}
function ee (line 230) | function ee(t,e,n){const r=(0,i.a4)(Object.create(null),[n?i.d.get(n):{}...
method parse (line 244) | parse(t,e,n,i){const r=t=>{const e=7*Math.floor((t-1)/7);return(t+i.we...
method validate (line 244) | validate(t,e){return e>=0&&e<=6}
method set (line 244) | set(t,e,n,i){return t=Jt(t,n,i),t.setHours(0,0,0,0),t}
function ne (line 230) | function ne(t,e){Object.keys(e).forEach((n=>{const r=n.split("."),o=r.po...
method inRange (line 258) | inRange(t,e,n,i){return y({x:t,y:e},{rect:this.getProps(["x","y","x2",...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const e=this.options,n=!(0,r.h)(this._visible)||this._visible;...
method resolveElementProperties (line 258) | resolveElementProperties(t,e){let n;if(I(e))n=mt(t,e);else{const{cente...
function ie (line 230) | function ie(t){return"id"in t&&"defaults"in t}
class re (line 230) | class re{constructor(){this.controllers=new te(P,"datasets",!0),this.ele...
method constructor (line 230) | constructor(){this.controllers=new te(P,"datasets",!0),this.elements=n...
method add (line 230) | add(...t){this._each("register",t)}
method remove (line 230) | remove(...t){this._each("unregister",t)}
method addControllers (line 230) | addControllers(...t){this._each("register",t,this.controllers)}
method addElements (line 230) | addElements(...t){this._each("register",t,this.elements)}
method addPlugins (line 230) | addPlugins(...t){this._each("register",t,this.plugins)}
method addScales (line 230) | addScales(...t){this._each("register",t,this.scales)}
method getController (line 230) | getController(t){return this._get(t,this.controllers,"controller")}
method getElement (line 230) | getElement(t){return this._get(t,this.elements,"element")}
method getPlugin (line 230) | getPlugin(t){return this._get(t,this.plugins,"plugin")}
method getScale (line 230) | getScale(t){return this._get(t,this.scales,"scale")}
method removeControllers (line 230) | removeControllers(...t){this._each("unregister",t,this.controllers)}
method removeElements (line 230) | removeElements(...t){this._each("unregister",t,this.elements)}
method removePlugins (line 230) | removePlugins(...t){this._each("unregister",t,this.plugins)}
method removeScales (line 230) | removeScales(...t){this._each("unregister",t,this.scales)}
method _each (line 230) | _each(t,e,n){[...e].forEach((e=>{const r=n||this._getRegistryForType(e...
method _exec (line 230) | _exec(t,e,n){const r=(0,i.a5)(t);(0,i.Q)(n["before"+r],[],n),e[t](n),(...
method _getRegistryForType (line 230) | _getRegistryForType(t){for(let e=0;e0===t?7:t;switch(e){case"i":case"ii":return kt...
method validate (line 244) | validate(t,e){return e>=1&&e<=7}
method set (line 244) | set(t,e,n){return t=ie(t,n),t.setHours(0,0,0,0),t}
class se (line 230) | class se{constructor(){this._init=void 0}notify(t,e,n,i){if("beforeInit"...
method constructor (line 230) | constructor(){this._init=void 0}
method notify (line 230) | notify(t,e,n,i){if("beforeInit"===e&&(this._init=this._createDescripto...
method _notify (line 230) | _notify(t,e,n,r){r=r||{};for(const o of t){const t=o.plugin,s=t[n],a=[...
method invalidate (line 230) | invalidate(){(0,i.k)(this._cache)||(this._oldCache=this._cache,this._c...
method _descriptors (line 230) | _descriptors(t){if(this._cache)return this._cache;const e=this._cache=...
method _createDescriptors (line 230) | _createDescriptors(t,e){const n=t&&t.config,r=(0,i.v)(n.options&&n.opt...
method _notifyStateChanges (line 230) | _notifyStateChanges(t){const e=this._oldCache||[],n=this._cache,i=(t,e...
method parse (line 244) | parse(t,e,n){switch(e){case"b":case"bb":case"bbb":return n.dayPeriod(t...
method set (line 244) | set(t,e,n){return t.setHours(Mt(n),0,0,0),t}
function ae (line 230) | function ae(t){const e={},n=[],i=Object.keys(oe.plugins.items);for(let o...
method parse (line 244) | parse(t,e,n){switch(e){case"B":case"BB":case"BBB":return n.dayPeriod(t...
method set (line 244) | set(t,e,n){return t.setHours(Mt(n),0,0,0),t}
function le (line 230) | function le(t,e){return e||!1!==t?!0===t?{}:t:null}
method parse (line 244) | parse(t,e,n){switch(e){case"h":return yt(mt.hour12h,t);case"ho":return...
method validate (line 244) | validate(t,e){return e>=1&&e<=12}
method set (line 244) | set(t,e,n){const i=t.getHours()>=12;return i&&n<12?t.setHours(n+12,0,0...
function ce (line 230) | function ce(t,{plugins:e,localIds:n},i,r){const o=[],s=t.getContext();fo...
method parse (line 244) | parse(t,e,n){switch(e){case"H":return yt(mt.hour23h,t);case"Ho":return...
method validate (line 244) | validate(t,e){return e>=0&&e<=23}
method set (line 244) | set(t,e,n){return t.setHours(n,0,0,0),t}
function ue (line 230) | function ue(t,{plugin:e,local:n},i,r){const o=t.pluginScopeKeys(e),s=t.g...
method parse (line 244) | parse(t,e,n){switch(e){case"K":return yt(mt.hour11h,t);case"Ko":return...
method validate (line 244) | validate(t,e){return e>=0&&e<=11}
method set (line 244) | set(t,e,n){const i=t.getHours()>=12;return i&&n<12?t.setHours(n+12,0,0...
function he (line 230) | function he(t,e){const n=i.d.datasets[t]||{},r=(e.datasets||{})[t]||{};r...
method parse (line 244) | parse(t,e,n){switch(e){case"k":return yt(mt.hour24h,t);case"ko":return...
method validate (line 244) | validate(t,e){return e>=1&&e<=24}
method set (line 244) | set(t,e,n){const i=n<=24?n%24:n;return t.setHours(i,0,0,0),t}
function de (line 230) | function de(t,e){let n=t;return"_index_"===t?n=e:"_value_"===t&&(n="x"==...
method parse (line 244) | parse(t,e,n){switch(e){case"m":return yt(mt.minute,t);case"mo":return ...
method validate (line 244) | validate(t,e){return e>=0&&e<=59}
method set (line 244) | set(t,e,n){return t.setMinutes(n,0,0),t}
function fe (line 230) | function fe(t,e){return t===e?"_index_":"_value_"}
method parse (line 244) | parse(t,e,n){switch(e){case"s":return yt(mt.second,t);case"so":return ...
method validate (line 244) | validate(t,e){return e>=0&&e<=59}
method set (line 244) | set(t,e,n){return t.setSeconds(n,0),t}
method inRange (line 258) | inRange(t,e,n,i){const r=(this.options.borderWidth+this.options.hitTol...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const{x:e,y:n,x2:i,y2:r,cp:o,options:s}=this;if(t.save(),!V(t,...
method label (line 258) | get label(){return this.elements&&this.elements[0]}
method resolveElementProperties (line 258) | resolveElementProperties(t,e){const n=yt(t,e),{x:i,y:o,x2:s,y2:a}=n,l=...
function pe (line 230) | function pe(t){if("x"===t||"y"===t||"r"===t)return t}
method parse (line 244) | parse(t,e){const n=t=>Math.trunc(t*Math.pow(10,3-e.length));return xt(...
method set (line 244) | set(t,e,n){return t.setMilliseconds(n),t}
function ge (line 230) | function ge(t){return"top"===t||"bottom"===t?"x":"left"===t||"right"===t...
function me (line 230) | function me(t,...e){if(pe(t))return t;for(const n of e){const e=n.axis||...
method parse (line 244) | parse(t,e){switch(e){case"X":return vt(bt.basicOptionalMinutes,t);case...
method set (line 244) | set(t,e,n){return e.timestampIsSet?t:u(t,t.getTime()-ge(t)-n)}
function be (line 230) | function be(t,e,n){if(n[e+"AxisID"]===t)return{axis:e}}
method parse (line 244) | parse(t,e){switch(e){case"x":return vt(bt.basicOptionalMinutes,t);case...
method set (line 244) | set(t,e,n){return e.timestampIsSet?t:u(t,t.getTime()-ge(t)-n)}
function xe (line 230) | function xe(t,e){if(e.data&&e.data.datasets){const n=e.data.datasets.fil...
method parse (line 244) | parse(t){return wt(t)}
method set (line 244) | set(t,e,n){return[u(t,1e3*n),{timestampIsSet:!0}]}
function ye (line 230) | function ye(t,e){const n=i.a3[t.type]||{scales:{}},r=e.scales||{},o=he(t...
method parse (line 244) | parse(t){return wt(t)}
method set (line 244) | set(t,e,n){return[u(t,n),{timestampIsSet:!0}]}
function ve (line 230) | function ve(t){const e=t.options||(t.options={});e.plugins=(0,i.v)(e.plu...
function we (line 230) | function we(t){return t=t||{},t.datasets=t.datasets||[],t.labels=t.label...
function ke (line 230) | function ke(t){return t=t||{},t.data=we(t.data),ve(t),t}
function Se (line 230) | function Se(t,e){let n=_e.get(t);return n||(n=e(),_e.set(t,n),Me.add(n)),n}
class De (line 230) | class De{constructor(t){this._config=ke(t),this._scopeCache=new Map,this...
method constructor (line 230) | constructor(t){this._config=ke(t),this._scopeCache=new Map,this._resol...
method platform (line 230) | get platform(){return this._config.platform}
method type (line 230) | get type(){return this._config.type}
method type (line 230) | set type(t){this._config.type=t}
method data (line 230) | get data(){return this._config.data}
method data (line 230) | set data(t){this._config.data=we(t)}
method options (line 230) | get options(){return this._config.options}
method options (line 230) | set options(t){this._config.options=t}
method plugins (line 230) | get plugins(){return this._config.plugins}
method update (line 230) | update(){const t=this._config;this.clearCache(),ve(t)}
method clearCache (line 230) | clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}
method datasetScopeKeys (line 230) | datasetScopeKeys(t){return Se(t,(()=>[[`datasets.${t}`,""]]))}
method datasetAnimationScopeKeys (line 230) | datasetAnimationScopeKeys(t,e){return Se(`${t}.transition.${e}`,(()=>[...
method datasetElementScopeKeys (line 230) | datasetElementScopeKeys(t,e){return Se(`${t}-${e}`,(()=>[[`datasets.${...
method pluginScopeKeys (line 230) | pluginScopeKeys(t){const e=t.id,n=this.type;return Se(`${n}-plugin-${e...
method _cachedScopes (line 230) | _cachedScopes(t,e){const n=this._scopeCache;let i=n.get(t);return i&&!...
method getOptionScopes (line 230) | getOptionScopes(t,e,n){const{options:r,type:o}=this,s=this._cachedScop...
method chartOptionScopes (line 230) | chartOptionScopes(){const{options:t,type:e}=this;return[t,i.a3[e]||{},...
method resolveNamedOptions (line 230) | resolveNamedOptions(t,e,n,r=[""]){const o={$shared:!0},{resolver:s,sub...
method createResolver (line 230) | createResolver(t,e,n=[""],r){const{resolver:o}=Ce(this._resolverCache,...
function Ce (line 230) | function Ce(t,e,n){let r=t.get(e);r||(r=new Map,t.set(e,r));const o=n.jo...
function Oe (line 230) | function Oe(t,e){const{isScriptable:n,isIndexable:r}=(0,i.aa)(t);for(con...
function Re (line 230) | function Re(t,e){return"top"===t||"bottom"===t||-1===Ee.indexOf(t)&&"x"=...
function Ie (line 230) | function Ie(t,e){return function(n,i){return n[t]===i[t]?n[e]-i[e]:n[t]-...
method constructor (line 244) | constructor(t,e){this.animation=void 0,this.backgroundColor="rgba(0,0,...
method set (line 244) | set(t,e){return Re(this,t,e)}
method get (line 244) | get(t){return Ee(this,t)}
method describe (line 244) | describe(t,e){return Re(Pe,t,e)}
method override (line 244) | override(t,e){return Re(Oe,t,e)}
method route (line 244) | route(t,e,n,i){const r=Ee(this,t),o=Ee(this,n),s="_"+e;Object.definePr...
method apply (line 244) | apply(t){t.forEach((t=>t(this)))}
function Le (line 230) | function Le(t){const e=t.chart,n=e.options.animation;e.notifyPlugins("af...
method inRange (line 258) | inRange(t,e,n,i){const o=this.options.rotation,s=(this.options.borderW...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const{width:e,height:n,centerX:i,centerY:o,options:s}=this;t.s...
method label (line 258) | get label(){return this.elements&&this.elements[0]}
method resolveElementProperties (line 258) | resolveElementProperties(t,e){return vt(t,e)}
function ze (line 230) | function ze(t){const e=t.chart,n=e.options.animation;(0,i.Q)(n&&n.onProg...
function Ne (line 230) | function Ne(t){return(0,i.M)()&&"string"===typeof t?t=document.getElemen...
method inRange (line 258) | inRange(t,e,n,i){const{x:r,y:o,x2:s,y2:a,width:l}=this.getProps(["x","...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const e=this.options,n=e.borderWidth;if(e.radius<.1)return;t.s...
method resolveElementProperties (line 258) | resolveElementProperties(t,e){const n=xt(t,e);return n.initProperties=...
function He (line 230) | function He(t,e,n){const i=Object.keys(t);for(const r of i){const i=+r;i...
function We (line 230) | function We(t,e,n,i){return n&&"mouseout"!==t.type?i?e:t:null}
class $e (line 230) | class $e{static defaults=i.d;static instances=Fe;static overrides=i.a3;s...
method register (line 230) | static register(...t){oe.add(...t),Be()}
method unregister (line 230) | static unregister(...t){oe.remove(...t),Be()}
method constructor (line 230) | constructor(t,e){const n=this.config=new De(e),r=Ne(t),s=je(r);if(s)th...
method aspectRatio (line 230) | get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},...
method data (line 230) | get data(){return this.config.data}
method data (line 230) | set data(t){this.config.data=t}
method options (line 230) | get options(){return this._options}
method options (line 230) | set options(t){this.config.options=t}
method registry (line 230) | get registry(){return oe}
method _initialize (line 230) | _initialize(){return this.notifyPlugins("beforeInit"),this.options.res...
method clear (line 230) | clear(){return(0,i.af)(this.canvas,this.ctx),this}
method stop (line 230) | stop(){return o.stop(this),this}
method resize (line 230) | resize(t,e){o.running(this)?this._resizeBeforeDraw={width:t,height:e}:...
method _resize (line 230) | _resize(t,e){const n=this.options,r=this.canvas,o=n.maintainAspectRati...
method ensureScalesHaveIDs (line 230) | ensureScalesHaveIDs(){const t=this.options,e=t.scales||{};(0,i.F)(e,((...
method buildOrUpdateScales (line 230) | buildOrUpdateScales(){const t=this.options,e=t.scales,n=this.scales,r=...
method _updateMetasets (line 230) | _updateMetasets(){const t=this._metasets,e=this.data.datasets.length,n...
method _removeUnreferencedMetasets (line 230) | _removeUnreferencedMetasets(){const{_metasets:t,data:{datasets:e}}=thi...
method buildOrUpdateControllers (line 230) | buildOrUpdateControllers(){const t=[],e=this.data.datasets;let n,r;for...
method _resetElements (line 230) | _resetElements(){(0,i.F)(this.data.datasets,((t,e)=>{this.getDatasetMe...
method reset (line 230) | reset(){this._resetElements(),this.notifyPlugins("reset")}
method update (line 230) | update(t){const e=this.config;e.update();const n=this._options=e.creat...
method _updateScales (line 230) | _updateScales(){(0,i.F)(this.scales,(t=>{ct.removeBox(this,t)})),this....
method _checkEventBindings (line 230) | _checkEventBindings(){const t=this.options,e=new Set(Object.keys(this....
method _updateHiddenIndices (line 230) | _updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniform...
method _getUniformDataChanges (line 230) | _getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)re...
method _updateLayout (line 230) | _updateLayout(t){if(!1===this.notifyPlugins("beforeLayout",{cancelable...
method _updateDatasets (line 230) | _updateDatasets(t){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{...
method _updateDataset (line 230) | _updateDataset(t,e){const n=this.getDatasetMeta(t),i={meta:n,index:t,m...
method render (line 230) | render(){!1!==this.notifyPlugins("beforeRender",{cancelable:!0})&&(o.h...
method draw (line 230) | draw(){let t;if(this._resizeBeforeDraw){const{width:t,height:e}=this._...
method _getSortedDatasetMetas (line 230) | _getSortedDatasetMetas(t){const e=this._sortedMetasets,n=[];let i,r;fo...
method getSortedVisibleDatasetMetas (line 230) | getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)}
method _drawDatasets (line 230) | _drawDatasets(){if(!1===this.notifyPlugins("beforeDatasetsDraw",{cance...
method _drawDataset (line 230) | _drawDataset(t){const e=this.ctx,n={meta:t,index:t.index,cancelable:!0...
method isPointInArea (line 230) | isPointInArea(t){return(0,i.C)(t,this.chartArea,this._minPadding)}
method getElementsAtEventForMode (line 230) | getElementsAtEventForMode(t,e,n,i){const r=U.modes[e];return"function"...
method getDatasetMeta (line 230) | getDatasetMeta(t){const e=this.data.datasets[t],n=this._metasets;let i...
method getContext (line 230) | getContext(){return this.$context||(this.$context=(0,i.j)(null,{chart:...
method getVisibleDatasetCount (line 230) | getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().le...
method isDatasetVisible (line 230) | isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const...
method setDatasetVisibility (line 230) | setDatasetVisibility(t,e){const n=this.getDatasetMeta(t);n.hidden=!e}
method toggleDataVisibility (line 230) | toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}
method getDataVisibility (line 230) | getDataVisibility(t){return!this._hiddenIndices[t]}
method _updateVisibility (line 230) | _updateVisibility(t,e,n){const r=n?"show":"hide",o=this.getDatasetMeta...
method hide (line 230) | hide(t,e){this._updateVisibility(t,e,!1)}
method show (line 230) | show(t,e){this._updateVisibility(t,e,!0)}
method _destroyDatasetMeta (line 230) | _destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.co...
method _stop (line 230) | _stop(){let t,e;for(this.stop(),o.remove(this),t=0,e=this.data.dataset...
method destroy (line 230) | destroy(){this.notifyPlugins("beforeDestroy");const{canvas:t,ctx:e}=th...
method toBase64Image (line 230) | toBase64Image(...t){return this.canvas.toDataURL(...t)}
method bindEvents (line 230) | bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindRe...
method bindUserEvents (line 230) | bindUserEvents(){const t=this._listeners,e=this.platform,n=(n,i)=>{e.a...
method bindResponsiveEvents (line 230) | bindResponsiveEvents(){this._responsiveListeners||(this._responsiveLis...
method unbindEvents (line 230) | unbindEvents(){(0,i.F)(this._listeners,((t,e)=>{this.platform.removeEv...
method updateHoverStyle (line 230) | updateHoverStyle(t,e,n){const i=n?"set":"remove";let r,o,s,a;for("data...
method getActiveElements (line 230) | getActiveElements(){return this._active||[]}
method setActiveElements (line 230) | setActiveElements(t){const e=this._active||[],n=t.map((({datasetIndex:...
method notifyPlugins (line 230) | notifyPlugins(t,e,n){return this._plugins.notify(this,t,e,n)}
method isPluginEnabled (line 230) | isPluginEnabled(t){return 1===this._plugins._cache.filter((e=>e.plugin...
method _updateHoverStyles (line 230) | _updateHoverStyles(t,e,n){const i=this.options.hover,r=(t,e)=>t.filter...
method _eventHandler (line 230) | _eventHandler(t,e){const n={event:t,replay:e,cancelable:!0,inChartArea...
method _handleEvent (line 230) | _handleEvent(t,e,n){const{_active:r=[],options:o}=this,s=e,a=this._get...
method _getActiveElements (line 230) | _getActiveElements(t,e,n,i){if("mouseout"===t.type)return[];if(!n)retu...
function Be (line 230) | function Be(){return(0,i.F)($e.instances,(t=>t._plugins.invalidate()))}
function Ye (line 230) | function Ye(t,e,n=e){t.lineCap=(0,i.v)(n.borderCapStyle,e.borderCapStyle...
function Ve (line 230) | function Ve(t,e,n){t.lineTo(n.x,n.y)}
function Ue (line 230) | function Ue(t){return t.stepped?i.at:t.tension||"monotone"===t.cubicInte...
function qe (line 230) | function qe(t,e,n={}){const i=t.length,{start:r=0,end:o=i-1}=n,{start:s,...
function Xe (line 230) | function Xe(t,e,n,i){const{points:r,options:o}=e,{count:s,start:a,loop:l...
function Ge (line 230) | function Ge(t,e,n,i){const r=e.points,{count:o,start:s,ilen:a}=qe(r,n,i)...
function Ze (line 230) | function Ze(t){const e=t.options,n=e.borderDash&&e.borderDash.length,i=!...
function Qe (line 230) | function Qe(t){return t.stepped?i.aq:t.tension||"monotone"===t.cubicInte...
function Je (line 230) | function Je(t,e,n,i){let r=e._path;r||(r=e._path=new Path2D,e.path(r,n,i...
function Ke (line 230) | function Ke(t,e,n,i){const{segments:r,options:o}=e,s=Ze(e);for(const a o...
function en (line 230) | function en(t,e,n,i){tn&&!e.options.segment?Je(t,e,n,i):Ke(t,e,n,i)}
class nn (line 230) | class nn extends Rt{static id="line";static defaults={borderCapStyle:"bu...
method constructor (line 230) | constructor(t){super(),this.animated=!0,this.options=void 0,this._char...
method updateControlPoints (line 230) | updateControlPoints(t,e){const n=this.options;if((n.tension||"monotone...
method points (line 230) | set points(t){this._points=t,delete this._segments,delete this._path,t...
method points (line 230) | get points(){return this._points}
method segments (line 230) | get segments(){return this._segments||(this._segments=(0,i.ao)(this,th...
method first (line 230) | first(){const t=this.segments,e=this.points;return t.length&&e[t[0].st...
method last (line 230) | last(){const t=this.segments,e=this.points,n=t.length;return n&&e[t[n-...
method interpolate (line 230) | interpolate(t,e){const n=this.options,r=t[e],o=this.points,s=(0,i.ap)(...
method pathSegment (line 230) | pathSegment(t,e,n){const i=Ze(this);return i(t,this,e,n)}
method path (line 230) | path(t,e,n){const i=this.segments,r=Ze(this);let o=this._loop;e=e||0,n...
method draw (line 230) | draw(t,e,n,i){const r=this.options||{},o=this.points||[];o.length&&r.b...
function rn (line 230) | function rn(t,e,n,i){const r=t.options,{[n]:o}=t.getProps([n],i);return ...
class on (line 230) | class on extends Rt{static id="point";parsed;skip;stop;static defaults={...
method constructor (line 230) | constructor(t){super(),this.options=void 0,this.parsed=void 0,this.ski...
method inRange (line 230) | inRange(t,e,n){const i=this.options,{x:r,y:o}=this.getProps(["x","y"],...
method inXRange (line 230) | inXRange(t,e){return rn(this,t,"x",e)}
method inYRange (line 230) | inYRange(t,e){return rn(this,t,"y",e)}
method getCenterPoint (line 230) | getCenterPoint(t){const{x:e,y:n}=this.getProps(["x","y"],t);return{x:e...
method size (line 230) | size(t){t=t||this.options||{};let e=t.radius||0;e=Math.max(e,e&&t.hove...
method draw (line 230) | draw(t,e){const n=this.options;this.skip||n.radius<.1||!(0,i.C)(this,e...
method getRange (line 230) | getRange(){const t=this.options||{};return t.radius+t.hitRadius}
function sn (line 230) | function sn(t,e,n){const r=t.segments,o=t.points,s=e.points,a=[];for(con...
function an (line 230) | function an(t,e,n,r){if(r)return;let o=e[t],s=n[t];return"angle"===t&&(o...
function ln (line 230) | function ln(t,e){const{x:n=null,y:i=null}=t||{},r=e.points,o=[];return e...
function cn (line 230) | function cn(t,e,n){for(;e>t;e--){const t=n[e];if(!isNaN(t.x)&&!isNaN(t.y...
function un (line 230) | function un(t,e,n,i){return t&&e?i(t[n],e[n]):t?t[n]:e?e[n]:0}
function hn (line 230) | function hn(t,e){let n=[],r=!1;return(0,i.b)(t)?(r=!0,n=t):n=ln(t,e),n.l...
function dn (line 230) | function dn(t){return t&&!1!==t.fill}
function fn (line 230) | function fn(t,e,n){const r=t[e];let o=r.fill;const s=[e];let a;if(!n)ret...
function pn (line 230) | function pn(t,e,n){const r=xn(t);if((0,i.i)(r))return!isNaN(r.value)&&r;...
function gn (line 230) | function gn(t,e,n,i){return"-"!==t&&"+"!==t||(n=e+n),!(n===e||n<0||n>=i)...
function mn (line 230) | function mn(t,e){let n=null;return"start"===t?n=e.bottom:"end"===t?n=e.t...
function bn (line 230) | function bn(t,e,n){let r;return r="start"===t?n:"end"===t?e.options.reve...
function xn (line 230) | function xn(t){const e=t.options,n=e.fill;let r=(0,i.v)(n&&n.target,n);r...
function yn (line 230) | function yn(t){const{scale:e,index:n,line:i}=t,r=[],o=i.segments,s=i.poi...
function vn (line 230) | function vn(t,e){const n=[],i=t.getMatchingVisibleMetas("line");for(let ...
function wn (line 230) | function wn(t,e,n){const i=[];for(let r=0;rt.height-i/2...
function ei (line 230) | function ei(t,e,n,i){const{x:r,width:o}=i,s=n.caretSize+n.caretPadding;r...
function ni (line 230) | function ni(t,e,n,i){const{x:r,width:o}=n,{width:s,chartArea:{left:a,rig...
function ii (line 230) | function ii(t,e,n){const i=n.yAlign||e.yAlign||ti(t,n);return{xAlign:n.x...
function ri (line 230) | function ri(t,e){let{x:n,width:i}=t;return"right"===e?n-=i:"center"===e&...
function oi (line 230) | function oi(t,e,n){let{y:i,height:r}=t;return"top"===e?i+=n:i-="bottom"=...
function si (line 230) | function si(t,e,n,r){const{caretSize:o,caretPadding:s,cornerRadius:a}=t,...
function ai (line 230) | function ai(t,e,n){const r=(0,i.E)(n.padding);return"center"===e?t.x+t.w...
function li (line 230) | function li(t){return Zn([],Qn(t))}
function ci (line 230) | function ci(t,e,n){return(0,i.j)(t,{tooltip:e,tooltipItems:n,type:"toolt...
function ui (line 230) | function ui(t,e){const n=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tool...
method title (line 230) | title(t){if(t.length>0){const e=t[0],n=e.chart.data.labels,i=n?n.length:...
method label (line 230) | label(t){if(this&&this.options&&"dataset"===this.options.mode)return t.l...
method labelColor (line 230) | labelColor(t){const e=t.chart.getDatasetMeta(t.datasetIndex),n=e.control...
method labelTextColor (line 230) | labelTextColor(){return this.options.bodyColor}
method labelPointStyle (line 230) | labelPointStyle(t){const e=t.chart.getDatasetMeta(t.datasetIndex),n=e.co...
function di (line 230) | function di(t,e,n,i){const r=t[e].call(n,i);return"undefined"===typeof r...
class fi (line 230) | class fi extends Rt{static positioners=Gn;constructor(t){super(),this.op...
method constructor (line 230) | constructor(t){super(),this.opacity=0,this._active=[],this._eventPosit...
method initialize (line 230) | initialize(t){this.options=t,this._cachedAnimations=void 0,this.$conte...
method _resolveAnimations (line 230) | _resolveAnimations(){const t=this._cachedAnimations;if(t)return t;cons...
method getContext (line 230) | getContext(){return this.$context||(this.$context=ci(this.chart.getCon...
method getTitle (line 230) | getTitle(t,e){const{callbacks:n}=e,i=di(n,"beforeTitle",this,t),r=di(n...
method getBeforeBody (line 230) | getBeforeBody(t,e){return li(di(e.callbacks,"beforeBody",this,t))}
method getBody (line 230) | getBody(t,e){const{callbacks:n}=e,r=[];return(0,i.F)(t,(t=>{const e={b...
method getAfterBody (line 230) | getAfterBody(t,e){return li(di(e.callbacks,"afterBody",this,t))}
method getFooter (line 230) | getFooter(t,e){const{callbacks:n}=e,i=di(n,"beforeFooter",this,t),r=di...
method _createItems (line 230) | _createItems(t){const e=this._active,n=this.chart.data,r=[],o=[],s=[];...
method update (line 230) | update(t,e){const n=this.options.setContext(this.getContext()),i=this....
method drawCaret (line 230) | drawCaret(t,e,n,i){const r=this.getCaretPosition(t,n,i);e.lineTo(r.x1,...
method getCaretPosition (line 230) | getCaretPosition(t,e,n){const{xAlign:r,yAlign:o}=this,{caretSize:s,cor...
method drawTitle (line 230) | drawTitle(t,e,n){const r=this.title,o=r.length;let s,a,l;if(o){const c...
method _drawColorBox (line 230) | _drawColorBox(t,e,n,r,o){const s=this.labelColors[n],a=this.labelPoint...
method drawBody (line 230) | drawBody(t,e,n){const{body:r}=this,{bodySpacing:o,bodyAlign:s,displayC...
method drawFooter (line 230) | drawFooter(t,e,n){const r=this.footer,o=r.length;let s,a;if(o){const l...
method drawBackground (line 230) | drawBackground(t,e,n,r){const{xAlign:o,yAlign:s}=this,{x:a,y:l}=t,{wid...
method _updateAnimationTarget (line 230) | _updateAnimationTarget(t){const e=this.chart,n=this.$animations,i=n&&n...
method _willRender (line 230) | _willRender(){return!!this.opacity}
method draw (line 230) | draw(t){const e=this.options.setContext(this.getContext());let n=this....
method getActiveElements (line 230) | getActiveElements(){return this._active||[]}
method setActiveElements (line 230) | setActiveElements(t,e){const n=this._active,r=t.map((({datasetIndex:t,...
method handleEvent (line 230) | handleEvent(t,e,n=!0){if(e&&this._ignoreReplayEvents)return!1;this._ig...
method _getActiveElements (line 230) | _getActiveElements(t,e,n,i){const r=this.options;if("mouseout"===t.typ...
method _positionChanged (line 230) | _positionChanged(t,e){const{caretX:n,caretY:i,options:r}=this,o=Gn[r.p...
method afterInit (line 230) | afterInit(t,e,n){n&&(t.tooltip=new fi({chart:t,options:n}))}
method beforeUpdate (line 230) | beforeUpdate(t,e,n){t.tooltip&&t.tooltip.initialize(n)}
method reset (line 230) | reset(t,e,n){t.tooltip&&t.tooltip.initialize(n)}
method afterDraw (line 230) | afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const n={tooltip:e...
method afterEvent (line 230) | afterEvent(t,e){if(t.tooltip){const n=e.replay;t.tooltip.handleEvent(e.e...
function mi (line 230) | function mi(t,e,n,i){const r=t.indexOf(e);if(-1===r)return gi(t,e,n,i);c...
function xi (line 230) | function xi(t){const e=this.getLabels();return t>=0&&te.length-1?null:th...
method getValueForPixel (line 230) | getValueForPixel(t){return Math.round(this._startValue+this.getDecimal...
method getBasePixel (line 230) | getBasePixel(){return this.bottom}
function vi (line 230) | function vi(t,e){const n=[],r=1e-14,{bounds:o,step:s,min:a,max:l,precisi...
function wi (line 230) | function wi(t,e,{horizontal:n,minRotation:r}){const o=(0,i.t)(r),s=(n?Ma...
class ki (line 230) | class ki extends Kt{constructor(t){super(t),this.start=void 0,this.end=v...
method constructor (line 230) | constructor(t){super(t),this.start=void 0,this.end=void 0,this._startV...
method parse (line 230) | parse(t,e){return(0,i.k)(t)||("number"===typeof t||t instanceof Number...
method handleTickRangeOptions (line 230) | handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined...
method getTickLimit (line 230) | getTickLimit(){const t=this.options.ticks;let e,{maxTicksLimit:n,stepS...
method computeTickLimit (line 230) | computeTickLimit(){return Number.POSITIVE_INFINITY}
method buildTicks (line 230) | buildTicks(){const t=this.options,e=t.ticks;let n=this.getTickLimit();...
method configure (line 230) | configure(){const t=this.ticks;let e=this.min,n=this.max;if(super.conf...
method getLabelForValue (line 230) | getLabelForValue(t){return(0,i.o)(t,this.chart.options.locale,this.opt...
class _i (line 230) | class _i extends ki{static id="linear";static defaults={ticks:{callback:...
method determineDataLimits (line 230) | determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=(...
method computeTickLimit (line 230) | computeTickLimit(){const t=this.isHorizontal(),e=t?this.width:this.hei...
method getPixelForValue (line 230) | getPixelForValue(t){return null===t?NaN:this.getPixelForDecimal((t-thi...
method getValueForPixel (line 230) | getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)...
function Ti (line 230) | function Ti(t,e){return t-e}
function Di (line 230) | function Di(t,e){if((0,i.k)(e))return null;const n=t._adapter,{parser:r,...
function Ci (line 230) | function Ci(t,e,n,i){const r=Si.length;for(let o=Si.indexOf(t);o=Si.indexOf(n);o--){const...
function Oi (line 230) | function Oi(t){for(let e=Si.indexOf(t)+1,n=Si.length;e0&&0===--this._on&&(r=this.prevScope,this.prevScope=voi...
method stop (line 6) | stop(t){if(this._active){let e,n;for(this._active=!1,e=0,n=this.effect...
function a (line 237) | function a(t){return r(i(t/2.55)/100,0,1)}
function l (line 237) | function l(t){return r(i(100*t),0,100)}
method constructor (line 230) | constructor(t,e,n,r){const o=e[n];r=(0,i.a)([t.to,r,o,t.from]);const s...
method active (line 230) | active(){return this._active}
method update (line 230) | update(t,e,n){if(this._active){this._notify(!1);const r=this._target[t...
method cancel (line 230) | cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._no...
method tick (line 230) | tick(t){const e=t-this._start,n=this._duration,i=this._prop,r=this._fr...
method wait (line 230) | wait(){const t=this._promises||(this._promises=[]);return new Promise(...
method _notify (line 230) | _notify(t){const e=t?"res":"rej",n=this._promises||[];for(let i=0;in-i*Mat...
function v (line 237) | function v(t,e,n){const i=(i,r=(i+t/60)%6)=>n-n*e*Math.max(Math.min(r,4-...
function w (line 237) | function w(t,e,n){const i=y(t,1,.5);let r;for(e+n>1&&(r=1/(e+n),e*=r,n*=...
function k (line 237) | function k(t,e,n,i,r){return t===r?(e-n)/i+(e=0&&t=0;r-...
function st (line 244) | function st(t,e){let n,i,r,o;if(!t||!e||t.length!==e.length)return!1;for...
function at (line 244) | function at(t){if(Q(t))return t.map(at);if(J(t)){const e=Object.create(n...
function lt (line 244) | function lt(t){return-1===["__proto__","prototype","constructor"].indexO...
function ct (line 244) | function ct(t,e,n,i){if(!lt(t))return;const r=e[t],o=n[t];J(r)&&J(o)?ut(...
function ut (line 244) | function ut(t,e,n){const i=Q(e)?e:[e],r=i.length;if(!J(t))return t;n=n||...
method acquireContext (line 230) | acquireContext(t,e){}
method releaseContext (line 230) | releaseContext(t){return!1}
method addEventListener (line 230) | addEventListener(t,e,n){}
method removeEventListener (line 230) | removeEventListener(t,e,n){}
method getDevicePixelRatio (line 230) | getDevicePixelRatio(){return 1}
method getMaximumSize (line 230) | getMaximumSize(t,e,n,i){return e=Math.max(0,e||t.width),n=n||t.height,...
method isAttached (line 230) | isAttached(t){return!0}
method updateConfig (line 230) | updateConfig(t){}
function ht (line 244) | function ht(t,e){return ut(t,e,{merger:dt})}
method acquireContext (line 230) | acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}
method updateConfig (line 230) | updateConfig(t){t.options.animation=!1}
method validate (line 244) | validate(t,e){return!0}
function dt (line 244) | function dt(t,e,n){if(!lt(t))return;const i=e[t],r=n[t];J(i)&&J(r)?ht(i,...
method constructor (line 244) | constructor(t,e,n,i,r){super(),this.value=t,this.validateValue=e,this....
method validate (line 244) | validate(t,e){return this.validateValue(t,this.value,e)}
method set (line 244) | set(t,e,n){return this.setValue(t,e,this.value,n)}
function pt (line 244) | function pt(t){const e=t.split("."),n=[];let i="";for(const r of e)i+=r,...
method run (line 244) | run(t,e,n,i){const r=this.parse(t,e,n,i);return r?{setter:new dt(r.val...
method validate (line 244) | validate(t,e,n){return!0}
function gt (line 244) | function gt(t){const e=pt(t);return t=>{for(const n of e){if(""===n)brea...
method parse (line 244) | parse(t,e,n){switch(e){case"G":case"GG":case"GGG":return n.era(t,{widt...
method set (line 244) | set(t,e,n){return e.era=n,t.setFullYear(n,0,1),t.setHours(0,0,0,0),t}
function mt (line 244) | function mt(t,e){const n=ft[e]||(ft[e]=gt(e));return n(t)}
function bt (line 244) | function bt(t){return t.charAt(0).toUpperCase()+t.slice(1)}
function wt (line 244) | function wt(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"...
function Et (line 244) | function Et(t,e,n){return Math.abs(t-e)=1&&e<=4}
method set (line 244) | set(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}
function Lt (line 244) | function Lt(t){return"symbol"===typeof t||"object"===typeof t&&null!==t&...
method parse (line 244) | parse(t,e,n){switch(e){case"q":case"qq":return kt(e.length,t);case"qo"...
method validate (line 244) | validate(t,e){return e>=1&&e<=4}
method set (line 244) | set(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}
function zt (line 244) | function zt(t){return!Lt(t)&&!isNaN(parseFloat(t))&&isFinite(t)}
method constructor (line 6) | constructor(t,e,n){this.fn=t,this.setter=e,this._value=void 0,this.dep...
method notify (line 6) | notify(){if(this.flags|=16,!(8&this.flags||o===this))return f(this,!0)...
method value (line 6) | get value(){const t=this.dep.track();return y(this),t&&(t.version=this...
method value (line 6) | set value(t){this.setter&&this.setter(t)}
method parse (line 244) | parse(t,e,n){const i=t=>t-1;switch(e){case"M":return xt(yt(mt.month,t)...
method validate (line 244) | validate(t,e){return e>=0&&e<=11}
method set (line 244) | set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}
function Nt (line 244) | function Nt(t,e){const n=Math.round(t);return n-e<=t&&n+e>=t}
method parse (line 244) | parse(t,e,n){const i=t=>t-1;switch(e){case"L":return xt(yt(mt.month,t)...
method validate (line 244) | validate(t,e){return e>=0&&e<=11}
method set (line 244) | set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}
function Ft (line 244) | function Ft(t,e,n){let i,r,o;for(i=0,r=t.length;i=1&&e<=53}
method set (line 244) | set(t,e,n,i){return Ct(Ht(t,n,i),i)}
function $t (line 244) | function $t(t,e){const n=e.x-t.x,i=e.y-t.y,r=Math.sqrt(n*n+i*i);let o=Ma...
function Bt (line 244) | function Bt(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}
function Yt (line 244) | function Yt(t,e){return(t-e+Mt)%_t-kt}
function Vt (line 244) | function Vt(t){return(t%_t+_t)%_t}
function Ut (line 244) | function Ut(t,e,n,i){const r=Vt(t),o=Vt(e),s=Vt(n),a=Vt(o-r),l=Vt(s-r),c...
method parse (line 244) | parse(t,e,n){switch(e){case"I":return yt(mt.week,t);case"Io":return n....
method validate (line 244) | validate(t,e){return e>=1&&e<=53}
method set (line 244) | set(t,e,n){return Pt(Vt(t,n))}
function qt (line 244) | function qt(t,e,n){return Math.max(e,Math.min(n,t))}
function Xt (line 244) | function Xt(t){return qt(t,-32768,32767)}
method inRange (line 258) | inRange(t,e,n,i){const{x:o,y:s}=h({x:t,y:e},this.getCenterPoint(i),(0,...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){t.save(),Y(t,this.getCenterPoint(),this.options.rotation),X(t,...
method label (line 258) | get label(){return this.elements&&this.elements[0]}
method resolveElementProperties (line 258) | resolveElementProperties(t,e){return vt(t,e)}
function Gt (line 244) | function Gt(t,e,n,i=1e-6){return t>=Math.min(e,n)-i&&t<=Math.max(e,n)+i}
method parse (line 244) | parse(t,e,n){switch(e){case"d":return yt(mt.date,t);case"do":return n....
method validate (line 244) | validate(t,e){const n=t.getFullYear(),i=Tt(n),r=t.getMonth();return i?...
method set (line 244) | set(t,e,n){return t.setDate(n),t.setHours(0,0,0,0),t}
method inRange (line 258) | inRange(t,e,n,i){return y({x:t,y:e},{rect:this.getProps(["x","y","x2",...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const e=this.options;e.display&&e.content&&(ee(t,this),t.save(...
method resolveElementProperties (line 258) | resolveElementProperties(t,e){const n=Zt(t,e);if(!n)return{};const{con...
function Zt (line 244) | function Zt(t,e,n){n=n||(n=>t[n]1)i...
method parse (line 244) | parse(t,e,n){switch(e){case"D":case"DD":return yt(mt.dayOfYear,t);case...
method validate (line 244) | validate(t,e){const n=t.getFullYear(),i=Tt(n);return i?e>=1&&e<=366:e>...
method set (line 244) | set(t,e,n){return t.setMonth(0,n),t.setHours(0,0,0,0),t}
function Kt (line 244) | function Kt(t,e,n){let i=0,r=t.length;while(ii&&t...
method constructor (line 230) | constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void...
method init (line 230) | init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,...
method parse (line 230) | parse(t,e){return t}
method getUserBounds (line 230) | getUserBounds(){let{_userMin:t,_userMax:e,_suggestedMin:n,_suggestedMa...
method getMinMax (line 230) | getMinMax(t){let e,{min:n,max:r,minDefined:o,maxDefined:s}=this.getUse...
method getPadding (line 230) | getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,ri...
method getTicks (line 230) | getTicks(){return this.ticks}
method getLabels (line 230) | getLabels(){const t=this.chart.data;return this.options.labels||(this....
method getLabelItems (line 230) | getLabelItems(t=this.chart.chartArea){const e=this._labelItems||(this....
method beforeLayout (line 230) | beforeLayout(){this._cache={},this._dataLimitsCached=!1}
method beforeUpdate (line 230) | beforeUpdate(){(0,i.Q)(this.options.beforeUpdate,[this])}
method update (line 230) | update(t,e,n){const{beginAtZero:r,grace:o,ticks:s}=this.options,a=s.sa...
method configure (line 230) | configure(){let t,e,n=this.options.reverse;this.isHorizontal()?(t=this...
method afterUpdate (line 230) | afterUpdate(){(0,i.Q)(this.options.afterUpdate,[this])}
method beforeSetDimensions (line 230) | beforeSetDimensions(){(0,i.Q)(this.options.beforeSetDimensions,[this])}
method setDimensions (line 230) | setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.lef...
method afterSetDimensions (line 230) | afterSetDimensions(){(0,i.Q)(this.options.afterSetDimensions,[this])}
method _callHooks (line 230) | _callHooks(t){this.chart.notifyPlugins(t,this.getContext()),(0,i.Q)(th...
method beforeDataLimits (line 230) | beforeDataLimits(){this._callHooks("beforeDataLimits")}
method determineDataLimits (line 230) | determineDataLimits(){}
method afterDataLimits (line 230) | afterDataLimits(){this._callHooks("afterDataLimits")}
method beforeBuildTicks (line 230) | beforeBuildTicks(){this._callHooks("beforeBuildTicks")}
method buildTicks (line 230) | buildTicks(){return[]}
method afterBuildTicks (line 230) | afterBuildTicks(){this._callHooks("afterBuildTicks")}
method beforeTickToLabelConversion (line 230) | beforeTickToLabelConversion(){(0,i.Q)(this.options.beforeTickToLabelCo...
method generateTickLabels (line 230) | generateTickLabels(t){const e=this.options.ticks;let n,r,o;for(n=0,r=t...
method afterTickToLabelConversion (line 230) | afterTickToLabelConversion(){(0,i.Q)(this.options.afterTickToLabelConv...
method beforeCalculateLabelRotation (line 230) | beforeCalculateLabelRotation(){(0,i.Q)(this.options.beforeCalculateLab...
method calculateLabelRotation (line 230) | calculateLabelRotation(){const t=this.options,e=t.ticks,n=Bt(this.tick...
method afterCalculateLabelRotation (line 230) | afterCalculateLabelRotation(){(0,i.Q)(this.options.afterCalculateLabel...
method afterAutoSkip (line 230) | afterAutoSkip(){}
method beforeFit (line 230) | beforeFit(){(0,i.Q)(this.options.beforeFit,[this])}
method fit (line 230) | fit(){const t={width:0,height:0},{chart:e,options:{ticks:n,title:r,gri...
method _calculatePadding (line 230) | _calculatePadding(t,e,n,i){const{ticks:{align:r,padding:o},position:s}...
method _handleMargins (line 230) | _handleMargins(){this._margins&&(this._margins.left=Math.max(this.padd...
method afterFit (line 230) | afterFit(){(0,i.Q)(this.options.afterFit,[this])}
method isHorizontal (line 230) | isHorizontal(){const{axis:t,position:e}=this.options;return"top"===e||...
method isFullSize (line 230) | isFullSize(){return this.options.fullSize}
method _convertTicksToLabels (line 230) | _convertTicksToLabels(t){let e,n;for(this.beforeTickToLabelConversion(...
method _getLabelSizes (line 230) | _getLabelSizes(){let t=this._labelSizes;if(!t){const e=this.options.ti...
method _computeLabelSizes (line 230) | _computeLabelSizes(t,e,n){const{ctx:r,_longestTextCache:o}=this,s=[],a...
method getLabelForValue (line 230) | getLabelForValue(t){return t}
method getPixelForValue (line 230) | getPixelForValue(t,e){return NaN}
method getValueForPixel (line 230) | getValueForPixel(t){}
method getPixelForTick (line 230) | getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:th...
method getPixelForDecimal (line 230) | getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._start...
method getDecimalForPixel (line 230) | getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return...
method getBasePixel (line 230) | getBasePixel(){return this.getPixelForValue(this.getBaseValue())}
method getBaseValue (line 230) | getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}
method getContext (line 230) | getContext(t){const e=this.ticks||[];if(t>=0&&t=0&&e<=6}
method set (line 244) | set(t,e,n,i){return t=Jt(t,n,i),t.setHours(0,0,0,0),t}
function ee (line 244) | function ee(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineP...
method parse (line 244) | parse(t,e,n,i){const r=t=>{const e=7*Math.floor((t-1)/7);return(t+i.we...
method validate (line 244) | validate(t,e){return e>=0&&e<=6}
method set (line 244) | set(t,e,n,i){return t=Jt(t,n,i),t.setHours(0,0,0,0),t}
function ne (line 244) | function ne(t,e){const n=t._chartjs;if(!n)return;const i=n.listeners,r=i...
method inRange (line 258) | inRange(t,e,n,i){return y({x:t,y:e},{rect:this.getProps(["x","y","x2",...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const e=this.options,n=!(0,r.h)(this._visible)||this._visible;...
method resolveElementProperties (line 258) | resolveElementProperties(t,e){let n;if(I(e))n=mt(t,e);else{const{cente...
function ie (line 244) | function ie(t){const e=new Set(t);return e.size===t.length?t:Array.from(e)}
function oe (line 244) | function oe(t,e){let n=[],i=!1;return function(...r){n=r,i||(i=!0,re.cal...
method parse (line 244) | parse(t,e,n){switch(e){case"a":case"aa":case"aaa":return n.dayPeriod(t...
method set (line 244) | set(t,e,n){return t.setHours(Mt(n),0,0,0),t}
function se (line 244) | function se(t,e){let n;return function(...i){return e?(clearTimeout(n),n...
method constructor (line 230) | constructor(){this._init=void 0}
method notify (line 230) | notify(t,e,n,i){if("beforeInit"===e&&(this._init=this._createDescripto...
method _notify (line 230) | _notify(t,e,n,r){r=r||{};for(const o of t){const t=o.plugin,s=t[n],a=[...
method invalidate (line 230) | invalidate(){(0,i.k)(this._cache)||(this._oldCache=this._cache,this._c...
method _descriptors (line 230) | _descriptors(t){if(this._cache)return this._cache;const e=this._cache=...
method _createDescriptors (line 230) | _createDescriptors(t,e){const n=t&&t.config,r=(0,i.v)(n.options&&n.opt...
method _notifyStateChanges (line 230) | _notifyStateChanges(t){const e=this._oldCache||[],n=this._cache,i=(t,e...
method parse (line 244) | parse(t,e,n){switch(e){case"b":case"bb":case"bbb":return n.dayPeriod(t...
method set (line 244) | set(t,e,n){return t.setHours(Mt(n),0,0,0),t}
function ue (line 244) | function ue(t,e,n){const i=e.length;let r=0,o=i;if(t._sorted){const{iSca...
method parse (line 244) | parse(t,e,n){switch(e){case"K":return yt(mt.hour11h,t);case"Ko":return...
method validate (line 244) | validate(t,e){return e>=0&&e<=11}
method set (line 244) | set(t,e,n){const i=t.getHours()>=12;return i&&n<12?t.setHours(n+12,0,0...
function he (line 244) | function he(t){const{xScale:e,yScale:n,_scaleRanges:i}=t,r={xmin:e.min,x...
method parse (line 244) | parse(t,e,n){switch(e){case"k":return yt(mt.hour24h,t);case"ko":return...
method validate (line 244) | validate(t,e){return e>=1&&e<=24}
method set (line 244) | set(t,e,n){const i=n<=24?n%24:n;return t.setHours(i,0,0,0),t}
method easeInOutElastic (line 244) | easeInOutElastic(t){const e=.1125,n=.45;return de(t)?t:t<.5?.5*fe(2*t,e,...
method easeInBack (line 244) | easeInBack(t){const e=1.70158;return t*t*((e+1)*t-e)}
method easeOutBack (line 244) | easeOutBack(t){const e=1.70158;return(t-=1)*t*((e+1)*t+e)+1}
method easeInOutBack (line 244) | easeInOutBack(t){let e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*...
method easeOutBounce (line 244) | easeOutBounce(t){const e=7.5625,n=2.75;return t<1/n?e*t*t:t<2/n?e*(t-=1....
function me (line 244) | function me(t){if(t&&"object"===typeof t){const e=t.toString();return"[o...
method parse (line 244) | parse(t,e){switch(e){case"X":return vt(bt.basicOptionalMinutes,t);case...
method set (line 244) | set(t,e,n){return e.timestampIsSet?t:u(t,t.getTime()-ge(t)-n)}
function be (line 244) | function be(t){return me(t)?t:new q(t)}
method parse (line 244) | parse(t,e){switch(e){case"x":return vt(bt.basicOptionalMinutes,t);case...
method set (line 244) | set(t,e,n){return e.timestampIsSet?t:u(t,t.getTime()-ge(t)-n)}
function xe (line 244) | function xe(t){return me(t)?t:new q(t).saturate(.5).darken(.1).hexString()}
method parse (line 244) | parse(t){return wt(t)}
method set (line 244) | set(t,e,n){return[u(t,1e3*n),{timestampIsSet:!0}]}
function we (line 244) | function we(t){t.set("animation",{delay:void 0,duration:1e3,easing:"ease...
function ke (line 244) | function ke(t){t.set("layout",{autoPadding:!0,padding:{top:0,right:0,bot...
function Me (line 244) | function Me(t,e){e=e||{};const n=t+JSON.stringify(e);let i=_e.get(n);ret...
function Se (line 244) | function Se(t,e,n){return Me(e,n).format(t)}
method values (line 244) | values(t){return Q(t)?t:""+t}
method numeric (line 244) | numeric(t,e,n){if(0===t)return"0";const i=this.chart.options.locale;let ...
method logarithmic (line 244) | logarithmic(t,e,n){if(0===t)return"0";const i=n[e].significand||t/Math.p...
function De (line 244) | function De(t,e){let n=e.length>3?e[2].value-e[1].value:e[1].value-e[0]....
method constructor (line 230) | constructor(t){this._config=ke(t),this._scopeCache=new Map,this._resol...
method platform (line 230) | get platform(){return this._config.platform}
method type (line 230) | get type(){return this._config.type}
method type (line 230) | set type(t){this._config.type=t}
method data (line 230) | get data(){return this._config.data}
method data (line 230) | set data(t){this._config.data=we(t)}
method options (line 230) | get options(){return this._config.options}
method options (line 230) | set options(t){this._config.options=t}
method plugins (line 230) | get plugins(){return this._config.plugins}
method update (line 230) | update(){const t=this._config;this.clearCache(),ve(t)}
method clearCache (line 230) | clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}
method datasetScopeKeys (line 230) | datasetScopeKeys(t){return Se(t,(()=>[[`datasets.${t}`,""]]))}
method datasetAnimationScopeKeys (line 230) | datasetAnimationScopeKeys(t,e){return Se(`${t}.transition.${e}`,(()=>[...
method datasetElementScopeKeys (line 230) | datasetElementScopeKeys(t,e){return Se(`${t}-${e}`,(()=>[[`datasets.${...
method pluginScopeKeys (line 230) | pluginScopeKeys(t){const e=t.id,n=this.type;return Se(`${n}-plugin-${e...
method _cachedScopes (line 230) | _cachedScopes(t,e){const n=this._scopeCache;let i=n.get(t);return i&&!...
method getOptionScopes (line 230) | getOptionScopes(t,e,n){const{options:r,type:o}=this,s=this._cachedScop...
method chartOptionScopes (line 230) | chartOptionScopes(){const{options:t,type:e}=this;return[t,i.a3[e]||{},...
method resolveNamedOptions (line 230) | resolveNamedOptions(t,e,n,r=[""]){const o={$shared:!0},{resolver:s,sub...
method createResolver (line 230) | createResolver(t,e,n=[""],r){const{resolver:o}=Ce(this._resolverCache,...
function Ae (line 244) | function Ae(t){t.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZer...
function Ee (line 244) | function Ee(t,e){if(!e)return t;const n=e.split(".");for(let i=0,r=n.len...
function Re (line 244) | function Re(t,e,n){return"string"===typeof e?ut(Ee(t,e),n):ut(Ee(t,""),e)}
class Ie (line 244) | class Ie{constructor(t,e){this.animation=void 0,this.backgroundColor="rg...
method constructor (line 244) | constructor(t,e){this.animation=void 0,this.backgroundColor="rgba(0,0,...
method set (line 244) | set(t,e){return Re(this,t,e)}
method get (line 244) | get(t){return Ee(this,t)}
method describe (line 244) | describe(t,e){return Re(Pe,t,e)}
method override (line 244) | override(t,e){return Re(Oe,t,e)}
method route (line 244) | route(t,e,n,i){const r=Ee(this,t),o=Ee(this,n),s="_"+e;Object.definePr...
method apply (line 244) | apply(t){t.forEach((t=>t(this)))}
function ze (line 244) | function ze(t){return!t||Z(t.size)||Z(t.family)?null:(t.style?t.style+" ...
function Ne (line 244) | function Ne(t,e,n,i,r){let o=e[r];return o||(o=e[r]=t.measureText(r).wid...
method inRange (line 258) | inRange(t,e,n,i){const{x:r,y:o,x2:s,y2:a,width:l}=this.getProps(["x","...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const e=this.options,n=e.borderWidth;if(e.radius<.1)return;t.s...
method resolveElementProperties (line 258) | resolveElementProperties(t,e){const n=xt(t,e);return n.initProperties=...
function Fe (line 244) | function Fe(t,e,n,i){i=i||{};let r=i.data=i.data||{},o=i.garbageCollect=...
method inRange (line 258) | inRange(t,e,n,i){if("x"!==n&&"y"!==n)return this.options.radius>=.1&&t...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const{elements:e,options:n}=this;t.save(),t.beginPath(),t.fill...
method resolveElementProperties (line 258) | resolveElementProperties(t,e){const n=xt(t,e),{sides:i,rotation:o}=e,s...
function je (line 244) | function je(t,e,n){const i=t.currentDevicePixelRatio,r=0!==n?Math.max(n/...
function He (line 244) | function He(t,e){(e||t)&&(e=e||t.getContext("2d"),e.save(),e.resetTransf...
function We (line 244) | function We(t,e,n,i){$e(t,e,n,i,null)}
function $e (line 244) | function $e(t,e,n,i,r){let o,s,a,l,c,u,h,d;const f=e.pointStyle,p=e.rota...
method register (line 230) | static register(...t){oe.add(...t),Be()}
method unregister (line 230) | static unregister(...t){oe.remove(...t),Be()}
method constructor (line 230) | constructor(t,e){const n=this.config=new De(e),r=Ne(t),s=je(r);if(s)th...
method aspectRatio (line 230) | get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},...
method data (line 230) | get data(){return this.config.data}
method data (line 230) | set data(t){this.config.data=t}
method options (line 230) | get options(){return this._options}
method options (line 230) | set options(t){this.config.options=t}
method registry (line 230) | get registry(){return oe}
method _initialize (line 230) | _initialize(){return this.notifyPlugins("beforeInit"),this.options.res...
method clear (line 230) | clear(){return(0,i.af)(this.canvas,this.ctx),this}
method stop (line 230) | stop(){return o.stop(this),this}
method resize (line 230) | resize(t,e){o.running(this)?this._resizeBeforeDraw={width:t,height:e}:...
method _resize (line 230) | _resize(t,e){const n=this.options,r=this.canvas,o=n.maintainAspectRati...
method ensureScalesHaveIDs (line 230) | ensureScalesHaveIDs(){const t=this.options,e=t.scales||{};(0,i.F)(e,((...
method buildOrUpdateScales (line 230) | buildOrUpdateScales(){const t=this.options,e=t.scales,n=this.scales,r=...
method _updateMetasets (line 230) | _updateMetasets(){const t=this._metasets,e=this.data.datasets.length,n...
method _removeUnreferencedMetasets (line 230) | _removeUnreferencedMetasets(){const{_metasets:t,data:{datasets:e}}=thi...
method buildOrUpdateControllers (line 230) | buildOrUpdateControllers(){const t=[],e=this.data.datasets;let n,r;for...
method _resetElements (line 230) | _resetElements(){(0,i.F)(this.data.datasets,((t,e)=>{this.getDatasetMe...
method reset (line 230) | reset(){this._resetElements(),this.notifyPlugins("reset")}
method update (line 230) | update(t){const e=this.config;e.update();const n=this._options=e.creat...
method _updateScales (line 230) | _updateScales(){(0,i.F)(this.scales,(t=>{ct.removeBox(this,t)})),this....
method _checkEventBindings (line 230) | _checkEventBindings(){const t=this.options,e=new Set(Object.keys(this....
method _updateHiddenIndices (line 230) | _updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniform...
method _getUniformDataChanges (line 230) | _getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)re...
method _updateLayout (line 230) | _updateLayout(t){if(!1===this.notifyPlugins("beforeLayout",{cancelable...
method _updateDatasets (line 230) | _updateDatasets(t){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{...
method _updateDataset (line 230) | _updateDataset(t,e){const n=this.getDatasetMeta(t),i={meta:n,index:t,m...
method render (line 230) | render(){!1!==this.notifyPlugins("beforeRender",{cancelable:!0})&&(o.h...
method draw (line 230) | draw(){let t;if(this._resizeBeforeDraw){const{width:t,height:e}=this._...
method _getSortedDatasetMetas (line 230) | _getSortedDatasetMetas(t){const e=this._sortedMetasets,n=[];let i,r;fo...
method getSortedVisibleDatasetMetas (line 230) | getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)}
method _drawDatasets (line 230) | _drawDatasets(){if(!1===this.notifyPlugins("beforeDatasetsDraw",{cance...
method _drawDataset (line 230) | _drawDataset(t){const e=this.ctx,n={meta:t,index:t.index,cancelable:!0...
method isPointInArea (line 230) | isPointInArea(t){return(0,i.C)(t,this.chartArea,this._minPadding)}
method getElementsAtEventForMode (line 230) | getElementsAtEventForMode(t,e,n,i){const r=U.modes[e];return"function"...
method getDatasetMeta (line 230) | getDatasetMeta(t){const e=this.data.datasets[t],n=this._metasets;let i...
method getContext (line 230) | getContext(){return this.$context||(this.$context=(0,i.j)(null,{chart:...
method getVisibleDatasetCount (line 230) | getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().le...
method isDatasetVisible (line 230) | isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const...
method setDatasetVisibility (line 230) | setDatasetVisibility(t,e){const n=this.getDatasetMeta(t);n.hidden=!e}
method toggleDataVisibility (line 230) | toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}
method getDataVisibility (line 230) | getDataVisibility(t){return!this._hiddenIndices[t]}
method _updateVisibility (line 230) | _updateVisibility(t,e,n){const r=n?"show":"hide",o=this.getDatasetMeta...
method hide (line 230) | hide(t,e){this._updateVisibility(t,e,!1)}
method show (line 230) | show(t,e){this._updateVisibility(t,e,!0)}
method _destroyDatasetMeta (line 230) | _destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.co...
method _stop (line 230) | _stop(){let t,e;for(this.stop(),o.remove(this),t=0,e=this.data.dataset...
method destroy (line 230) | destroy(){this.notifyPlugins("beforeDestroy");const{canvas:t,ctx:e}=th...
method toBase64Image (line 230) | toBase64Image(...t){return this.canvas.toDataURL(...t)}
method bindEvents (line 230) | bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindRe...
method bindUserEvents (line 230) | bindUserEvents(){const t=this._listeners,e=this.platform,n=(n,i)=>{e.a...
method bindResponsiveEvents (line 230) | bindResponsiveEvents(){this._responsiveListeners||(this._responsiveLis...
method unbindEvents (line 230) | unbindEvents(){(0,i.F)(this._listeners,((t,e)=>{this.platform.removeEv...
method updateHoverStyle (line 230) | updateHoverStyle(t,e,n){const i=n?"set":"remove";let r,o,s,a;for("data...
method getActiveElements (line 230) | getActiveElements(){return this._active||[]}
method setActiveElements (line 230) | setActiveElements(t){const e=this._active||[],n=t.map((({datasetIndex:...
method notifyPlugins (line 230) | notifyPlugins(t,e,n){return this._plugins.notify(this,t,e,n)}
method isPluginEnabled (line 230) | isPluginEnabled(t){return 1===this._plugins._cache.filter((e=>e.plugin...
method _updateHoverStyles (line 230) | _updateHoverStyles(t,e,n){const i=this.options.hover,r=(t,e)=>t.filter...
method _eventHandler (line 230) | _eventHandler(t,e){const n={event:t,replay:e,cancelable:!0,inChartArea...
method _handleEvent (line 230) | _handleEvent(t,e,n){const{_active:r=[],options:o}=this,s=e,a=this._get...
method _getActiveElements (line 230) | _getActiveElements(t,e,n,i){if("mouseout"===t.type)return[];if(!n)retu...
function Be (line 244) | function Be(t,e,n){return n=n||.5,!e||t&&t.x>e.left-n&&t.x0&&""!==o...
function Je (line 244) | function Je(t,e){const{x:n,y:i,w:r,h:o,radius:s}=e;t.arc(n+s.topLeft,i+s...
function en (line 244) | function en(t,e){const n=(""+t).match(Ke);if(!n||"normal"===n[1])return ...
function rn (line 244) | function rn(t,e){const n={},i=J(e),r=i?Object.keys(e):e,o=J(t)?i?n=>et(t...
function on (line 244) | function on(t){return rn(t,{top:"y",right:"x",bottom:"y",left:"x"})}
method constructor (line 230) | constructor(t){super(),this.options=void 0,this.parsed=void 0,this.ski...
method inRange (line 230) | inRange(t,e,n){const i=this.options,{x:r,y:o}=this.getProps(["x","y"],...
method inXRange (line 230) | inXRange(t,e){return rn(this,t,"x",e)}
method inYRange (line 230) | inYRange(t,e){return rn(this,t,"y",e)}
method getCenterPoint (line 230) | getCenterPoint(t){const{x:e,y:n}=this.getProps(["x","y"],t);return{x:e...
method size (line 230) | size(t){t=t||this.options||{};let e=t.radius||0;e=Math.max(e,e&&t.hove...
method draw (line 230) | draw(t,e){const n=this.options;this.skip||n.radius<.1||!(0,i.C)(this,e...
method getRange (line 230) | getRange(){const t=this.options||{};return t.radius+t.hitRadius}
function sn (line 244) | function sn(t){return rn(t,["topLeft","topRight","bottomLeft","bottomRig...
function an (line 244) | function an(t){const e=on(t);return e.width=e.left+e.right,e.height=e.to...
function ln (line 244) | function ln(t,e){t=t||{},e=e||Le.font;let n=et(t.size,e.size);"string"==...
function cn (line 244) | function cn(t,e,n,i){let r,o,s,a=!0;for(r=0,o=t.length;rn&&0===...
function hn (line 244) | function hn(t,e){return Object.assign(Object.create(t),e)}
function dn (line 244) | function dn(t,e=[""],n,i,r=(()=>t[0])){const o=n||t;"undefined"===typeof...
function fn (line 244) | function fn(t,e,n,i){const r={_cacheable:!1,_proxy:t,_context:e,_subProx...
function pn (line 244) | function pn(t,e={scriptable:!0,indexable:!0}){const{_scriptable:n=e.scri...
function bn (line 244) | function bn(t,e,n){if(Object.prototype.hasOwnProperty.call(t,e)||"constr...
function xn (line 244) | function xn(t,e,n){const{_proxy:i,_context:r,_subProxy:o,_descriptors:s}...
function yn (line 244) | function yn(t,e,n,i){const{_proxy:r,_context:o,_subProxy:s,_stack:a}=n;i...
function vn (line 244) | function vn(t,e,n,i){const{_proxy:r,_context:o,_subProxy:s,_descriptors:...
function wn (line 244) | function wn(t,e,n){return yt(t)?t(e,n):t}
function _n (line 244) | function _n(t,e,n,i,r){for(const o of e){const e=kn(n,o);if(e){t.add(e);...
method constructor (line 230) | constructor(t){this.x=t.x,this.y=t.y,this.radius=t.radius}
method pathSegment (line 230) | pathSegment(t,e,n){const{x:r,y:o,radius:s}=this;return e=e||{start:0,e...
method interpolate (line 230) | interpolate(t){const{x:e,y:n,radius:i}=this,r=t.angle;return{x:e+Math....
function Mn (line 244) | function Mn(t,e,n,i){const r=e._rootScopes,o=wn(e._fallback,n,i),s=[...t...
function Sn (line 244) | function Sn(t,e,n,i,r){while(n)n=_n(t,e,n,i,r);return n}
function Tn (line 244) | function Tn(t,e,n){const i=t._getTarget();e in i||(i[e]={});const r=i[e]...
function Dn (line 244) | function Dn(t,e,n,i){let r;for(const o of e)if(r=Cn(gn(o,t),n),"undefine...
function Cn (line 244) | function Cn(t,e){for(const n of e){if(!n)continue;const e=n[t];if("undef...
function An (line 244) | function An(t){let e=t._keys;return e||(e=t._keys=On(t._scopes)),e}
function On (line 244) | function On(t){const e=new Set;for(const n of t)for(const t of Object.ke...
function Pn (line 244) | function Pn(t,e,n,i){const{iScale:r}=t,{key:o="r"}=this._parsing,s=new A...
function Ln (line 244) | function Ln(t,e,n,i){const r=t.skip?e:t,o=e,s=n.skip?e:n,a=Bt(o,r),l=Bt(...
function zn (line 244) | function zn(t,e,n){const i=t.length;let r,o,s,a,l,c=Rn(t,0);for(let u=0;...
function Nn (line 244) | function Nn(t,e,n="x"){const i=In(n),r=t.length;let o,s,a,l=Rn(t,0);for(...
function Fn (line 244) | function Fn(t,e="x"){const n=In(e),i=t.length,r=Array(i).fill(0),o=Array...
function jn (line 244) | function jn(t,e,n){return Math.max(Math.min(t,n),e)}
method constructor (line 230) | constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hov...
method update (line 230) | update(t,e,n){this.maxWidth=t,this.maxHeight=e,this._margins=n,this.se...
method setDimensions (line 230) | setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.lef...
method buildLabels (line 230) | buildLabels(){const t=this.options.labels||{};let e=(0,i.Q)(t.generate...
method fit (line 230) | fit(){const{options:t,ctx:e}=this;if(!t.display)return void(this.width...
method _fitRows (line 230) | _fitRows(t,e,n,i){const{ctx:r,maxWidth:o,options:{labels:{padding:s}}}...
method _fitCols (line 230) | _fitCols(t,e,n,i){const{ctx:r,maxHeight:o,options:{labels:{padding:s}}...
method adjustHitBoxes (line 230) | adjustHitBoxes(){if(!this.options.display)return;const t=this._compute...
method isHorizontal (line 230) | isHorizontal(){return"top"===this.options.position||"bottom"===this.op...
method draw (line 230) | draw(){if(this.options.display){const t=this.ctx;(0,i.Y)(t,this),this....
method _draw (line 230) | _draw(){const{options:t,columnSizes:e,lineWidths:n,ctx:r}=this,{align:...
method drawTitle (line 230) | drawTitle(){const t=this.options,e=t.title,n=(0,i.a0)(e.font),r=(0,i.E...
method _computeTitleHeight (line 230) | _computeTitleHeight(){const t=this.options.title,e=(0,i.a0)(t.font),n=...
method _getLegendItemAt (line 230) | _getLegendItemAt(t,e){let n,r,o;if((0,i.ak)(t,this.left,this.right)&&(...
method handleEvent (line 230) | handleEvent(t){const e=this.options;if(!Yn(t.type,e))return;const n=th...
function Hn (line 244) | function Hn(t,e){let n,i,r,o,s,a=Be(t[0],e);for(n=0,i=t.length;n!t.ski...
function $n (line 244) | function $n(){return"undefined"!==typeof window&&"undefined"!==typeof do...
function Bn (line 244) | function Bn(t){let e=t.parentNode;return e&&"[object ShadowRoot]"===e.to...
function Yn (line 244) | function Yn(t,e,n){let i;return"string"===typeof t?(i=parseInt(t,10),-1!...
function Un (line 244) | function Un(t,e){return Vn(t).getPropertyValue(e)}
method constructor (line 230) | constructor(t){super(),this.chart=t.chart,this.options=t.options,this....
method update (line 230) | update(t,e){const n=this.options;if(this.left=0,this.top=0,!n.display)...
method isHorizontal (line 230) | isHorizontal(){const t=this.options.position;return"top"===t||"bottom"...
method _drawArgs (line 230) | _drawArgs(t){const{top:e,left:n,bottom:r,right:o,options:s}=this,a=s.a...
method draw (line 230) | draw(){const t=this.ctx,e=this.options;if(!e.display)return;const n=(0...
function Xn (line 244) | function Xn(t,e,n){const i={};n=n?"-"+n:"";for(let r=0;r<4;r++){const o=...
function Zn (line 244) | function Zn(t,e){const n=t.touches,i=n&&n.length?n[0]:t,{offsetX:r,offse...
function Qn (line 244) | function Qn(t,e){if("native"in t)return t;const{canvas:n,currentDevicePi...
function Jn (line 244) | function Jn(t,e,n){let i,r;if(void 0===e||void 0===n){const o=t&&Bn(t);i...
function ti (line 244) | function ti(t,e,n,i){const r=Vn(t),o=Xn(r,"margin"),s=Yn(r.maxWidth,t,"c...
function ei (line 244) | function ei(t,e,n){const i=e||1,r=Kn(t.height*i),o=Kn(t.width*i);t.heigh...
method passive (line 244) | get passive(){return t=!0,!1}
function ii (line 244) | function ii(t,e){const n=Un(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);retur...
function ri (line 244) | function ri(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}}
function oi (line 244) | function oi(t,e,n,i){return{x:t.x+n*(e.x-t.x),y:"middle"===i?n<.5?t.y:e....
function si (line 244) | function si(t,e,n,i){const r={x:t.cp2x,y:t.cp2y},o={x:e.cp1x,y:e.cp1y},s...
method x (line 244) | x(n){return t+t+e-n}
method setWidth (line 244) | setWidth(t){e=t}
method textAlign (line 244) | textAlign(t){return"center"===t?t:"right"===t?"left":"right"}
method xPlus (line 244) | xPlus(t,e){return t-e}
method leftForLtr (line 244) | leftForLtr(t,e){return t-e}
method x (line 244) | x(t){return t}
method setWidth (line 244) | setWidth(t){}
method textAlign (line 244) | textAlign(t){return t}
method xPlus (line 244) | xPlus(t,e){return t+e}
method leftForLtr (line 244) | leftForLtr(t,e){return t}
function ci (line 244) | function ci(t,e,n){return t?ai(e,n):li()}
function ui (line 244) | function ui(t,e){let n,i;"ltr"!==e&&"rtl"!==e||(n=t.canvas.style,i=[n.ge...
function hi (line 244) | function hi(t,e){void 0!==e&&(delete t.prevTextDirection,t.canvas.style....
function di (line 244) | function di(t){return"angle"===t?{between:Ut,compare:Yt,normalize:Vt}:{b...
function fi (line 244) | function fi({start:t,end:e,count:n,loop:i,style:r}){return{start:t%n,end...
method constructor (line 230) | constructor(t){super(),this.opacity=0,this._active=[],this._eventPosit...
method initialize (line 230) | initialize(t){this.options=t,this._cachedAnimations=void 0,this.$conte...
method _resolveAnimations (line 230) | _resolveAnimations(){const t=this._cachedAnimations;if(t)return t;cons...
method getContext (line 230) | getContext(){return this.$context||(this.$context=ci(this.chart.getCon...
method getTitle (line 230) | getTitle(t,e){const{callbacks:n}=e,i=di(n,"beforeTitle",this,t),r=di(n...
method getBeforeBody (line 230) | getBeforeBody(t,e){return li(di(e.callbacks,"beforeBody",this,t))}
method getBody (line 230) | getBody(t,e){const{callbacks:n}=e,r=[];return(0,i.F)(t,(t=>{const e={b...
method getAfterBody (line 230) | getAfterBody(t,e){return li(di(e.callbacks,"afterBody",this,t))}
method getFooter (line 230) | getFooter(t,e){const{callbacks:n}=e,i=di(n,"beforeFooter",this,t),r=di...
method _createItems (line 230) | _createItems(t){const e=this._active,n=this.chart.data,r=[],o=[],s=[];...
method update (line 230) | update(t,e){const n=this.options.setContext(this.getContext()),i=this....
method drawCaret (line 230) | drawCaret(t,e,n,i){const r=this.getCaretPosition(t,n,i);e.lineTo(r.x1,...
method getCaretPosition (line 230) | getCaretPosition(t,e,n){const{xAlign:r,yAlign:o}=this,{caretSize:s,cor...
method drawTitle (line 230) | drawTitle(t,e,n){const r=this.title,o=r.length;let s,a,l;if(o){const c...
method _drawColorBox (line 230) | _drawColorBox(t,e,n,r,o){const s=this.labelColors[n],a=this.labelPoint...
method drawBody (line 230) | drawBody(t,e,n){const{body:r}=this,{bodySpacing:o,bodyAlign:s,displayC...
method drawFooter (line 230) | drawFooter(t,e,n){const r=this.footer,o=r.length;let s,a;if(o){const l...
method drawBackground (line 230) | drawBackground(t,e,n,r){const{xAlign:o,yAlign:s}=this,{x:a,y:l}=t,{wid...
method _updateAnimationTarget (line 230) | _updateAnimationTarget(t){const e=this.chart,n=this.$animations,i=n&&n...
method _willRender (line 230) | _willRender(){return!!this.opacity}
method draw (line 230) | draw(t){const e=this.options.setContext(this.getContext());let n=this....
method getActiveElements (line 230) | getActiveElements(){return this._active||[]}
method setActiveElements (line 230) | setActiveElements(t,e){const n=this._active,r=t.map((({datasetIndex:t,...
method handleEvent (line 230) | handleEvent(t,e,n=!0){if(e&&this._ignoreReplayEvents)return!1;this._ig...
method _getActiveElements (line 230) | _getActiveElements(t,e,n,i){const r=this.options;if("mouseout"===t.typ...
method _positionChanged (line 230) | _positionChanged(t,e){const{caretX:n,caretY:i,options:r}=this,o=Gn[r.p...
function pi (line 244) | function pi(t,e,n){const{property:i,start:r,end:o}=n,{between:s,normaliz...
function gi (line 244) | function gi(t,e,n){if(!n)return[t];const{property:i,start:r,end:o}=n,s=e...
function mi (line 244) | function mi(t,e){const n=[],i=t.segments;for(let r=0;re.length-1?null:th...
method getValueForPixel (line 230) | getValueForPixel(t){return Math.round(this._startValue+this.getDecimal...
method getBasePixel (line 230) | getBasePixel(){return this.bottom}
function vi (line 244) | function vi(t,e,n,i){return i&&i.setContext&&n?wi(t,e,n,i):e}
function wi (line 244) | function wi(t,e,n,i){const r=t._chart.getContext(),o=ki(t.options),{_dat...
function ki (line 244) | function ki(t){return{backgroundColor:t.backgroundColor,borderCapStyle:t...
method constructor (line 230) | constructor(t){super(t),this.start=void 0,this.end=void 0,this._startV...
method parse (line 230) | parse(t,e){return(0,i.k)(t)||("number"===typeof t||t instanceof Number...
method handleTickRangeOptions (line 230) | handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined...
method getTickLimit (line 230) | getTickLimit(){const t=this.options.ticks;let e,{maxTicksLimit:n,stepS...
method computeTickLimit (line 230) | computeTickLimit(){return Number.POSITIVE_INFINITY}
method buildTicks (line 230) | buildTicks(){const t=this.options,e=t.ticks;let n=this.getTickLimit();...
method configure (line 230) | configure(){const t=this.ticks;let e=this.min,n=this.max;if(super.conf...
method getLabelForValue (line 230) | getLabelForValue(t){return(0,i.o)(t,this.chart.options.locale,this.opt...
function _i (line 244) | function _i(t,e){if(!e)return!1;const n=[],i=function(t,e){return me(e)?...
method determineDataLimits (line 230) | determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=(...
method computeTickLimit (line 230) | computeTickLimit(){const t=this.isHorizontal(),e=t?this.width:this.hei...
method getPixelForValue (line 230) | getPixelForValue(t){return null===t?NaN:this.getPixelForDecimal((t-thi...
method getValueForPixel (line 230) | getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)...
function Mi (line 244) | function Mi(t,e,n){return t.options.clip?t[n]:e[n]}
function Si (line 244) | function Si(t,e){const{xScale:n,yScale:i}=t;return n&&i?{left:Mi(n,e,"le...
function Ti (line 244) | function Ti(t,e){const n=e._clip;if(n.disabled)return!1;const i=Si(e,t.c...
function u (line 244) | function u(t,e){return"function"===typeof t?t(e):t&&"object"===typeof t&...
function h (line 244) | function h(t,e){return u(e||t,t)}
function p (line 244) | function p(t){return(e={})=>{const n=e.width?String(e.width):t.defaultWi...
function w (line 244) | function w(t){return(e,n)=>{const i=n?.context?String(n.context):"standa...
function O (line 244) | function O(t){return(e,n={})=>{const i=n.width,r=i&&t.matchPatterns[i]||...
function P (line 244) | function P(t,e){for(const n in t)if(Object.prototype.hasOwnProperty.call...
method constructor (line 230) | constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cache...
method initialize (line 230) | initialize(){const t=this._cachedMeta;this.configure(),this.linkScales...
method updateIndex (line 230) | updateIndex(t){this.index!==t&&D(this._cachedMeta),this.index=t}
method linkScales (line 230) | linkScales(){const t=this.chart,e=this._cachedMeta,n=this.getDataset()...
method getDataset (line 230) | getDataset(){return this.chart.data.datasets[this.index]}
method getMeta (line 230) | getMeta(){return this.chart.getDatasetMeta(this.index)}
method getScaleForId (line 230) | getScaleForId(t){return this.chart.scales[t]}
method _getOtherScale (line 230) | _getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScal...
method reset (line 230) | reset(){this._update("reset")}
method _destroy (line 230) | _destroy(){const t=this._cachedMeta;this._data&&(0,i.u)(this._data,thi...
method _dataCheck (line 230) | _dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),n=this._d...
method addElements (line 230) | addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetE...
method buildOrUpdateElements (line 230) | buildOrUpdateElements(t){const e=this._cachedMeta,n=this.getDataset();...
method configure (line 230) | configure(){const t=this.chart.config,e=t.datasetScopeKeys(this._type)...
method parse (line 230) | parse(t,e){const{_cachedMeta:n,_data:r}=this,{iScale:o,_stacked:s}=n,a...
method parsePrimitiveData (line 230) | parsePrimitiveData(t,e,n,i){const{iScale:r,vScale:o}=t,s=r.axis,a=o.ax...
method parseArrayData (line 230) | parseArrayData(t,e,n,i){const{xScale:r,yScale:o}=t,s=new Array(i);let ...
method parseObjectData (line 230) | parseObjectData(t,e,n,r){const{xScale:o,yScale:s}=t,{xAxisKey:a="x",yA...
method getParsed (line 230) | getParsed(t){return this._cachedMeta._parsed[t]}
method getDataElement (line 230) | getDataElement(t){return this._cachedMeta.data[t]}
method applyStack (line 230) | applyStack(t,e,n){const i=this.chart,r=this._cachedMeta,o=e[t.axis],s=...
method updateRangeFromParsed (line 230) | updateRangeFromParsed(t,e,n,i){const r=n[e.axis];let o=null===r?NaN:r;...
method getMinMax (line 230) | getMinMax(t,e){const n=this._cachedMeta,r=n._parsed,o=n._sorted&&t===n...
method getAllParsedValues (line 230) | getAllParsedValues(t){const e=this._cachedMeta._parsed,n=[];let r,o,s;...
method getMaxOverflow (line 230) | getMaxOverflow(){return!1}
method getLabelAndValue (line 230) | getLabelAndValue(t){const e=this._cachedMeta,n=e.iScale,i=e.vScale,r=t...
method _update (line 230) | _update(t){const e=this._cachedMeta;this.update(t||"default"),e._clip=...
method update (line 230) | update(t){}
method draw (line 230) | draw(){const t=this._ctx,e=this.chart,n=this._cachedMeta,i=n.data||[],...
method getStyle (line 230) | getStyle(t,e){const n=e?"active":"default";return void 0===t&&this._ca...
method getContext (line 230) | getContext(t,e,n){const i=this.getDataset();let r;if(t>=0&&t{const i=e.match(t.matchPattern);if(!i)ret...
method generateLabels (line 230) | generateLabels(t){const e=t.data,{labels:{pointStyle:n,textAlign:i,col...
method onClick (line 230) | onClick(t,e,n){n.chart.toggleDataVisibility(e.index),n.chart.update()}
method constructor (line 230) | constructor(t,e){super(t,e),this.enableOptionSharing=!0,this.innerRadi...
method linkScales (line 230) | linkScales(){}
method parse (line 230) | parse(t,e){const n=this.getDataset().data,r=this._cachedMeta;if(!1===t...
method _getRotation (line 230) | _getRotation(){return(0,i.t)(this.options.rotation-90)}
method _getCircumference (line 230) | _getCircumference(){return(0,i.t)(this.options.circumference)}
method _getRotationExtents (line 230) | _getRotationExtents(){let t=i.T,e=-i.T;for(let n=0;n0&&!...
method getLabelAndValue (line 230) | getLabelAndValue(t){const e=this._cachedMeta,n=this.chart,r=n.data.lab...
method getMaxBorderWidth (line 230) | getMaxBorderWidth(t){let e=0;const n=this.chart;let i,r,o,s,a;if(!t)fo...
method getMaxOffset (line 230) | getMaxOffset(t){let e=0;for(let n=0,i=t.length;nu(e,t))}
method set (line 244) | set(t,e){return e.timestampIsSet?t:u(t,lt(t,this.context))}
class pt (line 244) | class pt{run(t,e,n,i){const r=this.parse(t,e,n,i);return r?{setter:new d...
method run (line 244) | run(t,e,n,i){const r=this.parse(t,e,n,i);return r?{setter:new dt(r.val...
method validate (line 244) | validate(t,e,n){return!0}
class gt (line 244) | class gt extends pt{priority=140;parse(t,e,n){switch(e){case"G":case"GG"...
method parse (line 244) | parse(t,e,n){switch(e){case"G":case"GG":case"GGG":return n.era(t,{widt...
method set (line 244) | set(t,e,n){return e.era=n,t.setFullYear(n,0,1),t.setHours(0,0,0,0),t}
function xt (line 244) | function xt(t,e){return t?{value:e(t.value),rest:t.rest}:t}
function yt (line 244) | function yt(t,e){const n=e.match(t);return n?{value:parseInt(n[0],10),re...
function vt (line 244) | function vt(t,e){const n=e.match(t);if(!n)return null;if("Z"===n[0])retu...
function wt (line 244) | function wt(t){return yt(mt.anyDigitsSigned,t)}
function kt (line 244) | function kt(t,e){switch(t){case 1:return yt(mt.singleDigit,e);case 2:ret...
function _t (line 244) | function _t(t,e){switch(t){case 1:return yt(mt.singleDigitSigned,e);case...
function Mt (line 244) | function Mt(t){switch(t){case"morning":return 4;case"evening":return 17;...
function St (line 244) | function St(t,e){const n=e>0,i=n?e:1-e;let r;if(i<=50)r=t||100;else{cons...
function Tt (line 244) | function Tt(t){return t%400===0||t%4===0&&t%100!==0}
class Dt (line 244) | class Dt extends pt{priority=130;incompatibleTokens=["Y","R","u","w","I"...
method parse (line 244) | parse(t,e,n){const i=t=>({year:t,isTwoDigitYear:"yy"===e});switch(e){c...
method validate (line 244) | validate(t,e){return e.isTwoDigitYear||e.year>0}
method set (line 244) | set(t,e,n){const i=t.getFullYear();if(n.isTwoDigitYear){const e=St(n.y...
function Ct (line 244) | function Ct(t,e){const n=st(),i=e?.weekStartsOn??e?.locale?.options?.wee...
function At (line 244) | function At(t,e){const n=h(t,e?.in),i=n.getFullYear(),r=st(),o=e?.firstW...
class Ot (line 244) | class Ot extends pt{priority=130;parse(t,e,n){const i=t=>({year:t,isTwoD...
method parse (line 244) | parse(t,e,n){const i=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){c...
method validate (line 244) | validate(t,e){return e.isTwoDigitYear||e.year>0}
method set (line 244) | set(t,e,n,i){const r=At(t,i);if(n.isTwoDigitYear){const e=St(n.year,r)...
function Pt (line 244) | function Pt(t,e){return Ct(t,{...e,weekStartsOn:1})}
method acquireContext (line 230) | acquireContext(t,e){const n=t&&t.getContext&&t.getContext("2d");return...
method releaseContext (line 230) | releaseContext(t){const e=t.canvas;if(!e[dt])return!1;const n=e[dt].in...
method addEventListener (line 230) | addEventListener(t,e,n){this.removeEventListener(t,e);const i=t.$proxi...
method removeEventListener (line 230) | removeEventListener(t,e){const n=t.$proxies||(t.$proxies={}),i=n[e];if...
method getDevicePixelRatio (line 230) | getDevicePixelRatio(){return window.devicePixelRatio}
method getMaximumSize (line 230) | getMaximumSize(t,e,n,r){return(0,i.G)(t,e,n,r)}
method isAttached (line 230) | isAttached(t){const e=t&&(0,i.I)(t);return!(!e||!e.isConnected)}
class Et (line 244) | class Et extends pt{priority=130;parse(t,e){return _t("R"===e?4:e.length...
method constructor (line 6) | constructor(t,e){this.dep=new A,this["__v_isRef"]=!0,this["__v_isShall...
method value (line 6) | get value(){return this.dep.track(),this._value}
method value (line 6) | set value(t){const e=this._rawValue,n=this["__v_isShallow"]||kt(t)||wt...
method parse (line 244) | parse(t,e){return _t("R"===e?4:e.length,t)}
method set (line 244) | set(t,e,n){const i=u(t,0);return i.setFullYear(n,0,4),i.setHours(0,0,0...
class Rt (line 244) | class Rt extends pt{priority=130;parse(t,e){return _t("u"===e?4:e.length...
method tooltipPosition (line 230) | tooltipPosition(t){const{x:e,y:n}=this.getProps(["x","y"],t);return{x:...
method hasValue (line 230) | hasValue(){return(0,i.x)(this.x)&&(0,i.x)(this.y)}
method getProps (line 230) | getProps(t,e){const n=this.$animations;if(!e||!n)return this;const i={...
method parse (line 244) | parse(t,e){return _t("u"===e?4:e.length,t)}
method set (line 244) | set(t,e,n){return t.setFullYear(n,0,1),t.setHours(0,0,0,0),t}
class It (line 244) | class It extends pt{priority=120;parse(t,e,n){switch(e){case"Q":case"QQ"...
method parse (line 244) | parse(t,e,n){switch(e){case"Q":case"QQ":return kt(e.length,t);case"Qo"...
method validate (line 244) | validate(t,e){return e>=1&&e<=4}
method set (line 244) | set(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}
class Lt (line 244) | class Lt extends pt{priority=120;parse(t,e,n){switch(e){case"q":case"qq"...
method parse (line 244) | parse(t,e,n){switch(e){case"q":case"qq":return kt(e.length,t);case"qo"...
method validate (line 244) | validate(t,e){return e>=1&&e<=4}
method set (line 244) | set(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}
class zt (line 244) | class zt extends pt{incompatibleTokens=["Y","R","q","Q","L","w","I","D",...
method constructor (line 6) | constructor(t,e,n){this.fn=t,this.setter=e,this._value=void 0,this.dep...
method notify (line 6) | notify(){if(this.flags|=16,!(8&this.flags||o===this))return f(this,!0)...
method value (line 6) | get value(){const t=this.dep.track();return y(this),t&&(t.version=this...
method value (line 6) | set value(t){this.setter&&this.setter(t)}
method parse (line 244) | parse(t,e,n){const i=t=>t-1;switch(e){case"M":return xt(yt(mt.month,t)...
method validate (line 244) | validate(t,e){return e>=0&&e<=11}
method set (line 244) | set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}
class Nt (line 244) | class Nt extends pt{priority=110;parse(t,e,n){const i=t=>t-1;switch(e){c...
method parse (line 244) | parse(t,e,n){const i=t=>t-1;switch(e){case"L":return xt(yt(mt.month,t)...
method validate (line 244) | validate(t,e){return e>=0&&e<=11}
method set (line 244) | set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}
function Ft (line 244) | function Ft(t,e){const n=st(),i=e?.firstWeekContainsDate??e?.locale?.opt...
function jt (line 244) | function jt(t,e){const n=h(t,e?.in),i=+Ct(n,e)-+Ft(n,e);return Math.roun...
function Ht (line 244) | function Ht(t,e,n){const i=h(t,n?.in),r=jt(i,n)-e;return i.setDate(i.get...
class Wt (line 244) | class Wt extends pt{priority=100;parse(t,e,n){switch(e){case"w":return y...
method parse (line 244) | parse(t,e,n){switch(e){case"w":return yt(mt.week,t);case"wo":return n....
method validate (line 244) | validate(t,e){return e>=1&&e<=53}
method set (line 244) | set(t,e,n,i){return Ct(Ht(t,n,i),i)}
function $t (line 244) | function $t(t,e){const n=h(t,e?.in),i=n.getFullYear(),r=u(n,0);r.setFull...
function Bt (line 244) | function Bt(t,e){const n=$t(t,e),i=u(e?.in||t,0);return i.setFullYear(n,...
function Yt (line 244) | function Yt(t,e){const n=h(t,e?.in),i=+Pt(n)-+Bt(n);return Math.round(i/...
function Vt (line 244) | function Vt(t,e,n){const i=h(t,n?.in),r=Yt(i,n)-e;return i.setDate(i.get...
class Ut (line 244) | class Ut extends pt{priority=100;parse(t,e,n){switch(e){case"I":return y...
method parse (line 244) | parse(t,e,n){switch(e){case"I":return yt(mt.week,t);case"Io":return n....
method validate (line 244) | validate(t,e){return e>=1&&e<=53}
method set (line 244) | set(t,e,n){return Pt(Vt(t,n))}
class Gt (line 244) | class Gt extends pt{priority=90;subPriority=1;parse(t,e,n){switch(e){cas...
method parse (line 244) | parse(t,e,n){switch(e){case"d":return yt(mt.date,t);case"do":return n....
method validate (line 244) | validate(t,e){const n=t.getFullYear(),i=Tt(n),r=t.getMonth();return i?...
method set (line 244) | set(t,e,n){return t.setDate(n),t.setHours(0,0,0,0),t}
method inRange (line 258) | inRange(t,e,n,i){return y({x:t,y:e},{rect:this.getProps(["x","y","x2",...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const e=this.options;e.display&&e.content&&(ee(t,this),t.save(...
method resolveElementProperties (line 258) | resolveElementProperties(t,e){const n=Zt(t,e);if(!n)return{};const{con...
class Zt (line 244) | class Zt extends pt{priority=90;subpriority=1;parse(t,e,n){switch(e){cas...
method parse (line 244) | parse(t,e,n){switch(e){case"D":case"DD":return yt(mt.dayOfYear,t);case...
method validate (line 244) | validate(t,e){const n=t.getFullYear(),i=Tt(n);return i?e>=1&&e<=366:e>...
method set (line 244) | set(t,e,n){return t.setMonth(0,n),t.setHours(0,0,0,0),t}
function Qt (line 244) | function Qt(t,e,n){const i=h(t,n?.in);return isNaN(e)?u(n?.in||t,NaN):e?...
function Jt (line 244) | function Jt(t,e,n){const i=st(),r=n?.weekStartsOn??n?.locale?.options?.w...
class Kt (line 244) | class Kt extends pt{priority=90;parse(t,e,n){switch(e){case"E":case"EE":...
method constructor (line 230) | constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void...
method init (line 230) | init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,...
method parse (line 230) | parse(t,e){return t}
method getUserBounds (line 230) | getUserBounds(){let{_userMin:t,_userMax:e,_suggestedMin:n,_suggestedMa...
method getMinMax (line 230) | getMinMax(t){let e,{min:n,max:r,minDefined:o,maxDefined:s}=this.getUse...
method getPadding (line 230) | getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,ri...
method getTicks (line 230) | getTicks(){return this.ticks}
method getLabels (line 230) | getLabels(){const t=this.chart.data;return this.options.labels||(this....
method getLabelItems (line 230) | getLabelItems(t=this.chart.chartArea){const e=this._labelItems||(this....
method beforeLayout (line 230) | beforeLayout(){this._cache={},this._dataLimitsCached=!1}
method beforeUpdate (line 230) | beforeUpdate(){(0,i.Q)(this.options.beforeUpdate,[this])}
method update (line 230) | update(t,e,n){const{beginAtZero:r,grace:o,ticks:s}=this.options,a=s.sa...
method configure (line 230) | configure(){let t,e,n=this.options.reverse;this.isHorizontal()?(t=this...
method afterUpdate (line 230) | afterUpdate(){(0,i.Q)(this.options.afterUpdate,[this])}
method beforeSetDimensions (line 230) | beforeSetDimensions(){(0,i.Q)(this.options.beforeSetDimensions,[this])}
method setDimensions (line 230) | setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.lef...
method afterSetDimensions (line 230) | afterSetDimensions(){(0,i.Q)(this.options.afterSetDimensions,[this])}
method _callHooks (line 230) | _callHooks(t){this.chart.notifyPlugins(t,this.getContext()),(0,i.Q)(th...
method beforeDataLimits (line 230) | beforeDataLimits(){this._callHooks("beforeDataLimits")}
method determineDataLimits (line 230) | determineDataLimits(){}
method afterDataLimits (line 230) | afterDataLimits(){this._callHooks("afterDataLimits")}
method beforeBuildTicks (line 230) | beforeBuildTicks(){this._callHooks("beforeBuildTicks")}
method buildTicks (line 230) | buildTicks(){return[]}
method afterBuildTicks (line 230) | afterBuildTicks(){this._callHooks("afterBuildTicks")}
method beforeTickToLabelConversion (line 230) | beforeTickToLabelConversion(){(0,i.Q)(this.options.beforeTickToLabelCo...
method generateTickLabels (line 230) | generateTickLabels(t){const e=this.options.ticks;let n,r,o;for(n=0,r=t...
method afterTickToLabelConversion (line 230) | afterTickToLabelConversion(){(0,i.Q)(this.options.afterTickToLabelConv...
method beforeCalculateLabelRotation (line 230) | beforeCalculateLabelRotation(){(0,i.Q)(this.options.beforeCalculateLab...
method calculateLabelRotation (line 230) | calculateLabelRotation(){const t=this.options,e=t.ticks,n=Bt(this.tick...
method afterCalculateLabelRotation (line 230) | afterCalculateLabelRotation(){(0,i.Q)(this.options.afterCalculateLabel...
method afterAutoSkip (line 230) | afterAutoSkip(){}
method beforeFit (line 230) | beforeFit(){(0,i.Q)(this.options.beforeFit,[this])}
method fit (line 230) | fit(){const t={width:0,height:0},{chart:e,options:{ticks:n,title:r,gri...
method _calculatePadding (line 230) | _calculatePadding(t,e,n,i){const{ticks:{align:r,padding:o},position:s}...
method _handleMargins (line 230) | _handleMargins(){this._margins&&(this._margins.left=Math.max(this.padd...
method afterFit (line 230) | afterFit(){(0,i.Q)(this.options.afterFit,[this])}
method isHorizontal (line 230) | isHorizontal(){const{axis:t,position:e}=this.options;return"top"===e||...
method isFullSize (line 230) | isFullSize(){return this.options.fullSize}
method _convertTicksToLabels (line 230) | _convertTicksToLabels(t){let e,n;for(this.beforeTickToLabelConversion(...
method _getLabelSizes (line 230) | _getLabelSizes(){let t=this._labelSizes;if(!t){const e=this.options.ti...
method _computeLabelSizes (line 230) | _computeLabelSizes(t,e,n){const{ctx:r,_longestTextCache:o}=this,s=[],a...
method getLabelForValue (line 230) | getLabelForValue(t){return t}
method getPixelForValue (line 230) | getPixelForValue(t,e){return NaN}
method getValueForPixel (line 230) | getValueForPixel(t){}
method getPixelForTick (line 230) | getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:th...
method getPixelForDecimal (line 230) | getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._start...
method getDecimalForPixel (line 230) | getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return...
method getBasePixel (line 230) | getBasePixel(){return this.getPixelForValue(this.getBaseValue())}
method getBaseValue (line 230) | getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}
method getContext (line 230) | getContext(t){const e=this.ticks||[];if(t>=0&&t=0&&e<=6}
method set (line 244) | set(t,e,n,i){return t=Jt(t,n,i),t.setHours(0,0,0,0),t}
class te (line 244) | class te extends pt{priority=90;parse(t,e,n,i){const r=t=>{const e=7*Mat...
method constructor (line 230) | constructor(t,e,n){this.type=t,this.scope=e,this.override=n,this.items...
method isForType (line 230) | isForType(t){return Object.prototype.isPrototypeOf.call(this.type.prot...
method register (line 230) | register(t){const e=Object.getPrototypeOf(t);let n;ie(e)&&(n=this.regi...
method get (line 230) | get(t){return this.items[t]}
method unregister (line 230) | unregister(t){const e=this.items,n=t.id,r=this.scope;n in e&&delete e[...
method parse (line 244) | parse(t,e,n,i){const r=t=>{const e=7*Math.floor((t-1)/7);return(t+i.we...
method validate (line 244) | validate(t,e){return e>=0&&e<=6}
method set (line 244) | set(t,e,n,i){return t=Jt(t,n,i),t.setHours(0,0,0,0),t}
class ee (line 244) | class ee extends pt{priority=90;parse(t,e,n,i){const r=t=>{const e=7*Mat...
method parse (line 244) | parse(t,e,n,i){const r=t=>{const e=7*Math.floor((t-1)/7);return(t+i.we...
method validate (line 244) | validate(t,e){return e>=0&&e<=6}
method set (line 244) | set(t,e,n,i){return t=Jt(t,n,i),t.setHours(0,0,0,0),t}
function ne (line 244) | function ne(t,e){const n=h(t,e?.in).getDay();return 0===n?7:n}
method inRange (line 258) | inRange(t,e,n,i){return y({x:t,y:e},{rect:this.getProps(["x","y","x2",...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const e=this.options,n=!(0,r.h)(this._visible)||this._visible;...
method resolveElementProperties (line 258) | resolveElementProperties(t,e){let n;if(I(e))n=mt(t,e);else{const{cente...
function ie (line 244) | function ie(t,e,n){const i=h(t,n?.in),r=ne(i,n),o=e-r;return Qt(i,o,n)}
class re (line 244) | class re extends pt{priority=90;parse(t,e,n){const i=t=>0===t?7:t;switch...
method constructor (line 230) | constructor(){this.controllers=new te(P,"datasets",!0),this.elements=n...
method add (line 230) | add(...t){this._each("register",t)}
method remove (line 230) | remove(...t){this._each("unregister",t)}
method addControllers (line 230) | addControllers(...t){this._each("register",t,this.controllers)}
method addElements (line 230) | addElements(...t){this._each("register",t,this.elements)}
method addPlugins (line 230) | addPlugins(...t){this._each("register",t,this.plugins)}
method addScales (line 230) | addScales(...t){this._each("register",t,this.scales)}
method getController (line 230) | getController(t){return this._get(t,this.controllers,"controller")}
method getElement (line 230) | getElement(t){return this._get(t,this.elements,"element")}
method getPlugin (line 230) | getPlugin(t){return this._get(t,this.plugins,"plugin")}
method getScale (line 230) | getScale(t){return this._get(t,this.scales,"scale")}
method removeControllers (line 230) | removeControllers(...t){this._each("unregister",t,this.controllers)}
method removeElements (line 230) | removeElements(...t){this._each("unregister",t,this.elements)}
method removePlugins (line 230) | removePlugins(...t){this._each("unregister",t,this.plugins)}
method removeScales (line 230) | removeScales(...t){this._each("unregister",t,this.scales)}
method _each (line 230) | _each(t,e,n){[...e].forEach((e=>{const r=n||this._getRegistryForType(e...
method _exec (line 230) | _exec(t,e,n){const r=(0,i.a5)(t);(0,i.Q)(n["before"+r],[],n),e[t](n),(...
method _getRegistryForType (line 230) | _getRegistryForType(t){for(let e=0;e0===t?7:t;switch(e){case"i":case"ii":return kt...
method validate (line 244) | validate(t,e){return e>=1&&e<=7}
method set (line 244) | set(t,e,n){return t=ie(t,n),t.setHours(0,0,0,0),t}
class oe (line 244) | class oe extends pt{priority=80;parse(t,e,n){switch(e){case"a":case"aa":...
method parse (line 244) | parse(t,e,n){switch(e){case"a":case"aa":case"aaa":return n.dayPeriod(t...
method set (line 244) | set(t,e,n){return t.setHours(Mt(n),0,0,0),t}
class se (line 244) | class se extends pt{priority=80;parse(t,e,n){switch(e){case"b":case"bb":...
method constructor (line 230) | constructor(){this._init=void 0}
method notify (line 230) | notify(t,e,n,i){if("beforeInit"===e&&(this._init=this._createDescripto...
method _notify (line 230) | _notify(t,e,n,r){r=r||{};for(const o of t){const t=o.plugin,s=t[n],a=[...
method invalidate (line 230) | invalidate(){(0,i.k)(this._cache)||(this._oldCache=this._cache,this._c...
method _descriptors (line 230) | _descriptors(t){if(this._cache)return this._cache;const e=this._cache=...
method _createDescriptors (line 230) | _createDescriptors(t,e){const n=t&&t.config,r=(0,i.v)(n.options&&n.opt...
method _notifyStateChanges (line 230) | _notifyStateChanges(t){const e=this._oldCache||[],n=this._cache,i=(t,e...
method parse (line 244) | parse(t,e,n){switch(e){case"b":case"bb":case"bbb":return n.dayPeriod(t...
method set (line 244) | set(t,e,n){return t.setHours(Mt(n),0,0,0),t}
class ae (line 244) | class ae extends pt{priority=80;parse(t,e,n){switch(e){case"B":case"BB":...
method parse (line 244) | parse(t,e,n){switch(e){case"B":case"BB":case"BBB":return n.dayPeriod(t...
method set (line 244) | set(t,e,n){return t.setHours(Mt(n),0,0,0),t}
class le (line 244) | class le extends pt{priority=70;parse(t,e,n){switch(e){case"h":return yt...
method parse (line 244) | parse(t,e,n){switch(e){case"h":return yt(mt.hour12h,t);case"ho":return...
method validate (line 244) | validate(t,e){return e>=1&&e<=12}
method set (line 244) | set(t,e,n){const i=t.getHours()>=12;return i&&n<12?t.setHours(n+12,0,0...
class ce (line 244) | class ce extends pt{priority=70;parse(t,e,n){switch(e){case"H":return yt...
method parse (line 244) | parse(t,e,n){switch(e){case"H":return yt(mt.hour23h,t);case"Ho":return...
method validate (line 244) | validate(t,e){return e>=0&&e<=23}
method set (line 244) | set(t,e,n){return t.setHours(n,0,0,0),t}
class ue (line 244) | class ue extends pt{priority=70;parse(t,e,n){switch(e){case"K":return yt...
method parse (line 244) | parse(t,e,n){switch(e){case"K":return yt(mt.hour11h,t);case"Ko":return...
method validate (line 244) | validate(t,e){return e>=0&&e<=11}
method set (line 244) | set(t,e,n){const i=t.getHours()>=12;return i&&n<12?t.setHours(n+12,0,0...
class he (line 244) | class he extends pt{priority=70;parse(t,e,n){switch(e){case"k":return yt...
method parse (line 244) | parse(t,e,n){switch(e){case"k":return yt(mt.hour24h,t);case"ko":return...
method validate (line 244) | validate(t,e){return e>=1&&e<=24}
method set (line 244) | set(t,e,n){const i=n<=24?n%24:n;return t.setHours(i,0,0,0),t}
class de (line 244) | class de extends pt{priority=60;parse(t,e,n){switch(e){case"m":return yt...
method parse (line 244) | parse(t,e,n){switch(e){case"m":return yt(mt.minute,t);case"mo":return ...
method validate (line 244) | validate(t,e){return e>=0&&e<=59}
method set (line 244) | set(t,e,n){return t.setMinutes(n,0,0),t}
class fe (line 244) | class fe extends pt{priority=50;parse(t,e,n){switch(e){case"s":return yt...
method parse (line 244) | parse(t,e,n){switch(e){case"s":return yt(mt.second,t);case"so":return ...
method validate (line 244) | validate(t,e){return e>=0&&e<=59}
method set (line 244) | set(t,e,n){return t.setSeconds(n,0),t}
method inRange (line 258) | inRange(t,e,n,i){const r=(this.options.borderWidth+this.options.hitTol...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const{x:e,y:n,x2:i,y2:r,cp:o,options:s}=this;if(t.save(),!V(t,...
method label (line 258) | get label(){return this.elements&&this.elements[0]}
method resolveElementProperties (line 258) | resolveElementProperties(t,e){const n=yt(t,e),{x:i,y:o,x2:s,y2:a}=n,l=...
class pe (line 244) | class pe extends pt{priority=30;parse(t,e){const n=t=>Math.trunc(t*Math....
method parse (line 244) | parse(t,e){const n=t=>Math.trunc(t*Math.pow(10,3-e.length));return xt(...
method set (line 244) | set(t,e,n){return t.setMilliseconds(n),t}
function ge (line 244) | function ge(t){const e=h(t),n=new Date(Date.UTC(e.getFullYear(),e.getMon...
class me (line 244) | class me extends pt{priority=10;parse(t,e){switch(e){case"X":return vt(b...
method parse (line 244) | parse(t,e){switch(e){case"X":return vt(bt.basicOptionalMinutes,t);case...
method set (line 244) | set(t,e,n){return e.timestampIsSet?t:u(t,t.getTime()-ge(t)-n)}
class be (line 244) | class be extends pt{priority=10;parse(t,e){switch(e){case"x":return vt(b...
method parse (line 244) | parse(t,e){switch(e){case"x":return vt(bt.basicOptionalMinutes,t);case...
method set (line 244) | set(t,e,n){return e.timestampIsSet?t:u(t,t.getTime()-ge(t)-n)}
class xe (line 244) | class xe extends pt{priority=40;parse(t){return wt(t)}set(t,e,n){return[...
method parse (line 244) | parse(t){return wt(t)}
method set (line 244) | set(t,e,n){return[u(t,1e3*n),{timestampIsSet:!0}]}
class ye (line 244) | class ye extends pt{priority=20;parse(t){return wt(t)}set(t,e,n){return[...
method parse (line 244) | parse(t){return wt(t)}
method set (line 244) | set(t,e,n){return[u(t,n),{timestampIsSet:!0}]}
function De (line 244) | function De(t,e,n,i){const r=()=>u(i?.in||n,NaN),o=at(),s=i?.locale??o.l...
method constructor (line 230) | constructor(t){this._config=ke(t),this._scopeCache=new Map,this._resol...
method platform (line 230) | get platform(){return this._config.platform}
method type (line 230) | get type(){return this._config.type}
method type (line 230) | set type(t){this._config.type=t}
method data (line 230) | get data(){return this._config.data}
method data (line 230) | set data(t){this._config.data=we(t)}
method options (line 230) | get options(){return this._config.options}
method options (line 230) | set options(t){this._config.options=t}
method plugins (line 230) | get plugins(){return this._config.plugins}
method update (line 230) | update(){const t=this._config;this.clearCache(),ve(t)}
method clearCache (line 230) | clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}
method datasetScopeKeys (line 230) | datasetScopeKeys(t){return Se(t,(()=>[[`datasets.${t}`,""]]))}
method datasetAnimationScopeKeys (line 230) | datasetAnimationScopeKeys(t,e){return Se(`${t}.transition.${e}`,(()=>[...
method datasetElementScopeKeys (line 230) | datasetElementScopeKeys(t,e){return Se(`${t}-${e}`,(()=>[[`datasets.${...
method pluginScopeKeys (line 230) | pluginScopeKeys(t){const e=t.id,n=this.type;return Se(`${n}-plugin-${e...
method _cachedScopes (line 230) | _cachedScopes(t,e){const n=this._scopeCache;let i=n.get(t);return i&&!...
method getOptionScopes (line 230) | getOptionScopes(t,e,n){const{options:r,type:o}=this,s=this._cachedScop...
method chartOptionScopes (line 230) | chartOptionScopes(){const{options:t,type:e}=this;return[t,i.a3[e]||{},...
method resolveNamedOptions (line 230) | resolveNamedOptions(t,e,n,r=[""]){const o={$shared:!0},{resolver:s,sub...
method createResolver (line 230) | createResolver(t,e,n=[""],r){const{resolver:o}=Ce(this._resolverCache,...
function Ce (line 244) | function Ce(t){return t.match(_e)[1].replace(Me,"'")}
function Ae (line 244) | function Ae(t,e){const n=()=>u(e?.in,NaN),i=e?.additionalDigits??2,r=Ie(...
function Ie (line 244) | function Ie(t){const e={},n=t.split(Oe.dateTimeDelimiter);let i;if(n.len...
method constructor (line 244) | constructor(t,e){this.animation=void 0,this.backgroundColor="rgba(0,0,...
method set (line 244) | set(t,e){return Re(this,t,e)}
method get (line 244) | get(t){return Ee(this,t)}
method describe (line 244) | describe(t,e){return Re(Pe,t,e)}
method override (line 244) | override(t,e){return Re(Oe,t,e)}
method route (line 244) | route(t,e,n,i){const r=Ee(this,t),o=Ee(this,n),s="_"+e;Object.definePr...
method apply (line 244) | apply(t){t.forEach((t=>t(this)))}
function Le (line 244) | function Le(t,e){const n=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+e)+"})|(\\...
method inRange (line 258) | inRange(t,e,n,i){const o=this.options.rotation,s=(this.options.borderW...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const{width:e,height:n,centerX:i,centerY:o,options:s}=this;t.s...
method label (line 258) | get label(){return this.elements&&this.elements[0]}
method resolveElementProperties (line 258) | resolveElementProperties(t,e){return vt(t,e)}
function ze (line 244) | function ze(t,e){if(null===e)return new Date(NaN);const n=t.match(Pe);if...
function Ne (line 244) | function Ne(t){return t?parseInt(t):1}
method inRange (line 258) | inRange(t,e,n,i){const{x:r,y:o,x2:s,y2:a,width:l}=this.getProps(["x","...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const e=this.options,n=e.borderWidth;if(e.radius<.1)return;t.s...
method resolveElementProperties (line 258) | resolveElementProperties(t,e){const n=xt(t,e);return n.initProperties=...
function Fe (line 244) | function Fe(t){const e=t.match(Ee);if(!e)return NaN;const n=je(e[1]),i=j...
method inRange (line 258) | inRange(t,e,n,i){if("x"!==n&&"y"!==n)return this.options.radius>=.1&&t...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const{elements:e,options:n}=this;t.save(),t.beginPath(),t.fill...
method resolveElementProperties (line 258) | resolveElementProperties(t,e){const n=xt(t,e),{sides:i,rotation:o}=e,s...
function je (line 244) | function je(t){return t&&parseFloat(t.replace(",","."))||0}
function He (line 244) | function He(t){if("Z"===t)return 0;const e=t.match(Re);if(!e)return 0;co...
function We (line 244) | function We(t,e,n){const i=new Date(0);i.setUTCFullYear(t,0,4);const r=i...
function Be (line 244) | function Be(t){return t%400===0||t%4===0&&t%100!==0}
function Ye (line 244) | function Ye(t,e,n){return e>=0&&e<=11&&n>=1&&n<=($e[e]||(Be(t)?29:28))}
function Ve (line 244) | function Ve(t,e){return e>=1&&e<=(Be(t)?366:365)}
function Ue (line 244) | function Ue(t,e,n){return e>=1&&e<=53&&n>=0&&n<=6}
function qe (line 244) | function qe(t,e,n){return 24===t?0===e&&0===n:n>=0&&n<60&&e>=0&&e<60&&t>...
function Xe (line 244) | function Xe(t,e){return e>=0&&e<=59}
function Ge (line 244) | function Ge(t){return t instanceof Date||"object"===typeof t&&"[object D...
function Ze (line 244) | function Ze(t){return!(!Ge(t)&&"number"!==typeof t||isNaN(+h(t)))}
function Qe (line 244) | function Qe(t,...e){const n=u.bind(null,t||e.find((t=>"object"===typeof ...
function Je (line 244) | function Je(t,e){const n=h(t,e?.in);return n.setHours(0,0,0,0),n}
function Ke (line 244) | function Ke(t,e,n){const[i,r]=Qe(n?.in,t,e),s=Je(i),a=Je(r),l=+s-ge(s),c...
function tn (line 244) | function tn(t,e){const n=h(t,e?.in);return n.setFullYear(n.getFullYear()...
function en (line 244) | function en(t,e){const n=h(t,e?.in),i=Ke(n,tn(n)),r=i+1;return r}
function nn (line 244) | function nn(t,e){const n=t<0?"-":"",i=Math.abs(t).toString().padStart(e,...
method constructor (line 230) | constructor(t){super(),this.animated=!0,this.options=void 0,this._char...
method updateControlPoints (line 230) | updateControlPoints(t,e){const n=this.options;if((n.tension||"monotone...
method points (line 230) | set points(t){this._points=t,delete this._segments,delete this._path,t...
method points (line 230) | get points(){return this._points}
method segments (line 230) | get segments(){return this._segments||(this._segments=(0,i.ao)(this,th...
method first (line 230) | first(){const t=this.segments,e=this.points;return t.length&&e[t[0].st...
method last (line 230) | last(){const t=this.segments,e=this.points,n=t.length;return n&&e[t[n-...
method interpolate (line 230) | interpolate(t,e){const n=this.options,r=t[e],o=this.points,s=(0,i.ap)(...
method pathSegment (line 230) | pathSegment(t,e,n){const i=Ze(this);return i(t,this,e,n)}
method path (line 230) | path(t,e,n){const i=this.segments,r=Ze(this);let o=this._loop;e=e||0,n...
method draw (line 230) | draw(t,e,n,i){const r=this.options||{},o=this.points||[];o.length&&r.b...
method y (line 244) | y(t,e){const n=t.getFullYear(),i=n>0?n:1-n;return nn("yy"===e?i%100:i,e....
method M (line 244) | M(t,e){const n=t.getMonth();return"M"===e?String(n+1):nn(n+1,2)}
method d (line 244) | d(t,e){return nn(t.getDate(),e.length)}
method a (line 244) | a(t,e){const n=t.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":r...
method h (line 244) | h(t,e){return nn(t.getHours()%12||12,e.length)}
method H (line 244) | H(t,e){return nn(t.getHours(),e.length)}
method m (line 244) | m(t,e){return nn(t.getMinutes(),e.length)}
method s (line 244) | s(t,e){return nn(t.getSeconds(),e.length)}
method constructor (line 6) | constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effe...
method active (line 6) | get active(){return this._active}
method pause (line 6) | pause(){if(this._active){let t,e;if(this._isPaused=!0,this.scopes)for(...
method resume (line 6) | resume(){if(this._active&&this._isPaused){let t,e;if(this._isPaused=!1...
method run (line 6) | run(t){if(this._active){const e=r;try{return r=this,t()}finally{r=e}}e...
method on (line 6) | on(){1===++this._on&&(this.prevScope=r,r=this)}
method off (line 6) | off(){this._on>0&&0===--this._on&&(r=this.prevScope,this.prevScope=voi...
method stop (line 6) | stop(t){if(this._active){let e,n;for(this._active=!1,e=0,n=this.effect...
method S (line 244) | S(t,e){const n=e.length,i=t.getMilliseconds(),r=Math.trunc(i*Math.pow(10...
function an (line 244) | function an(t,e=""){const n=t>0?"-":"+",i=Math.abs(t),r=Math.trunc(i/60)...
function ln (line 244) | function ln(t,e){if(t%60===0){const e=t>0?"-":"+";return e+nn(Math.abs(t...
function cn (line 244) | function cn(t,e=""){const n=t>0?"-":"+",i=Math.abs(t),r=nn(Math.trunc(i/...
function gn (line 244) | function gn(t,e,n){const i=st(),r=n?.locale??i.locale??q,o=n?.firstWeekC...
function mn (line 244) | function mn(t){const e=t.match(dn);return e?e[1].replace(fn,"'"):t}
function bn (line 244) | function bn(t,e,n){return u(n?.in||t,+h(t)+e)}
function xn (line 244) | function xn(t,e,n){return bn(t,1e3*e,n)}
function yn (line 244) | function yn(t,e,n){const i=h(t,n?.in);return i.setTime(i.getTime()+e*s),i}
function vn (line 244) | function vn(t,e,n){return bn(t,e*a,n)}
function wn (line 244) | function wn(t,e,n){return Qt(t,7*e,n)}
function kn (line 244) | function kn(t,e,n){const i=h(t,n?.in);if(isNaN(e))return u(n?.in||t,NaN)...
function _n (line 244) | function _n(t,e,n){return kn(t,3*e,n)}
method constructor (line 230) | constructor(t){this.x=t.x,this.y=t.y,this.radius=t.radius}
method pathSegment (line 230) | pathSegment(t,e,n){const{x:r,y:o,radius:s}=this;return e=e||{start:0,e...
method interpolate (line 230) | interpolate(t){const{x:e,y:n,radius:i}=this,r=t.angle;return{x:e+Math....
function Mn (line 244) | function Mn(t,e,n){return kn(t,12*e,n)}
function Sn (line 244) | function Sn(t,e){return+h(t)-+h(e)}
function Tn (line 244) | function Tn(t){return e=>{const n=t?Math[t]:Math.trunc,i=n(e);return 0==...
function Dn (line 244) | function Dn(t,e,n){const i=Sn(t,e)/1e3;return Tn(n?.roundingMethod)(i)}
function Cn (line 244) | function Cn(t,e,n){const i=Sn(t,e)/s;return Tn(n?.roundingMethod)(i)}
function An (line 244) | function An(t,e,n){const[i,r]=Qe(n?.in,t,e),o=(+i-+r)/a;return Tn(n?.rou...
function On (line 244) | function On(t,e,n){const[i,r]=Qe(n?.in,t,e),o=Pn(i,r),s=Math.abs(Ke(i,r)...
function Pn (line 244) | function Pn(t,e){const n=t.getFullYear()-e.getFullYear()||t.getMonth()-e...
function En (line 244) | function En(t,e,n){const i=On(t,e,n)/7;return Tn(n?.roundingMethod)(i)}
function Rn (line 244) | function Rn(t,e){const n=+h(t)-+h(e);return n<0?-1:n>0?1:n}
function In (line 244) | function In(t,e,n){const[i,r]=Qe(n?.in,t,e),o=i.getFullYear()-r.getFullY...
function Ln (line 244) | function Ln(t,e){const n=h(t,e?.in);return n.setHours(23,59,59,999),n}
function zn (line 244) | function zn(t,e){const n=h(t,e?.in),i=n.getMonth();return n.setFullYear(...
function Nn (line 244) | function Nn(t,e){const n=h(t,e?.in);return+Ln(n,e)===+zn(n,e)}
function Fn (line 244) | function Fn(t,e,n){const[i,r,o]=Qe(n?.in,t,t,e),s=Rn(r,o),a=Math.abs(In(...
function jn (line 244) | function jn(t,e,n){const i=Fn(t,e,n)/3;return Tn(n?.roundingMethod)(i)}
method constructor (line 230) | constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hov...
method update (line 230) | update(t,e,n){this.maxWidth=t,this.maxHeight=e,this._margins=n,this.se...
method setDimensions (line 230) | setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.lef...
method buildLabels (line 230) | buildLabels(){const t=this.options.labels||{};let e=(0,i.Q)(t.generate...
method fit (line 230) | fit(){const{options:t,ctx:e}=this;if(!t.display)return void(this.width...
method _fitRows (line 230) | _fitRows(t,e,n,i){const{ctx:r,maxWidth:o,options:{labels:{padding:s}}}...
method _fitCols (line 230) | _fitCols(t,e,n,i){const{ctx:r,maxHeight:o,options:{labels:{padding:s}}...
method adjustHitBoxes (line 230) | adjustHitBoxes(){if(!this.options.display)return;const t=this._compute...
method isHorizontal (line 230) | isHorizontal(){return"top"===this.options.position||"bottom"===this.op...
method draw (line 230) | draw(){if(this.options.display){const t=this.ctx;(0,i.Y)(t,this),this....
method _draw (line 230) | _draw(){const{options:t,columnSizes:e,lineWidths:n,ctx:r}=this,{align:...
method drawTitle (line 230) | drawTitle(){const t=this.options,e=t.title,n=(0,i.a0)(e.font),r=(0,i.E...
method _computeTitleHeight (line 230) | _computeTitleHeight(){const t=this.options.title,e=(0,i.a0)(t.font),n=...
method _getLegendItemAt (line 230) | _getLegendItemAt(t,e){let n,r,o;if((0,i.ak)(t,this.left,this.right)&&(...
method handleEvent (line 230) | handleEvent(t){const e=this.options;if(!Yn(t.type,e))return;const n=th...
function Hn (line 244) | function Hn(t,e,n){const[i,r]=Qe(n?.in,t,e);return i.getFullYear()-r.get...
function Wn (line 244) | function Wn(t,e,n){const[i,r]=Qe(n?.in,t,e),o=Rn(i,r),s=Math.abs(Hn(i,r)...
function $n (line 244) | function $n(t,e){const n=h(t,e?.in);return n.setMilliseconds(0),n}
function Bn (line 244) | function Bn(t,e){const n=h(t,e?.in);return n.setSeconds(0,0),n}
function Yn (line 244) | function Yn(t,e){const n=h(t,e?.in);return n.setMinutes(0,0,0),n}
function Vn (line 244) | function Vn(t,e){const n=h(t,e?.in);return n.setDate(1),n.setHours(0,0,0...
function Un (line 244) | function Un(t,e){const n=h(t,e?.in),i=n.getMonth(),r=i-i%3;return n.setM...
method constructor (line 230) | constructor(t){super(),this.chart=t.chart,this.options=t.options,this....
method update (line 230) | update(t,e){const n=this.options;if(this.left=0,this.top=0,!n.display)...
method isHorizontal (line 230) | isHorizontal(){const t=this.options.position;return"top"===t||"bottom"...
method _drawArgs (line 230) | _drawArgs(t){const{top:e,left:n,bottom:r,right:o,options:s}=this,a=s.a...
method draw (line 230) | draw(){const t=this.ctx,e=this.options;if(!e.display)return;const n=(0...
function qn (line 244) | function qn(t,e){const n=h(t,e?.in);return n.setMilliseconds(999),n}
function Xn (line 244) | function Xn(t,e){const n=h(t,e?.in);return n.setSeconds(59,999),n}
function Gn (line 244) | function Gn(t,e){const n=h(t,e?.in);return n.setMinutes(59,59,999),n}
function Zn (line 244) | function Zn(t,e){const n=st(),i=e?.weekStartsOn??e?.locale?.options?.wee...
function Qn (line 244) | function Qn(t,e){const n=h(t,e?.in),i=n.getMonth(),r=i-i%3+3;return n.se...
function Jn (line 244) | function Jn(t,e){const n=h(t,e?.in),i=n.getFullYear();return n.setFullYe...
method point (line 258) | point(t,e){return c(t,e,{intersect:!0})}
method nearest (line 258) | nearest(t,e,n){return u(t,e,n)}
method x (line 258) | x(t,e,n){return c(t,e,{intersect:n.intersect,axis:"x"})}
method y (line 258) | y(t,e,n){return c(t,e,{intersect:n.intersect,axis:"y"})}
function s (line 258) | function s(t,e,n){const i=o.modes[n.mode]||o.modes.nearest;return i(t,e,n)}
method constructor (line 6) | constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effe...
method active (line 6) | get active(){return this._active}
method pause (line 6) | pause(){if(this._active){let t,e;if(this._isPaused=!0,this.scopes)for(...
method resume (line 6) | resume(){if(this._active&&this._isPaused){let t,e;if(this._isPaused=!1...
method run (line 6) | run(t){if(this._active){const e=r;try{return r=this,t()}finally{r=e}}e...
method on (line 6) | on(){1===++this._on&&(this.prevScope=r,r=this)}
method off (line 6) | off(){this._on>0&&0===--this._on&&(r=this.prevScope,this.prevScope=voi...
method stop (line 6) | stop(t){if(this._active){let e,n;for(this._active=!1,e=0,n=this.effect...
function a (line 258) | function a(t,e,n){return"x"!==n&&"y"!==n?t.inRange(e.x,e.y,"x",!0)||t.in...
function l (line 258) | function l(t,e,n){return"x"===n?{x:t.x,y:e.y}:"y"===n?{x:e.x,y:t.y}:e}
method constructor (line 230) | constructor(t,e,n,r){const o=e[n];r=(0,i.a)([t.to,r,o,t.from]);const s...
method active (line 230) | active(){return this._active}
method update (line 230) | update(t,e,n){if(this._active){this._notify(!1);const r=this._target[t...
method cancel (line 230) | cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._no...
method tick (line 230) | tick(t){const e=t-this._start,n=this._duration,i=this._prop,r=this._fr...
method wait (line 230) | wait(){const t=this._promises||(this._promises=[]);return new Promise(...
method _notify (line 230) | _notify(t){const e=t?"res":"rej",n=this._promises||[];for(let i=0;in.intersect?t.inRange(e.x,e.y):a(t...
method constructor (line 6) | constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.fl...
method pause (line 6) | pause(){this.flags|=64}
method resume (line 6) | resume(){64&this.flags&&(this.flags&=-65,l.has(this)&&(l.delete(this),...
method notify (line 6) | notify(){2&this.flags&&!(32&this.flags)||8&this.flags||f(this)}
method run (line 6) | run(){if(!(1&this.flags))return this.fn();this.flags|=2,T(this),m(this...
method stop (line 6) | stop(){if(1&this.flags){for(let t=this.deps;t;t=t.nextDep)v(t);this.de...
method trigger (line 6) | trigger(){64&this.flags?l.add(this):this.scheduler?this.scheduler():th...
method runIfDirty (line 6) | runIfDirty(){x(this)&&this.run()}
method dirty (line 6) | get dirty(){return x(this)}
method constructor (line 230) | constructor(t,e){this._chart=t,this._properties=new Map,this.configure...
method configure (line 230) | configure(t){if(!(0,i.i)(t))return;const e=Object.keys(i.d.animation),...
method _animateOptions (line 230) | _animateOptions(t,e){const n=e.options,i=h(t,n);if(!i)return[];const r...
method _createAnimations (line 230) | _createAnimations(t,e){const n=this._properties,i=[],r=t.$animations||...
method update (line 230) | update(t,e){if(0===this._properties.size)return void Object.assign(t,e...
function u (line 258) | function u(t,e,n){let i=Number.POSITIVE_INFINITY;return c(t,e,n).reduce(...
function h (line 258) | function h(t,e,n){const i=Math.cos(n),r=Math.sin(n),o=e.x,s=e.y;return{x...
function m (line 258) | function m(t,e,n){for(const i of Object.keys(t))t[i]=p(t[i],e,n);return t}
function b (line 258) | function b(t,e,n,i){return!(!t||!e||n<=0)&&Math.pow(t.x-e.x,2)+Math.pow(...
function x (line 258) | function x(t,{x:e,y:n,x2:i,y2:r},o,{borderWidth:s,hitTolerance:a}){const...
function y (line 258) | function y(t,{rect:e,center:n},i,{rotation:o,borderWidth:s,hitTolerance:...
function v (line 258) | function v(t,e){const{centerX:n,centerY:i}=t.getProps(["centerX","center...
function w (line 258) | function w(t,e,n,i=!0){const r=n.split(".");let o=0;for(const s of e.spl...
function D (line 258) | function D(t,e){return"start"===e?0:"end"===e?t:k(e)?M(e)*t:t/2}
function C (line 258) | function C(t,e,n=!0){return"number"===typeof e?e:k(e)?(n?M(e):_(e))*t:t}
method constructor (line 6) | constructor(t,e){this.sub=t,this.dep=e,this.version=e.version,this.nex...
function A (line 258) | function A(t,e){const{x:n,width:i}=t,r=e.textAlign;return"center"===r?n+...
method constructor (line 6) | constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,t...
method track (line 6) | track(t){if(!o||!k||o===this.computed)return;let e=this.activeLink;if(...
method trigger (line 6) | trigger(t){this.version++,D++,this.notify(t)}
method notify (line 6) | notify(t){p();try{0;for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&...
function O (line 258) | function O(t,e,{borderWidth:n,position:i,xAdjust:o,yAdjust:s},a){const l...
function P (line 258) | function P(t,e="center"){return(0,r.i)(t)?{x:(0,r.v)(t.x,e),y:(0,r.v)(t....
method constructor (line 230) | constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cache...
method initialize (line 230) | initialize(){const t=this._cachedMeta;this.configure(),this.linkScales...
method updateIndex (line 230) | updateIndex(t){this.index!==t&&D(this._cachedMeta),this.index=t}
method linkScales (line 230) | linkScales(){const t=this.chart,e=this._cachedMeta,n=this.getDataset()...
method getDataset (line 230) | getDataset(){return this.chart.data.datasets[this.index]}
method getMeta (line 230) | getMeta(){return this.chart.getDatasetMeta(this.index)}
method getScaleForId (line 230) | getScaleForId(t){return this.chart.scales[t]}
method _getOtherScale (line 230) | _getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScal...
method reset (line 230) | reset(){this._update("reset")}
method _destroy (line 230) | _destroy(){const t=this._cachedMeta;this._data&&(0,i.u)(this._data,thi...
method _dataCheck (line 230) | _dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),n=this._d...
method addElements (line 230) | addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetE...
method buildOrUpdateElements (line 230) | buildOrUpdateElements(t){const e=this._cachedMeta,n=this.getDataset();...
method configure (line 230) | configure(){const t=this.chart.config,e=t.datasetScopeKeys(this._type)...
method parse (line 230) | parse(t,e){const{_cachedMeta:n,_data:r}=this,{iScale:o,_stacked:s}=n,a...
method parsePrimitiveData (line 230) | parsePrimitiveData(t,e,n,i){const{iScale:r,vScale:o}=t,s=r.axis,a=o.ax...
method parseArrayData (line 230) | parseArrayData(t,e,n,i){const{xScale:r,yScale:o}=t,s=new Array(i);let ...
method parseObjectData (line 230) | parseObjectData(t,e,n,r){const{xScale:o,yScale:s}=t,{xAxisKey:a="x",yA...
method getParsed (line 230) | getParsed(t){return this._cachedMeta._parsed[t]}
method getDataElement (line 230) | getDataElement(t){return this._cachedMeta.data[t]}
method applyStack (line 230) | applyStack(t,e,n){const i=this.chart,r=this._cachedMeta,o=e[t.axis],s=...
method updateRangeFromParsed (line 230) | updateRangeFromParsed(t,e,n,i){const r=n[e.axis];let o=null===r?NaN:r;...
method getMinMax (line 230) | getMinMax(t,e){const n=this._cachedMeta,r=n._parsed,o=n._sorted&&t===n...
method getAllParsedValues (line 230) | getAllParsedValues(t){const e=this._cachedMeta._parsed,n=[];let r,o,s;...
method getMaxOverflow (line 230) | getMaxOverflow(){return!1}
method getLabelAndValue (line 230) | getLabelAndValue(t){const e=this._cachedMeta,n=e.iScale,i=e.vScale,r=t...
method _update (line 230) | _update(t){const e=this._cachedMeta;this.update(t||"default"),e._clip=...
method update (line 230) | update(t){}
method draw (line 230) | draw(){const t=this._ctx,e=this.chart,n=this._cachedMeta,i=n.data||[],...
method getStyle (line 230) | getStyle(t,e){const n=e?"active":"default";return void 0===t&&this._ca...
method getContext (line 230) | getContext(t,e,n){const i=this.getDataset();let r;if(t>=0&&t0&&!...
method getLabelAndValue (line 230) | getLabelAndValue(t){const e=this._cachedMeta,n=this.chart,r=n.data.lab...
method getMaxBorderWidth (line 230) | getMaxBorderWidth(t){let e=0;const n=this.chart;let i,r,o,s,a;if(!t)fo...
method getMaxOffset (line 230) | getMaxOffset(t){let e=0;for(let n=0,i=t.length;n{(0,r.a7)(t[e])?(i=!0,n[...
function F (line 258) | function F(t,e){const n=e.type||"line";return T[n](t)}
function j (line 258) | function j(t,e,n){const i=(0,r.Q)(n.init,[{chart:t,properties:e,options:...
function B (line 258) | function B(t){if(t&&"object"===typeof t){const e=t.toString();return"[ob...
function Y (line 258) | function Y(t,{x:e,y:n},i){i&&(t.translate(e,n),t.rotate((0,r.t)(i)),t.tr...
function V (line 258) | function V(t,e){if(e&&e.borderWidth)return t.lineCap=e.borderCapStyle||"...
function U (line 258) | function U(t,e){t.shadowColor=e.backgroundShadowColor,t.shadowBlur=e.sha...
function q (line 258) | function q(t,e){const n=e.content;if(B(n)){const t={width:C(n.width,e.wi...
method constructor (line 237) | constructor(t){if(t instanceof q)return t;const e=typeof t;let n;"obje...
method valid (line 237) | get valid(){return this._valid}
method rgb (line 237) | get rgb(){var t=Y(this._rgb);return t&&(t.a=a(t.a)),t}
method rgb (line 237) | set rgb(t){this._rgb=V(t)}
method rgbString (line 237) | rgbString(){return this._valid?j(this._rgb):void 0}
method hexString (line 237) | hexString(){return this._valid?b(this._rgb):void 0}
method hslString (line 237) | hslString(){return this._valid?P(this._rgb):void 0}
method mix (line 237) | mix(t,e){if(t){const n=this.rgb,i=t.rgb;let r;const o=e===r?.5:e,s=2*o...
method interpolate (line 237) | interpolate(t,e){return t&&(this._rgb=$(this._rgb,t._rgb,e)),this}
method clone (line 237) | clone(){return new q(this.rgb)}
method alpha (line 237) | alpha(t){return this._rgb.a=s(t),this}
method clearer (line 237) | clearer(t){const e=this._rgb;return e.a*=1-t,this}
method greyscale (line 237) | greyscale(){const t=this._rgb,e=i(.3*t.r+.59*t.g+.11*t.b);return t.r=t...
method opaquer (line 237) | opaquer(t){const e=this._rgb;return e.a*=1+t,this}
method negate (line 237) | negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,...
method lighten (line 237) | lighten(t){return B(this._rgb,2,t),this}
method darken (line 237) | darken(t){return B(this._rgb,2,-t),this}
method saturate (line 237) | saturate(t){return B(this._rgb,1,t),this}
method desaturate (line 237) | desaturate(t){return B(this._rgb,1,-t),this}
method rotate (line 237) | rotate(t){return O(this._rgb,t),this}
function X (line 258) | function X(t,e,n){const{x:i,y:o,width:s,height:a}=e;t.save(),U(t,n);cons...
function G (line 258) | function G(t,e,n,i){const o=n.content;if(B(o))return t.save(),t.globalAl...
method constructor (line 6) | constructor(t=!1,e=!1){this._isReadonly=t,this._isShallow=e}
method get (line 6) | get(t,e,n){if("__v_skip"===e)return t["__v_skip"];const r=this._isRead...
function Z (line 258) | function Z(t,e){if(e.textStrokeWidth>0)return t.lineJoin="round",t.miter...
method constructor (line 6) | constructor(t=!1){super(!1,t)}
method set (line 6) | set(t,e,n,r){let o=t[e];if(!this._isShallow){const e=wt(o);if(kt(n)||w...
method deleteProperty (line 6) | deleteProperty(t,e){const n=(0,i.RI)(t,e),r=t[e],o=Reflect.deletePrope...
method has (line 6) | has(t,e){const n=Reflect.has(t,e);return(0,i.yk)(e)&&q.has(e)||L(t,"ha...
method ownKeys (line 6) | ownKeys(t){return L(t,"iterate",(0,i.kJ)(t)?"length":E),Reflect.ownKey...
function Q (line 258) | function Q(t,e,n,i){const{radius:o,options:s}=e,a=s.pointStyle,l=s.rotat...
method constructor (line 6) | constructor(t=!1){super(!0,t)}
method set (line 6) | set(t,e){return!0}
method deleteProperty (line 6) | deleteProperty(t,e){return!0}
function J (line 258) | function J(t,{x:e,y:n,radius:i,rotation:o,style:s,rad:a}){let l,c,u,h;sw...
function K (line 258) | function K(t,e,n,i){t.save();const r=e.length;let o=0,s=i;for(let a=0;a<...
function tt (line 258) | function tt(t,{x:e,y:n},i,r){t.beginPath();let o=0;i.forEach((function(i...
function et (line 258) | function et(t,{x:e,y:n},i,{fonts:r,colors:o}){let s=0;i.forEach((functio...
function nt (line 258) | function nt(t,e){const n=(0,r.x)(t)?t:e;return(0,r.x)(n)?p(n,0,1):1}
function rt (line 258) | function rt(t,e){const{pointX:n,pointY:i,options:o}=e,s=o.callout,a=s&&s...
function ot (line 258) | function ot(t,e){const{x:n,y:i,x2:r,y2:o}=t,s=st(t,e);let a,l;return"lef...
function st (line 258) | function st(t,e){const{width:n,height:i,options:r}=t,o=r.callout.margin+...
function at (line 258) | function at(t,e,n){const{y:i,width:r,height:o,options:s}=t,a=s.callout.s...
function lt (line 258) | function lt(t,e){const n=e.side;return"left"===t||"top"===t?-n:n}
function ct (line 258) | function ct(t,e){const n=e.position;return it.includes(n)?n:ut(t,e)}
function ut (line 258) | function ut(t,e){const{x:n,y:i,x2:o,y2:s,width:a,height:l,pointX:c,point...
method acquireContext (line 230) | acquireContext(t,e){}
method releaseContext (line 230) | releaseContext(t){return!1}
method addEventListener (line 230) | addEventListener(t,e,n){}
method removeEventListener (line 230) | removeEventListener(t,e,n){}
method getDevicePixelRatio (line 230) | getDevicePixelRatio(){return 1}
method getMaximumSize (line 230) | getMaximumSize(t,e,n,i){return e=Math.max(0,e||t.width),n=n||t.height,...
method isAttached (line 230) | isAttached(t){return!0}
method updateConfig (line 230) | updateConfig(t){}
function ht (line 258) | function ht(t,e,n){const{pointX:i,pointY:r}=t,o=e.margin;let s=i,a=r;ret...
method acquireContext (line 230) | acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}
method updateConfig (line 230) | updateConfig(t){t.options.animation=!1}
method validate (line 244) | validate(t,e){return!0}
function ft (line 258) | function ft(t,e,n){return e="number"===typeof e?e:t.parse(e),(0,r.g)(e)?...
method constructor (line 244) | constructor(t,e){super(),this.context=t||(t=>u(e,t))}
method set (line 244) | set(t,e){return e.timestampIsSet?t:u(t,lt(t,this.context))}
function pt (line 258) | function pt(t,e,n){const i=e[n];if(i||"scaleID"===n)return i;const r=n.c...
method run (line 244) | run(t,e,n,i){const r=this.parse(t,e,n,i);return r?{setter:new dt(r.val...
method validate (line 244) | validate(t,e,n){return!0}
function gt (line 258) | function gt(t,e){if(t){const n=t.options.reverse,i=ft(t,e.min,n?e.end:e....
method parse (line 244) | parse(t,e,n){switch(e){case"G":case"GG":case"GGG":return n.era(t,{widt...
method set (line 244) | set(t,e,n){return e.era=n,t.setFullYear(n,0,1),t.setHours(0,0,0,0),t}
function mt (line 258) | function mt(t,e){const{chartArea:n,scales:i}=t,r=i[pt(i,e,"xScaleID")],o...
function bt (line 258) | function bt(t,e){const n=t.scales,i=n[pt(n,e,"xScaleID")],r=n[pt(n,e,"yS...
function xt (line 258) | function xt(t,e){if(!I(e)){const n=bt(t,e);let i=e.radius;i&&!isNaN(i)||...
function yt (line 258) | function yt(t,e){const{scales:n,chartArea:i}=t,r=n[e.scaleID],o={x:i.lef...
function vt (line 258) | function vt(t,e){const n=bt(t,e);return n.initProperties=z(t,n,e),n.elem...
function wt (line 258) | function wt(t,e){const n=mt(t,e),i=2*e.radius;return{x:n.x-e.radius+e.xA...
function kt (line 258) | function kt(t,e){const n=gt(t,e)||e;return{start:Math.min(n.start,n.end)...
function _t (line 258) | function _t(t,e,n){const i=ft(t,n.value,NaN),r=ft(t,n.endValue,i);t.isHo...
function Mt (line 258) | function Mt(t,e,n){for(const i of Object.keys(dt)){const r=t[pt(t,n,i)];...
function St (line 258) | function St({properties:t,options:e},n,i,r){const{x:o,x2:s,width:a}=t;re...
function Tt (line 258) | function Tt({properties:t,options:e},n,i,r){const{y:o,y2:s,height:a}=t;r...
function Dt (line 258) | function Dt(t,e){const{start:n,end:i,borderWidth:r}=t,{position:o,paddin...
method parse (line 244) | parse(t,e,n){const i=t=>({year:t,isTwoDigitYear:"yy"===e});switch(e){c...
method validate (line 244) | validate(t,e){return e.isTwoDigitYear||e.year>0}
method set (line 244) | set(t,e,n){const i=t.getFullYear();if(n.isTwoDigitYear){const e=St(n.y...
function Ct (line 258) | function Ct(t,e,n){const i=n.label;i.backgroundColor="transparent",i.cal...
function Pt (line 258) | function Pt(t,e,n){e.listened=N(n,Ot,e.listeners),e.moveListened=!1,At.f...
method acquireContext (line 230) | acquireContext(t,e){const n=t&&t.getContext&&t.getContext("2d");return...
method releaseContext (line 230) | releaseContext(t){const e=t.canvas;if(!e[dt])return!1;const n=e[dt].in...
method addEventListener (line 230) | addEventListener(t,e,n){this.removeEventListener(t,e);const i=t.$proxi...
method removeEventListener (line 230) | removeEventListener(t,e){const n=t.$proxies||(t.$proxies={}),i=n[e];if...
method getDevicePixelRatio (line 230) | getDevicePixelRatio(){return window.devicePixelRatio}
method getMaximumSize (line 230) | getMaximumSize(t,e,n,r){return(0,i.G)(t,e,n,r)}
method isAttached (line 230) | isAttached(t){const e=t&&(0,i.I)(t);return!(!e||!e.isConnected)}
function Et (line 258) | function Et(t,e,n){if(t.listened)switch(e.type){case"mousemove":case"mou...
method constructor (line 6) | constructor(t,e){this.dep=new A,this["__v_isRef"]=!0,this["__v_isShall...
method value (line 6) | get value(){return this.dep.track(),this._value}
method value (line 6) | set value(t){const e=this._rawValue,n=this["__v_isShallow"]||kt(t)||wt...
method parse (line 244) | parse(t,e){return _t("R"===e?4:e.length,t)}
method set (line 244) | set(t,e,n){const i=u(t,0);return i.setFullYear(n,0,4),i.setHours(0,0,0...
function Rt (line 258) | function Rt(t,e,n){if(!t.moveListened)return;let i;i="mousemove"===e.typ...
method tooltipPosition (line 230) | tooltipPosition(t){const{x:e,y:n}=this.getProps(["x","y"],t);return{x:...
method hasValue (line 230) | hasValue(){return(0,i.x)(this.x)&&(0,i.x)(this.y)}
method getProps (line 230) | getProps(t,e){const n=this.$animations;if(!e||!n)return this;const i={...
method parse (line 244) | parse(t,e){return _t("u"===e?4:e.length,t)}
method set (line 244) | set(t,e,n){return t.setFullYear(n,0,1),t.setHours(0,0,0,0),t}
function It (line 258) | function It({state:t,event:e},n,i,r){let o;for(const s of i)r.indexOf(s)...
method parse (line 244) | parse(t,e,n){switch(e){case"Q":case"QQ":return kt(e.length,t);case"Qo"...
method validate (line 244) | validate(t,e){return e>=1&&e<=4}
method set (line 244) | set(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}
function Lt (line 258) | function Lt(t,e,n){const i=t.listeners,r=s(t.visibleElements,e,n.interac...
method parse (line 244) | parse(t,e,n){switch(e){case"q":case"qq":return kt(e.length,t);case"qo"...
method validate (line 244) | validate(t,e){return e>=1&&e<=4}
method set (line 244) | set(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}
function zt (line 258) | function zt(t,e,n){return!0===(0,r.Q)(t,[e.$context,n])}
method constructor (line 6) | constructor(t,e,n){this.fn=t,this.setter=e,this._value=void 0,this.dep...
method notify (line 6) | notify(){if(this.flags|=16,!(8&this.flags||o===this))return f(this,!0)...
method value (line 6) | get value(){const t=this.dep.track();return y(this),t&&(t.version=this...
method value (line 6) | set value(t){this.setter&&this.setter(t)}
method parse (line 244) | parse(t,e,n){const i=t=>t-1;switch(e){case"M":return xt(yt(mt.month,t)...
method validate (line 244) | validate(t,e){return e>=0&&e<=11}
method set (line 244) | set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}
function Ft (line 258) | function Ft(t,e,n){const i=e.visibleElements;e.hooked=N(n,Nt,e.hooks),e....
function jt (line 258) | function jt(t,e,n){if(t.hooked){const i=e.options[n]||t.hooks[n];return(...
function Ht (line 258) | function Ht(t,e,n){const i=Ut(t.scales,e,n);let o=$t(e,i,"min","suggeste...
function Wt (line 258) | function Wt(t,e){for(const n of t)Yt(n,e)}
method parse (line 244) | parse(t,e,n){switch(e){case"w":return yt(mt.week,t);case"wo":return n....
method validate (line 244) | validate(t,e){return e>=1&&e<=53}
method set (line 244) | set(t,e,n,i){return Ct(Ht(t,n,i),i)}
function $t (line 258) | function $t(t,e,n,i){if((0,r.g)(e[n])&&!Bt(t.options,n,i)){const i=t[n]!...
function Bt (line 258) | function Bt(t,e,n){return(0,r.h)(t[e])||(0,r.h)(t[n])}
function Yt (line 258) | function Yt(t,e){for(const n of["scaleID","xScaleID","yScaleID"]){const ...
function Vt (line 258) | function Vt(t,e){if("scaleID"===e)return!0;const n=e.charAt(0);for(const...
function Ut (line 258) | function Ut(t,e,n){const i=e.axis,o=e.id,s=i+"ScaleID",a={min:(0,r.v)(e....
method parse (line 244) | parse(t,e,n){switch(e){case"I":return yt(mt.week,t);case"Io":return n....
method validate (line 244) | validate(t,e){return e>=1&&e<=53}
method set (line 244) | set(t,e,n){return Pt(Vt(t,n))}
function qt (line 258) | function qt(t,e,n,i){for(const o of n){const n=t[o];if((0,r.h)(n)){const...
class Xt (line 258) | class Xt extends i.W_{inRange(t,e,n,i){const{x:o,y:s}=h({x:t,y:e},this.g...
method inRange (line 258) | inRange(t,e,n,i){const{x:o,y:s}=h({x:t,y:e},this.getCenterPoint(i),(0,...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){t.save(),Y(t,this.getCenterPoint(),this.options.rotation),X(t,...
method label (line 258) | get label(){return this.elements&&this.elements[0]}
method resolveElementProperties (line 258) | resolveElementProperties(t,e){return vt(t,e)}
class Gt (line 258) | class Gt extends i.W_{inRange(t,e,n,i){return y({x:t,y:e},{rect:this.get...
method parse (line 244) | parse(t,e,n){switch(e){case"d":return yt(mt.date,t);case"do":return n....
method validate (line 244) | validate(t,e){const n=t.getFullYear(),i=Tt(n),r=t.getMonth();return i?...
method set (line 244) | set(t,e,n){return t.setDate(n),t.setHours(0,0,0,0),t}
method inRange (line 258) | inRange(t,e,n,i){return y({x:t,y:e},{rect:this.getProps(["x","y","x2",...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const e=this.options;e.display&&e.content&&(ee(t,this),t.save(...
method resolveElementProperties (line 258) | resolveElementProperties(t,e){const n=Zt(t,e);if(!n)return{};const{con...
function Zt (line 258) | function Zt(t,e){return t.getSortedVisibleDatasetMetas().reduce((functio...
method parse (line 244) | parse(t,e,n){switch(e){case"D":case"DD":return yt(mt.dayOfYear,t);case...
method validate (line 244) | validate(t,e){const n=t.getFullYear(),i=Tt(n);return i?e>=1&&e<=366:e>...
method set (line 244) | set(t,e,n){return t.setMonth(0,n),t.setHours(0,0,0,0),t}
function Qt (line 258) | function Qt(t,e,n){if(!e.autoHide)return!0;for(let i=0;ie.length-1?null:th...
method getPixelForDecimal (line 230) | getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._start...
method getDecimalForPixel (line 230) | getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return...
method getBasePixel (line 230) | getBasePixel(){return this.getPixelForValue(this.getBaseValue())}
method getBaseValue (line 230) | getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}
method getContext (line 230) | getContext(t){const e=this.ticks||[];if(t>=0&&t=0&&e<=6}
method set (line 244) | set(t,e,n,i){return t=Jt(t,n,i),t.setHours(0,0,0,0),t}
function te (line 258) | function te(t,e,n,i){const o=Math.pow(n-t,2),s=Math.pow(i,2),a=-2*e,l=Ma...
method constructor (line 230) | constructor(t,e,n){this.type=t,this.scope=e,this.override=n,this.items...
method isForType (line 230) | isForType(t){return Object.prototype.isPrototypeOf.call(this.type.prot...
method register (line 230) | register(t){const e=Object.getPrototypeOf(t);let n;ie(e)&&(n=this.regi...
method get (line 230) | get(t){return this.items[t]}
method unregister (line 230) | unregister(t){const e=this.items,n=t.id,r=this.scope;n in e&&delete e[...
method parse (line 244) | parse(t,e,n,i){const r=t=>{const e=7*Math.floor((t-1)/7);return(t+i.we...
method validate (line 244) | validate(t,e){return e>=0&&e<=6}
method set (line 244) | set(t,e,n,i){return t=Jt(t,n,i),t.setHours(0,0,0,0),t}
function ee (line 258) | function ee(t,e){const{_centerX:n,_centerY:i,_radius:r,_startAngle:o,_en...
method parse (line 244) | parse(t,e,n,i){const r=t=>{const e=7*Math.floor((t-1)/7);return(t+i.we...
method validate (line 244) | validate(t,e){return e>=0&&e<=6}
method set (line 244) | set(t,e,n,i){return t=Jt(t,n,i),t.setHours(0,0,0,0),t}
class ne (line 258) | class ne extends i.W_{inRange(t,e,n,i){return y({x:t,y:e},{rect:this.get...
method inRange (line 258) | inRange(t,e,n,i){return y({x:t,y:e},{rect:this.getProps(["x","y","x2",...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const e=this.options,n=!(0,r.h)(this._visible)||this._visible;...
method resolveElementProperties (line 258) | resolveElementProperties(t,e){let n;if(I(e))n=mt(t,e);else{const{cente...
function ie (line 258) | function ie({x:t,y:e,width:n,height:i,options:o}){const s=o.borderWidth/...
class fe (line 258) | class fe extends i.W_{inRange(t,e,n,i){const r=(this.options.borderWidth...
method parse (line 244) | parse(t,e,n){switch(e){case"s":return yt(mt.second,t);case"so":return ...
method validate (line 244) | validate(t,e){return e>=0&&e<=59}
method set (line 244) | set(t,e,n){return t.setSeconds(n,0),t}
method inRange (line 258) | inRange(t,e,n,i){const r=(this.options.borderWidth+this.options.hitTol...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const{x:e,y:n,x2:i,y2:r,cp:o,options:s}=this;if(t.save(),!V(t,...
method label (line 258) | get label(){return this.elements&&this.elements[0]}
method resolveElementProperties (line 258) | resolveElementProperties(t,e){const n=yt(t,e),{x:i,y:o,x2:s,y2:a}=n,l=...
function ge (line 258) | function ge(t,{mouseX:e,mouseY:n},i,{hitSize:r,useFinalPosition:o}){cons...
function me (line 258) | function me({x:t,y:e,x2:n,y2:i},{top:r,right:o,bottom:s,left:a}){return!...
method parse (line 244) | parse(t,e){switch(e){case"X":return vt(bt.basicOptionalMinutes,t);case...
method set (line 244) | set(t,e,n){return e.timestampIsSet?t:u(t,t.getTime()-ge(t)-n)}
function be (line 258) | function be({x:t,y:e},n,{top:i,right:r,bottom:o,left:s}){return t[[`datasets.${t}`,""]]))}
method datasetAnimationScopeKeys (line 230) | datasetAnimationScopeKeys(t,e){return Se(`${t}.transition.${e}`,(()=>[...
method datasetElementScopeKeys (line 230) | datasetElementScopeKeys(t,e){return Se(`${t}-${e}`,(()=>[[`datasets.${...
method pluginScopeKeys (line 230) | pluginScopeKeys(t){const e=t.id,n=this.type;return Se(`${n}-plugin-${e...
method _cachedScopes (line 230) | _cachedScopes(t,e){const n=this._scopeCache;let i=n.get(t);return i&&!...
method getOptionScopes (line 230) | getOptionScopes(t,e,n){const{options:r,type:o}=this,s=this._cachedScop...
method chartOptionScopes (line 230) | chartOptionScopes(){const{options:t,type:e}=this;return[t,i.a3[e]||{},...
method resolveNamedOptions (line 230) | resolveNamedOptions(t,e,n,r=[""]){const o={$shared:!0},{resolver:s,sub...
method createResolver (line 230) | createResolver(t,e,n=[""],r){const{resolver:o}=Ce(this._resolverCache,...
function Ce (line 258) | function Ce(t,e){const{size:n,min:i,max:r,padding:o}=e,s=n/2;return n>r-...
function Ae (line 258) | function Ae(t){const e=t.options,n=e.arrowHeads&&e.arrowHeads.start,i=e....
function Oe (line 258) | function Oe(t,e){if(!e||!e.display)return 0;const{length:n,width:i}=e,r=...
function Pe (line 258) | function Pe(t,e,n,i){if(!i||!i.display)return;const{length:r,width:o,fil...
function Ee (line 258) | function Ee(t,e,n){const{x:i,y:r,x2:o,y2:s,centerX:a,centerY:l}=t,c=Math...
function Re (line 258) | function Re(t,{x:e,y:n},{angle:i,adjust:r},o){o&&o.display&&(t.save(),t....
function Ie (line 258) | function Ie(t,e,n,i){const{x:o,y:s,x2:a,y2:l,options:c}=e,{startOpts:u,e...
method constructor (line 244) | constructor(t,e){this.animation=void 0,this.backgroundColor="rgba(0,0,...
method set (line 244) | set(t,e){return Re(this,t,e)}
method get (line 244) | get(t){return Ee(this,t)}
method describe (line 244) | describe(t,e){return Re(Pe,t,e)}
method override (line 244) | override(t,e){return Re(Oe,t,e)}
method route (line 244) | route(t,e,n,i){const r=Ee(this,t),o=Ee(this,n),s="_"+e;Object.definePr...
method apply (line 244) | apply(t){t.forEach((t=>t(this)))}
class Le (line 258) | class Le extends i.W_{inRange(t,e,n,i){const o=this.options.rotation,s=(...
method inRange (line 258) | inRange(t,e,n,i){const o=this.options.rotation,s=(this.options.borderW...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const{width:e,height:n,centerX:i,centerY:o,options:s}=this;t.s...
method label (line 258) | get label(){return this.elements&&this.elements[0]}
method resolveElementProperties (line 258) | resolveElementProperties(t,e){return vt(t,e)}
function ze (line 258) | function ze(t,e,n,i){const{width:o,height:s,centerX:a,centerY:l}=e,c=o/2...
class Ne (line 258) | class Ne extends i.W_{inRange(t,e,n,i){const{x:r,y:o,x2:s,y2:a,width:l}=...
method inRange (line 258) | inRange(t,e,n,i){const{x:r,y:o,x2:s,y2:a,width:l}=this.getProps(["x","...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const e=this.options,n=e.borderWidth;if(e.radius<.1)return;t.s...
method resolveElementProperties (line 258) | resolveElementProperties(t,e){const n=xt(t,e);return n.initProperties=...
class Fe (line 258) | class Fe extends i.W_{inRange(t,e,n,i){if("x"!==n&&"y"!==n)return this.o...
method inRange (line 258) | inRange(t,e,n,i){if("x"!==n&&"y"!==n)return this.options.radius>=.1&&t...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const{elements:e,options:n}=this;t.save(),t.beginPath(),t.fill...
method resolveElementProperties (line 258) | resolveElementProperties(t,e){const n=xt(t,e),{sides:i,rotation:o}=e,s...
function je (line 258) | function je({centerX:t,centerY:e},{radius:n,borderWidth:i,hitTolerance:r...
function He (line 258) | function He(t,e,n,i){let r=!1,o=t[t.length-1].getProps(["bX","bY"],i);fo...
function Ue (line 258) | function Ue(t="line"){return We[t]?t:(console.warn(`Unknown annotation t...
function qe (line 258) | function qe(t,e,n,i){const o=Ge(t,n.animations,i),s=e.annotations,a=en(e...
function Xe (line 258) | function Xe(t){return isNaN(t.x)||isNaN(t.y)}
function Ge (line 258) | function Ge(t,e,n){return"reset"===n||"none"===n||"resize"===n?$e:new i....
function Ze (line 258) | function Ze(t,e,n,i){const r=t.elements||(t.elements=[]);r.length=e.leng...
function Qe (line 258) | function Qe(t,e,n,i){const r=We[Ue(n)];let o=t[e];return o&&o instanceof...
function Je (line 258) | function Je(t){const e=We[Ue(t.type)],n={};n.id=t.id,n.type=t.type,n.dra...
function Ke (line 258) | function Ke(t,e){const n={};for(const i of Object.keys(e)){const o=e[i],...
function tn (line 258) | function tn(t,e,n,i){return e.$context||(e.$context=Object.assign(Object...
function en (line 258) | function en(t,e){const n=e.length,i=t.length;if(ii({...
method _refresh (line 230) | _refresh(){this._request||(this._running=!0,this._request=i.r.call(win...
method _update (line 230) | _update(t=Date.now()){let e=0;this._charts.forEach(((n,i)=>{if(!n.runn...
method _getAnims (line 230) | _getAnims(t){const e=this._charts;let n=e.get(t);return n||(n={running...
method listen (line 230) | listen(t,e,n){this._getAnims(t).listeners[e].push(n)}
method add (line 230) | add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)}
method has (line 230) | has(t){return this._getAnims(t).items.length>0}
method start (line 230) | start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now...
method running (line 230) | running(t){if(!this._running)return!1;const e=this._charts.get(t);retu...
method stop (line 230) | stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;cons...
method remove (line 230) | remove(t){return this._charts.delete(t)}
function D (line 260) | function D(t){return function(e){e instanceof RegExp&&(e.lastIndex=0);fo...
function C (line 260) | function C(t){return function(){for(var e=arguments.length,n=new Array(e...
method constructor (line 6) | constructor(t,e){this.sub=t,this.dep=e,this.version=e.version,this.nex...
function A (line 260) | function A(t,e){let n=arguments.length>2&&void 0!==arguments[2]?argument...
method constructor (line 6) | constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,t...
method track (line 6) | track(t){if(!o||!k||o===this.computed)return;let e=this.activeLink;if(...
method trigger (line 6) | trigger(t){this.version++,D++,this.notify(t)}
method notify (line 6) | notify(t){p();try{0;for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&...
function O (line 260) | function O(t){for(let e=0;e=0&&t0&&void 0!==arguments[0]?arguments[...
function i (line 260) | function i(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null...
function o (line 260) | function o(t){r=t}
function a (line 260) | function a(t,e=""){let n="string"==typeof t?t:t.source,i={replace:(t,e)=...
function mt (line 260) | function mt(t,e){if(e){if(c.escapeTest.test(t))return t.replace(c.escape...
function bt (line 260) | function bt(t){try{t=encodeURI(t).replace(c.percentDecode,"%")}catch{ret...
function xt (line 260) | function xt(t,e){let n=t.replace(c.findPipe,((t,e,n)=>{let i=!1,r=e;for(...
function yt (line 260) | function yt(t,e,n){let i=t.length;if(0===i)return"";let r=0;for(;r0)retu...
method code (line 260) | code(t){let e=this.rules.block.code.exec(t);if(e){let t=e[0].replace(thi...
method fences (line 260) | fences(t){let e=this.rules.block.fences.exec(t);if(e){let t=e[0],n=kt(t,...
method heading (line 260) | heading(t){let e=this.rules.block.heading.exec(t);if(e){let t=e[2].trim(...
method hr (line 260) | hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:yt(e[0...
method blockquote (line 260) | blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let t=yt(e...
method list (line 260) | list(t){let e=this.rules.block.list.exec(t);if(e){let n=e[1].trim(),i=n....
method html (line 260) | html(t){let e=this.rules.block.html.exec(t);if(e)return{type:"html",bloc...
method def (line 260) | def(t){let e=this.rules.block.def.exec(t);if(e){let t=e[1].toLowerCase()...
method table (line 260) | table(t){let e=this.rules.block.table.exec(t);if(!e||!this.rules.other.t...
method lheading (line 260) | lheading(t){let e=this.rules.block.lheading.exec(t);if(e)return{type:"he...
method paragraph (line 260) | paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let t="\n"==...
method text (line 260) | text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:...
method escape (line 260) | escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escap...
method tag (line 260) | tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state....
method link (line 260) | link(t){let e=this.rules.inline.link.exec(t);if(e){let t=e[2].trim();if(...
method reflink (line 260) | reflink(t,e){let n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rul...
method emStrong (line 260) | emStrong(t,e,n=""){let i=this.rules.inline.emStrongLDelim.exec(t);if(!(!...
method codespan (line 260) | codespan(t){let e=this.rules.inline.code.exec(t);if(e){let t=e[2].replac...
method br (line 260) | br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}
method del (line 260) | del(t){let e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[...
method autolink (line 260) | autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let t,n;retur...
method url (line 260) | url(t){let e;if(e=this.rules.inline.url.exec(t)){let t,n;if("@"===e[2])t...
method inlineText (line 260) | inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let t=this.lexe...
method constructor (line 260) | constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this...
method rules (line 260) | static get rules(){return{block:dt,inline:ft}}
method lex (line 260) | static lex(e,n){return new t(n).lex(e)}
method lexInline (line 260) | static lexInline(e,n){return new t(n).inlineTokens(e)}
method lex (line 260) | lex(t){t=t.replace(c.carriageReturn,"\n"),this.blockTokens(t,this.tokens...
method blockTokens (line 260) | blockTokens(t,e=[],n=!1){for(this.options.pedantic&&(t=t.replace(c.tabCh...
method inline (line 260) | inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}
method inlineTokens (line 260) | inlineTokens(t,e=[]){let n,i=t,r=null;if(this.tokens.links){let t=Object...
method constructor (line 260) | constructor(t){this.options=t||r}
method space (line 260) | space(t){return""}
method code (line 260) | code({text:t,lang:e,escaped:n}){let i=(e||"").match(c.notSpaceStart)?.[0...
method blockquote (line 260) | blockquote({tokens:t}){return`\n${this.parser.parse(t)}${this.parser.parseInline(t)}<...
method hr (line 260) | hr(t){return"
\n"}
method list (line 260) | list(t){let e=t.ordered,n=t.start,i="";for(let s=0;s${this.parser.parseInline(t)}
\n`}
method table (line 260) | table(t){let e="",n="";for(let r=0;r\n${t}\n`}
method tablecell (line 260) | tablecell(t){let e=this.parser.parseInline(t.tokens),n=t.header?"th":"td...
method strong (line 260) | strong({tokens:t}){return`${this.parser.parseInline(t)}`}
method em (line 260) | em({tokens:t}){return`${this.parser.parseInline(t)}`}
method codespan (line 260) | codespan({text:t}){return`${mt(t,!0)}`}
method br (line 260) | br(t){return"
"}
method del (line 260) | del({tokens:t}){return`${this.parser.parseInline(t)}`}
method link (line 260) | link({href:t,title:e,tokens:n}){let i=this.parser.parseInline(n),r=bt(t)...
method image (line 260) | image({href:t,title:e,text:n,tokens:i}){i&&(n=this.parser.parseInline(i,...
method text (line 260) | text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):"...
method strong (line 260) | strong({text:t}){return t}
method em (line 260) | em({text:t}){return t}
method codespan (line 260) | codespan({text:t}){return t}
method del (line 260) | del({text:t}){return t}
method html (line 260) | html({text:t}){return t}
method text (line 260) | text({text:t}){return t}
method link (line 260) | link({text:t}){return""+t}
method image (line 260) | image({text:t}){return""+t}
method br (line 260) | br(){return""}
method constructor (line 260) | constructor(t){this.options=t||r,this.options.renderer=this.options.rend...
method parse (line 260) | static parse(e,n){return new t(n).parse(e)}
method parseInline (line 260) | static parseInline(e,n){return new t(n).parseInline(e)}
method parse (line 260) | parse(t,e=!0){let n="";for(let i=0;i{let i={...n},r={...this.defaults,...i},o=...
method onError (line 260) | onError(t,e){return n=>{if(n.message+="\nPlease report this to https://g...
function Pt (line 260) | function Pt(t,e){return Ot.parse(t,e)}
method acquireContext (line 230) | acquireContext(t,e){const n=t&&t.getContext&&t.getContext("2d");return...
method releaseContext (line 230) | releaseContext(t){const e=t.canvas;if(!e[dt])return!1;const n=e[dt].in...
method addEventListener (line 230) | addEventListener(t,e,n){this.removeEventListener(t,e);const i=t.$proxi...
method removeEventListener (line 230) | removeEventListener(t,e){const n=t.$proxies||(t.$proxies={}),i=n[e];if...
method getDevicePixelRatio (line 230) | getDevicePixelRatio(){return window.devicePixelRatio}
method getMaximumSize (line 230) | getMaximumSize(t,e,n,r){return(0,i.G)(t,e,n,r)}
method isAttached (line 230) | isAttached(t){const e=t&&(0,i.I)(t);return!(!e||!e.isConnected)}
method get (line 260) | get(t){let e=n.get(t);return void 0!==e?e:void 0!==(e=i.get(t))?(r(t,e),...
method set (line 260) | set(t,e){n.has(t)?n.set(t,e):r(t,e)}
function k (line 260) | function k(){let t,e,n=0,i="";while(n...
function u (line 260) | function u(t){return(0,o.X3)(t)?(0,o.IU)(t):t}
function h (line 260) | function h(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[...
function d (line 260) | function d(t,e){const n=t.options;n&&e&&Object.assign(n,e)}
function f (line 260) | function f(t,e){t.labels=e}
function p (line 260) | function p(t,e,n){const i=[];t.datasets=e.map((e=>{const r=t.datasets.fi...
function g (line 260) | function g(t,e){const n={labels:[],datasets:[]};return f(n,t.labels),p(n...
method setup (line 260) | setup(t,e){let{expose:n,slots:s}=e;const a=(0,o.iH)(null),l=(0,o.XI)(nul...
function b (line 260) | function b(t,e){return i.kL.register(e),(0,r.aZ)({props:s,setup(e,n){let...
function s (line 266) | function s(t){return"object"===typeof t||"displayName"in t||"props"in t|...
method constructor (line 6) | constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effe...
method active (line 6) | get active(){return this._active}
method pause (line 6) | pause(){if(this._active){let t,e;if(this._isPaused=!0,this.scopes)for(...
method resume (line 6) | resume(){if(this._active&&this._isPaused){let t,e;if(this._isPaused=!1...
method run (line 6) | run(t){if(this._active){const e=r;try{return r=this,t()}finally{r=e}}e...
method on (line 6) | on(){1===++this._on&&(this.prevScope=r,r=this)}
method off (line 6) | off(){this._on>0&&0===--this._on&&(r=this.prevScope,this.prevScope=voi...
method stop (line 6) | stop(t){if(this._active){let e,n;for(this._active=!1,e=0,n=this.effect...
function a (line 266) | function a(t){return t.__esModule||"Module"===t[Symbol.toStringTag]||t.d...
function c (line 266) | function c(t,e){const n={};for(const i in e){const r=e[i];n[i]=h(r)?r.ma...
method constructor (line 6) | constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.fl...
method pause (line 6) | pause(){this.flags|=64}
method resume (line 6) | resume(){64&this.flags&&(this.flags&=-65,l.has(this)&&(l.delete(this),...
method notify (line 6) | notify(){2&this.flags&&!(32&this.flags)||8&this.flags||f(this)}
method run (line 6) | run(){if(!(1&this.flags))return this.fn();this.flags|=2,T(this),m(this...
method stop (line 6) | stop(){if(1&this.flags){for(let t=this.deps;t;t=t.nextDep)v(t);this.de...
method trigger (line 6) | trigger(){64&this.flags?l.add(this):this.scheduler?this.scheduler():th...
method runIfDirty (line 6) | runIfDirty(){x(this)&&this.run()}
method dirty (line 6) | get dirty(){return x(this)}
method constructor (line 230) | constructor(t,e){this._chart=t,this._properties=new Map,this.configure...
method configure (line 230) | configure(t){if(!(0,i.i)(t))return;const e=Object.keys(i.d.animation),...
method _animateOptions (line 230) | _animateOptions(t,e){const n=e.options,i=h(t,n);if(!i)return[];const r...
method _createAnimations (line 230) | _createAnimations(t,e){const n=this._properties,i=[],r=t.$animations||...
method update (line 230) | update(t,e){if(0===this._properties.size)return void Object.assign(t,e...
function T (line 266) | function T(t){return encodeURI(""+t).replace(_,"|").replace(x,"[").repla...
function D (line 266) | function D(t){return T(t).replace(k,"{").replace(M,"}").replace(v,"^")}
function C (line 266) | function C(t){return T(t).replace(b,"%2B").replace(S,"+").replace(d,"%23...
method constructor (line 6) | constructor(t,e){this.sub=t,this.dep=e,this.version=e.version,this.nex...
function A (line 266) | function A(t){return C(t).replace(g,"%3D")}
method constructor (line 6) | constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,t...
method track (line 6) | track(t){if(!o||!k||o===this.computed)return;let e=this.activeLink;if(...
method trigger (line 6) | trigger(t){this.version++,D++,this.notify(t)}
method notify (line 6) | notify(t){p();try{0;for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&...
function O (line 266) | function O(t){return T(t).replace(d,"%23").replace(m,"%3F")}
function P (line 266) | function P(t){return null==t?"":O(t).replace(p,"%2F")}
method constructor (line 230) | constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cache...
method initialize (line 230) | initialize(){const t=this._cachedMeta;this.configure(),this.linkScales...
method updateIndex (line 230) | updateIndex(t){this.index!==t&&D(this._cachedMeta),this.index=t}
method linkScales (line 230) | linkScales(){const t=this.chart,e=this._cachedMeta,n=this.getDataset()...
method getDataset (line 230) | getDataset(){return this.chart.data.datasets[this.index]}
method getMeta (line 230) | getMeta(){return this.chart.getDatasetMeta(this.index)}
method getScaleForId (line 230) | getScaleForId(t){return this.chart.scales[t]}
method _getOtherScale (line 230) | _getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScal...
method reset (line 230) | reset(){this._update("reset")}
method _destroy (line 230) | _destroy(){const t=this._cachedMeta;this._data&&(0,i.u)(this._data,thi...
method _dataCheck (line 230) | _dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),n=this._d...
method addElements (line 230) | addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetE...
method buildOrUpdateElements (line 230) | buildOrUpdateElements(t){const e=this._cachedMeta,n=this.getDataset();...
method configure (line 230) | configure(){const t=this.chart.config,e=t.datasetScopeKeys(this._type)...
method parse (line 230) | parse(t,e){const{_cachedMeta:n,_data:r}=this,{iScale:o,_stacked:s}=n,a...
method parsePrimitiveData (line 230) | parsePrimitiveData(t,e,n,i){const{iScale:r,vScale:o}=t,s=r.axis,a=o.ax...
method parseArrayData (line 230) | parseArrayData(t,e,n,i){const{xScale:r,yScale:o}=t,s=new Array(i);let ...
method parseObjectData (line 230) | parseObjectData(t,e,n,r){const{xScale:o,yScale:s}=t,{xAxisKey:a="x",yA...
method getParsed (line 230) | getParsed(t){return this._cachedMeta._parsed[t]}
method getDataElement (line 230) | getDataElement(t){return this._cachedMeta.data[t]}
method applyStack (line 230) | applyStack(t,e,n){const i=this.chart,r=this._cachedMeta,o=e[t.axis],s=...
method updateRangeFromParsed (line 230) | updateRangeFromParsed(t,e,n,i){const r=n[e.axis];let o=null===r?NaN:r;...
method getMinMax (line 230) | getMinMax(t,e){const n=this._cachedMeta,r=n._parsed,o=n._sorted&&t===n...
method getAllParsedValues (line 230) | getAllParsedValues(t){const e=this._cachedMeta._parsed,n=[];let r,o,s;...
method getMaxOverflow (line 230) | getMaxOverflow(){return!1}
method getLabelAndValue (line 230) | getLabelAndValue(t){const e=this._cachedMeta,n=e.iScale,i=e.vScale,r=t...
method _update (line 230) | _update(t){const e=this._cachedMeta;this.update(t||"default"),e._clip=...
method update (line 230) | update(t){}
method draw (line 230) | draw(){const t=this._ctx,e=this.chart,n=this._cachedMeta,i=n.data||[],...
method getStyle (line 230) | getStyle(t,e){const n=e?"active":"default";return void 0===t&&this._ca...
method getContext (line 230) | getContext(t,e,n){const i=this.getDataset();let r;if(t>=0&&tt===e[n...
function B (line 266) | function B(t,e){if(t.startsWith("/"))return t;if(!t)return e;const n=e.s...
function q (line 266) | function q(t){if(!t)if(o){const e=document.querySelector("base");t=e&&e....
method constructor (line 237) | constructor(t){if(t instanceof q)return t;const e=typeof t;let n;"obje...
method valid (line 237) | get valid(){return this._valid}
method rgb (line 237) | get rgb(){var t=Y(this._rgb);return t&&(t.a=a(t.a)),t}
method rgb (line 237) | set rgb(t){this._rgb=V(t)}
method rgbString (line 237) | rgbString(){return this._valid?j(this._rgb):void 0}
method hexString (line 237) | hexString(){return this._valid?b(this._rgb):void 0}
method hslString (line 237) | hslString(){return this._valid?P(this._rgb):void 0}
method mix (line 237) | mix(t,e){if(t){const n=this.rgb,i=t.rgb;let r;const o=e===r?.5:e,s=2*o...
method interpolate (line 237) | interpolate(t,e){return t&&(this._rgb=$(this._rgb,t._rgb,e)),this}
method clone (line 237) | clone(){return new q(this.rgb)}
method alpha (line 237) | alpha(t){return this._rgb.a=s(t),this}
method clearer (line 237) | clearer(t){const e=this._rgb;return e.a*=1-t,this}
method greyscale (line 237) | greyscale(){const t=this._rgb,e=i(.3*t.r+.59*t.g+.11*t.b);return t.r=t...
method opaquer (line 237) | opaquer(t){const e=this._rgb;return e.a*=1+t,this}
method negate (line 237) | negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,...
method lighten (line 237) | lighten(t){return B(this._rgb,2,t),this}
method darken (line 237) | darken(t){return B(this._rgb,2,-t),this}
method saturate (line 237) | saturate(t){return B(this._rgb,1,t),this}
method desaturate (line 237) | desaturate(t){return B(this._rgb,1,-t),this}
method rotate (line 237) | rotate(t){return O(this._rgb,t),this}
function G (line 266) | function G(t,e){return t.replace(X,"#")+e}
method constructor (line 6) | constructor(t=!1,e=!1){this._isReadonly=t,this._isShallow=e}
method get (line 6) | get(t,e,n){if("__v_skip"===e)return t["__v_skip"];const r=this._isRead...
function Z (line 266) | function Z(t,e){const n=document.documentElement.getBoundingClientRect()...
method constructor (line 6) | constructor(t=!1){super(!1,t)}
method set (line 6) | set(t,e,n,r){let o=t[e];if(!this._isShallow){const e=wt(o);if(kt(n)||w...
method deleteProperty (line 6) | deleteProperty(t,e){const n=(0,i.RI)(t,e),r=t[e],o=Reflect.deletePrope...
method has (line 6) | has(t,e){const n=Reflect.has(t,e);return(0,i.yk)(e)&&q.has(e)||L(t,"ha...
method ownKeys (line 6) | ownKeys(t){return L(t,"iterate",(0,i.kJ)(t)?"length":E),Reflect.ownKey...
function J (line 266) | function J(t){let e;if("el"in t){const n=t.el,i="string"===typeof n&&n.s...
function K (line 266) | function K(t,e){const n=history.state?history.state.position-e:-1;return...
function et (line 266) | function et(t,e){tt.set(t,e)}
function nt (line 266) | function nt(t){const e=tt.get(t);return tt.delete(t),e}
function rt (line 266) | function rt(t,e){const{pathname:n,search:i,hash:r}=e,o=t.indexOf("#");if...
function ot (line 266) | function ot(t,e,n,i){let r=[],o=[],s=null;const a=({state:o})=>{const a=...
function st (line 266) | function st(t,e,n,i=!1,r=!1){return{back:t,current:e,forward:n,replaced:...
function at (line 266) | function at(t){const{history:e,location:n}=window,i={value:rt(t,n)},r={v...
function lt (line 266) | function lt(t){t=q(t);const e=at(t),n=ot(t,e.state,e.location,e.replace)...
function ct (line 266) | function ct(t){return"string"===typeof t||t&&"object"===typeof t}
function ut (line 266) | function ut(t){return"string"===typeof t||"symbol"===typeof t}
method acquireContext (line 230) | acquireContext(t,e){}
method releaseContext (line 230) | releaseContext(t){return!1}
method addEventListener (line 230) | addEventListener(t,e,n){}
method removeEventListener (line 230) | removeEventListener(t,e,n){}
method getDevicePixelRatio (line 230) | getDevicePixelRatio(){return 1}
method getMaximumSize (line 230) | getMaximumSize(t,e,n,i){return e=Math.max(0,e||t.width),n=n||t.height,...
method isAttached (line 230) | isAttached(t){return!0}
method updateConfig (line 230) | updateConfig(t){}
function ft (line 266) | function ft(t,e){return l(new Error,{type:t,[ht]:!0},e)}
method constructor (line 244) | constructor(t,e){super(),this.context=t||(t=>u(e,t))}
method set (line 244) | set(t,e){return e.timestampIsSet?t:u(t,lt(t,this.context))}
function pt (line 266) | function pt(t,e){return t instanceof Error&&ht in t&&(null==e||!!(t.type...
method run (line 244) | run(t,e,n,i){const r=this.parse(t,e,n,i);return r?{setter:new dt(r.val...
method validate (line 244) | validate(t,e,n){return!0}
function xt (line 266) | function xt(t,e){const n=l({},mt,e),i=[];let r=n.start?"^":"";const o=[]...
function yt (line 266) | function yt(t,e){let n=0;while(n0&&e[e.length-1]<0}
function Mt (line 266) | function Mt(t){if(!t)return[[]];if("/"===t)return[[kt]];if(!t.startsWith...
function St (line 266) | function St(t,e,n){const i=xt(Mt(t.path),n);const r=l(i,{record:t,parent...
function Tt (line 266) | function Tt(t,e){const n=[],i=new Map;function r(t){return i.get(t)}func...
function Dt (line 266) | function Dt(t,e){const n={};for(const i of e)i in t&&(n[i]=t[i]);return n}
method parse (line 244) | parse(t,e,n){const i=t=>({year:t,isTwoDigitYear:"yy"===e});switch(e){c...
method validate (line 244) | validate(t,e){return e.isTwoDigitYear||e.year>0}
method set (line 244) | set(t,e,n){const i=t.getFullYear();if(n.isTwoDigitYear){const e=St(n.y...
function Ct (line 266) | function Ct(t){const e={path:t.path,redirect:t.redirect,name:t.name,meta...
function At (line 266) | function At(t){const e={},n=t.props||!1;if("component"in t)e.default=n;e...
function Ot (line 266) | function Ot(t){while(t){if(t.record.aliasOf)return!0;t=t.parent}return!1}
method parse (line 244) | parse(t,e,n){const i=t=>({year:t,isTwoDigitYear:"YY"===e});switch(e){c...
method validate (line 244) | validate(t,e){return e.isTwoDigitYear||e.year>0}
method set (line 244) | set(t,e,n,i){const r=At(t,i);if(n.isTwoDigitYear){const e=St(n.year,r)...
function Pt (line 266) | function Pt(t){return t.reduce(((t,e)=>l(t,e.meta)),{})}
method acquireContext (line 230) | acquireContext(t,e){const n=t&&t.getContext&&t.getContext("2d");return...
method releaseContext (line 230) | releaseContext(t){const e=t.canvas;if(!e[dt])return!1;const n=e[dt].in...
method addEventListener (line 230) | addEventListener(t,e,n){this.removeEventListener(t,e);const i=t.$proxi...
method removeEventListener (line 230) | removeEventListener(t,e){const n=t.$proxies||(t.$proxies={}),i=n[e];if...
method getDevicePixelRatio (line 230) | getDevicePixelRatio(){return window.devicePixelRatio}
method getMaximumSize (line 230) | getMaximumSize(t,e,n,r){return(0,i.G)(t,e,n,r)}
method isAttached (line 230) | isAttached(t){const e=t&&(0,i.I)(t);return!(!e||!e.isConnected)}
function Et (line 266) | function Et(t,e){const n={};for(const i in t)n[i]=i in e?e[i]:t[i];retur...
method constructor (line 6) | constructor(t,e){this.dep=new A,this["__v_isRef"]=!0,this["__v_isShall...
method value (line 6) | get value(){return this.dep.track(),this._value}
method value (line 6) | set value(t){const e=this._rawValue,n=this["__v_isShallow"]||kt(t)||wt...
method parse (line 244) | parse(t,e){return _t("R"===e?4:e.length,t)}
method set (line 244) | set(t,e,n){const i=u(t,0);return i.setFullYear(n,0,4),i.setHours(0,0,0...
function Rt (line 266) | function Rt(t,e){let n=0,i=e.length;while(n!==i){const r=n+i>>1,o=vt(t,e...
method tooltipPosition (line 230) | tooltipPosition(t){const{x:e,y:n}=this.getProps(["x","y"],t);return{x:...
method hasValue (line 230) | hasValue(){return(0,i.x)(this.x)&&(0,i.x)(this.y)}
method getProps (line 230) | getProps(t,e){const n=this.$animations;if(!e||!n)return this;const i={...
method parse (line 244) | parse(t,e){return _t("u"===e?4:e.length,t)}
method set (line 244) | set(t,e,n){return t.setFullYear(n,0,1),t.setHours(0,0,0,0),t}
function It (line 266) | function It(t){let e=t;while(e=e.parent)if(Lt(e)&&0===vt(t,e))return e}
method parse (line 244) | parse(t,e,n){switch(e){case"Q":case"QQ":return kt(e.length,t);case"Qo"...
method validate (line 244) | validate(t,e){return e>=1&&e<=4}
method set (line 244) | set(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}
function Lt (line 266) | function Lt({record:t}){return!!(t.name||t.components&&Object.keys(t.com...
method parse (line 244) | parse(t,e,n){switch(e){case"q":case"qq":return kt(e.length,t);case"qo"...
method validate (line 244) | validate(t,e){return e>=1&&e<=4}
method set (line 244) | set(t,e,n){return t.setMonth(3*(n-1),1),t.setHours(0,0,0,0),t}
function zt (line 266) | function zt(t){const e={};if(""===t||"?"===t)return e;const n="?"===t[0]...
method constructor (line 6) | constructor(t,e,n){this.fn=t,this.setter=e,this._value=void 0,this.dep...
method notify (line 6) | notify(){if(this.flags|=16,!(8&this.flags||o===this))return f(this,!0)...
method value (line 6) | get value(){const t=this.dep.track();return y(this),t&&(t.version=this...
method value (line 6) | set value(t){this.setter&&this.setter(t)}
method parse (line 244) | parse(t,e,n){const i=t=>t-1;switch(e){case"M":return xt(yt(mt.month,t)...
method validate (line 244) | validate(t,e){return e>=0&&e<=11}
method set (line 244) | set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}
function Nt (line 266) | function Nt(t){let e="";for(let n in t){const i=t[n];if(n=A(n),null==i){...
method parse (line 244) | parse(t,e,n){const i=t=>t-1;switch(e){case"L":return xt(yt(mt.month,t)...
method validate (line 244) | validate(t,e){return e>=0&&e<=11}
method set (line 244) | set(t,e,n){return t.setMonth(n,1),t.setHours(0,0,0,0),t}
function Ft (line 266) | function Ft(t){const e={};for(const n in t){const i=t[n];void 0!==i&&(e[...
function Yt (line 266) | function Yt(){let t=[];function e(e){return t.push(e),()=>{const n=t.ind...
function Vt (line 266) | function Vt(t,e,n,i,r,o=(t=>t())){const s=i&&(i.enterCallbacks[r]=i.ente...
function Ut (line 266) | function Ut(t,e,n,i,r=(t=>t())){const o=[];for(const l of t){0;for(const...
method parse (line 244) | parse(t,e,n){switch(e){case"I":return yt(mt.week,t);case"Io":return n....
method validate (line 244) | validate(t,e){return e>=1&&e<=53}
method set (line 244) | set(t,e,n){return Pt(Vt(t,n))}
function qt (line 266) | function qt(t){const e=(0,i.f3)(Wt),n=(0,i.f3)($t);const o=(0,i.Fl)((()=...
function Xt (line 266) | function Xt(t){return 1===t.length?t[0]:t}
method inRange (line 258) | inRange(t,e,n,i){const{x:o,y:s}=h({x:t,y:e},this.getCenterPoint(i),(0,...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){t.save(),Y(t,this.getCenterPoint(),this.options.rotation),X(t,...
method label (line 258) | get label(){return this.elements&&this.elements[0]}
method resolveElementProperties (line 258) | resolveElementProperties(t,e){return vt(t,e)}
method setup (line 266) | setup(t,{slots:e}){const n=(0,r.qj)(qt(t)),{options:o}=(0,i.f3)(Wt),s=(0...
function Qt (line 266) | function Qt(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&!t.defa...
function Jt (line 266) | function Jt(t,e){for(const n in e){const i=e[n],r=t[n];if("string"===typ...
function Kt (line 266) | function Kt(t){return t?t.aliasOf?t.aliasOf.path:t.path:""}
method constructor (line 230) | constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void...
method init (line 230) | init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,...
method parse (line 230) | parse(t,e){return t}
method getUserBounds (line 230) | getUserBounds(){let{_userMin:t,_userMax:e,_suggestedMin:n,_suggestedMa...
method getMinMax (line 230) | getMinMax(t){let e,{min:n,max:r,minDefined:o,maxDefined:s}=this.getUse...
method getPadding (line 230) | getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,ri...
method getTicks (line 230) | getTicks(){return this.ticks}
method getLabels (line 230) | getLabels(){const t=this.chart.data;return this.options.labels||(this....
method getLabelItems (line 230) | getLabelItems(t=this.chart.chartArea){const e=this._labelItems||(this....
method beforeLayout (line 230) | beforeLayout(){this._cache={},this._dataLimitsCached=!1}
method beforeUpdate (line 230) | beforeUpdate(){(0,i.Q)(this.options.beforeUpdate,[this])}
method update (line 230) | update(t,e,n){const{beginAtZero:r,grace:o,ticks:s}=this.options,a=s.sa...
method configure (line 230) | configure(){let t,e,n=this.options.reverse;this.isHorizontal()?(t=this...
method afterUpdate (line 230) | afterUpdate(){(0,i.Q)(this.options.afterUpdate,[this])}
method beforeSetDimensions (line 230) | beforeSetDimensions(){(0,i.Q)(this.options.beforeSetDimensions,[this])}
method setDimensions (line 230) | setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.lef...
method afterSetDimensions (line 230) | afterSetDimensions(){(0,i.Q)(this.options.afterSetDimensions,[this])}
method _callHooks (line 230) | _callHooks(t){this.chart.notifyPlugins(t,this.getContext()),(0,i.Q)(th...
method beforeDataLimits (line 230) | beforeDataLimits(){this._callHooks("beforeDataLimits")}
method determineDataLimits (line 230) | determineDataLimits(){}
method afterDataLimits (line 230) | afterDataLimits(){this._callHooks("afterDataLimits")}
method beforeBuildTicks (line 230) | beforeBuildTicks(){this._callHooks("beforeBuildTicks")}
method buildTicks (line 230) | buildTicks(){return[]}
method afterBuildTicks (line 230) | afterBuildTicks(){this._callHooks("afterBuildTicks")}
method beforeTickToLabelConversion (line 230) | beforeTickToLabelConversion(){(0,i.Q)(this.options.beforeTickToLabelCo...
method generateTickLabels (line 230) | generateTickLabels(t){const e=this.options.ticks;let n,r,o;for(n=0,r=t...
method afterTickToLabelConversion (line 230) | afterTickToLabelConversion(){(0,i.Q)(this.options.afterTickToLabelConv...
method beforeCalculateLabelRotation (line 230) | beforeCalculateLabelRotation(){(0,i.Q)(this.options.beforeCalculateLab...
method calculateLabelRotation (line 230) | calculateLabelRotation(){const t=this.options,e=t.ticks,n=Bt(this.tick...
method afterCalculateLabelRotation (line 230) | afterCalculateLabelRotation(){(0,i.Q)(this.options.afterCalculateLabel...
method afterAutoSkip (line 230) | afterAutoSkip(){}
method beforeFit (line 230) | beforeFit(){(0,i.Q)(this.options.beforeFit,[this])}
method fit (line 230) | fit(){const t={width:0,height:0},{chart:e,options:{ticks:n,title:r,gri...
method _calculatePadding (line 230) | _calculatePadding(t,e,n,i){const{ticks:{align:r,padding:o},position:s}...
method _handleMargins (line 230) | _handleMargins(){this._margins&&(this._margins.left=Math.max(this.padd...
method afterFit (line 230) | afterFit(){(0,i.Q)(this.options.afterFit,[this])}
method isHorizontal (line 230) | isHorizontal(){const{axis:t,position:e}=this.options;return"top"===e||...
method isFullSize (line 230) | isFullSize(){return this.options.fullSize}
method _convertTicksToLabels (line 230) | _convertTicksToLabels(t){let e,n;for(this.beforeTickToLabelConversion(...
method _getLabelSizes (line 230) | _getLabelSizes(){let t=this._labelSizes;if(!t){const e=this.options.ti...
method _computeLabelSizes (line 230) | _computeLabelSizes(t,e,n){const{ctx:r,_longestTextCache:o}=this,s=[],a...
method getLabelForValue (line 230) | getLabelForValue(t){return t}
method getPixelForValue (line 230) | getPixelForValue(t,e){return NaN}
method getValueForPixel (line 230) | getValueForPixel(t){}
method getPixelForTick (line 230) | getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:th...
method getPixelForDecimal (line 230) | getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._start...
method getDecimalForPixel (line 230) | getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return...
method getBasePixel (line 230) | getBasePixel(){return this.getPixelForValue(this.getBaseValue())}
method getBaseValue (line 230) | getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}
method getContext (line 230) | getContext(t){const e=this.ticks||[];if(t>=0&&t=0&&e<=6}
method set (line 244) | set(t,e,n,i){return t=Jt(t,n,i),t.setHours(0,0,0,0),t}
method setup (line 266) | setup(t,{attrs:e,slots:n}){const o=(0,i.f3)(Bt),s=(0,i.Fl)((()=>t.route|...
function ne (line 266) | function ne(t,e){if(!t)return null;const n=t(e);return 1===n.length?n[0]:n}
method inRange (line 258) | inRange(t,e,n,i){return y({x:t,y:e},{rect:this.getProps(["x","y","x2",...
method getCenterPoint (line 258) | getCenterPoint(t){return v(this,t)}
method draw (line 258) | draw(t){const e=this.options,n=!(0,r.h)(this._visible)||this._visible;...
method resolveElementProperties (line 258) | resolveElementProperties(t,e){let n;if(I(e))n=mt(t,e);else{const{cente...
function re (line 266) | function re(t){const e=Tt(t.routes,t),n=t.parseQuery||zt,s=t.stringifyQu...
method constructor (line 230) | constructor(){this.controllers=new te(P,"datasets",!0),this.elements=n...
method add (line 230) | add(...t){this._each("register",t)}
method remove (line 230) | remove(...t){this._each("unregister",t)}
method addControllers (line 230) | addControllers(...t){this._each("register",t,this.controllers)}
method addElements (line 230) | addElements(...t){this._each("register",t,this.elements)}
method addPlugins (line 230) | addPlugins(...t){this._each("register",t,this.plugins)}
method addScales (line 230) | addScales(...t){this._each("register",t,this.scales)}
method getController (line 230) | getController(t){return this._get(t,this.controllers,"controller")}
method getElement (line 230) | getElement(t){return this._get(t,this.elements,"element")}
method getPlugin (line 230) | getPlugin(t){return this._get(t,this.plugins,"plugin")}
method getScale (line 230) | getScale(t){return this._get(t,this.scales,"scale")}
method removeControllers (line 230) | removeControllers(...t){this._each("unregister",t,this.controllers)}
method removeElements (line 230) | removeElements(...t){this._each("unregister",t,this.elements)}
method removePlugins (line 230) | removePlugins(...t){this._each("unregister",t,this.plugins)}
method removeScales (line 230) | removeScales(...t){this._each("unregister",t,this.scales)}
method _each (line 230) | _each(t,e,n){[...e].forEach((e=>{const r=n||this._getRegistryForType(e...
method _exec (line 230) | _exec(t,e,n){const r=(0,i.a5)(t);(0,i.Q)(n["before"+r],[],n),e[t](n),(...
method _getRegistryForType (line 230) | _getRegistryForType(t){for(let e=0;e0===t?7:t;switch(e){case"i":case"ii":return kt...
method validate (line 244) | validate(t,e){return e>=1&&e<=7}
method set (line 244) | set(t,e,n){return t=ie(t,n),t.setHours(0,0,0,0),t}
function oe (line 266) | function oe(t,e){const n=[],i=[],r=[],o=Math.max(e.matched.length,t.matc...
method parse (line 244) | parse(t,e,n){switch(e){case"a":case"aa":case"aaa":return n.dayPeriod(t...
method set (line 244) | set(t,e,n){return t.setHours(Mt(n),0,0,0),t}
function se (line 266) | function se(){return(0,i.f3)(Wt)}
method constructor (line 230) | constructor(){this._init=void 0}
method notify (line 230) | notify(t,e,n,i){if("beforeInit"===e&&(this._init=this._createDescripto...
method _notify (line 230) | _notify(t,e,n,r){r=r||{};for(const o of t){const t=o.plugin,s=t[n],a=[...
method invalidate (line 230) | invalidate(){(0,i.k)(this._cache)||(this._oldCache=this._cache,this._c...
method _descriptors (line 230) | _descriptors(t){if(this._cache)return this._cache;const e=this._cache=...
method _createDescriptors (line 230) | _createDescriptors(t,e){const n=t&&t.config,r=(0,i.v)(n.options&&n.opt...
method _notifyStateChanges (line 230) | _notifyStateChanges(t){const e=this._oldCache||[],n=this._cache,i=(t,e...
method parse (line 244) | parse(t,e,n){switch(e){case"b":case"bb":case"bbb":return n.dayPeriod(t...
method set (line 244) | set(t,e,n){return t.setHours(Mt(n),0,0,0),t}
function ae (line 266) | function ae(t){return(0,i.f3)($t)}
method parse (line 244) | parse(t,e,n){switch(e){case"B":case"BB":case"BBB":return n.dayPeriod(t...
method set (line 244) | set(t,e,n){return t.setHours(Mt(n),0,0,0),t}
FILE: web/static_test.go
function TestEmbed (line 9) | func TestEmbed(t *testing.T) {