layerchart 2.0.0-next.3 → 2.0.0-next.31
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/components/AnnotationPoint.svelte +16 -9
- package/dist/components/AnnotationRange.svelte +3 -3
- package/dist/components/Arc.svelte +2 -2
- package/dist/components/Axis.svelte +83 -29
- package/dist/components/Axis.svelte.d.ts +13 -3
- package/dist/components/Bar.svelte +12 -8
- package/dist/components/Blur.svelte +5 -3
- package/dist/components/Blur.svelte.d.ts +2 -5
- package/dist/components/BrushContext.svelte +1 -1
- package/dist/components/Calendar.svelte +10 -6
- package/dist/components/Calendar.svelte.d.ts +2 -1
- package/dist/components/Chart.svelte +39 -3
- package/dist/components/Chart.svelte.d.ts +11 -0
- package/dist/components/Connector.svelte +2 -2
- package/dist/components/Connector.svelte.d.ts +1 -1
- package/dist/components/Ellipse.svelte +187 -0
- package/dist/components/Ellipse.svelte.d.ts +64 -0
- package/dist/components/ForceSimulation.svelte +184 -50
- package/dist/components/ForceSimulation.svelte.d.ts +88 -21
- package/dist/components/GeoPath.svelte +12 -5
- package/dist/components/GeoPoint.svelte +1 -2
- package/dist/components/GeoSpline.svelte +4 -4
- package/dist/components/GeoSpline.svelte.d.ts +1 -1
- package/dist/components/Group.svelte +2 -2
- package/dist/components/Highlight.svelte +9 -6
- package/dist/components/Hull.svelte +1 -1
- package/dist/components/Labels.svelte +3 -2
- package/dist/components/Labels.svelte.d.ts +2 -2
- package/dist/components/Legend.svelte +19 -12
- package/dist/components/Legend.svelte.d.ts +5 -5
- package/dist/components/MonthPath.svelte +14 -11
- package/dist/components/MonthPath.svelte.d.ts +4 -3
- package/dist/components/Polygon.svelte +285 -0
- package/dist/components/Polygon.svelte.d.ts +115 -0
- package/dist/components/RadialGradient.svelte +1 -3
- package/dist/components/Spline.svelte +30 -18
- package/dist/components/Spline.svelte.d.ts +12 -4
- package/dist/components/Text.svelte +62 -60
- package/dist/components/Text.svelte.d.ts +6 -0
- package/dist/components/TransformControls.svelte +16 -20
- package/dist/components/Treemap.svelte +63 -26
- package/dist/components/Treemap.svelte.d.ts +11 -11
- package/dist/components/Voronoi.svelte +51 -33
- package/dist/components/Voronoi.svelte.d.ts +3 -1
- package/dist/components/charts/ArcChart.svelte +5 -3
- package/dist/components/charts/AreaChart.svelte +11 -11
- package/dist/components/charts/BarChart.svelte +72 -53
- package/dist/components/charts/DefaultTooltip.svelte +1 -1
- package/dist/components/charts/LineChart.svelte +10 -6
- package/dist/components/charts/PieChart.svelte +5 -3
- package/dist/components/charts/ScatterChart.svelte +2 -3
- package/dist/components/charts/utils.svelte.d.ts +2 -2
- package/dist/components/charts/utils.svelte.js +5 -1
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +5 -1
- package/dist/components/layout/Canvas.svelte +67 -49
- package/dist/components/layout/Canvas.svelte.d.ts +6 -0
- package/dist/components/layout/Layer.svelte +6 -4
- package/dist/components/layout/Layer.svelte.d.ts +6 -4
- package/dist/components/tooltip/Tooltip.svelte +14 -7
- package/dist/components/tooltip/TooltipContext.svelte +136 -43
- package/dist/components/tooltip/TooltipContext.svelte.d.ts +3 -3
- package/dist/components/tooltip/TooltipHeader.svelte +5 -4
- package/dist/components/tooltip/TooltipHeader.svelte.d.ts +3 -3
- package/dist/components/tooltip/TooltipItem.svelte +5 -4
- package/dist/components/tooltip/TooltipItem.svelte.d.ts +3 -3
- package/dist/components/tooltip/TooltipList.svelte +1 -1
- package/dist/components/tooltip/tooltipMetaContext.d.ts +2 -2
- package/dist/docs/Blockquote.svelte +6 -4
- package/dist/docs/Blockquote.svelte.d.ts +4 -19
- package/dist/docs/Code.svelte +20 -12
- package/dist/docs/Code.svelte.d.ts +9 -23
- package/dist/docs/Header1.svelte +4 -2
- package/dist/docs/Header1.svelte.d.ts +4 -28
- package/dist/docs/Json.svelte +11 -3
- package/dist/docs/Json.svelte.d.ts +9 -21
- package/dist/docs/Layout.svelte +10 -7
- package/dist/docs/Layout.svelte.d.ts +4 -19
- package/dist/docs/Link.svelte +7 -3
- package/dist/docs/Link.svelte.d.ts +4 -38
- package/dist/docs/Preview.svelte +6 -3
- package/dist/docs/TilesetField.svelte +20 -19
- package/dist/docs/TilesetField.svelte.d.ts +5 -22
- package/dist/docs/ViewSourceButton.svelte +9 -6
- package/dist/docs/ViewSourceButton.svelte.d.ts +7 -21
- package/dist/utils/arcText.svelte.js +4 -4
- package/dist/utils/array.d.ts +11 -0
- package/dist/utils/array.js +23 -0
- package/dist/utils/array.test.d.ts +1 -0
- package/dist/utils/array.test.js +200 -0
- package/dist/utils/canvas.d.ts +77 -0
- package/dist/utils/canvas.js +105 -41
- package/dist/utils/genData.d.ts +14 -0
- package/dist/utils/genData.js +24 -6
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/path.d.ts +10 -0
- package/dist/utils/path.js +30 -0
- package/dist/utils/rect.svelte.d.ts +2 -2
- package/dist/utils/rect.svelte.js +69 -1
- package/dist/utils/scales.svelte.d.ts +3 -2
- package/dist/utils/scales.svelte.js +7 -3
- package/dist/utils/shape.d.ts +43 -0
- package/dist/utils/shape.js +59 -0
- package/dist/utils/string.d.ts +49 -0
- package/dist/utils/string.js +4 -2
- package/dist/utils/ticks.d.ts +15 -4
- package/dist/utils/ticks.js +144 -158
- package/dist/utils/ticks.test.js +11 -16
- package/dist/utils/treemap.d.ts +1 -1
- package/package.json +27 -25
- package/dist/utils/object.js +0 -2
|
@@ -4,6 +4,8 @@ export type VoronoiPropsWithoutHTML = {
|
|
|
4
4
|
* Override data instead of using context
|
|
5
5
|
*/
|
|
6
6
|
data?: any;
|
|
7
|
+
/** Radius to clip voronoi cells. `0` or `undefined` to disables clipping */
|
|
8
|
+
r?: number;
|
|
7
9
|
/**
|
|
8
10
|
* Classes to apply to the root and path elements
|
|
9
11
|
*
|
|
@@ -35,7 +37,7 @@ export type VoronoiPropsWithoutHTML = {
|
|
|
35
37
|
}) => void;
|
|
36
38
|
};
|
|
37
39
|
export type VoronoiProps = VoronoiPropsWithoutHTML & Without<Omit<GroupProps, 'children'>, VoronoiPropsWithoutHTML>;
|
|
38
|
-
import type
|
|
40
|
+
import { type GeoPermissibleObjects } from 'd3-geo';
|
|
39
41
|
import { type GroupProps } from './Group.svelte';
|
|
40
42
|
declare const Voronoi: import("svelte").Component<VoronoiProps, {}, "">;
|
|
41
43
|
type Voronoi = ReturnType<typeof Voronoi>;
|
|
@@ -264,8 +264,8 @@
|
|
|
264
264
|
placement: 'bottom',
|
|
265
265
|
variant: 'swatches',
|
|
266
266
|
onclick: (e, item) => {
|
|
267
|
-
selectedKeys.
|
|
268
|
-
selectedSeries.
|
|
267
|
+
selectedKeys.toggle(item.value);
|
|
268
|
+
selectedSeries.toggle(item.value);
|
|
269
269
|
},
|
|
270
270
|
onpointerenter: (e, item) => (highlightKey.current = item.value),
|
|
271
271
|
onpointerleave: (e) => (highlightKey.current = null),
|
|
@@ -384,7 +384,9 @@
|
|
|
384
384
|
]}
|
|
385
385
|
padding={{ bottom: legend === true ? 32 : 0 }}
|
|
386
386
|
{...restProps}
|
|
387
|
-
tooltip={tooltip === false
|
|
387
|
+
tooltip={tooltip === false
|
|
388
|
+
? false
|
|
389
|
+
: { ...props.tooltip?.context, ...(typeof tooltip === 'object' ? tooltip : null) }}
|
|
388
390
|
>
|
|
389
391
|
{#snippet children({ context })}
|
|
390
392
|
{@const snippetProps = {
|
|
@@ -69,7 +69,6 @@
|
|
|
69
69
|
import { onMount, type ComponentProps } from 'svelte';
|
|
70
70
|
import { scaleLinear, scaleTime } from 'd3-scale';
|
|
71
71
|
import { stack, stackOffsetDiverging, stackOffsetExpand, stackOffsetNone } from 'd3-shape';
|
|
72
|
-
import { format } from '@layerstack/utils';
|
|
73
72
|
import { cls } from '@layerstack/tailwind';
|
|
74
73
|
|
|
75
74
|
import Area from '../Area.svelte';
|
|
@@ -136,7 +135,14 @@
|
|
|
136
135
|
|
|
137
136
|
const series = $derived(
|
|
138
137
|
seriesProp === undefined
|
|
139
|
-
? [
|
|
138
|
+
? [
|
|
139
|
+
{
|
|
140
|
+
key: 'default',
|
|
141
|
+
label: typeof y === 'string' ? y : 'value',
|
|
142
|
+
value: y,
|
|
143
|
+
color: 'var(--color-primary)',
|
|
144
|
+
},
|
|
145
|
+
]
|
|
140
146
|
: seriesProp
|
|
141
147
|
);
|
|
142
148
|
|
|
@@ -398,13 +404,7 @@
|
|
|
398
404
|
if (axisDirection === 'y') {
|
|
399
405
|
return {
|
|
400
406
|
placement: radial ? 'radius' : 'left',
|
|
401
|
-
format:
|
|
402
|
-
if (seriesLayout === 'stackExpand') {
|
|
403
|
-
return format(value, 'percentRound');
|
|
404
|
-
} else {
|
|
405
|
-
return format(value, undefined, { variant: 'short' });
|
|
406
|
-
}
|
|
407
|
-
},
|
|
407
|
+
format: seriesLayout === 'stackExpand' ? 'percentRound' : undefined,
|
|
408
408
|
...(typeof axis === 'object' ? axis : null),
|
|
409
409
|
...props.yAxis,
|
|
410
410
|
};
|
|
@@ -412,7 +412,6 @@
|
|
|
412
412
|
|
|
413
413
|
return {
|
|
414
414
|
placement: radial ? 'angle' : 'bottom',
|
|
415
|
-
format: (value) => format(value, undefined, { variant: 'short' }),
|
|
416
415
|
...(typeof axis === 'object' ? axis : null),
|
|
417
416
|
...props.xAxis,
|
|
418
417
|
};
|
|
@@ -444,10 +443,11 @@
|
|
|
444
443
|
tooltip={tooltip === false
|
|
445
444
|
? false
|
|
446
445
|
: {
|
|
447
|
-
mode: '
|
|
446
|
+
mode: 'quadtree-x',
|
|
448
447
|
onclick: onTooltipClick,
|
|
449
448
|
debug,
|
|
450
449
|
...props.tooltip?.context,
|
|
450
|
+
...(typeof tooltip === 'object' ? tooltip : null),
|
|
451
451
|
}}
|
|
452
452
|
brush={brush && (brush === true || brush.mode == undefined || brush.mode === 'integrated')
|
|
453
453
|
? {
|
|
@@ -84,9 +84,8 @@
|
|
|
84
84
|
|
|
85
85
|
<script lang="ts" generics="TData">
|
|
86
86
|
import { onMount, type ComponentProps } from 'svelte';
|
|
87
|
-
import { scaleBand, scaleLinear } from 'd3-scale';
|
|
87
|
+
import { scaleBand, scaleLinear, scaleTime } from 'd3-scale';
|
|
88
88
|
import { stack, stackOffsetDiverging, stackOffsetExpand, stackOffsetNone } from 'd3-shape';
|
|
89
|
-
import { format } from '@layerstack/utils';
|
|
90
89
|
import { cls } from '@layerstack/tailwind';
|
|
91
90
|
|
|
92
91
|
import Axis from '../Axis.svelte';
|
|
@@ -109,7 +108,7 @@
|
|
|
109
108
|
import { asAny } from '../../utils/types.js';
|
|
110
109
|
import type { Insets } from '../../utils/rect.svelte.js';
|
|
111
110
|
import type { SeriesData, SimplifiedChartProps, SimplifiedChartPropsObject } from './types.js';
|
|
112
|
-
import type
|
|
111
|
+
import { isScaleTime, type AnyScale } from '../../utils/scales.svelte.js';
|
|
113
112
|
import { createLegendProps, SeriesState } from './utils.svelte.js';
|
|
114
113
|
import { setTooltipMetaContext } from '../tooltip/tooltipMetaContext.js';
|
|
115
114
|
import DefaultTooltip from './DefaultTooltip.svelte';
|
|
@@ -142,6 +141,8 @@
|
|
|
142
141
|
bandPadding = radial ? 0 : 0.4,
|
|
143
142
|
groupPadding = 0,
|
|
144
143
|
stackPadding = 0,
|
|
144
|
+
xInterval,
|
|
145
|
+
yInterval,
|
|
145
146
|
tooltip = true,
|
|
146
147
|
children: childrenProp,
|
|
147
148
|
aboveContext,
|
|
@@ -160,6 +161,14 @@
|
|
|
160
161
|
? [
|
|
161
162
|
{
|
|
162
163
|
key: 'default',
|
|
164
|
+
label:
|
|
165
|
+
orientation === 'vertical'
|
|
166
|
+
? typeof yProp === 'string'
|
|
167
|
+
? yProp
|
|
168
|
+
: 'value'
|
|
169
|
+
: typeof xProp === 'string'
|
|
170
|
+
? xProp
|
|
171
|
+
: 'value',
|
|
163
172
|
value: orientation === 'vertical' ? yProp : xProp,
|
|
164
173
|
},
|
|
165
174
|
]
|
|
@@ -171,15 +180,60 @@
|
|
|
171
180
|
const isStackSeries = $derived(seriesLayout.startsWith('stack'));
|
|
172
181
|
const isGroupSeries = $derived(seriesLayout === 'group');
|
|
173
182
|
|
|
183
|
+
const chartData: Array<TData & { stackData?: any }> = $derived.by(() => {
|
|
184
|
+
let _chartData = (
|
|
185
|
+
seriesState.allSeriesData.length ? seriesState.allSeriesData : chartDataArray(data)
|
|
186
|
+
) as Array<TData & { stackData?: any }>;
|
|
187
|
+
if (isStackSeries) {
|
|
188
|
+
const seriesKeys = seriesState.visibleSeries.map((s) => s.key);
|
|
189
|
+
|
|
190
|
+
const offset =
|
|
191
|
+
seriesLayout === 'stackExpand'
|
|
192
|
+
? stackOffsetExpand
|
|
193
|
+
: seriesLayout === 'stackDiverging'
|
|
194
|
+
? stackOffsetDiverging
|
|
195
|
+
: stackOffsetNone;
|
|
196
|
+
const stackData = stack()
|
|
197
|
+
.keys(seriesKeys)
|
|
198
|
+
.value((d, key) => {
|
|
199
|
+
const s = series.find((d) => d.key === key)!;
|
|
200
|
+
return accessor(s.value ?? s.key)(d as any);
|
|
201
|
+
})
|
|
202
|
+
.offset(offset)(chartDataArray(data)) as any[];
|
|
203
|
+
|
|
204
|
+
_chartData = _chartData.map((d, i) => {
|
|
205
|
+
return {
|
|
206
|
+
...d,
|
|
207
|
+
stackData: stackData.map((sd) => sd[i]),
|
|
208
|
+
};
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
return _chartData;
|
|
212
|
+
});
|
|
213
|
+
|
|
174
214
|
const xScale = $derived(
|
|
175
|
-
xScaleProp ??
|
|
215
|
+
xScaleProp ??
|
|
216
|
+
(xInterval
|
|
217
|
+
? scaleTime()
|
|
218
|
+
: isVertical
|
|
219
|
+
? scaleBand().padding(bandPadding)
|
|
220
|
+
: accessor(xProp)(chartData[0]) instanceof Date // TODO: also check for Array<Date> instances (ex. x={['start', 'end']})
|
|
221
|
+
? scaleTime()
|
|
222
|
+
: scaleLinear())
|
|
176
223
|
);
|
|
177
|
-
const xBaseline = $derived(isVertical ? undefined : 0);
|
|
224
|
+
const xBaseline = $derived(isVertical || isScaleTime(xScale) ? undefined : 0);
|
|
178
225
|
|
|
179
226
|
const yScale = $derived(
|
|
180
|
-
yScaleProp ??
|
|
227
|
+
yScaleProp ??
|
|
228
|
+
(yInterval
|
|
229
|
+
? scaleTime()
|
|
230
|
+
: isVertical
|
|
231
|
+
? accessor(yProp)(chartData[0]) instanceof Date // TODO: also check for Array<Date> instances (ex. y={['start', 'end']})
|
|
232
|
+
? scaleTime()
|
|
233
|
+
: scaleLinear()
|
|
234
|
+
: scaleBand().padding(bandPadding))
|
|
181
235
|
);
|
|
182
|
-
const yBaseline = $derived(isVertical ? 0 : undefined);
|
|
236
|
+
const yBaseline = $derived(isVertical || isScaleTime(yScale) ? 0 : undefined);
|
|
183
237
|
|
|
184
238
|
const x1Scale = $derived(
|
|
185
239
|
isGroupSeries && isVertical ? scaleBand().padding(groupPadding) : undefined
|
|
@@ -214,37 +268,6 @@
|
|
|
214
268
|
return d && typeof d === 'object' && 'stackData' in d;
|
|
215
269
|
}
|
|
216
270
|
|
|
217
|
-
const chartData: Array<TData & { stackData?: any }> = $derived.by(() => {
|
|
218
|
-
let _chartData = (
|
|
219
|
-
seriesState.allSeriesData.length ? seriesState.allSeriesData : chartDataArray(data)
|
|
220
|
-
) as Array<TData & { stackData?: any }>;
|
|
221
|
-
if (isStackSeries) {
|
|
222
|
-
const seriesKeys = seriesState.visibleSeries.map((s) => s.key);
|
|
223
|
-
|
|
224
|
-
const offset =
|
|
225
|
-
seriesLayout === 'stackExpand'
|
|
226
|
-
? stackOffsetExpand
|
|
227
|
-
: seriesLayout === 'stackDiverging'
|
|
228
|
-
? stackOffsetDiverging
|
|
229
|
-
: stackOffsetNone;
|
|
230
|
-
const stackData = stack()
|
|
231
|
-
.keys(seriesKeys)
|
|
232
|
-
.value((d, key) => {
|
|
233
|
-
const s = series.find((d) => d.key === key)!;
|
|
234
|
-
return accessor(s.value ?? s.key)(d as any);
|
|
235
|
-
})
|
|
236
|
-
.offset(offset)(chartDataArray(data)) as any[];
|
|
237
|
-
|
|
238
|
-
_chartData = _chartData.map((d, i) => {
|
|
239
|
-
return {
|
|
240
|
-
...d,
|
|
241
|
-
stackData: stackData.map((sd) => sd[i]),
|
|
242
|
-
};
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
return _chartData;
|
|
246
|
-
});
|
|
247
|
-
|
|
248
271
|
function getBarsProps(s: SeriesData<TData, typeof Bars>, i: number): ComponentProps<typeof Bars> {
|
|
249
272
|
const isFirst = i == 0;
|
|
250
273
|
const isLast = i == seriesState.visibleSeries.length - 1;
|
|
@@ -278,7 +301,12 @@
|
|
|
278
301
|
y: isVertical ? valueAccessor : undefined,
|
|
279
302
|
x1: isVertical && isGroupSeries ? (d) => s.value ?? s.key : undefined,
|
|
280
303
|
y1: !isVertical && isGroupSeries ? (d) => s.value ?? s.key : undefined,
|
|
281
|
-
rounded:
|
|
304
|
+
rounded:
|
|
305
|
+
isStackLayout && i !== seriesState.visibleSeries.length - 1
|
|
306
|
+
? 'none'
|
|
307
|
+
: Array.isArray(xProp) || Array.isArray(yProp)
|
|
308
|
+
? 'all'
|
|
309
|
+
: 'edge',
|
|
282
310
|
radius: 4,
|
|
283
311
|
strokeWidth: 1,
|
|
284
312
|
insets: stackInsets,
|
|
@@ -350,26 +378,14 @@
|
|
|
350
378
|
return {
|
|
351
379
|
placement: radial ? 'radius' : 'left',
|
|
352
380
|
|
|
353
|
-
format:
|
|
354
|
-
if (isVertical && seriesLayout === 'stackExpand') {
|
|
355
|
-
return format(value, 'percentRound');
|
|
356
|
-
} else {
|
|
357
|
-
return format(value, undefined, { variant: 'short' });
|
|
358
|
-
}
|
|
359
|
-
},
|
|
381
|
+
format: isVertical && seriesLayout === 'stackExpand' ? 'percentRound' : undefined,
|
|
360
382
|
...(typeof axis === 'object' ? axis : null),
|
|
361
383
|
...props.yAxis,
|
|
362
384
|
};
|
|
363
385
|
}
|
|
364
386
|
return {
|
|
365
387
|
placement: radial ? 'angle' : 'bottom',
|
|
366
|
-
format:
|
|
367
|
-
if (!isVertical && seriesLayout === 'stackExpand') {
|
|
368
|
-
return format(value, 'percentRound');
|
|
369
|
-
} else {
|
|
370
|
-
return format(value, undefined, { variant: 'short' });
|
|
371
|
-
}
|
|
372
|
-
},
|
|
388
|
+
format: !isVertical && seriesLayout === 'stackExpand' ? 'percentRound' : undefined,
|
|
373
389
|
...(typeof axis === 'object' ? axis : null),
|
|
374
390
|
...props.xAxis,
|
|
375
391
|
};
|
|
@@ -426,6 +442,7 @@
|
|
|
426
442
|
{x1Scale}
|
|
427
443
|
{x1Domain}
|
|
428
444
|
{x1Range}
|
|
445
|
+
{xInterval}
|
|
429
446
|
y={resolveAccessor(yProp)}
|
|
430
447
|
{yScale}
|
|
431
448
|
{yBaseline}
|
|
@@ -433,6 +450,7 @@
|
|
|
433
450
|
{y1Scale}
|
|
434
451
|
{y1Domain}
|
|
435
452
|
{y1Range}
|
|
453
|
+
{yInterval}
|
|
436
454
|
c={isVertical ? yProp : xProp}
|
|
437
455
|
cRange={['var(--color-primary)']}
|
|
438
456
|
{radial}
|
|
@@ -445,6 +463,7 @@
|
|
|
445
463
|
onclick: onTooltipClick,
|
|
446
464
|
debug,
|
|
447
465
|
...props.tooltip?.context,
|
|
466
|
+
...(typeof tooltip === 'object' ? tooltip : null),
|
|
448
467
|
}}
|
|
449
468
|
brush={brush && (brush === true || brush.mode == undefined || brush.mode === 'integrated')
|
|
450
469
|
? {
|
|
@@ -70,7 +70,6 @@
|
|
|
70
70
|
<script lang="ts" generics="TData">
|
|
71
71
|
import { onMount, type ComponentProps } from 'svelte';
|
|
72
72
|
import { scaleLinear, scaleTime } from 'd3-scale';
|
|
73
|
-
import { format } from '@layerstack/utils';
|
|
74
73
|
import { cls } from '@layerstack/tailwind';
|
|
75
74
|
|
|
76
75
|
import Axis from '../Axis.svelte';
|
|
@@ -142,7 +141,14 @@
|
|
|
142
141
|
|
|
143
142
|
const series = $derived(
|
|
144
143
|
seriesProp === undefined
|
|
145
|
-
? [
|
|
144
|
+
? [
|
|
145
|
+
{
|
|
146
|
+
key: 'default',
|
|
147
|
+
label: typeof yProp === 'string' ? yProp : 'value',
|
|
148
|
+
value: yProp,
|
|
149
|
+
color: 'var(--color-primary)',
|
|
150
|
+
},
|
|
151
|
+
]
|
|
146
152
|
: seriesProp
|
|
147
153
|
);
|
|
148
154
|
const seriesState = new SeriesState(() => series);
|
|
@@ -284,14 +290,12 @@
|
|
|
284
290
|
if (axisDirection === 'y') {
|
|
285
291
|
return {
|
|
286
292
|
placement: radial ? 'radius' : 'left',
|
|
287
|
-
format: (value) => format(value, undefined, { variant: 'short' }),
|
|
288
293
|
...(typeof axis === 'object' ? axis : null),
|
|
289
294
|
...props.yAxis,
|
|
290
295
|
};
|
|
291
296
|
}
|
|
292
297
|
return {
|
|
293
298
|
placement: radial ? 'angle' : 'bottom',
|
|
294
|
-
format: (value) => format(value, undefined, { variant: 'short' }),
|
|
295
299
|
...(typeof axis === 'object' ? axis : null),
|
|
296
300
|
...props.xAxis,
|
|
297
301
|
};
|
|
@@ -339,10 +343,11 @@
|
|
|
339
343
|
tooltip={tooltip === false
|
|
340
344
|
? false
|
|
341
345
|
: {
|
|
342
|
-
mode: '
|
|
346
|
+
mode: 'quadtree-x',
|
|
343
347
|
onclick: onTooltipClick,
|
|
344
348
|
debug,
|
|
345
349
|
...props.tooltip?.context,
|
|
350
|
+
...(typeof tooltip === 'object' ? tooltip : null),
|
|
346
351
|
}}
|
|
347
352
|
brush={brush && (brush === true || brush.mode == undefined || brush.mode === 'integrated')
|
|
348
353
|
? {
|
|
@@ -377,7 +382,6 @@
|
|
|
377
382
|
{@render childrenProp(snippetProps)}
|
|
378
383
|
{:else}
|
|
379
384
|
{@render belowContext?.(snippetProps)}
|
|
380
|
-
<!-- TODO: Always use `Svg` until `Pattern` supports `Canvas` (issue #307) -->
|
|
381
385
|
|
|
382
386
|
<Layer
|
|
383
387
|
type={renderContext}
|
|
@@ -281,9 +281,9 @@
|
|
|
281
281
|
placement: 'bottom',
|
|
282
282
|
variant: 'swatches',
|
|
283
283
|
onclick: (e, item) => {
|
|
284
|
-
selectedKeys.
|
|
284
|
+
selectedKeys.toggle(item.value);
|
|
285
285
|
// TODO: investigate
|
|
286
|
-
// selectedSeries.
|
|
286
|
+
// selectedSeries.toggle(item.value);
|
|
287
287
|
},
|
|
288
288
|
onpointerenter: (e, item) => (highlightKey.current = item.value),
|
|
289
289
|
onpointerleave: (e) => (highlightKey.current = null),
|
|
@@ -409,7 +409,9 @@
|
|
|
409
409
|
]}
|
|
410
410
|
padding={{ bottom: legend === true ? 32 : 0 }}
|
|
411
411
|
{...restProps}
|
|
412
|
-
tooltip={tooltip === false
|
|
412
|
+
tooltip={tooltip === false
|
|
413
|
+
? false
|
|
414
|
+
: { ...props.tooltip?.context, ...(typeof tooltip === 'object' ? tooltip : null) }}
|
|
413
415
|
>
|
|
414
416
|
{#snippet children({ context })}
|
|
415
417
|
{@const snippetProps = {
|
|
@@ -205,14 +205,12 @@
|
|
|
205
205
|
if (axisDirection === 'y') {
|
|
206
206
|
return {
|
|
207
207
|
placement: 'left',
|
|
208
|
-
format: (value) => format(value, undefined, { variant: 'short' }),
|
|
209
208
|
...(typeof axis === 'object' ? axis : null),
|
|
210
209
|
...props.yAxis,
|
|
211
210
|
};
|
|
212
211
|
}
|
|
213
212
|
return {
|
|
214
213
|
placement: 'bottom',
|
|
215
|
-
format: (value) => format(value, undefined, { variant: 'short' }),
|
|
216
214
|
...(typeof axis === 'object' ? axis : null),
|
|
217
215
|
...props.xAxis,
|
|
218
216
|
};
|
|
@@ -255,10 +253,11 @@
|
|
|
255
253
|
tooltip={tooltip === false
|
|
256
254
|
? false
|
|
257
255
|
: {
|
|
258
|
-
mode: '
|
|
256
|
+
mode: 'quadtree',
|
|
259
257
|
onclick: onTooltipClick,
|
|
260
258
|
debug,
|
|
261
259
|
...props.tooltip?.context,
|
|
260
|
+
...(typeof tooltip === 'object' ? tooltip : null),
|
|
262
261
|
}}
|
|
263
262
|
brush={brush && (brush === true || brush.mode == undefined || brush.mode === 'integrated')
|
|
264
263
|
? {
|
|
@@ -8,8 +8,8 @@ export declare class HighlightKey<TData, SeriesComponent extends Component> {
|
|
|
8
8
|
}
|
|
9
9
|
export declare class SeriesState<TData, TComponent extends Component> {
|
|
10
10
|
#private;
|
|
11
|
-
selectedSeries: SelectionState<unknown>;
|
|
12
|
-
selectedKeys: SelectionState<unknown>;
|
|
11
|
+
selectedSeries: SelectionState<unknown, false>;
|
|
12
|
+
selectedKeys: SelectionState<unknown, false>;
|
|
13
13
|
highlightKey: HighlightKey<TData, TComponent>;
|
|
14
14
|
constructor(getSeries: () => SeriesData<TData, TComponent>[]);
|
|
15
15
|
get series(): SeriesData<TData, TComponent>[];
|
|
@@ -13,6 +13,10 @@ export class SeriesState {
|
|
|
13
13
|
highlightKey = new HighlightKey();
|
|
14
14
|
constructor(getSeries) {
|
|
15
15
|
this.#series = getSeries();
|
|
16
|
+
$effect.pre(() => {
|
|
17
|
+
// keep series state in sync with the prop
|
|
18
|
+
this.#series = getSeries();
|
|
19
|
+
});
|
|
16
20
|
}
|
|
17
21
|
get series() {
|
|
18
22
|
return this.#series;
|
|
@@ -40,7 +44,7 @@ export function createLegendProps(opts) {
|
|
|
40
44
|
tickFormat: (key) => opts.seriesState.series.find((s) => s.key === key)?.label ?? key,
|
|
41
45
|
placement: 'bottom',
|
|
42
46
|
variant: 'swatches',
|
|
43
|
-
onclick: (_, item) => opts.seriesState.selectedSeries.
|
|
47
|
+
onclick: (_, item) => opts.seriesState.selectedSeries.toggle(item.value),
|
|
44
48
|
onpointerenter: (_, item) => (opts.seriesState.highlightKey.current = item.value),
|
|
45
49
|
onpointerleave: () => (opts.seriesState.highlightKey.current = null),
|
|
46
50
|
...opts.props,
|
|
@@ -42,6 +42,8 @@ export { default as Connector } from './Connector.svelte';
|
|
|
42
42
|
export * from './Connector.svelte';
|
|
43
43
|
export { default as Dagre } from './Dagre.svelte';
|
|
44
44
|
export * from './Dagre.svelte';
|
|
45
|
+
export { default as Ellipse } from './Ellipse.svelte';
|
|
46
|
+
export * from './Ellipse.svelte';
|
|
45
47
|
export { default as Frame } from './Frame.svelte';
|
|
46
48
|
export * from './Frame.svelte';
|
|
47
49
|
export { default as ForceSimulation } from './ForceSimulation.svelte';
|
|
@@ -102,6 +104,8 @@ export { default as Point } from './Point.svelte';
|
|
|
102
104
|
export * from './Point.svelte';
|
|
103
105
|
export { default as Points } from './Points.svelte';
|
|
104
106
|
export * from './Points.svelte';
|
|
107
|
+
export { default as Polygon } from './Polygon.svelte';
|
|
108
|
+
export * from './Polygon.svelte';
|
|
105
109
|
export { default as RadialGradient } from './RadialGradient.svelte';
|
|
106
110
|
export * from './RadialGradient.svelte';
|
|
107
111
|
export { default as Rect } from './Rect.svelte';
|
package/dist/components/index.js
CHANGED
|
@@ -42,6 +42,8 @@ export { default as Connector } from './Connector.svelte';
|
|
|
42
42
|
export * from './Connector.svelte';
|
|
43
43
|
export { default as Dagre } from './Dagre.svelte';
|
|
44
44
|
export * from './Dagre.svelte';
|
|
45
|
+
export { default as Ellipse } from './Ellipse.svelte';
|
|
46
|
+
export * from './Ellipse.svelte';
|
|
45
47
|
export { default as Frame } from './Frame.svelte';
|
|
46
48
|
export * from './Frame.svelte';
|
|
47
49
|
export { default as ForceSimulation } from './ForceSimulation.svelte';
|
|
@@ -102,6 +104,8 @@ export { default as Point } from './Point.svelte';
|
|
|
102
104
|
export * from './Point.svelte';
|
|
103
105
|
export { default as Points } from './Points.svelte';
|
|
104
106
|
export * from './Points.svelte';
|
|
107
|
+
export { default as Polygon } from './Polygon.svelte';
|
|
108
|
+
export * from './Polygon.svelte';
|
|
105
109
|
export { default as RadialGradient } from './RadialGradient.svelte';
|
|
106
110
|
export * from './RadialGradient.svelte';
|
|
107
111
|
export { default as Rect } from './Rect.svelte';
|
|
@@ -124,7 +128,7 @@ export * as Tooltip from './tooltip/index.js';
|
|
|
124
128
|
export * from './tooltip/TooltipContext.svelte';
|
|
125
129
|
export { default as TransformContext } from './TransformContext.svelte';
|
|
126
130
|
export * from './TransformContext.svelte';
|
|
127
|
-
// export { default as TransformControls } from './TransformControls.svelte'; // TODO: Restore once no longer using `
|
|
131
|
+
// export { default as TransformControls } from './TransformControls.svelte'; // TODO: Restore once no longer using `svelte-ux` or `~icons` (as they are dev dependencies)
|
|
128
132
|
export { default as Tree } from './Tree.svelte';
|
|
129
133
|
export * from './Tree.svelte';
|
|
130
134
|
export { default as Treemap } from './Treemap.svelte';
|