svelteplot 0.0.1-alpha.9 → 0.1.3-next.3

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 (251) hide show
  1. package/LICENSE.md +5 -0
  2. package/README.md +3 -36
  3. package/dist/Mark.svelte +292 -0
  4. package/dist/Mark.svelte.d.ts +22 -0
  5. package/dist/Plot.svelte +148 -156
  6. package/dist/Plot.svelte.d.ts +15 -15
  7. package/dist/constants.d.ts +14 -0
  8. package/dist/constants.js +109 -0
  9. package/dist/core/Facet.svelte +59 -0
  10. package/dist/core/Facet.svelte.d.ts +18 -0
  11. package/dist/core/FacetAxes.svelte +66 -0
  12. package/dist/core/FacetAxes.svelte.d.ts +4 -0
  13. package/dist/core/FacetGrid.svelte +86 -0
  14. package/dist/core/FacetGrid.svelte.d.ts +13 -0
  15. package/dist/core/Plot.svelte +567 -0
  16. package/dist/core/Plot.svelte.d.ts +14 -0
  17. package/dist/helpers/arrowPath.d.ts +14 -0
  18. package/dist/helpers/arrowPath.js +129 -0
  19. package/dist/helpers/autoProjection.d.ts +19 -0
  20. package/dist/helpers/autoProjection.js +87 -0
  21. package/dist/helpers/autoScales.d.ts +23 -0
  22. package/dist/helpers/autoScales.js +203 -0
  23. package/dist/helpers/autoTicks.d.ts +3 -0
  24. package/dist/helpers/autoTicks.js +40 -0
  25. package/dist/helpers/autoTimeFormat.d.ts +2 -2
  26. package/dist/helpers/autoTimeFormat.js +34 -5
  27. package/dist/helpers/callWithProps.d.ts +8 -0
  28. package/dist/helpers/callWithProps.js +13 -0
  29. package/dist/helpers/colors.js +17 -2
  30. package/dist/helpers/curves.d.ts +3 -0
  31. package/dist/helpers/curves.js +42 -0
  32. package/dist/helpers/data.d.ts +9 -0
  33. package/dist/helpers/data.js +16 -0
  34. package/dist/helpers/facets.d.ts +12 -0
  35. package/dist/helpers/facets.js +49 -0
  36. package/dist/helpers/formats.d.ts +3 -0
  37. package/dist/helpers/formats.js +3 -0
  38. package/dist/helpers/getBaseStyles.d.ts +7 -2
  39. package/dist/helpers/getBaseStyles.js +34 -10
  40. package/dist/helpers/getLogTicks.js +5 -5
  41. package/dist/helpers/group.d.ts +6 -0
  42. package/dist/helpers/group.js +53 -0
  43. package/dist/helpers/index.d.ts +18 -0
  44. package/dist/helpers/index.js +53 -0
  45. package/dist/helpers/isRawValue.d.ts +2 -0
  46. package/dist/helpers/isRawValue.js +5 -0
  47. package/dist/helpers/isValid.d.ts +6 -0
  48. package/dist/helpers/isValid.js +6 -0
  49. package/dist/helpers/math.d.ts +19 -0
  50. package/dist/helpers/math.js +116 -0
  51. package/dist/helpers/mergeDeep.d.ts +1 -1
  52. package/dist/helpers/noise.d.ts +1 -0
  53. package/dist/helpers/noise.js +72 -0
  54. package/dist/helpers/projection.d.ts +33 -0
  55. package/dist/helpers/projection.js +100 -0
  56. package/dist/helpers/reduce.d.ts +10 -0
  57. package/dist/helpers/reduce.js +85 -0
  58. package/dist/helpers/regressionLoess.d.ts +12 -0
  59. package/dist/helpers/regressionLoess.js +47 -0
  60. package/dist/helpers/removeIdenticalLines.d.ts +8 -1
  61. package/dist/helpers/removeIdenticalLines.js +14 -7
  62. package/dist/helpers/resolve.d.ts +17 -0
  63. package/dist/helpers/resolve.js +152 -0
  64. package/dist/helpers/roundedRect.d.ts +9 -0
  65. package/dist/helpers/roundedRect.js +31 -0
  66. package/dist/helpers/scales.d.ts +42 -0
  67. package/dist/helpers/scales.js +309 -0
  68. package/dist/helpers/time.d.ts +6 -0
  69. package/dist/helpers/time.js +282 -0
  70. package/dist/helpers/typeChecks.d.ts +8 -5
  71. package/dist/helpers/typeChecks.js +27 -6
  72. package/dist/index.d.ts +49 -1
  73. package/dist/index.js +53 -2
  74. package/dist/marks/Area.svelte +146 -0
  75. package/dist/marks/Area.svelte.d.ts +30 -0
  76. package/dist/marks/AreaX.svelte +27 -0
  77. package/dist/marks/AreaX.svelte.d.ts +12 -0
  78. package/dist/marks/AreaY.svelte +38 -0
  79. package/dist/marks/AreaY.svelte.d.ts +19 -0
  80. package/dist/marks/Arrow.svelte +139 -0
  81. package/dist/marks/Arrow.svelte.d.ts +44 -0
  82. package/dist/marks/AxisX.svelte +198 -93
  83. package/dist/marks/AxisX.svelte.d.ts +17 -16
  84. package/dist/marks/AxisY.svelte +176 -62
  85. package/dist/marks/AxisY.svelte.d.ts +17 -14
  86. package/dist/marks/BarX.svelte +81 -0
  87. package/dist/marks/BarX.svelte.d.ts +4 -0
  88. package/dist/marks/BarY.svelte +95 -0
  89. package/dist/marks/BarY.svelte.d.ts +4 -0
  90. package/dist/marks/BollingerX.svelte +44 -0
  91. package/dist/marks/BollingerX.svelte.d.ts +18 -0
  92. package/dist/marks/BollingerY.svelte +39 -0
  93. package/dist/marks/BollingerY.svelte.d.ts +18 -0
  94. package/dist/marks/BoxX.svelte +89 -0
  95. package/dist/marks/BoxX.svelte.d.ts +4 -0
  96. package/dist/marks/BoxY.svelte +110 -0
  97. package/dist/marks/BoxY.svelte.d.ts +29 -0
  98. package/dist/marks/Cell.svelte +110 -0
  99. package/dist/marks/Cell.svelte.d.ts +16 -0
  100. package/dist/marks/CellX.svelte +24 -0
  101. package/dist/marks/CellX.svelte.d.ts +3 -0
  102. package/dist/marks/CellY.svelte +24 -0
  103. package/dist/marks/CellY.svelte.d.ts +3 -0
  104. package/dist/marks/ColorLegend.svelte +148 -27
  105. package/dist/marks/ColorLegend.svelte.d.ts +12 -13
  106. package/dist/marks/CustomMark.svelte +43 -0
  107. package/dist/marks/CustomMark.svelte.d.ts +16 -0
  108. package/dist/marks/CustomMarkHTML.svelte +103 -0
  109. package/dist/marks/CustomMarkHTML.svelte.d.ts +17 -0
  110. package/dist/marks/DifferenceY.svelte +144 -0
  111. package/dist/marks/DifferenceY.svelte.d.ts +30 -0
  112. package/dist/marks/Dot.svelte +128 -73
  113. package/dist/marks/Dot.svelte.d.ts +24 -14
  114. package/dist/marks/DotX.svelte +15 -3
  115. package/dist/marks/DotX.svelte.d.ts +8 -16
  116. package/dist/marks/DotY.svelte +8 -3
  117. package/dist/marks/DotY.svelte.d.ts +5 -17
  118. package/dist/marks/Frame.svelte +32 -31
  119. package/dist/marks/Frame.svelte.d.ts +7 -14
  120. package/dist/marks/Geo.svelte +102 -0
  121. package/dist/marks/Geo.svelte.d.ts +10 -0
  122. package/dist/marks/Graticule.svelte +28 -0
  123. package/dist/marks/Graticule.svelte.d.ts +9 -0
  124. package/dist/marks/GridX.svelte +67 -36
  125. package/dist/marks/GridX.svelte.d.ts +7 -18
  126. package/dist/marks/GridY.svelte +64 -25
  127. package/dist/marks/GridY.svelte.d.ts +7 -14
  128. package/dist/marks/HTMLTooltip.svelte +91 -0
  129. package/dist/marks/HTMLTooltip.svelte.d.ts +11 -0
  130. package/dist/marks/Line.svelte +219 -58
  131. package/dist/marks/Line.svelte.d.ts +30 -14
  132. package/dist/marks/LineX.svelte +8 -8
  133. package/dist/marks/LineX.svelte.d.ts +4 -17
  134. package/dist/marks/LineY.svelte +7 -8
  135. package/dist/marks/LineY.svelte.d.ts +4 -17
  136. package/dist/marks/Link.svelte +173 -0
  137. package/dist/marks/Link.svelte.d.ts +21 -0
  138. package/dist/marks/Pointer.svelte +126 -0
  139. package/dist/marks/Pointer.svelte.d.ts +23 -0
  140. package/dist/marks/Rect.svelte +103 -0
  141. package/dist/marks/Rect.svelte.d.ts +15 -0
  142. package/dist/marks/RectX.svelte +33 -0
  143. package/dist/marks/RectX.svelte.d.ts +15 -0
  144. package/dist/marks/RectY.svelte +33 -0
  145. package/dist/marks/RectY.svelte.d.ts +15 -0
  146. package/dist/marks/RegressionX.svelte +26 -0
  147. package/dist/marks/RegressionX.svelte.d.ts +4 -0
  148. package/dist/marks/RegressionY.svelte +26 -0
  149. package/dist/marks/RegressionY.svelte.d.ts +4 -0
  150. package/dist/marks/RuleX.svelte +52 -28
  151. package/dist/marks/RuleX.svelte.d.ts +14 -14
  152. package/dist/marks/RuleY.svelte +52 -28
  153. package/dist/marks/RuleY.svelte.d.ts +14 -14
  154. package/dist/marks/Sphere.svelte +8 -0
  155. package/dist/marks/Sphere.svelte.d.ts +51 -0
  156. package/dist/marks/Spike.svelte +15 -0
  157. package/dist/marks/Spike.svelte.d.ts +4 -0
  158. package/dist/marks/SymbolLegend.svelte +27 -12
  159. package/dist/marks/SymbolLegend.svelte.d.ts +8 -14
  160. package/dist/marks/Text.svelte +185 -0
  161. package/dist/marks/Text.svelte.d.ts +26 -0
  162. package/dist/marks/TickX.svelte +89 -0
  163. package/dist/marks/TickX.svelte.d.ts +22 -0
  164. package/dist/marks/TickY.svelte +90 -0
  165. package/dist/marks/TickY.svelte.d.ts +22 -0
  166. package/dist/marks/Vector.svelte +213 -0
  167. package/dist/marks/Vector.svelte.d.ts +31 -0
  168. package/dist/marks/helpers/BaseAxisX.svelte +210 -0
  169. package/dist/marks/helpers/BaseAxisX.svelte.d.ts +24 -0
  170. package/dist/marks/helpers/BaseAxisY.svelte +187 -0
  171. package/dist/marks/helpers/BaseAxisY.svelte.d.ts +23 -0
  172. package/dist/marks/helpers/CanvasLayer.svelte +38 -0
  173. package/dist/marks/helpers/CanvasLayer.svelte.d.ts +13 -0
  174. package/dist/marks/helpers/DotCanvas.svelte +184 -0
  175. package/dist/marks/helpers/DotCanvas.svelte.d.ts +11 -0
  176. package/dist/marks/helpers/GeoCanvas.svelte +165 -0
  177. package/dist/marks/helpers/GeoCanvas.svelte.d.ts +13 -0
  178. package/dist/marks/helpers/GroupMultiple.svelte +17 -0
  179. package/dist/marks/helpers/GroupMultiple.svelte.d.ts +9 -0
  180. package/dist/marks/helpers/Marker.svelte +93 -0
  181. package/dist/marks/helpers/Marker.svelte.d.ts +10 -0
  182. package/dist/marks/helpers/MarkerPath.svelte +164 -0
  183. package/dist/marks/helpers/MarkerPath.svelte.d.ts +44 -0
  184. package/dist/marks/helpers/Regression.svelte +174 -0
  185. package/dist/marks/helpers/Regression.svelte.d.ts +26 -0
  186. package/dist/marks/helpers/events.d.ts +8 -0
  187. package/dist/marks/helpers/events.js +64 -0
  188. package/dist/transforms/bin.d.ts +51 -0
  189. package/dist/transforms/bin.js +171 -0
  190. package/dist/transforms/bollinger.d.ts +21 -0
  191. package/dist/transforms/bollinger.js +53 -0
  192. package/dist/transforms/centroid.d.ts +9 -0
  193. package/dist/transforms/centroid.js +13 -0
  194. package/dist/transforms/facet.d.ts +1 -0
  195. package/dist/transforms/facet.js +1 -0
  196. package/dist/transforms/filter.d.ts +2 -0
  197. package/dist/transforms/filter.js +8 -0
  198. package/dist/transforms/group.d.ts +66 -0
  199. package/dist/transforms/group.js +109 -0
  200. package/dist/transforms/interval.d.ts +11 -0
  201. package/dist/transforms/interval.js +34 -0
  202. package/dist/transforms/jitter.d.ts +0 -0
  203. package/dist/transforms/jitter.js +1 -0
  204. package/dist/transforms/map.d.ts +10 -0
  205. package/dist/transforms/map.js +89 -0
  206. package/dist/transforms/normalize.d.ts +9 -0
  207. package/dist/transforms/normalize.js +86 -0
  208. package/dist/transforms/recordize.d.ts +13 -0
  209. package/dist/transforms/recordize.js +75 -0
  210. package/dist/transforms/rename.d.ts +14 -0
  211. package/dist/transforms/rename.js +42 -0
  212. package/dist/transforms/select.d.ts +35 -0
  213. package/dist/transforms/select.js +55 -0
  214. package/dist/transforms/shift.d.ts +13 -0
  215. package/dist/transforms/shift.js +45 -0
  216. package/dist/transforms/sort.d.ts +28 -0
  217. package/dist/transforms/sort.js +61 -0
  218. package/dist/transforms/stack.d.ts +10 -0
  219. package/dist/transforms/stack.js +110 -0
  220. package/dist/transforms/window.d.ts +22 -0
  221. package/dist/transforms/window.js +73 -0
  222. package/dist/types.d.ts +625 -188
  223. package/dist/ui/Checkbox.svelte +6 -0
  224. package/dist/ui/Checkbox.svelte.d.ts +13 -0
  225. package/dist/ui/RadioInput.svelte +27 -0
  226. package/dist/ui/RadioInput.svelte.d.ts +9 -0
  227. package/dist/ui/Select.svelte +27 -0
  228. package/dist/ui/Select.svelte.d.ts +9 -0
  229. package/dist/ui/Slider.svelte +47 -0
  230. package/dist/ui/Slider.svelte.d.ts +11 -0
  231. package/dist/ui/Spiral.svelte +46 -0
  232. package/dist/ui/Spiral.svelte.d.ts +15 -0
  233. package/dist/ui/index.d.ts +4 -0
  234. package/dist/ui/index.js +4 -0
  235. package/package.json +79 -40
  236. package/LICENSE +0 -11
  237. package/dist/classes/Channel.svelte.js +0 -74
  238. package/dist/classes/Mark.svelte.js +0 -17
  239. package/dist/classes/Plot.svelte.js +0 -98
  240. package/dist/contants.d.ts +0 -3
  241. package/dist/contants.js +0 -40
  242. package/dist/helpers/GroupMultiple.svelte +0 -8
  243. package/dist/helpers/GroupMultiple.svelte.d.ts +0 -19
  244. package/dist/helpers/createScale.d.ts +0 -5
  245. package/dist/helpers/createScale.js +0 -57
  246. package/dist/helpers/resolveChannel.d.ts +0 -2
  247. package/dist/helpers/resolveChannel.js +0 -28
  248. package/dist/helpers/wrapArray.d.ts +0 -2
  249. package/dist/helpers/wrapArray.js +0 -4
  250. package/dist/marks/BaseMark.svelte +0 -22
  251. package/dist/marks/BaseMark.svelte.d.ts +0 -19
package/dist/index.d.ts CHANGED
@@ -1,16 +1,64 @@
1
+ export { default as Area } from './marks/Area.svelte';
2
+ export { default as AreaX } from './marks/AreaX.svelte';
3
+ export { default as AreaY } from './marks/AreaY.svelte';
4
+ export { default as Arrow } from './marks/Arrow.svelte';
1
5
  export { default as AxisX } from './marks/AxisX.svelte';
2
6
  export { default as AxisY } from './marks/AxisY.svelte';
3
- export { default as ColorLegend } from './marks/ColorLegend.svelte';
7
+ export { default as BarX } from './marks/BarX.svelte';
8
+ export { default as BarY } from './marks/BarY.svelte';
9
+ export { default as BollingerX } from './marks/BollingerX.svelte';
10
+ export { default as BollingerY } from './marks/BollingerY.svelte';
11
+ export { default as BoxX } from './marks/BoxX.svelte';
12
+ export { default as BoxY } from './marks/BoxY.svelte';
13
+ export { default as Cell } from './marks/Cell.svelte';
14
+ export { default as CellX } from './marks/CellX.svelte';
15
+ export { default as CellY } from './marks/CellY.svelte';
16
+ export { default as CustomMark } from './marks/CustomMark.svelte';
17
+ export { default as CustomMarkHTML } from './marks/CustomMarkHTML.svelte';
18
+ export { default as DifferenceY } from './marks/DifferenceY.svelte';
4
19
  export { default as Dot } from './marks/Dot.svelte';
5
20
  export { default as DotX } from './marks/DotX.svelte';
6
21
  export { default as DotY } from './marks/DotY.svelte';
7
22
  export { default as Frame } from './marks/Frame.svelte';
23
+ export { default as Geo } from './marks/Geo.svelte';
24
+ export { default as Graticule } from './marks/Graticule.svelte';
8
25
  export { default as GridX } from './marks/GridX.svelte';
9
26
  export { default as GridY } from './marks/GridY.svelte';
10
27
  export { default as Line } from './marks/Line.svelte';
11
28
  export { default as LineX } from './marks/LineX.svelte';
12
29
  export { default as LineY } from './marks/LineY.svelte';
30
+ export { default as Link } from './marks/Link.svelte';
13
31
  export { default as Plot } from './Plot.svelte';
32
+ export { default as Pointer } from './marks/Pointer.svelte';
33
+ export { default as Vector } from './marks/Vector.svelte';
34
+ export { default as Rect } from './marks/Rect.svelte';
35
+ export { default as RectX } from './marks/RectX.svelte';
36
+ export { default as RectY } from './marks/RectY.svelte';
37
+ export { default as RegressionX } from './marks/RegressionX.svelte';
38
+ export { default as RegressionY } from './marks/RegressionY.svelte';
14
39
  export { default as RuleX } from './marks/RuleX.svelte';
15
40
  export { default as RuleY } from './marks/RuleY.svelte';
41
+ export { default as Sphere } from './marks/Sphere.svelte';
42
+ export { default as Spike } from './marks/Spike.svelte';
43
+ export { default as Text } from './marks/Text.svelte';
44
+ export { default as TickX } from './marks/TickX.svelte';
45
+ export { default as TickY } from './marks/TickY.svelte';
46
+ export { default as ColorLegend } from './marks/ColorLegend.svelte';
47
+ export { default as HTMLTooltip } from './marks/HTMLTooltip.svelte';
16
48
  export { default as SymbolLegend } from './marks/SymbolLegend.svelte';
49
+ export { bin, binX, binY } from './transforms/bin.js';
50
+ export { bollingerX, bollingerY } from './transforms/bollinger.js';
51
+ export { geoCentroid } from './transforms/centroid.js';
52
+ export { filter } from './transforms/filter.js';
53
+ export { map, mapX, mapY } from './transforms/map.js';
54
+ export { normalizeX, normalizeY } from './transforms/normalize.js';
55
+ export { group, groupX, groupY, groupZ } from './transforms/group.js';
56
+ export { intervalX, intervalY } from './transforms/interval.js';
57
+ export { recordizeX, recordizeY } from './transforms/recordize.js';
58
+ export { renameChannels } from './transforms/rename.js';
59
+ export { select, selectFirst, selectLast, selectMaxX, selectMaxY, selectMinX, selectMinY } from './transforms/select.js';
60
+ export { shiftX, shiftY } from './transforms/shift.js';
61
+ export { sort, shuffle, reverse } from './transforms/sort.js';
62
+ export { stackX, stackY } from './transforms/stack.js';
63
+ export { windowX, windowY } from './transforms/window.js';
64
+ export { formatMonth } from './helpers/formats.js';
package/dist/index.js CHANGED
@@ -1,17 +1,68 @@
1
- // Reexport your entry components here
1
+ // SVG marks
2
+ export { default as Area } from './marks/Area.svelte';
3
+ export { default as AreaX } from './marks/AreaX.svelte';
4
+ export { default as AreaY } from './marks/AreaY.svelte';
5
+ export { default as Arrow } from './marks/Arrow.svelte';
2
6
  export { default as AxisX } from './marks/AxisX.svelte';
3
7
  export { default as AxisY } from './marks/AxisY.svelte';
4
- export { default as ColorLegend } from './marks/ColorLegend.svelte';
8
+ export { default as BarX } from './marks/BarX.svelte';
9
+ export { default as BarY } from './marks/BarY.svelte';
10
+ export { default as BollingerX } from './marks/BollingerX.svelte';
11
+ export { default as BollingerY } from './marks/BollingerY.svelte';
12
+ export { default as BoxX } from './marks/BoxX.svelte';
13
+ export { default as BoxY } from './marks/BoxY.svelte';
14
+ export { default as Cell } from './marks/Cell.svelte';
15
+ export { default as CellX } from './marks/CellX.svelte';
16
+ export { default as CellY } from './marks/CellY.svelte';
17
+ export { default as CustomMark } from './marks/CustomMark.svelte';
18
+ export { default as CustomMarkHTML } from './marks/CustomMarkHTML.svelte';
19
+ export { default as DifferenceY } from './marks/DifferenceY.svelte';
5
20
  export { default as Dot } from './marks/Dot.svelte';
6
21
  export { default as DotX } from './marks/DotX.svelte';
7
22
  export { default as DotY } from './marks/DotY.svelte';
8
23
  export { default as Frame } from './marks/Frame.svelte';
24
+ export { default as Geo } from './marks/Geo.svelte';
25
+ export { default as Graticule } from './marks/Graticule.svelte';
9
26
  export { default as GridX } from './marks/GridX.svelte';
10
27
  export { default as GridY } from './marks/GridY.svelte';
11
28
  export { default as Line } from './marks/Line.svelte';
12
29
  export { default as LineX } from './marks/LineX.svelte';
13
30
  export { default as LineY } from './marks/LineY.svelte';
31
+ export { default as Link } from './marks/Link.svelte';
14
32
  export { default as Plot } from './Plot.svelte';
33
+ export { default as Pointer } from './marks/Pointer.svelte';
34
+ export { default as Vector } from './marks/Vector.svelte';
35
+ export { default as Rect } from './marks/Rect.svelte';
36
+ export { default as RectX } from './marks/RectX.svelte';
37
+ export { default as RectY } from './marks/RectY.svelte';
38
+ export { default as RegressionX } from './marks/RegressionX.svelte';
39
+ export { default as RegressionY } from './marks/RegressionY.svelte';
15
40
  export { default as RuleX } from './marks/RuleX.svelte';
16
41
  export { default as RuleY } from './marks/RuleY.svelte';
42
+ export { default as Sphere } from './marks/Sphere.svelte';
43
+ export { default as Spike } from './marks/Spike.svelte';
44
+ export { default as Text } from './marks/Text.svelte';
45
+ export { default as TickX } from './marks/TickX.svelte';
46
+ export { default as TickY } from './marks/TickY.svelte';
47
+ // HTML marks
48
+ export { default as ColorLegend } from './marks/ColorLegend.svelte';
49
+ export { default as HTMLTooltip } from './marks/HTMLTooltip.svelte';
17
50
  export { default as SymbolLegend } from './marks/SymbolLegend.svelte';
51
+ // transforms
52
+ export { bin, binX, binY } from './transforms/bin.js';
53
+ export { bollingerX, bollingerY } from './transforms/bollinger.js';
54
+ export { geoCentroid } from './transforms/centroid.js';
55
+ export { filter } from './transforms/filter.js';
56
+ export { map, mapX, mapY } from './transforms/map.js';
57
+ export { normalizeX, normalizeY } from './transforms/normalize.js';
58
+ export { group, groupX, groupY, groupZ } from './transforms/group.js';
59
+ export { intervalX, intervalY } from './transforms/interval.js';
60
+ export { recordizeX, recordizeY } from './transforms/recordize.js';
61
+ export { renameChannels } from './transforms/rename.js';
62
+ export { select, selectFirst, selectLast, selectMaxX, selectMaxY, selectMinX, selectMinY } from './transforms/select.js';
63
+ export { shiftX, shiftY } from './transforms/shift.js';
64
+ export { sort, shuffle, reverse } from './transforms/sort.js';
65
+ export { stackX, stackY } from './transforms/stack.js';
66
+ export { windowX, windowY } from './transforms/window.js';
67
+ // format helpers
68
+ export { formatMonth } from './helpers/formats.js';
@@ -0,0 +1,146 @@
1
+ <script module lang="ts">
2
+ export type AreaMarkProps = {
3
+ z?: ChannelAccessor;
4
+ fill?: ChannelAccessor;
5
+ stroke?: ChannelAccessor;
6
+ dx?: ConstantAccessor<number>;
7
+ dy?: ConstantAccessor<number>;
8
+ curve?: CurveName | CurveFactory;
9
+ tension?: number;
10
+ sort?: ConstantAccessor<RawValue> | { channel: 'stroke' | 'fill' };
11
+ stack?: Partial<StackOptions>;
12
+ };
13
+ </script>
14
+
15
+ <script lang="ts">
16
+ import Mark from '../Mark.svelte';
17
+ import GroupMultiple from './helpers/GroupMultiple.svelte';
18
+ import { getContext } from 'svelte';
19
+ import { resolveChannel, resolveProp, resolveStyles } from '../helpers/resolve.js';
20
+ import { groups as d3Groups } from 'd3-array';
21
+ import { area, type CurveFactory } from 'd3-shape';
22
+ import callWithProps from '../helpers/callWithProps.js';
23
+ import { maybeCurve } from '../helpers/curves.js';
24
+ import { isValid } from '../helpers/index.js';
25
+
26
+ import type {
27
+ CurveName,
28
+ PlotContext,
29
+ DataRecord,
30
+ BaseMarkProps,
31
+ ConstantAccessor,
32
+ ChannelAccessor,
33
+ FacetContext,
34
+ ScaledDataRecord
35
+ } from '../types.js';
36
+ import type { RawValue } from '../types.js';
37
+ import type { StackOptions } from '../transforms/stack.js';
38
+
39
+ type AreaProps = BaseMarkProps & {
40
+ data: DataRecord[];
41
+ /**
42
+ * Lorem ipsum
43
+ */
44
+ x1?: ChannelAccessor;
45
+ x2?: ChannelAccessor;
46
+ y1?: ChannelAccessor;
47
+ y2?: ChannelAccessor;
48
+ } & AreaMarkProps;
49
+
50
+ let {
51
+ data,
52
+ /** the curve */
53
+ curve = 'linear',
54
+ tension = 0,
55
+ class: className = null,
56
+ ...options
57
+ }: AreaProps = $props();
58
+
59
+ const { getPlotState } = getContext<PlotContext>('svelteplot');
60
+ const plot = $derived(getPlotState());
61
+
62
+ const groupByKey = $derived(options.z || options.fill || options.stroke);
63
+
64
+ const areaPath: (d: ScaledDataRecord[]) => string = $derived(
65
+ callWithProps(area, [], {
66
+ curve: maybeCurve(curve, tension),
67
+ defined: (d: ScaledDataRecord) =>
68
+ options.x1 != null && options.x2 != null
69
+ ? // vertical
70
+ isValid(d.y1) && isValid(d.x1) && isValid(d.x2)
71
+ : // horizontal
72
+ isValid(d.x1) && isValid(d.y1) && isValid(d.y2),
73
+ ...(options.x1 != null && options.x2 != null
74
+ ? {
75
+ // "vertical" area
76
+ x0: (d: ScaledDataRecord) => d.x1,
77
+ x1: (d: ScaledDataRecord) => d.x2,
78
+ y: (d: ScaledDataRecord) => d.y1
79
+ }
80
+ : {
81
+ // "horizontal" area
82
+ x: (d: ScaledDataRecord) => d.x1,
83
+ y0: (d: ScaledDataRecord) => d.y1,
84
+ y1: (d: ScaledDataRecord) => d.y2
85
+ })
86
+ })
87
+ );
88
+
89
+ function groupAndSort(data: ScaledDataRecord[]) {
90
+ const groups = groupByKey
91
+ ? d3Groups(data, (d) => resolveProp(groupByKey, d.datum)).map((d) => d[1])
92
+ : [data];
93
+ if (options.sort) {
94
+ return groups.toSorted((a, b) =>
95
+ resolveChannel('sort', a[0].datum, options) >
96
+ resolveChannel('sort', b[0].datum, options)
97
+ ? 1
98
+ : -1
99
+ );
100
+ }
101
+ return groups;
102
+ }
103
+
104
+ const { getTestFacet } = getContext<FacetContext>('svelteplot/facet');
105
+ let testFacet = $derived(getTestFacet());
106
+ </script>
107
+
108
+ <Mark
109
+ type="area"
110
+ {data}
111
+ channels={['x1', 'x2', 'y1', 'y2', 'fill', 'stroke', 'opacity', 'fillOpacity', 'strokeOpacity']}
112
+ required={['x1', 'y1']}
113
+ {...options}>
114
+ {#snippet children({ mark, usedScales, scaledData })}
115
+ {@const grouped = groupAndSort(scaledData)}
116
+ <GroupMultiple length={grouped.length}>
117
+ {#each grouped as areaData}
118
+ {#snippet el(datum: ScaledDataRecord)}
119
+ {@const [style, styleClass] = resolveStyles(
120
+ plot,
121
+ datum,
122
+ options,
123
+ 'fill',
124
+ usedScales
125
+ )}
126
+ <path
127
+ class={['svelteplot-area', className, styleClass]}
128
+ clip-path={options.clipPath}
129
+ d={areaPath(areaData)}
130
+ {style} />
131
+ {/snippet}
132
+ {#if areaData.length > 0}
133
+ {#if options.href}
134
+ <a
135
+ href={resolveProp(options.href, areaData[0].datum, '')}
136
+ target={resolveProp(options.target, areaData[0].datum, '_self')}>
137
+ {@render el(areaData[0])}
138
+ </a>
139
+ {:else}
140
+ {@render el(areaData[0])}
141
+ {/if}
142
+ {/if}
143
+ {/each}
144
+ </GroupMultiple>
145
+ {/snippet}
146
+ </Mark>
@@ -0,0 +1,30 @@
1
+ export type AreaMarkProps = {
2
+ z?: ChannelAccessor;
3
+ fill?: ChannelAccessor;
4
+ stroke?: ChannelAccessor;
5
+ dx?: ConstantAccessor<number>;
6
+ dy?: ConstantAccessor<number>;
7
+ curve?: CurveName | CurveFactory;
8
+ tension?: number;
9
+ sort?: ConstantAccessor<RawValue> | {
10
+ channel: 'stroke' | 'fill';
11
+ };
12
+ stack?: Partial<StackOptions>;
13
+ };
14
+ import { type CurveFactory } from 'd3-shape';
15
+ import type { CurveName, DataRecord, BaseMarkProps, ConstantAccessor, ChannelAccessor } from '../types.js';
16
+ import type { RawValue } from '../types.js';
17
+ import type { StackOptions } from '../transforms/stack.js';
18
+ type AreaProps = BaseMarkProps & {
19
+ data: DataRecord[];
20
+ /**
21
+ * Lorem ipsum
22
+ */
23
+ x1?: ChannelAccessor;
24
+ x2?: ChannelAccessor;
25
+ y1?: ChannelAccessor;
26
+ y2?: ChannelAccessor;
27
+ } & AreaMarkProps;
28
+ declare const Area: import("svelte").Component<AreaProps, {}, "">;
29
+ type Area = ReturnType<typeof Area>;
30
+ export default Area;
@@ -0,0 +1,27 @@
1
+ <script lang="ts">
2
+ import Area, { type AreaMarkProps } from './Area.svelte';
3
+ import { renameChannels } from '../transforms/rename.js';
4
+ import { stackX } from '../transforms/stack.js';
5
+ import { recordizeX } from '../transforms/recordize.js';
6
+ import type { DataRecord, BaseMarkProps, ChannelAccessor } from '../types.js';
7
+
8
+ type AreaXProps = BaseMarkProps & {
9
+ data: DataRecord[];
10
+ x?: ChannelAccessor;
11
+ x1?: ChannelAccessor;
12
+ x2?: ChannelAccessor;
13
+ y?: ChannelAccessor;
14
+ } & AreaMarkProps;
15
+
16
+ // we're discarding y1 and y2 props since they are not
17
+ let { data, stack, ...options }: AreaXProps = $props();
18
+
19
+ const args = $derived(
20
+ renameChannels<AreaXProps>(
21
+ stackX(recordizeX({ data, ...options, y1: null, y2: null }), stack),
22
+ { y: 'y1' }
23
+ )
24
+ );
25
+ </script>
26
+
27
+ <Area {...args}></Area>
@@ -0,0 +1,12 @@
1
+ import { type AreaMarkProps } from './Area.svelte';
2
+ import type { DataRecord, BaseMarkProps, ChannelAccessor } from '../types.js';
3
+ type AreaXProps = BaseMarkProps & {
4
+ data: DataRecord[];
5
+ x?: ChannelAccessor;
6
+ x1?: ChannelAccessor;
7
+ x2?: ChannelAccessor;
8
+ y?: ChannelAccessor;
9
+ } & AreaMarkProps;
10
+ declare const AreaX: import("svelte").Component<AreaXProps, {}, "">;
11
+ type AreaX = ReturnType<typeof AreaX>;
12
+ export default AreaX;
@@ -0,0 +1,38 @@
1
+ <script lang="ts">
2
+ import Area, { type AreaMarkProps } from './Area.svelte';
3
+ import { renameChannels } from '../transforms/rename.js';
4
+ import { stackY } from '../transforms/stack.js';
5
+ import { recordizeY } from '../transforms/recordize.js';
6
+ import type { DataRecord, BaseMarkProps, ChannelAccessor } from '../types.js';
7
+
8
+ /**
9
+ * AreaY mark foo
10
+ */
11
+ type AreaYProps = BaseMarkProps & {
12
+ data: DataRecord[];
13
+ x?: ChannelAccessor;
14
+ y1?: ChannelAccessor;
15
+ y2?: ChannelAccessor;
16
+ /**
17
+ * this some extensive help for the y channel
18
+ */
19
+ y?: ChannelAccessor;
20
+ } & AreaMarkProps;
21
+
22
+ let { data, stack, ...options }: AreaYProps = $props();
23
+
24
+ const args = $derived(
25
+ renameChannels<AreaYProps>(
26
+ stackY(recordizeY({ data, ...options, x1: null, x2: null }), stack),
27
+ { x: 'x1' }
28
+ )
29
+ );
30
+ </script>
31
+
32
+ <!--
33
+ @component
34
+ The AreaY component can be used for foobar
35
+
36
+ -->
37
+
38
+ <Area {...args}></Area>
@@ -0,0 +1,19 @@
1
+ import { type AreaMarkProps } from './Area.svelte';
2
+ import type { DataRecord, BaseMarkProps, ChannelAccessor } from '../types.js';
3
+ /**
4
+ * AreaY mark foo
5
+ */
6
+ type AreaYProps = BaseMarkProps & {
7
+ data: DataRecord[];
8
+ x?: ChannelAccessor;
9
+ y1?: ChannelAccessor;
10
+ y2?: ChannelAccessor;
11
+ /**
12
+ * this some extensive help for the y channel
13
+ */
14
+ y?: ChannelAccessor;
15
+ } & AreaMarkProps;
16
+ /** The AreaY component can be used for foobar */
17
+ declare const AreaY: import("svelte").Component<AreaYProps, {}, "">;
18
+ type AreaY = ReturnType<typeof AreaY>;
19
+ export default AreaY;
@@ -0,0 +1,139 @@
1
+ <!--
2
+ @component Arrow2
3
+ -->
4
+ <script lang="ts">
5
+ import { getContext, type Snippet } from 'svelte';
6
+ import type {
7
+ PlotContext,
8
+ DataRecord,
9
+ BaseMarkProps,
10
+ ConstantAccessor,
11
+ ChannelAccessor,
12
+ FacetContext,
13
+ RawValue
14
+ } from '../types.js';
15
+ import { resolveChannel, resolveProp, resolveStyles } from '../helpers/resolve.js';
16
+ import { coalesce, maybeData, maybeNumber } from '../helpers/index.js';
17
+ import Mark from '../Mark.svelte';
18
+ import { arrowPath, maybeSweep, type SweepOption } from '../helpers/arrowPath.js';
19
+ import { replaceChannels } from '../transforms/rename.js';
20
+ import { addEventHandlers } from './helpers/events.js';
21
+ import GroupMultiple from './helpers/GroupMultiple.svelte';
22
+
23
+ type ArrowProps = BaseMarkProps & {
24
+ data: DataRecord[];
25
+ sort?: ConstantAccessor<RawValue> | { channel: 'stroke' | 'fill' };
26
+ x1: ChannelAccessor;
27
+ y1: ChannelAccessor;
28
+ x2: ChannelAccessor;
29
+ y2: ChannelAccessor;
30
+ stroke?: ChannelAccessor;
31
+ /**
32
+ * the bend angle, in degrees; defaults to 0°; true for 22.5°
33
+ */
34
+ bend?: ConstantAccessor<number> | true;
35
+ /**
36
+ * the arrowhead angle, in degrees; defaults to 60°
37
+ */
38
+ headAngle?: ConstantAccessor<number>;
39
+ /**
40
+ * the arrowhead scale; defaults to 8
41
+ */
42
+ headLength?: ConstantAccessor<number>;
43
+ /**
44
+ * inset at the end of the arrow (useful if the arrow points to a dot)
45
+ */
46
+ insetEnd?: ConstantAccessor<number>;
47
+ /**
48
+ * inset at the start of the arrow
49
+ */
50
+ insetStart?: ConstantAccessor<number>;
51
+ /**
52
+ * shorthand for the two insets
53
+ */
54
+ inset?: ConstantAccessor<number>;
55
+ sweep?: SweepOption;
56
+ children?: Snippet;
57
+ };
58
+
59
+ let { data = [{}], class: className = null, ...options }: ArrowProps = $props();
60
+
61
+ const { getPlotState } = getContext<PlotContext>('svelteplot');
62
+ const plot = $derived(getPlotState());
63
+
64
+ const sorted = $derived(
65
+ options.sort
66
+ ? maybeData(data).toSorted((a, b) =>
67
+ resolveChannel('sort', a, options) > resolveChannel('sort', b, options) ? 1 : -1
68
+ )
69
+ : maybeData(data)
70
+ );
71
+
72
+ const args: ArrowProps = $derived(
73
+ replaceChannels({ data: sorted, ...options }, { y: ['y1', 'y2'], x: ['x1', 'x2'] })
74
+ );
75
+ </script>
76
+
77
+ <Mark
78
+ type="arrow"
79
+ required={['x1', 'x2', 'y1', 'y2']}
80
+ channels={['x1', 'y1', 'x2', 'y2', 'opacity', 'stroke', 'strokeOpacity']}
81
+ {...args}>
82
+ {#snippet children({ mark, usedScales, scaledData })}
83
+ {@const sweep = maybeSweep(args.sweep)}
84
+ <GroupMultiple class="arrow" length={scaledData.length}>
85
+ {#each scaledData as d}
86
+ {#if d.valid}
87
+ {@const inset = resolveProp(args.inset, d.datum, 0)}
88
+ {@const insetStart = resolveProp(args.insetStart, d.datum)}
89
+ {@const insetEnd = resolveProp(args.insetEnd, d.datum)}
90
+ {@const headAngle = resolveProp(args.headAngle, d.datum, 60)}
91
+ {@const headLength = resolveProp(args.headLength, d.datum, 8)}
92
+ {@const bend = resolveProp(args.bend, d.datum, 0)}
93
+ {@const strokeWidth = resolveProp(args.strokeWidth, d.datum, 1)}
94
+ {@const arrPath = arrowPath(
95
+ d.x1,
96
+ d.y1,
97
+ d.x2,
98
+ d.y2,
99
+ maybeNumber(coalesce(insetStart, inset)),
100
+ maybeNumber(coalesce(insetEnd, inset)),
101
+ headAngle,
102
+ headLength,
103
+ bend === true ? 22.5 : bend === false ? 0 : bend,
104
+ strokeWidth,
105
+ sweep
106
+ )}
107
+ {@const [style, styleClass] = resolveStyles(
108
+ plot,
109
+ d,
110
+ {
111
+ strokeLinecap: 'round',
112
+ strokeLinejoin: 'round',
113
+ ...args,
114
+ strokeWidth: strokeWidth ?? 1.6
115
+ },
116
+ 'stroke',
117
+ usedScales
118
+ )}
119
+ <g
120
+ class={[className]}
121
+ use:addEventHandlers={{
122
+ getPlotState,
123
+ options: mark.options,
124
+ datum: d.datum
125
+ }}>
126
+ {#if options.onmouseenter || options.onclick}
127
+ <!-- add invisible path in bg for easier mouse access -->
128
+ <path
129
+ d={arrPath}
130
+ style="fill:none;stroke-width: {(strokeWidth || 1) +
131
+ 10}; stroke: red; stroke-opacity:0" />
132
+ {/if}
133
+ <path class={[styleClass]} d={arrPath} {style} />
134
+ </g>
135
+ {/if}
136
+ {/each}
137
+ </GroupMultiple>
138
+ {/snippet}
139
+ </Mark>
@@ -0,0 +1,44 @@
1
+ import { type Snippet } from 'svelte';
2
+ import type { DataRecord, BaseMarkProps, ConstantAccessor, ChannelAccessor, RawValue } from '../types.js';
3
+ import { type SweepOption } from '../helpers/arrowPath.js';
4
+ type ArrowProps = BaseMarkProps & {
5
+ data: DataRecord[];
6
+ sort?: ConstantAccessor<RawValue> | {
7
+ channel: 'stroke' | 'fill';
8
+ };
9
+ x1: ChannelAccessor;
10
+ y1: ChannelAccessor;
11
+ x2: ChannelAccessor;
12
+ y2: ChannelAccessor;
13
+ stroke?: ChannelAccessor;
14
+ /**
15
+ * the bend angle, in degrees; defaults to 0°; true for 22.5°
16
+ */
17
+ bend?: ConstantAccessor<number> | true;
18
+ /**
19
+ * the arrowhead angle, in degrees; defaults to 60°
20
+ */
21
+ headAngle?: ConstantAccessor<number>;
22
+ /**
23
+ * the arrowhead scale; defaults to 8
24
+ */
25
+ headLength?: ConstantAccessor<number>;
26
+ /**
27
+ * inset at the end of the arrow (useful if the arrow points to a dot)
28
+ */
29
+ insetEnd?: ConstantAccessor<number>;
30
+ /**
31
+ * inset at the start of the arrow
32
+ */
33
+ insetStart?: ConstantAccessor<number>;
34
+ /**
35
+ * shorthand for the two insets
36
+ */
37
+ inset?: ConstantAccessor<number>;
38
+ sweep?: SweepOption;
39
+ children?: Snippet;
40
+ };
41
+ /** Arrow2 */
42
+ declare const Arrow: import("svelte").Component<ArrowProps, {}, "">;
43
+ type Arrow = ReturnType<typeof Arrow>;
44
+ export default Arrow;