@sentropic/design-system-vue 0.36.39 → 0.36.41

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.
@@ -0,0 +1,86 @@
1
+ export type ContourChartTone = "category1" | "category2" | "category3" | "category4" | "category5" | "category6" | "category7" | "category8";
2
+ export type ContourChartDatum = {
3
+ x: number;
4
+ y: number;
5
+ /** Valeur scalaire de la cellule : pilote la bande de couleur. */
6
+ value: number;
7
+ };
8
+ export type ContourChartProps = {
9
+ data: ContourChartDatum[];
10
+ levels?: number;
11
+ label?: string;
12
+ width?: number;
13
+ height?: number;
14
+ size?: number;
15
+ class?: string;
16
+ };
17
+ export declare const ContourChart: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
18
+ data: {
19
+ type: () => ContourChartDatum[];
20
+ default: () => never[];
21
+ };
22
+ levels: {
23
+ type: NumberConstructor;
24
+ default: number;
25
+ };
26
+ label: {
27
+ type: StringConstructor;
28
+ default: undefined;
29
+ };
30
+ width: {
31
+ type: NumberConstructor;
32
+ default: number;
33
+ };
34
+ height: {
35
+ type: NumberConstructor;
36
+ default: number;
37
+ };
38
+ size: {
39
+ type: NumberConstructor;
40
+ default: undefined;
41
+ };
42
+ class: {
43
+ type: StringConstructor;
44
+ default: undefined;
45
+ };
46
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
47
+ [key: string]: any;
48
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
49
+ data: {
50
+ type: () => ContourChartDatum[];
51
+ default: () => never[];
52
+ };
53
+ levels: {
54
+ type: NumberConstructor;
55
+ default: number;
56
+ };
57
+ label: {
58
+ type: StringConstructor;
59
+ default: undefined;
60
+ };
61
+ width: {
62
+ type: NumberConstructor;
63
+ default: number;
64
+ };
65
+ height: {
66
+ type: NumberConstructor;
67
+ default: number;
68
+ };
69
+ size: {
70
+ type: NumberConstructor;
71
+ default: undefined;
72
+ };
73
+ class: {
74
+ type: StringConstructor;
75
+ default: undefined;
76
+ };
77
+ }>> & Readonly<{}>, {
78
+ size: number;
79
+ class: string;
80
+ data: ContourChartDatum[];
81
+ label: string;
82
+ height: number;
83
+ width: number;
84
+ levels: number;
85
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
86
+ //# sourceMappingURL=ContourChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContourChart.d.ts","sourceRoot":"","sources":["../src/ContourChart.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,gBAAgB,GACxB,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAeF,eAAO,MAAM,YAAY;;cAGE,MAAM,iBAAiB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAAzB,MAAM,iBAAiB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EA2NlD,CAAC"}
@@ -0,0 +1,167 @@
1
+ import { defineComponent, h, ref } from "vue";
2
+ import { classNames } from "./classNames.js";
3
+ import { chartDataList, formatTick, niceTicks, scaleLinear } from "./chartScale.js";
4
+ const MARGIN = { top: 16, right: 18, bottom: 36, left: 48 };
5
+ const TONES = [
6
+ "category1",
7
+ "category2",
8
+ "category3",
9
+ "category4",
10
+ "category5",
11
+ "category6",
12
+ "category7",
13
+ "category8",
14
+ ];
15
+ export const ContourChart = defineComponent({
16
+ name: "ContourChart",
17
+ props: {
18
+ data: { type: Array, default: () => [] },
19
+ levels: { type: Number, default: 6 },
20
+ label: { type: String, default: undefined },
21
+ width: { type: Number, default: 640 },
22
+ height: { type: Number, default: 320 },
23
+ size: { type: Number, default: undefined },
24
+ class: { type: String, default: undefined },
25
+ },
26
+ setup(props, { attrs }) {
27
+ const hoveredKey = ref(null);
28
+ function handlePointerMove(event) {
29
+ const target = event.target;
30
+ if (!(target instanceof Element)) {
31
+ hoveredKey.value = null;
32
+ return;
33
+ }
34
+ hoveredKey.value = target.getAttribute("data-chart-key");
35
+ }
36
+ return () => {
37
+ const data = props.data ?? [];
38
+ const label = props.label;
39
+ const width = props.width ?? 640;
40
+ const height = props.height ?? 320;
41
+ const levels = props.levels ?? 6;
42
+ // Points valides : coordonnées finies, valeur finie.
43
+ const validData = data.filter((d) => d && Number.isFinite(d.x) && Number.isFinite(d.y) && Number.isFinite(d.value));
44
+ // Nombre de paliers effectif : entier ≥ 1, plafonné à 8 (les tons disponibles).
45
+ const levelCount = Math.max(1, Math.min(TONES.length, Math.floor(Number.isFinite(levels) ? levels : 6)));
46
+ const vals = validData.map((d) => d.value);
47
+ const valueMin = vals.length ? Math.min(...vals) : 0;
48
+ const valueMax = vals.length ? Math.max(...vals) : 0;
49
+ const toneForBand = (band) => {
50
+ const toneIndex = Math.max(0, Math.min(TONES.length - 1, Math.floor((band / Math.max(levelCount - 1, 1)) * (TONES.length - 1))));
51
+ return TONES[toneIndex];
52
+ };
53
+ const bandOf = (value) => {
54
+ const ratio = valueMax > valueMin ? (value - valueMin) / (valueMax - valueMin) : 0;
55
+ const band = Math.max(0, Math.min(levelCount - 1, Math.floor(ratio * levelCount)));
56
+ return { band, tone: toneForBand(band) };
57
+ };
58
+ const xs = validData.map((d) => d.x);
59
+ const ys = validData.map((d) => d.y);
60
+ const xValues = Array.from(new Set(xs)).sort((a, b) => a - b);
61
+ const yValues = Array.from(new Set(ys)).sort((a, b) => a - b);
62
+ const xTicks = niceTicks(Math.min(...xs), Math.max(...xs));
63
+ const yTicks = niceTicks(Math.min(...ys), Math.max(...ys));
64
+ const plotW = Math.max(width - MARGIN.left - MARGIN.right, 1);
65
+ const plotH = Math.max(height - MARGIN.top - MARGIN.bottom, 1);
66
+ const xMin = xTicks[0];
67
+ const xMax = xTicks[xTicks.length - 1];
68
+ const yMin = yTicks[0];
69
+ const yMax = yTicks[yTicks.length - 1];
70
+ const dx = xValues.length > 1 ? xValues[1] - xValues[0] : 1;
71
+ const dy = yValues.length > 1 ? yValues[1] - yValues[0] : 1;
72
+ // Une bande rectangulaire par cellule de grille, peinte selon sa value.
73
+ const cells = validData.map((d, i) => {
74
+ const left = MARGIN.left + scaleLinear(d.x - dx / 2, xMin, xMax, 0, plotW);
75
+ const right = MARGIN.left + scaleLinear(d.x + dx / 2, xMin, xMax, 0, plotW);
76
+ const top = MARGIN.top + scaleLinear(d.y + dy / 2, yMin, yMax, plotH, 0);
77
+ const bottom = MARGIN.top + scaleLinear(d.y - dy / 2, yMin, yMax, plotH, 0);
78
+ const { tone } = bandOf(d.value);
79
+ return {
80
+ key: `${i}`,
81
+ datum: d,
82
+ x: Math.min(left, right),
83
+ y: Math.min(top, bottom),
84
+ width: Math.abs(right - left),
85
+ height: Math.abs(bottom - top),
86
+ cx: (left + right) / 2,
87
+ cy: (top + bottom) / 2,
88
+ tone,
89
+ };
90
+ });
91
+ const dataValueItems = validData.map((d) => `x ${d.x}, y ${d.y} · ${formatTick(d.value)}`);
92
+ const legendItems = Array.from({ length: levelCount }, (_, band) => ({ band, tone: toneForBand(band) }));
93
+ const hasLegend = validData.length > 0;
94
+ const hoveredCell = hoveredKey.value === null ? null : cells.find((c) => c.key === hoveredKey.value) ?? null;
95
+ const svgChildren = [];
96
+ cells.forEach((cell) => {
97
+ svgChildren.push(h("rect", {
98
+ key: cell.key,
99
+ class: classNames("st-contourChart__cell", `st-contourChart__cell--${cell.tone}`, hoveredKey.value !== null && hoveredKey.value !== cell.key ? "st-contourChart__cell--dim" : undefined),
100
+ x: cell.x,
101
+ y: cell.y,
102
+ width: cell.width,
103
+ height: cell.height,
104
+ "data-chart-key": cell.key,
105
+ }));
106
+ });
107
+ for (const t of yTicks) {
108
+ const y = MARGIN.top + scaleLinear(t, yMin, yMax, plotH, 0);
109
+ svgChildren.push(h("line", { key: `gy${t}`, class: "st-contourChart__grid", x1: MARGIN.left, x2: width - MARGIN.right, y1: y, y2: y }), h("text", { key: `ty${t}`, class: "st-contourChart__tick", x: MARGIN.left - 6, y, "text-anchor": "end", "dominant-baseline": "middle" }, formatTick(t)));
110
+ }
111
+ for (const t of xTicks) {
112
+ const x = MARGIN.left + scaleLinear(t, xMin, xMax, 0, plotW);
113
+ svgChildren.push(h("text", { key: `tx${t}`, class: "st-contourChart__tick", x, y: height - MARGIN.bottom + 16, "text-anchor": "middle" }, formatTick(t)));
114
+ }
115
+ svgChildren.push(h("line", { class: "st-contourChart__axis", x1: MARGIN.left, x2: MARGIN.left, y1: MARGIN.top, y2: height - MARGIN.bottom }), h("line", {
116
+ class: "st-contourChart__axis",
117
+ x1: MARGIN.left,
118
+ x2: width - MARGIN.right,
119
+ y1: height - MARGIN.bottom,
120
+ y2: height - MARGIN.bottom,
121
+ }));
122
+ const children = [
123
+ h("div", {
124
+ class: "st-contourChart__visual",
125
+ role: "img",
126
+ "aria-label": label,
127
+ onPointermove: handlePointerMove,
128
+ onPointerleave: () => (hoveredKey.value = null),
129
+ }, [
130
+ h("svg", {
131
+ viewBox: `0 0 ${width} ${height}`,
132
+ preserveAspectRatio: "xMidYMid meet",
133
+ width: "100%",
134
+ height: "100%",
135
+ focusable: "false",
136
+ "aria-hidden": "true",
137
+ }, svgChildren),
138
+ ]),
139
+ ];
140
+ if (hasLegend) {
141
+ children.push(h("div", { class: "st-contourChart__legend", "aria-hidden": "true" }, [
142
+ h("span", { class: "st-contourChart__legendText" }, "Low"),
143
+ h("span", { class: "st-contourChart__legendRamp" }, legendItems.map((item) => h("span", {
144
+ key: item.band,
145
+ class: classNames("st-contourChart__legendSwatch", `st-contourChart__legendSwatch--${item.tone}`),
146
+ }))),
147
+ h("span", { class: "st-contourChart__legendText" }, "High"),
148
+ ]));
149
+ }
150
+ const list = chartDataList(label ?? "contour", dataValueItems);
151
+ if (list)
152
+ children.push(list);
153
+ if (hoveredCell) {
154
+ children.push(h("div", {
155
+ class: "st-contourChart__tooltip",
156
+ role: "presentation",
157
+ style: { left: `${(hoveredCell.cx / width) * 100}%`, top: `${(hoveredCell.cy / height) * 100}%` },
158
+ }, [
159
+ h("span", { class: "st-contourChart__tooltipLabel" }, `x ${hoveredCell.datum.x} · y ${hoveredCell.datum.y}`),
160
+ h("span", { class: "st-contourChart__tooltipValue" }, `${formatTick(hoveredCell.datum.value)}`),
161
+ ]));
162
+ }
163
+ return h("div", { ...attrs, class: classNames("st-contourChart", props.class) }, children);
164
+ };
165
+ },
166
+ });
167
+ //# sourceMappingURL=ContourChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContourChart.js","sourceRoot":"","sources":["../src/ContourChart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ export type PointAndFigureChartMark = "x" | "o";
2
+ export type PointAndFigureChartDatum = {
3
+ /** Position temporelle (timestamp ou index) — ignorée pour l'empilement. */
4
+ date: number;
5
+ /** Prix de clôture : pilote la formation des colonnes. */
6
+ close: number;
7
+ };
8
+ export type PointAndFigureChartProps = {
9
+ data: PointAndFigureChartDatum[];
10
+ boxSize?: number;
11
+ reversal?: number;
12
+ label?: string;
13
+ width?: number;
14
+ height?: number;
15
+ size?: number;
16
+ class?: string;
17
+ };
18
+ export declare const PointAndFigureChart: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
19
+ data: {
20
+ type: () => PointAndFigureChartDatum[];
21
+ default: () => never[];
22
+ };
23
+ boxSize: {
24
+ type: NumberConstructor;
25
+ default: undefined;
26
+ };
27
+ reversal: {
28
+ type: NumberConstructor;
29
+ default: number;
30
+ };
31
+ label: {
32
+ type: StringConstructor;
33
+ default: undefined;
34
+ };
35
+ width: {
36
+ type: NumberConstructor;
37
+ default: number;
38
+ };
39
+ height: {
40
+ type: NumberConstructor;
41
+ default: number;
42
+ };
43
+ size: {
44
+ type: NumberConstructor;
45
+ default: undefined;
46
+ };
47
+ class: {
48
+ type: StringConstructor;
49
+ default: undefined;
50
+ };
51
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
52
+ [key: string]: any;
53
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
54
+ data: {
55
+ type: () => PointAndFigureChartDatum[];
56
+ default: () => never[];
57
+ };
58
+ boxSize: {
59
+ type: NumberConstructor;
60
+ default: undefined;
61
+ };
62
+ reversal: {
63
+ type: NumberConstructor;
64
+ default: number;
65
+ };
66
+ label: {
67
+ type: StringConstructor;
68
+ default: undefined;
69
+ };
70
+ width: {
71
+ type: NumberConstructor;
72
+ default: number;
73
+ };
74
+ height: {
75
+ type: NumberConstructor;
76
+ default: number;
77
+ };
78
+ size: {
79
+ type: NumberConstructor;
80
+ default: undefined;
81
+ };
82
+ class: {
83
+ type: StringConstructor;
84
+ default: undefined;
85
+ };
86
+ }>> & Readonly<{}>, {
87
+ size: number;
88
+ class: string;
89
+ data: PointAndFigureChartDatum[];
90
+ label: string;
91
+ height: number;
92
+ width: number;
93
+ boxSize: number;
94
+ reversal: number;
95
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
96
+ //# sourceMappingURL=PointAndFigureChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PointAndFigureChart.d.ts","sourceRoot":"","sources":["../src/PointAndFigureChart.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,uBAAuB,GAAG,GAAG,GAAG,GAAG,CAAC;AAEhD,MAAM,MAAM,wBAAwB,GAAG;IACrC,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,wBAAwB,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAIF,eAAO,MAAM,mBAAmB;;cAGL,MAAM,wBAAwB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAAhC,MAAM,wBAAwB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EA0SzD,CAAC"}
@@ -0,0 +1,239 @@
1
+ import { defineComponent, h, ref } from "vue";
2
+ import { classNames } from "./classNames.js";
3
+ import { chartDataList, formatTick, niceTicks, scaleLinear } from "./chartScale.js";
4
+ const MARGIN = { top: 16, right: 18, bottom: 36, left: 52 };
5
+ export const PointAndFigureChart = defineComponent({
6
+ name: "PointAndFigureChart",
7
+ props: {
8
+ data: { type: Array, default: () => [] },
9
+ boxSize: { type: Number, default: undefined },
10
+ reversal: { type: Number, default: 3 },
11
+ label: { type: String, default: undefined },
12
+ width: { type: Number, default: 640 },
13
+ height: { type: Number, default: 320 },
14
+ size: { type: Number, default: undefined },
15
+ class: { type: String, default: undefined },
16
+ },
17
+ setup(props, { attrs }) {
18
+ const hoveredKey = ref(null);
19
+ function handlePointerMove(event) {
20
+ const target = event.target;
21
+ if (!(target instanceof Element)) {
22
+ hoveredKey.value = null;
23
+ return;
24
+ }
25
+ hoveredKey.value = target.getAttribute("data-chart-key");
26
+ }
27
+ return () => {
28
+ const data = props.data ?? [];
29
+ const label = props.label;
30
+ const width = props.width ?? 640;
31
+ const height = props.height ?? 320;
32
+ const boxSize = props.boxSize;
33
+ const reversal = props.reversal ?? 3;
34
+ // Points valides : date et close finis.
35
+ const validData = data.filter((d) => d && Number.isFinite(d.date) && Number.isFinite(d.close));
36
+ const closes = validData.map((d) => d.close);
37
+ const baseMin = closes.length ? Math.min(...closes) : 0;
38
+ const effectiveBox = Number.isFinite(boxSize) && boxSize > 0
39
+ ? boxSize
40
+ : closes.length
41
+ ? Math.max(...closes) - Math.min(...closes) > 0
42
+ ? (Math.max(...closes) - Math.min(...closes)) / 20
43
+ : 1
44
+ : 1;
45
+ const reversalBoxes = Math.max(1, Math.floor(Number.isFinite(reversal) ? reversal : 3));
46
+ // Colonnes P&F : suite de X (hausse) ou de O (baisse), cases [low..high].
47
+ const rawCols = [];
48
+ if (validData.length > 0 && effectiveBox > 0) {
49
+ const boxIndex = (price) => Math.floor((price - baseMin) / effectiveBox + 1e-9);
50
+ let mark = null;
51
+ let low = 0;
52
+ let high = 0;
53
+ for (let i = 0; i < closes.length; i++) {
54
+ const idx = boxIndex(closes[i]);
55
+ if (mark === null) {
56
+ mark = "x";
57
+ low = idx;
58
+ high = idx;
59
+ continue;
60
+ }
61
+ if (mark === "x") {
62
+ if (idx > high) {
63
+ high = idx;
64
+ }
65
+ else if (idx <= high - reversalBoxes) {
66
+ rawCols.push({ mark, low, high });
67
+ mark = "o";
68
+ high = high - 1;
69
+ low = idx;
70
+ }
71
+ }
72
+ else {
73
+ if (idx < low) {
74
+ low = idx;
75
+ }
76
+ else if (idx >= low + reversalBoxes) {
77
+ rawCols.push({ mark, low, high });
78
+ mark = "x";
79
+ low = low + 1;
80
+ high = idx;
81
+ }
82
+ }
83
+ }
84
+ if (mark !== null && high >= low)
85
+ rawCols.push({ mark, low, high });
86
+ }
87
+ const pnfColumns = rawCols.map((c) => ({
88
+ mark: c.mark,
89
+ low: c.low,
90
+ high: c.high,
91
+ priceLow: baseMin + c.low * effectiveBox,
92
+ priceHigh: baseMin + (c.high + 1) * effectiveBox,
93
+ }));
94
+ let priceMin;
95
+ let priceMax;
96
+ if (pnfColumns.length === 0) {
97
+ priceMin = closes.length ? Math.min(...closes) : 0;
98
+ priceMax = closes.length ? Math.max(...closes) : 0;
99
+ }
100
+ else {
101
+ priceMin = Infinity;
102
+ priceMax = -Infinity;
103
+ for (const c of pnfColumns) {
104
+ if (c.priceLow < priceMin)
105
+ priceMin = c.priceLow;
106
+ if (c.priceHigh > priceMax)
107
+ priceMax = c.priceHigh;
108
+ }
109
+ }
110
+ const yTicks = niceTicks(priceMin, priceMax);
111
+ const yMin = yTicks[0];
112
+ const yMax = yTicks[yTicks.length - 1];
113
+ const plotW = Math.max(width - MARGIN.left - MARGIN.right, 1);
114
+ const plotH = Math.max(height - MARGIN.top - MARGIN.bottom, 1);
115
+ const colW = pnfColumns.length > 0 ? plotW / pnfColumns.length : plotW;
116
+ const glyph = Math.min(colW, scaleLinear(effectiveBox, 0, Math.max(yMax - yMin, effectiveBox), 0, plotH)) * 0.7;
117
+ const marks = [];
118
+ pnfColumns.forEach((c, ci) => {
119
+ const cx = MARGIN.left + colW * ci + colW / 2;
120
+ for (let b = c.low; b <= c.high; b++) {
121
+ const priceMid = baseMin + (b + 0.5) * effectiveBox;
122
+ const cy = MARGIN.top + scaleLinear(priceMid, yMin, yMax, plotH, 0);
123
+ marks.push({
124
+ key: `${ci}-${b}`,
125
+ mark: c.mark,
126
+ cx,
127
+ cy,
128
+ r: Math.max(glyph / 2, 2),
129
+ priceLow: c.priceLow,
130
+ priceHigh: c.priceHigh,
131
+ });
132
+ }
133
+ });
134
+ const dataValueItems = pnfColumns.map((c) => `${c.mark === "x" ? "X" : "O"} ${formatTick(c.priceLow)} → ${formatTick(c.priceHigh)}`);
135
+ const hoveredMark = hoveredKey.value === null ? null : marks.find((m) => m.key === hoveredKey.value) ?? null;
136
+ const svgChildren = [];
137
+ for (const t of yTicks) {
138
+ const y = MARGIN.top + scaleLinear(t, yMin, yMax, plotH, 0);
139
+ svgChildren.push(h("line", {
140
+ key: `gy${t}`,
141
+ class: "st-pointAndFigureChart__grid",
142
+ x1: MARGIN.left,
143
+ x2: width - MARGIN.right,
144
+ y1: y,
145
+ y2: y,
146
+ }), h("text", {
147
+ key: `ty${t}`,
148
+ class: "st-pointAndFigureChart__tick",
149
+ x: MARGIN.left - 6,
150
+ y,
151
+ "text-anchor": "end",
152
+ "dominant-baseline": "middle",
153
+ }, formatTick(t)));
154
+ }
155
+ svgChildren.push(h("line", {
156
+ class: "st-pointAndFigureChart__axis",
157
+ x1: MARGIN.left,
158
+ x2: MARGIN.left,
159
+ y1: MARGIN.top,
160
+ y2: height - MARGIN.bottom,
161
+ }), h("line", {
162
+ class: "st-pointAndFigureChart__axis",
163
+ x1: MARGIN.left,
164
+ x2: width - MARGIN.right,
165
+ y1: height - MARGIN.bottom,
166
+ y2: height - MARGIN.bottom,
167
+ }));
168
+ marks.forEach((m) => {
169
+ if (m.mark === "x") {
170
+ svgChildren.push(h("g", {
171
+ key: m.key,
172
+ class: classNames("st-pointAndFigureChart__mark", "st-pointAndFigureChart__mark--x", hoveredKey.value !== null && hoveredKey.value !== m.key ? "st-pointAndFigureChart__mark--dim" : undefined),
173
+ "data-chart-key": m.key,
174
+ }, [
175
+ h("line", {
176
+ class: "st-pointAndFigureChart__glyph",
177
+ x1: m.cx - m.r,
178
+ y1: m.cy - m.r,
179
+ x2: m.cx + m.r,
180
+ y2: m.cy + m.r,
181
+ "data-chart-key": m.key,
182
+ }),
183
+ h("line", {
184
+ class: "st-pointAndFigureChart__glyph",
185
+ x1: m.cx - m.r,
186
+ y1: m.cy + m.r,
187
+ x2: m.cx + m.r,
188
+ y2: m.cy - m.r,
189
+ "data-chart-key": m.key,
190
+ }),
191
+ ]));
192
+ }
193
+ else {
194
+ svgChildren.push(h("circle", {
195
+ key: m.key,
196
+ class: classNames("st-pointAndFigureChart__mark", "st-pointAndFigureChart__mark--o", "st-pointAndFigureChart__glyph", hoveredKey.value !== null && hoveredKey.value !== m.key ? "st-pointAndFigureChart__mark--dim" : undefined),
197
+ cx: m.cx,
198
+ cy: m.cy,
199
+ r: m.r,
200
+ "data-chart-key": m.key,
201
+ }));
202
+ }
203
+ });
204
+ const children = [
205
+ h("div", {
206
+ class: "st-pointAndFigureChart__visual",
207
+ role: "img",
208
+ "aria-label": label,
209
+ onPointermove: handlePointerMove,
210
+ onPointerleave: () => (hoveredKey.value = null),
211
+ }, [
212
+ h("svg", {
213
+ viewBox: `0 0 ${width} ${height}`,
214
+ preserveAspectRatio: "xMidYMid meet",
215
+ width: "100%",
216
+ height: "100%",
217
+ focusable: "false",
218
+ "aria-hidden": "true",
219
+ }, svgChildren),
220
+ ]),
221
+ ];
222
+ const list = chartDataList(label ?? "point and figure", dataValueItems);
223
+ if (list)
224
+ children.push(list);
225
+ if (hoveredMark) {
226
+ children.push(h("div", {
227
+ class: "st-pointAndFigureChart__tooltip",
228
+ role: "presentation",
229
+ style: { left: `${(hoveredMark.cx / width) * 100}%`, top: `${(hoveredMark.cy / height) * 100}%` },
230
+ }, [
231
+ h("span", { class: "st-pointAndFigureChart__tooltipLabel" }, hoveredMark.mark === "x" ? "X" : "O"),
232
+ h("span", { class: "st-pointAndFigureChart__tooltipValue" }, `${formatTick(hoveredMark.priceLow)} → ${formatTick(hoveredMark.priceHigh)}`),
233
+ ]));
234
+ }
235
+ return h("div", { ...attrs, class: classNames("st-pointAndFigureChart", props.class) }, children);
236
+ };
237
+ },
238
+ });
239
+ //# sourceMappingURL=PointAndFigureChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PointAndFigureChart.js","sourceRoot":"","sources":["../src/PointAndFigureChart.ts"],"names":[],"mappings":"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"}
@@ -96,7 +96,7 @@ export declare const RadarChart: import("vue").DefineComponent<import("vue").Ext
96
96
  legend: boolean;
97
97
  height: number;
98
98
  width: number;
99
- maxValue: number;
100
99
  levels: number;
100
+ maxValue: number;
101
101
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
102
102
  //# sourceMappingURL=RadarChart.d.ts.map