diff --git a/go.mod b/go.mod
index 588c54b5..5de20542 100644
--- a/go.mod
+++ b/go.mod
@@ -12,7 +12,9 @@ require (
github.com/imdario/mergo v0.3.11 // indirect
github.com/miekg/dns v1.1.35
github.com/prometheus/client_golang v1.9.0
+ github.com/wcharczuk/go-chart/v2 v2.1.0
golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad // indirect
+ golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d // indirect
golang.org/x/net v0.0.0-20201224014010-6772e930b67b // indirect
golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf // indirect
golang.org/x/time v0.0.0-20201208040808-7e3f01d25324 // indirect
diff --git a/go.sum b/go.sum
index 1c750015..095c456b 100644
--- a/go.sum
+++ b/go.sum
@@ -146,6 +146,8 @@ github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls=
github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
+github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
+github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@@ -424,6 +426,8 @@ github.com/tidwall/redcon v1.3.2/go.mod h1:bdYBm4rlcWpst2XMwKVzWDF9CoUxEbUmM7CQr
github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
+github.com/wcharczuk/go-chart/v2 v2.1.0 h1:tY2slqVQ6bN+yHSnDYwZebLQFkphK4WNrVwnt7CJZ2I=
+github.com/wcharczuk/go-chart/v2 v2.1.0/go.mod h1:yx7MvAVNcP/kN9lKXM/NTce4au4DFN99j6i1OwDclNA=
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@@ -472,6 +476,9 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
+golang.org/x/image v0.0.0-20200927104501-e162460cd6b5/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
+golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d h1:RNPAfi2nHY7C2srAV8A49jpsYr0ADedCk1wq6fTMTvs=
+golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -622,8 +629,9 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc=
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
+golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
diff --git a/web/app/package-lock.json b/web/app/package-lock.json
index aaed36d3..00796226 100644
--- a/web/app/package-lock.json
+++ b/web/app/package-lock.json
@@ -8,12 +8,9 @@
"name": "gatus",
"version": "2.0.0",
"dependencies": {
- "chart.js": "^3.5.0",
"core-js": "^3.16.1",
"vue": "^3.2.2",
- "vue-chart-3": "^0.5.7",
- "vue-router": "^4.0.11",
- "vue3-chart-v2": "^0.8.2"
+ "vue-router": "^4.0.11"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^5.0.0-beta.0",
@@ -1806,14 +1803,6 @@
"@types/node": "*"
}
},
- "node_modules/@types/chart.js": {
- "version": "2.9.34",
- "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.34.tgz",
- "integrity": "sha512-CtZVk+kh1IN67dv+fB0CWmCLCRrDJgqOj15qPic2B1VCMovNO6B7Vhf/TgPpNscjhAL1j+qUntDMWb9A4ZmPTg==",
- "dependencies": {
- "moment": "^2.10.2"
- }
- },
"node_modules/@types/connect": {
"version": "3.4.34",
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz",
@@ -3918,28 +3907,6 @@
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
"dev": true
},
- "node_modules/chart.js": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.5.0.tgz",
- "integrity": "sha512-J1a4EAb1Gi/KbhwDRmoovHTRuqT8qdF0kZ4XgwxpGethJHUdDrkqyPYwke0a+BuvSeUxPf8Cos6AX2AB8H8GLA=="
- },
- "node_modules/chartjs-color": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz",
- "integrity": "sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==",
- "dependencies": {
- "chartjs-color-string": "^0.6.0",
- "color-convert": "^1.9.3"
- }
- },
- "node_modules/chartjs-color-string": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz",
- "integrity": "sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==",
- "dependencies": {
- "color-name": "^1.0.0"
- }
- },
"node_modules/chokidar": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
@@ -4255,6 +4222,7 @@
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
"dependencies": {
"color-name": "1.1.3"
}
@@ -4262,7 +4230,8 @@
"node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
},
"node_modules/color-string": {
"version": "1.6.0",
@@ -8189,7 +8158,8 @@
"node_modules/lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true
},
"node_modules/lodash.camelcase": {
"version": "4.3.0",
@@ -8724,14 +8694,6 @@
"integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==",
"dev": true
},
- "node_modules/moment": {
- "version": "2.29.1",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
- "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==",
- "engines": {
- "node": "*"
- }
- },
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -8785,6 +8747,7 @@
"version": "3.1.23",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz",
"integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==",
+ "dev": true,
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -13094,51 +13057,6 @@
"@vue/shared": "3.2.2"
}
},
- "node_modules/vue-chart-3": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/vue-chart-3/-/vue-chart-3-0.5.7.tgz",
- "integrity": "sha512-BccfPv2rodY6IOppYHvMluVmIJE1CHfp5uW2DXrHrm1kIzaafLwpQ5SwdrxuCevn/QhKoi7azzcxwRcoWbX9hg==",
- "dependencies": {
- "@vue/runtime-core": "latest",
- "@vue/runtime-dom": "latest",
- "csstype": "latest",
- "lodash": "latest",
- "nanoid": "latest",
- "vue-demi": "^0.10.1"
- },
- "peerDependencies": {
- "@vue/composition-api": "^1.0.4",
- "chart.js": "^3.1.0",
- "vue": "^2.0.0 || >=3.0.0-rc.0"
- },
- "peerDependenciesMeta": {
- "@vue/composition-api": {
- "optional": true
- }
- }
- },
- "node_modules/vue-chart-3/node_modules/vue-demi": {
- "version": "0.10.1",
- "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.10.1.tgz",
- "integrity": "sha512-L6Oi+BvmMv6YXvqv5rJNCFHEKSVu7llpWWJczqmAQYOdmPPw5PNYoz1KKS//Fxhi+4QP64dsPjtmvnYGo1jemA==",
- "hasInstallScript": true,
- "bin": {
- "vue-demi-fix": "bin/vue-demi-fix.js",
- "vue-demi-switch": "bin/vue-demi-switch.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "@vue/composition-api": "^1.0.0-rc.1",
- "vue": "^2.6.0 || >=3.0.0"
- },
- "peerDependenciesMeta": {
- "@vue/composition-api": {
- "optional": true
- }
- }
- },
"node_modules/vue-eslint-parser": {
"version": "7.10.0",
"resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.10.0.tgz",
@@ -13332,38 +13250,6 @@
"integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
"dev": true
},
- "node_modules/vue3-chart-v2": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/vue3-chart-v2/-/vue3-chart-v2-0.8.2.tgz",
- "integrity": "sha512-J+v3Q0ayYyWstPY1zOmdx6l/wkHT63Kzrp5X5PNNXrSUoJT8p608danWIJtncpWhuJB8qQ3t2/jWsg4WF8qJjg==",
- "dependencies": {
- "@types/chart.js": "^2.9.29",
- "chart.js": "^2.9.4",
- "core-js": "^3.6.5",
- "prettier": "^2.2.1",
- "vue": "^3.0.0"
- }
- },
- "node_modules/vue3-chart-v2/node_modules/chart.js": {
- "version": "2.9.4",
- "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz",
- "integrity": "sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==",
- "dependencies": {
- "chartjs-color": "^2.1.0",
- "moment": "^2.10.2"
- }
- },
- "node_modules/vue3-chart-v2/node_modules/prettier": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz",
- "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==",
- "bin": {
- "prettier": "bin-prettier.js"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
"node_modules/watchpack": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz",
@@ -15997,14 +15883,6 @@
"@types/node": "*"
}
},
- "@types/chart.js": {
- "version": "2.9.34",
- "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.34.tgz",
- "integrity": "sha512-CtZVk+kh1IN67dv+fB0CWmCLCRrDJgqOj15qPic2B1VCMovNO6B7Vhf/TgPpNscjhAL1j+qUntDMWb9A4ZmPTg==",
- "requires": {
- "moment": "^2.10.2"
- }
- },
"@types/connect": {
"version": "3.4.34",
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz",
@@ -17708,28 +17586,6 @@
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
"dev": true
},
- "chart.js": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.5.0.tgz",
- "integrity": "sha512-J1a4EAb1Gi/KbhwDRmoovHTRuqT8qdF0kZ4XgwxpGethJHUdDrkqyPYwke0a+BuvSeUxPf8Cos6AX2AB8H8GLA=="
- },
- "chartjs-color": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz",
- "integrity": "sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==",
- "requires": {
- "chartjs-color-string": "^0.6.0",
- "color-convert": "^1.9.3"
- }
- },
- "chartjs-color-string": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz",
- "integrity": "sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==",
- "requires": {
- "color-name": "^1.0.0"
- }
- },
"chokidar": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
@@ -17970,6 +17826,7 @@
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
"requires": {
"color-name": "1.1.3"
}
@@ -17977,7 +17834,8 @@
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
},
"color-string": {
"version": "1.6.0",
@@ -20997,7 +20855,8 @@
"lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true
},
"lodash.camelcase": {
"version": "4.3.0",
@@ -21422,11 +21281,6 @@
"integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==",
"dev": true
},
- "moment": {
- "version": "2.29.1",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
- "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
- },
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -21476,7 +21330,8 @@
"nanoid": {
"version": "3.1.23",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz",
- "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw=="
+ "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==",
+ "dev": true
},
"nanomatch": {
"version": "1.2.13",
@@ -24749,27 +24604,6 @@
"@vue/shared": "3.2.2"
}
},
- "vue-chart-3": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/vue-chart-3/-/vue-chart-3-0.5.7.tgz",
- "integrity": "sha512-BccfPv2rodY6IOppYHvMluVmIJE1CHfp5uW2DXrHrm1kIzaafLwpQ5SwdrxuCevn/QhKoi7azzcxwRcoWbX9hg==",
- "requires": {
- "@vue/runtime-core": "latest",
- "@vue/runtime-dom": "latest",
- "csstype": "latest",
- "lodash": "latest",
- "nanoid": "latest",
- "vue-demi": "^0.10.1"
- },
- "dependencies": {
- "vue-demi": {
- "version": "0.10.1",
- "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.10.1.tgz",
- "integrity": "sha512-L6Oi+BvmMv6YXvqv5rJNCFHEKSVu7llpWWJczqmAQYOdmPPw5PNYoz1KKS//Fxhi+4QP64dsPjtmvnYGo1jemA==",
- "requires": {}
- }
- }
- },
"vue-eslint-parser": {
"version": "7.10.0",
"resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.10.0.tgz",
@@ -24915,34 +24749,6 @@
"integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
"dev": true
},
- "vue3-chart-v2": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/vue3-chart-v2/-/vue3-chart-v2-0.8.2.tgz",
- "integrity": "sha512-J+v3Q0ayYyWstPY1zOmdx6l/wkHT63Kzrp5X5PNNXrSUoJT8p608danWIJtncpWhuJB8qQ3t2/jWsg4WF8qJjg==",
- "requires": {
- "@types/chart.js": "^2.9.29",
- "chart.js": "^2.9.4",
- "core-js": "^3.6.5",
- "prettier": "^2.2.1",
- "vue": "^3.0.0"
- },
- "dependencies": {
- "chart.js": {
- "version": "2.9.4",
- "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz",
- "integrity": "sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==",
- "requires": {
- "chartjs-color": "^2.1.0",
- "moment": "^2.10.2"
- }
- },
- "prettier": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz",
- "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ=="
- }
- }
- },
"watchpack": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz",
diff --git a/web/app/package.json b/web/app/package.json
index 7b1f9fa4..aeff1a4b 100644
--- a/web/app/package.json
+++ b/web/app/package.json
@@ -8,11 +8,9 @@
"lint": "vue-cli-service lint"
},
"dependencies": {
- "chart.js": "^3.5.0",
"core-js": "^3.16.1",
"vue": "^3.2.2",
- "vue-router": "^4.0.11",
- "vue3-chart-v2": "^0.8.2"
+ "vue-router": "^4.0.11"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^5.0.0-beta.0",
diff --git a/web/app/src/components/Chart.vue b/web/app/src/components/Chart.vue
deleted file mode 100644
index 5bae19d8..00000000
--- a/web/app/src/components/Chart.vue
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
-
diff --git a/web/app/src/views/Details.vue b/web/app/src/views/Details.vue
index 225691c5..8a3c244f 100644
--- a/web/app/src/views/Details.vue
+++ b/web/app/src/views/Details.vue
@@ -16,45 +16,44 @@
/>
f?z(e,i,c,!0,!1,p):R(t,n,r,i,c,s,u,l,p)},q=(e,t,n,r,i,c,s,u,l)=>{let a=0;const f=t.length;let p=e.length-1,d=f-1;while(a<=p&&a<=d){const r=e[a],o=t[a]=l?_t(t[a]):wt(t[a]);if(!at(r,o))break;x(r,o,n,null,i,c,s,u,l),a++}while(a<=p&&a<=d){const r=e[p],o=t[d]=l?_t(t[d]):wt(t[d]);if(!at(r,o))break;x(r,o,n,null,i,c,s,u,l),p--,d--}if(a>p){if(a<=d){const e=d+1,o=e=t[e].length&&t[e].push({}),!t[e][a].type||o.type&&o.type!==t[e][a].type?ue.merge(t[e][a],[Tn.getScaleDefaults(i),o]):ue.merge(t[e][a],o)}else ue._merger(e,t,n,r)}})}function Un(){return ue.merge(Object.create(null),[].slice.call(arguments),{merger:function(e,t,n,r){var a=t[e]||Object.create(null),i=n[e];"scales"===e?t[e]=Jn(a,i):"scale"===e?t[e]=ue.merge(a,[Tn.getScaleDefaults(i.type),i]):ue._merger(e,t,n,r)}})}function Gn(e){e=e||Object.create(null);var t=e.data=e.data||{};return t.datasets=t.datasets||[],t.labels=t.labels||[],e.options=Un(X.global,X[e.type],e.options||{}),e}function qn(e){var t=e.options;ue.each(e.scales,(function(t){$t.removeBox(e,t)})),t=Un(X.global,X[e.config.type],t),e.options=e.config.options=t,e.ensureScalesHaveIDs(),e.buildOrUpdateScales(),e.tooltip._options=t.tooltips,e.tooltip.initialize()}function $n(e,t,n){var r,a=function(e){return e.id===r};do{r=t+n++}while(ue.findIndex(e,a)>=0);return r}function Kn(e){return"top"===e||"bottom"===e}function Zn(e,t){return function(n,r){return n[e]===r[e]?n[t]-r[t]:n[e]-r[e]}}X._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var Xn=function(e,t){return this.construct(e,t),this};ue.extend(Xn.prototype,{construct:function(e,t){var n=this;t=Gn(t);var r=Dn.acquireContext(e,t),a=r&&r.canvas,i=a&&a.height,o=a&&a.width;n.id=ue.uid(),n.ctx=r,n.canvas=a,n.config=t,n.width=o,n.height=i,n.aspectRatio=i?o/i:null,n.options=t.options,n._bufferedRender=!1,n._layers=[],n.chart=n,n.controller=n,Xn.instances[n.id]=n,Object.defineProperty(n,"data",{get:function(){return n.config.data},set:function(e){n.config.data=e}}),r&&a?(n.initialize(),n.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var e=this;return xn.notify(e,"beforeInit"),ue.retinaScale(e,e.options.devicePixelRatio),e.bindEvents(),e.options.responsive&&e.resize(!0),e.initToolTip(),xn.notify(e,"afterInit"),e},clear:function(){return ue.canvas.clear(this),this},stop:function(){return Le.cancelAnimation(this),this},resize:function(e){var t=this,n=t.options,r=t.canvas,a=n.maintainAspectRatio&&t.aspectRatio||null,i=Math.max(0,Math.floor(ue.getMaximumWidth(r))),o=Math.max(0,Math.floor(a?i/a:ue.getMaximumHeight(r)));if((t.width!==i||t.height!==o)&&(r.width=t.width=i,r.height=t.height=o,r.style.width=i+"px",r.style.height=o+"px",ue.retinaScale(t,n.devicePixelRatio),!e)){var s={width:i,height:o};xn.notify(t,"resize",[s]),n.onResize&&n.onResize(t,s),t.stop(),t.update({duration:n.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var e=this.options,t=e.scales||{},n=e.scale;ue.each(t.xAxes,(function(e,n){e.id||(e.id=$n(t.xAxes,"x-axis-",n))})),ue.each(t.yAxes,(function(e,n){e.id||(e.id=$n(t.yAxes,"y-axis-",n))})),n&&(n.id=n.id||"scale")},buildOrUpdateScales:function(){var e=this,t=e.options,n=e.scales||{},r=[],a=Object.keys(n).reduce((function(e,t){return e[t]=!1,e}),{});t.scales&&(r=r.concat((t.scales.xAxes||[]).map((function(e){return{options:e,dtype:"category",dposition:"bottom"}})),(t.scales.yAxes||[]).map((function(e){return{options:e,dtype:"linear",dposition:"left"}})))),t.scale&&r.push({options:t.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),ue.each(r,(function(t){var r=t.options,i=r.id,o=Bn(r.type,t.dtype);Kn(r.position)!==Kn(t.dposition)&&(r.position=t.dposition),a[i]=!0;var s=null;if(i in n&&n[i].type===o)s=n[i],s.options=r,s.ctx=e.ctx,s.chart=e;else{var d=Tn.getScaleConstructor(o);if(!d)return;s=new d({id:i,type:o,options:r,ctx:e.ctx,chart:e}),n[s.id]=s}s.mergeTicksOptions(),t.isDefault&&(e.scale=s)})),ue.each(a,(function(e,t){e||delete n[t]})),e.scales=n,Tn.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e,t,n=this,r=[],a=n.data.datasets;for(e=0,t=a.length;e=0&&(o=e)),void 0!==i&&(e=n.indexOf(i),e>=0&&(s=e)),t.minIndex=o,t.maxIndex=s,t.min=n[o],t.max=n[s]},buildTicks:function(){var e=this,t=e._getLabels(),n=e.minIndex,r=e.maxIndex;e.ticks=0===n&&r===t.length-1?t:t.slice(n,r+1)},getLabelForIndex:function(e,t){var n=this,r=n.chart;return r.getDatasetMeta(t).controller._getValueScaleId()===n.id?n.getRightValue(r.data.datasets[t].data[e]):n._getLabels()[e]},_configure:function(){var e=this,t=e.options.offset,n=e.ticks;wr.prototype._configure.call(e),e.isHorizontal()||(e._reversePixels=!e._reversePixels),n&&(e._startValue=e.minIndex-(t?.5:0),e._valueRange=Math.max(n.length-(t?0:1),1))},getPixelForValue:function(e,t,n){var r,a,i,o=this;return Dr(t)||Dr(n)||(e=o.chart.data.datasets[n].data[t]),Dr(e)||(r=o.isHorizontal()?e.x:e.y),(void 0!==r||void 0!==e&&isNaN(t))&&(a=o._getLabels(),e=ue.valueOrDefault(r,e),i=a.indexOf(e),t=-1!==i?i:t,isNaN(t)&&(t=e)),o.getPixelForDecimal((t-o._startValue)/o._valueRange)},getPixelForTick:function(e){var t=this.ticks;return e<0||e>t.length-1?null:this.getPixelForValue(t[e],e+this.minIndex)},getValueForPixel:function(e){var t=this,n=Math.round(t._startValue+t.getDecimalForPixel(e)*t._valueRange);return Math.min(Math.max(n,0),t.ticks.length-1)},getBasePixel:function(){return this.bottom}}),Sr=xr;Tr._defaults=Sr;var Hr=ue.noop,Pr=ue.isNullOrUndef;function jr(e,t){var n,r,a,i,o=[],s=1e-14,d=e.stepSize,l=d||1,u=e.maxTicks-1,c=e.min,_=e.max,h=e.precision,m=t.min,f=t.max,p=ue.niceNum((f-m)/u/l)*l;if(pu&&(p=ue.niceNum(i*p/u/l)*l),d||Pr(h)?n=Math.pow(10,ue._decimalPlaces(p)):(n=Math.pow(10,h),p=Math.ceil(p*n)/n),r=Math.floor(m/p)*p,a=Math.ceil(f/p)*p,d&&(!Pr(c)&&ue.almostWhole(c/p,p/1e3)&&(r=c),!Pr(_)&&ue.almostWhole(_/p,p/1e3)&&(a=_)),i=(a-r)/p,i=ue.almostEquals(i,Math.round(i),p/1e3)?Math.round(i):Math.ceil(i),r=Math.round(r*n)/n,a=Math.round(a*n)/n,o.push(Pr(c)?r:c);for(var g=1;g0&&a>0&&(e.min=0)}var i=void 0!==n.min||void 0!==n.suggestedMin,o=void 0!==n.max||void 0!==n.suggestedMax;void 0!==n.min?e.min=n.min:void 0!==n.suggestedMin&&(null===e.min?e.min=n.suggestedMin:e.min=Math.min(e.min,n.suggestedMin)),void 0!==n.max?e.max=n.max:void 0!==n.suggestedMax&&(null===e.max?e.max=n.suggestedMax:e.max=Math.max(e.max,n.suggestedMax)),i!==o&&e.min>=e.max&&(i?e.max=e.min+1:e.min=e.max-1),e.min===e.max&&(e.max++,n.beginAtZero||e.min--)},getTickLimit:function(){var e,t=this,n=t.options.ticks,r=n.stepSize,a=n.maxTicksLimit;return r?e=Math.ceil(t.max/r)-Math.floor(t.min/r)+1:(e=t._computeTickLimit(),a=a||11),a&&(e=Math.min(a,e)),e},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:Hr,buildTicks:function(){var e=this,t=e.options,n=t.ticks,r=e.getTickLimit();r=Math.max(2,r);var a={maxTicks:r,min:n.min,max:n.max,precision:n.precision,stepSize:ue.valueOrDefault(n.fixedStepSize,n.stepSize)},i=e.ticks=jr(a,e);e.handleDirectionalChanges(),e.max=ue.max(i),e.min=ue.min(i),n.reverse?(i.reverse(),e.start=e.max,e.end=e.min):(e.start=e.min,e.end=e.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),wr.prototype.convertTicksToLabels.call(e)},_configure:function(){var e,t=this,n=t.getTicks(),r=t.min,a=t.max;wr.prototype._configure.call(t),t.options.offset&&n.length&&(e=(a-r)/Math.max(n.length-1,1)/2,r-=e,a+=e),t._startValue=r,t._endValue=a,t._valueRange=a-r}}),Ar={position:"left",ticks:{callback:ir.formatters.linear}},Cr=0,Fr=1;function Er(e,t,n){var r=[n.type,void 0===t&&void 0===n.stack?n.index:"",n.stack].join(".");return void 0===e[r]&&(e[r]={pos:[],neg:[]}),e[r]}function Wr(e,t,n,r){var a,i,o=e.options,s=o.stacked,d=Er(t,s,n),l=d.pos,u=d.neg,c=r.length;for(a=0;ai.r&&(i.r=u.end,o.r=d),c.start0&&r>0?n:0)},_drawGrid:function(){var e,t,n,r=this,a=r.ctx,i=r.options,o=i.gridLines,s=i.angleLines,d=$r(s.lineWidth,o.lineWidth),l=$r(s.color,o.color);if(i.pointLabels.display&&oa(r),o.display&&ue.each(r.ticks,(function(e,n){0!==n&&(t=r.getDistanceFromCenterForValue(r.ticksAsNumbers[n]),sa(r,o,t,n))})),s.display&&d&&l){for(a.save(),a.lineWidth=d,a.strokeStyle=l,a.setLineDash&&(a.setLineDash(Zr([s.borderDash,o.borderDash,[]])),a.lineDashOffset=Zr([s.borderDashOffset,o.borderDashOffset,0])),e=r.chart.data.labels.length-1;e>=0;e--)t=r.getDistanceFromCenterForValue(i.ticks.reverse?r.min:r.max),n=r.getPointPosition(e,t),a.beginPath(),a.moveTo(r.xCenter,r.yCenter),a.lineTo(n.x,n.y),a.stroke();a.restore()}},_drawLabels:function(){var e=this,t=e.ctx,n=e.options,r=n.ticks;if(r.display){var a,i,o=e.getIndexAngle(0),s=ue.options._parseFont(r),d=$r(r.fontColor,X.global.defaultFontColor);t.save(),t.font=s.string,t.translate(e.xCenter,e.yCenter),t.rotate(o),t.textAlign="center",t.textBaseline="middle",ue.each(e.ticks,(function(n,o){(0!==o||r.reverse)&&(a=e.getDistanceFromCenterForValue(e.ticksAsNumbers[o]),r.showLabelBackdrop&&(i=t.measureText(n).width,t.fillStyle=r.backdropColor,t.fillRect(-i/2-r.backdropPaddingX,-a-s.size/2-r.backdropPaddingY,i+2*r.backdropPaddingX,s.size+2*r.backdropPaddingY)),t.fillStyle=d,t.fillText(n,0,-a))})),t.restore()}},_drawTitle:ue.noop}),ua=Xr;la._defaults=ua;var ca=ue._deprecated,_a=ue.options.resolve,ha=ue.valueOrDefault,ma=Number.MIN_SAFE_INTEGER||-9007199254740991,fa=Number.MAX_SAFE_INTEGER||9007199254740991,pa={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},ga=Object.keys(pa);function ya(e,t){return e-t}function Ma(e){var t,n,r,a={},i=[];for(t=0,n=e.length;t1?Ma(m).sort(ya):m.sort(ya),_=Math.min(_,m[0]),h=Math.max(h,m[m.length-1])),_=Da(s,va(u))||_,h=Da(s,La(u))||h,_=_===fa?+l.startOf(Date.now(),c):_,h=h===ma?+l.endOf(Date.now(),c)+1:h,s.min=Math.min(_,h),s.max=Math.max(_+1,h),s._table=[],s._timestamps={data:m,datasets:f,labels:p}},buildTicks:function(){var e,t,n,r=this,a=r.min,i=r.max,o=r.options,s=o.ticks,d=o.time,l=r._timestamps,u=[],c=r.getLabelCapacity(a),_=s.source,h=o.distribution;for(l="data"===_||"auto"===_&&"series"===h?l.data:"labels"===_?l.labels:Ha(r,a,i,c),"ticks"===o.bounds&&l.length&&(a=l[0],i=l[l.length-1]),a=Da(r,va(o))||a,i=Da(r,La(o))||i,e=0,t=l.length;e=0;--n)t=d[n].$filler,t&&t.visible&&(r=t.el,a=r._view,i=r._children||[],o=t.mapper,s=a.backgroundColor||X.global.defaultColor,o&&s&&i.length&&(ue.canvas.clipArea(l,e.chartArea),qa(l,i,o,a,s,r._loop),ue.canvas.unclipArea(l)))}},Ka=ue.rtl.getRtlAdapter,Za=ue.noop,Xa=ue.valueOrDefault;function Qa(e,t){return e.usePointStyle&&e.boxWidth>t?t:e.boxWidth}X._set("global",{legend:{display:!0,position:"top",align:"center",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(e,t){var n=t.datasetIndex,r=this.chart,a=r.getDatasetMeta(n);a.hidden=null===a.hidden?!r.data.datasets[n].hidden:null,r.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(e){var t=e.data.datasets,n=e.options.legend||{},r=n.labels&&n.labels.usePointStyle;return e._getSortedDatasetMetas().map((function(n){var a=n.controller.getStyle(r?0:void 0);return{text:t[n.index].label,fillStyle:a.backgroundColor,hidden:!e.isDatasetVisible(n.index),lineCap:a.borderCapStyle,lineDash:a.borderDash,lineDashOffset:a.borderDashOffset,lineJoin:a.borderJoinStyle,lineWidth:a.borderWidth,strokeStyle:a.borderColor,pointStyle:a.pointStyle,rotation:a.rotation,datasetIndex:n.index}}),this)}}},legendCallback:function(e){var t,n,r,a,i=document.createElement("ul"),o=e.data.datasets;for(i.setAttribute("class",e.id+"-legend"),t=0,n=o.length;t