svelteplot 0.0.1-alpha.9 → 0.1.3-next.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +5 -0
- package/README.md +3 -36
- package/dist/Mark.svelte +292 -0
- package/dist/Mark.svelte.d.ts +22 -0
- package/dist/Plot.svelte +148 -156
- package/dist/Plot.svelte.d.ts +15 -15
- package/dist/constants.d.ts +14 -0
- package/dist/constants.js +109 -0
- package/dist/core/Facet.svelte +59 -0
- package/dist/core/Facet.svelte.d.ts +18 -0
- package/dist/core/FacetAxes.svelte +66 -0
- package/dist/core/FacetAxes.svelte.d.ts +4 -0
- package/dist/core/FacetGrid.svelte +86 -0
- package/dist/core/FacetGrid.svelte.d.ts +13 -0
- package/dist/core/Plot.svelte +567 -0
- package/dist/core/Plot.svelte.d.ts +14 -0
- package/dist/helpers/arrowPath.d.ts +14 -0
- package/dist/helpers/arrowPath.js +129 -0
- package/dist/helpers/autoProjection.d.ts +19 -0
- package/dist/helpers/autoProjection.js +87 -0
- package/dist/helpers/autoScales.d.ts +23 -0
- package/dist/helpers/autoScales.js +203 -0
- package/dist/helpers/autoTicks.d.ts +3 -0
- package/dist/helpers/autoTicks.js +40 -0
- package/dist/helpers/autoTimeFormat.d.ts +2 -2
- package/dist/helpers/autoTimeFormat.js +34 -5
- package/dist/helpers/callWithProps.d.ts +8 -0
- package/dist/helpers/callWithProps.js +13 -0
- package/dist/helpers/colors.js +17 -2
- package/dist/helpers/curves.d.ts +3 -0
- package/dist/helpers/curves.js +42 -0
- package/dist/helpers/data.d.ts +9 -0
- package/dist/helpers/data.js +16 -0
- package/dist/helpers/facets.d.ts +12 -0
- package/dist/helpers/facets.js +49 -0
- package/dist/helpers/formats.d.ts +3 -0
- package/dist/helpers/formats.js +3 -0
- package/dist/helpers/getBaseStyles.d.ts +7 -2
- package/dist/helpers/getBaseStyles.js +34 -10
- package/dist/helpers/getLogTicks.js +5 -5
- package/dist/helpers/group.d.ts +6 -0
- package/dist/helpers/group.js +53 -0
- package/dist/helpers/index.d.ts +18 -0
- package/dist/helpers/index.js +53 -0
- package/dist/helpers/isRawValue.d.ts +2 -0
- package/dist/helpers/isRawValue.js +5 -0
- package/dist/helpers/isValid.d.ts +6 -0
- package/dist/helpers/isValid.js +6 -0
- package/dist/helpers/math.d.ts +19 -0
- package/dist/helpers/math.js +116 -0
- package/dist/helpers/mergeDeep.d.ts +1 -1
- package/dist/helpers/noise.d.ts +1 -0
- package/dist/helpers/noise.js +72 -0
- package/dist/helpers/projection.d.ts +33 -0
- package/dist/helpers/projection.js +100 -0
- package/dist/helpers/reduce.d.ts +10 -0
- package/dist/helpers/reduce.js +85 -0
- package/dist/helpers/regressionLoess.d.ts +12 -0
- package/dist/helpers/regressionLoess.js +47 -0
- package/dist/helpers/removeIdenticalLines.d.ts +8 -1
- package/dist/helpers/removeIdenticalLines.js +14 -7
- package/dist/helpers/resolve.d.ts +17 -0
- package/dist/helpers/resolve.js +152 -0
- package/dist/helpers/roundedRect.d.ts +9 -0
- package/dist/helpers/roundedRect.js +31 -0
- package/dist/helpers/scales.d.ts +42 -0
- package/dist/helpers/scales.js +309 -0
- package/dist/helpers/time.d.ts +6 -0
- package/dist/helpers/time.js +282 -0
- package/dist/helpers/typeChecks.d.ts +8 -5
- package/dist/helpers/typeChecks.js +27 -6
- package/dist/index.d.ts +49 -1
- package/dist/index.js +53 -2
- package/dist/marks/Area.svelte +146 -0
- package/dist/marks/Area.svelte.d.ts +30 -0
- package/dist/marks/AreaX.svelte +27 -0
- package/dist/marks/AreaX.svelte.d.ts +12 -0
- package/dist/marks/AreaY.svelte +38 -0
- package/dist/marks/AreaY.svelte.d.ts +19 -0
- package/dist/marks/Arrow.svelte +139 -0
- package/dist/marks/Arrow.svelte.d.ts +44 -0
- package/dist/marks/AxisX.svelte +198 -93
- package/dist/marks/AxisX.svelte.d.ts +17 -16
- package/dist/marks/AxisY.svelte +176 -62
- package/dist/marks/AxisY.svelte.d.ts +17 -14
- package/dist/marks/BarX.svelte +81 -0
- package/dist/marks/BarX.svelte.d.ts +4 -0
- package/dist/marks/BarY.svelte +95 -0
- package/dist/marks/BarY.svelte.d.ts +4 -0
- package/dist/marks/BollingerX.svelte +44 -0
- package/dist/marks/BollingerX.svelte.d.ts +18 -0
- package/dist/marks/BollingerY.svelte +39 -0
- package/dist/marks/BollingerY.svelte.d.ts +18 -0
- package/dist/marks/BoxX.svelte +89 -0
- package/dist/marks/BoxX.svelte.d.ts +4 -0
- package/dist/marks/BoxY.svelte +110 -0
- package/dist/marks/BoxY.svelte.d.ts +29 -0
- package/dist/marks/Cell.svelte +110 -0
- package/dist/marks/Cell.svelte.d.ts +16 -0
- package/dist/marks/CellX.svelte +24 -0
- package/dist/marks/CellX.svelte.d.ts +3 -0
- package/dist/marks/CellY.svelte +24 -0
- package/dist/marks/CellY.svelte.d.ts +3 -0
- package/dist/marks/ColorLegend.svelte +148 -27
- package/dist/marks/ColorLegend.svelte.d.ts +12 -13
- package/dist/marks/CustomMark.svelte +43 -0
- package/dist/marks/CustomMark.svelte.d.ts +16 -0
- package/dist/marks/CustomMarkHTML.svelte +103 -0
- package/dist/marks/CustomMarkHTML.svelte.d.ts +17 -0
- package/dist/marks/DifferenceY.svelte +144 -0
- package/dist/marks/DifferenceY.svelte.d.ts +30 -0
- package/dist/marks/Dot.svelte +128 -73
- package/dist/marks/Dot.svelte.d.ts +24 -14
- package/dist/marks/DotX.svelte +15 -3
- package/dist/marks/DotX.svelte.d.ts +8 -16
- package/dist/marks/DotY.svelte +8 -3
- package/dist/marks/DotY.svelte.d.ts +5 -17
- package/dist/marks/Frame.svelte +32 -31
- package/dist/marks/Frame.svelte.d.ts +7 -14
- package/dist/marks/Geo.svelte +102 -0
- package/dist/marks/Geo.svelte.d.ts +10 -0
- package/dist/marks/Graticule.svelte +28 -0
- package/dist/marks/Graticule.svelte.d.ts +9 -0
- package/dist/marks/GridX.svelte +67 -36
- package/dist/marks/GridX.svelte.d.ts +7 -18
- package/dist/marks/GridY.svelte +64 -25
- package/dist/marks/GridY.svelte.d.ts +7 -14
- package/dist/marks/HTMLTooltip.svelte +91 -0
- package/dist/marks/HTMLTooltip.svelte.d.ts +11 -0
- package/dist/marks/Line.svelte +219 -58
- package/dist/marks/Line.svelte.d.ts +30 -14
- package/dist/marks/LineX.svelte +8 -8
- package/dist/marks/LineX.svelte.d.ts +4 -17
- package/dist/marks/LineY.svelte +7 -8
- package/dist/marks/LineY.svelte.d.ts +4 -17
- package/dist/marks/Link.svelte +173 -0
- package/dist/marks/Link.svelte.d.ts +21 -0
- package/dist/marks/Pointer.svelte +126 -0
- package/dist/marks/Pointer.svelte.d.ts +23 -0
- package/dist/marks/Rect.svelte +103 -0
- package/dist/marks/Rect.svelte.d.ts +15 -0
- package/dist/marks/RectX.svelte +33 -0
- package/dist/marks/RectX.svelte.d.ts +15 -0
- package/dist/marks/RectY.svelte +33 -0
- package/dist/marks/RectY.svelte.d.ts +15 -0
- package/dist/marks/RegressionX.svelte +26 -0
- package/dist/marks/RegressionX.svelte.d.ts +4 -0
- package/dist/marks/RegressionY.svelte +26 -0
- package/dist/marks/RegressionY.svelte.d.ts +4 -0
- package/dist/marks/RuleX.svelte +52 -28
- package/dist/marks/RuleX.svelte.d.ts +14 -14
- package/dist/marks/RuleY.svelte +52 -28
- package/dist/marks/RuleY.svelte.d.ts +14 -14
- package/dist/marks/Sphere.svelte +8 -0
- package/dist/marks/Sphere.svelte.d.ts +51 -0
- package/dist/marks/Spike.svelte +15 -0
- package/dist/marks/Spike.svelte.d.ts +4 -0
- package/dist/marks/SymbolLegend.svelte +27 -12
- package/dist/marks/SymbolLegend.svelte.d.ts +8 -14
- package/dist/marks/Text.svelte +185 -0
- package/dist/marks/Text.svelte.d.ts +26 -0
- package/dist/marks/TickX.svelte +89 -0
- package/dist/marks/TickX.svelte.d.ts +22 -0
- package/dist/marks/TickY.svelte +90 -0
- package/dist/marks/TickY.svelte.d.ts +22 -0
- package/dist/marks/Vector.svelte +213 -0
- package/dist/marks/Vector.svelte.d.ts +31 -0
- package/dist/marks/helpers/BaseAxisX.svelte +210 -0
- package/dist/marks/helpers/BaseAxisX.svelte.d.ts +24 -0
- package/dist/marks/helpers/BaseAxisY.svelte +187 -0
- package/dist/marks/helpers/BaseAxisY.svelte.d.ts +23 -0
- package/dist/marks/helpers/CanvasLayer.svelte +38 -0
- package/dist/marks/helpers/CanvasLayer.svelte.d.ts +13 -0
- package/dist/marks/helpers/DotCanvas.svelte +184 -0
- package/dist/marks/helpers/DotCanvas.svelte.d.ts +11 -0
- package/dist/marks/helpers/GeoCanvas.svelte +165 -0
- package/dist/marks/helpers/GeoCanvas.svelte.d.ts +13 -0
- package/dist/marks/helpers/GroupMultiple.svelte +17 -0
- package/dist/marks/helpers/GroupMultiple.svelte.d.ts +9 -0
- package/dist/marks/helpers/Marker.svelte +93 -0
- package/dist/marks/helpers/Marker.svelte.d.ts +10 -0
- package/dist/marks/helpers/MarkerPath.svelte +164 -0
- package/dist/marks/helpers/MarkerPath.svelte.d.ts +44 -0
- package/dist/marks/helpers/Regression.svelte +174 -0
- package/dist/marks/helpers/Regression.svelte.d.ts +26 -0
- package/dist/marks/helpers/events.d.ts +8 -0
- package/dist/marks/helpers/events.js +64 -0
- package/dist/transforms/bin.d.ts +51 -0
- package/dist/transforms/bin.js +171 -0
- package/dist/transforms/bollinger.d.ts +21 -0
- package/dist/transforms/bollinger.js +53 -0
- package/dist/transforms/centroid.d.ts +9 -0
- package/dist/transforms/centroid.js +13 -0
- package/dist/transforms/facet.d.ts +1 -0
- package/dist/transforms/facet.js +1 -0
- package/dist/transforms/filter.d.ts +2 -0
- package/dist/transforms/filter.js +8 -0
- package/dist/transforms/group.d.ts +66 -0
- package/dist/transforms/group.js +109 -0
- package/dist/transforms/interval.d.ts +11 -0
- package/dist/transforms/interval.js +34 -0
- package/dist/transforms/jitter.d.ts +0 -0
- package/dist/transforms/jitter.js +1 -0
- package/dist/transforms/map.d.ts +10 -0
- package/dist/transforms/map.js +89 -0
- package/dist/transforms/normalize.d.ts +9 -0
- package/dist/transforms/normalize.js +86 -0
- package/dist/transforms/recordize.d.ts +13 -0
- package/dist/transforms/recordize.js +75 -0
- package/dist/transforms/rename.d.ts +14 -0
- package/dist/transforms/rename.js +42 -0
- package/dist/transforms/select.d.ts +35 -0
- package/dist/transforms/select.js +55 -0
- package/dist/transforms/shift.d.ts +13 -0
- package/dist/transforms/shift.js +45 -0
- package/dist/transforms/sort.d.ts +28 -0
- package/dist/transforms/sort.js +61 -0
- package/dist/transforms/stack.d.ts +10 -0
- package/dist/transforms/stack.js +110 -0
- package/dist/transforms/window.d.ts +22 -0
- package/dist/transforms/window.js +73 -0
- package/dist/types.d.ts +625 -188
- package/dist/ui/Checkbox.svelte +6 -0
- package/dist/ui/Checkbox.svelte.d.ts +13 -0
- package/dist/ui/RadioInput.svelte +27 -0
- package/dist/ui/RadioInput.svelte.d.ts +9 -0
- package/dist/ui/Select.svelte +27 -0
- package/dist/ui/Select.svelte.d.ts +9 -0
- package/dist/ui/Slider.svelte +47 -0
- package/dist/ui/Slider.svelte.d.ts +11 -0
- package/dist/ui/Spiral.svelte +46 -0
- package/dist/ui/Spiral.svelte.d.ts +15 -0
- package/dist/ui/index.d.ts +4 -0
- package/dist/ui/index.js +4 -0
- package/package.json +79 -40
- package/LICENSE +0 -11
- package/dist/classes/Channel.svelte.js +0 -74
- package/dist/classes/Mark.svelte.js +0 -17
- package/dist/classes/Plot.svelte.js +0 -98
- package/dist/contants.d.ts +0 -3
- package/dist/contants.js +0 -40
- package/dist/helpers/GroupMultiple.svelte +0 -8
- package/dist/helpers/GroupMultiple.svelte.d.ts +0 -19
- package/dist/helpers/createScale.d.ts +0 -5
- package/dist/helpers/createScale.js +0 -57
- package/dist/helpers/resolveChannel.d.ts +0 -2
- package/dist/helpers/resolveChannel.js +0 -28
- package/dist/helpers/wrapArray.d.ts +0 -2
- package/dist/helpers/wrapArray.js +0 -4
- package/dist/marks/BaseMark.svelte +0 -22
- package/dist/marks/BaseMark.svelte.d.ts +0 -19
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { StackOptions } from '../transforms/stack.js';
|
|
2
|
+
import type { DataRecord, BaseMarkProps, ChannelAccessor, BaseRectMarkProps } from '../types.js';
|
|
3
|
+
type RectYMarkProps = BaseMarkProps & {
|
|
4
|
+
data: DataRecord[];
|
|
5
|
+
y?: ChannelAccessor;
|
|
6
|
+
y1?: ChannelAccessor;
|
|
7
|
+
y2?: ChannelAccessor;
|
|
8
|
+
x1?: ChannelAccessor;
|
|
9
|
+
x2?: ChannelAccessor;
|
|
10
|
+
stack?: StackOptions;
|
|
11
|
+
interval?: number | string;
|
|
12
|
+
} & BaseRectMarkProps;
|
|
13
|
+
declare const RectY: import("svelte").Component<RectYMarkProps, {}, "">;
|
|
14
|
+
type RectY = ReturnType<typeof RectY>;
|
|
15
|
+
export default RectY;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { resolveChannel } from '../helpers/resolve.js';
|
|
3
|
+
import type { ChannelName } from '../types.js';
|
|
4
|
+
import Mark from '../Mark.svelte';
|
|
5
|
+
import Regression, { type RegressionMarkProps } from './helpers/Regression.svelte';
|
|
6
|
+
import { groups as d3Groups } from 'd3-array';
|
|
7
|
+
|
|
8
|
+
let { data = [{}], ...options }: RegressionMarkProps = $props();
|
|
9
|
+
|
|
10
|
+
let groupBy: ChannelName | null =
|
|
11
|
+
options.stroke != null ? 'stroke' : options.z != null ? 'z' : null;
|
|
12
|
+
// separate groups
|
|
13
|
+
let groups = $derived(
|
|
14
|
+
groupBy !== null
|
|
15
|
+
? d3Groups(data, (d) => resolveChannel(groupBy as ChannelName, d, options)).map(
|
|
16
|
+
(g) => g[1]
|
|
17
|
+
)
|
|
18
|
+
: [data]
|
|
19
|
+
);
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<Mark type="regression">
|
|
23
|
+
{#each groups as group}
|
|
24
|
+
<Regression data={group} dependent="x" {...options} />
|
|
25
|
+
{/each}
|
|
26
|
+
</Mark>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { resolveChannel } from '../helpers/resolve.js';
|
|
3
|
+
import type { ChannelName } from '../types.js';
|
|
4
|
+
import Mark from '../Mark.svelte';
|
|
5
|
+
import Regression, { type RegressionMarkProps } from './helpers/Regression.svelte';
|
|
6
|
+
import { groups as d3Groups } from 'd3-array';
|
|
7
|
+
|
|
8
|
+
let { data = [{}], ...options }: RegressionMarkProps = $props();
|
|
9
|
+
|
|
10
|
+
let groupBy: ChannelName | null =
|
|
11
|
+
options.stroke != null ? 'stroke' : options.z != null ? 'z' : null;
|
|
12
|
+
// separate groups
|
|
13
|
+
let groups = $derived(
|
|
14
|
+
groupBy !== null
|
|
15
|
+
? d3Groups(data, (d) => resolveChannel(groupBy as ChannelName, d, options)).map(
|
|
16
|
+
(g) => g[1]
|
|
17
|
+
)
|
|
18
|
+
: [data]
|
|
19
|
+
);
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<Mark type="regression">
|
|
23
|
+
{#each groups as group}
|
|
24
|
+
<Regression data={group} dependent="y" {...options} />
|
|
25
|
+
{/each}
|
|
26
|
+
</Mark>
|
package/dist/marks/RuleX.svelte
CHANGED
|
@@ -1,30 +1,54 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Mark from '../Mark.svelte';
|
|
3
|
+
import GroupMultiple from './helpers/GroupMultiple.svelte';
|
|
4
|
+
import { getContext } from 'svelte';
|
|
5
|
+
import { recordizeX } from '../transforms/recordize.js';
|
|
6
|
+
import { resolveProp, resolveStyles } from '../helpers/resolve.js';
|
|
7
|
+
import type {
|
|
8
|
+
PlotContext,
|
|
9
|
+
DataRecord,
|
|
10
|
+
BaseMarkProps,
|
|
11
|
+
ConstantAccessor,
|
|
12
|
+
ChannelAccessor
|
|
13
|
+
} from '../types.js';
|
|
14
|
+
|
|
15
|
+
type RuleXMarkProps = BaseMarkProps & {
|
|
16
|
+
data: DataRecord[];
|
|
17
|
+
x?: ChannelAccessor;
|
|
18
|
+
y1?: ChannelAccessor;
|
|
19
|
+
y2?: ChannelAccessor;
|
|
20
|
+
inset?: ConstantAccessor<number>;
|
|
21
|
+
insetTop?: ConstantAccessor<number>;
|
|
22
|
+
insetBottom?: ConstantAccessor<number>;
|
|
23
|
+
dx?: ConstantAccessor<number>;
|
|
24
|
+
dy?: ConstantAccessor<number>;
|
|
25
|
+
};
|
|
10
26
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
y1={y1 != null ? plot.yScale(resolveChannel('y', datum, y1)) : plot.margins.top}
|
|
18
|
-
y2={y2 != null
|
|
19
|
-
? plot.yScale(resolveChannel('y', datum, y2))
|
|
20
|
-
: plot.plotHeight + plot.margins.top}
|
|
21
|
-
/>
|
|
22
|
-
{/each}
|
|
23
|
-
</g>
|
|
24
|
-
</BaseMark_RuleX>
|
|
27
|
+
let { data = [{}], class: className = null, ...options }: RuleXMarkProps = $props();
|
|
28
|
+
|
|
29
|
+
const { getPlotState } = getContext<PlotContext>('svelteplot');
|
|
30
|
+
const plot = $derived(getPlotState());
|
|
31
|
+
const args = $derived(recordizeX({ data, ...options }, { withIndex: false }));
|
|
32
|
+
</script>
|
|
25
33
|
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
34
|
+
<Mark type="ruleX" channels={['x', 'y1', 'y2', 'stroke', 'opacity', 'strokeOpacity']} {...args}>
|
|
35
|
+
{#snippet children({ mark, scaledData, usedScales })}
|
|
36
|
+
<GroupMultiple class="rule-x {className || ''}" length={className ? 2 : scaledData.length}>
|
|
37
|
+
{#each scaledData as d}
|
|
38
|
+
{@const inset = resolveProp(args.inset, d.datum, 0)}
|
|
39
|
+
{@const insetTop = resolveProp(args.insetTop, d.datum, 0)}
|
|
40
|
+
{@const insetBottom = resolveProp(args.insetBottom, d.datum, 0)}
|
|
41
|
+
{@const dx = resolveProp(args.dx, d.datum, 0)}
|
|
42
|
+
{@const dy = resolveProp(args.dy, d.datum, 0)}
|
|
43
|
+
{@const [style, styleClass] = resolveStyles(plot, d, args, 'stroke', usedScales)}
|
|
44
|
+
<line
|
|
45
|
+
transform="translate({d.x + dx}, {dy})"
|
|
46
|
+
{style}
|
|
47
|
+
class={[styleClass]}
|
|
48
|
+
y1={(inset || insetTop) + (d.y1 != null ? d.y1 : plot.options.marginTop)}
|
|
49
|
+
y2={(d.y2 != null ? d.y2 : plot.facetHeight + plot.options.marginTop) -
|
|
50
|
+
(inset || insetBottom)} />
|
|
51
|
+
{/each}
|
|
52
|
+
</GroupMultiple>
|
|
53
|
+
{/snippet}
|
|
54
|
+
</Mark>
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import type { DataRecord, BaseMarkProps, ConstantAccessor, ChannelAccessor } from '../types.js';
|
|
2
|
+
type RuleXMarkProps = BaseMarkProps & {
|
|
3
|
+
data: DataRecord[];
|
|
4
|
+
x?: ChannelAccessor;
|
|
5
|
+
y1?: ChannelAccessor;
|
|
6
|
+
y2?: ChannelAccessor;
|
|
7
|
+
inset?: ConstantAccessor<number>;
|
|
8
|
+
insetTop?: ConstantAccessor<number>;
|
|
9
|
+
insetBottom?: ConstantAccessor<number>;
|
|
10
|
+
dx?: ConstantAccessor<number>;
|
|
11
|
+
dy?: ConstantAccessor<number>;
|
|
9
12
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export
|
|
13
|
-
export default class RuleX extends SvelteComponent<RuleXProps, RuleXEvents, RuleXSlots> {
|
|
14
|
-
}
|
|
15
|
-
export {};
|
|
13
|
+
declare const RuleX: import("svelte").Component<RuleXMarkProps, {}, "">;
|
|
14
|
+
type RuleX = ReturnType<typeof RuleX>;
|
|
15
|
+
export default RuleX;
|
package/dist/marks/RuleY.svelte
CHANGED
|
@@ -1,30 +1,54 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Mark from '../Mark.svelte';
|
|
3
|
+
import GroupMultiple from './helpers/GroupMultiple.svelte';
|
|
4
|
+
import { getContext } from 'svelte';
|
|
5
|
+
import { recordizeY } from '../transforms/recordize.js';
|
|
6
|
+
import { resolveProp, resolveStyles } from '../helpers/resolve.js';
|
|
7
|
+
import type {
|
|
8
|
+
PlotContext,
|
|
9
|
+
DataRecord,
|
|
10
|
+
BaseMarkProps,
|
|
11
|
+
ConstantAccessor,
|
|
12
|
+
ChannelAccessor
|
|
13
|
+
} from '../types.js';
|
|
14
|
+
|
|
15
|
+
type RuleYMarkProps = BaseMarkProps & {
|
|
16
|
+
data: DataRecord[];
|
|
17
|
+
y?: ChannelAccessor;
|
|
18
|
+
x1?: ChannelAccessor;
|
|
19
|
+
x2?: ChannelAccessor;
|
|
20
|
+
inset?: ConstantAccessor<number>;
|
|
21
|
+
insetLeft?: ConstantAccessor<number>;
|
|
22
|
+
insetRight?: ConstantAccessor<number>;
|
|
23
|
+
dx?: ConstantAccessor<number>;
|
|
24
|
+
dy?: ConstantAccessor<number>;
|
|
25
|
+
};
|
|
10
26
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
x1={x1 != null ? plot.xScale(resolveChannel('x', datum, x1)) : plot.margins.left}
|
|
18
|
-
x2={x2 != null
|
|
19
|
-
? plot.xScale(resolveChannel('x', datum, x2))
|
|
20
|
-
: plot.plotWidth + plot.margins.left}
|
|
21
|
-
/>
|
|
22
|
-
{/each}
|
|
23
|
-
</g>
|
|
24
|
-
</BaseMark_RuleY>
|
|
27
|
+
let { data = [{}], class: className = null, ...options }: RuleYMarkProps = $props();
|
|
28
|
+
|
|
29
|
+
const { getPlotState } = getContext<PlotContext>('svelteplot');
|
|
30
|
+
const plot = $derived(getPlotState());
|
|
31
|
+
const args = $derived(recordizeY({ data, ...options }, { withIndex: false }));
|
|
32
|
+
</script>
|
|
25
33
|
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
34
|
+
<Mark type="ruleY" channels={['y', 'x1', 'x2', 'stroke', 'opacity', 'strokeOpacity']} {...args}>
|
|
35
|
+
{#snippet children({ scaledData, usedScales })}
|
|
36
|
+
<GroupMultiple class="rule-y {className || ''}" length={className ? 2 : args.data.length}>
|
|
37
|
+
{#each scaledData as d}
|
|
38
|
+
{@const inset = resolveProp(args.inset, d.datum, 0)}
|
|
39
|
+
{@const insetLeft = resolveProp(args.insetLeft, d.datum, 0)}
|
|
40
|
+
{@const insetRight = resolveProp(args.insetRight, d.datum, 0)}
|
|
41
|
+
{@const dx = resolveProp(args.dx, d.datum, 0)}
|
|
42
|
+
{@const dy = resolveProp(args.dy, d.datum, 0)}
|
|
43
|
+
{@const [style, styleClass] = resolveStyles(plot, d, args, 'stroke', usedScales)}
|
|
44
|
+
<line
|
|
45
|
+
transform="translate({dx}, {d.y + dy})"
|
|
46
|
+
{style}
|
|
47
|
+
class={[styleClass]}
|
|
48
|
+
x1={(inset || insetLeft) + (d.x1 != null ? d.x1 : plot.options.marginLeft)}
|
|
49
|
+
x2={(d.x2 != null ? d.x2 : plot.facetWidth + plot.options.marginLeft) -
|
|
50
|
+
(inset || insetRight)} />
|
|
51
|
+
{/each}
|
|
52
|
+
</GroupMultiple>
|
|
53
|
+
{/snippet}
|
|
54
|
+
</Mark>
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import type { DataRecord, BaseMarkProps, ConstantAccessor, ChannelAccessor } from '../types.js';
|
|
2
|
+
type RuleYMarkProps = BaseMarkProps & {
|
|
3
|
+
data: DataRecord[];
|
|
4
|
+
y?: ChannelAccessor;
|
|
5
|
+
x1?: ChannelAccessor;
|
|
6
|
+
x2?: ChannelAccessor;
|
|
7
|
+
inset?: ConstantAccessor<number>;
|
|
8
|
+
insetLeft?: ConstantAccessor<number>;
|
|
9
|
+
insetRight?: ConstantAccessor<number>;
|
|
10
|
+
dx?: ConstantAccessor<number>;
|
|
11
|
+
dy?: ConstantAccessor<number>;
|
|
9
12
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export
|
|
13
|
-
export default class RuleY extends SvelteComponent<RuleYProps, RuleYEvents, RuleYSlots> {
|
|
14
|
-
}
|
|
15
|
-
export {};
|
|
13
|
+
declare const RuleY: import("svelte").Component<RuleYMarkProps, {}, "">;
|
|
14
|
+
type RuleY = ReturnType<typeof RuleY>;
|
|
15
|
+
export default RuleY;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
declare const Sphere: import("svelte").Component<Partial<{
|
|
2
|
+
filter?: import("../types.js").ConstantAccessor<boolean>;
|
|
3
|
+
facet?: "auto" | "include" | "exclude";
|
|
4
|
+
fx: import("../types.js").ChannelAccessor;
|
|
5
|
+
fy: import("../types.js").ChannelAccessor;
|
|
6
|
+
dx: import("../types.js").ConstantAccessor<number>;
|
|
7
|
+
dy: import("../types.js").ConstantAccessor<number>;
|
|
8
|
+
fill: import("../types.js").ConstantAccessor<string>;
|
|
9
|
+
fillOpacity: import("../types.js").ConstantAccessor<number>;
|
|
10
|
+
stroke: import("../types.js").ConstantAccessor<string>;
|
|
11
|
+
strokeWidth: import("../types.js").ConstantAccessor<number>;
|
|
12
|
+
strokeOpacity: import("../types.js").ConstantAccessor<number>;
|
|
13
|
+
strokeLinejoin: import("../types.js").ConstantAccessor<"bevel" | "miter" | "miter-clip" | "round">;
|
|
14
|
+
strokeLinecap: import("../types.js").ConstantAccessor<"butt" | "square" | "round">;
|
|
15
|
+
strokeMiterlimit: import("../types.js").ConstantAccessor<number>;
|
|
16
|
+
opacity: import("../types.js").ConstantAccessor<number>;
|
|
17
|
+
strokeDasharray: import("../types.js").ConstantAccessor<string>;
|
|
18
|
+
strokeDashoffset: import("../types.js").ConstantAccessor<number>;
|
|
19
|
+
mixBlendMode: import("../types.js").ConstantAccessor<"normal" | "multiply" | "screen" | "overlay" | "darken" | "lighten" | "color-dodge" | "color-burn" | "hard-light" | "soft-light" | "difference" | "exclusion" | "hue" | "saturation" | "color" | "luminosity" | "plus-darker" | "plus-lighter">;
|
|
20
|
+
clipPath: string;
|
|
21
|
+
imageFilter: import("../types.js").ConstantAccessor<string>;
|
|
22
|
+
shapeRendering: import("../types.js").ConstantAccessor<"crispEdges" | "geometricPrecision" | "optimizeSpeed" | "auto">;
|
|
23
|
+
paintOrder: import("../types.js").ConstantAccessor<string>;
|
|
24
|
+
onclick?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
25
|
+
ondblclick?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
26
|
+
onmouseup?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
27
|
+
onmousedown?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
28
|
+
onmouseenter?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
29
|
+
onmousemove?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
30
|
+
onmouseleave?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
31
|
+
onmouseout?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
32
|
+
ondrag?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
33
|
+
ondrop?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
34
|
+
ondragstart?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
35
|
+
ondragenter?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
36
|
+
ondragleave?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
37
|
+
ondragover?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
38
|
+
ondragend?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
39
|
+
ontouchstart?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
40
|
+
ontouchmove?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
41
|
+
ontouchend?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
42
|
+
ontouchcancel?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
43
|
+
oncontextmenu?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
44
|
+
onwheel?: import("svelte/elements").MouseEventHandler<SVGPathElement>;
|
|
45
|
+
title: import("../types.js").ConstantAccessor<string>;
|
|
46
|
+
href: import("../types.js").ConstantAccessor<string>;
|
|
47
|
+
target: import("../types.js").ConstantAccessor<"_self" | "_blank" | string>;
|
|
48
|
+
class: string;
|
|
49
|
+
}>, {}, "">;
|
|
50
|
+
type Sphere = ReturnType<typeof Sphere>;
|
|
51
|
+
export default Sphere;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Vector, { type VectorMarkProps } from './Vector.svelte';
|
|
3
|
+
let { data = [{}], ...options }: VectorMarkProps = $props();
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<Vector
|
|
7
|
+
{data}
|
|
8
|
+
fill={options.stroke || 'currentColor'}
|
|
9
|
+
fillOpacity={0.3}
|
|
10
|
+
strokeWidth={1}
|
|
11
|
+
anchor="start"
|
|
12
|
+
stroke="currentColor"
|
|
13
|
+
sort={{ channel: '-y' }}
|
|
14
|
+
{...options}
|
|
15
|
+
shape="spike" />
|
|
@@ -1,24 +1,38 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { getContext } from 'svelte';
|
|
3
|
+
import { symbol as d3Symbol } from 'd3-shape';
|
|
4
|
+
import { maybeSymbol } from '../helpers/symbols.js';
|
|
5
|
+
import type { PlotContext } from '../types.js';
|
|
6
|
+
|
|
7
|
+
const { getPlotState } = getContext<PlotContext>('svelteplot');
|
|
8
|
+
let plot = $derived(getPlotState());
|
|
9
|
+
|
|
10
|
+
// TODO: allow styling of legend
|
|
5
11
|
</script>
|
|
6
12
|
|
|
7
|
-
|
|
13
|
+
<!--
|
|
14
|
+
@component
|
|
15
|
+
The SymbolLegend is an HTML mark that can be placed in the header, footer and overlay
|
|
16
|
+
snippets. You can activate an implicit SymbolLegend above the chart using the global
|
|
17
|
+
symbol.legend scale option.
|
|
18
|
+
-->
|
|
19
|
+
|
|
20
|
+
{#if plot.scales.color.manualActiveMarks > 0}
|
|
8
21
|
<div class="symbol-legend">
|
|
9
|
-
{#each plot.
|
|
10
|
-
{@const symbolV = plot.
|
|
22
|
+
{#each plot.scales.color.domain as value}
|
|
23
|
+
{@const symbolV = plot.scales.symbol.fn(value)}
|
|
11
24
|
{@const symbolType = maybeSymbol(symbolV)}
|
|
12
|
-
{@const color = plot.colorSymbolRedundant
|
|
25
|
+
{@const color = plot.colorSymbolRedundant
|
|
26
|
+
? plot.scales.color.fn(value)
|
|
27
|
+
: 'currentColor'}
|
|
13
28
|
<div class="item">
|
|
14
29
|
<div class="swatch">
|
|
15
30
|
<svg width="15" height="15">
|
|
16
31
|
<path
|
|
17
32
|
transform="translate(7.5,7.5)"
|
|
18
|
-
fill={plot.hasFilledDotMarks ? color : 'none'}
|
|
19
|
-
stroke={plot.hasFilledDotMarks ? null : color}
|
|
20
|
-
d={d3Symbol(symbolType, 40)()}
|
|
21
|
-
/>
|
|
33
|
+
style:fill={plot.hasFilledDotMarks ? color : 'none'}
|
|
34
|
+
style:stroke={plot.hasFilledDotMarks ? null : color}
|
|
35
|
+
d={d3Symbol(symbolType, 40)()} />
|
|
22
36
|
</svg>
|
|
23
37
|
</div>
|
|
24
38
|
<span class="item-label">{value}</span>
|
|
@@ -32,6 +46,7 @@ const plot = getContext("svelteplot");
|
|
|
32
46
|
text-align: left;
|
|
33
47
|
font-size: 12px;
|
|
34
48
|
display: inline-block;
|
|
49
|
+
margin-right: 2em;
|
|
35
50
|
}
|
|
36
51
|
.item {
|
|
37
52
|
margin: 0 1em 0.5ex 0;
|
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export type SymbolLegendProps = typeof __propDef.props;
|
|
10
|
-
export type SymbolLegendEvents = typeof __propDef.events;
|
|
11
|
-
export type SymbolLegendSlots = typeof __propDef.slots;
|
|
12
|
-
export default class SymbolLegend extends SvelteComponent<SymbolLegendProps, SymbolLegendEvents, SymbolLegendSlots> {
|
|
13
|
-
}
|
|
14
|
-
export {};
|
|
1
|
+
/**
|
|
2
|
+
* The SymbolLegend is an HTML mark that can be placed in the header, footer and overlay
|
|
3
|
+
* snippets. You can activate an implicit SymbolLegend above the chart using the global
|
|
4
|
+
* symbol.legend scale option.
|
|
5
|
+
*/
|
|
6
|
+
declare const SymbolLegend: import("svelte").Component<Record<string, never>, {}, "">;
|
|
7
|
+
type SymbolLegend = ReturnType<typeof SymbolLegend>;
|
|
8
|
+
export default SymbolLegend;
|