Skip to content

Commit 120a612

Browse files
committed
v0.5.1
1 parent a52806a commit 120a612

26 files changed

+871
-283
lines changed

CHANGELOG.md

+10
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
## 0.5.1
2+
3+
**2021-12-01**
4+
5+
- Tooltip constraints.
6+
- Now selections triggerd with same gesture is allowd.
7+
- Device settings of selection.
8+
- Now all z indexes are static, thus no need to resort scenes.
9+
- Some updates above are inspired by https://github.com/entronad/graphic/issues/27.
10+
111
## 0.5.0
212

313
**2021-11-18**

DEVLOG.md

+17-1
Original file line numberDiff line numberDiff line change
@@ -3864,9 +3864,25 @@ time就不要引入 intl库支持mask了吧,那样要引入额外的规则和
38643864

38653865
所有spec中函数类型的property,还是都按名词命名吧,因为用户关注的它是什么(出自 Effectiv Dart)
38663866

3867+
selection 同时唯一性:
3868+
3869+
现在的逻辑是这样的:同时只有一个 gesture -> 现在规定一个gesture只能定义一个selection -> 所以自然产生对于同一个element同时只会发生一个selection
3870+
3871+
但是对于同一个element同时只会发生一个selection应当是一个额外的规定,同一个gesture应该可以定义多个 selection,同一时刻产生多个selects(用map存储),而在update中判断onSelection不能定义有同时发生的selection
3872+
3873+
对应 element update,最重要的目的是,同一时间只能有一个selection起效,当只触发一个selection时,OK,当触发多个selection时,必须确保只有其中的一个在defined names中
3874+
3875+
selection定义中添加一个仅在某些设备上运行的开关(signal中可在实际Gesture signal detail中判断设备)
3876+
3877+
tooltip添加一个自动往里挤的功能,可开关
3878+
3879+
现在新的selector渲染机制也不需要动态zIndex了,决定把改机制去了,zIndex都是静态的。
3880+
3881+
默认值应当尽量在parse中设置,而不在op中处理
3882+
38673883
## TODO
38683884

3869-
整合errorlog,需处理:throw, assert, list.single
3885+
整合errorlog,需处理:throw, assert, list.single,singleIntersection
38703886

38713887
group selection
38723888

example/lib/data.dart

+91
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,97 @@ const basicData = [
66
{'genre': 'Other', 'sold': 150},
77
];
88

9+
const complexGroupData = [
10+
{'date': '2021-10-01', 'name': 'Liam', 'points': 1468},
11+
{'date': '2021-10-01', 'name': 'Oliver', 'points': 1487},
12+
{'date': '2021-10-01', 'name': 'Elijah', 'points': 1494},
13+
{'date': '2021-10-02', 'name': 'Liam', 'points': 1526},
14+
{'date': '2021-10-02', 'name': 'Noah', 'points': 1492},
15+
{'date': '2021-10-02', 'name': 'Oliver', 'points': 1470},
16+
{'date': '2021-10-02', 'name': 'Elijah', 'points': 1477},
17+
{'date': '2021-10-03', 'name': 'Liam', 'points': 1466},
18+
{'date': '2021-10-03', 'name': 'Noah', 'points': 1465},
19+
{'date': '2021-10-03', 'name': 'Oliver', 'points': 1524},
20+
{'date': '2021-10-03', 'name': 'Elijah', 'points': 1534},
21+
{'date': '2021-10-04', 'name': 'Noah', 'points': 1504},
22+
{'date': '2021-10-04', 'name': 'Elijah', 'points': 1524},
23+
{'date': '2021-10-05', 'name': 'Oliver', 'points': 1534},
24+
{'date': '2021-10-06', 'name': 'Noah', 'points': 1463},
25+
{'date': '2021-10-07', 'name': 'Liam', 'points': 1502},
26+
{'date': '2021-10-07', 'name': 'Noah', 'points': 1539},
27+
{'date': '2021-10-08', 'name': 'Liam', 'points': 1476},
28+
{'date': '2021-10-08', 'name': 'Noah', 'points': 1483},
29+
{'date': '2021-10-08', 'name': 'Oliver', 'points': 1534},
30+
{'date': '2021-10-08', 'name': 'Elijah', 'points': 1530},
31+
{'date': '2021-10-09', 'name': 'Noah', 'points': 1519},
32+
{'date': '2021-10-09', 'name': 'Oliver', 'points': 1497},
33+
{'date': '2021-10-09', 'name': 'Elijah', 'points': 1460},
34+
{'date': '2021-10-10', 'name': 'Liam', 'points': 1514},
35+
{'date': '2021-10-10', 'name': 'Noah', 'points': 1518},
36+
{'date': '2021-10-10', 'name': 'Oliver', 'points': 1470},
37+
{'date': '2021-10-10', 'name': 'Elijah', 'points': 1526},
38+
{'date': '2021-10-11', 'name': 'Liam', 'points': 1517},
39+
{'date': '2021-10-11', 'name': 'Noah', 'points': 1478},
40+
{'date': '2021-10-11', 'name': 'Oliver', 'points': 1468},
41+
{'date': '2021-10-11', 'name': 'Elijah', 'points': 1487},
42+
{'date': '2021-10-12', 'name': 'Liam', 'points': 1535},
43+
{'date': '2021-10-12', 'name': 'Noah', 'points': 1537},
44+
{'date': '2021-10-12', 'name': 'Oliver', 'points': 1463},
45+
{'date': '2021-10-12', 'name': 'Elijah', 'points': 1478},
46+
{'date': '2021-10-13', 'name': 'Oliver', 'points': 1524},
47+
{'date': '2021-10-13', 'name': 'Elijah', 'points': 1496},
48+
{'date': '2021-10-14', 'name': 'Liam', 'points': 1527},
49+
{'date': '2021-10-14', 'name': 'Oliver', 'points': 1527},
50+
{'date': '2021-10-14', 'name': 'Elijah', 'points': 1462},
51+
{'date': '2021-10-15', 'name': 'Liam', 'points': 1532},
52+
{'date': '2021-10-15', 'name': 'Noah', 'points': 1509},
53+
{'date': '2021-10-15', 'name': 'Oliver', 'points': 1540},
54+
{'date': '2021-10-15', 'name': 'Elijah', 'points': 1536},
55+
{'date': '2021-10-16', 'name': 'Liam', 'points': 1480},
56+
{'date': '2021-10-16', 'name': 'Elijah', 'points': 1533},
57+
{'date': '2021-10-17', 'name': 'Noah', 'points': 1515},
58+
{'date': '2021-10-17', 'name': 'Oliver', 'points': 1518},
59+
{'date': '2021-10-17', 'name': 'Elijah', 'points': 1515},
60+
{'date': '2021-10-18', 'name': 'Oliver', 'points': 1489},
61+
{'date': '2021-10-18', 'name': 'Elijah', 'points': 1518},
62+
{'date': '2021-10-19', 'name': 'Oliver', 'points': 1472},
63+
{'date': '2021-10-19', 'name': 'Elijah', 'points': 1473},
64+
{'date': '2021-10-20', 'name': 'Liam', 'points': 1513},
65+
{'date': '2021-10-20', 'name': 'Noah', 'points': 1533},
66+
{'date': '2021-10-20', 'name': 'Oliver', 'points': 1487},
67+
{'date': '2021-10-20', 'name': 'Elijah', 'points': 1532},
68+
{'date': '2021-10-21', 'name': 'Liam', 'points': 1497},
69+
{'date': '2021-10-21', 'name': 'Noah', 'points': 1477},
70+
{'date': '2021-10-21', 'name': 'Oliver', 'points': 1516},
71+
{'date': '2021-10-22', 'name': 'Liam', 'points': 1466},
72+
{'date': '2021-10-22', 'name': 'Noah', 'points': 1476},
73+
{'date': '2021-10-22', 'name': 'Oliver', 'points': 1536},
74+
{'date': '2021-10-22', 'name': 'Elijah', 'points': 1483},
75+
{'date': '2021-10-23', 'name': 'Liam', 'points': 1503},
76+
{'date': '2021-10-23', 'name': 'Oliver', 'points': 1521},
77+
{'date': '2021-10-23', 'name': 'Elijah', 'points': 1529},
78+
{'date': '2021-10-24', 'name': 'Liam', 'points': 1460},
79+
{'date': '2021-10-24', 'name': 'Noah', 'points': 1532},
80+
{'date': '2021-10-24', 'name': 'Oliver', 'points': 1477},
81+
{'date': '2021-10-24', 'name': 'Elijah', 'points': 1470},
82+
{'date': '2021-10-25', 'name': 'Noah', 'points': 1504},
83+
{'date': '2021-10-25', 'name': 'Oliver', 'points': 1494},
84+
{'date': '2021-10-25', 'name': 'Elijah', 'points': 1528},
85+
{'date': '2021-10-26', 'name': 'Liam', 'points': 1517},
86+
{'date': '2021-10-26', 'name': 'Noah', 'points': 1503},
87+
{'date': '2021-10-26', 'name': 'Elijah', 'points': 1507},
88+
{'date': '2021-10-27', 'name': 'Liam', 'points': 1538},
89+
{'date': '2021-10-27', 'name': 'Noah', 'points': 1530},
90+
{'date': '2021-10-27', 'name': 'Oliver', 'points': 1496},
91+
{'date': '2021-10-27', 'name': 'Elijah', 'points': 1519},
92+
{'date': '2021-10-28', 'name': 'Liam', 'points': 1511},
93+
{'date': '2021-10-28', 'name': 'Oliver', 'points': 1500},
94+
{'date': '2021-10-28', 'name': 'Elijah', 'points': 1519},
95+
{'date': '2021-10-29', 'name': 'Noah', 'points': 1499},
96+
{'date': '2021-10-29', 'name': 'Oliver', 'points': 1489},
97+
{'date': '2021-10-30', 'name': 'Noah', 'points': 1460}
98+
];
99+
9100
class TimeSeriesSales {
10101
final DateTime time;
11102
final int sales;

example/lib/main.dart

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'pages/point.dart';
88
import 'pages/polygon.dart';
99
import 'pages/custom.dart';
1010
import 'pages/bigdata.dart';
11+
// import 'pages/debug.dart';
1112

1213
final routes = {
1314
'/': (context) => const HomePage(),
@@ -18,6 +19,7 @@ final routes = {
1819
'/examples/Polygon Element': (context) => PolygonPage(),
1920
'/examples/Custom': (context) => CustomPage(),
2021
'/examples/Bigdata': (context) => BigdataPage(),
22+
// '/examples/Debug': (context) => DebugPage(),
2123
};
2224

2325
class MyApp extends StatelessWidget {

example/lib/pages/custom.dart

+27-11
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,8 @@ class CustomPage extends StatelessWidget {
319319
},
320320
elements: [
321321
IntervalElement(
322-
position: Varset('index') * Varset('value') / Varset('type'),
322+
position:
323+
Varset('index') * Varset('value') / Varset('type'),
323324
color: ColorAttr(
324325
variable: 'type', values: Defaults.colors10),
325326
size: SizeAttr(value: 2),
@@ -339,62 +340,77 @@ class CustomPage extends StatelessWidget {
339340
crosshair: CrosshairGuide(),
340341
annotations: [
341342
MarkAnnotation(
342-
relativePath: Path()..addRect(Rect.fromCircle(center: const Offset(0, 0), radius: 5)),
343+
relativePath: Path()
344+
..addRect(Rect.fromCircle(
345+
center: const Offset(0, 0), radius: 5)),
343346
style: Paint()..color = Defaults.colors10[0],
344347
anchor: (size) => const Offset(25, 290),
345348
),
346349
TagAnnotation(
347350
label: Label(
348351
'Email',
349-
LabelStyle(Defaults.textStyle, align: Alignment.centerRight),
352+
LabelStyle(Defaults.textStyle,
353+
align: Alignment.centerRight),
350354
),
351355
anchor: (size) => const Offset(34, 290),
352356
),
353357
MarkAnnotation(
354-
relativePath: Path()..addRect(Rect.fromCircle(center: const Offset(0, 0), radius: 5)),
358+
relativePath: Path()
359+
..addRect(Rect.fromCircle(
360+
center: const Offset(0, 0), radius: 5)),
355361
style: Paint()..color = Defaults.colors10[1],
356362
anchor: (size) => Offset(25 + size.width / 5, 290),
357363
),
358364
TagAnnotation(
359365
label: Label(
360366
'Affiliate',
361-
LabelStyle(Defaults.textStyle, align: Alignment.centerRight),
367+
LabelStyle(Defaults.textStyle,
368+
align: Alignment.centerRight),
362369
),
363370
anchor: (size) => Offset(34 + size.width / 5, 290),
364371
),
365372
MarkAnnotation(
366-
relativePath: Path()..addRect(Rect.fromCircle(center: const Offset(0, 0), radius: 5)),
373+
relativePath: Path()
374+
..addRect(Rect.fromCircle(
375+
center: const Offset(0, 0), radius: 5)),
367376
style: Paint()..color = Defaults.colors10[2],
368377
anchor: (size) => Offset(25 + size.width / 5 * 2, 290),
369378
),
370379
TagAnnotation(
371380
label: Label(
372381
'Video',
373-
LabelStyle(Defaults.textStyle, align: Alignment.centerRight),
382+
LabelStyle(Defaults.textStyle,
383+
align: Alignment.centerRight),
374384
),
375385
anchor: (size) => Offset(34 + size.width / 5 * 2, 290),
376386
),
377387
MarkAnnotation(
378-
relativePath: Path()..addRect(Rect.fromCircle(center: const Offset(0, 0), radius: 5)),
388+
relativePath: Path()
389+
..addRect(Rect.fromCircle(
390+
center: const Offset(0, 0), radius: 5)),
379391
style: Paint()..color = Defaults.colors10[3],
380392
anchor: (size) => Offset(25 + size.width / 5 * 3, 290),
381393
),
382394
TagAnnotation(
383395
label: Label(
384396
'Direct',
385-
LabelStyle(Defaults.textStyle, align: Alignment.centerRight),
397+
LabelStyle(Defaults.textStyle,
398+
align: Alignment.centerRight),
386399
),
387400
anchor: (size) => Offset(34 + size.width / 5 * 3, 290),
388401
),
389402
MarkAnnotation(
390-
relativePath: Path()..addRect(Rect.fromCircle(center: const Offset(0, 0), radius: 5)),
403+
relativePath: Path()
404+
..addRect(Rect.fromCircle(
405+
center: const Offset(0, 0), radius: 5)),
391406
style: Paint()..color = Defaults.colors10[4],
392407
anchor: (size) => Offset(25 + size.width / 5 * 4, 290),
393408
),
394409
TagAnnotation(
395410
label: Label(
396411
'Search',
397-
LabelStyle(Defaults.textStyle, align: Alignment.centerRight),
412+
LabelStyle(Defaults.textStyle,
413+
align: Alignment.centerRight),
398414
),
399415
anchor: (size) => Offset(34 + size.width / 5 * 4, 290),
400416
),

0 commit comments

Comments
 (0)