@sentropic/design-system-vue 0.36.0 → 0.36.19

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.
Files changed (118) hide show
  1. package/dist/ArcDiagramChart.d.ts +73 -0
  2. package/dist/ArcDiagramChart.d.ts.map +1 -0
  3. package/dist/ArcDiagramChart.js +180 -0
  4. package/dist/ArcDiagramChart.js.map +1 -0
  5. package/dist/AreaRangeChart.d.ts +84 -0
  6. package/dist/AreaRangeChart.d.ts.map +1 -0
  7. package/dist/AreaRangeChart.js +202 -0
  8. package/dist/AreaRangeChart.js.map +1 -0
  9. package/dist/AreaSplineRangeChart.d.ts +74 -0
  10. package/dist/AreaSplineRangeChart.d.ts.map +1 -0
  11. package/dist/AreaSplineRangeChart.js +200 -0
  12. package/dist/AreaSplineRangeChart.js.map +1 -0
  13. package/dist/Autosave.d.ts +1 -1
  14. package/dist/Autosave.d.ts.map +1 -1
  15. package/dist/Avatar.d.ts +1 -1
  16. package/dist/BellCurveChart.d.ts +89 -0
  17. package/dist/BellCurveChart.d.ts.map +1 -0
  18. package/dist/BellCurveChart.js +195 -0
  19. package/dist/BellCurveChart.js.map +1 -0
  20. package/dist/Calendar.d.ts +1 -1
  21. package/dist/ColumnPyramidChart.d.ts +75 -0
  22. package/dist/ColumnPyramidChart.d.ts.map +1 -0
  23. package/dist/ColumnPyramidChart.js +162 -0
  24. package/dist/ColumnPyramidChart.js.map +1 -0
  25. package/dist/ColumnRangeChart.d.ts +91 -0
  26. package/dist/ColumnRangeChart.d.ts.map +1 -0
  27. package/dist/ColumnRangeChart.js +259 -0
  28. package/dist/ColumnRangeChart.js.map +1 -0
  29. package/dist/DataTable.d.ts +1 -1
  30. package/dist/DependencyWheelChart.d.ts +73 -0
  31. package/dist/DependencyWheelChart.d.ts.map +1 -0
  32. package/dist/DependencyWheelChart.js +221 -0
  33. package/dist/DependencyWheelChart.js.map +1 -0
  34. package/dist/DumbbellChart.d.ts +104 -0
  35. package/dist/DumbbellChart.d.ts.map +1 -0
  36. package/dist/DumbbellChart.js +163 -0
  37. package/dist/DumbbellChart.js.map +1 -0
  38. package/dist/ErrorBarChart.d.ts +75 -0
  39. package/dist/ErrorBarChart.d.ts.map +1 -0
  40. package/dist/ErrorBarChart.js +173 -0
  41. package/dist/ErrorBarChart.js.map +1 -0
  42. package/dist/ForceGraph.d.ts +1 -1
  43. package/dist/GanttChart.d.ts +74 -0
  44. package/dist/GanttChart.d.ts.map +1 -0
  45. package/dist/GanttChart.js +245 -0
  46. package/dist/GanttChart.js.map +1 -0
  47. package/dist/HLCChart.d.ts +64 -0
  48. package/dist/HLCChart.d.ts.map +1 -0
  49. package/dist/HLCChart.js +185 -0
  50. package/dist/HLCChart.js.map +1 -0
  51. package/dist/HeikinAshiChart.d.ts +65 -0
  52. package/dist/HeikinAshiChart.d.ts.map +1 -0
  53. package/dist/HeikinAshiChart.js +196 -0
  54. package/dist/HeikinAshiChart.js.map +1 -0
  55. package/dist/HollowCandlestickChart.d.ts +65 -0
  56. package/dist/HollowCandlestickChart.d.ts.map +1 -0
  57. package/dist/HollowCandlestickChart.js +189 -0
  58. package/dist/HollowCandlestickChart.js.map +1 -0
  59. package/dist/ItemChart.d.ts +80 -0
  60. package/dist/ItemChart.d.ts.map +1 -0
  61. package/dist/ItemChart.js +185 -0
  62. package/dist/ItemChart.js.map +1 -0
  63. package/dist/LollipopChart.js +1 -1
  64. package/dist/OHLCChart.d.ts +65 -0
  65. package/dist/OHLCChart.d.ts.map +1 -0
  66. package/dist/OHLCChart.js +193 -0
  67. package/dist/OHLCChart.js.map +1 -0
  68. package/dist/OrderedList.d.ts +2 -1
  69. package/dist/OrderedList.d.ts.map +1 -1
  70. package/dist/OrderedList.js +2 -2
  71. package/dist/OrderedList.js.map +1 -1
  72. package/dist/OrganizationChart.d.ts +64 -0
  73. package/dist/OrganizationChart.d.ts.map +1 -0
  74. package/dist/OrganizationChart.js +200 -0
  75. package/dist/OrganizationChart.js.map +1 -0
  76. package/dist/PolygonChart.d.ts +72 -0
  77. package/dist/PolygonChart.d.ts.map +1 -0
  78. package/dist/PolygonChart.js +109 -0
  79. package/dist/PolygonChart.js.map +1 -0
  80. package/dist/Popper.d.ts +1 -1
  81. package/dist/StreamgraphChart.d.ts +88 -0
  82. package/dist/StreamgraphChart.d.ts.map +1 -0
  83. package/dist/StreamgraphChart.js +194 -0
  84. package/dist/StreamgraphChart.js.map +1 -0
  85. package/dist/TileMapChart.d.ts +63 -0
  86. package/dist/TileMapChart.d.ts.map +1 -0
  87. package/dist/TileMapChart.js +154 -0
  88. package/dist/TileMapChart.js.map +1 -0
  89. package/dist/TimelineChart.d.ts +68 -0
  90. package/dist/TimelineChart.d.ts.map +1 -0
  91. package/dist/TimelineChart.js +173 -0
  92. package/dist/TimelineChart.js.map +1 -0
  93. package/dist/TreegraphChart.d.ts +64 -0
  94. package/dist/TreegraphChart.d.ts.map +1 -0
  95. package/dist/TreegraphChart.js +198 -0
  96. package/dist/TreegraphChart.js.map +1 -0
  97. package/dist/UnorderedList.d.ts +2 -1
  98. package/dist/UnorderedList.d.ts.map +1 -1
  99. package/dist/UnorderedList.js +2 -2
  100. package/dist/UnorderedList.js.map +1 -1
  101. package/dist/VariablePieChart.d.ts +64 -0
  102. package/dist/VariablePieChart.d.ts.map +1 -0
  103. package/dist/VariablePieChart.js +164 -0
  104. package/dist/VariablePieChart.js.map +1 -0
  105. package/dist/VennChart.d.ts +63 -0
  106. package/dist/VennChart.d.ts.map +1 -0
  107. package/dist/VennChart.js +199 -0
  108. package/dist/VennChart.js.map +1 -0
  109. package/dist/WordCloudChart.d.ts +63 -0
  110. package/dist/WordCloudChart.d.ts.map +1 -0
  111. package/dist/WordCloudChart.js +171 -0
  112. package/dist/WordCloudChart.js.map +1 -0
  113. package/dist/index.d.ts +48 -0
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +24 -0
  116. package/dist/index.js.map +1 -1
  117. package/dist/styles.css +3376 -1166
  118. package/package.json +1 -1
@@ -0,0 +1,64 @@
1
+ export type VariablePieChartTone = "category1" | "category2" | "category3" | "category4" | "category5" | "category6" | "category7" | "category8";
2
+ export type VariablePieChartDatum = {
3
+ label: string;
4
+ value: number;
5
+ z: number;
6
+ tone?: VariablePieChartTone;
7
+ };
8
+ export type VariablePieChartProps = {
9
+ data: VariablePieChartDatum[];
10
+ width?: number;
11
+ height?: number;
12
+ label: string;
13
+ class?: string;
14
+ };
15
+ export declare const VariablePieChart: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
16
+ data: {
17
+ type: () => VariablePieChartDatum[];
18
+ required: true;
19
+ };
20
+ width: {
21
+ type: NumberConstructor;
22
+ default: number;
23
+ };
24
+ height: {
25
+ type: NumberConstructor;
26
+ default: number;
27
+ };
28
+ label: {
29
+ type: StringConstructor;
30
+ required: true;
31
+ };
32
+ class: {
33
+ type: StringConstructor;
34
+ default: undefined;
35
+ };
36
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
37
+ [key: string]: any;
38
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
39
+ data: {
40
+ type: () => VariablePieChartDatum[];
41
+ required: true;
42
+ };
43
+ width: {
44
+ type: NumberConstructor;
45
+ default: number;
46
+ };
47
+ height: {
48
+ type: NumberConstructor;
49
+ default: number;
50
+ };
51
+ label: {
52
+ type: StringConstructor;
53
+ required: true;
54
+ };
55
+ class: {
56
+ type: StringConstructor;
57
+ default: undefined;
58
+ };
59
+ }>> & Readonly<{}>, {
60
+ class: string;
61
+ height: number;
62
+ width: number;
63
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
64
+ //# sourceMappingURL=VariablePieChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VariablePieChart.d.ts","sourceRoot":"","sources":["../src/VariablePieChart.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,oBAAoB,GAC5B,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,CAAC,EAAE,oBAAoB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,qBAAqB,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAuCF,eAAO,MAAM,gBAAgB;;cAGF,MAAM,qBAAqB,EAAE;;;;;;;;;;;;;;;;;;;;;;;cAA7B,MAAM,qBAAqB,EAAE;;;;;;;;;;;;;;;;;;;;;;;4EAkKtD,CAAC"}
@@ -0,0 +1,164 @@
1
+ import { defineComponent, h, ref } from "vue";
2
+ import { classNames } from "./classNames.js";
3
+ import { chartDataList } from "./chartScale.js";
4
+ import { contrastTextForTone } from "./chartContrast.js";
5
+ const TONES = [
6
+ "category1",
7
+ "category2",
8
+ "category3",
9
+ "category4",
10
+ "category5",
11
+ "category6",
12
+ "category7",
13
+ "category8",
14
+ ];
15
+ function safeValue(value) {
16
+ return Number.isFinite(value) && value > 0 ? value : 0;
17
+ }
18
+ function safeZ(z) {
19
+ return Number.isFinite(z) ? z : 0;
20
+ }
21
+ function formatNumber(value) {
22
+ if (!Number.isFinite(value))
23
+ return "0";
24
+ if (Number.isInteger(value))
25
+ return String(value);
26
+ return value.toFixed(2).replace(/\.?0+$/, "");
27
+ }
28
+ function point(cx, cy, radius, angle) {
29
+ return { x: cx + radius * Math.cos(angle), y: cy + radius * Math.sin(angle) };
30
+ }
31
+ function sectorPath(cx, cy, radius, start, end) {
32
+ const safeEnd = Math.min(end, start + Math.PI * 2 - 0.0001);
33
+ const large = safeEnd - start > Math.PI ? 1 : 0;
34
+ const outerStart = point(cx, cy, radius, start);
35
+ const outerEnd = point(cx, cy, radius, safeEnd);
36
+ return `M ${cx} ${cy} L ${outerStart.x} ${outerStart.y} A ${radius} ${radius} 0 ${large} 1 ${outerEnd.x} ${outerEnd.y} Z`;
37
+ }
38
+ export const VariablePieChart = defineComponent({
39
+ name: "VariablePieChart",
40
+ props: {
41
+ data: { type: Array, required: true },
42
+ width: { type: Number, default: 360 },
43
+ height: { type: Number, default: 360 },
44
+ label: { type: String, required: true },
45
+ class: { type: String, default: undefined },
46
+ },
47
+ setup(props, { attrs }) {
48
+ const hoveredIndex = ref(null);
49
+ function handleLeave() {
50
+ hoveredIndex.value = null;
51
+ }
52
+ function handleVisualPointerMove(event) {
53
+ const target = event.target;
54
+ if (!(target instanceof Element)) {
55
+ hoveredIndex.value = null;
56
+ return;
57
+ }
58
+ const index = Number(target.getAttribute("data-chart-index"));
59
+ hoveredIndex.value = Number.isInteger(index) ? index : null;
60
+ }
61
+ return () => {
62
+ const data = props.data ?? [];
63
+ const width = props.width ?? 360;
64
+ const height = props.height ?? 360;
65
+ const label = props.label;
66
+ const cx = width / 2;
67
+ const cy = height / 2;
68
+ const outerLimit = Math.max(Math.min(width, height) / 2 - 6, 1);
69
+ const rMin = outerLimit * 0.35;
70
+ const rMax = outerLimit;
71
+ // Filtre les parts à value ≤ 0 ou non-finie (angle nul → invisibles).
72
+ const visible = data.filter((datum) => safeValue(datum.value) > 0);
73
+ const total = visible.reduce((sum, datum) => sum + safeValue(datum.value), 0);
74
+ const zValues = visible.map((datum) => safeZ(datum.z));
75
+ const zMin = zValues.length > 0 ? Math.min(...zValues) : 0;
76
+ const zMax = zValues.length > 0 ? Math.max(...zValues) : 0;
77
+ const zSpan = zMax - zMin;
78
+ const TWO_PI = Math.PI * 2;
79
+ let angle = -Math.PI / 2; // départ en haut
80
+ const sectors = total > 0
81
+ ? visible.map((datum, index) => {
82
+ const value = safeValue(datum.value);
83
+ const z = safeZ(datum.z);
84
+ // rayon ∝ z, mappé linéairement entre rMin et rMax.
85
+ const radius = zSpan > 0 ? rMin + ((z - zMin) / zSpan) * (rMax - rMin) : rMax;
86
+ const span = Math.min((value / total) * TWO_PI, TWO_PI - 0.0001);
87
+ const start = angle;
88
+ const end = angle + span;
89
+ angle = end;
90
+ const midAngle = (start + end) / 2;
91
+ const labelPoint = point(cx, cy, radius * 0.62, midAngle);
92
+ return {
93
+ datum,
94
+ value,
95
+ z,
96
+ tone: datum.tone ?? TONES[index % TONES.length],
97
+ radius,
98
+ path: sectorPath(cx, cy, radius, start, end),
99
+ labelX: labelPoint.x,
100
+ labelY: labelPoint.y,
101
+ showLabel: span > 0.25 && radius > outerLimit * 0.4,
102
+ };
103
+ })
104
+ : [];
105
+ const svgChildren = [];
106
+ sectors.forEach((sector, i) => {
107
+ const isDim = hoveredIndex.value !== null && hoveredIndex.value !== i;
108
+ svgChildren.push(h("path", {
109
+ key: `s${sector.datum.label}`,
110
+ class: classNames("st-variablePieChart__sector", `st-variablePieChart__sector--${sector.tone}`, isDim ? "st-variablePieChart__sector--dim" : undefined),
111
+ d: sector.path,
112
+ "data-chart-index": i,
113
+ }));
114
+ });
115
+ sectors.forEach((sector) => {
116
+ if (!sector.showLabel)
117
+ return;
118
+ svgChildren.push(h("text", {
119
+ key: `t${sector.datum.label}`,
120
+ class: "st-variablePieChart__label",
121
+ x: sector.labelX,
122
+ y: sector.labelY,
123
+ "text-anchor": "middle",
124
+ "dominant-baseline": "middle",
125
+ fill: contrastTextForTone(sector.tone),
126
+ }, sector.datum.label));
127
+ });
128
+ const dataValueItems = data
129
+ .filter((datum) => safeValue(datum.value) > 0)
130
+ .map((datum) => `${datum.label}: ${formatNumber(safeValue(datum.value))}`);
131
+ const hovered = hoveredIndex.value !== null ? sectors[hoveredIndex.value] : undefined;
132
+ return h("div", { ...attrs, class: classNames("st-variablePieChart", props.class) }, [
133
+ h("div", {
134
+ class: "st-variablePieChart__visual",
135
+ role: "img",
136
+ "aria-label": label,
137
+ onPointermove: handleVisualPointerMove,
138
+ onPointerleave: handleLeave,
139
+ }, [
140
+ h("svg", {
141
+ viewBox: `0 0 ${width} ${height}`,
142
+ preserveAspectRatio: "xMidYMid meet",
143
+ width: "100%",
144
+ height: "100%",
145
+ focusable: "false",
146
+ "aria-hidden": "true",
147
+ }, svgChildren),
148
+ ]),
149
+ chartDataList(label, dataValueItems),
150
+ hovered
151
+ ? h("div", {
152
+ class: "st-variablePieChart__tooltip",
153
+ role: "presentation",
154
+ style: `left: ${(hovered.labelX / width) * 100}%; top: ${(hovered.labelY / height) * 100}%`,
155
+ }, [
156
+ h("span", { class: "st-variablePieChart__tooltipLabel" }, hovered.datum.label),
157
+ h("span", { class: "st-variablePieChart__tooltipValue" }, `${formatNumber(hovered.value)} · ${formatNumber(hovered.z)}`),
158
+ ])
159
+ : null,
160
+ ]);
161
+ };
162
+ },
163
+ });
164
+ //# sourceMappingURL=VariablePieChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VariablePieChart.js","sourceRoot":"","sources":["../src/VariablePieChart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import { type PropType, type VNode } from "vue";
2
+ export type VennChartTone = "category1" | "category2" | "category3" | "category4" | "category5" | "category6" | "category7" | "category8";
3
+ export type VennChartArea = {
4
+ sets: string[];
5
+ value: number;
6
+ };
7
+ export type VennChartProps = {
8
+ data: VennChartArea[];
9
+ label: string;
10
+ width?: number;
11
+ height?: number;
12
+ class?: string;
13
+ };
14
+ export declare const VennChart: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
15
+ data: {
16
+ type: PropType<VennChartArea[]>;
17
+ required: true;
18
+ };
19
+ label: {
20
+ type: StringConstructor;
21
+ required: true;
22
+ };
23
+ width: {
24
+ type: NumberConstructor;
25
+ default: number;
26
+ };
27
+ height: {
28
+ type: NumberConstructor;
29
+ default: number;
30
+ };
31
+ class: {
32
+ type: StringConstructor;
33
+ default: undefined;
34
+ };
35
+ }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
36
+ [key: string]: any;
37
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
38
+ data: {
39
+ type: PropType<VennChartArea[]>;
40
+ required: true;
41
+ };
42
+ label: {
43
+ type: StringConstructor;
44
+ required: true;
45
+ };
46
+ width: {
47
+ type: NumberConstructor;
48
+ default: number;
49
+ };
50
+ height: {
51
+ type: NumberConstructor;
52
+ default: number;
53
+ };
54
+ class: {
55
+ type: StringConstructor;
56
+ default: undefined;
57
+ };
58
+ }>> & Readonly<{}>, {
59
+ class: string;
60
+ height: number;
61
+ width: number;
62
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
63
+ //# sourceMappingURL=VennChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VennChart.d.ts","sourceRoot":"","sources":["../src/VennChart.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,KAAK,CAAC;AAIzE,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAuIF,eAAO,MAAM,SAAS;;cAGK,QAAQ,CAAC,aAAa,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;cAAzB,QAAQ,CAAC,aAAa,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;4EA4HlD,CAAC"}
@@ -0,0 +1,199 @@
1
+ import { defineComponent, h, ref } from "vue";
2
+ import { classNames } from "./classNames.js";
3
+ import { chartDataList } from "./chartScale.js";
4
+ const TONES = [
5
+ "category1",
6
+ "category2",
7
+ "category3",
8
+ "category4",
9
+ "category5",
10
+ "category6",
11
+ "category7",
12
+ "category8",
13
+ ];
14
+ function safeValue(value) {
15
+ return Number.isFinite(value) && value > 0 ? value : 0;
16
+ }
17
+ function vennLayout(data, width, height) {
18
+ const areas = data
19
+ .map((d) => ({
20
+ sets: Array.isArray(d.sets) ? d.sets.filter((s) => typeof s === "string") : [],
21
+ value: safeValue(d.value),
22
+ }))
23
+ .filter((d) => d.sets.length > 0 && d.value > 0);
24
+ const order = [];
25
+ for (const a of areas) {
26
+ for (const s of a.sets)
27
+ if (!order.includes(s))
28
+ order.push(s);
29
+ }
30
+ const names = order.slice(0, 3);
31
+ if (names.length === 0) {
32
+ return { circles: [], regions: [], items: [] };
33
+ }
34
+ const totals = new Map();
35
+ for (const name of names) {
36
+ let sum = 0;
37
+ for (const a of areas)
38
+ if (a.sets.includes(name))
39
+ sum += a.value;
40
+ totals.set(name, sum);
41
+ }
42
+ const cx = width / 2;
43
+ const cy = height / 2;
44
+ const span = Math.min(width, height);
45
+ const rMax = span * 0.3;
46
+ const rMin = span * 0.2;
47
+ const roots = names.map((n) => Math.sqrt(totals.get(n) ?? 0));
48
+ const rootMin = Math.min(...roots);
49
+ const rootMax = Math.max(...roots);
50
+ const rootSpan = rootMax - rootMin;
51
+ const radiusFor = (root) => (rootSpan > 0 ? rMin + ((root - rootMin) / rootSpan) * (rMax - rMin) : rMax);
52
+ let centers;
53
+ if (names.length === 1) {
54
+ centers = [{ cx, cy }];
55
+ }
56
+ else if (names.length === 2) {
57
+ const off = span * 0.16;
58
+ centers = [
59
+ { cx: cx - off, cy },
60
+ { cx: cx + off, cy },
61
+ ];
62
+ }
63
+ else {
64
+ const off = span * 0.17;
65
+ centers = [
66
+ { cx: cx - off, cy: cy - off * 0.6 },
67
+ { cx: cx + off, cy: cy - off * 0.6 },
68
+ { cx, cy: cy + off * 0.85 },
69
+ ];
70
+ }
71
+ const circles = names.map((name, i) => {
72
+ const r = radiusFor(roots[i]);
73
+ const c = centers[i];
74
+ const dx = c.cx - cx;
75
+ const dy = c.cy - cy;
76
+ const len = Math.hypot(dx, dy) || 1;
77
+ const ux = names.length === 1 ? 0 : dx / len;
78
+ const uy = names.length === 1 ? -1 : dy / len;
79
+ const labelX = c.cx + ux * (r + 6);
80
+ const labelY = c.cy + uy * (r + 6);
81
+ const anchor = ux > 0.3 ? "start" : ux < -0.3 ? "end" : "middle";
82
+ return {
83
+ name,
84
+ tone: TONES[i % TONES.length],
85
+ cx: c.cx,
86
+ cy: c.cy,
87
+ r,
88
+ total: totals.get(name) ?? 0,
89
+ labelX,
90
+ labelY,
91
+ anchor,
92
+ };
93
+ });
94
+ const centerByName = new Map(circles.map((c) => [c.name, c]));
95
+ const regions = areas
96
+ .filter((a) => a.sets.length >= 2)
97
+ .map((a) => {
98
+ const pts = a.sets.map((s) => centerByName.get(s)).filter((c) => c !== undefined);
99
+ const px = pts.length > 0 ? pts.reduce((s, c) => s + c.cx, 0) / pts.length : cx;
100
+ const py = pts.length > 0 ? pts.reduce((s, c) => s + c.cy, 0) / pts.length : cy;
101
+ return { sets: a.sets, value: a.value, x: px, y: py };
102
+ });
103
+ const items = areas.map((a) => `${a.sets.join(" ∩ ")}: ${a.value}`);
104
+ return { circles, regions, items };
105
+ }
106
+ export const VennChart = defineComponent({
107
+ name: "VennChart",
108
+ props: {
109
+ data: { type: Array, required: true },
110
+ label: { type: String, required: true },
111
+ width: { type: Number, default: 420 },
112
+ height: { type: Number, default: 360 },
113
+ class: { type: String, default: undefined },
114
+ },
115
+ setup(props, { attrs }) {
116
+ const hoveredIndex = ref(null);
117
+ function handleLeave() {
118
+ hoveredIndex.value = null;
119
+ }
120
+ function handleVisualPointerMove(event) {
121
+ const target = event.target;
122
+ if (!(target instanceof Element)) {
123
+ hoveredIndex.value = null;
124
+ return;
125
+ }
126
+ const index = Number(target.getAttribute("data-chart-index"));
127
+ hoveredIndex.value = Number.isInteger(index) ? index : null;
128
+ }
129
+ return () => {
130
+ const width = props.width ?? 420;
131
+ const height = props.height ?? 360;
132
+ const label = props.label;
133
+ const layout = vennLayout(props.data, width, height);
134
+ const svgChildren = [];
135
+ for (let i = 0; i < layout.circles.length; i++) {
136
+ const circle = layout.circles[i];
137
+ svgChildren.push(h("circle", {
138
+ key: `c${circle.name}`,
139
+ class: classNames("st-vennChart__circle", `st-vennChart__circle--${circle.tone}`, hoveredIndex.value !== null && hoveredIndex.value !== i && "st-vennChart__circle--dim"),
140
+ cx: circle.cx,
141
+ cy: circle.cy,
142
+ r: circle.r,
143
+ "data-chart-index": i,
144
+ }));
145
+ }
146
+ for (const region of layout.regions) {
147
+ svgChildren.push(h("text", {
148
+ key: `v${region.sets.join("|")}`,
149
+ class: "st-vennChart__value",
150
+ x: region.x,
151
+ y: region.y,
152
+ "text-anchor": "middle",
153
+ "dominant-baseline": "middle",
154
+ }, String(region.value)));
155
+ }
156
+ for (const circle of layout.circles) {
157
+ svgChildren.push(h("text", {
158
+ key: `l${circle.name}`,
159
+ class: "st-vennChart__label",
160
+ x: circle.labelX,
161
+ y: circle.labelY,
162
+ "text-anchor": circle.anchor,
163
+ "dominant-baseline": "middle",
164
+ }, circle.name));
165
+ }
166
+ const hovered = hoveredIndex.value !== null ? layout.circles[hoveredIndex.value] : undefined;
167
+ return h("div", { ...attrs, class: classNames("st-vennChart", props.class) }, [
168
+ h("div", {
169
+ class: "st-vennChart__visual",
170
+ role: "img",
171
+ "aria-label": label,
172
+ onPointermove: handleVisualPointerMove,
173
+ onPointerleave: handleLeave,
174
+ }, [
175
+ h("svg", {
176
+ viewBox: `0 0 ${width} ${height}`,
177
+ preserveAspectRatio: "xMidYMid meet",
178
+ width: "100%",
179
+ height: "100%",
180
+ focusable: "false",
181
+ "aria-hidden": "true",
182
+ }, svgChildren),
183
+ ]),
184
+ chartDataList(label, layout.items),
185
+ hovered
186
+ ? h("div", {
187
+ class: "st-vennChart__tooltip",
188
+ role: "presentation",
189
+ style: { left: `${(hovered.cx / width) * 100}%`, top: `${(hovered.cy / height) * 100}%` },
190
+ }, [
191
+ h("span", { class: "st-vennChart__tooltipLabel" }, hovered.name),
192
+ h("span", { class: "st-vennChart__tooltipValue" }, String(hovered.total)),
193
+ ])
194
+ : null,
195
+ ]);
196
+ };
197
+ },
198
+ });
199
+ //# sourceMappingURL=VennChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VennChart.js","sourceRoot":"","sources":["../src/VennChart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ export type WordCloudChartTone = "category1" | "category2" | "category3" | "category4" | "category5" | "category6" | "category7" | "category8";
2
+ export type WordCloudChartWord = {
3
+ text: string;
4
+ weight: number;
5
+ tone?: WordCloudChartTone;
6
+ };
7
+ export type WordCloudChartProps = {
8
+ data: WordCloudChartWord[];
9
+ width?: number;
10
+ height?: number;
11
+ label: string;
12
+ class?: string;
13
+ };
14
+ export declare const WordCloudChart: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
15
+ data: {
16
+ type: () => WordCloudChartWord[];
17
+ required: true;
18
+ };
19
+ width: {
20
+ type: NumberConstructor;
21
+ default: number;
22
+ };
23
+ height: {
24
+ type: NumberConstructor;
25
+ default: number;
26
+ };
27
+ label: {
28
+ type: StringConstructor;
29
+ required: true;
30
+ };
31
+ class: {
32
+ type: StringConstructor;
33
+ default: undefined;
34
+ };
35
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
36
+ [key: string]: any;
37
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
38
+ data: {
39
+ type: () => WordCloudChartWord[];
40
+ required: true;
41
+ };
42
+ width: {
43
+ type: NumberConstructor;
44
+ default: number;
45
+ };
46
+ height: {
47
+ type: NumberConstructor;
48
+ default: number;
49
+ };
50
+ label: {
51
+ type: StringConstructor;
52
+ required: true;
53
+ };
54
+ class: {
55
+ type: StringConstructor;
56
+ default: undefined;
57
+ };
58
+ }>> & Readonly<{}>, {
59
+ class: string;
60
+ height: number;
61
+ width: number;
62
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
63
+ //# sourceMappingURL=WordCloudChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WordCloudChart.d.ts","sourceRoot":"","sources":["../src/WordCloudChart.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,kBAAkB,GAC1B,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,CAAC;AAEhB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA6HF,eAAO,MAAM,cAAc;;cAGA,MAAM,kBAAkB,EAAE;;;;;;;;;;;;;;;;;;;;;;;cAA1B,MAAM,kBAAkB,EAAE;;;;;;;;;;;;;;;;;;;;;;;4EA0GnD,CAAC"}