Skip to content

Commit 5bf52e5

Browse files
committed
comments
1 parent 1b87b7c commit 5bf52e5

File tree

6 files changed

+51
-41
lines changed

6 files changed

+51
-41
lines changed

pkg/_pub_shared/lib/format/date_format.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// Formats a DateTime into abbriviated month and day
5+
// Formats a DateTime into abbreviated month and day
66

77
String formatAbbrMonthDay(DateTime date) {
88
final month = switch (date.month) {

pkg/web_app/lib/src/widget/downloads_chart/computations.dart

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,22 @@ Iterable<String> prepareRanges(List<VersionRangeCount> rangeDownloads) {
1313
///
1414
/// The 'i'th entry in the iterable is a list of the download values
1515
/// (y coordinates) for the 'i'th week (x coordinate).
16-
List<List<int>> prepareWeekLists(
16+
({List<String> ranges, List<List<int>> weekLists}) prepareWeekLists(
1717
List<int> totals,
1818
List<VersionRangeCount> rangeDownloads,
1919
int displayLength,
2020
) {
2121
final result = <List<int>>[];
22+
final ranges = <String>[];
2223

2324
final showOther =
2425
totals[0] > rangeDownloads.fold(0, (sum, d) => sum + d.counts[0]);
2526

27+
if (showOther) {
28+
ranges.add('Other');
29+
}
30+
rangeDownloads.forEach((d) => ranges.add(d.versionRange));
31+
2632
for (int week = 0; week < displayLength; week++) {
2733
final weekList = <int>[];
2834
if (showOther) {
@@ -32,5 +38,6 @@ List<List<int>> prepareWeekLists(
3238
rangeDownloads.forEach((d) => weekList.add(d.counts[week]));
3339
result.add(weekList);
3440
}
35-
return result.reversed.toList();
41+
42+
return (ranges: ranges, weekLists: result.reversed.toList());
3643
}

pkg/web_app/lib/src/widget/downloads_chart/widget.dart

Lines changed: 31 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@ String strokeColorClass(int i) => 'downloads-chart-stroke-${colors[i]}';
2525
String fillColorClass(int i) => 'downloads-chart-fill-${colors[i]}';
2626

2727
void create(HTMLElement element, Map<String, String> options) {
28-
final dataPoints = options['points'];
28+
var dataPoints = options['points'];
2929
if (dataPoints == null) {
3030
throw UnsupportedError('data-downloads-chart-points required');
3131
}
32+
dataPoints = testString;
3233

3334
final svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
3435
svg.setAttribute('height', '100%');
@@ -46,21 +47,25 @@ void create(HTMLElement element, Map<String, String> options) {
4647
data.majorRangeWeeklyDownloads,
4748
weeksToDisplay,
4849
);
49-
final majorRanges =
50-
data.majorRangeWeeklyDownloads.map((e) => e.versionRange).toList();
5150

52-
drawChart(svg, majorRanges, majorDisplayLists, data.newestDate);
51+
drawChart(svg, majorDisplayLists, data.newestDate);
5352
}
5453

55-
void drawChart(Element svg, List<String> ranges, List<List<int>> values,
54+
void drawChart(
55+
Element svg,
56+
({List<String> ranges, List<List<int>> weekLists}) displayLists,
5657
DateTime newestDate,
5758
{bool stacked = false}) {
59+
final ranges = displayLists.ranges;
60+
final values = displayLists.weekLists;
61+
5862
if (values.isEmpty) return;
63+
5964
final frameWidth =
6065
775; // TODO(zarah): Investigate if this width can be dynamic
6166
final topPadding = 30;
6267
final leftPadding = 30;
63-
final rightPadding = 70; // make extra room for labels on y-axis
68+
final rightPadding = 70; // Make extra room for labels on y-axis
6469
final chartWidth = frameWidth - leftPadding - rightPadding;
6570
final chartheight = 420;
6671

@@ -70,8 +75,8 @@ void drawChart(Element svg, List<String> ranges, List<List<int>> values,
7075
day: newestDate.day - 7 * (totalWeeks - weekNumber - 1));
7176
}
7277

73-
// Computes max value on y-axis such that we get a nice division for the
74-
// interval length between the numbers shown by the ticks on the y axis.
78+
/// Computes max value on y-axis such that we get a nice division for the
79+
/// interval length between the numbers shown by the ticks on the y axis.
7580
(int maxY, int interval) computeMaxYAndInterval(List<List<int>> values) {
7681
final maxDownloads =
7782
values.fold<int>(1, (a, b) => math.max<int>(a, b.reduce(math.max)));
@@ -88,7 +93,7 @@ void drawChart(Element svg, List<String> ranges, List<List<int>> values,
8893
return ((maxDownloads / d).ceil() * d, d);
8994
}
9095
}
91-
// This should not happen!
96+
// This should not happen! But we don't want to break if it does.
9297
return (maxDownloads, firstDiv);
9398
}
9499

@@ -129,7 +134,7 @@ void drawChart(Element svg, List<String> ranges, List<List<int>> values,
129134
chart.append(xaxis);
130135

131136
late SVGTextElement firstTickLabel;
132-
// place a tick every 4 weeks
137+
// Place a tick every 4 weeks
133138
for (int week = 0; week < values.length; week += 4) {
134139
final date = computeDateForWeekNumber(newestDate, values.length, week);
135140
final (x, y) = computeCoordinates(date, 0);
@@ -171,7 +176,7 @@ void drawChart(Element svg, List<String> ranges, List<List<int>> values,
171176

172177
final longTick = SVGPathElement();
173178
longTick.setAttribute('class', 'downloads-chart-frame');
174-
longTick.setAttribute('d', 'M$xAxisStart} $y L$xAxisEnd $y');
179+
longTick.setAttribute('d', 'M$xAxisStart $y L$xAxisEnd $y');
175180
chart.append(longTick);
176181
}
177182

@@ -203,8 +208,8 @@ void drawChart(Element svg, List<String> ranges, List<List<int>> values,
203208
lines.add(line);
204209
}
205210

206-
double legendXCoor = xZero;
207-
double legendYCoor =
211+
double legendX = xZero;
212+
double legendY =
208213
tickLabelYCoordinate + firstTickLabel.getBBox().height + labelPadding;
209214
final legendWidth = 20;
210215
final legendHeight = 8;
@@ -228,39 +233,30 @@ void drawChart(Element svg, List<String> ranges, List<List<int>> values,
228233
final legendLabel = SVGTextElement();
229234
chart.append(legendLabel);
230235
legendLabel.setAttribute('class', 'downloads-chart-tick-label');
231-
if (i == 5) {
232-
// We have an 'other' line
233-
legendLabel.text = 'Other';
234-
} else {
235-
legendLabel.text = ranges[ranges.length - 1 - i];
236-
}
236+
legendLabel.text = ranges[ranges.length - 1 - i];
237237

238-
if (legendXCoor +
239-
marginPadding +
240-
legendWidth +
241-
legendLabel.getBBox().width >
238+
if (legendX + marginPadding + legendWidth + legendLabel.getBBox().width >
242239
xMax) {
243240
// There is no room for the legend and label.
244241
// Make a new line and update legendXCoor and legendYCoor accordingly.
245242

246-
legendXCoor = xZero;
247-
legendYCoor += 2 * marginPadding + legendHeight;
243+
legendX = xZero;
244+
legendY += 2 * marginPadding + legendHeight;
248245
}
249246

250-
legend.setAttribute('x', '$legendXCoor');
251-
legend.setAttribute('y', '$legendYCoor');
252-
legendLabel.setAttribute('y', '${legendYCoor + legendHeight}');
253-
legendLabel.setAttribute(
254-
'x', '${legendXCoor + marginPadding + legendWidth}');
247+
legend.setAttribute('x', '$legendX');
248+
legend.setAttribute('y', '$legendY');
249+
legendLabel.setAttribute('y', '${legendY + legendHeight}');
250+
legendLabel.setAttribute('x', '${legendX + marginPadding + legendWidth}');
255251

256252
// Update x coordinate for next legend
257-
legendXCoor += legendWidth +
253+
legendX += legendWidth +
258254
marginPadding +
259255
legendLabel.getBBox().width +
260256
labelPadding;
261257
}
262258

263-
final frameHeight = legendYCoor + marginPadding + labelPadding;
259+
final frameHeight = legendY + marginPadding + labelPadding;
264260
final frame = SVGRectElement()
265261
..setAttribute('class', 'downloads-chart-frame')
266262
..setAttribute('height', '$frameHeight')
@@ -269,3 +265,6 @@ void drawChart(Element svg, List<String> ranges, List<List<int>> values,
269265
..setAttribute('ry', '15');
270266
chart.append(frame);
271267
}
268+
269+
final testString =
270+
'eyJ0b3RhbFdlZWtseURvd25sb2FkcyI6WzY5MTE5Niw2MDM1NjgsMzUxNDM1LDM1MTYyNCw2MzY0MjUsNzAwNjY4LDY3NzYwOSw2NTcyOTQsNjcwNzU4LDY1NjM0Nyw2MzY5MDQsNjI2NTI3LDY0NjUzMCw2MzgzODMsNjMwNTc3LDU3MjkzOCw2MjUwODUsNTYzMzI0LDU4MDQ1OCw1NjY0MTMsNTc3MzA5LDU5NjY5Miw1NTU3MDcsNTcwNjA3LDU2NzExNSw1MzQ5NjksNTA2OTY4LDUxMDc2NCw0NTkxMjIsNTI5NDA1LDQ5MjEzNCw0OTQwNjksNDg0MjI5LDQ3NTk2OCw0ODc0NTksNTAxNzgwLDQ2MjU4Myw0MzM2NjgsNTE3MDAwLDU1NjgzOCw1MDM1NjMsNTIxMjgwLDQ4MjMzNyw1MzA4MzIsNTM5MDAyLDUyNjYwOSw1MTQzNzEsNDgwNTYxLDQzNzY1OCw0MzA0MDMsNDU0MzYxLDM1Nzk0OV0sIm1ham9yUmFuZ2VXZWVrbHlEb3dubG9hZHMiOlt7ImNvdW50cyI6WzE2MjEyMywxNDIxMTQsOTQyNTcsODk3NzQsMTM4NDgwLDE5NzExOCwyMTE5NTksMTg3MjUxLDE3NDA1MywxNzk4MzEsMTY1NDk0LDE2MTQ0MywxNTcxMTgsMTU3MTYzLDE3NjI0NiwxNTk0OTksMTcyODg0LDE1NTczMywxNjk3ODcsMTcyNzM3LDE3NDE1OSwxNzk5NDYsMTYxOTgwLDE3NDM5NCwxOTc4NTgsMTkxMTcyLDE4NTYwOSwxODQyNjcsMTcyMzQzLDIxOTM2MCwxOTYwMzYsMTkwNDAyLDE5NTc3MiwxOTMwNDEsMjA0NzIzLDIxNzY3OCwyMDYzMTEsMjAwMTEzLDIyODM5MSwyNTc5NDQsMjQzNjU1LDI3MzI4NSwyNTEzMzUsMjc4ODU1LDI4MDkwMywyNzAzNTcsMjc4NzY2LDI1OTI3NiwyNTE1NDUsMjQ1NzczLDI2MzE4MywxOTAwNzZdLCJ2ZXJzaW9uUmFuZ2UiOiI+PTQuMC4wLTAgPDUuMC4wIn0seyJjb3VudHMiOlsxNTYwNywxNTkxNyw5MDgzLDEwMTc1LDE3MjM2LDE2Nzg1LDE4OTQ1LDE5ODgxLDE5ODc5LDIxNTUxLDE5MTkyLDI4NjA5LDI1NzU5LDI2NTkwLDI3NjMzLDI4MjU1LDI5ODIwLDI4NDIyLDMwMDUzLDI5NDk0LDM0MTY3LDM1OTE1LDM1MzQ4LDM4NjE1LDQwMzI1LDM5MzczLDQxMDY5LDQzMzI0LDQyNDgwLDQ3NDA3LDUzNjczLDYxMTk1LDY0MDA4LDYzOTczLDY2NTYwLDczMTAwLDY3NDgyLDY3Nzk1LDkyMDc3LDEwMDU0NSwxMDY2MTMsMTIwNTI1LDEzMzE0OCwxNTcxMDUsMTYzMzIyLDE2NDI4NSwxNDg4OTEsMTQxNDQ5LDEwNzI3MCw5OTk5OSw5NzY2Niw3MDAwOF0sInZlcnNpb25SYW5nZSI6Ij49NS4wLjAtMCA8Ni4wLjAifSx7ImNvdW50cyI6WzM5OTg2LDQzNzE4LDE3Mzk0LDE1MTQxLDM4MTc2LDQxNTUyLDM3MTY1LDQ0MTU1LDUxMjc5LDU1OTg5LDUzMzcyLDUwNTY4LDUwMTA5LDUzNDUxLDQ4NzA3LDU0MjQ3LDYzNDg1LDU1NTk5LDU0NDA5LDU2MzMwLDU1NDU5LDU4NTAxLDUyMjExLDYwOTczLDUzNDA3LDU4ODkwLDUzMDA4LDYyNzUzLDQ2NDcxLDU3NjAzLDUwODM3LDU4NzE3LDU1MTA5LDUzMTYwLDUyMDkyLDUzNTQ2LDUyMzk2LDQ3MzU4LDYyNjQ5LDY0ODE2LDU4NjMwLDUxOTAzLDIxNTgwLDkyNTksMCwwLDAsMCwwLDAsMCwwXSwidmVyc2lvblJhbmdlIjoiPj02LjAuMC0wIDw3LjAuMCJ9LHsiY291bnRzIjpbODk2NywxMDMzNywzODY5LDQ5MjgsOTEzNywxMDIyNywxMjM4MCwxMjkxOSwxMjcwNywxMzU1OCwxNTEyNiwxNDY1MSwxNzM3MCwxNzM5NiwxNzI4OSwxODQwNSwyMzg3MSwxODc0NywxOTM4NywxNzI1NiwxOTI1OSwxOTMxNCwyMzUzMywyNDQ5NCwyMjEzOSwyNTUxMCwyNDQ3OSwyMjUwNSwyNzM1NiwyNjQyMiwyNjgzNywyODgxMywyNjk2MCwyODk0MCwzMjY2NCwzMTMwOCwzMjY0OCw0MTYxNSw1NzE2MSw0NzY1MiwyNjE0NiwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdLCJ2ZXJzaW9uUmFuZ2UiOiI+PTcuMC4wLTAgPDguMC4wIn0seyJjb3VudHMiOls0MzkwNTEsMzY4MDgyLDIxMjU1MCwyMTg3NjcsNDEyNDE5LDQwNzgzNCwzNjk0NzEsMzcxODU5LDM5MDUyMCwzNjIxNDMsMzU2MDUzLDM0MDk2MiwzNjkwNjEsMzUxNjMzLDMyNzAwMywyNzg5MjksMzAzMDIwLDI3NTc1NywyNzMzMTUsMjU2OTA0LDI1MTkyNCwyNTc2NDUsMjQzODQyLDIyNzYxNywyMTE5MjcsMTc2NDk5LDE1OTc5NiwxNTI3MjksMTMxNjA4LDEzMzk5NSwxMjE4ODEsMTEyMzg2LDEwMDA5Niw5MDg2MSw4MTQyMyw3NTYzNyw1MjA5NCwzMDg1NiwxNTI1MiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXSwidmVyc2lvblJhbmdlIjoiPj04LjAuMC0wIDw5LjAuMCJ9XSwibWlub3JSYW5nZVdlZWtseURvd25sb2FkcyI6W3siY291bnRzIjpbMTU2MDcsMTU5MTcsOTA4MywxMDE3NSwxNzIzNiwxNjc4NSwxODk0NSwxOTg4MSwxOTg3OSwyMTU1MSwxOTE5MiwyODYwOSwyNTc1OSwyNjU5MCwyNzYzMywyODI1NSwyOTgyMCwyODQyMiwzMDA1MywyOTQ5NCwzNDE2NywzNTkxNSwzNTM0OCwzODYxNSw0MDMyNSwzOTM3Myw0MTA2OSw0MzMyNCw0MjQ4MCw0NzQwNyw1MzY3Myw2MTE5NSw2NDAwOCw2Mzk3Myw2NjU2MCw3MzEwMCw2NzQ4Miw2Nzc5NSw5MjA3NywxMDA1NDUsMTA2NjEzLDEyMDUyNSwxMzMxNDgsMTU3MTA1LDE2MzMyMiwxNjQyODUsMTQ4ODkxLDE0MTQ0OSwxMDcyNzAsOTk5OTksOTc2NjYsNzAwMDhdLCJ2ZXJzaW9uUmFuZ2UiOiI+PTUuMC4wLTAgPDUuMS4wIn0seyJjb3VudHMiOlszOTk4Niw0MzcxOCwxNzM5NCwxNTE0MSwzODE3Niw0MTU1MiwzNzE2NSw0NDE1NSw1MTI3OSw1NTk4OSw1MzM3Miw1MDU2OCw1MDEwOSw1MzQ1MSw0ODcwNyw1NDI0Nyw2MzQ4NSw1NTU5OSw1NDQwOSw1NjMzMCw1NTQ1OSw1ODUwMSw1MjIxMSw2MDk3Myw1MzQwNyw1ODg5MCw1MzAwOCw2Mjc1Myw0NjQ3MSw1NzYwMyw1MDgzNyw1ODcxNyw1NTEwOSw1MzE2MCw1MjA5Miw1MzU0Niw1MjM5Niw0NzM1OCw2MjY0OSw2NDgxNiw1ODYzMCw1MTkwMywyMTU4MCw5MjU5LDAsMCwwLDAsMCwwLDAsMF0sInZlcnNpb25SYW5nZSI6Ij49Ni4wLjAtMCA8Ni4xLjAifSx7ImNvdW50cyI6Wzg5NjcsMTAzMzcsMzg2OSw0OTI4LDkxMzcsMTAyMjcsMTIzODAsMTI5MTksMTI3MDcsMTM1NTgsMTUxMjYsMTQ2NTEsMTczNzAsMTczOTYsMTcyODksMTg0MDUsMjM4NzEsMTg3NDcsMTkzODcsMTcyNTYsMTkyNTksMTkzMTQsMjM1MzMsMjQ0OTQsMjIxMzksMjU1MTAsMjQ0NzksMjI1MDUsMjczNTYsMjY0MjIsMjY4MzcsMjg4MTMsMjY5NjAsMjg5NDAsMzI2NjQsMzEzMDgsMzI2NDgsNDE2MTUsNTcxNjEsNDc2NTIsMjYxNDYsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXSwidmVyc2lvblJhbmdlIjoiPj03LjAuMC0wIDw3LjEuMCJ9LHsiY291bnRzIjpbMTA1NjI5LDk4Nzc2LDYwMzYxLDY0MjI3LDEyNTIyOCwxMzc5MDgsMTQ0NDQ3LDE1NTQzNCwxNzMzMDMsMTU3NTAxLDE2NTI2MywxNzUzMjMsMjA5NjM5LDI5ODg5MCwzMjcwMDMsMjc4OTI5LDMwMzAyMCwyNzU3NTcsMjczMzE1LDI1NjkwNCwyNTE5MjQsMjU3NjQ1LDI0Mzg0MiwyMjc2MTcsMjExOTI3LDE3NjQ5OSwxNTk3OTYsMTUyNzI5LDEzMTYwOCwxMzM5OTUsMTIxODgxLDExMjM4NiwxMDAwOTYsOTA4NjEsODE0MjMsNzU2MzcsNTIwOTQsMzA4NTYsMTUyNTIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0sInZlcnNpb25SYW5nZSI6Ij49OC4wLjAtMCA8OC4xLjAifSx7ImNvdW50cyI6WzMzMzQyMiwyNjkzMDYsMTUyMTg5LDE1NDU0MCwyODcxOTEsMjY5OTI2LDIyNTAyNCwyMTY0MjUsMjE3MjE3LDIwNDY0MiwxOTA3OTAsMTY1NjM5LDE1OTQyMiw1Mjc0MywwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdLCJ2ZXJzaW9uUmFuZ2UiOiI+PTguMS4wLTAgPDguMi4wIn1dLCJwYXRjaFJhbmdlV2Vla2x5RG93bmxvYWRzIjpbeyJjb3VudHMiOls4MzkwLDgzOTEsNDkyMyw1NjkwLDEwNzQyLDEzNjgxLDEzMjE1LDE1NzY5LDE2OTkxLDE3NzM3LDE4NjEyLDIzNDk3LDQwNDE1LDExODI3NCw4OTkzNywwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXSwidmVyc2lvblJhbmdlIjoiPj04LjAuMy0wIDw4LjAuNCJ9LHsiY291bnRzIjpbMjc5OTcsMzA1NzYsMTc2NzEsMjA2MzYsMzY2OTYsNDQ2MjQsNDYxMjksNDk4MDEsNTUyNTYsNjE3NzIsMTM0NjY3LDE2NTYzOSwxNTk0MjIsNTI3NDMsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXSwidmVyc2lvblJhbmdlIjoiPj04LjEuMC0wIDw4LjEuMSJ9LHsiY291bnRzIjpbNTUwNzksNTY1MTAsMzE1MjcsMzYzOTEsNzgzNjAsMTY3NDgwLDE3ODg5NSwxNjY2MjQsMTYxOTYxLDE0Mjg3MCw1NjEyMywwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdLCJ2ZXJzaW9uUmFuZ2UiOiI+PTguMS4xLTAgPDguMS4yIn0seyJjb3VudHMiOlsxMDUxMjYsMTgyMjIwLDEwMjk5MSw5NzUxMywxNzIxMzUsNTc4MjIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0sInZlcnNpb25SYW5nZSI6Ij49OC4xLjItMCA8OC4xLjMifSx7ImNvdW50cyI6WzE0NTIyMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0sInZlcnNpb25SYW5nZSI6Ij49OC4xLjMtMCA8OC4xLjQifV0sIm5ld2VzdERhdGUiOiIyMDI1LTAxLTE5VDAwOjAwOjAwLjAwMCJ9';

pkg/web_app/test/widget/downloads_chart/downloads_chart_test.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ void main() {
5252
(counts: l3, versionRange: '>=6.0.0-0 <7.0.0')
5353
];
5454

55-
final w1 = prepareWeekLists(totals, majorRangeDownloads, 52).toList();
56-
final w2 = prepareWeekLists(totals, minorRangeDownloads, 52).toList();
57-
final w3 = prepareWeekLists(totals, patchRangeDownloads, 52).toList();
55+
final w1 = prepareWeekLists(totals, majorRangeDownloads, 52).weekLists;
56+
final w2 = prepareWeekLists(totals, minorRangeDownloads, 52).weekLists;
57+
final w3 = prepareWeekLists(totals, patchRangeDownloads, 52).weekLists;
5858

5959
for (int i = 42; i < 52; i++) {
6060
expect(w1[i], [10, 10, 10, 10, 70]);

pkg/web_css/lib/src/_pkg.scss

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -290,9 +290,9 @@
290290
}
291291

292292
.downloads-chart-frame {
293-
fill:transparent;
293+
fill:none;
294294
stroke-width: 1;
295-
stroke: lightgrey;
295+
stroke: var(--pub-downloads-chart-frame-color);
296296
}
297297

298298
.downloads-chart-x-axis {
@@ -345,7 +345,7 @@
345345

346346
.downloads-chart-line {
347347
fill: none;
348-
stroke-width: 3;
348+
stroke-width: 2;
349349
stroke-linejoin: round;
350350
}
351351

pkg/web_css/lib/src/_variables.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,8 @@
134134
--pub-tag_simplebadge-text-color: #444444;
135135
--pub-tag_sdkbadge-separator-color: rgba(25, 103, 210, 0.5); // #1967d2 + 0.5 opacity;
136136
--pub-tag_sdkbadge-text-color: #1967d2;
137+
138+
--pub-downloads-chart-frame-color: #d3d3d3;
137139
}
138140

139141
.light-theme {
@@ -190,6 +192,8 @@
190192
--pub-tag_sdkbadge-separator-color: var(--pub-neutral-textColor);
191193
--pub-tag_sdkbadge-text-color: var(--pub-neutral-textColor);
192194

195+
--pub-downloads-chart-frame-color: #55585a;
196+
193197
// Material Design theme customizations
194198
--mdc-theme-surface: var(--pub-neutral-bgColor);
195199
--mdc-theme-on-primary: var(--pub-neutral-textColor);

0 commit comments

Comments
 (0)