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
@@ -2,7 +2,7 @@ import isDataRecord from '../helpers/isDataRecord.js';
2
2
  import { resolveChannel, resolveProp } from '../helpers/resolve.js';
3
3
  import { stack, stackOffsetExpand, stackOffsetSilhouette, stackOffsetWiggle, stackOrderAppearance, stackOrderAscending, stackOrderInsideOut, stackOrderNone, stackOffsetDiverging } from 'd3-shape';
4
4
  import { sum, groups as d3Groups, min, range } from 'd3-array';
5
- import { groupFacetsAndZ } from '../helpers/group';
5
+ import { groupFacetsAndZ } from '../helpers/group.js';
6
6
  import { filter } from './filter.js';
7
7
  import { sort } from './sort.js';
8
8
  import { INDEX, ORIGINAL_NAME_KEYS } from '../constants.js';
@@ -55,7 +55,7 @@ function stackXY(byDim, data, channels, options) {
55
55
  channels[`${byLow}`] === undefined &&
56
56
  channels[`${byHigh}`] === undefined) {
57
57
  // resolve all channels for easier computation below
58
- const resolvedData = indexData(data).map((d, i) => ({
58
+ const resolvedData = indexData(data).map((d) => ({
59
59
  ...(isDataRecord(d) ? d : { [RAW_VALUE]: d }),
60
60
  [S[secondDim]]: resolveChannel(secondDim, d, channels),
61
61
  [GROUP]: groupBy === true ? 'G' : resolveChannel(groupBy, d, channels),
@@ -91,7 +91,7 @@ function stackXY(byDim, data, channels, options) {
91
91
  // Unit stacking: map each secondary-dimension bucket to an array of values.
92
92
  // Series are positional (0..N-1) within each bucket.
93
93
  let maxKeys = 0;
94
- stackData = groupedBySecondDim.map(([k, items]) => {
94
+ stackData = groupedBySecondDim.map(([_k, items]) => {
95
95
  const values = items
96
96
  // keep original order within bucket; no stable series identity across buckets
97
97
  .map((d) => ({ i: d[INDEX], v: d[S[byDim]] }));
@@ -104,7 +104,7 @@ function stackXY(byDim, data, channels, options) {
104
104
  else {
105
105
  // Grouped stacking: keep consistent series identities using the group key
106
106
  const keySet = new Set(facetData.map((d) => d[GROUP]));
107
- stackData = groupedBySecondDim.map(([k, items]) => {
107
+ stackData = groupedBySecondDim.map(([_k, items]) => {
108
108
  const obj = {};
109
109
  items.forEach((d) => {
110
110
  const key = d[GROUP];
@@ -130,11 +130,11 @@ function stackXY(byDim, data, channels, options) {
130
130
  const series = stack()
131
131
  .order(stackOrder)
132
132
  // Wiggle requires consistent series identities; fall back to 'center' for unit stacking
133
- .offset(groupBy === true && options.offset === 'wiggle'
133
+ .offset((groupBy === true && options.offset === 'wiggle'
134
134
  ? STACK_OFFSET['center']
135
- : STACK_OFFSET[options.offset])
135
+ : STACK_OFFSET[options.offset ?? 'none']))
136
136
  .keys(keys)
137
- .value((d, key, i, data) => {
137
+ .value((d, key, _i, _data) => {
138
138
  return d[key]?.v == null ? undefined : d[key]?.v;
139
139
  })(stackData);
140
140
  // and combine it all back into a flat array
@@ -153,21 +153,28 @@ function stackXY(byDim, data, channels, options) {
153
153
  ...(typeof channels[byDim] === 'string' && !channels[ORIGINAL_NAME_KEYS[byDim]]
154
154
  ? { [ORIGINAL_NAME_KEYS[byDim]]: channels[byDim] }
155
155
  : {}),
156
- ...{ [byLow]: S[byLow], [byHigh]: S[byHigh] }
156
+ [byLow]: S[byLow],
157
+ [byHigh]: S[byHigh]
157
158
  };
158
159
  }
159
160
  return { data, ...channels };
160
161
  }
162
+ /**
163
+ * stacks data along the y dimension, producing y1 and y2 channels
164
+ */
161
165
  export function stackY({ data, ...channels }, opts = {}) {
162
166
  return stackXY('y', data, channels, applyDefaults(opts));
163
167
  }
168
+ /**
169
+ * stacks data along the x dimension, producing x1 and x2 channels
170
+ */
164
171
  export function stackX({ data, ...channels }, opts = {}) {
165
172
  return stackXY('x', data, channels, applyDefaults(opts));
166
173
  }
167
174
  function applyDefaults(opts) {
168
175
  if (opts === false)
169
176
  return false;
170
- if (opts.offset === 'wiggle' && opts.order === undefined) {
177
+ if (typeof opts === 'object' && opts.offset === 'wiggle' && opts.order === undefined) {
171
178
  return { ...DEFAULT_STACK_OPTIONS, order: 'inside-out', ...opts };
172
179
  }
173
180
  return { ...DEFAULT_STACK_OPTIONS, ...opts };
@@ -198,13 +205,14 @@ function stackMosaic({ data, x, y, value, fx, fy, ...rest }, { outer, inner }, {
198
205
  const innerOpt = inner === 'x' ? xOpt : yOpt;
199
206
  const grouped = d3Groups(data, (d) => resolveProp(d[outerChannel], d));
200
207
  const innerOrder = new Map(grouped[0][1].map((d, i) => [d[innerChannel], i]));
201
- grouped.forEach(([k, items], i) => {
208
+ grouped.forEach(([_k, items], i) => {
202
209
  const groupValue = sum(items, (d) => resolveProp(d[value], d));
203
210
  const o1 = outerPos, o2 = outerPos + groupValue;
204
211
  outerPos = o2;
205
212
  let innerPos = 0;
206
213
  (i
207
- ? items.sort((a, b) => innerOrder.get(a[innerChannel]) - innerOrder.get(b[innerChannel]))
214
+ ? items.sort((a, b) => (innerOrder.get(a[innerChannel]) ?? 0) -
215
+ (innerOrder.get(b[innerChannel]) ?? 0))
208
216
  : items).forEach((d) => {
209
217
  const iv = resolveProp(d[value], d);
210
218
  const i1 = innerPos, i2 = innerPos + iv;
@@ -237,9 +245,17 @@ function stackMosaic({ data, x, y, value, fx, fy, ...rest }, { outer, inner }, {
237
245
  y2: S.y2
238
246
  };
239
247
  }
248
+ /**
249
+ * creates a mosaic layout with the outer (width) dimension along x and
250
+ * the inner (height) dimension along y
251
+ */
240
252
  export function stackMosaicX(args, opts) {
241
253
  return stackMosaic(args, { outer: 'x', inner: 'y' }, opts);
242
254
  }
255
+ /**
256
+ * creates a mosaic layout with the outer (height) dimension along y and
257
+ * the inner (width) dimension along x
258
+ */
243
259
  export function stackMosaicY(args, opts) {
244
260
  return stackMosaic(args, { outer: 'y', inner: 'x' }, opts);
245
261
  }
@@ -1,12 +1,21 @@
1
1
  import { type ReducerName } from '../helpers/reduce.js';
2
2
  import type { DataRecord, TransformArg } from '../types/index.js';
3
- type WindowOptions = {
3
+ export type WindowAnchor = 'start' | 'middle' | 'end';
4
+ export type WindowOptions = {
5
+ /** the window size (number of data points) */
4
6
  k: number;
5
- interval: string;
6
- anchor: 'start' | 'middle' | 'end';
7
- reduce: ReducerName;
8
- strict: boolean;
7
+ /** a time interval string to use instead of a fixed window size */
8
+ interval?: string;
9
+ /** where to align the window relative to the current data point */
10
+ anchor?: WindowAnchor;
11
+ /** the reducer function to apply within each window (e.g. "mean", "median", "sum") */
12
+ reduce?: ReducerName;
13
+ /** if true, return null when the window has fewer than k values */
14
+ strict?: boolean | number;
9
15
  };
16
+ /**
17
+ * applies a sliding window reducer to the x channel
18
+ */
10
19
  export declare function windowX(args: TransformArg<DataRecord>, options: WindowOptions): {
11
20
  filter?: import("../types/index.js").ConstantAccessor<boolean, Record<string | symbol, import("../types/data.js").RawValue>>;
12
21
  facet?: "auto" | "include" | "exclude" | undefined;
@@ -18,6 +27,16 @@ export declare function windowX(args: TransformArg<DataRecord>, options: WindowO
18
27
  dodgeY?: import("./dodge.js").DodgeYOptions | undefined;
19
28
  fill?: import("../types/channel.js").ChannelAccessor<Record<string | symbol, import("../types/data.js").RawValue>>;
20
29
  fillOpacity?: import("../types/index.js").ConstantAccessor<number, Record<string | symbol, import("../types/data.js").RawValue>>;
30
+ fontFamily?: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontFamily, Record<string | symbol, import("../types/data.js").RawValue>>;
31
+ 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", Record<string | symbol, import("../types/data.js").RawValue>>;
32
+ fontStyle?: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontStyle, Record<string | symbol, import("../types/data.js").RawValue>>;
33
+ fontVariant?: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontVariant, Record<string | symbol, import("../types/data.js").RawValue>>;
34
+ fontWeight?: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontWeight, Record<string | symbol, import("../types/data.js").RawValue>>;
35
+ letterSpacing?: import("../types/index.js").ConstantAccessor<import("csstype").Property.LetterSpacing<0 | (string & {})>, Record<string | symbol, import("../types/data.js").RawValue>>;
36
+ wordSpacing?: import("../types/index.js").ConstantAccessor<import("csstype").Property.WordSpacing<0 | (string & {})>, Record<string | symbol, import("../types/data.js").RawValue>>;
37
+ textAnchor?: import("../types/index.js").ConstantAccessor<import("csstype").Property.TextAnchor, Record<string | symbol, import("../types/data.js").RawValue>>;
38
+ textTransform?: import("../types/index.js").ConstantAccessor<import("csstype").Property.TextTransform, Record<string | symbol, import("../types/data.js").RawValue>>;
39
+ textDecoration?: import("../types/index.js").ConstantAccessor<import("csstype").Property.TextDecoration<0 | (string & {})>, Record<string | symbol, import("../types/data.js").RawValue>>;
21
40
  sort?: ((a: import("../types/data.js").RawValue, b: import("../types/data.js").RawValue) => number) | {
22
41
  channel: string;
23
42
  order?: "ascending" | "descending";
@@ -31,50 +50,115 @@ export declare function windowX(args: TransformArg<DataRecord>, options: WindowO
31
50
  opacity?: import("../types/channel.js").ChannelAccessor<Record<string | symbol, import("../types/data.js").RawValue>>;
32
51
  strokeDasharray?: import("../types/index.js").ConstantAccessor<string, Record<string | symbol, import("../types/data.js").RawValue>>;
33
52
  strokeDashoffset?: import("../types/index.js").ConstantAccessor<number, Record<string | symbol, import("../types/data.js").RawValue>>;
53
+ blend?: import("../types/index.js").ConstantAccessor<import("csstype").Property.MixBlendMode, Record<string | symbol, import("../types/data.js").RawValue>>;
34
54
  mixBlendMode?: import("../types/index.js").ConstantAccessor<import("csstype").Property.MixBlendMode, Record<string | symbol, import("../types/data.js").RawValue>>;
35
55
  clipPath?: string | undefined;
36
56
  mask?: string | undefined;
37
57
  imageFilter?: import("../types/index.js").ConstantAccessor<string, Record<string | symbol, import("../types/data.js").RawValue>>;
38
58
  shapeRendering?: import("../types/index.js").ConstantAccessor<import("csstype").Property.ShapeRendering, Record<string | symbol, import("../types/data.js").RawValue>>;
39
59
  paintOrder?: import("../types/index.js").ConstantAccessor<string, Record<string | symbol, import("../types/data.js").RawValue>>;
40
- onclick?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
41
- ondblclick?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
42
- onmouseup?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
43
- onmousedown?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
44
- onmouseenter?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
45
- onmousemove?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
46
- onmouseleave?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
47
- onmouseout?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
48
- onmouseover?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
49
- onpointercancel?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
50
- onpointerdown?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
51
- onpointerup?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
52
- onpointerenter?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
53
- onpointerleave?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
54
- onpointermove?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
55
- onpointerover?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
56
- onpointerout?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
57
- ondrag?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
58
- ondrop?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
59
- ondragstart?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
60
- ondragenter?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
61
- ondragleave?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
62
- ondragover?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
63
- ondragend?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
64
- ontouchstart?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
65
- ontouchmove?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
66
- ontouchend?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
67
- ontouchcancel?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
68
- oncontextmenu?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
69
- onwheel?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
60
+ onclick?: ((event: Event & {
61
+ currentTarget: SVGPathElement;
62
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
63
+ ondblclick?: ((event: Event & {
64
+ currentTarget: SVGPathElement;
65
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
66
+ onmouseup?: ((event: Event & {
67
+ currentTarget: SVGPathElement;
68
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
69
+ onmousedown?: ((event: Event & {
70
+ currentTarget: SVGPathElement;
71
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
72
+ onmouseenter?: ((event: Event & {
73
+ currentTarget: SVGPathElement;
74
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
75
+ onmousemove?: ((event: Event & {
76
+ currentTarget: SVGPathElement;
77
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
78
+ onmouseleave?: ((event: Event & {
79
+ currentTarget: SVGPathElement;
80
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
81
+ onmouseout?: ((event: Event & {
82
+ currentTarget: SVGPathElement;
83
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
84
+ onmouseover?: ((event: Event & {
85
+ currentTarget: SVGPathElement;
86
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
87
+ onpointercancel?: ((event: Event & {
88
+ currentTarget: SVGPathElement;
89
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
90
+ onpointerdown?: ((event: Event & {
91
+ currentTarget: SVGPathElement;
92
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
93
+ onpointerup?: ((event: Event & {
94
+ currentTarget: SVGPathElement;
95
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
96
+ onpointerenter?: ((event: Event & {
97
+ currentTarget: SVGPathElement;
98
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
99
+ onpointerleave?: ((event: Event & {
100
+ currentTarget: SVGPathElement;
101
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
102
+ onpointermove?: ((event: Event & {
103
+ currentTarget: SVGPathElement;
104
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
105
+ onpointerover?: ((event: Event & {
106
+ currentTarget: SVGPathElement;
107
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
108
+ onpointerout?: ((event: Event & {
109
+ currentTarget: SVGPathElement;
110
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
111
+ ondrag?: ((event: Event & {
112
+ currentTarget: SVGPathElement;
113
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
114
+ ondrop?: ((event: Event & {
115
+ currentTarget: SVGPathElement;
116
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
117
+ ondragstart?: ((event: Event & {
118
+ currentTarget: SVGPathElement;
119
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
120
+ ondragenter?: ((event: Event & {
121
+ currentTarget: SVGPathElement;
122
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
123
+ ondragleave?: ((event: Event & {
124
+ currentTarget: SVGPathElement;
125
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
126
+ ondragover?: ((event: Event & {
127
+ currentTarget: SVGPathElement;
128
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
129
+ ondragend?: ((event: Event & {
130
+ currentTarget: SVGPathElement;
131
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
132
+ ontouchstart?: ((event: Event & {
133
+ currentTarget: SVGPathElement;
134
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
135
+ ontouchmove?: ((event: Event & {
136
+ currentTarget: SVGPathElement;
137
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
138
+ ontouchend?: ((event: Event & {
139
+ currentTarget: SVGPathElement;
140
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
141
+ ontouchcancel?: ((event: Event & {
142
+ currentTarget: SVGPathElement;
143
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
144
+ oncontextmenu?: ((event: Event & {
145
+ currentTarget: SVGPathElement;
146
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
147
+ onwheel?: ((event: Event & {
148
+ currentTarget: SVGPathElement;
149
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
70
150
  class?: string | undefined;
71
151
  style?: string | undefined;
72
152
  cursor?: import("../types/index.js").ConstantAccessor<import("csstype").Property.Cursor, Record<string | symbol, import("../types/data.js").RawValue>>;
153
+ title?: import("../types/index.js").ConstantAccessor<string, Record<string | symbol, import("../types/data.js").RawValue>>;
73
154
  data: {
74
155
  [x: string]: import("../types/data.js").RawValue;
75
156
  [x: symbol]: import("../types/data.js").RawValue;
76
157
  }[];
77
158
  };
159
+ /**
160
+ * applies a sliding window reducer to the y channel
161
+ */
78
162
  export declare function windowY(args: TransformArg<DataRecord>, options: WindowOptions): {
79
163
  filter?: import("../types/index.js").ConstantAccessor<boolean, Record<string | symbol, import("../types/data.js").RawValue>>;
80
164
  facet?: "auto" | "include" | "exclude" | undefined;
@@ -86,6 +170,16 @@ export declare function windowY(args: TransformArg<DataRecord>, options: WindowO
86
170
  dodgeY?: import("./dodge.js").DodgeYOptions | undefined;
87
171
  fill?: import("../types/channel.js").ChannelAccessor<Record<string | symbol, import("../types/data.js").RawValue>>;
88
172
  fillOpacity?: import("../types/index.js").ConstantAccessor<number, Record<string | symbol, import("../types/data.js").RawValue>>;
173
+ fontFamily?: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontFamily, Record<string | symbol, import("../types/data.js").RawValue>>;
174
+ 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", Record<string | symbol, import("../types/data.js").RawValue>>;
175
+ fontStyle?: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontStyle, Record<string | symbol, import("../types/data.js").RawValue>>;
176
+ fontVariant?: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontVariant, Record<string | symbol, import("../types/data.js").RawValue>>;
177
+ fontWeight?: import("../types/index.js").ConstantAccessor<import("csstype").Property.FontWeight, Record<string | symbol, import("../types/data.js").RawValue>>;
178
+ letterSpacing?: import("../types/index.js").ConstantAccessor<import("csstype").Property.LetterSpacing<0 | (string & {})>, Record<string | symbol, import("../types/data.js").RawValue>>;
179
+ wordSpacing?: import("../types/index.js").ConstantAccessor<import("csstype").Property.WordSpacing<0 | (string & {})>, Record<string | symbol, import("../types/data.js").RawValue>>;
180
+ textAnchor?: import("../types/index.js").ConstantAccessor<import("csstype").Property.TextAnchor, Record<string | symbol, import("../types/data.js").RawValue>>;
181
+ textTransform?: import("../types/index.js").ConstantAccessor<import("csstype").Property.TextTransform, Record<string | symbol, import("../types/data.js").RawValue>>;
182
+ textDecoration?: import("../types/index.js").ConstantAccessor<import("csstype").Property.TextDecoration<0 | (string & {})>, Record<string | symbol, import("../types/data.js").RawValue>>;
89
183
  sort?: ((a: import("../types/data.js").RawValue, b: import("../types/data.js").RawValue) => number) | {
90
184
  channel: string;
91
185
  order?: "ascending" | "descending";
@@ -99,48 +193,109 @@ export declare function windowY(args: TransformArg<DataRecord>, options: WindowO
99
193
  opacity?: import("../types/channel.js").ChannelAccessor<Record<string | symbol, import("../types/data.js").RawValue>>;
100
194
  strokeDasharray?: import("../types/index.js").ConstantAccessor<string, Record<string | symbol, import("../types/data.js").RawValue>>;
101
195
  strokeDashoffset?: import("../types/index.js").ConstantAccessor<number, Record<string | symbol, import("../types/data.js").RawValue>>;
196
+ blend?: import("../types/index.js").ConstantAccessor<import("csstype").Property.MixBlendMode, Record<string | symbol, import("../types/data.js").RawValue>>;
102
197
  mixBlendMode?: import("../types/index.js").ConstantAccessor<import("csstype").Property.MixBlendMode, Record<string | symbol, import("../types/data.js").RawValue>>;
103
198
  clipPath?: string | undefined;
104
199
  mask?: string | undefined;
105
200
  imageFilter?: import("../types/index.js").ConstantAccessor<string, Record<string | symbol, import("../types/data.js").RawValue>>;
106
201
  shapeRendering?: import("../types/index.js").ConstantAccessor<import("csstype").Property.ShapeRendering, Record<string | symbol, import("../types/data.js").RawValue>>;
107
202
  paintOrder?: import("../types/index.js").ConstantAccessor<string, Record<string | symbol, import("../types/data.js").RawValue>>;
108
- onclick?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
109
- ondblclick?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
110
- onmouseup?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
111
- onmousedown?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
112
- onmouseenter?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
113
- onmousemove?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
114
- onmouseleave?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
115
- onmouseout?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
116
- onmouseover?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
117
- onpointercancel?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
118
- onpointerdown?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
119
- onpointerup?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
120
- onpointerenter?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
121
- onpointerleave?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
122
- onpointermove?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
123
- onpointerover?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
124
- onpointerout?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
125
- ondrag?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
126
- ondrop?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
127
- ondragstart?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
128
- ondragenter?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
129
- ondragleave?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
130
- ondragover?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
131
- ondragend?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
132
- ontouchstart?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
133
- ontouchmove?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
134
- ontouchend?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
135
- ontouchcancel?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
136
- oncontextmenu?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
137
- onwheel?: import("svelte/elements").MouseEventHandler<SVGPathElement> | undefined;
203
+ onclick?: ((event: Event & {
204
+ currentTarget: SVGPathElement;
205
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
206
+ ondblclick?: ((event: Event & {
207
+ currentTarget: SVGPathElement;
208
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
209
+ onmouseup?: ((event: Event & {
210
+ currentTarget: SVGPathElement;
211
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
212
+ onmousedown?: ((event: Event & {
213
+ currentTarget: SVGPathElement;
214
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
215
+ onmouseenter?: ((event: Event & {
216
+ currentTarget: SVGPathElement;
217
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
218
+ onmousemove?: ((event: Event & {
219
+ currentTarget: SVGPathElement;
220
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
221
+ onmouseleave?: ((event: Event & {
222
+ currentTarget: SVGPathElement;
223
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
224
+ onmouseout?: ((event: Event & {
225
+ currentTarget: SVGPathElement;
226
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
227
+ onmouseover?: ((event: Event & {
228
+ currentTarget: SVGPathElement;
229
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
230
+ onpointercancel?: ((event: Event & {
231
+ currentTarget: SVGPathElement;
232
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
233
+ onpointerdown?: ((event: Event & {
234
+ currentTarget: SVGPathElement;
235
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
236
+ onpointerup?: ((event: Event & {
237
+ currentTarget: SVGPathElement;
238
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
239
+ onpointerenter?: ((event: Event & {
240
+ currentTarget: SVGPathElement;
241
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
242
+ onpointerleave?: ((event: Event & {
243
+ currentTarget: SVGPathElement;
244
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
245
+ onpointermove?: ((event: Event & {
246
+ currentTarget: SVGPathElement;
247
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
248
+ onpointerover?: ((event: Event & {
249
+ currentTarget: SVGPathElement;
250
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
251
+ onpointerout?: ((event: Event & {
252
+ currentTarget: SVGPathElement;
253
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
254
+ ondrag?: ((event: Event & {
255
+ currentTarget: SVGPathElement;
256
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
257
+ ondrop?: ((event: Event & {
258
+ currentTarget: SVGPathElement;
259
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
260
+ ondragstart?: ((event: Event & {
261
+ currentTarget: SVGPathElement;
262
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
263
+ ondragenter?: ((event: Event & {
264
+ currentTarget: SVGPathElement;
265
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
266
+ ondragleave?: ((event: Event & {
267
+ currentTarget: SVGPathElement;
268
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
269
+ ondragover?: ((event: Event & {
270
+ currentTarget: SVGPathElement;
271
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
272
+ ondragend?: ((event: Event & {
273
+ currentTarget: SVGPathElement;
274
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
275
+ ontouchstart?: ((event: Event & {
276
+ currentTarget: SVGPathElement;
277
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
278
+ ontouchmove?: ((event: Event & {
279
+ currentTarget: SVGPathElement;
280
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
281
+ ontouchend?: ((event: Event & {
282
+ currentTarget: SVGPathElement;
283
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
284
+ ontouchcancel?: ((event: Event & {
285
+ currentTarget: SVGPathElement;
286
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
287
+ oncontextmenu?: ((event: Event & {
288
+ currentTarget: SVGPathElement;
289
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
290
+ onwheel?: ((event: Event & {
291
+ currentTarget: SVGPathElement;
292
+ }, datum: Record<string | symbol, import("../types/data.js").RawValue>, index: number) => void) | undefined;
138
293
  class?: string | undefined;
139
294
  style?: string | undefined;
140
295
  cursor?: import("../types/index.js").ConstantAccessor<import("csstype").Property.Cursor, Record<string | symbol, import("../types/data.js").RawValue>>;
296
+ title?: import("../types/index.js").ConstantAccessor<string, Record<string | symbol, import("../types/data.js").RawValue>>;
141
297
  data: {
142
298
  [x: string]: import("../types/data.js").RawValue;
143
299
  [x: symbol]: import("../types/data.js").RawValue;
144
300
  }[];
145
301
  };
146
- export {};
@@ -3,16 +3,22 @@ import { isValid } from '../helpers/index.js';
3
3
  import { mayberReducer } from '../helpers/reduce.js';
4
4
  import { resolveChannel } from '../helpers/resolve.js';
5
5
  import { groups as d3Groups } from 'd3-array';
6
+ /**
7
+ * applies a sliding window reducer to the x channel
8
+ */
6
9
  export function windowX(args, options) {
7
10
  return windowDim('x', args, options);
8
11
  }
12
+ /**
13
+ * applies a sliding window reducer to the y channel
14
+ */
9
15
  export function windowY(args, options) {
10
16
  return windowDim('y', args, options);
11
17
  }
12
18
  function windowDim(dim, { data, ...channels }, options) {
13
19
  const { anchor = 'middle', reduce = 'mean', strict = false } = options;
14
- let { k, interval } = options;
15
- interval = maybeInterval(interval, 'time');
20
+ let { k } = options;
21
+ const interval = options.interval ? maybeInterval(options.interval) : undefined;
16
22
  // we only change the data, but not the
17
23
  if (!((k = Math.floor(k)) > 0))
18
24
  throw new Error(`invalid k: ${k}`);
@@ -0,0 +1,43 @@
1
+ import type * as CSS from 'csstype';
2
+ import type { ChannelAccessor, ConstantAccessor, DataRecord, RawValue } from './index.js';
3
+ export type AxisTextAnchor = 'start' | 'middle' | 'end';
4
+ export type AxisTickDatum<TKeyRaw extends symbol = symbol, TKeyIndex extends symbol = symbol> = DataRecord & {
5
+ [K in TKeyRaw]: RawValue;
6
+ } & {
7
+ [K in TKeyIndex]: number;
8
+ };
9
+ export type AxisXTick<TDatum extends DataRecord = DataRecord> = TDatum & {
10
+ hidden: boolean;
11
+ dx: number;
12
+ dy: number;
13
+ x: number;
14
+ text: string[];
15
+ element: SVGTextElement | null;
16
+ };
17
+ export type AxisYTick<TDatum extends DataRecord = DataRecord> = TDatum & {
18
+ hidden: boolean;
19
+ dx: number;
20
+ dy: number;
21
+ y: number;
22
+ text: string | string[];
23
+ element: SVGTextElement | null;
24
+ };
25
+ export type BaseAxisXOptions = Record<string | symbol, any> & {
26
+ dx?: ConstantAccessor<number>;
27
+ dy?: ConstantAccessor<number>;
28
+ filter?: ChannelAccessor;
29
+ wordwrap?: boolean;
30
+ fontWeight?: ConstantAccessor<CSS.Property.FontWeight>;
31
+ textAnchor?: ConstantAccessor<AxisTextAnchor> | 'auto';
32
+ removeDuplicateTicks?: boolean;
33
+ anchor?: ConstantAccessor<'start' | 'end'>;
34
+ style?: string;
35
+ };
36
+ export type BaseAxisYOptions = Record<string | symbol, any> & {
37
+ dx?: ConstantAccessor<number>;
38
+ dy?: ConstantAccessor<number>;
39
+ filter?: ChannelAccessor;
40
+ fontWeight?: ConstantAccessor<CSS.Property.FontWeight>;
41
+ textAnchor?: ConstantAccessor<AxisTextAnchor>;
42
+ style?: string;
43
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,12 +1,40 @@
1
1
  import type { ConstantAccessor, RawValue } from './index.js';
2
- export type Channels<T> = Record<string | symbol, ChannelAccessor<T> | ConstantAccessor<T, string | number | boolean | symbol>>;
2
+ /** a partial record of channel names to their accessor definitions */
3
+ export type Channels<T = Record<string | symbol, RawValue>> = Partial<Record<string | symbol, ChannelAccessor<T> | ConstantAccessor<RawValue, T>>>;
4
+ type BivariantCallback<TArgs extends unknown[], TResult> = {
5
+ bivarianceHack(...args: TArgs): TResult;
6
+ }['bivarianceHack'];
7
+ /** channel accessor callback receiving a typed datum */
8
+ export type ChannelValueAccessor<T = Record<string | symbol, RawValue>> = BivariantCallback<[
9
+ d: T,
10
+ index: number
11
+ ], RawValue>;
12
+ /** plain objects are allowed as constants, except accessor option objects with `value`/`scale` keys */
13
+ export type ChannelConstantObject = object & {
14
+ value?: never;
15
+ scale?: never;
16
+ };
17
+ /** constant channel values (non-accessor) */
18
+ export type ChannelConstantValue = Exclude<RawValue, object> | Date | ChannelConstantObject | null | undefined;
19
+ /**
20
+ * a channel accessor: either a simple channel value, or an object with
21
+ * a value and an optional scale override
22
+ */
3
23
  export type ChannelAccessor<T = Record<string | symbol, RawValue>> = ChannelValue<T> | {
4
24
  /** the channel value */
5
25
  value: ChannelValue<T>;
6
26
  /** you can bypass the scale by passing null */
7
27
  scale: boolean | null;
8
28
  };
9
- export type ChannelValue<T = Record<string | symbol, RawValue>> = RawValue | keyof T | ((d: T, index: number) => RawValue) | null | undefined;
29
+ /**
30
+ * the value for a channel: a constant, a data field name, an accessor
31
+ * function, or null/undefined to leave the channel unset
32
+ */
33
+ export type ChannelValue<T = Record<string | symbol, RawValue>> = ChannelConstantValue | keyof T | ChannelValueAccessor<T> | null | undefined;
34
+ /** the name of a channel that is bound to a scale */
10
35
  export type ScaledChannelName = 'fill' | 'fillOpacity' | 'opacity' | 'r' | 'length' | 'stroke' | 'strokeOpacity' | 'symbol' | 'fx' | 'fy' | 'x' | 'x1' | 'x2' | 'y' | 'y1' | 'y2';
36
+ /** maps a scaled channel name to its output type (string for color/symbol, number otherwise) */
11
37
  export type ScaledChannelType<T extends ScaledChannelName> = T extends 'fill' | 'stroke' | 'symbol' ? string : number;
38
+ /** all channel names, including non-scaled channels like z, sort, filter, and interval */
12
39
  export type ChannelName = ScaledChannelName | 'z' | 'sort' | 'filter' | 'interval';
40
+ export {};