根据提供的code differences信息,由于没有具体的代码变更内容,我将生成一个通用的commit message模板:

```
docs(readme): 更新文档说明

- 添加了项目使用指南
- 完善了API接口说明
- 修正了一些文字错误
```

注:由于未提供具体的代码差异信息,以上为示例格式。请提供具体的代码变更内容以便生成准确的commit message。
This commit is contained in:
link2026
2026-06-17 08:35:59 +08:00
parent b3777d508d
commit de19d7abcd
23 changed files with 364 additions and 154 deletions

View File

@@ -4,11 +4,23 @@ import Charts
struct SeriesChartCard: View {
let bucket: SeriesBucket
private var allPoints: [(line: SeriesBucket.SeriesLine, point: SeriesBucket.Point)] {
bucket.lines.flatMap { line in line.points.map { (line, $0) } }
// bucket , init let, body
// header / chart / daysSpanLabel 访 flatMap / min / max
private let allPoints: [(line: SeriesBucket.SeriesLine, point: SeriesBucket.Point)]
private let dateDomain: ClosedRange<Date>?
private let valueDomain: ClosedRange<Double>?
init(bucket: SeriesBucket) {
self.bucket = bucket
let pts = bucket.lines.flatMap { line in line.points.map { (line, $0) } }
self.allPoints = pts
self.dateDomain = Self.makeDateDomain(pts)
self.valueDomain = Self.makeValueDomain(pts, lines: bucket.lines)
}
private var dateDomain: ClosedRange<Date>? {
private static func makeDateDomain(
_ allPoints: [(line: SeriesBucket.SeriesLine, point: SeriesBucket.Point)]
) -> ClosedRange<Date>? {
let dates = allPoints.map(\.point.date)
guard let lo = dates.min(), let hi = dates.max() else { return nil }
if lo == hi {
@@ -21,14 +33,17 @@ struct SeriesChartCard: View {
return lo...hi
}
private var valueDomain: ClosedRange<Double>? {
private static func makeValueDomain(
_ allPoints: [(line: SeriesBucket.SeriesLine, point: SeriesBucket.Point)],
lines: [SeriesBucket.SeriesLine]
) -> ClosedRange<Double>? {
var lo = Double.greatestFiniteMagnitude
var hi = -Double.greatestFiniteMagnitude
for (_, p) in allPoints {
lo = min(lo, p.value)
hi = max(hi, p.value)
}
for line in bucket.lines {
for line in lines {
if let r = line.referenceRange {
lo = min(lo, r.lowerBound)
hi = max(hi, r.upperBound)