@sentropic/design-system-vue 0.36.23 → 0.36.25
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.d.ts +34 -0
- package/dist/AreaChart.d.ts.map +1 -1
- package/dist/AreaChart.js +125 -1
- package/dist/AreaChart.js.map +1 -1
- package/dist/BarChart.d.ts +36 -0
- package/dist/BarChart.d.ts.map +1 -1
- package/dist/BarChart.js +140 -0
- package/dist/BarChart.js.map +1 -1
- package/dist/DonutChart.d.ts +18 -0
- package/dist/DonutChart.d.ts.map +1 -1
- package/dist/DonutChart.js +35 -1
- package/dist/DonutChart.js.map +1 -1
- package/dist/LineChart.d.ts +35 -0
- package/dist/LineChart.d.ts.map +1 -1
- package/dist/LineChart.js +124 -0
- package/dist/LineChart.js.map +1 -1
- package/dist/StackedBarChart.d.ts +18 -0
- package/dist/StackedBarChart.d.ts.map +1 -1
- package/dist/StackedBarChart.js +30 -0
- package/dist/StackedBarChart.js.map +1 -1
- package/dist/chartAnnotations.d.ts +132 -0
- package/dist/chartAnnotations.d.ts.map +1 -0
- package/dist/chartAnnotations.js +126 -0
- package/dist/chartAnnotations.js.map +1 -0
- package/dist/chartDataLabels.d.ts +35 -0
- package/dist/chartDataLabels.d.ts.map +1 -0
- package/dist/chartDataLabels.js +32 -0
- package/dist/chartDataLabels.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/styles.css +115 -0
- package/package.json +1 -1
package/dist/AreaChart.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { type ChartAnnotation } from "./chartAnnotations.js";
|
|
2
|
+
import { type DataLabelsProp } from "./chartDataLabels.js";
|
|
1
3
|
export type AreaChartTone = "category1" | "category2" | "category3" | "category4" | "category5" | "category6" | "category7" | "category8";
|
|
2
4
|
export type AreaChartDatum = {
|
|
3
5
|
x: number | string;
|
|
@@ -10,6 +12,20 @@ export type AreaChartProps = {
|
|
|
10
12
|
tone?: AreaChartTone;
|
|
11
13
|
smooth?: boolean;
|
|
12
14
|
label: string;
|
|
15
|
+
/**
|
|
16
|
+
* Annotation overlay in DATA space (points, labels, axis lines, regions,
|
|
17
|
+
* polygons), resolved to pixels via the chart scales. Regions render behind
|
|
18
|
+
* the area, every other kind above it. Additive: absent ⇒ unchanged.
|
|
19
|
+
*/
|
|
20
|
+
annotations?: ChartAnnotation[];
|
|
21
|
+
/**
|
|
22
|
+
* Per-point value labels. `false`/absent (default) → none. `true` → each
|
|
23
|
+
* point's value with the chart's numeric formatter. Object → `format(value)`
|
|
24
|
+
* and/or a `position` override. Default position is `top` (above the point).
|
|
25
|
+
* Labels are `aria-hidden` — the values already live in the accessible
|
|
26
|
+
* ChartDataList.
|
|
27
|
+
*/
|
|
28
|
+
dataLabels?: DataLabelsProp;
|
|
13
29
|
class?: string;
|
|
14
30
|
};
|
|
15
31
|
export declare const AreaChart: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
@@ -37,6 +53,14 @@ export declare const AreaChart: import("vue").DefineComponent<import("vue").Extr
|
|
|
37
53
|
type: StringConstructor;
|
|
38
54
|
required: true;
|
|
39
55
|
};
|
|
56
|
+
annotations: {
|
|
57
|
+
type: () => ChartAnnotation[];
|
|
58
|
+
default: undefined;
|
|
59
|
+
};
|
|
60
|
+
dataLabels: {
|
|
61
|
+
type: () => DataLabelsProp;
|
|
62
|
+
default: undefined;
|
|
63
|
+
};
|
|
40
64
|
class: {
|
|
41
65
|
type: StringConstructor;
|
|
42
66
|
default: undefined;
|
|
@@ -68,6 +92,14 @@ export declare const AreaChart: import("vue").DefineComponent<import("vue").Extr
|
|
|
68
92
|
type: StringConstructor;
|
|
69
93
|
required: true;
|
|
70
94
|
};
|
|
95
|
+
annotations: {
|
|
96
|
+
type: () => ChartAnnotation[];
|
|
97
|
+
default: undefined;
|
|
98
|
+
};
|
|
99
|
+
dataLabels: {
|
|
100
|
+
type: () => DataLabelsProp;
|
|
101
|
+
default: undefined;
|
|
102
|
+
};
|
|
71
103
|
class: {
|
|
72
104
|
type: StringConstructor;
|
|
73
105
|
default: undefined;
|
|
@@ -79,5 +111,7 @@ export declare const AreaChart: import("vue").DefineComponent<import("vue").Extr
|
|
|
79
111
|
width: number;
|
|
80
112
|
tone: AreaChartTone;
|
|
81
113
|
smooth: boolean;
|
|
114
|
+
annotations: ChartAnnotation[];
|
|
115
|
+
dataLabels: DataLabelsProp;
|
|
82
116
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
83
117
|
//# sourceMappingURL=AreaChart.d.ts.map
|
package/dist/AreaChart.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AreaChart.d.ts","sourceRoot":"","sources":["../src/AreaChart.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AreaChart.d.ts","sourceRoot":"","sources":["../src/AreaChart.ts"],"names":[],"mappings":"AAYA,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAwC,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEjG,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;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,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;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAMF,eAAO,MAAM,SAAS;;cAGK,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE;;;;;;;;;;;;cAGhC,MAAM,aAAa;;;;;;;;;;;;cAGb,MAAM,eAAe,EAAE;;;;cACD,MAAM,cAAc;;;;;;;;;;;cAPjD,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE;;;;;;;;;;;;cAGhC,MAAM,aAAa;;;;;;;;;;;;cAGb,MAAM,eAAe,EAAE;;;;cACD,MAAM,cAAc;;;;;;;;;;;;;;;;4EAiW1E,CAAC"}
|
package/dist/AreaChart.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { defineComponent, h, ref } from "vue";
|
|
2
2
|
import { classNames } from "./classNames.js";
|
|
3
3
|
import { buildLinearPath, buildSmoothPath, CHART_MARGIN, chartDataList, formatTick, isNumeric, niceTicks, scaleLinear, } from "./chartScale.js";
|
|
4
|
+
import { annotationDataListItems, polygonPoints, resolveAnnotations, } from "./chartAnnotations.js";
|
|
5
|
+
import { formatDataLabel, normalizeDataLabels } from "./chartDataLabels.js";
|
|
4
6
|
const MARGIN = CHART_MARGIN;
|
|
5
7
|
let gradientCounter = 0;
|
|
6
8
|
export const AreaChart = defineComponent({
|
|
@@ -12,6 +14,8 @@ export const AreaChart = defineComponent({
|
|
|
12
14
|
tone: { type: String, default: "category1" },
|
|
13
15
|
smooth: { type: Boolean, default: false },
|
|
14
16
|
label: { type: String, required: true },
|
|
17
|
+
annotations: { type: Array, default: undefined },
|
|
18
|
+
dataLabels: { type: [Boolean, Object], default: undefined },
|
|
15
19
|
class: { type: String, default: undefined },
|
|
16
20
|
},
|
|
17
21
|
setup(props, { attrs }) {
|
|
@@ -38,7 +42,10 @@ export const AreaChart = defineComponent({
|
|
|
38
42
|
const plotWidth = Math.max(width - MARGIN.left - MARGIN.right, 1);
|
|
39
43
|
const plotHeight = Math.max(height - MARGIN.top - MARGIN.bottom, 1);
|
|
40
44
|
const normalizedData = (props.data ?? []).map((d, i) => typeof d === "number" ? { x: i, y: d } : d);
|
|
41
|
-
const dataValueItems =
|
|
45
|
+
const dataValueItems = [
|
|
46
|
+
...normalizedData.map((d) => `${d.x}: ${d.y}`),
|
|
47
|
+
...annotationDataListItems(props.annotations),
|
|
48
|
+
];
|
|
42
49
|
let xDomain;
|
|
43
50
|
if (normalizedData.length === 0) {
|
|
44
51
|
xDomain = { kind: "ordinal", values: [] };
|
|
@@ -78,6 +85,55 @@ export const AreaChart = defineComponent({
|
|
|
78
85
|
return { x: MARGIN.left + x, y: MARGIN.top + y, datum: d, index: i };
|
|
79
86
|
});
|
|
80
87
|
}
|
|
88
|
+
// --- Annotation overlay -------------------------------------------------
|
|
89
|
+
// `xScale` honours the ordinal/numeric x domain; `yScale` mirrors the
|
|
90
|
+
// point y mapping. Out-of-domain coordinates yield `null` → the resolver
|
|
91
|
+
// drops them.
|
|
92
|
+
const ordinalIndex = (v) => {
|
|
93
|
+
if (xDomain.kind !== "ordinal")
|
|
94
|
+
return null;
|
|
95
|
+
const i = normalizedData.findIndex((d) => d.x === v);
|
|
96
|
+
if (i < 0)
|
|
97
|
+
return null;
|
|
98
|
+
const denom = Math.max(normalizedData.length - 1, 1);
|
|
99
|
+
return normalizedData.length === 1 ? plotWidth / 2 : (i / denom) * plotWidth;
|
|
100
|
+
};
|
|
101
|
+
const annotationXScale = (v) => {
|
|
102
|
+
if (xDomain.kind === "numeric") {
|
|
103
|
+
if (typeof v !== "number" || !Number.isFinite(v))
|
|
104
|
+
return null;
|
|
105
|
+
if (v < xDomain.min || v > xDomain.max)
|
|
106
|
+
return null;
|
|
107
|
+
return scaleLinear(v, xDomain.min, xDomain.max, 0, plotWidth);
|
|
108
|
+
}
|
|
109
|
+
return ordinalIndex(v);
|
|
110
|
+
};
|
|
111
|
+
const annotationYScale = (v) => {
|
|
112
|
+
if (!Number.isFinite(v) || v < yDomain.min || v > yDomain.max)
|
|
113
|
+
return null;
|
|
114
|
+
return scaleLinear(v, yDomain.min, yDomain.max, plotHeight, 0);
|
|
115
|
+
};
|
|
116
|
+
const resolvedAnnotations = resolveAnnotations(props.annotations, {
|
|
117
|
+
xScale: annotationXScale,
|
|
118
|
+
yScale: annotationYScale,
|
|
119
|
+
plotLeft: MARGIN.left,
|
|
120
|
+
plotTop: MARGIN.top,
|
|
121
|
+
plotWidth,
|
|
122
|
+
plotHeight,
|
|
123
|
+
});
|
|
124
|
+
const annotationRegions = resolvedAnnotations.filter((a) => a.kind === "region");
|
|
125
|
+
const annotationAbove = resolvedAnnotations.filter((a) => a.kind !== "region");
|
|
126
|
+
// --- Data labels ------------------------------------------------------
|
|
127
|
+
// One value label per point. Default `top`: just above the dot. `center`
|
|
128
|
+
// sits on the dot. aria-hidden (values are in the ChartDataList already).
|
|
129
|
+
const dataLabelOpts = normalizeDataLabels(props.dataLabels);
|
|
130
|
+
const dataLabelItems = dataLabelOpts.enabled
|
|
131
|
+
? points.map((p) => {
|
|
132
|
+
const text = formatDataLabel(p.datum.y, dataLabelOpts, formatTick);
|
|
133
|
+
const center = dataLabelOpts.position === "center" || dataLabelOpts.position === "inside";
|
|
134
|
+
return { key: p.index, x: p.x, y: center ? p.y : p.y - 8, text, baseline: center ? "middle" : "auto" };
|
|
135
|
+
})
|
|
136
|
+
: [];
|
|
81
137
|
const linePath = points.length === 0 ? "" : smooth ? buildSmoothPath(points) : buildLinearPath(points);
|
|
82
138
|
let areaPath = "";
|
|
83
139
|
if (points.length !== 0) {
|
|
@@ -113,6 +169,65 @@ export const AreaChart = defineComponent({
|
|
|
113
169
|
}
|
|
114
170
|
const xLabels = xTickEntries.map((tick, i) => h("text", { key: `x${i}`, class: "st-areaChart__tickLabel", x: tick.x, y: height - MARGIN.bottom + 16, "text-anchor": "middle" }, tick.label));
|
|
115
171
|
const dots = points.map((p) => h("circle", { key: p.index, class: "st-areaChart__dot", cx: p.x, cy: p.y, r: "4", "data-chart-index": p.index }));
|
|
172
|
+
// Annotation regions sit BEHIND the area.
|
|
173
|
+
const annotationRegionGroup = annotationRegions.length > 0
|
|
174
|
+
? h("g", { class: "st-areaChart__annotations st-areaChart__annotations--behind" }, annotationRegions.flatMap((a) => {
|
|
175
|
+
if (a.kind !== "region")
|
|
176
|
+
return [];
|
|
177
|
+
const nodes = [
|
|
178
|
+
h("rect", { key: `ann-region-${a.key}`, class: "st-areaChart__annotationRegion", x: a.x, y: a.y, width: a.width, height: a.height }),
|
|
179
|
+
];
|
|
180
|
+
if (a.label) {
|
|
181
|
+
nodes.push(h("text", { key: `ann-region-label-${a.key}`, class: "st-areaChart__annotationLabel", x: a.x + 4, y: a.y + 11 }, a.label));
|
|
182
|
+
}
|
|
183
|
+
return nodes;
|
|
184
|
+
}))
|
|
185
|
+
: null;
|
|
186
|
+
// Annotations ABOVE the area: lines, shapes, points, labels.
|
|
187
|
+
const annotationAboveGroup = annotationAbove.length > 0
|
|
188
|
+
? h("g", { class: "st-areaChart__annotations st-areaChart__annotations--above" }, annotationAbove.flatMap((a) => {
|
|
189
|
+
if (a.kind === "line") {
|
|
190
|
+
const nodes = [
|
|
191
|
+
h("line", { key: `ann-line-${a.key}`, class: "st-areaChart__annotationLine", x1: a.x1, y1: a.y1, x2: a.x2, y2: a.y2 }),
|
|
192
|
+
];
|
|
193
|
+
if (a.label) {
|
|
194
|
+
nodes.push(h("text", {
|
|
195
|
+
key: `ann-line-label-${a.key}`,
|
|
196
|
+
class: "st-areaChart__annotationLabel",
|
|
197
|
+
x: a.axis === "x" ? a.x1 + 4 : MARGIN.left + plotWidth - 4,
|
|
198
|
+
y: a.axis === "x" ? MARGIN.top + 11 : a.y1 - 4,
|
|
199
|
+
"text-anchor": a.axis === "x" ? "start" : "end",
|
|
200
|
+
}, a.label));
|
|
201
|
+
}
|
|
202
|
+
return nodes;
|
|
203
|
+
}
|
|
204
|
+
if (a.kind === "shape") {
|
|
205
|
+
const nodes = [
|
|
206
|
+
h("polygon", { key: `ann-shape-${a.key}`, class: "st-areaChart__annotationShape", points: polygonPoints(a.points) }),
|
|
207
|
+
];
|
|
208
|
+
if (a.label) {
|
|
209
|
+
nodes.push(h("text", { key: `ann-shape-label-${a.key}`, class: "st-areaChart__annotationLabel", x: a.labelX, y: a.labelY, "text-anchor": "middle" }, a.label));
|
|
210
|
+
}
|
|
211
|
+
return nodes;
|
|
212
|
+
}
|
|
213
|
+
if (a.kind === "point") {
|
|
214
|
+
const nodes = [
|
|
215
|
+
h("circle", { key: `ann-point-${a.key}`, class: "st-areaChart__annotationPoint", cx: a.x, cy: a.y, r: "4.5" }),
|
|
216
|
+
];
|
|
217
|
+
if (a.label) {
|
|
218
|
+
nodes.push(h("text", { key: `ann-point-label-${a.key}`, class: "st-areaChart__annotationLabel", x: a.x, y: a.y - 8, "text-anchor": "middle" }, a.label));
|
|
219
|
+
}
|
|
220
|
+
return nodes;
|
|
221
|
+
}
|
|
222
|
+
return [
|
|
223
|
+
h("text", { key: `ann-label-${a.key}`, class: "st-areaChart__annotationText", x: a.x, y: a.y, "text-anchor": a.anchor }, a.text),
|
|
224
|
+
];
|
|
225
|
+
}))
|
|
226
|
+
: null;
|
|
227
|
+
// Data labels — one value per point, drawn on top. aria-hidden.
|
|
228
|
+
const dataLabelGroup = dataLabelItems.length > 0
|
|
229
|
+
? h("g", { class: "st-areaChart__dataLabels", "aria-hidden": "true" }, dataLabelItems.map((d) => h("text", { key: `dl-${d.key}`, class: "st-areaChart__dataLabel", x: d.x, y: d.y, "text-anchor": "middle", "dominant-baseline": d.baseline }, d.text)))
|
|
230
|
+
: null;
|
|
116
231
|
const svgChildren = [
|
|
117
232
|
h("defs", {}, [
|
|
118
233
|
h("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1" }, [
|
|
@@ -125,6 +240,9 @@ export const AreaChart = defineComponent({
|
|
|
125
240
|
h("line", { class: "st-areaChart__axis", x1: MARGIN.left, x2: width - MARGIN.right, y1: height - MARGIN.bottom, y2: height - MARGIN.bottom }),
|
|
126
241
|
...xLabels,
|
|
127
242
|
];
|
|
243
|
+
if (annotationRegionGroup) {
|
|
244
|
+
svgChildren.push(annotationRegionGroup);
|
|
245
|
+
}
|
|
128
246
|
if (areaPath) {
|
|
129
247
|
svgChildren.push(h("path", { class: "st-areaChart__area", d: areaPath, fill: `url(#${gradientId})` }));
|
|
130
248
|
}
|
|
@@ -132,6 +250,12 @@ export const AreaChart = defineComponent({
|
|
|
132
250
|
svgChildren.push(h("path", { class: "st-areaChart__line", d: linePath, fill: "none", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }));
|
|
133
251
|
}
|
|
134
252
|
svgChildren.push(...dots);
|
|
253
|
+
if (annotationAboveGroup) {
|
|
254
|
+
svgChildren.push(annotationAboveGroup);
|
|
255
|
+
}
|
|
256
|
+
if (dataLabelGroup) {
|
|
257
|
+
svgChildren.push(dataLabelGroup);
|
|
258
|
+
}
|
|
135
259
|
const hoveredPoint = hoveredIndex.value !== null ? points[hoveredIndex.value] : undefined;
|
|
136
260
|
return h("div", { ...attrs, class: classNames("st-areaChart", `st-areaChart--${tone}`, props.class) }, [
|
|
137
261
|
h("div", {
|
package/dist/AreaChart.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AreaChart.js","sourceRoot":"","sources":["../src/AreaChart.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AreaChart.js","sourceRoot":"","sources":["../src/AreaChart.ts"],"names":[],"mappings":"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"}
|
package/dist/BarChart.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { type ChartBand, type ChartGoalLine, type ChartReferenceLine, type ChartScale } from "./chartScale.js";
|
|
2
|
+
import { type ChartAnnotation } from "./chartAnnotations.js";
|
|
3
|
+
import { type DataLabelsProp } from "./chartDataLabels.js";
|
|
2
4
|
export type BarChartTone = "category1" | "category2" | "category3" | "category4" | "category5" | "category6" | "category7" | "category8";
|
|
3
5
|
export type BarChartDatum = {
|
|
4
6
|
label: string;
|
|
@@ -44,6 +46,22 @@ export type BarChartProps = {
|
|
|
44
46
|
bands?: ChartBand[];
|
|
45
47
|
/** A single goal line, emphasised above the bars. */
|
|
46
48
|
goalLine?: ChartGoalLine;
|
|
49
|
+
/**
|
|
50
|
+
* Annotation overlay in DATA space. The x coordinate is CATEGORICAL — it
|
|
51
|
+
* matches a bar by its `label` (centre of band) and is ignored otherwise; the
|
|
52
|
+
* y coordinate (and `value`/`from`/`to`) are value-axis numbers. Regions
|
|
53
|
+
* render behind the bars, every other kind above. Additive: absent ⇒
|
|
54
|
+
* unchanged.
|
|
55
|
+
*/
|
|
56
|
+
annotations?: ChartAnnotation[];
|
|
57
|
+
/**
|
|
58
|
+
* Per-bar value labels. `false`/absent (default) → none. `true` → each bar's
|
|
59
|
+
* value with the chart's numeric formatter. Object → `format(value)` and/or a
|
|
60
|
+
* `position` override. Default position is `outside` (above the bar in
|
|
61
|
+
* vertical mode, past the bar end in horizontal mode). Labels are
|
|
62
|
+
* `aria-hidden` — the values already live in the accessible ChartDataList.
|
|
63
|
+
*/
|
|
64
|
+
dataLabels?: DataLabelsProp;
|
|
47
65
|
/**
|
|
48
66
|
* Value-axis scale. `"linear"` (default) is unchanged. `"log"` switches the
|
|
49
67
|
* value axis to base-10 logarithmic — values `<= 0` are ignored for
|
|
@@ -105,6 +123,14 @@ export declare const BarChart: import("vue").DefineComponent<import("vue").Extra
|
|
|
105
123
|
type: () => ChartGoalLine;
|
|
106
124
|
default: undefined;
|
|
107
125
|
};
|
|
126
|
+
annotations: {
|
|
127
|
+
type: () => ChartAnnotation[];
|
|
128
|
+
default: undefined;
|
|
129
|
+
};
|
|
130
|
+
dataLabels: {
|
|
131
|
+
type: () => DataLabelsProp;
|
|
132
|
+
default: undefined;
|
|
133
|
+
};
|
|
108
134
|
scale: {
|
|
109
135
|
type: () => ChartScale;
|
|
110
136
|
default: string;
|
|
@@ -168,6 +194,14 @@ export declare const BarChart: import("vue").DefineComponent<import("vue").Extra
|
|
|
168
194
|
type: () => ChartGoalLine;
|
|
169
195
|
default: undefined;
|
|
170
196
|
};
|
|
197
|
+
annotations: {
|
|
198
|
+
type: () => ChartAnnotation[];
|
|
199
|
+
default: undefined;
|
|
200
|
+
};
|
|
201
|
+
dataLabels: {
|
|
202
|
+
type: () => DataLabelsProp;
|
|
203
|
+
default: undefined;
|
|
204
|
+
};
|
|
171
205
|
scale: {
|
|
172
206
|
type: () => ChartScale;
|
|
173
207
|
default: string;
|
|
@@ -191,6 +225,8 @@ export declare const BarChart: import("vue").DefineComponent<import("vue").Extra
|
|
|
191
225
|
width: number;
|
|
192
226
|
orientation: "horizontal" | "vertical";
|
|
193
227
|
scale: ChartScale;
|
|
228
|
+
annotations: ChartAnnotation[];
|
|
229
|
+
dataLabels: DataLabelsProp;
|
|
194
230
|
domain: [number, number];
|
|
195
231
|
selectedKeys: string[];
|
|
196
232
|
referenceLines: ChartReferenceLine[];
|
package/dist/BarChart.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../src/BarChart.ts"],"names":[],"mappings":"AAEA,OAAO,EAeL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../src/BarChart.ts"],"names":[],"mappings":"AAEA,OAAO,EAeL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAwC,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEjG,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,MAAM,MAAM,aAAa,GAAG;IAC1B,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;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B;;;;OAIG;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;AAIF,eAAO,MAAM,QAAQ;;cAGM,MAAM,aAAa,EAAE;;;;;;;;;;;;cAGb,MAAM,UAAU,GAAG,YAAY;;;;;;;;cAE1B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;;cAC3B,MAAM,MAAM,EAAE;;;;cACJ,MAAM,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI;;;;cACnC,MAAM,kBAAkB,EAAE;;;;cACnC,MAAM,SAAS,EAAE;;;;cACb,MAAM,aAAa;;;;cACjB,MAAM,eAAe,EAAE;;;;cACD,MAAM,cAAc;;;;cAC/C,MAAM,UAAU;;;;;;;;;;;;;;;;;;;cAblB,MAAM,aAAa,EAAE;;;;;;;;;;;;cAGb,MAAM,UAAU,GAAG,YAAY;;;;;;;;cAE1B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;;cAC3B,MAAM,MAAM,EAAE;;;;cACJ,MAAM,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI;;;;cACnC,MAAM,kBAAkB,EAAE;;;;cACnC,MAAM,SAAS,EAAE;;;;cACb,MAAM,aAAa;;;;cACjB,MAAM,eAAe,EAAE;;;;cACD,MAAM,cAAc;;;;cAC/C,MAAM,UAAU;;;;;;;;;;;;;;;;;oBANY,MAAM,KAAK,IAAI;;;;;;;;;;;;;;4EAioBtE,CAAC"}
|
package/dist/BarChart.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { defineComponent, h, ref } from "vue";
|
|
2
2
|
import { classNames } from "./classNames.js";
|
|
3
3
|
import { CHART_MARGIN, chartDataList, clampFraction, extendValueDomain, fixedLogTicks, fixedTicks, formatTick, logTicks, niceTicks, overlayDataListItems, overlayToneClass, smallestPositive, validLinearDomain, validLogDomain, } from "./chartScale.js";
|
|
4
|
+
import { annotationDataListItems, polygonPoints, resolveAnnotations, } from "./chartAnnotations.js";
|
|
5
|
+
import { formatDataLabel, normalizeDataLabels } from "./chartDataLabels.js";
|
|
4
6
|
const MARGIN = CHART_MARGIN;
|
|
5
7
|
export const BarChart = defineComponent({
|
|
6
8
|
name: "BarChart",
|
|
@@ -16,6 +18,8 @@ export const BarChart = defineComponent({
|
|
|
16
18
|
referenceLines: { type: Array, default: undefined },
|
|
17
19
|
bands: { type: Array, default: undefined },
|
|
18
20
|
goalLine: { type: Object, default: undefined },
|
|
21
|
+
annotations: { type: Array, default: undefined },
|
|
22
|
+
dataLabels: { type: [Boolean, Object], default: undefined },
|
|
19
23
|
scale: { type: String, default: "linear" },
|
|
20
24
|
invertAxis: { type: Boolean, default: false },
|
|
21
25
|
showLegend: { type: Boolean, default: undefined },
|
|
@@ -219,9 +223,83 @@ export const BarChart = defineComponent({
|
|
|
219
223
|
});
|
|
220
224
|
}
|
|
221
225
|
}
|
|
226
|
+
// --- Annotation overlay -------------------------------------------------
|
|
227
|
+
// The x coordinate is CATEGORICAL (a bar `label` → centre of band); the y
|
|
228
|
+
// coordinate is a value-axis number. For a HORIZONTAL chart the value axis
|
|
229
|
+
// is x and the category axis is y, so the data-space (x=category, y=value)
|
|
230
|
+
// convention is transposed onto the pixel axes: the resolver's `xScale`
|
|
231
|
+
// maps the value, `yScale` the category, and each annotation's
|
|
232
|
+
// `axis`/coords are swapped so a value reference (`axis: "y"`) still spans
|
|
233
|
+
// the full plot.
|
|
234
|
+
const categoryPixel = (v) => {
|
|
235
|
+
const bar = bars.find((b) => b.datum.label === String(v));
|
|
236
|
+
if (!bar)
|
|
237
|
+
return null;
|
|
238
|
+
return isVertical ? bar.cx - MARGIN.left : bar.cy - MARGIN.top;
|
|
239
|
+
};
|
|
240
|
+
const valuePixelRel = (v) => {
|
|
241
|
+
if (!Number.isFinite(v))
|
|
242
|
+
return null;
|
|
243
|
+
return valuePos(v) - (isVertical ? MARGIN.top : MARGIN.left);
|
|
244
|
+
};
|
|
245
|
+
const transposeAnnotations = (list) => {
|
|
246
|
+
if (!list || isVertical)
|
|
247
|
+
return list;
|
|
248
|
+
// Horizontal: swap the data-space x/y (and the region/line axis) so the
|
|
249
|
+
// generic resolver — which always emits xScale→x-pixel, yScale→y-pixel —
|
|
250
|
+
// lands the value on the x axis and the category on the y axis.
|
|
251
|
+
return list.map((a) => {
|
|
252
|
+
switch (a.kind) {
|
|
253
|
+
case "line":
|
|
254
|
+
return { ...a, axis: a.axis === "x" ? "y" : "x" };
|
|
255
|
+
case "region":
|
|
256
|
+
return { ...a, axis: a.axis === "x" ? "y" : "x" };
|
|
257
|
+
case "point":
|
|
258
|
+
return { ...a, x: a.y, y: typeof a.x === "number" ? a.x : NaN };
|
|
259
|
+
case "label":
|
|
260
|
+
return { ...a, x: a.y, y: typeof a.x === "number" ? a.x : NaN };
|
|
261
|
+
case "shape":
|
|
262
|
+
return { ...a, points: a.points.map((p) => ({ x: p.y, y: typeof p.x === "number" ? p.x : NaN })) };
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
};
|
|
266
|
+
const annXScale = (v) => isVertical ? categoryPixel(v) : typeof v === "number" ? valuePixelRel(v) : null;
|
|
267
|
+
const annYScale = (v) => (isVertical ? valuePixelRel(v) : categoryPixel(v));
|
|
268
|
+
const resolvedAnnotations = resolveAnnotations(transposeAnnotations(props.annotations), {
|
|
269
|
+
xScale: annXScale,
|
|
270
|
+
yScale: annYScale,
|
|
271
|
+
plotLeft: MARGIN.left,
|
|
272
|
+
plotTop: MARGIN.top,
|
|
273
|
+
plotWidth,
|
|
274
|
+
plotHeight,
|
|
275
|
+
});
|
|
276
|
+
const annotationRegions = resolvedAnnotations.filter((a) => a.kind === "region");
|
|
277
|
+
const annotationAbove = resolvedAnnotations.filter((a) => a.kind !== "region");
|
|
278
|
+
// --- Data labels ------------------------------------------------------
|
|
279
|
+
// One value label per bar, placed at the bar's value end. Default
|
|
280
|
+
// `outside`: above the bar (vertical) / past the bar end (horizontal).
|
|
281
|
+
// `inside`/`center` sit at the bar's mid-length. aria-hidden (values are
|
|
282
|
+
// in the ChartDataList already).
|
|
283
|
+
const dataLabelOpts = normalizeDataLabels(props.dataLabels);
|
|
284
|
+
const dataLabelItems = dataLabelOpts.enabled
|
|
285
|
+
? bars.map((bar) => {
|
|
286
|
+
const text = formatDataLabel(bar.datum.value, dataLabelOpts, formatTick);
|
|
287
|
+
const pos = dataLabelOpts.position ?? "outside";
|
|
288
|
+
const inside = pos === "inside" || pos === "center";
|
|
289
|
+
if (isVertical) {
|
|
290
|
+
const x = bar.cx;
|
|
291
|
+
const y = inside ? bar.y + bar.height / 2 : bar.cy - 6;
|
|
292
|
+
return { key: bar.datum.label, x, y, text, anchor: "middle", baseline: inside ? "middle" : "auto" };
|
|
293
|
+
}
|
|
294
|
+
const y = bar.cy;
|
|
295
|
+
const x = inside ? bar.x + bar.width / 2 : bar.cx + 4;
|
|
296
|
+
return { key: bar.datum.label, x, y, text, anchor: inside ? "middle" : "start", baseline: "middle" };
|
|
297
|
+
})
|
|
298
|
+
: [];
|
|
222
299
|
const dataValueItems = [
|
|
223
300
|
...data.map((d) => `${d.label}: ${d.value}`),
|
|
224
301
|
...overlayDataListItems({ referenceLines, bands, goalLine: goal, trend: null }),
|
|
302
|
+
...annotationDataListItems(props.annotations),
|
|
225
303
|
];
|
|
226
304
|
const gridChildren = [];
|
|
227
305
|
if (orientation === "vertical") {
|
|
@@ -308,6 +386,65 @@ export const BarChart = defineComponent({
|
|
|
308
386
|
"text-anchor": isVertical ? "end" : "start",
|
|
309
387
|
}, goalGeom.label ?? `Objectif ${goalGeom.value}`));
|
|
310
388
|
}
|
|
389
|
+
// Annotation regions sit BEHIND the bars (filled bands).
|
|
390
|
+
const annotationRegionGroup = annotationRegions.length > 0
|
|
391
|
+
? h("g", { class: "st-barChart__annotations st-barChart__annotations--behind" }, annotationRegions.flatMap((a) => {
|
|
392
|
+
if (a.kind !== "region")
|
|
393
|
+
return [];
|
|
394
|
+
const nodes = [
|
|
395
|
+
h("rect", { key: `ann-region-${a.key}`, class: "st-barChart__annotationRegion", x: a.x, y: a.y, width: a.width, height: a.height }),
|
|
396
|
+
];
|
|
397
|
+
if (a.label) {
|
|
398
|
+
nodes.push(h("text", { key: `ann-region-label-${a.key}`, class: "st-barChart__annotationLabel", x: a.x + 4, y: a.y + 11 }, a.label));
|
|
399
|
+
}
|
|
400
|
+
return nodes;
|
|
401
|
+
}))
|
|
402
|
+
: null;
|
|
403
|
+
// Annotations ABOVE the bars: lines, shapes, points, labels.
|
|
404
|
+
const annotationAboveGroup = annotationAbove.length > 0
|
|
405
|
+
? h("g", { class: "st-barChart__annotations st-barChart__annotations--above" }, annotationAbove.flatMap((a) => {
|
|
406
|
+
if (a.kind === "line") {
|
|
407
|
+
const nodes = [
|
|
408
|
+
h("line", { key: `ann-line-${a.key}`, class: "st-barChart__annotationLine", x1: a.x1, y1: a.y1, x2: a.x2, y2: a.y2 }),
|
|
409
|
+
];
|
|
410
|
+
if (a.label) {
|
|
411
|
+
nodes.push(h("text", {
|
|
412
|
+
key: `ann-line-label-${a.key}`,
|
|
413
|
+
class: "st-barChart__annotationLabel",
|
|
414
|
+
x: a.axis === "x" ? a.x1 + 4 : MARGIN.left + plotWidth - 4,
|
|
415
|
+
y: a.axis === "x" ? MARGIN.top + 11 : a.y1 - 4,
|
|
416
|
+
"text-anchor": a.axis === "x" ? "start" : "end",
|
|
417
|
+
}, a.label));
|
|
418
|
+
}
|
|
419
|
+
return nodes;
|
|
420
|
+
}
|
|
421
|
+
if (a.kind === "shape") {
|
|
422
|
+
const nodes = [
|
|
423
|
+
h("polygon", { key: `ann-shape-${a.key}`, class: "st-barChart__annotationShape", points: polygonPoints(a.points) }),
|
|
424
|
+
];
|
|
425
|
+
if (a.label) {
|
|
426
|
+
nodes.push(h("text", { key: `ann-shape-label-${a.key}`, class: "st-barChart__annotationLabel", x: a.labelX, y: a.labelY, "text-anchor": "middle" }, a.label));
|
|
427
|
+
}
|
|
428
|
+
return nodes;
|
|
429
|
+
}
|
|
430
|
+
if (a.kind === "point") {
|
|
431
|
+
const nodes = [
|
|
432
|
+
h("circle", { key: `ann-point-${a.key}`, class: "st-barChart__annotationPoint", cx: a.x, cy: a.y, r: "4.5" }),
|
|
433
|
+
];
|
|
434
|
+
if (a.label) {
|
|
435
|
+
nodes.push(h("text", { key: `ann-point-label-${a.key}`, class: "st-barChart__annotationLabel", x: a.x, y: a.y - 8, "text-anchor": "middle" }, a.label));
|
|
436
|
+
}
|
|
437
|
+
return nodes;
|
|
438
|
+
}
|
|
439
|
+
return [
|
|
440
|
+
h("text", { key: `ann-label-${a.key}`, class: "st-barChart__annotationText", x: a.x, y: a.y, "text-anchor": a.anchor }, a.text),
|
|
441
|
+
];
|
|
442
|
+
}))
|
|
443
|
+
: null;
|
|
444
|
+
// Data labels — one value per bar, drawn on top. aria-hidden.
|
|
445
|
+
const dataLabelGroup = dataLabelItems.length > 0
|
|
446
|
+
? h("g", { class: "st-barChart__dataLabels", "aria-hidden": "true" }, dataLabelItems.map((d) => h("text", { key: `dl-${d.key}`, class: "st-barChart__dataLabel", x: d.x, y: d.y, "text-anchor": d.anchor, "dominant-baseline": d.baseline }, d.text)))
|
|
447
|
+
: null;
|
|
311
448
|
// Accessible selection surface — real <button>s OUTSIDE the aria-hidden
|
|
312
449
|
// SVG. This is the keyboard + screen-reader path for filtering.
|
|
313
450
|
const filterGroup = interactive
|
|
@@ -347,9 +484,12 @@ export const BarChart = defineComponent({
|
|
|
347
484
|
h("line", { class: "st-barChart__axis", x1: MARGIN.left, x2: width - MARGIN.right, y1: height - MARGIN.bottom, y2: height - MARGIN.bottom }),
|
|
348
485
|
...categoryLabels,
|
|
349
486
|
...belowOverlays,
|
|
487
|
+
...(annotationRegionGroup ? [annotationRegionGroup] : []),
|
|
350
488
|
...barRects,
|
|
351
489
|
...errorBarNodes,
|
|
352
490
|
...goalOverlays,
|
|
491
|
+
...(annotationAboveGroup ? [annotationAboveGroup] : []),
|
|
492
|
+
...(dataLabelGroup ? [dataLabelGroup] : []),
|
|
353
493
|
]),
|
|
354
494
|
]),
|
|
355
495
|
filterGroup,
|