svelteplot 0.10.3 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Mark.svelte +42 -25
- package/dist/Mark.svelte.d.ts +111 -32
- package/dist/Plot.svelte +21 -15
- package/dist/core/Facet.svelte +1 -1
- package/dist/core/FacetAxes.svelte +13 -8
- package/dist/core/FacetGrid.svelte +4 -4
- package/dist/core/Plot.svelte +41 -35
- package/dist/helpers/autoScales.d.ts +3 -3
- package/dist/helpers/autoScales.js +28 -18
- package/dist/helpers/autoTicks.js +2 -0
- package/dist/helpers/callWithProps.d.ts +1 -2
- package/dist/helpers/facets.js +0 -1
- package/dist/helpers/index.js +1 -1
- package/dist/helpers/mergeDeep.d.ts +1 -3
- package/dist/helpers/mergeDeep.js +15 -16
- package/dist/helpers/projection.d.ts +4 -3
- package/dist/helpers/projection.js +17 -5
- package/dist/helpers/reduce.d.ts +4 -4
- package/dist/helpers/reduce.js +6 -4
- package/dist/helpers/regressionLoess.js +2 -1
- package/dist/helpers/resolve.d.ts +6 -3
- package/dist/helpers/resolve.js +25 -16
- package/dist/helpers/scales.d.ts +10 -10
- package/dist/helpers/scales.js +43 -13
- package/dist/helpers/time.d.ts +10 -3
- package/dist/helpers/time.js +2 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/plotDefaults.d.ts +3 -1
- package/dist/hooks/plotDefaults.js +33 -1
- package/dist/hooks/usePlot.svelte.d.ts +10 -25
- package/dist/hooks/usePlot.svelte.js +8 -7
- package/dist/index.d.ts +1 -2
- package/dist/index.js +1 -3
- package/dist/marks/Area.svelte +24 -13
- package/dist/marks/Area.svelte.d.ts +118 -34
- package/dist/marks/AreaX.svelte +42 -8
- package/dist/marks/AreaX.svelte.d.ts +154 -71
- package/dist/marks/AreaY.svelte +42 -8
- package/dist/marks/AreaY.svelte.d.ts +154 -71
- package/dist/marks/Arrow.svelte +42 -23
- package/dist/marks/Arrow.svelte.d.ts +114 -35
- package/dist/marks/AxisX.svelte +43 -28
- package/dist/marks/AxisX.svelte.d.ts +125 -40
- package/dist/marks/AxisY.svelte +43 -26
- package/dist/marks/AxisY.svelte.d.ts +127 -40
- package/dist/marks/BarX.svelte +12 -10
- package/dist/marks/BarX.svelte.d.ts +104 -32
- package/dist/marks/BarY.svelte +11 -10
- package/dist/marks/BarY.svelte.d.ts +106 -34
- package/dist/marks/BollingerX.svelte +4 -7
- package/dist/marks/BollingerX.svelte.d.ts +105 -30
- package/dist/marks/BollingerY.svelte +3 -0
- package/dist/marks/BollingerY.svelte.d.ts +105 -30
- package/dist/marks/BoxX.svelte +3 -3
- package/dist/marks/BoxY.svelte +12 -9
- package/dist/marks/BoxY.svelte.d.ts +128 -53
- package/dist/marks/Brush.svelte +26 -21
- package/dist/marks/Brush.svelte.d.ts +119 -60
- package/dist/marks/Cell.svelte +13 -9
- package/dist/marks/Cell.svelte.d.ts +105 -30
- package/dist/marks/CellX.svelte +2 -1
- package/dist/marks/CellX.svelte.d.ts +105 -32
- package/dist/marks/CellY.svelte +2 -1
- package/dist/marks/CellY.svelte.d.ts +105 -32
- package/dist/marks/ColorLegend.svelte +24 -13
- package/dist/marks/ColorLegend.svelte.d.ts +1 -0
- package/dist/marks/CustomMark.svelte +16 -10
- package/dist/marks/CustomMark.svelte.d.ts +112 -31
- package/dist/marks/CustomMarkHTML.svelte +8 -2
- package/dist/marks/CustomMarkHTML.svelte.d.ts +8 -2
- package/dist/marks/DifferenceY.svelte +31 -20
- package/dist/marks/DifferenceY.svelte.d.ts +134 -55
- package/dist/marks/Dot.svelte +21 -11
- package/dist/marks/Dot.svelte.d.ts +117 -38
- package/dist/marks/DotX.svelte +2 -0
- package/dist/marks/DotX.svelte.d.ts +136 -62
- package/dist/marks/DotY.svelte +1 -0
- package/dist/marks/DotY.svelte.d.ts +135 -62
- package/dist/marks/Frame.svelte +47 -9
- package/dist/marks/Frame.svelte.d.ts +124 -41
- package/dist/marks/Geo.svelte +21 -12
- package/dist/marks/Geo.svelte.d.ts +105 -30
- package/dist/marks/Graticule.svelte +3 -0
- package/dist/marks/Graticule.svelte.d.ts +3 -0
- package/dist/marks/GridX.svelte +31 -16
- package/dist/marks/GridX.svelte.d.ts +108 -32
- package/dist/marks/GridY.svelte +30 -15
- package/dist/marks/GridY.svelte.d.ts +108 -32
- package/dist/marks/HTMLTooltip.svelte +14 -7
- package/dist/marks/HTMLTooltip.svelte.d.ts +7 -0
- package/dist/marks/Image.svelte +50 -25
- package/dist/marks/Image.svelte.d.ts +117 -35
- package/dist/marks/Line.svelte +67 -44
- package/dist/marks/Line.svelte.d.ts +119 -30
- package/dist/marks/LineX.svelte +2 -1
- package/dist/marks/LineX.svelte.d.ts +142 -69
- package/dist/marks/LineY.svelte +2 -1
- package/dist/marks/LineY.svelte.d.ts +142 -69
- package/dist/marks/Link.svelte +70 -46
- package/dist/marks/Link.svelte.d.ts +126 -41
- package/dist/marks/Pointer.svelte +24 -15
- package/dist/marks/Pointer.svelte.d.ts +7 -0
- package/dist/marks/Rect.svelte +13 -5
- package/dist/marks/Rect.svelte.d.ts +116 -35
- package/dist/marks/RectX.svelte +6 -3
- package/dist/marks/RectX.svelte.d.ts +158 -12
- package/dist/marks/RectY.svelte +6 -3
- package/dist/marks/RectY.svelte.d.ts +158 -12
- package/dist/marks/RegressionX.svelte +13 -6
- package/dist/marks/RegressionX.svelte.d.ts +8 -3
- package/dist/marks/RegressionY.svelte +13 -6
- package/dist/marks/RegressionY.svelte.d.ts +8 -3
- package/dist/marks/RuleX.svelte +18 -11
- package/dist/marks/RuleX.svelte.d.ts +112 -32
- package/dist/marks/RuleY.svelte +19 -12
- package/dist/marks/RuleY.svelte.d.ts +114 -34
- package/dist/marks/Spike.svelte +11 -5
- package/dist/marks/Spike.svelte.d.ts +146 -68
- package/dist/marks/Text.svelte +24 -7
- package/dist/marks/Text.svelte.d.ts +253 -75
- package/dist/marks/TickX.svelte +56 -48
- package/dist/marks/TickX.svelte.d.ts +114 -40
- package/dist/marks/TickY.svelte +59 -51
- package/dist/marks/TickY.svelte.d.ts +117 -43
- package/dist/marks/Trail.svelte +25 -13
- package/dist/marks/Trail.svelte.d.ts +116 -33
- package/dist/marks/Vector.svelte +20 -11
- package/dist/marks/Vector.svelte.d.ts +116 -35
- package/dist/marks/WaffleX.svelte +18 -16
- package/dist/marks/WaffleX.svelte.d.ts +131 -57
- package/dist/marks/WaffleY.svelte +16 -15
- package/dist/marks/WaffleY.svelte.d.ts +129 -56
- package/dist/marks/helpers/Anchor.svelte +17 -2
- package/dist/marks/helpers/Anchor.svelte.d.ts +16 -1
- package/dist/marks/helpers/AreaCanvas.svelte +8 -8
- package/dist/marks/helpers/BaseAxisX.svelte +38 -41
- package/dist/marks/helpers/BaseAxisX.svelte.d.ts +11 -17
- package/dist/marks/helpers/BaseAxisY.svelte +35 -35
- package/dist/marks/helpers/BaseAxisY.svelte.d.ts +12 -15
- package/dist/marks/helpers/Box.svelte +35 -28
- package/dist/marks/helpers/Box.svelte.d.ts +122 -50
- package/dist/marks/helpers/DotCanvas.svelte +11 -9
- package/dist/marks/helpers/GeoCanvas.svelte +7 -6
- package/dist/marks/helpers/LineCanvas.svelte +7 -7
- package/dist/marks/helpers/LinearGradientX.svelte +2 -2
- package/dist/marks/helpers/LinearGradientX.svelte.d.ts +1 -1
- package/dist/marks/helpers/LinearGradientY.svelte +2 -2
- package/dist/marks/helpers/LinearGradientY.svelte.d.ts +1 -1
- package/dist/marks/helpers/Marker.svelte +2 -2
- package/dist/marks/helpers/MarkerPath.svelte +15 -12
- package/dist/marks/helpers/MarkerPath.svelte.d.ts +105 -32
- package/dist/marks/helpers/MultilineText.svelte +24 -17
- package/dist/marks/helpers/MultilineText.svelte.d.ts +1 -1
- package/dist/marks/helpers/RectCanvas.svelte +31 -26
- package/dist/marks/helpers/RectPath.svelte +2 -2
- package/dist/marks/helpers/Regression.svelte +176 -86
- package/dist/marks/helpers/Regression.svelte.d.ts +20 -8
- package/dist/marks/helpers/RuleCanvas.svelte +9 -6
- package/dist/marks/helpers/TextCanvas.svelte +13 -9
- package/dist/marks/helpers/TextCanvas.svelte.d.ts +6 -6
- package/dist/marks/helpers/TickCanvas.svelte +6 -5
- package/dist/marks/helpers/TrailCanvas.svelte +16 -18
- package/dist/marks/helpers/TrailCanvas.svelte.d.ts +3 -5
- package/dist/marks/helpers/canvas.js +16 -9
- package/dist/marks/helpers/events.d.ts +2 -2
- package/dist/marks/helpers/events.js +14 -7
- package/dist/marks/helpers/waffle.d.ts +3 -3
- package/dist/marks/helpers/waffle.js +6 -4
- package/dist/regression/polynomial.d.ts +1 -1
- package/dist/regression/polynomial.js +5 -5
- package/dist/regression/utils/determination.d.ts +1 -1
- package/dist/regression/utils/determination.js +1 -1
- package/dist/regression/utils/geometry.d.ts +1 -1
- package/dist/regression/utils/interpose.d.ts +1 -1
- package/dist/regression/utils/interpose.js +1 -1
- package/dist/regression/utils/points.d.ts +1 -1
- package/dist/transforms/bin.d.ts +3 -3
- package/dist/transforms/bin.js +29 -20
- package/dist/transforms/bollinger.d.ts +8 -0
- package/dist/transforms/bollinger.js +9 -1
- package/dist/transforms/centroid.d.ts +4 -0
- package/dist/transforms/centroid.js +4 -0
- package/dist/transforms/density.d.ts +4 -4
- package/dist/transforms/density.js +20 -13
- package/dist/transforms/dodge.d.ts +12 -1
- package/dist/transforms/dodge.js +15 -6
- package/dist/transforms/group.d.ts +141 -4
- package/dist/transforms/group.js +4 -1
- package/dist/transforms/interval.d.ts +204 -60
- package/dist/transforms/jitter.d.ts +421 -4
- package/dist/transforms/jitter.js +10 -1
- package/dist/transforms/map.d.ts +412 -4
- package/dist/transforms/map.js +3 -3
- package/dist/transforms/normalize.d.ts +276 -5
- package/dist/transforms/normalize.js +5 -3
- package/dist/transforms/recordize.d.ts +17 -5
- package/dist/transforms/recordize.js +13 -9
- package/dist/transforms/rename.d.ts +11 -4
- package/dist/transforms/rename.js +7 -2
- package/dist/transforms/select.d.ts +722 -210
- package/dist/transforms/select.js +13 -1
- package/dist/transforms/shift.d.ts +8 -0
- package/dist/transforms/shift.js +20 -6
- package/dist/transforms/sort.d.ts +13 -258
- package/dist/transforms/sort.js +13 -10
- package/dist/transforms/stack.d.ts +58 -9
- package/dist/transforms/stack.js +27 -11
- package/dist/transforms/window.d.ts +221 -66
- package/dist/transforms/window.js +8 -2
- package/dist/types/axes.d.ts +43 -0
- package/dist/types/axes.js +1 -0
- package/dist/types/channel.d.ts +30 -2
- package/dist/types/data.d.ts +14 -1
- package/dist/types/facet.d.ts +5 -0
- package/dist/types/index.d.ts +33 -8
- package/dist/types/index.js +11 -7
- package/dist/types/mark.d.ts +124 -35
- package/dist/types/plot.d.ts +118 -16
- package/dist/types/scale.d.ts +125 -8
- package/package.json +178 -175
- package/dist/helpers/autoTicks.d.ts +0 -12
|
@@ -1,71 +1,146 @@
|
|
|
1
|
-
import type { ChannelAccessor, DataRecord, RawValue } from '../types';
|
|
1
|
+
import type { ChannelAccessor, DataRecord, RawValue } from '../types/index.js';
|
|
2
2
|
declare function $$render<Datum extends DataRecord>(): {
|
|
3
3
|
props: Pick<Partial<{
|
|
4
|
-
filter: import("../types").ConstantAccessor<boolean, Datum>;
|
|
4
|
+
filter: import("../types/index.js").ConstantAccessor<boolean, Datum>;
|
|
5
5
|
facet: "auto" | "include" | "exclude";
|
|
6
6
|
fx: ChannelAccessor<Datum>;
|
|
7
7
|
fy: ChannelAccessor<Datum>;
|
|
8
|
-
dx: import("../types").ConstantAccessor<number, Datum>;
|
|
9
|
-
dy: import("../types").ConstantAccessor<number, Datum>;
|
|
8
|
+
dx: import("../types/index.js").ConstantAccessor<number, Datum>;
|
|
9
|
+
dy: import("../types/index.js").ConstantAccessor<number, Datum>;
|
|
10
10
|
dodgeX: import("../transforms/dodge.js").DodgeXOptions;
|
|
11
11
|
dodgeY: import("../transforms/dodge.js").DodgeYOptions;
|
|
12
12
|
fill: ChannelAccessor<Datum>;
|
|
13
|
-
fillOpacity: import("../types").ConstantAccessor<number, Datum>;
|
|
13
|
+
fillOpacity: import("../types/index.js").ConstantAccessor<number, Datum>;
|
|
14
|
+
fontFamily: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
|
|
15
|
+
fontSize: import("../types/index.js").ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
|
|
16
|
+
fontStyle: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
|
|
17
|
+
fontVariant: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
|
|
18
|
+
fontWeight: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
|
|
19
|
+
letterSpacing: import("../types/index.js").ConstantAccessor<import("csstype").Property.LetterSpacing<0 | (string & {})>, Datum>;
|
|
20
|
+
wordSpacing: import("../types/index.js").ConstantAccessor<import("csstype").Property.WordSpacing<0 | (string & {})>, Datum>;
|
|
21
|
+
textAnchor: import("../types/index.js").ConstantAccessor<import("csstype").Property.TextAnchor, Datum>;
|
|
22
|
+
textTransform: import("../types/index.js").ConstantAccessor<import("csstype").Property.TextTransform, Datum>;
|
|
23
|
+
textDecoration: import("../types/index.js").ConstantAccessor<import("csstype").Property.TextDecoration<0 | (string & {})>, Datum>;
|
|
14
24
|
sort: ((a: RawValue, b: RawValue) => number) | {
|
|
15
25
|
channel: string;
|
|
16
26
|
order?: "ascending" | "descending";
|
|
17
|
-
} | import("../types").ConstantAccessor<RawValue, Datum>;
|
|
27
|
+
} | import("../types/index.js").ConstantAccessor<RawValue, Datum>;
|
|
18
28
|
stroke: ChannelAccessor<Datum>;
|
|
19
|
-
strokeWidth: import("../types").ConstantAccessor<number, Datum>;
|
|
20
|
-
strokeOpacity: import("../types").ConstantAccessor<number, Datum>;
|
|
21
|
-
strokeLinejoin: import("../types").ConstantAccessor<import("csstype").Property.StrokeLinejoin, Datum>;
|
|
22
|
-
strokeLinecap: import("../types").ConstantAccessor<import("csstype").Property.StrokeLinecap, Datum>;
|
|
23
|
-
strokeMiterlimit: import("../types").ConstantAccessor<number, Datum>;
|
|
29
|
+
strokeWidth: import("../types/index.js").ConstantAccessor<number, Datum>;
|
|
30
|
+
strokeOpacity: import("../types/index.js").ConstantAccessor<number, Datum>;
|
|
31
|
+
strokeLinejoin: import("../types/index.js").ConstantAccessor<import("csstype").Property.StrokeLinejoin, Datum>;
|
|
32
|
+
strokeLinecap: import("../types/index.js").ConstantAccessor<import("csstype").Property.StrokeLinecap, Datum>;
|
|
33
|
+
strokeMiterlimit: import("../types/index.js").ConstantAccessor<number, Datum>;
|
|
24
34
|
opacity: ChannelAccessor<Datum>;
|
|
25
|
-
strokeDasharray: import("../types").ConstantAccessor<string, Datum>;
|
|
26
|
-
strokeDashoffset: import("../types").ConstantAccessor<number, Datum>;
|
|
27
|
-
|
|
35
|
+
strokeDasharray: import("../types/index.js").ConstantAccessor<string, Datum>;
|
|
36
|
+
strokeDashoffset: import("../types/index.js").ConstantAccessor<number, Datum>;
|
|
37
|
+
blend: import("../types/index.js").ConstantAccessor<import("csstype").Property.MixBlendMode, Datum>;
|
|
38
|
+
mixBlendMode: import("../types/index.js").ConstantAccessor<import("csstype").Property.MixBlendMode, Datum>;
|
|
28
39
|
clipPath: string;
|
|
29
40
|
mask: string;
|
|
30
|
-
imageFilter: import("../types").ConstantAccessor<string, Datum>;
|
|
31
|
-
shapeRendering: import("../types").ConstantAccessor<import("csstype").Property.ShapeRendering, Datum>;
|
|
32
|
-
paintOrder: import("../types").ConstantAccessor<string, Datum>;
|
|
33
|
-
onclick:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
41
|
+
imageFilter: import("../types/index.js").ConstantAccessor<string, Datum>;
|
|
42
|
+
shapeRendering: import("../types/index.js").ConstantAccessor<import("csstype").Property.ShapeRendering, Datum>;
|
|
43
|
+
paintOrder: import("../types/index.js").ConstantAccessor<string, Datum>;
|
|
44
|
+
onclick: (event: Event & {
|
|
45
|
+
currentTarget: SVGPathElement;
|
|
46
|
+
}, datum: Datum, index: number) => void;
|
|
47
|
+
ondblclick: (event: Event & {
|
|
48
|
+
currentTarget: SVGPathElement;
|
|
49
|
+
}, datum: Datum, index: number) => void;
|
|
50
|
+
onmouseup: (event: Event & {
|
|
51
|
+
currentTarget: SVGPathElement;
|
|
52
|
+
}, datum: Datum, index: number) => void;
|
|
53
|
+
onmousedown: (event: Event & {
|
|
54
|
+
currentTarget: SVGPathElement;
|
|
55
|
+
}, datum: Datum, index: number) => void;
|
|
56
|
+
onmouseenter: (event: Event & {
|
|
57
|
+
currentTarget: SVGPathElement;
|
|
58
|
+
}, datum: Datum, index: number) => void;
|
|
59
|
+
onmousemove: (event: Event & {
|
|
60
|
+
currentTarget: SVGPathElement;
|
|
61
|
+
}, datum: Datum, index: number) => void;
|
|
62
|
+
onmouseleave: (event: Event & {
|
|
63
|
+
currentTarget: SVGPathElement;
|
|
64
|
+
}, datum: Datum, index: number) => void;
|
|
65
|
+
onmouseout: (event: Event & {
|
|
66
|
+
currentTarget: SVGPathElement;
|
|
67
|
+
}, datum: Datum, index: number) => void;
|
|
68
|
+
onmouseover: (event: Event & {
|
|
69
|
+
currentTarget: SVGPathElement;
|
|
70
|
+
}, datum: Datum, index: number) => void;
|
|
71
|
+
onpointercancel: (event: Event & {
|
|
72
|
+
currentTarget: SVGPathElement;
|
|
73
|
+
}, datum: Datum, index: number) => void;
|
|
74
|
+
onpointerdown: (event: Event & {
|
|
75
|
+
currentTarget: SVGPathElement;
|
|
76
|
+
}, datum: Datum, index: number) => void;
|
|
77
|
+
onpointerup: (event: Event & {
|
|
78
|
+
currentTarget: SVGPathElement;
|
|
79
|
+
}, datum: Datum, index: number) => void;
|
|
80
|
+
onpointerenter: (event: Event & {
|
|
81
|
+
currentTarget: SVGPathElement;
|
|
82
|
+
}, datum: Datum, index: number) => void;
|
|
83
|
+
onpointerleave: (event: Event & {
|
|
84
|
+
currentTarget: SVGPathElement;
|
|
85
|
+
}, datum: Datum, index: number) => void;
|
|
86
|
+
onpointermove: (event: Event & {
|
|
87
|
+
currentTarget: SVGPathElement;
|
|
88
|
+
}, datum: Datum, index: number) => void;
|
|
89
|
+
onpointerover: (event: Event & {
|
|
90
|
+
currentTarget: SVGPathElement;
|
|
91
|
+
}, datum: Datum, index: number) => void;
|
|
92
|
+
onpointerout: (event: Event & {
|
|
93
|
+
currentTarget: SVGPathElement;
|
|
94
|
+
}, datum: Datum, index: number) => void;
|
|
95
|
+
ondrag: (event: Event & {
|
|
96
|
+
currentTarget: SVGPathElement;
|
|
97
|
+
}, datum: Datum, index: number) => void;
|
|
98
|
+
ondrop: (event: Event & {
|
|
99
|
+
currentTarget: SVGPathElement;
|
|
100
|
+
}, datum: Datum, index: number) => void;
|
|
101
|
+
ondragstart: (event: Event & {
|
|
102
|
+
currentTarget: SVGPathElement;
|
|
103
|
+
}, datum: Datum, index: number) => void;
|
|
104
|
+
ondragenter: (event: Event & {
|
|
105
|
+
currentTarget: SVGPathElement;
|
|
106
|
+
}, datum: Datum, index: number) => void;
|
|
107
|
+
ondragleave: (event: Event & {
|
|
108
|
+
currentTarget: SVGPathElement;
|
|
109
|
+
}, datum: Datum, index: number) => void;
|
|
110
|
+
ondragover: (event: Event & {
|
|
111
|
+
currentTarget: SVGPathElement;
|
|
112
|
+
}, datum: Datum, index: number) => void;
|
|
113
|
+
ondragend: (event: Event & {
|
|
114
|
+
currentTarget: SVGPathElement;
|
|
115
|
+
}, datum: Datum, index: number) => void;
|
|
116
|
+
ontouchstart: (event: Event & {
|
|
117
|
+
currentTarget: SVGPathElement;
|
|
118
|
+
}, datum: Datum, index: number) => void;
|
|
119
|
+
ontouchmove: (event: Event & {
|
|
120
|
+
currentTarget: SVGPathElement;
|
|
121
|
+
}, datum: Datum, index: number) => void;
|
|
122
|
+
ontouchend: (event: Event & {
|
|
123
|
+
currentTarget: SVGPathElement;
|
|
124
|
+
}, datum: Datum, index: number) => void;
|
|
125
|
+
ontouchcancel: (event: Event & {
|
|
126
|
+
currentTarget: SVGPathElement;
|
|
127
|
+
}, datum: Datum, index: number) => void;
|
|
128
|
+
oncontextmenu: (event: Event & {
|
|
129
|
+
currentTarget: SVGPathElement;
|
|
130
|
+
}, datum: Datum, index: number) => void;
|
|
131
|
+
onwheel: (event: Event & {
|
|
132
|
+
currentTarget: SVGPathElement;
|
|
133
|
+
}, datum: Datum, index: number) => void;
|
|
63
134
|
class: string;
|
|
64
135
|
style: string;
|
|
65
|
-
cursor: import("../types").ConstantAccessor<import("csstype").Property.Cursor, Datum>;
|
|
136
|
+
cursor: import("../types/index.js").ConstantAccessor<import("csstype").Property.Cursor, Datum>;
|
|
137
|
+
title: import("../types/index.js").ConstantAccessor<string, Datum>;
|
|
66
138
|
}>, "fx" | "fy" | "fill" | "stroke" | "class"> & {
|
|
139
|
+
/** the input data array */
|
|
67
140
|
data: Datum[];
|
|
141
|
+
/** the horizontal position channel; bound to a band scale for grouping */
|
|
68
142
|
x: ChannelAccessor;
|
|
143
|
+
/** the vertical position channel; the quantitative values to summarize */
|
|
69
144
|
y: ChannelAccessor;
|
|
70
145
|
/**
|
|
71
146
|
* Custom sort order for grouped box plot data
|
|
@@ -74,23 +149,23 @@ declare function $$render<Datum extends DataRecord>(): {
|
|
|
74
149
|
/**
|
|
75
150
|
* Options for the rule marks that represent the min/max range
|
|
76
151
|
*/
|
|
77
|
-
rule
|
|
152
|
+
rule?: Record<string, ChannelAccessor<Datum>>;
|
|
78
153
|
/**
|
|
79
154
|
* Options for the bar marks that represent the IQR range
|
|
80
155
|
*/
|
|
81
|
-
bar
|
|
156
|
+
bar?: Record<string, ChannelAccessor<Datum>>;
|
|
82
157
|
/**
|
|
83
158
|
* Options for the tick marks that represent the median
|
|
84
159
|
*/
|
|
85
|
-
tickMedian
|
|
160
|
+
tickMedian?: Record<string, ChannelAccessor<Datum>> | boolean;
|
|
86
161
|
/**
|
|
87
162
|
* Options for the tick marks that represent the min/max range
|
|
88
163
|
*/
|
|
89
|
-
tickMinMax
|
|
164
|
+
tickMinMax?: Record<string, ChannelAccessor<Datum>> | boolean;
|
|
90
165
|
/**
|
|
91
166
|
* Options for the dot marks that represent the outliers
|
|
92
167
|
*/
|
|
93
|
-
dot
|
|
168
|
+
dot?: Record<string, ChannelAccessor<Datum>>;
|
|
94
169
|
};
|
|
95
170
|
exports: {};
|
|
96
171
|
bindings: "";
|
package/dist/marks/Brush.svelte
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
@component
|
|
3
3
|
For creating a two-dimensional brush selection
|
|
4
4
|
-->
|
|
5
|
+
<script module lang="ts">
|
|
6
|
+
export type Brush = {
|
|
7
|
+
x1?: number | Date;
|
|
8
|
+
x2?: number | Date;
|
|
9
|
+
y1?: number | Date;
|
|
10
|
+
y2?: number | Date;
|
|
11
|
+
enabled: boolean;
|
|
12
|
+
};
|
|
13
|
+
</script>
|
|
14
|
+
|
|
5
15
|
<script lang="ts" generics="Datum extends DataRecord">
|
|
6
16
|
interface BrushMarkProps extends Pick<
|
|
7
17
|
BaseMarkProps<Datum>,
|
|
@@ -15,6 +25,7 @@
|
|
|
15
25
|
| 'strokeLinejoin'
|
|
16
26
|
| 'strokeMiterlimit'
|
|
17
27
|
> {
|
|
28
|
+
/** the brush state object (bindable); contains x1, x2, y1, y2, and enabled */
|
|
18
29
|
brush: Brush;
|
|
19
30
|
/**
|
|
20
31
|
* limit brushing to x or y dimension
|
|
@@ -28,8 +39,11 @@
|
|
|
28
39
|
* size of the (invisible) drag resize area around the edges of the brush selection
|
|
29
40
|
*/
|
|
30
41
|
resizeHandleSize?: number;
|
|
42
|
+
/** called when the user starts dragging to create or move a brush */
|
|
31
43
|
onbrushstart?: (evt: BrushEvent) => void;
|
|
44
|
+
/** called when the user finishes dragging the brush */
|
|
32
45
|
onbrushend?: (evt: BrushEvent) => void;
|
|
46
|
+
/** called continuously while the user is dragging the brush */
|
|
33
47
|
onbrush?: (evt: BrushEvent) => void;
|
|
34
48
|
}
|
|
35
49
|
import { getContext, untrack } from 'svelte';
|
|
@@ -54,18 +68,9 @@
|
|
|
54
68
|
...getPlotDefaults().brush
|
|
55
69
|
};
|
|
56
70
|
|
|
57
|
-
type Brush = {
|
|
58
|
-
x1?: number | Date;
|
|
59
|
-
x2?: number | Date;
|
|
60
|
-
y1?: number | Date;
|
|
61
|
-
y2?: number | Date;
|
|
62
|
-
enabled: boolean;
|
|
63
|
-
};
|
|
64
|
-
|
|
65
71
|
type BrushEvent = MouseEvent & { brush: Brush };
|
|
66
72
|
|
|
67
73
|
const {
|
|
68
|
-
data = [{} as Datum],
|
|
69
74
|
stroke,
|
|
70
75
|
strokeWidth,
|
|
71
76
|
strokeDasharray,
|
|
@@ -81,7 +86,7 @@
|
|
|
81
86
|
onbrushstart,
|
|
82
87
|
onbrushend,
|
|
83
88
|
onbrush
|
|
84
|
-
}: BrushMarkProps = $derived({
|
|
89
|
+
}: Omit<BrushMarkProps, 'brush'> = $derived({
|
|
85
90
|
...DEFAULTS,
|
|
86
91
|
...markProps
|
|
87
92
|
});
|
|
@@ -278,10 +283,10 @@
|
|
|
278
283
|
// draw new brush selection
|
|
279
284
|
action = 'draw';
|
|
280
285
|
if (typeof xScaleFn.invert === 'function' && limitDimension !== 'y') {
|
|
281
|
-
x1 = x2 = xScaleFn.invert(dragStart[0]);
|
|
286
|
+
x1 = x2 = xScaleFn.invert(dragStart[0]) as number | Date;
|
|
282
287
|
}
|
|
283
288
|
if (typeof yScaleFn.invert === 'function' && limitDimension !== 'x') {
|
|
284
|
-
y1 = y2 = yScaleFn.invert(dragStart[1]);
|
|
289
|
+
y1 = y2 = yScaleFn.invert(dragStart[1]) as number | Date;
|
|
285
290
|
}
|
|
286
291
|
}
|
|
287
292
|
onbrushstart?.({ ...e, brush });
|
|
@@ -323,10 +328,10 @@
|
|
|
323
328
|
const hasX = limitDimension !== 'y';
|
|
324
329
|
const hasY = limitDimension !== 'x';
|
|
325
330
|
|
|
326
|
-
const dx1 = !hasX ? 0 : xScaleFn.invert(xScaleFn(x1) + px);
|
|
327
|
-
const dx2 = !hasX ? 0 : xScaleFn.invert(xScaleFn(x2) + px);
|
|
328
|
-
const dy1 = !hasY ? 0 : yScaleFn.invert(yScaleFn(y1) + py);
|
|
329
|
-
const dy2 = !hasY ? 0 : yScaleFn.invert(yScaleFn(y2) + py);
|
|
331
|
+
const dx1 = (!hasX ? 0 : xScaleFn.invert(xScaleFn(x1) + px)) as number | Date;
|
|
332
|
+
const dx2 = (!hasX ? 0 : xScaleFn.invert(xScaleFn(x2) + px)) as number | Date;
|
|
333
|
+
const dy1 = (!hasY ? 0 : yScaleFn.invert(yScaleFn(y1) + py)) as number | Date;
|
|
334
|
+
const dy2 = (!hasY ? 0 : yScaleFn.invert(yScaleFn(y2) + py)) as number | Date;
|
|
330
335
|
|
|
331
336
|
if (action === 'move') {
|
|
332
337
|
// move edges
|
|
@@ -335,8 +340,8 @@
|
|
|
335
340
|
y1 = dy1;
|
|
336
341
|
y2 = dy2;
|
|
337
342
|
} else if (action === 'draw') {
|
|
338
|
-
x2 = !hasX ? 0 : xScaleFn.invert(newPos[0]);
|
|
339
|
-
y2 = !hasY ? 0 : yScaleFn.invert(newPos[1]);
|
|
343
|
+
x2 = (!hasX ? 0 : xScaleFn.invert(newPos[0])) as number | Date;
|
|
344
|
+
y2 = (!hasY ? 0 : yScaleFn.invert(newPos[1])) as number | Date;
|
|
340
345
|
|
|
341
346
|
if (constrainToDomain) {
|
|
342
347
|
x2 = constrain(x2, xDomain as [typeof x2, typeof x2]);
|
|
@@ -379,7 +384,7 @@
|
|
|
379
384
|
action: ActionType,
|
|
380
385
|
swapDir1: string,
|
|
381
386
|
swapDir2: string
|
|
382
|
-
) {
|
|
387
|
+
): [number | Date, number | Date, ActionType] {
|
|
383
388
|
if (action && v2 < v1) {
|
|
384
389
|
return [
|
|
385
390
|
v2,
|
|
@@ -422,5 +427,5 @@
|
|
|
422
427
|
stroke="transparent"
|
|
423
428
|
inset={-20}
|
|
424
429
|
{cursor}
|
|
425
|
-
{onpointerdown}
|
|
426
|
-
{onpointermove} />
|
|
430
|
+
onpointerdown={onpointerdown as any}
|
|
431
|
+
onpointermove={onpointermove as any} />
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
export type Brush = {
|
|
2
|
+
x1?: number | Date;
|
|
3
|
+
x2?: number | Date;
|
|
4
|
+
y1?: number | Date;
|
|
5
|
+
y2?: number | Date;
|
|
6
|
+
enabled: boolean;
|
|
7
|
+
};
|
|
1
8
|
import type { DataRecord } from '../types/index.js';
|
|
2
9
|
declare function $$render<Datum extends DataRecord>(): {
|
|
3
10
|
props: Pick<Partial<{
|
|
@@ -7,10 +14,20 @@ declare function $$render<Datum extends DataRecord>(): {
|
|
|
7
14
|
fy: import("../types/index.js").ChannelAccessor<Datum>;
|
|
8
15
|
dx: import("../types/index.js").ConstantAccessor<number, Datum>;
|
|
9
16
|
dy: import("../types/index.js").ConstantAccessor<number, Datum>;
|
|
10
|
-
dodgeX: import("../transforms/dodge").DodgeXOptions;
|
|
11
|
-
dodgeY: import("../transforms/dodge").DodgeYOptions;
|
|
17
|
+
dodgeX: import("../transforms/dodge.js").DodgeXOptions;
|
|
18
|
+
dodgeY: import("../transforms/dodge.js").DodgeYOptions;
|
|
12
19
|
fill: import("../types/index.js").ChannelAccessor<Datum>;
|
|
13
20
|
fillOpacity: import("../types/index.js").ConstantAccessor<number, Datum>;
|
|
21
|
+
fontFamily: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
|
|
22
|
+
fontSize: import("../types/index.js").ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
|
|
23
|
+
fontStyle: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
|
|
24
|
+
fontVariant: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
|
|
25
|
+
fontWeight: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
|
|
26
|
+
letterSpacing: import("../types/index.js").ConstantAccessor<import("csstype").Property.LetterSpacing<0 | (string & {})>, Datum>;
|
|
27
|
+
wordSpacing: import("../types/index.js").ConstantAccessor<import("csstype").Property.WordSpacing<0 | (string & {})>, Datum>;
|
|
28
|
+
textAnchor: import("../types/index.js").ConstantAccessor<import("csstype").Property.TextAnchor, Datum>;
|
|
29
|
+
textTransform: import("../types/index.js").ConstantAccessor<import("csstype").Property.TextTransform, Datum>;
|
|
30
|
+
textDecoration: import("../types/index.js").ConstantAccessor<import("csstype").Property.TextDecoration<0 | (string & {})>, Datum>;
|
|
14
31
|
sort: ((a: import("../types/index.js").RawValue, b: import("../types/index.js").RawValue) => number) | {
|
|
15
32
|
channel: string;
|
|
16
33
|
order?: "ascending" | "descending";
|
|
@@ -24,53 +41,110 @@ declare function $$render<Datum extends DataRecord>(): {
|
|
|
24
41
|
opacity: import("../types/index.js").ChannelAccessor<Datum>;
|
|
25
42
|
strokeDasharray: import("../types/index.js").ConstantAccessor<string, Datum>;
|
|
26
43
|
strokeDashoffset: import("../types/index.js").ConstantAccessor<number, Datum>;
|
|
44
|
+
blend: import("../types/index.js").ConstantAccessor<import("csstype").Property.MixBlendMode, Datum>;
|
|
27
45
|
mixBlendMode: import("../types/index.js").ConstantAccessor<import("csstype").Property.MixBlendMode, Datum>;
|
|
28
46
|
clipPath: string;
|
|
29
47
|
mask: string;
|
|
30
48
|
imageFilter: import("../types/index.js").ConstantAccessor<string, Datum>;
|
|
31
49
|
shapeRendering: import("../types/index.js").ConstantAccessor<import("csstype").Property.ShapeRendering, Datum>;
|
|
32
50
|
paintOrder: import("../types/index.js").ConstantAccessor<string, Datum>;
|
|
33
|
-
onclick:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
51
|
+
onclick: (event: Event & {
|
|
52
|
+
currentTarget: SVGPathElement;
|
|
53
|
+
}, datum: Datum, index: number) => void;
|
|
54
|
+
ondblclick: (event: Event & {
|
|
55
|
+
currentTarget: SVGPathElement;
|
|
56
|
+
}, datum: Datum, index: number) => void;
|
|
57
|
+
onmouseup: (event: Event & {
|
|
58
|
+
currentTarget: SVGPathElement;
|
|
59
|
+
}, datum: Datum, index: number) => void;
|
|
60
|
+
onmousedown: (event: Event & {
|
|
61
|
+
currentTarget: SVGPathElement;
|
|
62
|
+
}, datum: Datum, index: number) => void;
|
|
63
|
+
onmouseenter: (event: Event & {
|
|
64
|
+
currentTarget: SVGPathElement;
|
|
65
|
+
}, datum: Datum, index: number) => void;
|
|
66
|
+
onmousemove: (event: Event & {
|
|
67
|
+
currentTarget: SVGPathElement;
|
|
68
|
+
}, datum: Datum, index: number) => void;
|
|
69
|
+
onmouseleave: (event: Event & {
|
|
70
|
+
currentTarget: SVGPathElement;
|
|
71
|
+
}, datum: Datum, index: number) => void;
|
|
72
|
+
onmouseout: (event: Event & {
|
|
73
|
+
currentTarget: SVGPathElement;
|
|
74
|
+
}, datum: Datum, index: number) => void;
|
|
75
|
+
onmouseover: (event: Event & {
|
|
76
|
+
currentTarget: SVGPathElement;
|
|
77
|
+
}, datum: Datum, index: number) => void;
|
|
78
|
+
onpointercancel: (event: Event & {
|
|
79
|
+
currentTarget: SVGPathElement;
|
|
80
|
+
}, datum: Datum, index: number) => void;
|
|
81
|
+
onpointerdown: (event: Event & {
|
|
82
|
+
currentTarget: SVGPathElement;
|
|
83
|
+
}, datum: Datum, index: number) => void;
|
|
84
|
+
onpointerup: (event: Event & {
|
|
85
|
+
currentTarget: SVGPathElement;
|
|
86
|
+
}, datum: Datum, index: number) => void;
|
|
87
|
+
onpointerenter: (event: Event & {
|
|
88
|
+
currentTarget: SVGPathElement;
|
|
89
|
+
}, datum: Datum, index: number) => void;
|
|
90
|
+
onpointerleave: (event: Event & {
|
|
91
|
+
currentTarget: SVGPathElement;
|
|
92
|
+
}, datum: Datum, index: number) => void;
|
|
93
|
+
onpointermove: (event: Event & {
|
|
94
|
+
currentTarget: SVGPathElement;
|
|
95
|
+
}, datum: Datum, index: number) => void;
|
|
96
|
+
onpointerover: (event: Event & {
|
|
97
|
+
currentTarget: SVGPathElement;
|
|
98
|
+
}, datum: Datum, index: number) => void;
|
|
99
|
+
onpointerout: (event: Event & {
|
|
100
|
+
currentTarget: SVGPathElement;
|
|
101
|
+
}, datum: Datum, index: number) => void;
|
|
102
|
+
ondrag: (event: Event & {
|
|
103
|
+
currentTarget: SVGPathElement;
|
|
104
|
+
}, datum: Datum, index: number) => void;
|
|
105
|
+
ondrop: (event: Event & {
|
|
106
|
+
currentTarget: SVGPathElement;
|
|
107
|
+
}, datum: Datum, index: number) => void;
|
|
108
|
+
ondragstart: (event: Event & {
|
|
109
|
+
currentTarget: SVGPathElement;
|
|
110
|
+
}, datum: Datum, index: number) => void;
|
|
111
|
+
ondragenter: (event: Event & {
|
|
112
|
+
currentTarget: SVGPathElement;
|
|
113
|
+
}, datum: Datum, index: number) => void;
|
|
114
|
+
ondragleave: (event: Event & {
|
|
115
|
+
currentTarget: SVGPathElement;
|
|
116
|
+
}, datum: Datum, index: number) => void;
|
|
117
|
+
ondragover: (event: Event & {
|
|
118
|
+
currentTarget: SVGPathElement;
|
|
119
|
+
}, datum: Datum, index: number) => void;
|
|
120
|
+
ondragend: (event: Event & {
|
|
121
|
+
currentTarget: SVGPathElement;
|
|
122
|
+
}, datum: Datum, index: number) => void;
|
|
123
|
+
ontouchstart: (event: Event & {
|
|
124
|
+
currentTarget: SVGPathElement;
|
|
125
|
+
}, datum: Datum, index: number) => void;
|
|
126
|
+
ontouchmove: (event: Event & {
|
|
127
|
+
currentTarget: SVGPathElement;
|
|
128
|
+
}, datum: Datum, index: number) => void;
|
|
129
|
+
ontouchend: (event: Event & {
|
|
130
|
+
currentTarget: SVGPathElement;
|
|
131
|
+
}, datum: Datum, index: number) => void;
|
|
132
|
+
ontouchcancel: (event: Event & {
|
|
133
|
+
currentTarget: SVGPathElement;
|
|
134
|
+
}, datum: Datum, index: number) => void;
|
|
135
|
+
oncontextmenu: (event: Event & {
|
|
136
|
+
currentTarget: SVGPathElement;
|
|
137
|
+
}, datum: Datum, index: number) => void;
|
|
138
|
+
onwheel: (event: Event & {
|
|
139
|
+
currentTarget: SVGPathElement;
|
|
140
|
+
}, datum: Datum, index: number) => void;
|
|
63
141
|
class: string;
|
|
64
142
|
style: string;
|
|
65
143
|
cursor: import("../types/index.js").ConstantAccessor<import("csstype").Property.Cursor, Datum>;
|
|
144
|
+
title: import("../types/index.js").ConstantAccessor<string, Datum>;
|
|
66
145
|
}>, "stroke" | "strokeWidth" | "strokeOpacity" | "strokeLinejoin" | "strokeLinecap" | "strokeMiterlimit" | "strokeDasharray" | "strokeDashoffset" | "cursor"> & {
|
|
67
|
-
brush
|
|
68
|
-
|
|
69
|
-
x2?: number | Date;
|
|
70
|
-
y1?: number | Date;
|
|
71
|
-
y2?: number | Date;
|
|
72
|
-
enabled: boolean;
|
|
73
|
-
};
|
|
146
|
+
/** the brush state object (bindable); contains x1, x2, y1, y2, and enabled */
|
|
147
|
+
brush: Brush;
|
|
74
148
|
/**
|
|
75
149
|
* limit brushing to x or y dimension
|
|
76
150
|
*/
|
|
@@ -83,32 +157,17 @@ declare function $$render<Datum extends DataRecord>(): {
|
|
|
83
157
|
* size of the (invisible) drag resize area around the edges of the brush selection
|
|
84
158
|
*/
|
|
85
159
|
resizeHandleSize?: number;
|
|
160
|
+
/** called when the user starts dragging to create or move a brush */
|
|
86
161
|
onbrushstart?: (evt: MouseEvent & {
|
|
87
|
-
brush:
|
|
88
|
-
x1?: number | Date;
|
|
89
|
-
x2?: number | Date;
|
|
90
|
-
y1?: number | Date;
|
|
91
|
-
y2?: number | Date;
|
|
92
|
-
enabled: boolean;
|
|
93
|
-
};
|
|
162
|
+
brush: Brush;
|
|
94
163
|
}) => void;
|
|
164
|
+
/** called when the user finishes dragging the brush */
|
|
95
165
|
onbrushend?: (evt: MouseEvent & {
|
|
96
|
-
brush:
|
|
97
|
-
x1?: number | Date;
|
|
98
|
-
x2?: number | Date;
|
|
99
|
-
y1?: number | Date;
|
|
100
|
-
y2?: number | Date;
|
|
101
|
-
enabled: boolean;
|
|
102
|
-
};
|
|
166
|
+
brush: Brush;
|
|
103
167
|
}) => void;
|
|
168
|
+
/** called continuously while the user is dragging the brush */
|
|
104
169
|
onbrush?: (evt: MouseEvent & {
|
|
105
|
-
brush:
|
|
106
|
-
x1?: number | Date;
|
|
107
|
-
x2?: number | Date;
|
|
108
|
-
y1?: number | Date;
|
|
109
|
-
y2?: number | Date;
|
|
110
|
-
enabled: boolean;
|
|
111
|
-
};
|
|
170
|
+
brush: Brush;
|
|
112
171
|
}) => void;
|
|
113
172
|
};
|
|
114
173
|
exports: {};
|
package/dist/marks/Cell.svelte
CHANGED
|
@@ -5,8 +5,11 @@
|
|
|
5
5
|
<script lang="ts" generics="Datum extends DataRecord">
|
|
6
6
|
interface CellMarkProps
|
|
7
7
|
extends BaseMarkProps<Datum>, LinkableMarkProps<Datum>, BaseRectMarkProps<Datum> {
|
|
8
|
+
/** the input data array; each element becomes one cell */
|
|
8
9
|
data: Datum[];
|
|
10
|
+
/** the horizontal position channel; typically an ordinal value */
|
|
9
11
|
x?: ChannelAccessor<Datum>;
|
|
12
|
+
/** the vertical position channel; typically an ordinal value */
|
|
10
13
|
y?: ChannelAccessor<Datum>;
|
|
11
14
|
/**
|
|
12
15
|
* Renders using Canvas instead of SVG.
|
|
@@ -18,7 +21,8 @@
|
|
|
18
21
|
BaseMarkProps,
|
|
19
22
|
BaseRectMarkProps,
|
|
20
23
|
ChannelAccessor,
|
|
21
|
-
LinkableMarkProps
|
|
24
|
+
LinkableMarkProps,
|
|
25
|
+
MarkType
|
|
22
26
|
} from '../types/index.js';
|
|
23
27
|
import Mark from '../Mark.svelte';
|
|
24
28
|
import { recordizeY, sort } from '../index.js';
|
|
@@ -64,11 +68,11 @@
|
|
|
64
68
|
</script>
|
|
65
69
|
|
|
66
70
|
<Mark
|
|
67
|
-
type="cell"
|
|
68
71
|
required={['x', 'y']}
|
|
69
72
|
requiredScales={{ x: ['band'], y: ['band'] }}
|
|
70
73
|
channels={['x', 'y', 'fill', 'stroke', 'opacity', 'fillOpacity', 'strokeOpacity']}
|
|
71
|
-
{...args}
|
|
74
|
+
{...args}
|
|
75
|
+
type={'cell' as MarkType}>
|
|
72
76
|
{#snippet children({ scaledData, usedScales })}
|
|
73
77
|
{@const bwx = plot.scales.x.fn.bandwidth()}
|
|
74
78
|
{@const bwy = plot.scales.y.fn.bandwidth()}
|
|
@@ -82,10 +86,10 @@
|
|
|
82
86
|
)
|
|
83
87
|
.map((d) => ({
|
|
84
88
|
...d,
|
|
85
|
-
x1: d.x - bwx * 0.5,
|
|
86
|
-
x2: d.x + bwx * 0.5,
|
|
87
|
-
y1: d.y - bwy * 0.5,
|
|
88
|
-
y2: d.y + bwy * 0.5
|
|
89
|
+
x1: (d.x as number) - bwx * 0.5,
|
|
90
|
+
x2: (d.x as number) + bwx * 0.5,
|
|
91
|
+
y1: (d.y as number) - bwy * 0.5,
|
|
92
|
+
y2: (d.y as number) + bwy * 0.5
|
|
89
93
|
}))}
|
|
90
94
|
<RectCanvas options={args} data={rectCanvasData} {usedScales} />
|
|
91
95
|
{:else}
|
|
@@ -96,8 +100,8 @@
|
|
|
96
100
|
class={className}
|
|
97
101
|
{usedScales}
|
|
98
102
|
options={args}
|
|
99
|
-
x={d.x - bwx * 0.5}
|
|
100
|
-
y={d.y - bwy * 0.5}
|
|
103
|
+
x={(d.x as number) - bwx * 0.5}
|
|
104
|
+
y={(d.y as number) - bwy * 0.5}
|
|
101
105
|
width={bwx}
|
|
102
106
|
height={bwy} />
|
|
103
107
|
{/if}
|