svelteplot 0.2.10 → 0.3.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.
- package/dist/Plot.svelte +2 -1
- package/dist/core/Plot.svelte +35 -18
- package/dist/marks/Area.svelte +13 -3
- package/dist/marks/AreaX.svelte +7 -3
- package/dist/marks/AreaX.svelte.d.ts +1 -6
- package/dist/marks/AreaY.svelte +7 -2
- package/dist/marks/AreaY.svelte.d.ts +1 -9
- package/dist/marks/Arrow.svelte +24 -7
- package/dist/marks/AxisX.svelte +19 -20
- package/dist/marks/AxisX.svelte.d.ts +1 -4
- package/dist/marks/AxisY.svelte +19 -20
- package/dist/marks/AxisY.svelte.d.ts +1 -4
- package/dist/marks/BarX.svelte +16 -2
- package/dist/marks/BarY.svelte +17 -3
- package/dist/marks/BoxX.svelte +25 -9
- package/dist/marks/BoxX.svelte.d.ts +3 -2
- package/dist/marks/BoxY.svelte +22 -10
- package/dist/marks/BoxY.svelte.d.ts +3 -3
- package/dist/marks/Brush.svelte +30 -10
- package/dist/marks/BrushX.svelte +8 -2
- package/dist/marks/BrushX.svelte.d.ts +1 -1
- package/dist/marks/BrushY.svelte +8 -2
- package/dist/marks/BrushY.svelte.d.ts +1 -1
- package/dist/marks/Cell.svelte +16 -2
- package/dist/marks/ColorLegend.svelte +2 -2
- package/dist/marks/Dot.svelte +9 -5
- package/dist/marks/Frame.svelte +23 -4
- package/dist/marks/Geo.svelte +14 -4
- package/dist/marks/Graticule.svelte +15 -5
- package/dist/marks/GridX.svelte +16 -2
- package/dist/marks/GridY.svelte +16 -2
- package/dist/marks/Line.svelte +22 -8
- package/dist/marks/Link.svelte +12 -4
- package/dist/marks/Pointer.svelte +12 -3
- package/dist/marks/Rect.svelte +16 -2
- package/dist/marks/RectX.svelte +16 -2
- package/dist/marks/RectY.svelte +16 -2
- package/dist/marks/RuleX.svelte +15 -2
- package/dist/marks/RuleY.svelte +15 -2
- package/dist/marks/Sphere.svelte +13 -2
- package/dist/marks/Spike.svelte +21 -11
- package/dist/marks/Text.svelte +22 -4
- package/dist/marks/TickX.svelte +15 -2
- package/dist/marks/TickY.svelte +15 -2
- package/dist/marks/Vector.svelte +13 -5
- package/dist/transforms/sort.d.ts +2 -2
- package/dist/types.d.ts +227 -75
- package/dist/ui/ExamplesGrid.svelte +1 -1
- package/package.json +1 -1
package/dist/marks/RuleX.svelte
CHANGED
|
@@ -24,10 +24,23 @@
|
|
|
24
24
|
DataRecord,
|
|
25
25
|
BaseMarkProps,
|
|
26
26
|
ConstantAccessor,
|
|
27
|
-
ChannelAccessor
|
|
27
|
+
ChannelAccessor,
|
|
28
|
+
PlotDefaults
|
|
28
29
|
} from '../types.js';
|
|
29
30
|
|
|
30
|
-
let
|
|
31
|
+
let markProps: RuleXMarkProps = $props();
|
|
32
|
+
const DEFAULTS = {
|
|
33
|
+
...getContext<PlotDefaults>('svelteplot/_defaults').rule,
|
|
34
|
+
...getContext<PlotDefaults>('svelteplot/_defaults').ruleX
|
|
35
|
+
};
|
|
36
|
+
const {
|
|
37
|
+
data = [{}],
|
|
38
|
+
class: className = '',
|
|
39
|
+
...options
|
|
40
|
+
}: RuleXMarkProps = $derived({
|
|
41
|
+
...DEFAULTS,
|
|
42
|
+
...markProps
|
|
43
|
+
});
|
|
31
44
|
|
|
32
45
|
const { getPlotState } = getContext<PlotContext>('svelteplot');
|
|
33
46
|
const plot = $derived(getPlotState());
|
package/dist/marks/RuleY.svelte
CHANGED
|
@@ -24,10 +24,23 @@
|
|
|
24
24
|
DataRecord,
|
|
25
25
|
BaseMarkProps,
|
|
26
26
|
ConstantAccessor,
|
|
27
|
-
ChannelAccessor
|
|
27
|
+
ChannelAccessor,
|
|
28
|
+
PlotDefaults
|
|
28
29
|
} from '../types.js';
|
|
29
30
|
|
|
30
|
-
let
|
|
31
|
+
let markProps: RuleYMarkProps = $props();
|
|
32
|
+
const DEFAULTS = {
|
|
33
|
+
...getContext<PlotDefaults>('svelteplot/_defaults').rule,
|
|
34
|
+
...getContext<PlotDefaults>('svelteplot/_defaults').ruleY
|
|
35
|
+
};
|
|
36
|
+
const {
|
|
37
|
+
data = [{}],
|
|
38
|
+
class: className = '',
|
|
39
|
+
...options
|
|
40
|
+
}: RuleYMarkProps = $derived({
|
|
41
|
+
...DEFAULTS,
|
|
42
|
+
...markProps
|
|
43
|
+
});
|
|
31
44
|
|
|
32
45
|
const { getPlotState } = getContext<PlotContext>('svelteplot');
|
|
33
46
|
const plot = $derived(getPlotState());
|
package/dist/marks/Sphere.svelte
CHANGED
|
@@ -8,8 +8,19 @@
|
|
|
8
8
|
|
|
9
9
|
<script lang="ts">
|
|
10
10
|
import Geo from './Geo.svelte';
|
|
11
|
+
import { getContext } from 'svelte';
|
|
12
|
+
import type { PlotDefaults } from '../types.js';
|
|
11
13
|
|
|
12
|
-
let
|
|
14
|
+
let markProps: SphereMarkProps = $props();
|
|
15
|
+
|
|
16
|
+
const DEFAULTS = {
|
|
17
|
+
...getContext<PlotDefaults>('svelteplot/_defaults').sphere
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const { ...options }: SphereMarkProps = $derived({
|
|
21
|
+
...DEFAULTS,
|
|
22
|
+
...markProps
|
|
23
|
+
});
|
|
13
24
|
</script>
|
|
14
25
|
|
|
15
|
-
<Geo data={[{ type: 'Sphere' }]} {...
|
|
26
|
+
<Geo data={[{ type: 'Sphere' }]} {...options} geoType="sphere" />
|
package/dist/marks/Spike.svelte
CHANGED
|
@@ -8,16 +8,26 @@
|
|
|
8
8
|
|
|
9
9
|
<script lang="ts">
|
|
10
10
|
import Vector, { type VectorMarkProps } from './Vector.svelte';
|
|
11
|
-
|
|
11
|
+
import type { PlotDefaults } from '../types.js';
|
|
12
|
+
import { getContext } from 'svelte';
|
|
13
|
+
|
|
14
|
+
let markProps: SpikeMarkProps = $props();
|
|
15
|
+
|
|
16
|
+
const DEFAULTS = {
|
|
17
|
+
fill: 'currentColor',
|
|
18
|
+
fillOpacity: 0.3,
|
|
19
|
+
strokeWidth: 1,
|
|
20
|
+
anchor: 'start' as const,
|
|
21
|
+
stroke: 'currentColor',
|
|
22
|
+
sort: { channel: '-y' },
|
|
23
|
+
shape: 'spike' as const,
|
|
24
|
+
...getContext<PlotDefaults>('svelteplot/_defaults').spike
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const { data = [{}], ...options }: SpikeMarkProps = $derived({
|
|
28
|
+
...DEFAULTS,
|
|
29
|
+
...markProps
|
|
30
|
+
});
|
|
12
31
|
</script>
|
|
13
32
|
|
|
14
|
-
<Vector
|
|
15
|
-
{data}
|
|
16
|
-
fill={options.stroke || 'currentColor'}
|
|
17
|
-
fillOpacity={0.3}
|
|
18
|
-
strokeWidth={1}
|
|
19
|
-
anchor="start"
|
|
20
|
-
stroke="currentColor"
|
|
21
|
-
sort={{ channel: '-y' }}
|
|
22
|
-
{...options}
|
|
23
|
-
shape="spike" />
|
|
33
|
+
<Vector {data} {...options} />
|
package/dist/marks/Text.svelte
CHANGED
|
@@ -39,13 +39,30 @@
|
|
|
39
39
|
DataRecord,
|
|
40
40
|
BaseMarkProps,
|
|
41
41
|
ConstantAccessor,
|
|
42
|
-
ChannelAccessor
|
|
42
|
+
ChannelAccessor,
|
|
43
|
+
PlotDefaults
|
|
43
44
|
} from '../types.js';
|
|
44
45
|
import { resolveProp, resolveStyles } from '../helpers/resolve.js';
|
|
45
46
|
import Mark from '../Mark.svelte';
|
|
46
47
|
import { sort } from '../index.js';
|
|
47
48
|
|
|
48
|
-
|
|
49
|
+
const DEFAULTS = {
|
|
50
|
+
fontSize: 12,
|
|
51
|
+
fontWeight: 500,
|
|
52
|
+
strokeWidth: 1.6,
|
|
53
|
+
...getContext<PlotDefaults>('svelteplot/_defaults').text
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
let markProps: TextMarkProps = $props();
|
|
57
|
+
|
|
58
|
+
const {
|
|
59
|
+
data = [{}],
|
|
60
|
+
class: className = '',
|
|
61
|
+
...options
|
|
62
|
+
}: TextMarkProps = $derived({
|
|
63
|
+
...DEFAULTS,
|
|
64
|
+
...markProps
|
|
65
|
+
});
|
|
49
66
|
|
|
50
67
|
const { getPlotState } = getContext<PlotContext>('svelteplot');
|
|
51
68
|
let plot = $derived(getPlotState());
|
|
@@ -54,7 +71,7 @@
|
|
|
54
71
|
bottom: 'auto',
|
|
55
72
|
middle: 'central',
|
|
56
73
|
top: 'hanging'
|
|
57
|
-
};
|
|
74
|
+
} as const;
|
|
58
75
|
|
|
59
76
|
const args = $derived(
|
|
60
77
|
sort({
|
|
@@ -77,9 +94,10 @@
|
|
|
77
94
|
'strokeOpacity',
|
|
78
95
|
'fillOpacity'
|
|
79
96
|
]}
|
|
97
|
+
required={['x', 'y']}
|
|
80
98
|
{...args}>
|
|
81
99
|
{#snippet children({ mark, scaledData, usedScales })}
|
|
82
|
-
<GroupMultiple class="text {className
|
|
100
|
+
<GroupMultiple class="text {className}" length={className ? 2 : args.data.length}>
|
|
83
101
|
{#each scaledData as d, i (i)}
|
|
84
102
|
{#if d.valid}
|
|
85
103
|
{@const title = resolveProp(args.title, d.datum, '')}
|
package/dist/marks/TickX.svelte
CHANGED
|
@@ -31,7 +31,8 @@
|
|
|
31
31
|
BaseMarkProps,
|
|
32
32
|
ChannelAccessor,
|
|
33
33
|
DataRow,
|
|
34
|
-
FacetContext
|
|
34
|
+
FacetContext,
|
|
35
|
+
PlotDefaults
|
|
35
36
|
} from '../types.js';
|
|
36
37
|
import { recordizeX } from '../index.js';
|
|
37
38
|
import { projectX, projectY } from '../helpers/scales.js';
|
|
@@ -41,7 +42,19 @@
|
|
|
41
42
|
const { getPlotState } = getContext<PlotContext>('svelteplot');
|
|
42
43
|
let plot = $derived(getPlotState());
|
|
43
44
|
|
|
44
|
-
let
|
|
45
|
+
let markProps: TickXMarkProps = $props();
|
|
46
|
+
const DEFAULTS = {
|
|
47
|
+
...getContext<PlotDefaults>('svelteplot/_defaults').tick,
|
|
48
|
+
...getContext<PlotDefaults>('svelteplot/_defaults').tickX
|
|
49
|
+
};
|
|
50
|
+
const {
|
|
51
|
+
data = [{}],
|
|
52
|
+
class: className = '',
|
|
53
|
+
...options
|
|
54
|
+
}: TickXMarkProps = $derived({
|
|
55
|
+
...DEFAULTS,
|
|
56
|
+
...markProps
|
|
57
|
+
});
|
|
45
58
|
|
|
46
59
|
let args = $derived(recordizeX({ data, ...options }, { withIndex: false }));
|
|
47
60
|
|
package/dist/marks/TickY.svelte
CHANGED
|
@@ -32,7 +32,8 @@
|
|
|
32
32
|
ChannelAccessor,
|
|
33
33
|
DataRow,
|
|
34
34
|
FacetContext,
|
|
35
|
-
ConstantAccessor
|
|
35
|
+
ConstantAccessor,
|
|
36
|
+
PlotDefaults
|
|
36
37
|
} from '../types.js';
|
|
37
38
|
import { recordizeY } from '../index.js';
|
|
38
39
|
import { projectX, projectY } from '../helpers/scales.js';
|
|
@@ -42,7 +43,19 @@
|
|
|
42
43
|
const { getPlotState } = getContext<PlotContext>('svelteplot');
|
|
43
44
|
let plot = $derived(getPlotState());
|
|
44
45
|
|
|
45
|
-
let
|
|
46
|
+
let markProps: TickYMarkProps = $props();
|
|
47
|
+
const DEFAULTS = {
|
|
48
|
+
...getContext<PlotDefaults>('svelteplot/_defaults').tick,
|
|
49
|
+
...getContext<PlotDefaults>('svelteplot/_defaults').tickY
|
|
50
|
+
};
|
|
51
|
+
const {
|
|
52
|
+
data = [{}],
|
|
53
|
+
class: className = '',
|
|
54
|
+
...options
|
|
55
|
+
}: TickYMarkProps = $derived({
|
|
56
|
+
...DEFAULTS,
|
|
57
|
+
...markProps
|
|
58
|
+
});
|
|
46
59
|
|
|
47
60
|
let args = $derived(recordizeY({ data, ...options }, { withIndex: false }));
|
|
48
61
|
|
package/dist/marks/Vector.svelte
CHANGED
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
BaseMarkProps,
|
|
10
10
|
ConstantAccessor,
|
|
11
11
|
ChannelAccessor,
|
|
12
|
-
FacetContext
|
|
12
|
+
FacetContext,
|
|
13
|
+
PlotDefaults
|
|
13
14
|
} from '../types.js';
|
|
14
15
|
|
|
15
16
|
type D3Path = ReturnType<typeof import('d3-path').path>;
|
|
@@ -53,19 +54,26 @@
|
|
|
53
54
|
const defaultRadius = 3.5;
|
|
54
55
|
|
|
55
56
|
// The size of the arrowhead is proportional to its length, but we still allow
|
|
56
|
-
// the relative size of the head to be controlled via the mark
|
|
57
|
+
// the relative size of the head to be controlled via the mark's width option;
|
|
57
58
|
// doubling the default radius will produce an arrowhead that is twice as big.
|
|
58
|
-
// That said, we
|
|
59
|
+
// That said, we'll probably want a arrow with a fixed head size, too.
|
|
59
60
|
const wingRatio = defaultRadius * 5;
|
|
60
61
|
|
|
61
|
-
let
|
|
62
|
+
let markProps: VectorMarkProps = $props();
|
|
63
|
+
const DEFAULTS = {
|
|
64
|
+
...getContext<PlotDefaults>('svelteplot/_defaults').vector
|
|
65
|
+
};
|
|
66
|
+
const {
|
|
62
67
|
data = [{}],
|
|
63
68
|
canvas,
|
|
64
69
|
shape = 'arrow',
|
|
65
70
|
anchor = 'middle',
|
|
66
71
|
r = defaultRadius,
|
|
67
72
|
...options
|
|
68
|
-
}: VectorMarkProps = $
|
|
73
|
+
}: VectorMarkProps = $derived({
|
|
74
|
+
...DEFAULTS,
|
|
75
|
+
...markProps
|
|
76
|
+
});
|
|
69
77
|
|
|
70
78
|
const { getPlotState } = getContext<PlotContext>('svelteplot');
|
|
71
79
|
const plot = $derived(getPlotState());
|
|
@@ -4,10 +4,10 @@ export declare const IS_SORTED: unique symbol;
|
|
|
4
4
|
export declare function sort({ data, ...channels }: TransformArg<DataRecord>, options?: {
|
|
5
5
|
reverse?: boolean;
|
|
6
6
|
}): {
|
|
7
|
-
[IS_SORTED]: string | number | true | symbol | Date | ((d: DataRow) => import("../types.js").RawValue) | {
|
|
7
|
+
[IS_SORTED]: string | number | true | symbol | Date | ((d: DataRow) => import("../types.js").RawValue) | ((a: import("../types.js").RawValue, b: import("../types.js").RawValue) => number) | {
|
|
8
8
|
channel: string;
|
|
9
9
|
order?: "ascending" | "descending";
|
|
10
|
-
}
|
|
10
|
+
};
|
|
11
11
|
sort: null;
|
|
12
12
|
filter?: import("../types.js").ConstantAccessor<boolean>;
|
|
13
13
|
facet?: "auto" | "include" | "exclude" | undefined;
|
package/dist/types.d.ts
CHANGED
|
@@ -4,6 +4,37 @@ import type { MouseEventHandler } from 'svelte/elements';
|
|
|
4
4
|
import type { MarkerShape } from './marks/helpers/Marker.svelte';
|
|
5
5
|
import type { Writable } from 'svelte/store';
|
|
6
6
|
import type * as CSS from 'csstype';
|
|
7
|
+
import type { AreaMarkProps } from './marks/Area.svelte';
|
|
8
|
+
import type { ArrowMarkProps } from './marks/Arrow.svelte';
|
|
9
|
+
import type { AxisXMarkProps } from './marks/AxisX.svelte';
|
|
10
|
+
import type { AxisYMarkProps } from './marks/AxisY.svelte';
|
|
11
|
+
import type { BarXMarkProps } from './marks/BarX.svelte';
|
|
12
|
+
import type { CellMarkProps } from './marks/Cell.svelte';
|
|
13
|
+
import type { DotMarkProps } from './marks/Dot.svelte';
|
|
14
|
+
import type { FrameMarkProps } from './marks/Frame.svelte';
|
|
15
|
+
import type { GeoMarkProps } from './marks/Geo.svelte';
|
|
16
|
+
import type { GraticuleMarkProps } from './marks/Graticule.svelte';
|
|
17
|
+
import type { LineMarkProps } from './marks/Line.svelte';
|
|
18
|
+
import type { LinkMarkProps } from './marks/Link.svelte';
|
|
19
|
+
import type { RectMarkProps } from './marks/Rect.svelte';
|
|
20
|
+
import type { RuleXMarkProps } from './marks/RuleX.svelte';
|
|
21
|
+
import type { SphereMarkProps } from './marks/Sphere.svelte';
|
|
22
|
+
import type { SpikeMarkProps } from './marks/Spike.svelte';
|
|
23
|
+
import type { TextMarkProps } from './marks/Text.svelte';
|
|
24
|
+
import type { TickXMarkProps } from './marks/TickX.svelte';
|
|
25
|
+
import type { VectorMarkProps } from './marks/Vector.svelte';
|
|
26
|
+
import type { BrushMarkProps } from './marks/Brush.svelte';
|
|
27
|
+
import type { BrushXMarkProps } from './marks/BrushX.svelte';
|
|
28
|
+
import type { BrushYMarkProps } from './marks/BrushY.svelte';
|
|
29
|
+
import type { RectXMarkProps } from './marks/RectX.svelte';
|
|
30
|
+
import type { RectYMarkProps } from './marks/RectY.svelte';
|
|
31
|
+
import type { RuleYMarkProps } from './marks/RuleY.svelte';
|
|
32
|
+
import type { TickYMarkProps } from './marks/TickY.svelte';
|
|
33
|
+
import type { GridYMarkProps } from './marks/GridY.svelte';
|
|
34
|
+
import type { GridXMarkProps } from './marks/GridX.svelte';
|
|
35
|
+
import type { PointerMarkProps } from './marks/Pointer.svelte';
|
|
36
|
+
import type { BoxXMarkProps } from './marks/BoxX.svelte';
|
|
37
|
+
import type { BoxYMarkProps } from './marks/BoxY.svelte';
|
|
7
38
|
export type MarkType = 'area' | 'arrow' | 'axisX' | 'axisY' | 'barX' | 'barY' | 'cell' | 'dot' | 'vector' | 'frame' | 'geo' | 'gridX' | 'gridY' | 'line' | 'rect' | 'regression' | 'ruleX' | 'ruleY' | 'swoopyArrow' | 'text' | 'tickX' | 'tickY';
|
|
8
39
|
export type ScaleName = 'x' | 'y' | 'r' | 'color' | 'opacity' | 'length' | 'symbol' | 'fx' | 'fy' | 'projection';
|
|
9
40
|
export type ScaleType = 'linear' | 'pow' | 'sqrt' | 'log' | 'symlog' | 'time' | 'point' | 'ordinal' | 'sequential' | 'band' | 'categorical' | 'cyclical' | 'threshold' | 'quantile-cont' | 'quantile' | 'quantize' | 'diverging' | 'diverging-log' | 'diverging-pow' | 'diverging-sqrt' | 'diverging-symlog';
|
|
@@ -300,51 +331,6 @@ export type PlotOptions = {
|
|
|
300
331
|
*/
|
|
301
332
|
css: (d: string) => string | undefined;
|
|
302
333
|
};
|
|
303
|
-
export type PlotDefaults = {
|
|
304
|
-
axisXAnchor: AxisXAnchor;
|
|
305
|
-
axisYAnchor: AxisYAnchor;
|
|
306
|
-
xTickSpacing: number;
|
|
307
|
-
yTickSpacing: number;
|
|
308
|
-
height: number;
|
|
309
|
-
inset: number;
|
|
310
|
-
colorScheme: ColorScheme | string[];
|
|
311
|
-
categoricalColorScheme: ColorScheme | string[];
|
|
312
|
-
dotRadius: number;
|
|
313
|
-
/**
|
|
314
|
-
* for computing the automatic height based on the number of
|
|
315
|
-
* domain items in a point scale
|
|
316
|
-
*/
|
|
317
|
-
pointScaleHeight: number;
|
|
318
|
-
/**
|
|
319
|
-
* for computing the automatic height based on the number of
|
|
320
|
-
* domain items in a band scale
|
|
321
|
-
*/
|
|
322
|
-
bandScaleHeight: number;
|
|
323
|
-
/**
|
|
324
|
-
* add frame to plots by default
|
|
325
|
-
*/
|
|
326
|
-
frame: boolean;
|
|
327
|
-
grid: boolean;
|
|
328
|
-
axes: boolean;
|
|
329
|
-
/**
|
|
330
|
-
* initial width of the plot before measuring the actual width
|
|
331
|
-
*/
|
|
332
|
-
initialWidth: number;
|
|
333
|
-
/**
|
|
334
|
-
* locale, used for automatic axis ticks
|
|
335
|
-
*/
|
|
336
|
-
locale: string;
|
|
337
|
-
/**
|
|
338
|
-
* default number format for axis ticks
|
|
339
|
-
*/
|
|
340
|
-
numberFormat: Intl.NumberFormatOptions;
|
|
341
|
-
markerDotRadius: number;
|
|
342
|
-
/**
|
|
343
|
-
* fallback color to be used for null/NA
|
|
344
|
-
*/
|
|
345
|
-
unknown: string;
|
|
346
|
-
css: (d: string) => string | undefined;
|
|
347
|
-
};
|
|
348
334
|
export type GenericMarkOptions = Record<string | symbol, any>;
|
|
349
335
|
export type DataRecord = Record<string | symbol, RawValue> & {
|
|
350
336
|
___orig___?: RawValue | [RawValue, RawValue];
|
|
@@ -492,27 +478,27 @@ export type LinkableMarkProps = {
|
|
|
492
478
|
/**
|
|
493
479
|
* if set, the mark element will be wrapped in a <a> link element
|
|
494
480
|
*/
|
|
495
|
-
href
|
|
481
|
+
href?: ConstantAccessor<string>;
|
|
496
482
|
/**
|
|
497
483
|
* the relationship of the target object to the link object (e.g. "noopener")
|
|
498
484
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/a#rel
|
|
499
485
|
*/
|
|
500
|
-
rel
|
|
486
|
+
rel?: ConstantAccessor<string>;
|
|
501
487
|
/**
|
|
502
488
|
* the link target mime type, e.g. "text/csv"
|
|
503
489
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/a#type
|
|
504
490
|
*/
|
|
505
|
-
type
|
|
491
|
+
type?: ConstantAccessor<string>;
|
|
506
492
|
/**
|
|
507
493
|
* the target of the link, e.g. "_blank" or "_self"
|
|
508
494
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/a#target
|
|
509
495
|
*/
|
|
510
|
-
target
|
|
496
|
+
target?: ConstantAccessor<'_self' | '_blank' | '_parent' | '_top' | string>;
|
|
511
497
|
/**
|
|
512
498
|
* if set to true, the link will be downloaded instead of navigating to it
|
|
513
499
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#download
|
|
514
500
|
*/
|
|
515
|
-
download
|
|
501
|
+
download?: ConstantAccessor<boolean>;
|
|
516
502
|
[key: `data-sveltekit-${string}`]: string | boolean;
|
|
517
503
|
};
|
|
518
504
|
export type BaseMarkProps = Partial<{
|
|
@@ -618,11 +604,12 @@ export type AutoMarginStores = {
|
|
|
618
604
|
autoMarginRight: Writable<Map<string, number>>;
|
|
619
605
|
autoMarginBottom: Writable<Map<string, number>>;
|
|
620
606
|
};
|
|
607
|
+
type IgnoreDefaults = 'data' | 'facet' | ChannelName | 'title' | 'automatic' | 'children';
|
|
621
608
|
/**
|
|
622
609
|
* these are the default options for the plot marks that can be set using
|
|
623
610
|
* the 'svelteplot/defaults' context.
|
|
624
611
|
*/
|
|
625
|
-
export type
|
|
612
|
+
export type PlotDefaults = {
|
|
626
613
|
/**
|
|
627
614
|
* default plot height
|
|
628
615
|
*/
|
|
@@ -632,41 +619,32 @@ export type DefaultOptions = {
|
|
|
632
619
|
*/
|
|
633
620
|
inset: number;
|
|
634
621
|
/**
|
|
635
|
-
* default
|
|
636
|
-
*/
|
|
637
|
-
tickSize: number;
|
|
638
|
-
/**
|
|
639
|
-
* default padding between tick line and tick label
|
|
640
|
-
*/
|
|
641
|
-
tickPadding: number;
|
|
642
|
-
/**
|
|
643
|
-
* default font size for tick labels
|
|
644
|
-
*/
|
|
645
|
-
tickFontSize: number;
|
|
646
|
-
/**
|
|
647
|
-
* default anchor for x axis
|
|
622
|
+
* default color scheme
|
|
648
623
|
*/
|
|
649
|
-
|
|
624
|
+
colorScheme: ColorScheme;
|
|
625
|
+
categoricalColorScheme: ColorScheme | string[];
|
|
650
626
|
/**
|
|
651
|
-
*
|
|
627
|
+
* fallback color to be used for null/NA
|
|
652
628
|
*/
|
|
653
|
-
|
|
629
|
+
unknown: string;
|
|
654
630
|
/**
|
|
655
|
-
*
|
|
631
|
+
* optional @emotion/css function to style the plot
|
|
656
632
|
*/
|
|
657
|
-
|
|
633
|
+
css: (d: string) => string | undefined;
|
|
658
634
|
/**
|
|
659
|
-
*
|
|
635
|
+
* for computing the automatic height based on the number of
|
|
636
|
+
* domain items in a point scale
|
|
660
637
|
*/
|
|
661
|
-
|
|
638
|
+
pointScaleHeight: number;
|
|
662
639
|
/**
|
|
663
|
-
*
|
|
640
|
+
* for computing the automatic height based on the number of
|
|
641
|
+
* domain items in a band scale
|
|
664
642
|
*/
|
|
665
|
-
|
|
643
|
+
bandScaleHeight: number;
|
|
666
644
|
/**
|
|
667
|
-
*
|
|
645
|
+
* initial width of the plot before measuring the actual width
|
|
668
646
|
*/
|
|
669
|
-
|
|
647
|
+
initialWidth: number;
|
|
670
648
|
/**
|
|
671
649
|
* locale, used for automatic axis ticks
|
|
672
650
|
*/
|
|
@@ -679,6 +657,180 @@ export type DefaultOptions = {
|
|
|
679
657
|
* default dot radius for line markers, used in dot, circle, and circle-stroke markers
|
|
680
658
|
*/
|
|
681
659
|
markerDotRadius: number;
|
|
660
|
+
/**
|
|
661
|
+
* default props for area marks, applied to area, areaX, and areaY marks
|
|
662
|
+
*/
|
|
663
|
+
area: Partial<Omit<AreaMarkProps, IgnoreDefaults>>;
|
|
664
|
+
/**
|
|
665
|
+
* default props for areaX marks
|
|
666
|
+
*/
|
|
667
|
+
areaX: Partial<Omit<AreaMarkProps, IgnoreDefaults>>;
|
|
668
|
+
/**
|
|
669
|
+
* default props for areaY marks
|
|
670
|
+
*/
|
|
671
|
+
areaY: Partial<Omit<AreaMarkProps, IgnoreDefaults>>;
|
|
672
|
+
/**
|
|
673
|
+
* default props for arrow marks
|
|
674
|
+
*/
|
|
675
|
+
arrow: Partial<Omit<ArrowMarkProps, IgnoreDefaults>>;
|
|
676
|
+
/**
|
|
677
|
+
* default props for axis marks, applied to both axisX and axisY marks
|
|
678
|
+
*/
|
|
679
|
+
axis: Partial<Omit<AxisXMarkProps, 'data' | 'facet' | ChannelName | 'facetAnchor' | 'labelAnchor' | 'anchor'> & {
|
|
680
|
+
implicit: boolean;
|
|
681
|
+
}>;
|
|
682
|
+
/**
|
|
683
|
+
* default props for axisX marks
|
|
684
|
+
*/
|
|
685
|
+
axisX: Partial<Omit<AxisXMarkProps, IgnoreDefaults> & {
|
|
686
|
+
implicit: boolean;
|
|
687
|
+
}>;
|
|
688
|
+
/**
|
|
689
|
+
* default props for axisY marks
|
|
690
|
+
*/
|
|
691
|
+
axisY: Partial<Omit<AxisYMarkProps, IgnoreDefaults> & {
|
|
692
|
+
implicit: boolean;
|
|
693
|
+
}>;
|
|
694
|
+
/**
|
|
695
|
+
* default props for bar marks, applied to both barX and barY marks
|
|
696
|
+
*/
|
|
697
|
+
bar: Partial<Omit<BarXMarkProps, IgnoreDefaults>>;
|
|
698
|
+
/**
|
|
699
|
+
* default props for barX marks
|
|
700
|
+
*/
|
|
701
|
+
barX: Partial<Omit<BarXMarkProps, IgnoreDefaults>>;
|
|
702
|
+
/**
|
|
703
|
+
* default props for barY marks
|
|
704
|
+
*/
|
|
705
|
+
barY: Partial<Omit<BarXMarkProps, IgnoreDefaults>>;
|
|
706
|
+
/**
|
|
707
|
+
* default props for box marks, applied to boxX and boxY marks
|
|
708
|
+
*/
|
|
709
|
+
box: Partial<Omit<BoxXMarkProps, IgnoreDefaults>>;
|
|
710
|
+
/**
|
|
711
|
+
* default props for boxX marks
|
|
712
|
+
*/
|
|
713
|
+
boxX: Partial<Omit<BoxXMarkProps, IgnoreDefaults>>;
|
|
714
|
+
/**
|
|
715
|
+
* default props for boxY marks
|
|
716
|
+
*/
|
|
717
|
+
boxY: Partial<Omit<BoxYMarkProps, IgnoreDefaults>>;
|
|
718
|
+
/**
|
|
719
|
+
* default props for brush marks, applied to brush, brushX and brushY marks
|
|
720
|
+
*/
|
|
721
|
+
brush: Partial<Omit<BrushMarkProps, IgnoreDefaults | 'limitDimension'>>;
|
|
722
|
+
/**
|
|
723
|
+
* default props for brushX marks
|
|
724
|
+
*/
|
|
725
|
+
brushX: Partial<Omit<BrushXMarkProps, IgnoreDefaults>>;
|
|
726
|
+
/**
|
|
727
|
+
* default props for brushY marks
|
|
728
|
+
*/
|
|
729
|
+
brushY: Partial<Omit<BrushYMarkProps, IgnoreDefaults>>;
|
|
730
|
+
/**
|
|
731
|
+
* default props for cell marks
|
|
732
|
+
*/
|
|
733
|
+
cell: Partial<Omit<CellMarkProps, IgnoreDefaults>>;
|
|
734
|
+
/**
|
|
735
|
+
* default props for dot marks
|
|
736
|
+
*/
|
|
737
|
+
dot: Partial<Omit<DotMarkProps, IgnoreDefaults>>;
|
|
738
|
+
/**
|
|
739
|
+
* default props for frame marks
|
|
740
|
+
*/
|
|
741
|
+
frame: Partial<FrameMarkProps & {
|
|
742
|
+
implicit: boolean;
|
|
743
|
+
}>;
|
|
744
|
+
/**
|
|
745
|
+
* default props for geo marks
|
|
746
|
+
*/
|
|
747
|
+
geo: Partial<Omit<GeoMarkProps, IgnoreDefaults>>;
|
|
748
|
+
/**
|
|
749
|
+
* default props for graticule marks
|
|
750
|
+
*/
|
|
751
|
+
graticule: Partial<Omit<GraticuleMarkProps, IgnoreDefaults>>;
|
|
752
|
+
/**
|
|
753
|
+
* default props for grid marks, applied to both gridX and gridY marks
|
|
754
|
+
*/
|
|
755
|
+
grid: Partial<Omit<GridXMarkProps, IgnoreDefaults> & {
|
|
756
|
+
implicit: boolean;
|
|
757
|
+
}>;
|
|
758
|
+
/**
|
|
759
|
+
* default props for gridX marks
|
|
760
|
+
*/
|
|
761
|
+
gridX: Partial<Omit<GridXMarkProps, IgnoreDefaults> & {
|
|
762
|
+
implicit: boolean;
|
|
763
|
+
}>;
|
|
764
|
+
/**
|
|
765
|
+
* default props for gridY marks
|
|
766
|
+
*/
|
|
767
|
+
gridY: Partial<Omit<GridYMarkProps, IgnoreDefaults> & {
|
|
768
|
+
implicit: boolean;
|
|
769
|
+
}>;
|
|
770
|
+
/**
|
|
771
|
+
* default props for line marks
|
|
772
|
+
*/
|
|
773
|
+
line: Partial<Omit<LineMarkProps, IgnoreDefaults>>;
|
|
774
|
+
/**
|
|
775
|
+
* default props for link marks
|
|
776
|
+
*/
|
|
777
|
+
link: Partial<Omit<LinkMarkProps, IgnoreDefaults>>;
|
|
778
|
+
/**
|
|
779
|
+
* default props for pointer marks
|
|
780
|
+
*/
|
|
781
|
+
pointer: Partial<Omit<PointerMarkProps, IgnoreDefaults>>;
|
|
782
|
+
/**
|
|
783
|
+
* default props for rect marks, applied to rect and rectX marks
|
|
784
|
+
*/
|
|
785
|
+
rect: Partial<Omit<RectMarkProps, IgnoreDefaults>>;
|
|
786
|
+
/**
|
|
787
|
+
* default props for rectX marks
|
|
788
|
+
*/
|
|
789
|
+
rectX: Partial<Omit<RectXMarkProps, IgnoreDefaults>>;
|
|
790
|
+
/**
|
|
791
|
+
* default props for rectY marks
|
|
792
|
+
*/
|
|
793
|
+
rectY: Partial<Omit<RectYMarkProps, IgnoreDefaults>>;
|
|
794
|
+
/**
|
|
795
|
+
* default props for rule marks
|
|
796
|
+
*/
|
|
797
|
+
rule: Partial<Omit<RuleXMarkProps, IgnoreDefaults>>;
|
|
798
|
+
/**
|
|
799
|
+
* default props for rule marks
|
|
800
|
+
*/
|
|
801
|
+
ruleX: Partial<Omit<RuleXMarkProps, IgnoreDefaults>>;
|
|
802
|
+
/**
|
|
803
|
+
* default props for rule marks
|
|
804
|
+
*/
|
|
805
|
+
ruleY: Partial<Omit<RuleYMarkProps, IgnoreDefaults>>;
|
|
806
|
+
/**
|
|
807
|
+
* default props for sphere marks
|
|
808
|
+
*/
|
|
809
|
+
sphere: Partial<SphereMarkProps>;
|
|
810
|
+
/**
|
|
811
|
+
* default props for spike marks
|
|
812
|
+
*/
|
|
813
|
+
spike: Partial<Omit<SpikeMarkProps, IgnoreDefaults>>;
|
|
814
|
+
/**
|
|
815
|
+
* default props for text marks
|
|
816
|
+
*/
|
|
817
|
+
text: Partial<Omit<TextMarkProps, IgnoreDefaults>>;
|
|
818
|
+
/**
|
|
819
|
+
* default props for tick marks, applied to tickX and tickY marks
|
|
820
|
+
*/
|
|
821
|
+
tick: Partial<Omit<TickXMarkProps, IgnoreDefaults>>;
|
|
822
|
+
/**
|
|
823
|
+
* default props for tickX marks
|
|
824
|
+
*/
|
|
825
|
+
tickX: Partial<Omit<TickXMarkProps, IgnoreDefaults>>;
|
|
826
|
+
/**
|
|
827
|
+
* default props for tickY marks
|
|
828
|
+
*/
|
|
829
|
+
tickY: Partial<Omit<TickYMarkProps, IgnoreDefaults>>;
|
|
830
|
+
/**
|
|
831
|
+
* default props for vector marks
|
|
832
|
+
*/
|
|
833
|
+
vector: Partial<Omit<VectorMarkProps, IgnoreDefaults>>;
|
|
682
834
|
};
|
|
683
835
|
export type MapIndexObject = {
|
|
684
836
|
mapIndex: (I: number[], S: RawValue[], T: RawValue[]) => void;
|