layerchart 2.0.0-next.4 → 2.0.0-next.40
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/AnnotationLine.svelte +15 -2
- package/dist/components/AnnotationPoint.svelte +29 -11
- package/dist/components/AnnotationRange.svelte +18 -4
- package/dist/components/Arc.svelte +5 -5
- package/dist/components/Area.svelte +10 -2
- package/dist/components/Axis.svelte +175 -58
- package/dist/components/Axis.svelte.d.ts +23 -6
- package/dist/components/Bar.svelte +20 -15
- package/dist/components/Bar.svelte.d.ts +2 -2
- package/dist/components/Bars.svelte +4 -4
- package/dist/components/Blur.svelte +7 -6
- package/dist/components/Blur.svelte.d.ts +2 -5
- package/dist/components/BrushContext.svelte +45 -45
- package/dist/components/Calendar.svelte +31 -10
- package/dist/components/Calendar.svelte.d.ts +2 -1
- package/dist/components/Chart.svelte +76 -27
- package/dist/components/Chart.svelte.d.ts +26 -8
- package/dist/components/ChartClipPath.svelte +1 -1
- package/dist/components/Circle.svelte +44 -3
- package/dist/components/CircleClipPath.svelte +8 -1
- package/dist/components/ClipPath.svelte +1 -2
- package/dist/components/ColorRamp.svelte +1 -1
- package/dist/components/ComputedStyles.svelte +9 -2
- package/dist/components/Connector.svelte +3 -3
- package/dist/components/Connector.svelte.d.ts +1 -1
- package/dist/components/Ellipse.svelte +228 -0
- package/dist/components/Ellipse.svelte.d.ts +64 -0
- package/dist/components/ForceSimulation.svelte +184 -50
- package/dist/components/ForceSimulation.svelte.d.ts +95 -21
- package/dist/components/Frame.svelte +1 -1
- package/dist/components/GeoCircle.svelte +1 -1
- package/dist/components/GeoEdgeFade.svelte +1 -1
- package/dist/components/GeoPath.svelte +30 -8
- package/dist/components/GeoPoint.svelte +4 -5
- package/dist/components/GeoSpline.svelte +5 -5
- package/dist/components/GeoSpline.svelte.d.ts +1 -1
- package/dist/components/GeoTile.svelte +1 -1
- package/dist/components/Graticule.svelte +5 -5
- package/dist/components/Grid.svelte +60 -63
- package/dist/components/Group.svelte +13 -8
- package/dist/components/Group.svelte.d.ts +10 -3
- package/dist/components/Highlight.svelte +55 -28
- package/dist/components/Highlight.svelte.d.ts +4 -0
- package/dist/components/Hull.svelte +12 -5
- package/dist/components/Labels.svelte +24 -13
- package/dist/components/Labels.svelte.d.ts +12 -5
- package/dist/components/Legend.svelte +143 -70
- package/dist/components/Legend.svelte.d.ts +12 -8
- package/dist/components/Line.svelte +40 -3
- package/dist/components/LinearGradient.svelte +35 -4
- package/dist/components/Link.svelte +1 -1
- package/dist/components/Marker.svelte +37 -26
- package/dist/components/MonthPath.svelte +26 -12
- package/dist/components/MonthPath.svelte.d.ts +4 -3
- package/dist/components/MotionPath.svelte +1 -1
- package/dist/components/Pack.svelte.d.ts +10 -3
- package/dist/components/Partition.svelte.d.ts +10 -3
- package/dist/components/Pattern.svelte +5 -5
- package/dist/components/Pie.svelte +1 -2
- package/dist/components/Points.svelte +11 -72
- package/dist/components/Points.svelte.d.ts +1 -8
- package/dist/components/Polygon.svelte +309 -0
- package/dist/components/Polygon.svelte.d.ts +115 -0
- package/dist/components/RadialGradient.svelte +4 -6
- package/dist/components/Rect.svelte +55 -5
- package/dist/components/Rect.svelte.d.ts +2 -2
- package/dist/components/RectClipPath.svelte +4 -3
- package/dist/components/RectClipPath.svelte.d.ts +2 -2
- package/dist/components/Rule.svelte +167 -77
- package/dist/components/Rule.svelte.d.ts +7 -2
- package/dist/components/Spline.svelte +59 -28
- package/dist/components/Spline.svelte.d.ts +12 -4
- package/dist/components/Text.svelte +121 -73
- package/dist/components/Text.svelte.d.ts +6 -0
- package/dist/components/TileImage.svelte +19 -4
- package/dist/components/TransformContext.svelte +9 -3
- package/dist/components/TransformControls.svelte +89 -38
- package/dist/components/Tree.svelte.d.ts +10 -3
- package/dist/components/Treemap.svelte +63 -26
- package/dist/components/Treemap.svelte.d.ts +21 -14
- package/dist/components/Voronoi.svelte +12 -13
- package/dist/components/charts/ArcChart.svelte +43 -71
- package/dist/components/charts/ArcChart.svelte.d.ts +10 -3
- package/dist/components/charts/AreaChart.svelte +29 -59
- package/dist/components/charts/AreaChart.svelte.d.ts +10 -3
- package/dist/components/charts/BarChart.svelte +79 -71
- package/dist/components/charts/BarChart.svelte.d.ts +10 -3
- package/dist/components/charts/DefaultTooltip.svelte +3 -3
- package/dist/components/charts/DefaultTooltip.svelte.d.ts +1 -1
- package/dist/components/charts/LineChart.svelte +69 -75
- package/dist/components/charts/LineChart.svelte.d.ts +21 -8
- package/dist/components/charts/PieChart.svelte +44 -71
- package/dist/components/charts/PieChart.svelte.d.ts +10 -3
- package/dist/components/charts/ScatterChart.svelte +10 -39
- package/dist/components/charts/ScatterChart.svelte.d.ts +10 -3
- package/dist/components/charts/utils.svelte.d.ts +1 -19
- package/dist/components/charts/utils.svelte.js +7 -35
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +5 -1
- package/dist/components/layout/Canvas.svelte +96 -69
- package/dist/components/layout/Canvas.svelte.d.ts +6 -0
- package/dist/components/layout/Html.svelte +15 -9
- package/dist/components/layout/Layer.svelte +6 -4
- package/dist/components/layout/Layer.svelte.d.ts +6 -4
- package/dist/components/layout/Svg.svelte +19 -11
- package/dist/components/layout/WebGL.svelte +26 -6
- package/dist/components/layout/WebGL.svelte.d.ts +5 -2
- package/dist/components/tooltip/Tooltip.svelte +65 -27
- package/dist/components/tooltip/Tooltip.svelte.d.ts +10 -3
- package/dist/components/tooltip/TooltipContext.svelte +167 -54
- package/dist/components/tooltip/TooltipContext.svelte.d.ts +19 -5
- package/dist/components/tooltip/TooltipHeader.svelte +32 -18
- package/dist/components/tooltip/TooltipHeader.svelte.d.ts +3 -3
- package/dist/components/tooltip/TooltipItem.svelte +46 -37
- package/dist/components/tooltip/TooltipItem.svelte.d.ts +3 -3
- package/dist/components/tooltip/TooltipList.svelte +12 -10
- package/dist/components/tooltip/TooltipSeparator.svelte +18 -10
- 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 +70 -28
- package/dist/docs/Code.svelte.d.ts +9 -24
- 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 +22 -23
- package/dist/docs/Preview.svelte.d.ts +5 -6
- package/dist/docs/TilesetField.svelte +20 -19
- package/dist/docs/TilesetField.svelte.d.ts +5 -22
- package/dist/docs/ViewSourceButton.svelte +10 -7
- package/dist/docs/ViewSourceButton.svelte.d.ts +7 -21
- package/dist/states/series.svelte.d.ts +30 -0
- package/dist/states/series.svelte.js +54 -0
- package/dist/styles/daisyui-5.css +6 -0
- package/dist/styles/shadcn-svelte.css +11 -0
- package/dist/styles/skeleton-3.css +15 -0
- 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/attributes.d.ts +3 -13
- package/dist/utils/attributes.js +4 -18
- package/dist/utils/canvas.d.ts +77 -0
- package/dist/utils/canvas.js +105 -41
- package/dist/utils/common.d.ts +9 -0
- package/dist/utils/common.js +18 -1
- package/dist/utils/common.test.js +26 -1
- package/dist/utils/genData.d.ts +22 -8
- package/dist/utils/genData.js +34 -14
- package/dist/utils/graph/dagre.d.ts +4 -4
- package/dist/utils/graph/dagre.js +5 -7
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/math.d.ts +17 -0
- package/dist/utils/math.js +17 -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 +73 -1
- package/dist/utils/scales.svelte.d.ts +9 -3
- package/dist/utils/scales.svelte.js +47 -4
- package/dist/utils/shape.d.ts +43 -0
- package/dist/utils/shape.js +59 -0
- package/dist/utils/stack.js +1 -1
- 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 +140 -159
- package/dist/utils/ticks.test.js +16 -26
- package/dist/utils/treemap.d.ts +1 -1
- package/dist/utils/types.d.ts +15 -2
- package/package.json +35 -35
- package/dist/utils/object.js +0 -2
|
@@ -124,7 +124,6 @@
|
|
|
124
124
|
import { sum } from 'd3-array';
|
|
125
125
|
import { format } from '@layerstack/utils';
|
|
126
126
|
import { cls } from '@layerstack/tailwind';
|
|
127
|
-
import { SelectionState } from '@layerstack/svelte-state';
|
|
128
127
|
|
|
129
128
|
import Arc, { type ArcPropsWithoutHTML } from '../Arc.svelte';
|
|
130
129
|
import Chart from '../Chart.svelte';
|
|
@@ -133,7 +132,13 @@
|
|
|
133
132
|
import Legend from '../Legend.svelte';
|
|
134
133
|
import * as Tooltip from '../tooltip/index.js';
|
|
135
134
|
|
|
136
|
-
import {
|
|
135
|
+
import {
|
|
136
|
+
accessor,
|
|
137
|
+
chartDataArray,
|
|
138
|
+
getObjectOrNull,
|
|
139
|
+
resolveMaybeFn,
|
|
140
|
+
type Accessor,
|
|
141
|
+
} from '../../utils/common.js';
|
|
137
142
|
import { asAny } from '../../utils/types.js';
|
|
138
143
|
import type {
|
|
139
144
|
SeriesData,
|
|
@@ -141,7 +146,8 @@
|
|
|
141
146
|
SimplifiedChartPropsObject,
|
|
142
147
|
SimplifiedChartSnippet,
|
|
143
148
|
} from './types.js';
|
|
144
|
-
import {
|
|
149
|
+
import { SeriesState } from '../../states/series.svelte.js';
|
|
150
|
+
import { createLegendProps } from './utils.svelte.js';
|
|
145
151
|
import { setTooltipMetaContext } from '../tooltip/tooltipMetaContext.js';
|
|
146
152
|
import { getColorIfDefined } from '../../utils/color.js';
|
|
147
153
|
|
|
@@ -223,63 +229,32 @@
|
|
|
223
229
|
});
|
|
224
230
|
});
|
|
225
231
|
|
|
226
|
-
const
|
|
227
|
-
|
|
228
|
-
const visibleSeries = $derived(
|
|
229
|
-
series.filter((s) => selectedSeries.isEmpty() || selectedSeries.isSelected(s.key))
|
|
230
|
-
);
|
|
231
|
-
|
|
232
|
-
const allSeriesData = $derived(
|
|
233
|
-
visibleSeries
|
|
234
|
-
.flatMap((s) =>
|
|
235
|
-
s.data?.map((d) => {
|
|
236
|
-
return { seriesKey: s.key, ...d };
|
|
237
|
-
})
|
|
238
|
-
)
|
|
239
|
-
.filter((d) => d) as Array<TData & { stackData?: any }>
|
|
240
|
-
);
|
|
232
|
+
const seriesState = new SeriesState(() => series);
|
|
241
233
|
|
|
242
234
|
const chartData = $derived(
|
|
243
|
-
allSeriesData.length ? allSeriesData : chartDataArray(data)
|
|
235
|
+
seriesState.allSeriesData.length ? seriesState.allSeriesData : chartDataArray(data)
|
|
244
236
|
) as Array<TData>;
|
|
245
237
|
|
|
246
|
-
const seriesColors = $derived(series.map((s) => s.color).filter((d) => d != null));
|
|
247
|
-
|
|
248
|
-
const highlightKey = new HighlightKey<TData, typeof Arc>();
|
|
249
|
-
const selectedKeys = new SelectionState();
|
|
250
|
-
|
|
251
238
|
const visibleData = $derived(
|
|
252
239
|
chartData.filter((d) => {
|
|
253
240
|
const dataKey = keyAccessor(d);
|
|
254
|
-
return selectedKeys.isEmpty() || selectedKeys.isSelected(dataKey);
|
|
241
|
+
return seriesState.selectedKeys.isEmpty() || seriesState.selectedKeys.isSelected(dataKey);
|
|
255
242
|
})
|
|
256
243
|
);
|
|
257
244
|
|
|
258
245
|
function getLegendProps(): ComponentProps<typeof Legend> {
|
|
259
|
-
return {
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
},
|
|
270
|
-
onpointerenter: (e, item) => (highlightKey.current = item.value),
|
|
271
|
-
onpointerleave: (e) => (highlightKey.current = null),
|
|
272
|
-
...props.legend,
|
|
273
|
-
...(typeof legend === 'object' ? legend : null),
|
|
274
|
-
classes: {
|
|
275
|
-
item: (item) =>
|
|
276
|
-
visibleData.length && !visibleData.some((d) => keyAccessor(d) === item.value)
|
|
277
|
-
? 'opacity-50'
|
|
278
|
-
: '',
|
|
279
|
-
...props.legend?.classes,
|
|
280
|
-
...(typeof legend === 'object' ? legend.classes : null),
|
|
246
|
+
return createLegendProps({
|
|
247
|
+
seriesState,
|
|
248
|
+
props: {
|
|
249
|
+
tickFormat: (tick) => {
|
|
250
|
+
// Use data label instead of series label
|
|
251
|
+
const item = chartData.find((d) => keyAccessor(d) === tick);
|
|
252
|
+
return item ? (labelAccessor(item) ?? tick) : tick;
|
|
253
|
+
},
|
|
254
|
+
...props.legend,
|
|
255
|
+
...getObjectOrNull(legend),
|
|
281
256
|
},
|
|
282
|
-
};
|
|
257
|
+
});
|
|
283
258
|
}
|
|
284
259
|
|
|
285
260
|
function getGroupProps(): ComponentProps<typeof Group> {
|
|
@@ -317,6 +292,7 @@
|
|
|
317
292
|
multiSeries && (trackOuterRadius ?? 0) < 0 ? i * (trackOuterRadius ?? 0) : trackOuterRadius,
|
|
318
293
|
fill: s.color ?? context.cScale?.(context.c(d)),
|
|
319
294
|
track: { fill: s.color ?? context.cScale?.(context.c(d)), fillOpacity: 0.1 },
|
|
295
|
+
opacity: seriesState.isHighlighted(keyAccessor(d), true) ? 1 : 0.1,
|
|
320
296
|
tooltipContext: context.tooltip,
|
|
321
297
|
data: d,
|
|
322
298
|
onclick: (e) => {
|
|
@@ -326,12 +302,7 @@
|
|
|
326
302
|
},
|
|
327
303
|
...props.arc,
|
|
328
304
|
...s.props,
|
|
329
|
-
class: cls(
|
|
330
|
-
'transition-opacity',
|
|
331
|
-
highlightKey.current && highlightKey.current !== keyAccessor(d) && 'opacity-50',
|
|
332
|
-
props.arc?.class,
|
|
333
|
-
s.props?.class
|
|
334
|
-
),
|
|
305
|
+
class: cls(props.arc?.class, s.props?.class),
|
|
335
306
|
};
|
|
336
307
|
}
|
|
337
308
|
|
|
@@ -357,7 +328,7 @@
|
|
|
357
328
|
return key;
|
|
358
329
|
},
|
|
359
330
|
get visibleSeries() {
|
|
360
|
-
return visibleSeries;
|
|
331
|
+
return seriesState.visibleSeries;
|
|
361
332
|
},
|
|
362
333
|
});
|
|
363
334
|
</script>
|
|
@@ -367,24 +338,25 @@
|
|
|
367
338
|
bind:context
|
|
368
339
|
data={visibleData}
|
|
369
340
|
x={value}
|
|
370
|
-
y={key}
|
|
371
341
|
{c}
|
|
372
342
|
cDomain={chartData.map(keyAccessor)}
|
|
373
|
-
cRange={
|
|
374
|
-
?
|
|
343
|
+
cRange={seriesState.allSeriesColors.length
|
|
344
|
+
? seriesState.allSeriesColors
|
|
375
345
|
: c !== key
|
|
376
346
|
? chartData.map((d) => cAccessor(d))
|
|
377
347
|
: [
|
|
378
|
-
'var(--color-primary)',
|
|
379
|
-
'var(--color-secondary)',
|
|
380
|
-
'var(--color-info)',
|
|
381
|
-
'var(--color-success)',
|
|
382
|
-
'var(--color-warning)',
|
|
383
|
-
'var(--color-danger)',
|
|
348
|
+
'var(--color-primary, currentColor)',
|
|
349
|
+
'var(--color-secondary, currentColor)',
|
|
350
|
+
'var(--color-info, currentColor)',
|
|
351
|
+
'var(--color-success, currentColor)',
|
|
352
|
+
'var(--color-warning, currentColor)',
|
|
353
|
+
'var(--color-danger, currentColor)',
|
|
384
354
|
]}
|
|
385
|
-
padding={{ bottom: legend
|
|
355
|
+
padding={{ bottom: legend ? 32 : 0 }}
|
|
386
356
|
{...restProps}
|
|
387
|
-
tooltip={tooltip === false
|
|
357
|
+
tooltip={tooltip === false
|
|
358
|
+
? false
|
|
359
|
+
: { ...props.tooltip?.context, ...(typeof tooltip === 'object' ? tooltip : null) }}
|
|
388
360
|
>
|
|
389
361
|
{#snippet children({ context })}
|
|
390
362
|
{@const snippetProps = {
|
|
@@ -394,10 +366,10 @@
|
|
|
394
366
|
color: cAccessor,
|
|
395
367
|
context,
|
|
396
368
|
series,
|
|
397
|
-
visibleSeries,
|
|
369
|
+
visibleSeries: seriesState.visibleSeries,
|
|
398
370
|
visibleData,
|
|
399
|
-
highlightKey: highlightKey.current,
|
|
400
|
-
setHighlightKey: highlightKey.set,
|
|
371
|
+
highlightKey: seriesState.highlightKey.current,
|
|
372
|
+
setHighlightKey: seriesState.highlightKey.set,
|
|
401
373
|
getLegendProps,
|
|
402
374
|
getGroupProps,
|
|
403
375
|
getArcProps,
|
|
@@ -451,8 +423,8 @@
|
|
|
451
423
|
value={valueAccessor(data)}
|
|
452
424
|
color={context.cScale?.(context.c(data))}
|
|
453
425
|
{format}
|
|
454
|
-
onpointerenter={() => (highlightKey.current = keyAccessor(data))}
|
|
455
|
-
onpointerleave={() => (highlightKey.current = null)}
|
|
426
|
+
onpointerenter={() => (seriesState.highlightKey.current = keyAccessor(data))}
|
|
427
|
+
onpointerleave={() => (seriesState.highlightKey.current = null)}
|
|
456
428
|
{...props.tooltip?.item}
|
|
457
429
|
/>
|
|
458
430
|
</Tooltip.List>
|
|
@@ -71,10 +71,17 @@ import Arc, { type ArcPropsWithoutHTML } from '../Arc.svelte';
|
|
|
71
71
|
import Group from '../Group.svelte';
|
|
72
72
|
import { type Accessor } from '../../utils/common.js';
|
|
73
73
|
import type { SeriesData, SimplifiedChartProps, SimplifiedChartPropsObject, SimplifiedChartSnippet } from './types.js';
|
|
74
|
+
declare function $$render<TData>(): {
|
|
75
|
+
props: ArcChartProps<TData>;
|
|
76
|
+
exports: {};
|
|
77
|
+
bindings: "context";
|
|
78
|
+
slots: {};
|
|
79
|
+
events: {};
|
|
80
|
+
};
|
|
74
81
|
declare class __sveltets_Render<TData> {
|
|
75
|
-
props():
|
|
76
|
-
events():
|
|
77
|
-
slots():
|
|
82
|
+
props(): ReturnType<typeof $$render<TData>>['props'];
|
|
83
|
+
events(): ReturnType<typeof $$render<TData>>['events'];
|
|
84
|
+
slots(): ReturnType<typeof $$render<TData>>['slots'];
|
|
78
85
|
bindings(): "context";
|
|
79
86
|
exports(): {};
|
|
80
87
|
}
|
|
@@ -67,9 +67,7 @@
|
|
|
67
67
|
|
|
68
68
|
<script lang="ts" generics="TData">
|
|
69
69
|
import { onMount, type ComponentProps } from 'svelte';
|
|
70
|
-
import { scaleLinear, scaleTime } from 'd3-scale';
|
|
71
70
|
import { stack, stackOffsetDiverging, stackOffsetExpand, stackOffsetNone } from 'd3-shape';
|
|
72
|
-
import { format } from '@layerstack/utils';
|
|
73
71
|
import { cls } from '@layerstack/tailwind';
|
|
74
72
|
|
|
75
73
|
import Area from '../Area.svelte';
|
|
@@ -94,7 +92,8 @@
|
|
|
94
92
|
import { asAny } from '../../utils/types.js';
|
|
95
93
|
import Spline from '../Spline.svelte';
|
|
96
94
|
import type { SeriesData, SimplifiedChartProps, SimplifiedChartPropsObject } from './types.js';
|
|
97
|
-
import {
|
|
95
|
+
import { SeriesState } from '../../states/series.svelte.js';
|
|
96
|
+
import { createLegendProps } from './utils.svelte.js';
|
|
98
97
|
import { setTooltipMetaContext } from '../tooltip/tooltipMetaContext.js';
|
|
99
98
|
import DefaultTooltip from './DefaultTooltip.svelte';
|
|
100
99
|
import ChartAnnotations from './ChartAnnotations.svelte';
|
|
@@ -123,7 +122,6 @@
|
|
|
123
122
|
renderContext = 'svg',
|
|
124
123
|
profile = false,
|
|
125
124
|
debug = false,
|
|
126
|
-
xScale: xScaleProp,
|
|
127
125
|
children: childrenProp,
|
|
128
126
|
aboveContext,
|
|
129
127
|
belowContext,
|
|
@@ -136,7 +134,14 @@
|
|
|
136
134
|
|
|
137
135
|
const series = $derived(
|
|
138
136
|
seriesProp === undefined
|
|
139
|
-
? [
|
|
137
|
+
? [
|
|
138
|
+
{
|
|
139
|
+
key: 'default',
|
|
140
|
+
label: typeof y === 'string' ? y : 'value',
|
|
141
|
+
value: y,
|
|
142
|
+
color: 'var(--color-primary, currentColor)',
|
|
143
|
+
},
|
|
144
|
+
]
|
|
140
145
|
: seriesProp
|
|
141
146
|
);
|
|
142
147
|
|
|
@@ -190,11 +195,6 @@
|
|
|
190
195
|
return _chartData;
|
|
191
196
|
});
|
|
192
197
|
|
|
193
|
-
// Default xScale based on first data's `x` value
|
|
194
|
-
const xScale = $derived(
|
|
195
|
-
xScaleProp ?? (accessor(x)(chartData[0]) instanceof Date ? scaleTime() : scaleLinear())
|
|
196
|
-
);
|
|
197
|
-
|
|
198
198
|
function isStackData(d: TData): d is TData & { stackData: any[] } {
|
|
199
199
|
return d && typeof d === 'object' && 'stackData' in d;
|
|
200
200
|
}
|
|
@@ -221,13 +221,6 @@
|
|
|
221
221
|
...(typeof s.props?.line === 'object' ? s.props.line : null),
|
|
222
222
|
};
|
|
223
223
|
|
|
224
|
-
const highlightClass =
|
|
225
|
-
seriesState.visibleSeries.length > 1 &&
|
|
226
|
-
seriesState.highlightKey.current &&
|
|
227
|
-
seriesState.highlightKey.current !== s.key
|
|
228
|
-
? 'opacity-10'
|
|
229
|
-
: '';
|
|
230
|
-
|
|
231
224
|
return {
|
|
232
225
|
data: s.data,
|
|
233
226
|
y0: stackSeries
|
|
@@ -242,19 +235,18 @@
|
|
|
242
235
|
: (s.value ?? (s.data ? undefined : s.key)),
|
|
243
236
|
fill: s.color,
|
|
244
237
|
fillOpacity: 0.3,
|
|
238
|
+
opacity:
|
|
239
|
+
// Checking `visibleSeries.length <= 1` fixes re-animated tweened areas on hover
|
|
240
|
+
seriesState.visibleSeries.length <= 1 || seriesState.isHighlighted(s.key, true) ? 1 : 0.1,
|
|
245
241
|
...props.area,
|
|
246
242
|
...s.props,
|
|
247
|
-
class: cls(
|
|
248
|
-
'transition-opacity',
|
|
249
|
-
// Checking `visibleSeries.length > 1` fixes re-animated tweened areas on hover
|
|
250
|
-
highlightClass,
|
|
251
|
-
props.area?.class,
|
|
252
|
-
s.props?.class
|
|
253
|
-
),
|
|
243
|
+
class: cls(props.area?.class, s.props?.class),
|
|
254
244
|
line: {
|
|
255
245
|
stroke: s.color,
|
|
246
|
+
opacity:
|
|
247
|
+
// Checking `visibleSeries.length <= 1` fixes re-animated tweened areas on hover
|
|
248
|
+
seriesState.visibleSeries.length <= 1 || seriesState.isHighlighted(s.key, true) ? 1 : 0.1,
|
|
256
249
|
...lineProps,
|
|
257
|
-
class: cls('transition-opacity', highlightClass, lineProps.class),
|
|
258
250
|
},
|
|
259
251
|
};
|
|
260
252
|
}
|
|
@@ -271,16 +263,11 @@
|
|
|
271
263
|
? s.value[1]
|
|
272
264
|
: (s.value ?? (s.data ? undefined : s.key)),
|
|
273
265
|
fill: s.color,
|
|
266
|
+
stroke: 'var(--color-surface-100, light-dark(white, black))',
|
|
267
|
+
opacity: seriesState.isHighlighted(s.key, true) ? 1 : 0.1,
|
|
274
268
|
...props.points,
|
|
275
269
|
...(typeof points === 'object' ? points : null),
|
|
276
|
-
class: cls(
|
|
277
|
-
'stroke-surface-200 transition-opacity',
|
|
278
|
-
seriesState.highlightKey.current &&
|
|
279
|
-
seriesState.highlightKey.current !== s.key &&
|
|
280
|
-
'opacity-10',
|
|
281
|
-
props.points?.class,
|
|
282
|
-
typeof points === 'object' && points.class
|
|
283
|
-
),
|
|
270
|
+
class: cls(props.points?.class, typeof points === 'object' && points.class),
|
|
284
271
|
};
|
|
285
272
|
}
|
|
286
273
|
|
|
@@ -295,16 +282,11 @@
|
|
|
295
282
|
: Array.isArray(s.value)
|
|
296
283
|
? s.value[1]
|
|
297
284
|
: (s.value ?? (s.data ? undefined : s.key)),
|
|
285
|
+
stroke: 'var(--color-surface-100, light-dark(white, black))',
|
|
286
|
+
opacity: seriesState.isHighlighted(s.key, true) ? 1 : 0.1,
|
|
298
287
|
...props.labels,
|
|
299
288
|
...(typeof labels === 'object' ? labels : null),
|
|
300
|
-
class: cls(
|
|
301
|
-
'stroke-surface-200 transition-opacity',
|
|
302
|
-
seriesState.highlightKey.current &&
|
|
303
|
-
seriesState.highlightKey.current !== s.key &&
|
|
304
|
-
'opacity-10',
|
|
305
|
-
props.labels?.class,
|
|
306
|
-
typeof labels === 'object' && labels.class
|
|
307
|
-
),
|
|
289
|
+
class: cls(props.labels?.class, typeof labels === 'object' && labels.class),
|
|
308
290
|
};
|
|
309
291
|
}
|
|
310
292
|
|
|
@@ -317,7 +299,7 @@
|
|
|
317
299
|
if (!context) return {};
|
|
318
300
|
const seriesTooltipData =
|
|
319
301
|
s.data && context.tooltip.data
|
|
320
|
-
? findRelatedData(s.data, context.tooltip.data, context.x)
|
|
302
|
+
? (findRelatedData(s.data, context.tooltip.data, context.x) ?? {})
|
|
321
303
|
: null;
|
|
322
304
|
const highlightPointsProps =
|
|
323
305
|
typeof props.highlight?.points === 'object' ? props.highlight.points : null;
|
|
@@ -332,19 +314,14 @@
|
|
|
332
314
|
onPointEnter: () => (seriesState.highlightKey.current = s.key),
|
|
333
315
|
onPointLeave: () => (seriesState.highlightKey.current = null),
|
|
334
316
|
...props.highlight,
|
|
317
|
+
opacity:
|
|
318
|
+
seriesState.highlightKey.current && seriesState.highlightKey.current !== s.key ? 0.1 : 1,
|
|
335
319
|
points:
|
|
336
320
|
props.highlight?.points == false
|
|
337
321
|
? false
|
|
338
322
|
: {
|
|
339
323
|
...highlightPointsProps,
|
|
340
324
|
fill: s.color,
|
|
341
|
-
class: cls(
|
|
342
|
-
'transition-opacity',
|
|
343
|
-
seriesState.highlightKey.current &&
|
|
344
|
-
seriesState.highlightKey.current !== s.key &&
|
|
345
|
-
'opacity-10',
|
|
346
|
-
highlightPointsProps?.class
|
|
347
|
-
),
|
|
348
325
|
},
|
|
349
326
|
};
|
|
350
327
|
}
|
|
@@ -398,13 +375,7 @@
|
|
|
398
375
|
if (axisDirection === 'y') {
|
|
399
376
|
return {
|
|
400
377
|
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
|
-
},
|
|
378
|
+
format: seriesLayout === 'stackExpand' ? 'percentRound' : undefined,
|
|
408
379
|
...(typeof axis === 'object' ? axis : null),
|
|
409
380
|
...props.yAxis,
|
|
410
381
|
};
|
|
@@ -412,7 +383,6 @@
|
|
|
412
383
|
|
|
413
384
|
return {
|
|
414
385
|
placement: radial ? 'angle' : 'bottom',
|
|
415
|
-
format: (value) => format(value, undefined, { variant: 'short' }),
|
|
416
386
|
...(typeof axis === 'object' ? axis : null),
|
|
417
387
|
...props.xAxis,
|
|
418
388
|
};
|
|
@@ -434,7 +404,6 @@
|
|
|
434
404
|
data={chartData}
|
|
435
405
|
{x}
|
|
436
406
|
{xDomain}
|
|
437
|
-
{xScale}
|
|
438
407
|
y={resolveAccessor(y)}
|
|
439
408
|
yBaseline={0}
|
|
440
409
|
yNice
|
|
@@ -444,10 +413,11 @@
|
|
|
444
413
|
tooltip={tooltip === false
|
|
445
414
|
? false
|
|
446
415
|
: {
|
|
447
|
-
mode: '
|
|
416
|
+
mode: 'quadtree-x',
|
|
448
417
|
onclick: onTooltipClick,
|
|
449
418
|
debug,
|
|
450
419
|
...props.tooltip?.context,
|
|
420
|
+
...(typeof tooltip === 'object' ? tooltip : null),
|
|
451
421
|
}}
|
|
452
422
|
brush={brush && (brush === true || brush.mode == undefined || brush.mode === 'integrated')
|
|
453
423
|
? {
|
|
@@ -42,10 +42,17 @@ import Labels from '../Labels.svelte';
|
|
|
42
42
|
import Points from '../Points.svelte';
|
|
43
43
|
import Rule from '../Rule.svelte';
|
|
44
44
|
import type { SeriesData, SimplifiedChartProps, SimplifiedChartPropsObject } from './types.js';
|
|
45
|
+
declare function $$render<TData>(): {
|
|
46
|
+
props: AreaChartProps<TData>;
|
|
47
|
+
exports: {};
|
|
48
|
+
bindings: "context";
|
|
49
|
+
slots: {};
|
|
50
|
+
events: {};
|
|
51
|
+
};
|
|
45
52
|
declare class __sveltets_Render<TData> {
|
|
46
|
-
props():
|
|
47
|
-
events():
|
|
48
|
-
slots():
|
|
53
|
+
props(): ReturnType<typeof $$render<TData>>['props'];
|
|
54
|
+
events(): ReturnType<typeof $$render<TData>>['events'];
|
|
55
|
+
slots(): ReturnType<typeof $$render<TData>>['slots'];
|
|
49
56
|
bindings(): "context";
|
|
50
57
|
exports(): {};
|
|
51
58
|
}
|