@sentropic/design-system-svelte 0.34.22 → 0.34.23
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/AreaChart.svelte +121 -1
- package/dist/AreaChart.svelte.d.ts +7 -0
- package/dist/AreaChart.svelte.d.ts.map +1 -1
- package/dist/BarChart.svelte +143 -1
- package/dist/BarChart.svelte.d.ts +9 -0
- package/dist/BarChart.svelte.d.ts.map +1 -1
- package/dist/LineChart.svelte +123 -1
- package/dist/LineChart.svelte.d.ts +8 -0
- package/dist/LineChart.svelte.d.ts.map +1 -1
- package/dist/chartAnnotations.d.ts +132 -0
- package/dist/chartAnnotations.d.ts.map +1 -0
- package/dist/chartAnnotations.js +125 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/AreaChart.svelte
CHANGED
|
@@ -17,6 +17,12 @@
|
|
|
17
17
|
|
|
18
18
|
<script lang="ts">
|
|
19
19
|
import ChartDataList from "./ChartDataList.svelte";
|
|
20
|
+
import {
|
|
21
|
+
resolveAnnotations,
|
|
22
|
+
annotationDataListItems,
|
|
23
|
+
polygonPoints,
|
|
24
|
+
type ChartAnnotation
|
|
25
|
+
} from "./chartAnnotations.js";
|
|
20
26
|
|
|
21
27
|
type AreaChartProps = {
|
|
22
28
|
data: (number | AreaChartDatum)[];
|
|
@@ -25,6 +31,12 @@
|
|
|
25
31
|
tone?: AreaChartTone;
|
|
26
32
|
smooth?: boolean;
|
|
27
33
|
label: string;
|
|
34
|
+
/**
|
|
35
|
+
* Annotation overlay in DATA space (points, labels, axis lines, regions,
|
|
36
|
+
* polygons), resolved to pixels via the chart scales. Regions render behind
|
|
37
|
+
* the area, every other kind above it. Additive: absent ⇒ unchanged.
|
|
38
|
+
*/
|
|
39
|
+
annotations?: ChartAnnotation[];
|
|
28
40
|
class?: string;
|
|
29
41
|
};
|
|
30
42
|
|
|
@@ -35,6 +47,7 @@
|
|
|
35
47
|
tone = "category1",
|
|
36
48
|
smooth = false,
|
|
37
49
|
label,
|
|
50
|
+
annotations,
|
|
38
51
|
class: className
|
|
39
52
|
}: AreaChartProps = $props();
|
|
40
53
|
|
|
@@ -87,7 +100,10 @@
|
|
|
87
100
|
});
|
|
88
101
|
});
|
|
89
102
|
|
|
90
|
-
const dataValueItems = $derived(
|
|
103
|
+
const dataValueItems = $derived([
|
|
104
|
+
...normalizedData.map((d) => `${d.x}: ${d.y}`),
|
|
105
|
+
...annotationDataListItems(annotations)
|
|
106
|
+
]);
|
|
91
107
|
|
|
92
108
|
let hoveredIndex: number | null = $state(null);
|
|
93
109
|
|
|
@@ -139,6 +155,37 @@
|
|
|
139
155
|
});
|
|
140
156
|
});
|
|
141
157
|
|
|
158
|
+
// --- Annotation overlay ---------------------------------------------------
|
|
159
|
+
// `xScale` honours the ordinal/numeric x domain; `yScale` mirrors the point
|
|
160
|
+
// y mapping. Out-of-domain coordinates yield `null` → the resolver drops them.
|
|
161
|
+
const annotationXScale = $derived((v: number | string): number | null => {
|
|
162
|
+
if (xDomain.kind === "numeric") {
|
|
163
|
+
if (typeof v !== "number" || !Number.isFinite(v)) return null;
|
|
164
|
+
if (v < xDomain.min || v > xDomain.max) return null;
|
|
165
|
+
return scaleLinear(v, xDomain.min, xDomain.max, 0, plotWidth);
|
|
166
|
+
}
|
|
167
|
+
const i = normalizedData.findIndex((d) => d.x === v);
|
|
168
|
+
if (i < 0) return null;
|
|
169
|
+
const denom = Math.max(normalizedData.length - 1, 1);
|
|
170
|
+
return normalizedData.length === 1 ? plotWidth / 2 : (i / denom) * plotWidth;
|
|
171
|
+
});
|
|
172
|
+
const annotationYScale = $derived((v: number): number | null => {
|
|
173
|
+
if (!Number.isFinite(v) || v < yDomain.min || v > yDomain.max) return null;
|
|
174
|
+
return scaleLinear(v, yDomain.min, yDomain.max, plotHeight, 0);
|
|
175
|
+
});
|
|
176
|
+
const resolvedAnnotations = $derived(
|
|
177
|
+
resolveAnnotations(annotations, {
|
|
178
|
+
xScale: annotationXScale,
|
|
179
|
+
yScale: annotationYScale,
|
|
180
|
+
plotLeft: MARGIN.left,
|
|
181
|
+
plotTop: MARGIN.top,
|
|
182
|
+
plotWidth,
|
|
183
|
+
plotHeight
|
|
184
|
+
})
|
|
185
|
+
);
|
|
186
|
+
const annotationRegions = $derived(resolvedAnnotations.filter((a) => a.kind === "region"));
|
|
187
|
+
const annotationAbove = $derived(resolvedAnnotations.filter((a) => a.kind !== "region"));
|
|
188
|
+
|
|
142
189
|
function buildLinearPath(pts: { x: number; y: number }[]): string {
|
|
143
190
|
return pts.map((p, i) => `${i === 0 ? "M" : "L"}${p.x.toFixed(2)},${p.y.toFixed(2)}`).join(" ");
|
|
144
191
|
}
|
|
@@ -294,6 +341,20 @@
|
|
|
294
341
|
</text>
|
|
295
342
|
{/each}
|
|
296
343
|
|
|
344
|
+
<!-- Annotation regions sit BEHIND the area. -->
|
|
345
|
+
{#if annotationRegions.length > 0}
|
|
346
|
+
<g class="st-areaChart__annotations st-areaChart__annotations--behind">
|
|
347
|
+
{#each annotationRegions as a (a.key)}
|
|
348
|
+
{#if a.kind === "region"}
|
|
349
|
+
<rect class="st-areaChart__annotationRegion" x={a.x} y={a.y} width={a.width} height={a.height} />
|
|
350
|
+
{#if a.label}
|
|
351
|
+
<text class="st-areaChart__annotationLabel" x={a.x + 4} y={a.y + 11}>{a.label}</text>
|
|
352
|
+
{/if}
|
|
353
|
+
{/if}
|
|
354
|
+
{/each}
|
|
355
|
+
</g>
|
|
356
|
+
{/if}
|
|
357
|
+
|
|
297
358
|
{#if areaPath}
|
|
298
359
|
<path class="st-areaChart__area" d={areaPath} fill="url(#{gradientId})" />
|
|
299
360
|
{/if}
|
|
@@ -317,6 +378,37 @@
|
|
|
317
378
|
data-chart-index={p.index}
|
|
318
379
|
/>
|
|
319
380
|
{/each}
|
|
381
|
+
|
|
382
|
+
<!-- Annotations ABOVE the area: lines, shapes, points, labels. -->
|
|
383
|
+
{#if annotationAbove.length > 0}
|
|
384
|
+
<g class="st-areaChart__annotations st-areaChart__annotations--above">
|
|
385
|
+
{#each annotationAbove as a (a.key)}
|
|
386
|
+
{#if a.kind === "line"}
|
|
387
|
+
<line class="st-areaChart__annotationLine" x1={a.x1} y1={a.y1} x2={a.x2} y2={a.y2} />
|
|
388
|
+
{#if a.label}
|
|
389
|
+
<text
|
|
390
|
+
class="st-areaChart__annotationLabel"
|
|
391
|
+
x={a.axis === "x" ? a.x1 + 4 : MARGIN.left + plotWidth - 4}
|
|
392
|
+
y={a.axis === "x" ? MARGIN.top + 11 : a.y1 - 4}
|
|
393
|
+
text-anchor={a.axis === "x" ? "start" : "end"}
|
|
394
|
+
>{a.label}</text>
|
|
395
|
+
{/if}
|
|
396
|
+
{:else if a.kind === "shape"}
|
|
397
|
+
<polygon class="st-areaChart__annotationShape" points={polygonPoints(a.points)} />
|
|
398
|
+
{#if a.label}
|
|
399
|
+
<text class="st-areaChart__annotationLabel" x={a.labelX} y={a.labelY} text-anchor="middle">{a.label}</text>
|
|
400
|
+
{/if}
|
|
401
|
+
{:else if a.kind === "point"}
|
|
402
|
+
<circle class="st-areaChart__annotationPoint" cx={a.x} cy={a.y} r="4.5" />
|
|
403
|
+
{#if a.label}
|
|
404
|
+
<text class="st-areaChart__annotationLabel" x={a.x} y={a.y - 8} text-anchor="middle">{a.label}</text>
|
|
405
|
+
{/if}
|
|
406
|
+
{:else}
|
|
407
|
+
<text class="st-areaChart__annotationText" x={a.x} y={a.y} text-anchor={a.anchor}>{a.text}</text>
|
|
408
|
+
{/if}
|
|
409
|
+
{/each}
|
|
410
|
+
</g>
|
|
411
|
+
{/if}
|
|
320
412
|
</svg>
|
|
321
413
|
</div>
|
|
322
414
|
|
|
@@ -429,4 +521,32 @@
|
|
|
429
521
|
.st-areaChart__tooltipValue {
|
|
430
522
|
opacity: 0.85;
|
|
431
523
|
}
|
|
524
|
+
|
|
525
|
+
/* --- Annotation layer ----------------------------------------------------
|
|
526
|
+
Regions render BEHIND the area; lines/shapes/points/labels render ABOVE. */
|
|
527
|
+
.st-areaChart__annotationRegion {
|
|
528
|
+
fill: color-mix(in srgb, var(--st-semantic-feedback-info) 12%, transparent);
|
|
529
|
+
stroke: none;
|
|
530
|
+
}
|
|
531
|
+
.st-areaChart__annotationLine {
|
|
532
|
+
stroke: var(--st-semantic-feedback-info);
|
|
533
|
+
stroke-width: 1.5;
|
|
534
|
+
stroke-dasharray: 4 3;
|
|
535
|
+
}
|
|
536
|
+
.st-areaChart__annotationShape {
|
|
537
|
+
fill: color-mix(in srgb, var(--st-semantic-feedback-info) 14%, transparent);
|
|
538
|
+
stroke: var(--st-semantic-feedback-info);
|
|
539
|
+
stroke-width: 1.5;
|
|
540
|
+
}
|
|
541
|
+
.st-areaChart__annotationPoint {
|
|
542
|
+
fill: var(--st-semantic-feedback-info);
|
|
543
|
+
stroke: var(--st-semantic-surface-default);
|
|
544
|
+
stroke-width: 1.5;
|
|
545
|
+
}
|
|
546
|
+
.st-areaChart__annotationLabel,
|
|
547
|
+
.st-areaChart__annotationText {
|
|
548
|
+
fill: var(--st-semantic-text-primary);
|
|
549
|
+
font-size: 0.625rem;
|
|
550
|
+
font-weight: 600;
|
|
551
|
+
}
|
|
432
552
|
</style>
|
|
@@ -3,6 +3,7 @@ export type AreaChartDatum = {
|
|
|
3
3
|
x: number | string;
|
|
4
4
|
y: number;
|
|
5
5
|
};
|
|
6
|
+
import { type ChartAnnotation } from "./chartAnnotations.js";
|
|
6
7
|
type AreaChartProps = {
|
|
7
8
|
data: (number | AreaChartDatum)[];
|
|
8
9
|
width?: number;
|
|
@@ -10,6 +11,12 @@ type AreaChartProps = {
|
|
|
10
11
|
tone?: AreaChartTone;
|
|
11
12
|
smooth?: boolean;
|
|
12
13
|
label: string;
|
|
14
|
+
/**
|
|
15
|
+
* Annotation overlay in DATA space (points, labels, axis lines, regions,
|
|
16
|
+
* polygons), resolved to pixels via the chart scales. Regions render behind
|
|
17
|
+
* the area, every other kind above it. Additive: absent ⇒ unchanged.
|
|
18
|
+
*/
|
|
19
|
+
annotations?: ChartAnnotation[];
|
|
13
20
|
class?: string;
|
|
14
21
|
};
|
|
15
22
|
declare const AreaChart: import("svelte").Component<AreaChartProps, {}, "">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AreaChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/AreaChart.svelte.ts"],"names":[],"mappings":"AAGE,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;
|
|
1
|
+
{"version":3,"file":"AreaChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/AreaChart.svelte.ts"],"names":[],"mappings":"AAGE,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAIJ,OAAO,EAIH,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAG/B,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA+UJ,QAAA,MAAM,SAAS,oDAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,CAAC"}
|
package/dist/BarChart.svelte
CHANGED
|
@@ -50,6 +50,12 @@
|
|
|
50
50
|
|
|
51
51
|
<script lang="ts">
|
|
52
52
|
import ChartDataList from "./ChartDataList.svelte";
|
|
53
|
+
import {
|
|
54
|
+
resolveAnnotations,
|
|
55
|
+
annotationDataListItems,
|
|
56
|
+
polygonPoints,
|
|
57
|
+
type ChartAnnotation
|
|
58
|
+
} from "./chartAnnotations.js";
|
|
53
59
|
|
|
54
60
|
type BarChartProps = {
|
|
55
61
|
data: BarChartDatum[];
|
|
@@ -86,6 +92,14 @@
|
|
|
86
92
|
bands?: ChartBand[];
|
|
87
93
|
/** A single goal line, emphasised above the bars. */
|
|
88
94
|
goalLine?: ChartGoalLine;
|
|
95
|
+
/**
|
|
96
|
+
* Annotation overlay in DATA space. The x coordinate is CATEGORICAL — it
|
|
97
|
+
* matches a bar by its `label` (centre of band) and is ignored otherwise; the
|
|
98
|
+
* y coordinate (and `value`/`from`/`to`) are value-axis numbers. Regions
|
|
99
|
+
* render behind the bars, every other kind above. Additive: absent ⇒
|
|
100
|
+
* unchanged.
|
|
101
|
+
*/
|
|
102
|
+
annotations?: ChartAnnotation[];
|
|
89
103
|
/**
|
|
90
104
|
* Value-axis scale. `"linear"` (default) is unchanged. `"log"` switches the
|
|
91
105
|
* value axis to a base-10 logarithmic scale — values `<= 0` are ignored for
|
|
@@ -116,6 +130,7 @@
|
|
|
116
130
|
referenceLines,
|
|
117
131
|
bands,
|
|
118
132
|
goalLine,
|
|
133
|
+
annotations,
|
|
119
134
|
scale = "linear",
|
|
120
135
|
invertAxis = false,
|
|
121
136
|
showLegend,
|
|
@@ -469,9 +484,63 @@
|
|
|
469
484
|
return out;
|
|
470
485
|
});
|
|
471
486
|
|
|
487
|
+
// --- Annotation overlay ---------------------------------------------------
|
|
488
|
+
// The x coordinate is CATEGORICAL (a bar `label` → centre of band); the y
|
|
489
|
+
// coordinate is a value-axis number. For a HORIZONTAL chart the value axis is
|
|
490
|
+
// x and the category axis is y, so the data-space (x=category, y=value)
|
|
491
|
+
// convention is transposed onto the pixel axes: the resolver's `xScale` maps
|
|
492
|
+
// the value, `yScale` the category, and each annotation's `axis`/coords are
|
|
493
|
+
// swapped so a value reference (`axis: "y"`) still spans the full plot.
|
|
494
|
+
const categoryPixel = $derived((v: number | string): number | null => {
|
|
495
|
+
const bar = bars.find((b) => b.datum.label === String(v));
|
|
496
|
+
if (!bar) return null;
|
|
497
|
+
return isVertical ? bar.cx - MARGIN.left : bar.cy - MARGIN.top;
|
|
498
|
+
});
|
|
499
|
+
const valuePixelRel = $derived((v: number): number | null => {
|
|
500
|
+
if (!Number.isFinite(v)) return null;
|
|
501
|
+
return valuePos(v) - (isVertical ? MARGIN.top : MARGIN.left);
|
|
502
|
+
});
|
|
503
|
+
const transposeAnnotations = $derived((list: ChartAnnotation[] | undefined): ChartAnnotation[] | undefined => {
|
|
504
|
+
if (!list || isVertical) return list;
|
|
505
|
+
// Horizontal: swap the data-space x/y (and the region/line axis) so the
|
|
506
|
+
// generic resolver — which always emits xScale→x-pixel, yScale→y-pixel —
|
|
507
|
+
// lands the value on the x axis and the category on the y axis.
|
|
508
|
+
return list.map((a): ChartAnnotation => {
|
|
509
|
+
switch (a.kind) {
|
|
510
|
+
case "line":
|
|
511
|
+
return { ...a, axis: a.axis === "x" ? "y" : "x" };
|
|
512
|
+
case "region":
|
|
513
|
+
return { ...a, axis: a.axis === "x" ? "y" : "x" };
|
|
514
|
+
case "point":
|
|
515
|
+
return { ...a, x: a.y, y: typeof a.x === "number" ? a.x : NaN } as ChartAnnotation;
|
|
516
|
+
case "label":
|
|
517
|
+
return { ...a, x: a.y, y: typeof a.x === "number" ? a.x : NaN } as ChartAnnotation;
|
|
518
|
+
case "shape":
|
|
519
|
+
return { ...a, points: a.points.map((p) => ({ x: p.y, y: typeof p.x === "number" ? p.x : NaN })) };
|
|
520
|
+
}
|
|
521
|
+
});
|
|
522
|
+
});
|
|
523
|
+
const annXScale = $derived((v: number | string): number | null =>
|
|
524
|
+
isVertical ? categoryPixel(v) : typeof v === "number" ? valuePixelRel(v) : null
|
|
525
|
+
);
|
|
526
|
+
const annYScale = $derived((v: number): number | null => (isVertical ? valuePixelRel(v) : categoryPixel(v)));
|
|
527
|
+
const resolvedAnnotations = $derived(
|
|
528
|
+
resolveAnnotations(transposeAnnotations(annotations), {
|
|
529
|
+
xScale: annXScale,
|
|
530
|
+
yScale: annYScale,
|
|
531
|
+
plotLeft: MARGIN.left,
|
|
532
|
+
plotTop: MARGIN.top,
|
|
533
|
+
plotWidth: scales.plotWidth,
|
|
534
|
+
plotHeight: scales.plotHeight
|
|
535
|
+
})
|
|
536
|
+
);
|
|
537
|
+
const annotationRegions = $derived(resolvedAnnotations.filter((a) => a.kind === "region"));
|
|
538
|
+
const annotationAbove = $derived(resolvedAnnotations.filter((a) => a.kind !== "region"));
|
|
539
|
+
|
|
472
540
|
const dataValueItems = $derived([
|
|
473
541
|
...data.map((d) => `${d.label}: ${d.value}`),
|
|
474
|
-
...overlayDataListItems(referenceLines, bands, goal)
|
|
542
|
+
...overlayDataListItems(referenceLines, bands, goal),
|
|
543
|
+
...annotationDataListItems(annotations)
|
|
475
544
|
]);
|
|
476
545
|
|
|
477
546
|
const valueAxisTicks = $derived.by(() => {
|
|
@@ -630,6 +699,20 @@
|
|
|
630
699
|
{/if}
|
|
631
700
|
{/each}
|
|
632
701
|
|
|
702
|
+
<!-- Annotation regions sit BEHIND the bars (filled bands). -->
|
|
703
|
+
{#if annotationRegions.length > 0}
|
|
704
|
+
<g class="st-barChart__annotations st-barChart__annotations--behind">
|
|
705
|
+
{#each annotationRegions as a (a.key)}
|
|
706
|
+
{#if a.kind === "region"}
|
|
707
|
+
<rect class="st-barChart__annotationRegion" x={a.x} y={a.y} width={a.width} height={a.height} />
|
|
708
|
+
{#if a.label}
|
|
709
|
+
<text class="st-barChart__annotationLabel" x={a.x + 4} y={a.y + 11}>{a.label}</text>
|
|
710
|
+
{/if}
|
|
711
|
+
{/if}
|
|
712
|
+
{/each}
|
|
713
|
+
</g>
|
|
714
|
+
{/if}
|
|
715
|
+
|
|
633
716
|
<!-- bars -->
|
|
634
717
|
<!-- The bars live inside an aria-hidden SVG, so they are NEVER an accessible
|
|
635
718
|
surface. When `onSelect` is provided they only carry a mouse click
|
|
@@ -681,6 +764,37 @@
|
|
|
681
764
|
text-anchor={isVertical ? "end" : "start"}
|
|
682
765
|
>{goalGeom.label ?? `Objectif ${goalGeom.value}`}</text>
|
|
683
766
|
{/if}
|
|
767
|
+
|
|
768
|
+
<!-- Annotations ABOVE the bars: lines, shapes, points, labels. -->
|
|
769
|
+
{#if annotationAbove.length > 0}
|
|
770
|
+
<g class="st-barChart__annotations st-barChart__annotations--above">
|
|
771
|
+
{#each annotationAbove as a (a.key)}
|
|
772
|
+
{#if a.kind === "line"}
|
|
773
|
+
<line class="st-barChart__annotationLine" x1={a.x1} y1={a.y1} x2={a.x2} y2={a.y2} />
|
|
774
|
+
{#if a.label}
|
|
775
|
+
<text
|
|
776
|
+
class="st-barChart__annotationLabel"
|
|
777
|
+
x={a.axis === "x" ? a.x1 + 4 : MARGIN.left + scales.plotWidth - 4}
|
|
778
|
+
y={a.axis === "x" ? MARGIN.top + 11 : a.y1 - 4}
|
|
779
|
+
text-anchor={a.axis === "x" ? "start" : "end"}
|
|
780
|
+
>{a.label}</text>
|
|
781
|
+
{/if}
|
|
782
|
+
{:else if a.kind === "shape"}
|
|
783
|
+
<polygon class="st-barChart__annotationShape" points={polygonPoints(a.points)} />
|
|
784
|
+
{#if a.label}
|
|
785
|
+
<text class="st-barChart__annotationLabel" x={a.labelX} y={a.labelY} text-anchor="middle">{a.label}</text>
|
|
786
|
+
{/if}
|
|
787
|
+
{:else if a.kind === "point"}
|
|
788
|
+
<circle class="st-barChart__annotationPoint" cx={a.x} cy={a.y} r="4.5" />
|
|
789
|
+
{#if a.label}
|
|
790
|
+
<text class="st-barChart__annotationLabel" x={a.x} y={a.y - 8} text-anchor="middle">{a.label}</text>
|
|
791
|
+
{/if}
|
|
792
|
+
{:else}
|
|
793
|
+
<text class="st-barChart__annotationText" x={a.x} y={a.y} text-anchor={a.anchor}>{a.text}</text>
|
|
794
|
+
{/if}
|
|
795
|
+
{/each}
|
|
796
|
+
</g>
|
|
797
|
+
{/if}
|
|
684
798
|
</svg>
|
|
685
799
|
</div>
|
|
686
800
|
|
|
@@ -934,4 +1048,32 @@
|
|
|
934
1048
|
.st-barChart__bar,
|
|
935
1049
|
.st-barChart__filterChip { transition: none; }
|
|
936
1050
|
}
|
|
1051
|
+
|
|
1052
|
+
/* --- Annotation layer ----------------------------------------------------
|
|
1053
|
+
Regions render BEHIND the bars; lines/shapes/points/labels render ABOVE. */
|
|
1054
|
+
.st-barChart__annotationRegion {
|
|
1055
|
+
fill: color-mix(in srgb, var(--st-semantic-feedback-info) 12%, transparent);
|
|
1056
|
+
stroke: none;
|
|
1057
|
+
}
|
|
1058
|
+
.st-barChart__annotationLine {
|
|
1059
|
+
stroke: var(--st-semantic-feedback-info);
|
|
1060
|
+
stroke-width: 1.5;
|
|
1061
|
+
stroke-dasharray: 4 3;
|
|
1062
|
+
}
|
|
1063
|
+
.st-barChart__annotationShape {
|
|
1064
|
+
fill: color-mix(in srgb, var(--st-semantic-feedback-info) 14%, transparent);
|
|
1065
|
+
stroke: var(--st-semantic-feedback-info);
|
|
1066
|
+
stroke-width: 1.5;
|
|
1067
|
+
}
|
|
1068
|
+
.st-barChart__annotationPoint {
|
|
1069
|
+
fill: var(--st-semantic-feedback-info);
|
|
1070
|
+
stroke: var(--st-semantic-surface-default);
|
|
1071
|
+
stroke-width: 1.5;
|
|
1072
|
+
}
|
|
1073
|
+
.st-barChart__annotationLabel,
|
|
1074
|
+
.st-barChart__annotationText {
|
|
1075
|
+
fill: var(--st-semantic-text-primary);
|
|
1076
|
+
font-size: 0.625rem;
|
|
1077
|
+
font-weight: 600;
|
|
1078
|
+
}
|
|
937
1079
|
</style>
|
|
@@ -31,6 +31,7 @@ export type ChartGoalLine = {
|
|
|
31
31
|
};
|
|
32
32
|
/** Value-axis scale type. `log` requires strictly positive values. */
|
|
33
33
|
export type ChartScale = "linear" | "log";
|
|
34
|
+
import { type ChartAnnotation } from "./chartAnnotations.js";
|
|
34
35
|
type BarChartProps = {
|
|
35
36
|
data: BarChartDatum[];
|
|
36
37
|
width?: number;
|
|
@@ -66,6 +67,14 @@ type BarChartProps = {
|
|
|
66
67
|
bands?: ChartBand[];
|
|
67
68
|
/** A single goal line, emphasised above the bars. */
|
|
68
69
|
goalLine?: ChartGoalLine;
|
|
70
|
+
/**
|
|
71
|
+
* Annotation overlay in DATA space. The x coordinate is CATEGORICAL — it
|
|
72
|
+
* matches a bar by its `label` (centre of band) and is ignored otherwise; the
|
|
73
|
+
* y coordinate (and `value`/`from`/`to`) are value-axis numbers. Regions
|
|
74
|
+
* render behind the bars, every other kind above. Additive: absent ⇒
|
|
75
|
+
* unchanged.
|
|
76
|
+
*/
|
|
77
|
+
annotations?: ChartAnnotation[];
|
|
69
78
|
/**
|
|
70
79
|
* Value-axis scale. `"linear"` (default) is unchanged. `"log"` switches the
|
|
71
80
|
* value axis to a base-10 logarithmic scale — values `<= 0` are ignored for
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BarChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/BarChart.svelte.ts"],"names":[],"mappings":"AAGE,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"BarChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/BarChart.svelte.ts"],"names":[],"mappings":"AAGE,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC;AAI5C,OAAO,EAIH,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAG/B,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,+DAA+D;IAC/D,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACtC,oDAAoD;IACpD,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAgnBJ,QAAA,MAAM,QAAQ,mDAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
|
package/dist/LineChart.svelte
CHANGED
|
@@ -53,6 +53,12 @@
|
|
|
53
53
|
|
|
54
54
|
<script lang="ts">
|
|
55
55
|
import ChartDataList from "./ChartDataList.svelte";
|
|
56
|
+
import {
|
|
57
|
+
resolveAnnotations,
|
|
58
|
+
annotationDataListItems,
|
|
59
|
+
polygonPoints,
|
|
60
|
+
type ChartAnnotation
|
|
61
|
+
} from "./chartAnnotations.js";
|
|
56
62
|
|
|
57
63
|
type LineChartProps = {
|
|
58
64
|
data: LineChartDatum[];
|
|
@@ -70,6 +76,13 @@
|
|
|
70
76
|
goalLine?: ChartGoalLine;
|
|
71
77
|
/** Least-squares trend line over the data points. */
|
|
72
78
|
trend?: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Annotation overlay in DATA space (points, labels, axis lines, regions,
|
|
81
|
+
* polygons). Resolved to pixels via the chart's scales and drawn in a
|
|
82
|
+
* dedicated `<g class="st-lineChart__annotations">` — regions behind the
|
|
83
|
+
* series, every other kind above it. Additive: absent ⇒ unchanged.
|
|
84
|
+
*/
|
|
85
|
+
annotations?: ChartAnnotation[];
|
|
73
86
|
/**
|
|
74
87
|
* Fixed value-axis (y) domain `[min, max]`. When provided (and finite,
|
|
75
88
|
* min<max) the y scale uses it instead of the data-derived range — letting
|
|
@@ -104,6 +117,7 @@
|
|
|
104
117
|
bands,
|
|
105
118
|
goalLine,
|
|
106
119
|
trend = false,
|
|
120
|
+
annotations,
|
|
107
121
|
domain,
|
|
108
122
|
scale = "linear",
|
|
109
123
|
invertAxis = false,
|
|
@@ -441,6 +455,40 @@
|
|
|
441
455
|
};
|
|
442
456
|
});
|
|
443
457
|
|
|
458
|
+
// --- Annotation overlay ---------------------------------------------------
|
|
459
|
+
// Data-space annotations resolved to absolute pixels via the chart scales.
|
|
460
|
+
// `xScale` honours the ordinal/numeric x domain (a category matches by
|
|
461
|
+
// equality, a numeric value must sit inside the domain); `yScale` reuses the
|
|
462
|
+
// value fraction. Out-of-domain coordinates yield `null` → the resolver drops
|
|
463
|
+
// them, so an annotation never escapes the plot.
|
|
464
|
+
const annotationXScale = $derived((v: number | string): number | null => {
|
|
465
|
+
if (xDomain.kind === "numeric") {
|
|
466
|
+
if (typeof v !== "number" || !Number.isFinite(v)) return null;
|
|
467
|
+
if (v < xDomain.min || v > xDomain.max) return null;
|
|
468
|
+
return scaleLinear(v, xDomain.min, xDomain.max, 0, plotWidth);
|
|
469
|
+
}
|
|
470
|
+
const i = data.findIndex((d) => d.x === v);
|
|
471
|
+
if (i < 0) return null;
|
|
472
|
+
const denom = Math.max(data.length - 1, 1);
|
|
473
|
+
return data.length === 1 ? plotWidth / 2 : (i / denom) * plotWidth;
|
|
474
|
+
});
|
|
475
|
+
const annotationYScale = $derived((v: number): number | null => {
|
|
476
|
+
if (!Number.isFinite(v)) return null;
|
|
477
|
+
return plotHeight * (1 - valueFraction(v));
|
|
478
|
+
});
|
|
479
|
+
const resolvedAnnotations = $derived(
|
|
480
|
+
resolveAnnotations(annotations, {
|
|
481
|
+
xScale: annotationXScale,
|
|
482
|
+
yScale: annotationYScale,
|
|
483
|
+
plotLeft: MARGIN.left,
|
|
484
|
+
plotTop: MARGIN.top,
|
|
485
|
+
plotWidth,
|
|
486
|
+
plotHeight
|
|
487
|
+
})
|
|
488
|
+
);
|
|
489
|
+
const annotationRegions = $derived(resolvedAnnotations.filter((a) => a.kind === "region"));
|
|
490
|
+
const annotationAbove = $derived(resolvedAnnotations.filter((a) => a.kind !== "region"));
|
|
491
|
+
|
|
444
492
|
// --- Forecast segments ------------------------------------------------------
|
|
445
493
|
// A datum with `forecast: true` renders as a forecast point: its dot takes
|
|
446
494
|
// the forecast tone and every segment touching a forecast point is dashed,
|
|
@@ -466,7 +514,8 @@
|
|
|
466
514
|
|
|
467
515
|
const dataValueItems = $derived([
|
|
468
516
|
...data.map((d, i) => (forecastFlags[i] ? `${d.x}: ${d.y} (prévision)` : `${d.x}: ${d.y}`)),
|
|
469
|
-
...overlayDataListItems(referenceLines, bands, goal, trendModel)
|
|
517
|
+
...overlayDataListItems(referenceLines, bands, goal, trendModel),
|
|
518
|
+
...annotationDataListItems(annotations)
|
|
470
519
|
]);
|
|
471
520
|
|
|
472
521
|
function buildLinearPath(pts: { x: number; y: number }[]): string {
|
|
@@ -651,6 +700,20 @@
|
|
|
651
700
|
<line class="st-lineChart__trend" x1={trendLine.x1} y1={trendLine.y1} x2={trendLine.x2} y2={trendLine.y2} />
|
|
652
701
|
{/if}
|
|
653
702
|
|
|
703
|
+
<!-- Annotation regions sit BEHIND the series (filled bands). -->
|
|
704
|
+
{#if annotationRegions.length > 0}
|
|
705
|
+
<g class="st-lineChart__annotations st-lineChart__annotations--behind">
|
|
706
|
+
{#each annotationRegions as a (a.key)}
|
|
707
|
+
{#if a.kind === "region"}
|
|
708
|
+
<rect class="st-lineChart__annotationRegion" x={a.x} y={a.y} width={a.width} height={a.height} />
|
|
709
|
+
{#if a.label}
|
|
710
|
+
<text class="st-lineChart__annotationLabel" x={a.x + 4} y={a.y + 11}>{a.label}</text>
|
|
711
|
+
{/if}
|
|
712
|
+
{/if}
|
|
713
|
+
{/each}
|
|
714
|
+
</g>
|
|
715
|
+
{/if}
|
|
716
|
+
|
|
654
717
|
{#if area && areaPath}
|
|
655
718
|
<path class="st-lineChart__area" d={areaPath} />
|
|
656
719
|
{/if}
|
|
@@ -694,6 +757,37 @@
|
|
|
694
757
|
{goalGeom.label ?? `Objectif ${goalGeom.value}`}
|
|
695
758
|
</text>
|
|
696
759
|
{/if}
|
|
760
|
+
|
|
761
|
+
<!-- Annotations ABOVE the series: lines, shapes, points, labels. -->
|
|
762
|
+
{#if annotationAbove.length > 0}
|
|
763
|
+
<g class="st-lineChart__annotations st-lineChart__annotations--above">
|
|
764
|
+
{#each annotationAbove as a (a.key)}
|
|
765
|
+
{#if a.kind === "line"}
|
|
766
|
+
<line class="st-lineChart__annotationLine" x1={a.x1} y1={a.y1} x2={a.x2} y2={a.y2} />
|
|
767
|
+
{#if a.label}
|
|
768
|
+
<text
|
|
769
|
+
class="st-lineChart__annotationLabel"
|
|
770
|
+
x={a.axis === "x" ? a.x1 + 4 : MARGIN.left + plotWidth - 4}
|
|
771
|
+
y={a.axis === "x" ? MARGIN.top + 11 : a.y1 - 4}
|
|
772
|
+
text-anchor={a.axis === "x" ? "start" : "end"}
|
|
773
|
+
>{a.label}</text>
|
|
774
|
+
{/if}
|
|
775
|
+
{:else if a.kind === "shape"}
|
|
776
|
+
<polygon class="st-lineChart__annotationShape" points={polygonPoints(a.points)} />
|
|
777
|
+
{#if a.label}
|
|
778
|
+
<text class="st-lineChart__annotationLabel" x={a.labelX} y={a.labelY} text-anchor="middle">{a.label}</text>
|
|
779
|
+
{/if}
|
|
780
|
+
{:else if a.kind === "point"}
|
|
781
|
+
<circle class="st-lineChart__annotationPoint" cx={a.x} cy={a.y} r="4.5" />
|
|
782
|
+
{#if a.label}
|
|
783
|
+
<text class="st-lineChart__annotationLabel" x={a.x} y={a.y - 8} text-anchor="middle">{a.label}</text>
|
|
784
|
+
{/if}
|
|
785
|
+
{:else}
|
|
786
|
+
<text class="st-lineChart__annotationText" x={a.x} y={a.y} text-anchor={a.anchor}>{a.text}</text>
|
|
787
|
+
{/if}
|
|
788
|
+
{/each}
|
|
789
|
+
</g>
|
|
790
|
+
{/if}
|
|
697
791
|
</svg>
|
|
698
792
|
</div>
|
|
699
793
|
|
|
@@ -867,4 +961,32 @@
|
|
|
867
961
|
font-size: 0.6875rem;
|
|
868
962
|
font-weight: 600;
|
|
869
963
|
}
|
|
964
|
+
|
|
965
|
+
/* --- Annotation layer ----------------------------------------------------
|
|
966
|
+
Regions render BEHIND the series; lines/shapes/points/labels render ABOVE. */
|
|
967
|
+
.st-lineChart__annotationRegion {
|
|
968
|
+
fill: color-mix(in srgb, var(--st-semantic-feedback-info) 12%, transparent);
|
|
969
|
+
stroke: none;
|
|
970
|
+
}
|
|
971
|
+
.st-lineChart__annotationLine {
|
|
972
|
+
stroke: var(--st-semantic-feedback-info);
|
|
973
|
+
stroke-width: 1.5;
|
|
974
|
+
stroke-dasharray: 4 3;
|
|
975
|
+
}
|
|
976
|
+
.st-lineChart__annotationShape {
|
|
977
|
+
fill: color-mix(in srgb, var(--st-semantic-feedback-info) 14%, transparent);
|
|
978
|
+
stroke: var(--st-semantic-feedback-info);
|
|
979
|
+
stroke-width: 1.5;
|
|
980
|
+
}
|
|
981
|
+
.st-lineChart__annotationPoint {
|
|
982
|
+
fill: var(--st-semantic-feedback-info);
|
|
983
|
+
stroke: var(--st-semantic-surface-default);
|
|
984
|
+
stroke-width: 1.5;
|
|
985
|
+
}
|
|
986
|
+
.st-lineChart__annotationLabel,
|
|
987
|
+
.st-lineChart__annotationText {
|
|
988
|
+
fill: var(--st-semantic-text-primary);
|
|
989
|
+
font-size: 0.625rem;
|
|
990
|
+
font-weight: 600;
|
|
991
|
+
}
|
|
870
992
|
</style>
|
|
@@ -34,6 +34,7 @@ export type ChartGoalLine = {
|
|
|
34
34
|
};
|
|
35
35
|
/** Value-axis scale type. `log` requires strictly positive values. */
|
|
36
36
|
export type ChartScale = "linear" | "log";
|
|
37
|
+
import { type ChartAnnotation } from "./chartAnnotations.js";
|
|
37
38
|
type LineChartProps = {
|
|
38
39
|
data: LineChartDatum[];
|
|
39
40
|
width?: number;
|
|
@@ -50,6 +51,13 @@ type LineChartProps = {
|
|
|
50
51
|
goalLine?: ChartGoalLine;
|
|
51
52
|
/** Least-squares trend line over the data points. */
|
|
52
53
|
trend?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Annotation overlay in DATA space (points, labels, axis lines, regions,
|
|
56
|
+
* polygons). Resolved to pixels via the chart's scales and drawn in a
|
|
57
|
+
* dedicated `<g class="st-lineChart__annotations">` — regions behind the
|
|
58
|
+
* series, every other kind above it. Additive: absent ⇒ unchanged.
|
|
59
|
+
*/
|
|
60
|
+
annotations?: ChartAnnotation[];
|
|
53
61
|
/**
|
|
54
62
|
* Fixed value-axis (y) domain `[min, max]`. When provided (and finite,
|
|
55
63
|
* min<max) the y scale uses it instead of the data-derived range — letting
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/LineChart.svelte.ts"],"names":[],"mappings":"AAGE,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"LineChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/LineChart.svelte.ts"],"names":[],"mappings":"AAGE,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,KAAK,CAAC;AAI5C,OAAO,EAIH,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAG/B,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACtC,oDAAoD;IACpD,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,qDAAqD;IACrD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA6nBJ,QAAA,MAAM,SAAS,oDAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Marker glyph for a `point` annotation. Defaults to `circle`.
|
|
3
|
+
*/
|
|
4
|
+
export type ChartAnnotationMarker = "circle" | "square" | "diamond";
|
|
5
|
+
/**
|
|
6
|
+
* A single chart annotation in DATA space. Discriminated on `kind`:
|
|
7
|
+
* - `point` — a marked coordinate `(x, y)` with an optional label.
|
|
8
|
+
* - `label` — free text anchored at `(x, y)`.
|
|
9
|
+
* - `line` — a full-width/height guide on one axis at `value` (vertical when
|
|
10
|
+
* `axis: "x"`, horizontal when `axis: "y"`).
|
|
11
|
+
* - `region` — a filled band on one axis between `from` and `to`.
|
|
12
|
+
* - `shape` — a closed polygon through `points` (data-space coordinates).
|
|
13
|
+
*
|
|
14
|
+
* `x` may be a string for categorical (ordinal) x axes — it then matches a
|
|
15
|
+
* category by equality; `y` and value-axis numbers are always numeric.
|
|
16
|
+
*/
|
|
17
|
+
export type ChartAnnotation = {
|
|
18
|
+
kind: "point";
|
|
19
|
+
x: number | string;
|
|
20
|
+
y: number;
|
|
21
|
+
label?: string;
|
|
22
|
+
marker?: ChartAnnotationMarker;
|
|
23
|
+
} | {
|
|
24
|
+
kind: "label";
|
|
25
|
+
x: number | string;
|
|
26
|
+
y: number;
|
|
27
|
+
text: string;
|
|
28
|
+
anchor?: "start" | "middle" | "end";
|
|
29
|
+
} | {
|
|
30
|
+
kind: "line";
|
|
31
|
+
axis: "x" | "y";
|
|
32
|
+
value: number;
|
|
33
|
+
label?: string;
|
|
34
|
+
} | {
|
|
35
|
+
kind: "region";
|
|
36
|
+
axis: "x" | "y";
|
|
37
|
+
from: number;
|
|
38
|
+
to: number;
|
|
39
|
+
label?: string;
|
|
40
|
+
} | {
|
|
41
|
+
kind: "shape";
|
|
42
|
+
points: {
|
|
43
|
+
x: number | string;
|
|
44
|
+
y: number;
|
|
45
|
+
}[];
|
|
46
|
+
label?: string;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Scale context for {@link resolveAnnotations}. `xScale` / `yScale` map a data
|
|
50
|
+
* value to a pixel offset RELATIVE to the plot (0..plotWidth / 0..plotHeight),
|
|
51
|
+
* returning `null` when the value is non-finite, out of domain, or — for a
|
|
52
|
+
* categorical x axis — does not match any category. `plotLeft` / `plotTop` are
|
|
53
|
+
* the plot's pixel origin (chart margins); `plotWidth` / `plotHeight` its size.
|
|
54
|
+
*/
|
|
55
|
+
export type AnnotationScaleContext = {
|
|
56
|
+
xScale: (value: number | string) => number | null;
|
|
57
|
+
yScale: (value: number) => number | null;
|
|
58
|
+
plotLeft: number;
|
|
59
|
+
plotTop: number;
|
|
60
|
+
plotWidth: number;
|
|
61
|
+
plotHeight: number;
|
|
62
|
+
};
|
|
63
|
+
/** Resolved annotation primitive in ABSOLUTE pixel space (plot origin folded in). */
|
|
64
|
+
export type ResolvedAnnotation = {
|
|
65
|
+
kind: "region";
|
|
66
|
+
key: number;
|
|
67
|
+
axis: "x" | "y";
|
|
68
|
+
x: number;
|
|
69
|
+
y: number;
|
|
70
|
+
width: number;
|
|
71
|
+
height: number;
|
|
72
|
+
label?: string;
|
|
73
|
+
} | {
|
|
74
|
+
kind: "line";
|
|
75
|
+
key: number;
|
|
76
|
+
axis: "x" | "y";
|
|
77
|
+
x1: number;
|
|
78
|
+
y1: number;
|
|
79
|
+
x2: number;
|
|
80
|
+
y2: number;
|
|
81
|
+
label?: string;
|
|
82
|
+
} | {
|
|
83
|
+
kind: "shape";
|
|
84
|
+
key: number;
|
|
85
|
+
points: {
|
|
86
|
+
x: number;
|
|
87
|
+
y: number;
|
|
88
|
+
}[];
|
|
89
|
+
label?: string;
|
|
90
|
+
labelX: number;
|
|
91
|
+
labelY: number;
|
|
92
|
+
} | {
|
|
93
|
+
kind: "point";
|
|
94
|
+
key: number;
|
|
95
|
+
x: number;
|
|
96
|
+
y: number;
|
|
97
|
+
label?: string;
|
|
98
|
+
marker: ChartAnnotationMarker;
|
|
99
|
+
} | {
|
|
100
|
+
kind: "label";
|
|
101
|
+
key: number;
|
|
102
|
+
x: number;
|
|
103
|
+
y: number;
|
|
104
|
+
text: string;
|
|
105
|
+
anchor: "start" | "middle" | "end";
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
* Resolves DATA-space annotations to ABSOLUTE-pixel primitives. Pure: given the
|
|
109
|
+
* same inputs it always returns the same output, with no DOM/framework access.
|
|
110
|
+
*
|
|
111
|
+
* Region/line on `axis: "x"` are positioned via `xScale` (vertical guide / band
|
|
112
|
+
* spanning the full plot height); on `axis: "y"` via `yScale` (horizontal guide
|
|
113
|
+
* / band spanning the full plot width). Points, labels and shape vertices are
|
|
114
|
+
* positioned via both scales. Any annotation whose required coordinates fall
|
|
115
|
+
* outside the domain (scale returns `null`) or are non-finite is DROPPED, so an
|
|
116
|
+
* annotation never escapes the plot. The original index is preserved as `key`
|
|
117
|
+
* for stable rendering keys + a11y ordering.
|
|
118
|
+
*/
|
|
119
|
+
export declare function resolveAnnotations(annotations: ReadonlyArray<ChartAnnotation> | undefined, ctx: AnnotationScaleContext): ResolvedAnnotation[];
|
|
120
|
+
/**
|
|
121
|
+
* Screen-reader descriptions of the annotations, appended after the data values
|
|
122
|
+
* (and any analytical overlays) in the ChartDataList. Each item is
|
|
123
|
+
* `Annotation: <label/text>`; annotations without a label/text are skipped
|
|
124
|
+
* (nothing meaningful to announce). Empty when no annotation is present.
|
|
125
|
+
*/
|
|
126
|
+
export declare function annotationDataListItems(annotations: ReadonlyArray<ChartAnnotation> | undefined): string[];
|
|
127
|
+
/** SVG polygon `points` attribute from resolved pixel vertices. */
|
|
128
|
+
export declare function polygonPoints(points: ReadonlyArray<{
|
|
129
|
+
x: number;
|
|
130
|
+
y: number;
|
|
131
|
+
}>): string;
|
|
132
|
+
//# sourceMappingURL=chartAnnotations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chartAnnotations.d.ts","sourceRoot":"","sources":["../src/lib/chartAnnotations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// --- Chart annotation layer (shared, framework-agnostic) -------------------
|
|
2
|
+
//
|
|
3
|
+
// A declarative overlay of annotations expressed in DATA space (x / y values),
|
|
4
|
+
// resolved here to framework-agnostic PIXEL primitives. The model is the
|
|
5
|
+
// `ChartAnnotation` discriminated union provided by dataviz-core; the resolver
|
|
6
|
+
// is pure and identical across react / vue / svelte so the three renderers stay
|
|
7
|
+
// in strict parity. Purely additive: an absent/empty `annotations` prop yields
|
|
8
|
+
// no primitives and no a11y items.
|
|
9
|
+
const finite = (v) => typeof v === "number" && Number.isFinite(v);
|
|
10
|
+
/**
|
|
11
|
+
* Resolves DATA-space annotations to ABSOLUTE-pixel primitives. Pure: given the
|
|
12
|
+
* same inputs it always returns the same output, with no DOM/framework access.
|
|
13
|
+
*
|
|
14
|
+
* Region/line on `axis: "x"` are positioned via `xScale` (vertical guide / band
|
|
15
|
+
* spanning the full plot height); on `axis: "y"` via `yScale` (horizontal guide
|
|
16
|
+
* / band spanning the full plot width). Points, labels and shape vertices are
|
|
17
|
+
* positioned via both scales. Any annotation whose required coordinates fall
|
|
18
|
+
* outside the domain (scale returns `null`) or are non-finite is DROPPED, so an
|
|
19
|
+
* annotation never escapes the plot. The original index is preserved as `key`
|
|
20
|
+
* for stable rendering keys + a11y ordering.
|
|
21
|
+
*/
|
|
22
|
+
export function resolveAnnotations(annotations, ctx) {
|
|
23
|
+
if (!annotations || annotations.length === 0)
|
|
24
|
+
return [];
|
|
25
|
+
const { xScale, yScale, plotLeft, plotTop, plotWidth, plotHeight } = ctx;
|
|
26
|
+
const out = [];
|
|
27
|
+
annotations.forEach((a, key) => {
|
|
28
|
+
switch (a.kind) {
|
|
29
|
+
case "region": {
|
|
30
|
+
if (!finite(a.from) || !finite(a.to))
|
|
31
|
+
return;
|
|
32
|
+
if (a.axis === "x") {
|
|
33
|
+
const p1 = xScale(a.from);
|
|
34
|
+
const p2 = xScale(a.to);
|
|
35
|
+
if (p1 === null || p2 === null)
|
|
36
|
+
return;
|
|
37
|
+
const x = plotLeft + Math.min(p1, p2);
|
|
38
|
+
out.push({ kind: "region", key, axis: "x", x, y: plotTop, width: Math.max(Math.abs(p2 - p1), 0.5), height: plotHeight, label: a.label });
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
const p1 = yScale(a.from);
|
|
42
|
+
const p2 = yScale(a.to);
|
|
43
|
+
if (p1 === null || p2 === null)
|
|
44
|
+
return;
|
|
45
|
+
const y = plotTop + Math.min(p1, p2);
|
|
46
|
+
out.push({ kind: "region", key, axis: "y", x: plotLeft, y, width: plotWidth, height: Math.max(Math.abs(p2 - p1), 0.5), label: a.label });
|
|
47
|
+
}
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
case "line": {
|
|
51
|
+
if (!finite(a.value))
|
|
52
|
+
return;
|
|
53
|
+
if (a.axis === "x") {
|
|
54
|
+
const p = xScale(a.value);
|
|
55
|
+
if (p === null)
|
|
56
|
+
return;
|
|
57
|
+
const x = plotLeft + p;
|
|
58
|
+
out.push({ kind: "line", key, axis: "x", x1: x, y1: plotTop, x2: x, y2: plotTop + plotHeight, label: a.label });
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
const p = yScale(a.value);
|
|
62
|
+
if (p === null)
|
|
63
|
+
return;
|
|
64
|
+
const y = plotTop + p;
|
|
65
|
+
out.push({ kind: "line", key, axis: "y", x1: plotLeft, y1: y, x2: plotLeft + plotWidth, y2: y, label: a.label });
|
|
66
|
+
}
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
case "shape": {
|
|
70
|
+
if (!a.points || a.points.length < 2)
|
|
71
|
+
return;
|
|
72
|
+
const pts = [];
|
|
73
|
+
for (const p of a.points) {
|
|
74
|
+
const px = xScale(p.x);
|
|
75
|
+
const py = yScale(p.y);
|
|
76
|
+
if (px === null || py === null)
|
|
77
|
+
return; // a missing vertex invalidates the polygon
|
|
78
|
+
pts.push({ x: plotLeft + px, y: plotTop + py });
|
|
79
|
+
}
|
|
80
|
+
const labelX = pts.reduce((s, p) => s + p.x, 0) / pts.length;
|
|
81
|
+
const labelY = pts.reduce((s, p) => s + p.y, 0) / pts.length;
|
|
82
|
+
out.push({ kind: "shape", key, points: pts, label: a.label, labelX, labelY });
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
case "point": {
|
|
86
|
+
const px = xScale(a.x);
|
|
87
|
+
const py = yScale(a.y);
|
|
88
|
+
if (px === null || py === null)
|
|
89
|
+
return;
|
|
90
|
+
out.push({ kind: "point", key, x: plotLeft + px, y: plotTop + py, label: a.label, marker: a.marker ?? "circle" });
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
case "label": {
|
|
94
|
+
const px = xScale(a.x);
|
|
95
|
+
const py = yScale(a.y);
|
|
96
|
+
if (px === null || py === null)
|
|
97
|
+
return;
|
|
98
|
+
out.push({ kind: "label", key, x: plotLeft + px, y: plotTop + py, text: a.text, anchor: a.anchor ?? "middle" });
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
return out;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Screen-reader descriptions of the annotations, appended after the data values
|
|
107
|
+
* (and any analytical overlays) in the ChartDataList. Each item is
|
|
108
|
+
* `Annotation: <label/text>`; annotations without a label/text are skipped
|
|
109
|
+
* (nothing meaningful to announce). Empty when no annotation is present.
|
|
110
|
+
*/
|
|
111
|
+
export function annotationDataListItems(annotations) {
|
|
112
|
+
if (!annotations || annotations.length === 0)
|
|
113
|
+
return [];
|
|
114
|
+
const items = [];
|
|
115
|
+
for (const a of annotations) {
|
|
116
|
+
const text = a.kind === "label" ? a.text : a.label;
|
|
117
|
+
if (text)
|
|
118
|
+
items.push(`Annotation: ${text}`);
|
|
119
|
+
}
|
|
120
|
+
return items;
|
|
121
|
+
}
|
|
122
|
+
/** SVG polygon `points` attribute from resolved pixel vertices. */
|
|
123
|
+
export function polygonPoints(points) {
|
|
124
|
+
return points.map((p) => `${p.x.toFixed(2)},${p.y.toFixed(2)}`).join(" ");
|
|
125
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -214,6 +214,7 @@ export type { ScatterPlotDatum, ScatterPlotTone, ScatterPlotCentroid } from "./S
|
|
|
214
214
|
export type { StackedBarDatum, StackedBarSegment, StackedBarTone } from "./StackedBarChart.svelte";
|
|
215
215
|
export type { LineChartDatum, LineChartTone } from "./LineChart.svelte";
|
|
216
216
|
export type { ChartOverlayTone, ChartReferenceLine, ChartBand, ChartGoalLine, ChartScale } from "./LineChart.svelte";
|
|
217
|
+
export type { ChartAnnotation, ChartAnnotationMarker } from "./chartAnnotations.js";
|
|
217
218
|
export type { ComboChartTone, ComboChartBarSeries, ComboChartLineSeries } from "./ComboChart.svelte";
|
|
218
219
|
export type { GaugeChartTone, GaugeChartThreshold, GaugeChartFormat } from "./GaugeChart.svelte";
|
|
219
220
|
export type { FunnelChartTone, FunnelChartDatum } from "./FunnelChart.svelte";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"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"}
|