svelteplot 0.10.3-pr-398.3 → 0.10.3-pr-402.1

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 (71) hide show
  1. package/dist/Mark.svelte.d.ts +41 -30
  2. package/dist/helpers/autoTicks.js +1 -3
  3. package/dist/helpers/facets.js +0 -1
  4. package/dist/helpers/mergeDeep.d.ts +1 -3
  5. package/dist/helpers/mergeDeep.js +15 -16
  6. package/dist/marks/Area.svelte +1 -1
  7. package/dist/marks/Area.svelte.d.ts +42 -31
  8. package/dist/marks/AreaX.svelte +36 -8
  9. package/dist/marks/AreaX.svelte.d.ts +87 -71
  10. package/dist/marks/AreaY.svelte +36 -8
  11. package/dist/marks/AreaY.svelte.d.ts +87 -71
  12. package/dist/marks/Arrow.svelte.d.ts +41 -30
  13. package/dist/marks/AxisX.svelte.d.ts +41 -30
  14. package/dist/marks/AxisY.svelte.d.ts +41 -30
  15. package/dist/marks/BarX.svelte.d.ts +41 -30
  16. package/dist/marks/BarY.svelte.d.ts +41 -30
  17. package/dist/marks/BollingerX.svelte.d.ts +41 -30
  18. package/dist/marks/BollingerY.svelte.d.ts +41 -30
  19. package/dist/marks/BoxY.svelte +5 -5
  20. package/dist/marks/BoxY.svelte.d.ts +46 -35
  21. package/dist/marks/Brush.svelte.d.ts +41 -30
  22. package/dist/marks/Cell.svelte.d.ts +41 -30
  23. package/dist/marks/CellX.svelte.d.ts +41 -30
  24. package/dist/marks/CellY.svelte.d.ts +41 -30
  25. package/dist/marks/CustomMark.svelte.d.ts +41 -30
  26. package/dist/marks/DifferenceY.svelte +8 -7
  27. package/dist/marks/DifferenceY.svelte.d.ts +66 -55
  28. package/dist/marks/Dot.svelte +3 -3
  29. package/dist/marks/Dot.svelte.d.ts +44 -33
  30. package/dist/marks/DotX.svelte.d.ts +44 -33
  31. package/dist/marks/DotY.svelte.d.ts +44 -33
  32. package/dist/marks/Frame.svelte.d.ts +41 -30
  33. package/dist/marks/Geo.svelte.d.ts +41 -30
  34. package/dist/marks/GridX.svelte.d.ts +41 -30
  35. package/dist/marks/GridY.svelte.d.ts +41 -30
  36. package/dist/marks/Image.svelte.d.ts +41 -30
  37. package/dist/marks/Line.svelte.d.ts +41 -30
  38. package/dist/marks/LineX.svelte.d.ts +41 -30
  39. package/dist/marks/LineY.svelte.d.ts +41 -30
  40. package/dist/marks/Link.svelte +21 -7
  41. package/dist/marks/Link.svelte.d.ts +57 -36
  42. package/dist/marks/Rect.svelte +1 -1
  43. package/dist/marks/Rect.svelte.d.ts +42 -31
  44. package/dist/marks/RuleX.svelte.d.ts +41 -30
  45. package/dist/marks/RuleY.svelte.d.ts +41 -30
  46. package/dist/marks/Spike.svelte +3 -3
  47. package/dist/marks/Spike.svelte.d.ts +44 -33
  48. package/dist/marks/Text.svelte +4 -1
  49. package/dist/marks/Text.svelte.d.ts +88 -62
  50. package/dist/marks/TickX.svelte.d.ts +41 -30
  51. package/dist/marks/TickY.svelte.d.ts +41 -30
  52. package/dist/marks/Trail.svelte.d.ts +41 -30
  53. package/dist/marks/Vector.svelte.d.ts +41 -30
  54. package/dist/marks/WaffleX.svelte.d.ts +41 -30
  55. package/dist/marks/WaffleY.svelte.d.ts +41 -30
  56. package/dist/marks/helpers/Box.svelte.d.ts +41 -30
  57. package/dist/marks/helpers/MarkerPath.svelte.d.ts +41 -30
  58. package/dist/transforms/density.d.ts +3 -4
  59. package/dist/transforms/density.js +5 -2
  60. package/dist/transforms/group.d.ts +41 -30
  61. package/dist/transforms/interval.d.ts +82 -60
  62. package/dist/transforms/jitter.d.ts +123 -90
  63. package/dist/transforms/select.d.ts +287 -210
  64. package/dist/transforms/sort.d.ts +164 -120
  65. package/dist/transforms/window.d.ts +86 -64
  66. package/dist/types/channel.d.ts +11 -2
  67. package/dist/types/index.d.ts +1 -0
  68. package/dist/types/index.js +1 -0
  69. package/dist/types/mark.d.ts +56 -34
  70. package/dist/types/scale.d.ts +4 -3
  71. package/package.json +1 -1
@@ -13,6 +13,16 @@ declare function $$render<Datum extends DataRecord>(): {
13
13
  dodgeY: import("./transforms/dodge.js").DodgeYOptions;
14
14
  fill: ChannelAccessor<Datum>;
15
15
  fillOpacity: import("./types/index.js").ConstantAccessor<number, Datum>;
16
+ fontFamily: import("./types/index.js").ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
17
+ fontSize: import("./types/index.js").ConstantAccessor<number | "-moz-initial" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | "math" | (string & {}) | "large" | "medium" | "small" | "x-large" | "x-small" | "xx-large" | "xx-small" | "xxx-large" | "larger" | "smaller", Datum>;
18
+ fontStyle: import("./types/index.js").ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
19
+ fontVariant: import("./types/index.js").ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
20
+ fontWeight: import("./types/index.js").ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
21
+ letterSpacing: import("./types/index.js").ConstantAccessor<import("csstype").Property.LetterSpacing<0 | (string & {})>, Datum>;
22
+ wordSpacing: import("./types/index.js").ConstantAccessor<import("csstype").Property.WordSpacing<0 | (string & {})>, Datum>;
23
+ textAnchor: import("./types/index.js").ConstantAccessor<import("csstype").Property.TextAnchor, Datum>;
24
+ textTransform: import("./types/index.js").ConstantAccessor<import("csstype").Property.TextTransform, Datum>;
25
+ textDecoration: import("./types/index.js").ConstantAccessor<import("csstype").Property.TextDecoration<0 | (string & {})>, Datum>;
16
26
  sort: ((a: RawValue, b: RawValue) => number) | {
17
27
  channel: string;
18
28
  order?: "ascending" | "descending";
@@ -26,6 +36,7 @@ declare function $$render<Datum extends DataRecord>(): {
26
36
  opacity: ChannelAccessor<Datum>;
27
37
  strokeDasharray: import("./types/index.js").ConstantAccessor<string, Datum>;
28
38
  strokeDashoffset: import("./types/index.js").ConstantAccessor<number, Datum>;
39
+ blend: import("./types/index.js").ConstantAccessor<import("csstype").Property.MixBlendMode, Datum>;
29
40
  mixBlendMode: import("./types/index.js").ConstantAccessor<import("csstype").Property.MixBlendMode, Datum>;
30
41
  clipPath: string;
31
42
  mask: string;
@@ -34,94 +45,94 @@ declare function $$render<Datum extends DataRecord>(): {
34
45
  paintOrder: import("./types/index.js").ConstantAccessor<string, Datum>;
35
46
  onclick: (event: Event & {
36
47
  currentTarget: SVGPathElement;
37
- }, datum?: unknown, index?: number) => void;
48
+ }, datum: Datum, index: number) => void;
38
49
  ondblclick: (event: Event & {
39
50
  currentTarget: SVGPathElement;
40
- }, datum?: unknown, index?: number) => void;
51
+ }, datum: Datum, index: number) => void;
41
52
  onmouseup: (event: Event & {
42
53
  currentTarget: SVGPathElement;
43
- }, datum?: unknown, index?: number) => void;
54
+ }, datum: Datum, index: number) => void;
44
55
  onmousedown: (event: Event & {
45
56
  currentTarget: SVGPathElement;
46
- }, datum?: unknown, index?: number) => void;
57
+ }, datum: Datum, index: number) => void;
47
58
  onmouseenter: (event: Event & {
48
59
  currentTarget: SVGPathElement;
49
- }, datum?: unknown, index?: number) => void;
60
+ }, datum: Datum, index: number) => void;
50
61
  onmousemove: (event: Event & {
51
62
  currentTarget: SVGPathElement;
52
- }, datum?: unknown, index?: number) => void;
63
+ }, datum: Datum, index: number) => void;
53
64
  onmouseleave: (event: Event & {
54
65
  currentTarget: SVGPathElement;
55
- }, datum?: unknown, index?: number) => void;
66
+ }, datum: Datum, index: number) => void;
56
67
  onmouseout: (event: Event & {
57
68
  currentTarget: SVGPathElement;
58
- }, datum?: unknown, index?: number) => void;
69
+ }, datum: Datum, index: number) => void;
59
70
  onmouseover: (event: Event & {
60
71
  currentTarget: SVGPathElement;
61
- }, datum?: unknown, index?: number) => void;
72
+ }, datum: Datum, index: number) => void;
62
73
  onpointercancel: (event: Event & {
63
74
  currentTarget: SVGPathElement;
64
- }, datum?: unknown, index?: number) => void;
75
+ }, datum: Datum, index: number) => void;
65
76
  onpointerdown: (event: Event & {
66
77
  currentTarget: SVGPathElement;
67
- }, datum?: unknown, index?: number) => void;
78
+ }, datum: Datum, index: number) => void;
68
79
  onpointerup: (event: Event & {
69
80
  currentTarget: SVGPathElement;
70
- }, datum?: unknown, index?: number) => void;
81
+ }, datum: Datum, index: number) => void;
71
82
  onpointerenter: (event: Event & {
72
83
  currentTarget: SVGPathElement;
73
- }, datum?: unknown, index?: number) => void;
84
+ }, datum: Datum, index: number) => void;
74
85
  onpointerleave: (event: Event & {
75
86
  currentTarget: SVGPathElement;
76
- }, datum?: unknown, index?: number) => void;
87
+ }, datum: Datum, index: number) => void;
77
88
  onpointermove: (event: Event & {
78
89
  currentTarget: SVGPathElement;
79
- }, datum?: unknown, index?: number) => void;
90
+ }, datum: Datum, index: number) => void;
80
91
  onpointerover: (event: Event & {
81
92
  currentTarget: SVGPathElement;
82
- }, datum?: unknown, index?: number) => void;
93
+ }, datum: Datum, index: number) => void;
83
94
  onpointerout: (event: Event & {
84
95
  currentTarget: SVGPathElement;
85
- }, datum?: unknown, index?: number) => void;
96
+ }, datum: Datum, index: number) => void;
86
97
  ondrag: (event: Event & {
87
98
  currentTarget: SVGPathElement;
88
- }, datum?: unknown, index?: number) => void;
99
+ }, datum: Datum, index: number) => void;
89
100
  ondrop: (event: Event & {
90
101
  currentTarget: SVGPathElement;
91
- }, datum?: unknown, index?: number) => void;
102
+ }, datum: Datum, index: number) => void;
92
103
  ondragstart: (event: Event & {
93
104
  currentTarget: SVGPathElement;
94
- }, datum?: unknown, index?: number) => void;
105
+ }, datum: Datum, index: number) => void;
95
106
  ondragenter: (event: Event & {
96
107
  currentTarget: SVGPathElement;
97
- }, datum?: unknown, index?: number) => void;
108
+ }, datum: Datum, index: number) => void;
98
109
  ondragleave: (event: Event & {
99
110
  currentTarget: SVGPathElement;
100
- }, datum?: unknown, index?: number) => void;
111
+ }, datum: Datum, index: number) => void;
101
112
  ondragover: (event: Event & {
102
113
  currentTarget: SVGPathElement;
103
- }, datum?: unknown, index?: number) => void;
114
+ }, datum: Datum, index: number) => void;
104
115
  ondragend: (event: Event & {
105
116
  currentTarget: SVGPathElement;
106
- }, datum?: unknown, index?: number) => void;
117
+ }, datum: Datum, index: number) => void;
107
118
  ontouchstart: (event: Event & {
108
119
  currentTarget: SVGPathElement;
109
- }, datum?: unknown, index?: number) => void;
120
+ }, datum: Datum, index: number) => void;
110
121
  ontouchmove: (event: Event & {
111
122
  currentTarget: SVGPathElement;
112
- }, datum?: unknown, index?: number) => void;
123
+ }, datum: Datum, index: number) => void;
113
124
  ontouchend: (event: Event & {
114
125
  currentTarget: SVGPathElement;
115
- }, datum?: unknown, index?: number) => void;
126
+ }, datum: Datum, index: number) => void;
116
127
  ontouchcancel: (event: Event & {
117
128
  currentTarget: SVGPathElement;
118
- }, datum?: unknown, index?: number) => void;
129
+ }, datum: Datum, index: number) => void;
119
130
  oncontextmenu: (event: Event & {
120
131
  currentTarget: SVGPathElement;
121
- }, datum?: unknown, index?: number) => void;
132
+ }, datum: Datum, index: number) => void;
122
133
  onwheel: (event: Event & {
123
134
  currentTarget: SVGPathElement;
124
- }, datum?: unknown, index?: number) => void;
135
+ }, datum: Datum, index: number) => void;
125
136
  class: string;
126
137
  style: string;
127
138
  cursor: import("./types/index.js").ConstantAccessor<import("csstype").Property.Cursor, Datum>;
@@ -39,9 +39,7 @@ export function autoTicks(type, ticks, interval, domain, scaleFn, count) {
39
39
  const I = maybeInterval(interval);
40
40
  if (!I)
41
41
  return [];
42
- return I
43
- .range(lo, I.offset(hi))
44
- .filter((d) => d >= lo && d <= hi);
42
+ return I.range(lo, I.offset(hi)).filter((d) => d >= lo && d <= hi);
45
43
  }
46
44
  return typeof scaleFn.ticks === 'function' ? scaleFn.ticks(count) : [];
47
45
  }
@@ -46,4 +46,3 @@ export function getEmptyFacets(marks, fxValues, fyValues) {
46
46
  }
47
47
  return out;
48
48
  }
49
- // TODO: write unit tests
@@ -1,5 +1,3 @@
1
- type ObjectType = {
2
- [key: string]: any;
3
- };
1
+ type ObjectType = Record<string, unknown>;
4
2
  export default function mergeDeep<T extends ObjectType>(target: Partial<T>, ...sources: Partial<T>[]): T;
5
3
  export {};
@@ -1,25 +1,24 @@
1
1
  function isObject(item) {
2
- return item && typeof item === 'object' && !Array.isArray(item);
2
+ return item != null && typeof item === 'object' && !Array.isArray(item);
3
3
  }
4
4
  export default function mergeDeep(target, ...sources) {
5
- if (!sources.length)
6
- return target;
7
- const source = sources.shift();
8
- if (isObject(target) && isObject(source)) {
9
- for (const key in source) {
10
- if (isObject(source[key])) {
11
- if (!target[key]) {
12
- Object.assign(target, { [key]: {} });
5
+ for (const source of sources) {
6
+ if (isObject(target) && isObject(source)) {
7
+ for (const key in source) {
8
+ if (isObject(source[key])) {
9
+ if (!target[key]) {
10
+ Object.assign(target, { [key]: {} });
11
+ }
12
+ else {
13
+ target[key] = Object.assign({}, target[key]);
14
+ }
15
+ mergeDeep(target[key], source[key]);
13
16
  }
14
- else {
15
- target[key] = Object.assign({}, target[key]);
17
+ else if (source[key] !== null) {
18
+ Object.assign(target, { [key]: source[key] });
16
19
  }
17
- mergeDeep(target[key], source[key]);
18
- }
19
- else if (source[key] !== null) {
20
- Object.assign(target, { [key]: source[key] });
21
20
  }
22
21
  }
23
22
  }
24
- return mergeDeep(target, ...sources);
23
+ return target;
25
24
  }
@@ -4,7 +4,7 @@
4
4
  <script lang="ts" generics="Datum extends DataRecord">
5
5
  interface AreaMarkProps extends BaseMarkProps<Datum>, LinkableMarkProps<Datum> {
6
6
  /** the input data array; each element becomes one point in the area */
7
- data: Datum[];
7
+ data?: Datum[];
8
8
  /** the starting horizontal position channel for the area baseline */
9
9
  x1?: ChannelAccessor<Datum>;
10
10
  /** the ending horizontal position channel for the area topline */
@@ -13,6 +13,16 @@ declare function $$render<Datum extends DataRecord>(): {
13
13
  dodgeY: import("../transforms/dodge").DodgeYOptions;
14
14
  fill: ChannelAccessor<Datum>;
15
15
  fillOpacity: ConstantAccessor<number, Datum>;
16
+ fontFamily: ConstantAccessor<import("csstype").Property.FontFamily, Datum>;
17
+ 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>;
18
+ fontStyle: ConstantAccessor<import("csstype").Property.FontStyle, Datum>;
19
+ fontVariant: ConstantAccessor<import("csstype").Property.FontVariant, Datum>;
20
+ fontWeight: ConstantAccessor<import("csstype").Property.FontWeight, Datum>;
21
+ letterSpacing: ConstantAccessor<import("csstype").Property.LetterSpacing<0 | (string & {})>, Datum>;
22
+ wordSpacing: ConstantAccessor<import("csstype").Property.WordSpacing<0 | (string & {})>, Datum>;
23
+ textAnchor: ConstantAccessor<import("csstype").Property.TextAnchor, Datum>;
24
+ textTransform: ConstantAccessor<import("csstype").Property.TextTransform, Datum>;
25
+ textDecoration: ConstantAccessor<import("csstype").Property.TextDecoration<0 | (string & {})>, Datum>;
16
26
  sort: ((a: RawValue, b: RawValue) => number) | {
17
27
  channel: string;
18
28
  order?: "ascending" | "descending";
@@ -26,6 +36,7 @@ declare function $$render<Datum extends DataRecord>(): {
26
36
  opacity: ChannelAccessor<Datum>;
27
37
  strokeDasharray: ConstantAccessor<string, Datum>;
28
38
  strokeDashoffset: ConstantAccessor<number, Datum>;
39
+ blend: ConstantAccessor<import("csstype").Property.MixBlendMode, Datum>;
29
40
  mixBlendMode: ConstantAccessor<import("csstype").Property.MixBlendMode, Datum>;
30
41
  clipPath: string;
31
42
  mask: string;
@@ -34,100 +45,100 @@ declare function $$render<Datum extends DataRecord>(): {
34
45
  paintOrder: ConstantAccessor<string, Datum>;
35
46
  onclick: (event: Event & {
36
47
  currentTarget: SVGPathElement;
37
- }, datum?: unknown, index?: number) => void;
48
+ }, datum: Datum, index: number) => void;
38
49
  ondblclick: (event: Event & {
39
50
  currentTarget: SVGPathElement;
40
- }, datum?: unknown, index?: number) => void;
51
+ }, datum: Datum, index: number) => void;
41
52
  onmouseup: (event: Event & {
42
53
  currentTarget: SVGPathElement;
43
- }, datum?: unknown, index?: number) => void;
54
+ }, datum: Datum, index: number) => void;
44
55
  onmousedown: (event: Event & {
45
56
  currentTarget: SVGPathElement;
46
- }, datum?: unknown, index?: number) => void;
57
+ }, datum: Datum, index: number) => void;
47
58
  onmouseenter: (event: Event & {
48
59
  currentTarget: SVGPathElement;
49
- }, datum?: unknown, index?: number) => void;
60
+ }, datum: Datum, index: number) => void;
50
61
  onmousemove: (event: Event & {
51
62
  currentTarget: SVGPathElement;
52
- }, datum?: unknown, index?: number) => void;
63
+ }, datum: Datum, index: number) => void;
53
64
  onmouseleave: (event: Event & {
54
65
  currentTarget: SVGPathElement;
55
- }, datum?: unknown, index?: number) => void;
66
+ }, datum: Datum, index: number) => void;
56
67
  onmouseout: (event: Event & {
57
68
  currentTarget: SVGPathElement;
58
- }, datum?: unknown, index?: number) => void;
69
+ }, datum: Datum, index: number) => void;
59
70
  onmouseover: (event: Event & {
60
71
  currentTarget: SVGPathElement;
61
- }, datum?: unknown, index?: number) => void;
72
+ }, datum: Datum, index: number) => void;
62
73
  onpointercancel: (event: Event & {
63
74
  currentTarget: SVGPathElement;
64
- }, datum?: unknown, index?: number) => void;
75
+ }, datum: Datum, index: number) => void;
65
76
  onpointerdown: (event: Event & {
66
77
  currentTarget: SVGPathElement;
67
- }, datum?: unknown, index?: number) => void;
78
+ }, datum: Datum, index: number) => void;
68
79
  onpointerup: (event: Event & {
69
80
  currentTarget: SVGPathElement;
70
- }, datum?: unknown, index?: number) => void;
81
+ }, datum: Datum, index: number) => void;
71
82
  onpointerenter: (event: Event & {
72
83
  currentTarget: SVGPathElement;
73
- }, datum?: unknown, index?: number) => void;
84
+ }, datum: Datum, index: number) => void;
74
85
  onpointerleave: (event: Event & {
75
86
  currentTarget: SVGPathElement;
76
- }, datum?: unknown, index?: number) => void;
87
+ }, datum: Datum, index: number) => void;
77
88
  onpointermove: (event: Event & {
78
89
  currentTarget: SVGPathElement;
79
- }, datum?: unknown, index?: number) => void;
90
+ }, datum: Datum, index: number) => void;
80
91
  onpointerover: (event: Event & {
81
92
  currentTarget: SVGPathElement;
82
- }, datum?: unknown, index?: number) => void;
93
+ }, datum: Datum, index: number) => void;
83
94
  onpointerout: (event: Event & {
84
95
  currentTarget: SVGPathElement;
85
- }, datum?: unknown, index?: number) => void;
96
+ }, datum: Datum, index: number) => void;
86
97
  ondrag: (event: Event & {
87
98
  currentTarget: SVGPathElement;
88
- }, datum?: unknown, index?: number) => void;
99
+ }, datum: Datum, index: number) => void;
89
100
  ondrop: (event: Event & {
90
101
  currentTarget: SVGPathElement;
91
- }, datum?: unknown, index?: number) => void;
102
+ }, datum: Datum, index: number) => void;
92
103
  ondragstart: (event: Event & {
93
104
  currentTarget: SVGPathElement;
94
- }, datum?: unknown, index?: number) => void;
105
+ }, datum: Datum, index: number) => void;
95
106
  ondragenter: (event: Event & {
96
107
  currentTarget: SVGPathElement;
97
- }, datum?: unknown, index?: number) => void;
108
+ }, datum: Datum, index: number) => void;
98
109
  ondragleave: (event: Event & {
99
110
  currentTarget: SVGPathElement;
100
- }, datum?: unknown, index?: number) => void;
111
+ }, datum: Datum, index: number) => void;
101
112
  ondragover: (event: Event & {
102
113
  currentTarget: SVGPathElement;
103
- }, datum?: unknown, index?: number) => void;
114
+ }, datum: Datum, index: number) => void;
104
115
  ondragend: (event: Event & {
105
116
  currentTarget: SVGPathElement;
106
- }, datum?: unknown, index?: number) => void;
117
+ }, datum: Datum, index: number) => void;
107
118
  ontouchstart: (event: Event & {
108
119
  currentTarget: SVGPathElement;
109
- }, datum?: unknown, index?: number) => void;
120
+ }, datum: Datum, index: number) => void;
110
121
  ontouchmove: (event: Event & {
111
122
  currentTarget: SVGPathElement;
112
- }, datum?: unknown, index?: number) => void;
123
+ }, datum: Datum, index: number) => void;
113
124
  ontouchend: (event: Event & {
114
125
  currentTarget: SVGPathElement;
115
- }, datum?: unknown, index?: number) => void;
126
+ }, datum: Datum, index: number) => void;
116
127
  ontouchcancel: (event: Event & {
117
128
  currentTarget: SVGPathElement;
118
- }, datum?: unknown, index?: number) => void;
129
+ }, datum: Datum, index: number) => void;
119
130
  oncontextmenu: (event: Event & {
120
131
  currentTarget: SVGPathElement;
121
- }, datum?: unknown, index?: number) => void;
132
+ }, datum: Datum, index: number) => void;
122
133
  onwheel: (event: Event & {
123
134
  currentTarget: SVGPathElement;
124
- }, datum?: unknown, index?: number) => void;
135
+ }, datum: Datum, index: number) => void;
125
136
  class: string;
126
137
  style: string;
127
138
  cursor: ConstantAccessor<import("csstype").Property.Cursor, Datum>;
128
139
  }> & LinkableMarkProps<Datum> & {
129
140
  /** the input data array; each element becomes one point in the area */
130
- data: Datum[];
141
+ data?: Datum[];
131
142
  /** the starting horizontal position channel for the area baseline */
132
143
  x1?: ChannelAccessor<Datum>;
133
144
  /** the ending horizontal position channel for the area topline */
@@ -3,35 +3,63 @@
3
3
  stacked horizontally if just the x channel is defined.
4
4
  -->
5
5
  <script lang="ts" generics="Datum extends DataRow">
6
- interface AreaXMarkProps extends Omit<ComponentProps<typeof Area>, 'y1' | 'y2'> {
6
+ interface AreaXMarkProps extends BaseMarkProps<Datum>, LinkableMarkProps<Datum> {
7
+ /** the input data array; each element becomes one point in the area */
8
+ data?: Datum[];
7
9
  /** the horizontal position channel */
8
10
  x?: ChannelAccessor<Datum>;
9
11
  /** the vertical position channel */
10
12
  y?: ChannelAccessor<Datum>;
13
+ /** the series channel; data is grouped into separate areas by unique z values */
14
+ z?: ChannelAccessor<Datum>;
15
+ /** the curve interpolation method for connecting data points */
16
+ curve?: CurveName | CurveFactory;
17
+ /** the tension parameter for cardinal or Catmull-Rom curve interpolation */
18
+ tension?: number;
19
+ /** controls the order of data points before rendering */
20
+ sort?: ConstantAccessor<RawValue, Datum> | { channel: 'stroke' | 'fill' };
21
+ /** options for stacking area data values */
22
+ stack?: Partial<StackOptions>;
23
+ /** if true, renders using Canvas instead of SVG */
24
+ canvas?: boolean;
25
+ /** CSS class name(s) to apply to individual area path elements */
26
+ areaClass?: ConstantAccessor<string, Datum>;
11
27
  }
12
28
  import Area from './Area.svelte';
13
29
  import { renameChannels } from '../transforms/rename.js';
14
30
  import { stackX } from '../transforms/stack.js';
15
31
  import { recordizeX } from '../transforms/recordize.js';
16
- import type { ChannelAccessor, DataRow } from '../types/index.js';
17
- import { type ComponentProps } from 'svelte';
32
+ import type { CurveFactory } from 'd3-shape';
33
+ import type { StackOptions } from '../transforms/stack.js';
34
+ import type {
35
+ BaseMarkProps,
36
+ ChannelAccessor,
37
+ ConstantAccessor,
38
+ CurveName,
39
+ DataRow,
40
+ LinkableMarkProps,
41
+ RawValue
42
+ } from '../types/index.js';
18
43
  import { getPlotDefaults } from '../hooks/plotDefaults.js';
19
44
 
20
45
  let markProps: AreaXMarkProps = $props();
21
46
 
22
47
  const DEFAULTS = getPlotDefaults().areaX;
23
48
 
24
- const { data, stack, ...options }: AreaXMarkProps = $derived({
49
+ const {
50
+ data = [],
51
+ stack,
52
+ ...options
53
+ }: AreaXMarkProps = $derived({
25
54
  ...(markProps.x == undefined ? { x1: 0, x2: 0 } : {}),
26
55
  ...DEFAULTS,
27
56
  ...markProps
28
57
  });
29
58
 
30
59
  const args = $derived(
31
- renameChannels<AreaXMarkProps>(
32
- stackX(recordizeX({ data, ...options, y1: null, y2: null }), stack),
33
- { y: 'y1' }
34
- )
60
+ renameChannels(stackX(recordizeX({ data, ...options, y1: null, y2: null }), stack), {
61
+ y: 'y1'
62
+ })
35
63
  );
36
64
  </script>
37
65