svelteplot 0.2.3 → 0.2.5

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.
@@ -1,5 +1,5 @@
1
1
  import { resolveProp } from './resolve.js';
2
- import { isDate } from './typeChecks';
2
+ import { isDate } from './typeChecks.js';
3
3
  import { RAW_VALUE } from '../transforms/recordize.js';
4
4
  /**
5
5
  * Returns first argument that is not null or undefined
@@ -1,4 +1,4 @@
1
- import { isDate } from './typeChecks';
1
+ import { isDate } from './typeChecks.js';
2
2
  export default function (value) {
3
3
  const t = typeof value;
4
4
  return t === 'string' || t === 'number' || t === 'boolean' || isDate(value) || t === null;
package/dist/index.d.ts CHANGED
@@ -1,69 +1,5 @@
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';
5
- export { default as AxisX } from './marks/AxisX.svelte';
6
- export { default as AxisY } from './marks/AxisY.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 Brush } from './marks/Brush.svelte';
14
- export { default as BrushX } from './marks/BrushX.svelte';
15
- export { default as BrushY } from './marks/BrushY.svelte';
16
- export { default as Cell } from './marks/Cell.svelte';
17
- export { default as CellX } from './marks/CellX.svelte';
18
- export { default as CellY } from './marks/CellY.svelte';
19
- export { default as CustomMark } from './marks/CustomMark.svelte';
20
- export { default as CustomMarkHTML } from './marks/CustomMarkHTML.svelte';
21
- export { default as DifferenceY } from './marks/DifferenceY.svelte';
22
- export { default as Dot } from './marks/Dot.svelte';
23
- export { default as DotX } from './marks/DotX.svelte';
24
- export { default as DotY } from './marks/DotY.svelte';
25
- export { default as Frame } from './marks/Frame.svelte';
26
- export { default as Geo } from './marks/Geo.svelte';
27
- export { default as Graticule } from './marks/Graticule.svelte';
28
- export { default as GridX } from './marks/GridX.svelte';
29
- export { default as GridY } from './marks/GridY.svelte';
30
- export { default as Line } from './marks/Line.svelte';
31
- export { default as LineX } from './marks/LineX.svelte';
32
- export { default as LineY } from './marks/LineY.svelte';
33
- export { default as Link } from './marks/Link.svelte';
34
1
  export { default as Plot } from './Plot.svelte';
35
- export { default as Pointer } from './marks/Pointer.svelte';
36
- export { default as Vector } from './marks/Vector.svelte';
37
- export { default as Rect } from './marks/Rect.svelte';
38
- export { default as RectX } from './marks/RectX.svelte';
39
- export { default as RectY } from './marks/RectY.svelte';
40
- export { default as RegressionX } from './marks/RegressionX.svelte';
41
- export { default as RegressionY } from './marks/RegressionY.svelte';
42
- export { default as RuleX } from './marks/RuleX.svelte';
43
- export { default as RuleY } from './marks/RuleY.svelte';
44
- export { default as Sphere } from './marks/Sphere.svelte';
45
- export { default as Spike } from './marks/Spike.svelte';
46
- export { default as Text } from './marks/Text.svelte';
47
- export { default as TickX } from './marks/TickX.svelte';
48
- export { default as TickY } from './marks/TickY.svelte';
49
- export { default as ColorLegend } from './marks/ColorLegend.svelte';
50
- export { default as HTMLTooltip } from './marks/HTMLTooltip.svelte';
51
- export { default as SymbolLegend } from './marks/SymbolLegend.svelte';
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, replaceChannels } 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';
2
+ export { default as PlotCore } from './core/Plot.svelte';
3
+ export * from './marks/index.js';
4
+ export * from './transforms/index.js';
67
5
  export { formatMonth } from './helpers/formats.js';
68
- export { default as LinearGradientX } from './marks/helpers/LinearGradientX.svelte';
69
- export { default as LinearGradientY } from './marks/helpers/LinearGradientY.svelte';
package/dist/index.js CHANGED
@@ -1,73 +1,6 @@
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';
6
- export { default as AxisX } from './marks/AxisX.svelte';
7
- export { default as AxisY } from './marks/AxisY.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 Brush } from './marks/Brush.svelte';
15
- export { default as BrushX } from './marks/BrushX.svelte';
16
- export { default as BrushY } from './marks/BrushY.svelte';
17
- export { default as Cell } from './marks/Cell.svelte';
18
- export { default as CellX } from './marks/CellX.svelte';
19
- export { default as CellY } from './marks/CellY.svelte';
20
- export { default as CustomMark } from './marks/CustomMark.svelte';
21
- export { default as CustomMarkHTML } from './marks/CustomMarkHTML.svelte';
22
- export { default as DifferenceY } from './marks/DifferenceY.svelte';
23
- export { default as Dot } from './marks/Dot.svelte';
24
- export { default as DotX } from './marks/DotX.svelte';
25
- export { default as DotY } from './marks/DotY.svelte';
26
- export { default as Frame } from './marks/Frame.svelte';
27
- export { default as Geo } from './marks/Geo.svelte';
28
- export { default as Graticule } from './marks/Graticule.svelte';
29
- export { default as GridX } from './marks/GridX.svelte';
30
- export { default as GridY } from './marks/GridY.svelte';
31
- export { default as Line } from './marks/Line.svelte';
32
- export { default as LineX } from './marks/LineX.svelte';
33
- export { default as LineY } from './marks/LineY.svelte';
34
- export { default as Link } from './marks/Link.svelte';
35
1
  export { default as Plot } from './Plot.svelte';
36
- export { default as Pointer } from './marks/Pointer.svelte';
37
- export { default as Vector } from './marks/Vector.svelte';
38
- export { default as Rect } from './marks/Rect.svelte';
39
- export { default as RectX } from './marks/RectX.svelte';
40
- export { default as RectY } from './marks/RectY.svelte';
41
- export { default as RegressionX } from './marks/RegressionX.svelte';
42
- export { default as RegressionY } from './marks/RegressionY.svelte';
43
- export { default as RuleX } from './marks/RuleX.svelte';
44
- export { default as RuleY } from './marks/RuleY.svelte';
45
- export { default as Sphere } from './marks/Sphere.svelte';
46
- export { default as Spike } from './marks/Spike.svelte';
47
- export { default as Text } from './marks/Text.svelte';
48
- export { default as TickX } from './marks/TickX.svelte';
49
- export { default as TickY } from './marks/TickY.svelte';
50
- // HTML marks
51
- export { default as ColorLegend } from './marks/ColorLegend.svelte';
52
- export { default as HTMLTooltip } from './marks/HTMLTooltip.svelte';
53
- export { default as SymbolLegend } from './marks/SymbolLegend.svelte';
54
- // transforms
55
- export { bin, binX, binY } from './transforms/bin.js';
56
- export { bollingerX, bollingerY } from './transforms/bollinger.js';
57
- export { geoCentroid } from './transforms/centroid.js';
58
- export { filter } from './transforms/filter.js';
59
- export { map, mapX, mapY } from './transforms/map.js';
60
- export { normalizeX, normalizeY } from './transforms/normalize.js';
61
- export { group, groupX, groupY, groupZ } from './transforms/group.js';
62
- export { intervalX, intervalY } from './transforms/interval.js';
63
- export { recordizeX, recordizeY } from './transforms/recordize.js';
64
- export { renameChannels, replaceChannels } from './transforms/rename.js';
65
- export { select, selectFirst, selectLast, selectMaxX, selectMaxY, selectMinX, selectMinY } from './transforms/select.js';
66
- export { shiftX, shiftY } from './transforms/shift.js';
67
- export { sort, shuffle, reverse } from './transforms/sort.js';
68
- export { stackX, stackY } from './transforms/stack.js';
69
- export { windowX, windowY } from './transforms/window.js';
2
+ export { default as PlotCore } from './core/Plot.svelte';
3
+ export * from './marks/index.js';
4
+ export * from './transforms/index.js';
70
5
  // helpers
71
6
  export { formatMonth } from './helpers/formats.js';
72
- export { default as LinearGradientX } from './marks/helpers/LinearGradientX.svelte';
73
- export { default as LinearGradientY } from './marks/helpers/LinearGradientY.svelte';
@@ -9,6 +9,7 @@
9
9
  tension?: number;
10
10
  sort?: ConstantAccessor<RawValue> | { channel: 'stroke' | 'fill' };
11
11
  stack?: Partial<StackOptions>;
12
+ canvas?: boolean;
12
13
  };
13
14
  </script>
14
15
 
@@ -22,6 +23,7 @@
22
23
  import callWithProps from '../helpers/callWithProps.js';
23
24
  import { maybeCurve } from '../helpers/curves.js';
24
25
  import { isValid } from '../helpers/index.js';
26
+ import AreaCanvas from './helpers/AreaCanvas.svelte';
25
27
 
26
28
  import type {
27
29
  CurveName,
@@ -52,7 +54,8 @@
52
54
  /** the curve */
53
55
  curve = 'linear',
54
56
  tension = 0,
55
- class: className = null,
57
+ class: className = '',
58
+ canvas = false,
56
59
  ...options
57
60
  }: AreaProps = $props();
58
61
 
@@ -61,7 +64,7 @@
61
64
 
62
65
  const groupByKey = $derived(options.z || options.fill || options.stroke);
63
66
 
64
- const areaPath: (d: ScaledDataRecord[]) => string = $derived(
67
+ const areaPath = $derived(
65
68
  callWithProps(area, [], {
66
69
  curve: maybeCurve(curve, tension),
67
70
  defined: (d: ScaledDataRecord) =>
@@ -113,34 +116,38 @@
113
116
  {...options}>
114
117
  {#snippet children({ mark, usedScales, scaledData })}
115
118
  {@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')}>
119
+ {#if canvas}
120
+ <AreaCanvas groupedAreaData={grouped} {mark} {usedScales} {areaPath} />
121
+ {:else}
122
+ <GroupMultiple length={grouped.length}>
123
+ {#each grouped as areaData}
124
+ {#snippet el(datum: ScaledDataRecord)}
125
+ {@const [style, styleClass] = resolveStyles(
126
+ plot,
127
+ datum,
128
+ options,
129
+ 'fill',
130
+ usedScales
131
+ )}
132
+ <path
133
+ class={['svelteplot-area', className, styleClass]}
134
+ clip-path={options.clipPath}
135
+ d={areaPath(areaData)}
136
+ {style} />
137
+ {/snippet}
138
+ {#if areaData.length > 0}
139
+ {#if options.href}
140
+ <a
141
+ href={resolveProp(options.href, areaData[0].datum, '')}
142
+ target={resolveProp(options.target, areaData[0].datum, '_self')}>
143
+ {@render el(areaData[0])}
144
+ </a>
145
+ {:else}
137
146
  {@render el(areaData[0])}
138
- </a>
139
- {:else}
140
- {@render el(areaData[0])}
147
+ {/if}
141
148
  {/if}
142
- {/if}
143
- {/each}
144
- </GroupMultiple>
149
+ {/each}
150
+ </GroupMultiple>
151
+ {/if}
145
152
  {/snippet}
146
153
  </Mark>
@@ -10,6 +10,7 @@ export type AreaMarkProps = {
10
10
  channel: 'stroke' | 'fill';
11
11
  };
12
12
  stack?: Partial<StackOptions>;
13
+ canvas?: boolean;
13
14
  };
14
15
  import { type CurveFactory } from 'd3-shape';
15
16
  import type { CurveName, DataRecord, BaseMarkProps, ConstantAccessor, ChannelAccessor } from '../types.js';
@@ -0,0 +1,107 @@
1
+ <script lang="ts">
2
+ import type {
3
+ Mark,
4
+ BaseMarkProps,
5
+ PlotContext,
6
+ ScaledDataRecord,
7
+ UsedScales
8
+ } from '../../types.js';
9
+ import { resolveProp, resolveScaledStyleProps } from '../../helpers/resolve.js';
10
+ import { getContext } from 'svelte';
11
+ import { type Area } from 'd3-shape';
12
+ import CanvasLayer from './CanvasLayer.svelte';
13
+ import type { Attachment } from 'svelte/attachments';
14
+ import { devicePixelRatio } from 'svelte/reactivity/window';
15
+ import { resolveColor } from './canvas';
16
+
17
+ let {
18
+ mark,
19
+ groupedAreaData,
20
+ usedScales,
21
+ areaPath
22
+ }: {
23
+ mark: Mark<BaseMarkProps>;
24
+ groupedAreaData: ScaledDataRecord[][];
25
+ usedScales: UsedScales;
26
+ areaPath: Area<ScaledDataRecord>;
27
+ } = $props();
28
+
29
+ const { getPlotState } = getContext<PlotContext>('svelteplot');
30
+ const plot = $derived(getPlotState());
31
+
32
+ function maybeOpacity(value: unknown) {
33
+ return value == null ? 1 : +value;
34
+ }
35
+
36
+ const render = ((canvas: HTMLCanvasElement) => {
37
+ const context = canvas.getContext('2d');
38
+
39
+ $effect(() => {
40
+ if (context) {
41
+ areaPath.context(context);
42
+ context.resetTransform();
43
+ context.scale(devicePixelRatio.current ?? 1, devicePixelRatio.current ?? 1);
44
+
45
+ for (const group of groupedAreaData) {
46
+ if (group.length < 2) continue;
47
+
48
+ // Get the first point to determine area styles
49
+ const firstPoint = group[0];
50
+ if (!firstPoint || !firstPoint.valid) continue;
51
+
52
+ let { fill, stroke, ...restStyles } = resolveScaledStyleProps(
53
+ firstPoint.datum,
54
+ mark.options,
55
+ usedScales,
56
+ plot,
57
+ 'fill'
58
+ );
59
+
60
+ const opacity = maybeOpacity(restStyles['opacity']);
61
+ const fillOpacity = maybeOpacity(restStyles['fill-opacity']);
62
+ const strokeOpacity = maybeOpacity(restStyles['stroke-opacity']);
63
+
64
+ const strokeWidth = resolveProp(
65
+ mark.options.strokeWidth,
66
+ firstPoint.datum,
67
+ 0
68
+ ) as number;
69
+
70
+ fill = resolveColor(fill || 'currentColor', canvas);
71
+ stroke = resolveColor(stroke, canvas);
72
+
73
+ // Start drawing the area
74
+ context.beginPath();
75
+ areaPath(group);
76
+
77
+ // Fill the area
78
+ if (fill && fill !== 'none') {
79
+ context.fillStyle = fill;
80
+ context.globalAlpha = opacity * fillOpacity;
81
+ context.fill();
82
+ }
83
+
84
+ // Stroke the area outline if strokeWidth > 0
85
+ if (stroke && stroke !== 'none' && strokeWidth > 0) {
86
+ context.strokeStyle = stroke;
87
+ context.lineWidth = strokeWidth;
88
+ context.globalAlpha = opacity * strokeOpacity;
89
+ context.stroke();
90
+ }
91
+ }
92
+ areaPath.context(null);
93
+ }
94
+
95
+ return () => {
96
+ context?.clearRect(
97
+ 0,
98
+ 0,
99
+ plot.width * (devicePixelRatio.current ?? 1),
100
+ plot.height * (devicePixelRatio.current ?? 1)
101
+ );
102
+ };
103
+ });
104
+ }) as Attachment;
105
+ </script>
106
+
107
+ <CanvasLayer {@attach render} />
@@ -0,0 +1,11 @@
1
+ import type { Mark, BaseMarkProps, ScaledDataRecord, UsedScales } from '../../types.js';
2
+ import { type Area } from 'd3-shape';
3
+ type $$ComponentProps = {
4
+ mark: Mark<BaseMarkProps>;
5
+ groupedAreaData: ScaledDataRecord[][];
6
+ usedScales: UsedScales;
7
+ areaPath: Area<ScaledDataRecord>;
8
+ };
9
+ declare const AreaCanvas: import("svelte").Component<$$ComponentProps, {}, "">;
10
+ type AreaCanvas = ReturnType<typeof AreaCanvas>;
11
+ export default AreaCanvas;
@@ -0,0 +1,52 @@
1
+ export { default as Area } from './Area.svelte';
2
+ export { default as AreaX } from './AreaX.svelte';
3
+ export { default as AreaY } from './AreaY.svelte';
4
+ export { default as Arrow } from './Arrow.svelte';
5
+ export { default as AxisX } from './AxisX.svelte';
6
+ export { default as AxisY } from './AxisY.svelte';
7
+ export { default as BarX } from './BarX.svelte';
8
+ export { default as BarY } from './BarY.svelte';
9
+ export { default as BollingerX } from './BollingerX.svelte';
10
+ export { default as BollingerY } from './BollingerY.svelte';
11
+ export { default as BoxX } from './BoxX.svelte';
12
+ export { default as BoxY } from './BoxY.svelte';
13
+ export { default as Brush } from './Brush.svelte';
14
+ export { default as BrushX } from './BrushX.svelte';
15
+ export { default as BrushY } from './BrushY.svelte';
16
+ export { default as Cell } from './Cell.svelte';
17
+ export { default as CellX } from './CellX.svelte';
18
+ export { default as CellY } from './CellY.svelte';
19
+ export { default as CustomMark } from './CustomMark.svelte';
20
+ export { default as CustomMarkHTML } from './CustomMarkHTML.svelte';
21
+ export { default as DifferenceY } from './DifferenceY.svelte';
22
+ export { default as Dot } from './Dot.svelte';
23
+ export { default as DotX } from './DotX.svelte';
24
+ export { default as DotY } from './DotY.svelte';
25
+ export { default as Frame } from './Frame.svelte';
26
+ export { default as Geo } from './Geo.svelte';
27
+ export { default as Graticule } from './Graticule.svelte';
28
+ export { default as GridX } from './GridX.svelte';
29
+ export { default as GridY } from './GridY.svelte';
30
+ export { default as Line } from './Line.svelte';
31
+ export { default as LineX } from './LineX.svelte';
32
+ export { default as LineY } from './LineY.svelte';
33
+ export { default as Link } from './Link.svelte';
34
+ export { default as Pointer } from './Pointer.svelte';
35
+ export { default as Vector } from './Vector.svelte';
36
+ export { default as Rect } from './Rect.svelte';
37
+ export { default as RectX } from './RectX.svelte';
38
+ export { default as RectY } from './RectY.svelte';
39
+ export { default as RegressionX } from './RegressionX.svelte';
40
+ export { default as RegressionY } from './RegressionY.svelte';
41
+ export { default as RuleX } from './RuleX.svelte';
42
+ export { default as RuleY } from './RuleY.svelte';
43
+ export { default as Sphere } from './Sphere.svelte';
44
+ export { default as Spike } from './Spike.svelte';
45
+ export { default as Text } from './Text.svelte';
46
+ export { default as TickX } from './TickX.svelte';
47
+ export { default as TickY } from './TickY.svelte';
48
+ export { default as ColorLegend } from './ColorLegend.svelte';
49
+ export { default as HTMLTooltip } from './HTMLTooltip.svelte';
50
+ export { default as SymbolLegend } from './SymbolLegend.svelte';
51
+ export { default as LinearGradientX } from './helpers/LinearGradientX.svelte';
52
+ export { default as LinearGradientY } from './helpers/LinearGradientY.svelte';
@@ -0,0 +1,54 @@
1
+ export { default as Area } from './Area.svelte';
2
+ export { default as AreaX } from './AreaX.svelte';
3
+ export { default as AreaY } from './AreaY.svelte';
4
+ export { default as Arrow } from './Arrow.svelte';
5
+ export { default as AxisX } from './AxisX.svelte';
6
+ export { default as AxisY } from './AxisY.svelte';
7
+ export { default as BarX } from './BarX.svelte';
8
+ export { default as BarY } from './BarY.svelte';
9
+ export { default as BollingerX } from './BollingerX.svelte';
10
+ export { default as BollingerY } from './BollingerY.svelte';
11
+ export { default as BoxX } from './BoxX.svelte';
12
+ export { default as BoxY } from './BoxY.svelte';
13
+ export { default as Brush } from './Brush.svelte';
14
+ export { default as BrushX } from './BrushX.svelte';
15
+ export { default as BrushY } from './BrushY.svelte';
16
+ export { default as Cell } from './Cell.svelte';
17
+ export { default as CellX } from './CellX.svelte';
18
+ export { default as CellY } from './CellY.svelte';
19
+ export { default as CustomMark } from './CustomMark.svelte';
20
+ export { default as CustomMarkHTML } from './CustomMarkHTML.svelte';
21
+ export { default as DifferenceY } from './DifferenceY.svelte';
22
+ export { default as Dot } from './Dot.svelte';
23
+ export { default as DotX } from './DotX.svelte';
24
+ export { default as DotY } from './DotY.svelte';
25
+ export { default as Frame } from './Frame.svelte';
26
+ export { default as Geo } from './Geo.svelte';
27
+ export { default as Graticule } from './Graticule.svelte';
28
+ export { default as GridX } from './GridX.svelte';
29
+ export { default as GridY } from './GridY.svelte';
30
+ export { default as Line } from './Line.svelte';
31
+ export { default as LineX } from './LineX.svelte';
32
+ export { default as LineY } from './LineY.svelte';
33
+ export { default as Link } from './Link.svelte';
34
+ export { default as Pointer } from './Pointer.svelte';
35
+ export { default as Vector } from './Vector.svelte';
36
+ export { default as Rect } from './Rect.svelte';
37
+ export { default as RectX } from './RectX.svelte';
38
+ export { default as RectY } from './RectY.svelte';
39
+ export { default as RegressionX } from './RegressionX.svelte';
40
+ export { default as RegressionY } from './RegressionY.svelte';
41
+ export { default as RuleX } from './RuleX.svelte';
42
+ export { default as RuleY } from './RuleY.svelte';
43
+ export { default as Sphere } from './Sphere.svelte';
44
+ export { default as Spike } from './Spike.svelte';
45
+ export { default as Text } from './Text.svelte';
46
+ export { default as TickX } from './TickX.svelte';
47
+ export { default as TickY } from './TickY.svelte';
48
+ // HTML marks
49
+ export { default as ColorLegend } from './ColorLegend.svelte';
50
+ export { default as HTMLTooltip } from './HTMLTooltip.svelte';
51
+ export { default as SymbolLegend } from './SymbolLegend.svelte';
52
+ // helper marks
53
+ export { default as LinearGradientX } from './helpers/LinearGradientX.svelte';
54
+ export { default as LinearGradientY } from './helpers/LinearGradientY.svelte';
@@ -3,7 +3,7 @@ import { maybeInterval } from '../helpers/autoTicks.js';
3
3
  import { bin as d3Bin, extent, groups as d3Groups, thresholdFreedmanDiaconis, thresholdScott, thresholdSturges } from 'd3-array';
4
4
  import { Reducer, reduceOutputs } from '../helpers/reduce.js';
5
5
  import { groupFacetsAndZ } from '../helpers/group.js';
6
- import { isDate } from '../helpers/typeChecks';
6
+ import { isDate } from '../helpers/typeChecks.js';
7
7
  const ThresholdGenerators = {
8
8
  auto: thresholdScott,
9
9
  scott: thresholdScott,
@@ -3,7 +3,7 @@ import { testFilter } from '../helpers/index.js';
3
3
  import { reduceOutputs } from '../helpers/reduce.js';
4
4
  import { resolveChannel } from '../helpers/resolve.js';
5
5
  import { groups as d3Groups } from 'd3-array';
6
- import { omit } from '../helpers';
6
+ import { omit } from '../helpers/index.js';
7
7
  import { maybeInterval } from '../helpers/autoTicks.js';
8
8
  /**
9
9
  * groups the dataset by x and y channel and optionally reduces the group items
@@ -0,0 +1,15 @@
1
+ export { bin, binX, binY } from './bin.js';
2
+ export { bollingerX, bollingerY } from './bollinger.js';
3
+ export { geoCentroid } from './centroid.js';
4
+ export { filter } from './filter.js';
5
+ export { map, mapX, mapY } from './map.js';
6
+ export { normalizeX, normalizeY } from './normalize.js';
7
+ export { group, groupX, groupY, groupZ } from './group.js';
8
+ export { intervalX, intervalY } from './interval.js';
9
+ export { recordizeX, recordizeY } from './recordize.js';
10
+ export { renameChannels, replaceChannels } from './rename.js';
11
+ export { select, selectFirst, selectLast, selectMaxX, selectMaxY, selectMinX, selectMinY } from './select.js';
12
+ export { shiftX, shiftY } from './shift.js';
13
+ export { sort, shuffle, reverse } from './sort.js';
14
+ export { stackX, stackY } from './stack.js';
15
+ export { windowX, windowY } from './window.js';
@@ -0,0 +1,15 @@
1
+ export { bin, binX, binY } from './bin.js';
2
+ export { bollingerX, bollingerY } from './bollinger.js';
3
+ export { geoCentroid } from './centroid.js';
4
+ export { filter } from './filter.js';
5
+ export { map, mapX, mapY } from './map.js';
6
+ export { normalizeX, normalizeY } from './normalize.js';
7
+ export { group, groupX, groupY, groupZ } from './group.js';
8
+ export { intervalX, intervalY } from './interval.js';
9
+ export { recordizeX, recordizeY } from './recordize.js';
10
+ export { renameChannels, replaceChannels } from './rename.js';
11
+ export { select, selectFirst, selectLast, selectMaxX, selectMaxY, selectMinX, selectMinY } from './select.js';
12
+ export { shiftX, shiftY } from './shift.js';
13
+ export { sort, shuffle, reverse } from './sort.js';
14
+ export { stackX, stackY } from './stack.js';
15
+ export { windowX, windowY } from './window.js';
@@ -2,7 +2,6 @@ import isDataRecord from '../helpers/isDataRecord.js';
2
2
  import { resolveChannel } from '../helpers/resolve.js';
3
3
  import { stack, stackOffsetExpand, stackOffsetSilhouette, stackOffsetWiggle, stackOrderAppearance, stackOrderAscending, stackOrderInsideOut, stackOrderNone, stackOffsetDiverging } from 'd3-shape';
4
4
  import { index, union, groups as d3Groups } from 'd3-array';
5
- import { RAW_VALUE } from './recordize';
6
5
  const GROUP = Symbol('group');
7
6
  const FACET = Symbol('group');
8
7
  const DEFAULT_STACK_OPTIONS = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svelteplot",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "license": "ISC",
5
5
  "author": {
6
6
  "name": "Gregor Aisch",
@@ -22,6 +22,9 @@
22
22
  },
23
23
  "./marks/*.svelte": {
24
24
  "import": "./dist/marks/*.svelte"
25
+ },
26
+ "./transforms": {
27
+ "import": "./dist/transforms/index.js"
25
28
  }
26
29
  },
27
30
  "main": "./dist/index.js",