@@ -36,7 +36,7 @@
{
}
diff --git a/CrohnsDiary.App/Pages/Reports.razor.cs b/CrohnsDiary.App/Pages/Reports.razor.cs
index f77572e..07b5d52 100644
--- a/CrohnsDiary.App/Pages/Reports.razor.cs
+++ b/CrohnsDiary.App/Pages/Reports.razor.cs
@@ -28,23 +28,23 @@ public partial class Reports
public DateRange Range { get; set; } = new(DateTime.Today.AddMonths(-1), DateTime.Today);
- private ChartOptions Options { get; } = new ChartOptions
+ private LineChartOptions Options { get; } = new LineChartOptions
{
YAxisTicks = 1,
YAxisRequireZeroPoint = true,
YAxisLines = true
};
private string[] DayLabels { get; set; } = [];
- private List
Series { get; } = new();
+ private List> Series { get; } = new();
- private ChartOptions BloodPressureOptions { get; } = new ChartOptions
+ private LineChartOptions BloodPressureOptions { get; } = new LineChartOptions
{
YAxisTicks = 10,
YAxisRequireZeroPoint = false,
YAxisLines = true
};
private string[] BloodPressureDayLabels { get; set; } = [];
- private List BloodPressureSeries { get; } = new();
+ private List> BloodPressureSeries { get; } = new();
private IReadOnlyList dailyReports = [];
@@ -103,7 +103,7 @@ private async Task FillChart()
var entryCounts = dailyEntries
.Select(d => (double)d.Entries.Length)
.ToArray();
- Series.Add(new ChartSeries{Name = Loc["Count"], Data = entryCounts});
+ Series.Add(new ChartSeries{Name = Loc["Count"], Data = new ChartData(entryCounts)});
var consistencies = dailyEntries
.Select(d =>
@@ -115,7 +115,7 @@ private async Task FillChart()
.ToArray();
if (_showConsistency)
{
- Series.Add(new ChartSeries { Name = Loc["AverageConsistency"], Data = consistencies });
+ Series.Add(new ChartSeries { Name = Loc["AverageConsistency"], Data = new ChartData(consistencies) });
}
var urgencies = dailyEntries
@@ -128,7 +128,7 @@ private async Task FillChart()
.ToArray();
if (_showUrgency)
{
- Series.Add(new ChartSeries { Name = Loc["AverageUrgency"], Data = urgencies });
+ Series.Add(new ChartSeries { Name = Loc["AverageUrgency"], Data = new ChartData(urgencies) });
}
var airs = dailyEntries
@@ -141,7 +141,7 @@ private async Task FillChart()
.ToArray();
if (_showAir)
{
- Series.Add(new ChartSeries { Name = Loc["AverageAir"], Data = airs });
+ Series.Add(new ChartSeries { Name = Loc["AverageAir"], Data = new ChartData(airs) });
}
// Add custom number metrics to the chart
@@ -160,7 +160,7 @@ private async Task FillChart()
if (customMetricValues.Any(v => v > 0))
{
- Series.Add(new ChartSeries { Name = metric.Name, Data = customMetricValues });
+ Series.Add(new ChartSeries { Name = metric.Name, Data = new ChartData(customMetricValues) });
}
}
@@ -201,7 +201,7 @@ private async Task FillChart()
.ToArray();
if (systolicValues.Any(v => v > 0))
{
- BloodPressureSeries.Add(new ChartSeries { Name = LocBloodPressure["Systolic"], Data = systolicValues });
+ BloodPressureSeries.Add(new ChartSeries { Name = LocBloodPressure["Systolic"], Data = new ChartData(systolicValues) });
}
var diastolicValues = dailyBloodPressure
@@ -214,7 +214,7 @@ private async Task FillChart()
.ToArray();
if (diastolicValues.Any(v => v > 0))
{
- BloodPressureSeries.Add(new ChartSeries { Name = LocBloodPressure["Diastolic"], Data = diastolicValues });
+ BloodPressureSeries.Add(new ChartSeries { Name = LocBloodPressure["Diastolic"], Data = new ChartData(diastolicValues) });
}
var pulseRateValues = dailyBloodPressure
@@ -227,7 +227,7 @@ private async Task FillChart()
.ToArray();
if (pulseRateValues.Any(v => v > 0))
{
- BloodPressureSeries.Add(new ChartSeries { Name = LocBloodPressure["PulseRate"], Data = pulseRateValues });
+ BloodPressureSeries.Add(new ChartSeries { Name = LocBloodPressure["PulseRate"], Data = new ChartData(pulseRateValues) });
}
}
diff --git a/CrohnsDiary.App/package-lock.json b/CrohnsDiary.App/package-lock.json
index cb3725f..9e975c0 100644
--- a/CrohnsDiary.App/package-lock.json
+++ b/CrohnsDiary.App/package-lock.json
@@ -6,10 +6,10 @@
"": {
"hasInstallScript": true,
"dependencies": {
- "dexie": "^3.2.7"
+ "dexie": "^4.4.2"
},
"devDependencies": {
- "copy-files-from-to": "^3.14.0"
+ "copy-files-from-to": "^4.0.0"
}
},
"node_modules/@jridgewell/gen-mapping": {
@@ -114,13 +114,16 @@
}
},
"node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
}
},
"node_modules/ansi-styles": {
@@ -240,18 +243,18 @@
}
},
"node_modules/cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz",
+ "integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==",
"dev": true,
"license": "ISC",
"dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
+ "string-width": "^7.2.0",
+ "strip-ansi": "^7.1.0",
+ "wrap-ansi": "^9.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=20"
}
},
"node_modules/color-convert": {
@@ -295,14 +298,14 @@
"license": "MIT"
},
"node_modules/copy-files-from-to": {
- "version": "3.14.0",
- "resolved": "https://registry.npmjs.org/copy-files-from-to/-/copy-files-from-to-3.14.0.tgz",
- "integrity": "sha512-b6FabB4AIqdGPTRoN5vjNqkRVYYuV1wm4/0AKuZ4MpN3Awxwc/qPh3Mq/765fE4a0qN7fu6HAsL+HzOv0TFTtA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/copy-files-from-to/-/copy-files-from-to-4.0.0.tgz",
+ "integrity": "sha512-dR7P9Horr5saSmqMiAfzKw9YZ8Akk5J2sw2eApvz/MWCbs933SAjeqzFQpIgKHZnpLy2kYaLceujKYSNFXpD0Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"async": "^3.2.6",
- "axios": "^1.7.9",
+ "axios": "^1.13.2",
"chalk": "=4.1.2",
"cjson": "^0.5.0",
"fast-glob": "^3.3.3",
@@ -313,15 +316,15 @@
"md5": "^2.3.0",
"mkdirp": "^3.0.1",
"note-down": "=1.0.2",
- "terser": "^5.39.0",
+ "terser": "^5.44.1",
"unixify": "^1.0.0",
- "yargs": "^17.7.2"
+ "yargs": "^18.0.0"
},
"bin": {
"copy-files-from-to": "index.js"
},
"engines": {
- "node": ">=18"
+ "node": ">=22.12.0"
}
},
"node_modules/crypt": {
@@ -345,13 +348,10 @@
}
},
"node_modules/dexie": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/dexie/-/dexie-3.2.7.tgz",
- "integrity": "sha512-2a+BXvVhY5op+smDRLxeBAivE7YcYaneXJ1la3HOkUfX9zKkE/AJ8CNgjiXbtXepFyFmJNGSbmjOwqbT749r/w==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=6.0"
- }
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/dexie/-/dexie-4.4.2.tgz",
+ "integrity": "sha512-zMtV8q79EFE5U8FKZvt0Y/77PCU/Hr/RDxv1EDeo228L+m/HTbeN2AjoQm674rhQCX8n3ljK87lajt7UQuZfvw==",
+ "license": "Apache-2.0"
},
"node_modules/dunder-proto": {
"version": "1.0.1",
@@ -369,9 +369,9 @@
}
},
"node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "version": "10.6.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz",
+ "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==",
"dev": true,
"license": "MIT"
},
@@ -545,6 +545,19 @@
"node": "6.* || 8.* || >= 10.*"
}
},
+ "node_modules/get-east-asian-width": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz",
+ "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/get-intrinsic": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
@@ -679,16 +692,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/is-glob": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
@@ -902,16 +905,6 @@
"dev": true,
"license": "ISC"
},
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/reusify": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
@@ -969,31 +962,37 @@
}
},
"node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
+ "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
+ "emoji-regex": "^10.3.0",
+ "get-east-asian-width": "^1.0.0",
+ "strip-ansi": "^7.1.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
+ "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
"dev": true,
"license": "MIT",
"dependencies": {
- "ansi-regex": "^5.0.1"
+ "ansi-regex": "^6.2.2"
},
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
"node_modules/supports-color": {
@@ -1055,23 +1054,36 @@
}
},
"node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz",
+ "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==",
"dev": true,
"license": "MIT",
"dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
+ "ansi-styles": "^6.2.1",
+ "string-width": "^7.0.0",
+ "strip-ansi": "^7.1.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
+ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
"node_modules/y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
@@ -1083,32 +1095,31 @@
}
},
"node_modules/yargs": {
- "version": "17.7.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
- "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "version": "18.0.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.0.0.tgz",
+ "integrity": "sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "cliui": "^8.0.1",
+ "cliui": "^9.0.1",
"escalade": "^3.1.1",
"get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
+ "string-width": "^7.2.0",
"y18n": "^5.0.5",
- "yargs-parser": "^21.1.1"
+ "yargs-parser": "^22.0.0"
},
"engines": {
- "node": ">=12"
+ "node": "^20.19.0 || ^22.12.0 || >=23"
}
},
"node_modules/yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "version": "22.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz",
+ "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==",
"dev": true,
"license": "ISC",
"engines": {
- "node": ">=12"
+ "node": "^20.19.0 || ^22.12.0 || >=23"
}
}
}
diff --git a/CrohnsDiary.App/package.json b/CrohnsDiary.App/package.json
index 3328a4c..c7ee85d 100644
--- a/CrohnsDiary.App/package.json
+++ b/CrohnsDiary.App/package.json
@@ -10,9 +10,9 @@
}
],
"dependencies": {
- "dexie": "^3.2.7"
+ "dexie": "^4.4.2"
},
"devDependencies": {
- "copy-files-from-to": "^3.14.0"
+ "copy-files-from-to": "^4.0.0"
}
}
\ No newline at end of file
diff --git a/CrohnsDiary.Deploy/CrohnsDiary.Deploy.csproj b/CrohnsDiary.Deploy/CrohnsDiary.Deploy.csproj
index 855734d..feba886 100644
--- a/CrohnsDiary.Deploy/CrohnsDiary.Deploy.csproj
+++ b/CrohnsDiary.Deploy/CrohnsDiary.Deploy.csproj
@@ -8,8 +8,8 @@
-
-
+
+