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.
Files changed (222) hide show
  1. package/dist/Mark.svelte +42 -25
  2. package/dist/Mark.svelte.d.ts +111 -32
  3. package/dist/Plot.svelte +21 -15
  4. package/dist/core/Facet.svelte +1 -1
  5. package/dist/core/FacetAxes.svelte +13 -8
  6. package/dist/core/FacetGrid.svelte +4 -4
  7. package/dist/core/Plot.svelte +41 -35
  8. package/dist/helpers/autoScales.d.ts +3 -3
  9. package/dist/helpers/autoScales.js +28 -18
  10. package/dist/helpers/autoTicks.js +2 -0
  11. package/dist/helpers/callWithProps.d.ts +1 -2
  12. package/dist/helpers/facets.js +0 -1
  13. package/dist/helpers/index.js +1 -1
  14. package/dist/helpers/mergeDeep.d.ts +1 -3
  15. package/dist/helpers/mergeDeep.js +15 -16
  16. package/dist/helpers/projection.d.ts +4 -3
  17. package/dist/helpers/projection.js +17 -5
  18. package/dist/helpers/reduce.d.ts +4 -4
  19. package/dist/helpers/reduce.js +6 -4
  20. package/dist/helpers/regressionLoess.js +2 -1
  21. package/dist/helpers/resolve.d.ts +6 -3
  22. package/dist/helpers/resolve.js +25 -16
  23. package/dist/helpers/scales.d.ts +10 -10
  24. package/dist/helpers/scales.js +43 -13
  25. package/dist/helpers/time.d.ts +10 -3
  26. package/dist/helpers/time.js +2 -1
  27. package/dist/hooks/index.d.ts +2 -0
  28. package/dist/hooks/index.js +2 -0
  29. package/dist/hooks/plotDefaults.d.ts +3 -1
  30. package/dist/hooks/plotDefaults.js +33 -1
  31. package/dist/hooks/usePlot.svelte.d.ts +10 -25
  32. package/dist/hooks/usePlot.svelte.js +8 -7
  33. package/dist/index.d.ts +1 -2
  34. package/dist/index.js +1 -3
  35. package/dist/marks/Area.svelte +24 -13
  36. package/dist/marks/Area.svelte.d.ts +118 -34
  37. package/dist/marks/AreaX.svelte +42 -8
  38. package/dist/marks/AreaX.svelte.d.ts +154 -71
  39. package/dist/marks/AreaY.svelte +42 -8
  40. package/dist/marks/AreaY.svelte.d.ts +154 -71
  41. package/dist/marks/Arrow.svelte +42 -23
  42. package/dist/marks/Arrow.svelte.d.ts +114 -35
  43. package/dist/marks/AxisX.svelte +43 -28
  44. package/dist/marks/AxisX.svelte.d.ts +125 -40
  45. package/dist/marks/AxisY.svelte +43 -26
  46. package/dist/marks/AxisY.svelte.d.ts +127 -40
  47. package/dist/marks/BarX.svelte +12 -10
  48. package/dist/marks/BarX.svelte.d.ts +104 -32
  49. package/dist/marks/BarY.svelte +11 -10
  50. package/dist/marks/BarY.svelte.d.ts +106 -34
  51. package/dist/marks/BollingerX.svelte +4 -7
  52. package/dist/marks/BollingerX.svelte.d.ts +105 -30
  53. package/dist/marks/BollingerY.svelte +3 -0
  54. package/dist/marks/BollingerY.svelte.d.ts +105 -30
  55. package/dist/marks/BoxX.svelte +3 -3
  56. package/dist/marks/BoxY.svelte +12 -9
  57. package/dist/marks/BoxY.svelte.d.ts +128 -53
  58. package/dist/marks/Brush.svelte +26 -21
  59. package/dist/marks/Brush.svelte.d.ts +119 -60
  60. package/dist/marks/Cell.svelte +13 -9
  61. package/dist/marks/Cell.svelte.d.ts +105 -30
  62. package/dist/marks/CellX.svelte +2 -1
  63. package/dist/marks/CellX.svelte.d.ts +105 -32
  64. package/dist/marks/CellY.svelte +2 -1
  65. package/dist/marks/CellY.svelte.d.ts +105 -32
  66. package/dist/marks/ColorLegend.svelte +24 -13
  67. package/dist/marks/ColorLegend.svelte.d.ts +1 -0
  68. package/dist/marks/CustomMark.svelte +16 -10
  69. package/dist/marks/CustomMark.svelte.d.ts +112 -31
  70. package/dist/marks/CustomMarkHTML.svelte +8 -2
  71. package/dist/marks/CustomMarkHTML.svelte.d.ts +8 -2
  72. package/dist/marks/DifferenceY.svelte +31 -20
  73. package/dist/marks/DifferenceY.svelte.d.ts +134 -55
  74. package/dist/marks/Dot.svelte +21 -11
  75. package/dist/marks/Dot.svelte.d.ts +117 -38
  76. package/dist/marks/DotX.svelte +2 -0
  77. package/dist/marks/DotX.svelte.d.ts +136 -62
  78. package/dist/marks/DotY.svelte +1 -0
  79. package/dist/marks/DotY.svelte.d.ts +135 -62
  80. package/dist/marks/Frame.svelte +47 -9
  81. package/dist/marks/Frame.svelte.d.ts +124 -41
  82. package/dist/marks/Geo.svelte +21 -12
  83. package/dist/marks/Geo.svelte.d.ts +105 -30
  84. package/dist/marks/Graticule.svelte +3 -0
  85. package/dist/marks/Graticule.svelte.d.ts +3 -0
  86. package/dist/marks/GridX.svelte +31 -16
  87. package/dist/marks/GridX.svelte.d.ts +108 -32
  88. package/dist/marks/GridY.svelte +30 -15
  89. package/dist/marks/GridY.svelte.d.ts +108 -32
  90. package/dist/marks/HTMLTooltip.svelte +14 -7
  91. package/dist/marks/HTMLTooltip.svelte.d.ts +7 -0
  92. package/dist/marks/Image.svelte +50 -25
  93. package/dist/marks/Image.svelte.d.ts +117 -35
  94. package/dist/marks/Line.svelte +67 -44
  95. package/dist/marks/Line.svelte.d.ts +119 -30
  96. package/dist/marks/LineX.svelte +2 -1
  97. package/dist/marks/LineX.svelte.d.ts +142 -69
  98. package/dist/marks/LineY.svelte +2 -1
  99. package/dist/marks/LineY.svelte.d.ts +142 -69
  100. package/dist/marks/Link.svelte +70 -46
  101. package/dist/marks/Link.svelte.d.ts +126 -41
  102. package/dist/marks/Pointer.svelte +24 -15
  103. package/dist/marks/Pointer.svelte.d.ts +7 -0
  104. package/dist/marks/Rect.svelte +13 -5
  105. package/dist/marks/Rect.svelte.d.ts +116 -35
  106. package/dist/marks/RectX.svelte +6 -3
  107. package/dist/marks/RectX.svelte.d.ts +158 -12
  108. package/dist/marks/RectY.svelte +6 -3
  109. package/dist/marks/RectY.svelte.d.ts +158 -12
  110. package/dist/marks/RegressionX.svelte +13 -6
  111. package/dist/marks/RegressionX.svelte.d.ts +8 -3
  112. package/dist/marks/RegressionY.svelte +13 -6
  113. package/dist/marks/RegressionY.svelte.d.ts +8 -3
  114. package/dist/marks/RuleX.svelte +18 -11
  115. package/dist/marks/RuleX.svelte.d.ts +112 -32
  116. package/dist/marks/RuleY.svelte +19 -12
  117. package/dist/marks/RuleY.svelte.d.ts +114 -34
  118. package/dist/marks/Spike.svelte +11 -5
  119. package/dist/marks/Spike.svelte.d.ts +146 -68
  120. package/dist/marks/Text.svelte +24 -7
  121. package/dist/marks/Text.svelte.d.ts +253 -75
  122. package/dist/marks/TickX.svelte +56 -48
  123. package/dist/marks/TickX.svelte.d.ts +114 -40
  124. package/dist/marks/TickY.svelte +59 -51
  125. package/dist/marks/TickY.svelte.d.ts +117 -43
  126. package/dist/marks/Trail.svelte +25 -13
  127. package/dist/marks/Trail.svelte.d.ts +116 -33
  128. package/dist/marks/Vector.svelte +20 -11
  129. package/dist/marks/Vector.svelte.d.ts +116 -35
  130. package/dist/marks/WaffleX.svelte +18 -16
  131. package/dist/marks/WaffleX.svelte.d.ts +131 -57
  132. package/dist/marks/WaffleY.svelte +16 -15
  133. package/dist/marks/WaffleY.svelte.d.ts +129 -56
  134. package/dist/marks/helpers/Anchor.svelte +17 -2
  135. package/dist/marks/helpers/Anchor.svelte.d.ts +16 -1
  136. package/dist/marks/helpers/AreaCanvas.svelte +8 -8
  137. package/dist/marks/helpers/BaseAxisX.svelte +38 -41
  138. package/dist/marks/helpers/BaseAxisX.svelte.d.ts +11 -17
  139. package/dist/marks/helpers/BaseAxisY.svelte +35 -35
  140. package/dist/marks/helpers/BaseAxisY.svelte.d.ts +12 -15
  141. package/dist/marks/helpers/Box.svelte +35 -28
  142. package/dist/marks/helpers/Box.svelte.d.ts +122 -50
  143. package/dist/marks/helpers/DotCanvas.svelte +11 -9
  144. package/dist/marks/helpers/GeoCanvas.svelte +7 -6
  145. package/dist/marks/helpers/LineCanvas.svelte +7 -7
  146. package/dist/marks/helpers/LinearGradientX.svelte +2 -2
  147. package/dist/marks/helpers/LinearGradientX.svelte.d.ts +1 -1
  148. package/dist/marks/helpers/LinearGradientY.svelte +2 -2
  149. package/dist/marks/helpers/LinearGradientY.svelte.d.ts +1 -1
  150. package/dist/marks/helpers/Marker.svelte +2 -2
  151. package/dist/marks/helpers/MarkerPath.svelte +15 -12
  152. package/dist/marks/helpers/MarkerPath.svelte.d.ts +105 -32
  153. package/dist/marks/helpers/MultilineText.svelte +24 -17
  154. package/dist/marks/helpers/MultilineText.svelte.d.ts +1 -1
  155. package/dist/marks/helpers/RectCanvas.svelte +31 -26
  156. package/dist/marks/helpers/RectPath.svelte +2 -2
  157. package/dist/marks/helpers/Regression.svelte +176 -86
  158. package/dist/marks/helpers/Regression.svelte.d.ts +20 -8
  159. package/dist/marks/helpers/RuleCanvas.svelte +9 -6
  160. package/dist/marks/helpers/TextCanvas.svelte +13 -9
  161. package/dist/marks/helpers/TextCanvas.svelte.d.ts +6 -6
  162. package/dist/marks/helpers/TickCanvas.svelte +6 -5
  163. package/dist/marks/helpers/TrailCanvas.svelte +16 -18
  164. package/dist/marks/helpers/TrailCanvas.svelte.d.ts +3 -5
  165. package/dist/marks/helpers/canvas.js +16 -9
  166. package/dist/marks/helpers/events.d.ts +2 -2
  167. package/dist/marks/helpers/events.js +14 -7
  168. package/dist/marks/helpers/waffle.d.ts +3 -3
  169. package/dist/marks/helpers/waffle.js +6 -4
  170. package/dist/regression/polynomial.d.ts +1 -1
  171. package/dist/regression/polynomial.js +5 -5
  172. package/dist/regression/utils/determination.d.ts +1 -1
  173. package/dist/regression/utils/determination.js +1 -1
  174. package/dist/regression/utils/geometry.d.ts +1 -1
  175. package/dist/regression/utils/interpose.d.ts +1 -1
  176. package/dist/regression/utils/interpose.js +1 -1
  177. package/dist/regression/utils/points.d.ts +1 -1
  178. package/dist/transforms/bin.d.ts +3 -3
  179. package/dist/transforms/bin.js +29 -20
  180. package/dist/transforms/bollinger.d.ts +8 -0
  181. package/dist/transforms/bollinger.js +9 -1
  182. package/dist/transforms/centroid.d.ts +4 -0
  183. package/dist/transforms/centroid.js +4 -0
  184. package/dist/transforms/density.d.ts +4 -4
  185. package/dist/transforms/density.js +20 -13
  186. package/dist/transforms/dodge.d.ts +12 -1
  187. package/dist/transforms/dodge.js +15 -6
  188. package/dist/transforms/group.d.ts +141 -4
  189. package/dist/transforms/group.js +4 -1
  190. package/dist/transforms/interval.d.ts +204 -60
  191. package/dist/transforms/jitter.d.ts +421 -4
  192. package/dist/transforms/jitter.js +10 -1
  193. package/dist/transforms/map.d.ts +412 -4
  194. package/dist/transforms/map.js +3 -3
  195. package/dist/transforms/normalize.d.ts +276 -5
  196. package/dist/transforms/normalize.js +5 -3
  197. package/dist/transforms/recordize.d.ts +17 -5
  198. package/dist/transforms/recordize.js +13 -9
  199. package/dist/transforms/rename.d.ts +11 -4
  200. package/dist/transforms/rename.js +7 -2
  201. package/dist/transforms/select.d.ts +722 -210
  202. package/dist/transforms/select.js +13 -1
  203. package/dist/transforms/shift.d.ts +8 -0
  204. package/dist/transforms/shift.js +20 -6
  205. package/dist/transforms/sort.d.ts +13 -258
  206. package/dist/transforms/sort.js +13 -10
  207. package/dist/transforms/stack.d.ts +58 -9
  208. package/dist/transforms/stack.js +27 -11
  209. package/dist/transforms/window.d.ts +221 -66
  210. package/dist/transforms/window.js +8 -2
  211. package/dist/types/axes.d.ts +43 -0
  212. package/dist/types/axes.js +1 -0
  213. package/dist/types/channel.d.ts +30 -2
  214. package/dist/types/data.d.ts +14 -1
  215. package/dist/types/facet.d.ts +5 -0
  216. package/dist/types/index.d.ts +33 -8
  217. package/dist/types/index.js +11 -7
  218. package/dist/types/mark.d.ts +124 -35
  219. package/dist/types/plot.d.ts +118 -16
  220. package/dist/types/scale.d.ts +125 -8
  221. package/package.json +178 -175
  222. package/dist/helpers/autoTicks.d.ts +0 -12
@@ -1,5 +1,5 @@
1
- import type { ChannelAccessor, DataRow, ConstantAccessor } from '../types/index.js';
2
- declare function $$render<Datum extends DataRow>(): {
1
+ import type { ChannelAccessor, ConstantAccessor, DataRecord, RawValue } from '../types/index.js';
2
+ declare function $$render<Datum = DataRecord | RawValue>(): {
3
3
  props: Omit<Partial<{
4
4
  filter: ConstantAccessor<boolean, Datum>;
5
5
  facet: "auto" | "include" | "exclude";
@@ -7,14 +7,24 @@ declare function $$render<Datum extends DataRow>(): {
7
7
  fy: ChannelAccessor<Datum>;
8
8
  dx: ConstantAccessor<number, Datum>;
9
9
  dy: ConstantAccessor<number, Datum>;
10
- dodgeX: import("../transforms/dodge").DodgeXOptions;
11
- dodgeY: import("../transforms/dodge").DodgeYOptions;
10
+ dodgeX: import("../transforms/dodge.js").DodgeXOptions;
11
+ dodgeY: import("../transforms/dodge.js").DodgeYOptions;
12
12
  fill: ChannelAccessor<Datum>;
13
13
  fillOpacity: ConstantAccessor<number, Datum>;
14
- sort: ((a: import("../types/data").RawValue, b: import("../types/data").RawValue) => number) | {
14
+ fontFamily: ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
15
+ fontSize: 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: ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
17
+ fontVariant: ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
18
+ fontWeight: ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
19
+ letterSpacing: ConstantAccessor<import("csstype").Property.LetterSpacing<0 | (string & {})>, Datum>;
20
+ wordSpacing: ConstantAccessor<import("csstype").Property.WordSpacing<0 | (string & {})>, Datum>;
21
+ textAnchor: ConstantAccessor<import("csstype").Property.TextAnchor, Datum>;
22
+ textTransform: ConstantAccessor<import("csstype").Property.TextTransform, Datum>;
23
+ textDecoration: ConstantAccessor<import("csstype").Property.TextDecoration<0 | (string & {})>, Datum>;
24
+ sort: ((a: RawValue, b: RawValue) => number) | {
15
25
  channel: string;
16
26
  order?: "ascending" | "descending";
17
- } | ConstantAccessor<import("../types/data").RawValue, Datum>;
27
+ } | ConstantAccessor<RawValue, Datum>;
18
28
  stroke: ChannelAccessor<Datum>;
19
29
  strokeWidth: ConstantAccessor<number, Datum>;
20
30
  strokeOpacity: ConstantAccessor<number, Datum>;
@@ -24,54 +34,117 @@ declare function $$render<Datum extends DataRow>(): {
24
34
  opacity: ChannelAccessor<Datum>;
25
35
  strokeDasharray: ConstantAccessor<string, Datum>;
26
36
  strokeDashoffset: ConstantAccessor<number, Datum>;
37
+ blend: ConstantAccessor<import("csstype").Property.MixBlendMode, Datum>;
27
38
  mixBlendMode: ConstantAccessor<import("csstype").Property.MixBlendMode, Datum>;
28
39
  clipPath: string;
29
40
  mask: string;
30
41
  imageFilter: ConstantAccessor<string, Datum>;
31
42
  shapeRendering: ConstantAccessor<import("csstype").Property.ShapeRendering, Datum>;
32
43
  paintOrder: ConstantAccessor<string, Datum>;
33
- onclick: import("svelte/elements").MouseEventHandler<SVGPathElement>;
34
- ondblclick: import("svelte/elements").MouseEventHandler<SVGPathElement>;
35
- onmouseup: import("svelte/elements").MouseEventHandler<SVGPathElement>;
36
- onmousedown: import("svelte/elements").MouseEventHandler<SVGPathElement>;
37
- onmouseenter: import("svelte/elements").MouseEventHandler<SVGPathElement>;
38
- onmousemove: import("svelte/elements").MouseEventHandler<SVGPathElement>;
39
- onmouseleave: import("svelte/elements").MouseEventHandler<SVGPathElement>;
40
- onmouseout: import("svelte/elements").MouseEventHandler<SVGPathElement>;
41
- onmouseover: import("svelte/elements").MouseEventHandler<SVGPathElement>;
42
- onpointercancel: import("svelte/elements").MouseEventHandler<SVGPathElement>;
43
- onpointerdown: import("svelte/elements").MouseEventHandler<SVGPathElement>;
44
- onpointerup: import("svelte/elements").MouseEventHandler<SVGPathElement>;
45
- onpointerenter: import("svelte/elements").MouseEventHandler<SVGPathElement>;
46
- onpointerleave: import("svelte/elements").MouseEventHandler<SVGPathElement>;
47
- onpointermove: import("svelte/elements").MouseEventHandler<SVGPathElement>;
48
- onpointerover: import("svelte/elements").MouseEventHandler<SVGPathElement>;
49
- onpointerout: import("svelte/elements").MouseEventHandler<SVGPathElement>;
50
- ondrag: import("svelte/elements").MouseEventHandler<SVGPathElement>;
51
- ondrop: import("svelte/elements").MouseEventHandler<SVGPathElement>;
52
- ondragstart: import("svelte/elements").MouseEventHandler<SVGPathElement>;
53
- ondragenter: import("svelte/elements").MouseEventHandler<SVGPathElement>;
54
- ondragleave: import("svelte/elements").MouseEventHandler<SVGPathElement>;
55
- ondragover: import("svelte/elements").MouseEventHandler<SVGPathElement>;
56
- ondragend: import("svelte/elements").MouseEventHandler<SVGPathElement>;
57
- ontouchstart: import("svelte/elements").MouseEventHandler<SVGPathElement>;
58
- ontouchmove: import("svelte/elements").MouseEventHandler<SVGPathElement>;
59
- ontouchend: import("svelte/elements").MouseEventHandler<SVGPathElement>;
60
- ontouchcancel: import("svelte/elements").MouseEventHandler<SVGPathElement>;
61
- oncontextmenu: import("svelte/elements").MouseEventHandler<SVGPathElement>;
62
- onwheel: import("svelte/elements").MouseEventHandler<SVGPathElement>;
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
136
  cursor: ConstantAccessor<import("csstype").Property.Cursor, Datum>;
137
+ title: ConstantAccessor<string, Datum>;
66
138
  }>, "fill" | "fillOpacity"> & {
139
+ /** the input data array; each element becomes one horizontal tick */
67
140
  data: Datum[];
68
141
  /**
69
- * the vertical position; bound to the x scale
142
+ * the vertical position; bound to the y scale
70
143
  */
71
144
  y?: ChannelAccessor<Datum>;
72
145
  /**
73
- * the horizontal position; bound to the y scale, which must be band. If the y channel
74
- * is not specified, the tick will span the full vertical extent of the frame.
146
+ * the horizontal position; bound to the x scale, which must be band. If the x channel
147
+ * is not specified, the tick will span the full horizontal extent of the frame.
75
148
  */
76
149
  x?: ChannelAccessor<Datum>;
77
150
  /**
@@ -79,6 +152,7 @@ declare function $$render<Datum extends DataRow>(): {
79
152
  * length of the tick. Defaults to 10 pixel
80
153
  */
81
154
  tickLength?: ConstantAccessor<number, Datum>;
155
+ /** if true, renders using Canvas instead of SVG */
82
156
  canvas?: boolean;
83
157
  };
84
158
  exports: {};
@@ -86,7 +160,7 @@ declare function $$render<Datum extends DataRow>(): {
86
160
  slots: {};
87
161
  events: {};
88
162
  };
89
- declare class __sveltets_Render<Datum extends DataRow> {
163
+ declare class __sveltets_Render<Datum = DataRecord | RawValue> {
90
164
  props(): ReturnType<typeof $$render<Datum>>['props'];
91
165
  events(): ReturnType<typeof $$render<Datum>>['events'];
92
166
  slots(): ReturnType<typeof $$render<Datum>>['slots'];
@@ -94,13 +168,13 @@ declare class __sveltets_Render<Datum extends DataRow> {
94
168
  exports(): {};
95
169
  }
96
170
  interface $$IsomorphicComponent {
97
- new <Datum extends DataRow>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<Datum>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<Datum>['props']>, ReturnType<__sveltets_Render<Datum>['events']>, ReturnType<__sveltets_Render<Datum>['slots']>> & {
171
+ new <Datum = DataRecord | RawValue>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<Datum>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<Datum>['props']>, ReturnType<__sveltets_Render<Datum>['events']>, ReturnType<__sveltets_Render<Datum>['slots']>> & {
98
172
  $$bindings?: ReturnType<__sveltets_Render<Datum>['bindings']>;
99
173
  } & ReturnType<__sveltets_Render<Datum>['exports']>;
100
- <Datum extends DataRow>(internal: unknown, props: ReturnType<__sveltets_Render<Datum>['props']> & {}): ReturnType<__sveltets_Render<Datum>['exports']>;
174
+ <Datum = DataRecord | RawValue>(internal: unknown, props: ReturnType<__sveltets_Render<Datum>['props']> & {}): ReturnType<__sveltets_Render<Datum>['exports']>;
101
175
  z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
102
176
  }
103
177
  /** The TickY mark is useful for showing one-dimensional distributions along the y axis. The x axis must be a band scale. */
104
178
  declare const TickY: $$IsomorphicComponent;
105
- type TickY<Datum extends DataRow> = InstanceType<typeof TickY<Datum>>;
179
+ type TickY<Datum = DataRecord | RawValue> = InstanceType<typeof TickY<Datum>>;
106
180
  export default TickY;
@@ -3,16 +3,27 @@
3
3
  BaseMarkProps<Datum>,
4
4
  'stroke' | 'strokeWidth' | 'strokeDasharray'
5
5
  > {
6
+ /** the input data array */
6
7
  data?: Datum[];
8
+ /** the horizontal position channel; bound to the x scale */
7
9
  x?: ChannelAccessor<Datum>;
10
+ /** the vertical position channel; bound to the y scale */
8
11
  y?: ChannelAccessor<Datum>;
12
+ /** grouping channel for splitting data into separate trails */
9
13
  z?: ChannelAccessor<Datum>;
14
+ /** the radius (width) of the trail at each data point */
10
15
  r?: ChannelAccessor<Datum>;
16
+ /** the curve interpolation type for connecting data points */
11
17
  curve?: CurveName | CurveFactory;
18
+ /** tension parameter for the curve interpolation */
12
19
  tension?: number;
20
+ /** sort order for data points before rendering */
13
21
  sort?: ConstantAccessor<RawValue, Datum> | { channel: 'stroke' | 'fill' };
22
+ /** accessor that returns false for data points that should create gaps in the trail */
14
23
  defined?: ConstantAccessor<boolean, Datum>;
24
+ /** if true, renders using Canvas instead of SVG */
15
25
  canvas?: boolean;
26
+ /** the cap style for trail endpoints */
16
27
  cap?: 'butt' | 'round';
17
28
  /**
18
29
  * Samples per segment for curve interpolation
@@ -27,15 +38,15 @@
27
38
  RawValue,
28
39
  ScaledDataRecord,
29
40
  CurveName
30
- } from '../types';
41
+ } from '../types/index.js';
31
42
  import Mark from '../Mark.svelte';
32
43
  import { path as d3Path } from 'd3-path';
33
44
  import { resolveProp, resolveStyles } from '../helpers/resolve.js';
34
- import { getPlotDefaults } from '../hooks/plotDefaults';
35
- import { sort } from '../transforms';
45
+ import { getPlotDefaults } from '../hooks/plotDefaults.js';
46
+ import { sort } from '../transforms/index.js';
36
47
  import trailPath, { type TrailSample } from './helpers/trail.js';
37
48
  import TrailCanvas from './helpers/TrailCanvas.svelte';
38
- import { addEventHandlers } from './helpers/events';
49
+ import { addEventHandlers } from './helpers/events.js';
39
50
  import type { CurveFactory } from 'd3-shape';
40
51
  import { usePlot } from '../hooks/usePlot.svelte.js';
41
52
 
@@ -124,17 +135,18 @@
124
135
  {@const defined = trailData.map(
125
136
  (d) =>
126
137
  d.valid &&
127
- d.r >= 0 &&
138
+ (d.r ?? 0) >= 0 &&
128
139
  (resolveProp(options.defined, d.datum, true) ?? true)
129
140
  )}
130
- {@const pathString = trailPath(samples, defined, d3Path(), {
131
- curve,
132
- cap,
133
- tension,
134
- ...(typeof resolution === 'number'
135
- ? { samplesPerSegment: resolution }
136
- : {})
137
- })}
141
+ {@const pathString =
142
+ trailPath(samples, defined, d3Path(), {
143
+ curve,
144
+ cap,
145
+ tension,
146
+ ...(typeof resolution === 'number'
147
+ ? { samplesPerSegment: resolution }
148
+ : {})
149
+ }) || ''}
138
150
  {@const [style, styleClass] = resolveStyles(
139
151
  plot,
140
152
  trailData[0],
@@ -1,4 +1,4 @@
1
- import type { DataRecord, ChannelAccessor, ConstantAccessor, RawValue, CurveName } from '../types';
1
+ import type { DataRecord, ChannelAccessor, ConstantAccessor, RawValue, CurveName } from '../types/index.js';
2
2
  import type { CurveFactory } from 'd3-shape';
3
3
  declare function $$render<Datum extends DataRecord>(): {
4
4
  props: Omit<Partial<{
@@ -8,10 +8,20 @@ declare function $$render<Datum extends DataRecord>(): {
8
8
  fy: ChannelAccessor<Datum>;
9
9
  dx: ConstantAccessor<number, Datum>;
10
10
  dy: ConstantAccessor<number, Datum>;
11
- dodgeX: import("../transforms/dodge").DodgeXOptions;
12
- dodgeY: import("../transforms/dodge").DodgeYOptions;
11
+ dodgeX: import("../transforms/dodge.js").DodgeXOptions;
12
+ dodgeY: import("../transforms/dodge.js").DodgeYOptions;
13
13
  fill: ChannelAccessor<Datum>;
14
14
  fillOpacity: ConstantAccessor<number, Datum>;
15
+ fontFamily: ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
16
+ fontSize: 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>;
17
+ fontStyle: ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
18
+ fontVariant: ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
19
+ fontWeight: ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
20
+ letterSpacing: ConstantAccessor<import("csstype").Property.LetterSpacing<0 | (string & {})>, Datum>;
21
+ wordSpacing: ConstantAccessor<import("csstype").Property.WordSpacing<0 | (string & {})>, Datum>;
22
+ textAnchor: ConstantAccessor<import("csstype").Property.TextAnchor, Datum>;
23
+ textTransform: ConstantAccessor<import("csstype").Property.TextTransform, Datum>;
24
+ textDecoration: ConstantAccessor<import("csstype").Property.TextDecoration<0 | (string & {})>, Datum>;
15
25
  sort: ((a: RawValue, b: RawValue) => number) | {
16
26
  channel: string;
17
27
  order?: "ascending" | "descending";
@@ -25,58 +35,131 @@ declare function $$render<Datum extends DataRecord>(): {
25
35
  opacity: ChannelAccessor<Datum>;
26
36
  strokeDasharray: ConstantAccessor<string, Datum>;
27
37
  strokeDashoffset: ConstantAccessor<number, Datum>;
38
+ blend: ConstantAccessor<import("csstype").Property.MixBlendMode, Datum>;
28
39
  mixBlendMode: ConstantAccessor<import("csstype").Property.MixBlendMode, Datum>;
29
40
  clipPath: string;
30
41
  mask: string;
31
42
  imageFilter: ConstantAccessor<string, Datum>;
32
43
  shapeRendering: ConstantAccessor<import("csstype").Property.ShapeRendering, Datum>;
33
44
  paintOrder: ConstantAccessor<string, Datum>;
34
- onclick: import("svelte/elements").MouseEventHandler<SVGPathElement>;
35
- ondblclick: import("svelte/elements").MouseEventHandler<SVGPathElement>;
36
- onmouseup: import("svelte/elements").MouseEventHandler<SVGPathElement>;
37
- onmousedown: import("svelte/elements").MouseEventHandler<SVGPathElement>;
38
- onmouseenter: import("svelte/elements").MouseEventHandler<SVGPathElement>;
39
- onmousemove: import("svelte/elements").MouseEventHandler<SVGPathElement>;
40
- onmouseleave: import("svelte/elements").MouseEventHandler<SVGPathElement>;
41
- onmouseout: import("svelte/elements").MouseEventHandler<SVGPathElement>;
42
- onmouseover: import("svelte/elements").MouseEventHandler<SVGPathElement>;
43
- onpointercancel: import("svelte/elements").MouseEventHandler<SVGPathElement>;
44
- onpointerdown: import("svelte/elements").MouseEventHandler<SVGPathElement>;
45
- onpointerup: import("svelte/elements").MouseEventHandler<SVGPathElement>;
46
- onpointerenter: import("svelte/elements").MouseEventHandler<SVGPathElement>;
47
- onpointerleave: import("svelte/elements").MouseEventHandler<SVGPathElement>;
48
- onpointermove: import("svelte/elements").MouseEventHandler<SVGPathElement>;
49
- onpointerover: import("svelte/elements").MouseEventHandler<SVGPathElement>;
50
- onpointerout: import("svelte/elements").MouseEventHandler<SVGPathElement>;
51
- ondrag: import("svelte/elements").MouseEventHandler<SVGPathElement>;
52
- ondrop: import("svelte/elements").MouseEventHandler<SVGPathElement>;
53
- ondragstart: import("svelte/elements").MouseEventHandler<SVGPathElement>;
54
- ondragenter: import("svelte/elements").MouseEventHandler<SVGPathElement>;
55
- ondragleave: import("svelte/elements").MouseEventHandler<SVGPathElement>;
56
- ondragover: import("svelte/elements").MouseEventHandler<SVGPathElement>;
57
- ondragend: import("svelte/elements").MouseEventHandler<SVGPathElement>;
58
- ontouchstart: import("svelte/elements").MouseEventHandler<SVGPathElement>;
59
- ontouchmove: import("svelte/elements").MouseEventHandler<SVGPathElement>;
60
- ontouchend: import("svelte/elements").MouseEventHandler<SVGPathElement>;
61
- ontouchcancel: import("svelte/elements").MouseEventHandler<SVGPathElement>;
62
- oncontextmenu: import("svelte/elements").MouseEventHandler<SVGPathElement>;
63
- onwheel: import("svelte/elements").MouseEventHandler<SVGPathElement>;
45
+ onclick: (event: Event & {
46
+ currentTarget: SVGPathElement;
47
+ }, datum: Datum, index: number) => void;
48
+ ondblclick: (event: Event & {
49
+ currentTarget: SVGPathElement;
50
+ }, datum: Datum, index: number) => void;
51
+ onmouseup: (event: Event & {
52
+ currentTarget: SVGPathElement;
53
+ }, datum: Datum, index: number) => void;
54
+ onmousedown: (event: Event & {
55
+ currentTarget: SVGPathElement;
56
+ }, datum: Datum, index: number) => void;
57
+ onmouseenter: (event: Event & {
58
+ currentTarget: SVGPathElement;
59
+ }, datum: Datum, index: number) => void;
60
+ onmousemove: (event: Event & {
61
+ currentTarget: SVGPathElement;
62
+ }, datum: Datum, index: number) => void;
63
+ onmouseleave: (event: Event & {
64
+ currentTarget: SVGPathElement;
65
+ }, datum: Datum, index: number) => void;
66
+ onmouseout: (event: Event & {
67
+ currentTarget: SVGPathElement;
68
+ }, datum: Datum, index: number) => void;
69
+ onmouseover: (event: Event & {
70
+ currentTarget: SVGPathElement;
71
+ }, datum: Datum, index: number) => void;
72
+ onpointercancel: (event: Event & {
73
+ currentTarget: SVGPathElement;
74
+ }, datum: Datum, index: number) => void;
75
+ onpointerdown: (event: Event & {
76
+ currentTarget: SVGPathElement;
77
+ }, datum: Datum, index: number) => void;
78
+ onpointerup: (event: Event & {
79
+ currentTarget: SVGPathElement;
80
+ }, datum: Datum, index: number) => void;
81
+ onpointerenter: (event: Event & {
82
+ currentTarget: SVGPathElement;
83
+ }, datum: Datum, index: number) => void;
84
+ onpointerleave: (event: Event & {
85
+ currentTarget: SVGPathElement;
86
+ }, datum: Datum, index: number) => void;
87
+ onpointermove: (event: Event & {
88
+ currentTarget: SVGPathElement;
89
+ }, datum: Datum, index: number) => void;
90
+ onpointerover: (event: Event & {
91
+ currentTarget: SVGPathElement;
92
+ }, datum: Datum, index: number) => void;
93
+ onpointerout: (event: Event & {
94
+ currentTarget: SVGPathElement;
95
+ }, datum: Datum, index: number) => void;
96
+ ondrag: (event: Event & {
97
+ currentTarget: SVGPathElement;
98
+ }, datum: Datum, index: number) => void;
99
+ ondrop: (event: Event & {
100
+ currentTarget: SVGPathElement;
101
+ }, datum: Datum, index: number) => void;
102
+ ondragstart: (event: Event & {
103
+ currentTarget: SVGPathElement;
104
+ }, datum: Datum, index: number) => void;
105
+ ondragenter: (event: Event & {
106
+ currentTarget: SVGPathElement;
107
+ }, datum: Datum, index: number) => void;
108
+ ondragleave: (event: Event & {
109
+ currentTarget: SVGPathElement;
110
+ }, datum: Datum, index: number) => void;
111
+ ondragover: (event: Event & {
112
+ currentTarget: SVGPathElement;
113
+ }, datum: Datum, index: number) => void;
114
+ ondragend: (event: Event & {
115
+ currentTarget: SVGPathElement;
116
+ }, datum: Datum, index: number) => void;
117
+ ontouchstart: (event: Event & {
118
+ currentTarget: SVGPathElement;
119
+ }, datum: Datum, index: number) => void;
120
+ ontouchmove: (event: Event & {
121
+ currentTarget: SVGPathElement;
122
+ }, datum: Datum, index: number) => void;
123
+ ontouchend: (event: Event & {
124
+ currentTarget: SVGPathElement;
125
+ }, datum: Datum, index: number) => void;
126
+ ontouchcancel: (event: Event & {
127
+ currentTarget: SVGPathElement;
128
+ }, datum: Datum, index: number) => void;
129
+ oncontextmenu: (event: Event & {
130
+ currentTarget: SVGPathElement;
131
+ }, datum: Datum, index: number) => void;
132
+ onwheel: (event: Event & {
133
+ currentTarget: SVGPathElement;
134
+ }, datum: Datum, index: number) => void;
64
135
  class: string;
65
136
  style: string;
66
137
  cursor: ConstantAccessor<import("csstype").Property.Cursor, Datum>;
138
+ title: ConstantAccessor<string, Datum>;
67
139
  }>, "stroke" | "strokeWidth" | "strokeDasharray"> & {
140
+ /** the input data array */
68
141
  data?: Datum[];
142
+ /** the horizontal position channel; bound to the x scale */
69
143
  x?: ChannelAccessor<Datum>;
144
+ /** the vertical position channel; bound to the y scale */
70
145
  y?: ChannelAccessor<Datum>;
146
+ /** grouping channel for splitting data into separate trails */
71
147
  z?: ChannelAccessor<Datum>;
148
+ /** the radius (width) of the trail at each data point */
72
149
  r?: ChannelAccessor<Datum>;
150
+ /** the curve interpolation type for connecting data points */
73
151
  curve?: CurveName | CurveFactory;
152
+ /** tension parameter for the curve interpolation */
74
153
  tension?: number;
154
+ /** sort order for data points before rendering */
75
155
  sort?: ConstantAccessor<RawValue, Datum> | {
76
156
  channel: "stroke" | "fill";
77
157
  };
158
+ /** accessor that returns false for data points that should create gaps in the trail */
78
159
  defined?: ConstantAccessor<boolean, Datum>;
160
+ /** if true, renders using Canvas instead of SVG */
79
161
  canvas?: boolean;
162
+ /** the cap style for trail endpoints */
80
163
  cap?: "butt" | "round";
81
164
  /**
82
165
  * Samples per segment for curve interpolation
@@ -9,13 +9,19 @@
9
9
  };
10
10
  </script>
11
11
 
12
- <script lang="ts" generics="Datum extends DataRecord">
12
+ <script lang="ts" generics="Datum = DataRecord | GeoJSON.GeoJsonObject">
13
13
  interface VectorMarkProps extends BaseMarkProps<Datum> {
14
+ /** the input data array; each element becomes one vector */
14
15
  data: Datum[];
16
+ /** the horizontal position channel; bound to the x scale */
15
17
  x: ChannelAccessor<Datum>;
18
+ /** the vertical position channel; bound to the y scale */
16
19
  y: ChannelAccessor<Datum>;
20
+ /** the radius (width) of the vector shape in pixels */
17
21
  r?: number;
22
+ /** the length of the vector in pixels */
18
23
  length?: ChannelAccessor<Datum>;
24
+ /** rotation angle of the vector in degrees */
19
25
  rotate?: ChannelAccessor<Datum>;
20
26
  /**
21
27
  * Controls where the vector is anchored in relation to the x, y position.
@@ -24,8 +30,11 @@
24
30
  * 'end', the arrow will end at the x, y position.
25
31
  */
26
32
  anchor?: 'start' | 'middle' | 'end';
33
+ /** the shape of the vector; can be a preset name or a custom ShapeRenderer */
27
34
  shape?: 'arrow' | 'spike' | 'arrow-filled' | ShapeRenderer;
35
+ /** snippet for custom rendering inside the vector mark group */
28
36
  children?: Snippet;
37
+ /** if true, renders using Canvas instead of SVG */
29
38
  canvas?: boolean;
30
39
  }
31
40
  import type {
@@ -62,7 +71,7 @@
62
71
  r: defaultRadius
63
72
  };
64
73
  const {
65
- data = [{}],
74
+ data = [{} as Datum],
66
75
  canvas,
67
76
  shape = 'arrow',
68
77
  anchor = 'middle',
@@ -142,7 +151,7 @@
142
151
 
143
152
  const args = $derived(
144
153
  sort({
145
- data: indexData(data),
154
+ data: indexData(data as object[]) as unknown as Datum[],
146
155
  // sort by descending radius by default
147
156
  ...options
148
157
  })
@@ -164,7 +173,7 @@
164
173
  'fillOpacity',
165
174
  'strokeOpacity'
166
175
  ]}
167
- {...args}>
176
+ {...args as any}>
168
177
  {#snippet children({ scaledData, usedScales })}
169
178
  <g class="vector" data-l={usedScales.length}>
170
179
  {#if canvas}
@@ -181,25 +190,25 @@
181
190
  strokeLinejoin: 'round',
182
191
  strokeLinecap: 'round',
183
192
  ...args
184
- },
193
+ } as any,
185
194
  shape === 'arrow-filled' ? 'fill' : 'stroke',
186
195
  usedScales
187
196
  )}
188
197
  <path
189
- d={shapePath(shape, d.length, d.r)}
198
+ d={shapePath(shape, d.length as number, d.r as number)}
190
199
  transform="translate({d.x}, {d.y}) rotate({resolveProp(
191
200
  args.rotate,
192
- d.datum,
201
+ d.datum as any,
193
202
  0
194
- )}) {anchor === 'start'
203
+ ) as number}) {anchor === 'start'
195
204
  ? ''
196
205
  : anchor === 'end'
197
- ? `translate(0, ${d.length})`
198
- : `translate(0, ${d.length / 2})`}"
206
+ ? `translate(0, ${d.length as number})`
207
+ : `translate(0, ${(d.length as number) / 2})`}"
199
208
  {style}
200
209
  {@attach addEventHandlers({
201
210
  plot,
202
- options: args,
211
+ options: args as any,
203
212
  datum: d?.datum
204
213
  })}
205
214
  class={[styleClass]} />