@milaboratories/miplots4 1.0.165 → 1.0.166
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/_virtual/index10.js +2 -5
- package/dist/_virtual/index10.js.map +1 -1
- package/dist/_virtual/index5.js +5 -2
- package/dist/_virtual/index5.js.map +1 -1
- package/dist/_virtual/index6.js +4 -4
- package/dist/_virtual/index7.js +1 -1
- package/dist/_virtual/index8.js +4 -4
- package/dist/_virtual/index9.js +3 -3
- package/dist/bubble/components/ChartsGroup.js +21 -21
- package/dist/bubble/components/ChartsGroup.js.map +1 -1
- package/dist/common/Tooltip.d.ts +2 -1
- package/dist/common/Tooltip.js +147 -143
- package/dist/common/Tooltip.js.map +1 -1
- package/dist/discrete/DiscreteSettingsImpl.d.ts +11 -31
- package/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
- package/dist/discrete/components/Chart.js +143 -143
- package/dist/discrete/components/Chart.js.map +1 -1
- package/dist/discrete/layers/stats/pValueCalculation.js +5 -5
- package/dist/heatmap/components/ChartsGroup.js +9 -9
- package/dist/heatmap/components/ChartsGroup.js.map +1 -1
- package/dist/node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/index.js +1 -1
- package/dist/scatterplot/components/ChartTooltip.js +34 -33
- package/dist/scatterplot/components/ChartTooltip.js.map +1 -1
- package/dist/scatterplot/components/ChartsGroup.js +31 -31
- package/dist/scatterplot/components/ChartsGroup.js.map +1 -1
- package/dist/scatterplot/dots.d.ts +2 -2
- package/dist/scatterplot/dots.js +9 -9
- package/dist/scatterplot/dots.js.map +1 -1
- package/dist/scatterplot/index.js +1 -1
- package/dist/scatterplot/index.js.map +1 -1
- package/dist/scatterplot/utils/sortDotsByGrouping.d.ts +2 -1
- package/dist/scatterplot/utils/sortDotsByGrouping.js +22 -11
- package/dist/scatterplot/utils/sortDotsByGrouping.js.map +1 -1
- package/dist/scatterplot-umap/ChartRenderer.d.ts +1 -1
- package/dist/scatterplot-umap/ChartRenderer.js +17 -17
- package/dist/scatterplot-umap/ChartRenderer.js.map +1 -1
- package/dist/scatterplot-umap/components/SVGLayer.js +49 -49
- package/dist/scatterplot-umap/components/SVGLayer.js.map +1 -1
- package/dist/scatterplot-umap/components/UpperSVG.d.ts +1 -1
- package/dist/scatterplot-umap/components/UpperSVG.js +39 -38
- package/dist/scatterplot-umap/components/UpperSVG.js.map +1 -1
- package/dist/scatterplot-umap/index.js +87 -77
- package/dist/scatterplot-umap/index.js.map +1 -1
- package/dist/types/bubble.js +32 -37
- package/dist/types/bubble.js.map +1 -1
- package/dist/types/common.d.ts +41 -0
- package/dist/types/common.js +39 -35
- package/dist/types/common.js.map +1 -1
- package/dist/types/discrete.d.ts +680 -70
- package/dist/types/discrete.js +141 -141
- package/dist/types/discrete.js.map +1 -1
- package/dist/types/heatmap.js +54 -59
- package/dist/types/heatmap.js.map +1 -1
- package/dist/types/scatterplot-umap.js +19 -24
- package/dist/types/scatterplot-umap.js.map +1 -1
- package/dist/types/scatterplot.js +41 -46
- package/dist/types/scatterplot.js.map +1 -1
- package/package.json +1 -1
package/dist/common/Tooltip.js
CHANGED
|
@@ -1,185 +1,189 @@
|
|
|
1
1
|
import { j as a } from "../_virtual/jsx-runtime.js";
|
|
2
|
-
import { r as
|
|
3
|
-
import { r as
|
|
4
|
-
import { BLACK as
|
|
5
|
-
import { exhaustive as
|
|
6
|
-
import { TextMeasurer as
|
|
7
|
-
const
|
|
2
|
+
import { r as $ } from "../_virtual/index.js";
|
|
3
|
+
import { r as w } from "../_virtual/index2.js";
|
|
4
|
+
import { BLACK as S } from "../constants.js";
|
|
5
|
+
import { exhaustive as z } from "../utils/index.js";
|
|
6
|
+
import { TextMeasurer as A } from "../utils/TextMeasurer/TextMeasurer.js";
|
|
7
|
+
const M = 8, V = 12, b = 20, l = 6, u = 5, W = 8, g = 16, k = 8, Z = g * 2 + k + 16, P = "#CFD1DB", _ = "#fff", y = "miplots-tooltip";
|
|
8
8
|
function B(n) {
|
|
9
|
-
return n.length *
|
|
9
|
+
return n.length * b + 2 * M;
|
|
10
10
|
}
|
|
11
|
-
function G(n,
|
|
12
|
-
const s = new
|
|
13
|
-
return Math.max(...n.map((
|
|
11
|
+
function G(n, t = !1) {
|
|
12
|
+
const s = new A("600 14px Arial");
|
|
13
|
+
return Math.max(...n.map((e, r) => s.getTextWidth(e) + (r === 0 && t ? Z : 0))) + 2 * V;
|
|
14
14
|
}
|
|
15
|
-
function q(n,
|
|
16
|
-
const
|
|
15
|
+
function q(n, t, s) {
|
|
16
|
+
const e = -u - n, r = -u, o = -t / 2 + s, c = t / 2 + s;
|
|
17
17
|
return `M 0,0
|
|
18
|
-
L ${
|
|
19
|
-
V ${
|
|
20
|
-
Q ${
|
|
21
|
-
H ${
|
|
22
|
-
Q ${
|
|
23
|
-
V ${
|
|
24
|
-
Q ${
|
|
25
|
-
H ${
|
|
26
|
-
Q ${
|
|
18
|
+
L ${r},${-u}
|
|
19
|
+
V ${o + l}
|
|
20
|
+
Q ${r},${o} ${r - l},${o}
|
|
21
|
+
H ${e + l}
|
|
22
|
+
Q ${e},${o} ${e},${o + l}
|
|
23
|
+
V ${c - l}
|
|
24
|
+
Q ${e},${c} ${e + l},${c}
|
|
25
|
+
H ${r - l}
|
|
26
|
+
Q ${r},${c} ${r},${c - l}
|
|
27
27
|
V ${u}
|
|
28
28
|
L 0,0 z`;
|
|
29
29
|
}
|
|
30
|
-
function D(n,
|
|
31
|
-
const
|
|
30
|
+
function D(n, t, s) {
|
|
31
|
+
const e = u, r = u + n, o = -t / 2 + s, c = t / 2 + s;
|
|
32
32
|
return `M 0,0
|
|
33
|
-
L ${
|
|
34
|
-
V ${
|
|
35
|
-
Q ${
|
|
36
|
-
H ${
|
|
37
|
-
Q ${
|
|
38
|
-
V ${
|
|
39
|
-
Q ${
|
|
40
|
-
H ${
|
|
41
|
-
Q ${
|
|
33
|
+
L ${e},${-u}
|
|
34
|
+
V ${o + l}
|
|
35
|
+
Q ${e},${o} ${e + l},${o}
|
|
36
|
+
H ${r - l}
|
|
37
|
+
Q ${r},${o} ${r},${o + l}
|
|
38
|
+
V ${c - l}
|
|
39
|
+
Q ${r},${c} ${r - l},${c}
|
|
40
|
+
H ${e + l}
|
|
41
|
+
Q ${e},${c} ${e},${c - l}
|
|
42
42
|
V ${u}
|
|
43
43
|
L 0,0 z`;
|
|
44
44
|
}
|
|
45
|
-
function K(n,
|
|
46
|
-
const
|
|
45
|
+
function K(n, t, s) {
|
|
46
|
+
const e = -n / 2 + s, r = n / 2 + s, o = -u - t, c = -u;
|
|
47
47
|
return `M 0,0
|
|
48
|
-
L ${-u},${
|
|
49
|
-
H ${
|
|
50
|
-
Q ${
|
|
51
|
-
V ${
|
|
52
|
-
Q ${
|
|
53
|
-
H ${
|
|
54
|
-
Q ${
|
|
55
|
-
V ${
|
|
56
|
-
Q ${
|
|
48
|
+
L ${-u},${c}
|
|
49
|
+
H ${e + l}
|
|
50
|
+
Q ${e},${c} ${e},${c - l}
|
|
51
|
+
V ${o + l}
|
|
52
|
+
Q ${e},${o} ${e + l},${o}
|
|
53
|
+
H ${r - l}
|
|
54
|
+
Q ${r},${o} ${r},${o + l}
|
|
55
|
+
V ${c - l}
|
|
56
|
+
Q ${r},${c} ${r - l},${c}
|
|
57
57
|
H ${u}
|
|
58
58
|
L 0,0 z`;
|
|
59
59
|
}
|
|
60
|
-
function U(n,
|
|
61
|
-
const
|
|
60
|
+
function U(n, t, s) {
|
|
61
|
+
const e = -n / 2 + s, r = n / 2 + s, o = u + t, c = u;
|
|
62
62
|
return `M 0,0
|
|
63
|
-
L ${-u},${
|
|
64
|
-
H ${
|
|
65
|
-
Q ${
|
|
66
|
-
V ${
|
|
67
|
-
Q ${
|
|
68
|
-
H ${
|
|
69
|
-
Q ${
|
|
70
|
-
V ${
|
|
71
|
-
Q ${
|
|
63
|
+
L ${-u},${c}
|
|
64
|
+
H ${e + l}
|
|
65
|
+
Q ${e},${c} ${e},${c + l}
|
|
66
|
+
V ${o - l}
|
|
67
|
+
Q ${e},${o} ${e + l},${o}
|
|
68
|
+
H ${r - l}
|
|
69
|
+
Q ${r},${o} ${r},${o - l}
|
|
70
|
+
V ${c + l}
|
|
71
|
+
Q ${r},${c} ${r - l},${c}
|
|
72
72
|
H ${u}
|
|
73
73
|
L 0,0 z`;
|
|
74
74
|
}
|
|
75
|
-
function J(n,
|
|
75
|
+
function J(n, t, s, e, r) {
|
|
76
76
|
switch (s) {
|
|
77
77
|
case "left":
|
|
78
|
-
return q(n,
|
|
78
|
+
return q(n, t, r);
|
|
79
79
|
case "right":
|
|
80
|
-
return D(n,
|
|
80
|
+
return D(n, t, r);
|
|
81
81
|
case "top":
|
|
82
|
-
return K(n,
|
|
82
|
+
return K(n, t, e);
|
|
83
83
|
case "bottom":
|
|
84
|
-
return U(n,
|
|
84
|
+
return U(n, t, e);
|
|
85
85
|
default:
|
|
86
|
-
|
|
86
|
+
z(s, "Unknown tooltip direction");
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
|
-
function Y(n,
|
|
90
|
-
return
|
|
89
|
+
function Y(n, t, s, e, r, o, c) {
|
|
90
|
+
return c ? o.right - s - r - u > n ? "right" : "left" : o.top + e - r - u > t ? "top" : "bottom";
|
|
91
91
|
}
|
|
92
|
-
function X(n,
|
|
93
|
-
return n === "left" || n === "right" ? `translate(${n === "left" ? -(
|
|
92
|
+
function X(n, t, s, e, r, o) {
|
|
93
|
+
return n === "left" || n === "right" ? `translate(${n === "left" ? -(e + u + t) : e + u},${-s / 2 + o})` : `translate(${-t / 2 + r},${n === "top" ? -(s + e + u) : e + u})`;
|
|
94
94
|
}
|
|
95
|
-
function
|
|
96
|
-
return n === "left" || n === "right" ? `translate(${n === "left" ? -
|
|
95
|
+
function ee(n, t) {
|
|
96
|
+
return n === "left" || n === "right" ? `translate(${n === "left" ? -t : t},0)` : `translate(0,${n === "top" ? -t : t})`;
|
|
97
97
|
}
|
|
98
|
-
function
|
|
98
|
+
function te(n, t, s, e) {
|
|
99
99
|
if (n === "left" || n === "right")
|
|
100
100
|
return 0;
|
|
101
|
-
const
|
|
102
|
-
return
|
|
101
|
+
const r = t.right - s, o = t.left + s;
|
|
102
|
+
return r < e / 2 ? r - e / 2 : o < e / 2 ? e / 2 - o : 0;
|
|
103
103
|
}
|
|
104
|
-
function
|
|
104
|
+
function re(n, t, s, e) {
|
|
105
105
|
if (n === "top" || n === "bottom")
|
|
106
106
|
return 0;
|
|
107
|
-
const
|
|
108
|
-
return
|
|
107
|
+
const r = t.top + s, o = t.bottom - s;
|
|
108
|
+
return r < e / 2 ? e / 2 - r : o < e / 2 ? o - e / 2 : 0;
|
|
109
109
|
}
|
|
110
|
-
function
|
|
111
|
-
}) {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
110
|
+
function ae(n = () => {
|
|
111
|
+
}, t) {
|
|
112
|
+
var H;
|
|
113
|
+
const [s, e] = $.useState(null), [r, o] = $.useState(!1), c = $.useRef(!1), L = $.useRef(!1), h = $.useRef("null"), f = $.useRef(null), i = $.useRef(!t || !t.show || !((H = t.content) != null && H.length)), d = () => {
|
|
114
|
+
e(null), c.current = !1, f.current && (clearTimeout(f.current), f.current = null), n(!1);
|
|
115
|
+
}, m = () => {
|
|
116
|
+
L.current = !1, o(!1), d();
|
|
117
|
+
}, C = $.useCallback((p, x) => {
|
|
118
|
+
L.current || i.current || (e(p), c.current = !0, h.current = x ?? "null", f.current && clearTimeout(f.current), f.current = setTimeout(() => {
|
|
118
119
|
n(!0);
|
|
119
120
|
}, 2e3));
|
|
120
|
-
}, []),
|
|
121
|
-
|
|
122
|
-
}, []),
|
|
123
|
-
return
|
|
124
|
-
|
|
125
|
-
|
|
121
|
+
}, []), E = $.useCallback(() => {
|
|
122
|
+
L.current || d();
|
|
123
|
+
}, []), Q = $.useCallback(m, []);
|
|
124
|
+
return $.useEffect(() => {
|
|
125
|
+
var p;
|
|
126
|
+
i.current = !t || !t.show || !((p = t.content) != null && p.length);
|
|
127
|
+
}, [t == null ? void 0 : t.content, t == null ? void 0 : t.show]), $.useEffect(() => {
|
|
128
|
+
function p(T) {
|
|
129
|
+
c.current && T.key === "Enter" && (L.current = !0, o(!0), f.current && (clearTimeout(f.current), f.current = null), n(!1));
|
|
126
130
|
}
|
|
127
|
-
function
|
|
128
|
-
if (!
|
|
131
|
+
function x(T) {
|
|
132
|
+
if (!L.current)
|
|
129
133
|
return;
|
|
130
|
-
const v = document.querySelector(`.${
|
|
131
|
-
v &&
|
|
134
|
+
const v = document.querySelector(`.${y}`), F = T.target;
|
|
135
|
+
v && F && v.contains(F) || m();
|
|
132
136
|
}
|
|
133
|
-
return document.addEventListener("keydown",
|
|
134
|
-
document.removeEventListener("keydown",
|
|
137
|
+
return document.addEventListener("keydown", p), document.addEventListener("click", x), () => {
|
|
138
|
+
document.removeEventListener("keydown", p), document.removeEventListener("click", x);
|
|
135
139
|
};
|
|
136
140
|
}, []), {
|
|
137
|
-
active:
|
|
141
|
+
active: s !== null,
|
|
138
142
|
currentFacet: h.current,
|
|
139
|
-
fixed:
|
|
140
|
-
selectedData:
|
|
141
|
-
onMouseEnter:
|
|
142
|
-
onMouseLeave:
|
|
143
|
-
onClose:
|
|
143
|
+
fixed: r,
|
|
144
|
+
selectedData: s,
|
|
145
|
+
onMouseEnter: C,
|
|
146
|
+
onMouseLeave: E,
|
|
147
|
+
onClose: Q
|
|
144
148
|
};
|
|
145
149
|
}
|
|
146
|
-
function $
|
|
150
|
+
function $e({
|
|
147
151
|
content: n,
|
|
148
|
-
x:
|
|
152
|
+
x: t,
|
|
149
153
|
y: s,
|
|
150
|
-
active:
|
|
151
|
-
fixed:
|
|
152
|
-
container:
|
|
153
|
-
sideDistances:
|
|
154
|
-
onClose:
|
|
154
|
+
active: e,
|
|
155
|
+
fixed: r,
|
|
156
|
+
container: o,
|
|
157
|
+
sideDistances: c,
|
|
158
|
+
onClose: L = () => {
|
|
155
159
|
},
|
|
156
|
-
offset:
|
|
157
|
-
horizontal:
|
|
160
|
+
offset: h = W,
|
|
161
|
+
horizontal: f = !0
|
|
158
162
|
}) {
|
|
159
|
-
const
|
|
160
|
-
function
|
|
161
|
-
var
|
|
162
|
-
(
|
|
163
|
-
`)),
|
|
163
|
+
const i = G(n, r), d = B(n), m = Y(i, d, t, s, h, c, f), C = te(m, c, t, i), E = re(m, c, s, d), Q = `translate(${i - g - V},${M})`, H = `translate(${i - g * 2 - k - V},${M})`, [p, x] = $.useState(!1), [T, v] = $.useState(!1), [F, R] = $.useState(!1);
|
|
164
|
+
function N() {
|
|
165
|
+
var j;
|
|
166
|
+
(j = window == null ? void 0 : window.navigator) == null || j.clipboard.writeText(n.join(`
|
|
167
|
+
`)), x(!0);
|
|
164
168
|
}
|
|
165
|
-
if (!
|
|
169
|
+
if (!e || !o && o !== null)
|
|
166
170
|
return null;
|
|
167
|
-
const
|
|
171
|
+
const I = /* @__PURE__ */ a.jsxs(
|
|
168
172
|
"g",
|
|
169
173
|
{
|
|
170
|
-
className:
|
|
171
|
-
transform: `translate(${
|
|
172
|
-
opacity:
|
|
174
|
+
className: y,
|
|
175
|
+
transform: `translate(${c.left + t},${c.top + s})`,
|
|
176
|
+
opacity: e ? 1 : 0,
|
|
173
177
|
stroke: "none",
|
|
174
178
|
fill: "none",
|
|
175
|
-
style: { pointerEvents:
|
|
179
|
+
style: { pointerEvents: r ? "all" : "none" },
|
|
176
180
|
children: [
|
|
177
181
|
/* @__PURE__ */ a.jsx(
|
|
178
182
|
"path",
|
|
179
183
|
{
|
|
180
|
-
transform:
|
|
181
|
-
d: J(
|
|
182
|
-
fill:
|
|
184
|
+
transform: ee(m, h),
|
|
185
|
+
d: J(i, d, m, C, E),
|
|
186
|
+
fill: S
|
|
183
187
|
}
|
|
184
188
|
),
|
|
185
189
|
/* @__PURE__ */ a.jsxs(
|
|
@@ -188,26 +192,26 @@ function $t({
|
|
|
188
192
|
fontSize: "14px",
|
|
189
193
|
fontFamily: "Manrope",
|
|
190
194
|
fill: "white",
|
|
191
|
-
transform: X(
|
|
195
|
+
transform: X(m, i, d, h, C, E),
|
|
192
196
|
children: [
|
|
193
|
-
n.map((
|
|
197
|
+
n.map((j, O) => /* @__PURE__ */ a.jsx(
|
|
194
198
|
"text",
|
|
195
199
|
{
|
|
196
|
-
x:
|
|
197
|
-
y:
|
|
200
|
+
x: V,
|
|
201
|
+
y: M + b * O + b / 2,
|
|
198
202
|
dominantBaseline: "central",
|
|
199
|
-
children:
|
|
203
|
+
children: j
|
|
200
204
|
},
|
|
201
|
-
|
|
205
|
+
O
|
|
202
206
|
)),
|
|
203
|
-
|
|
207
|
+
r && /* @__PURE__ */ a.jsxs("g", { transform: Q, children: [
|
|
204
208
|
/* @__PURE__ */ a.jsx(
|
|
205
209
|
"path",
|
|
206
210
|
{
|
|
207
211
|
fillRule: "evenodd",
|
|
208
212
|
clipRule: "evenodd",
|
|
209
213
|
d: "M4.0006 2.93945L8.0006 6.93945L12.0006 2.93945L13.0613 4.00011L9.06126 8.00011L13.0613 12.0001L12.0006 13.0608L8.0006 9.06077L4.0006 13.0608L2.93994 12.0001L6.93994 8.00011L2.93994 4.00011L4.0006 2.93945Z",
|
|
210
|
-
fill:
|
|
214
|
+
fill: T ? P : _
|
|
211
215
|
}
|
|
212
216
|
),
|
|
213
217
|
/* @__PURE__ */ a.jsx(
|
|
@@ -218,20 +222,20 @@ function $t({
|
|
|
218
222
|
width: "24",
|
|
219
223
|
height: "24",
|
|
220
224
|
fill: "transparent",
|
|
221
|
-
onClick:
|
|
222
|
-
onMouseOver: () =>
|
|
223
|
-
onMouseLeave: () =>
|
|
225
|
+
onClick: L,
|
|
226
|
+
onMouseOver: () => v(!0),
|
|
227
|
+
onMouseLeave: () => v(!1),
|
|
224
228
|
style: { cursor: "pointer" }
|
|
225
229
|
}
|
|
226
230
|
)
|
|
227
231
|
] }),
|
|
228
|
-
|
|
229
|
-
|
|
232
|
+
r && /* @__PURE__ */ a.jsxs("g", { transform: H, children: [
|
|
233
|
+
p ? /* @__PURE__ */ a.jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M14.0601 4.43439L6.33313 12.5477L1.93945 7.93439L3.02566 6.8999L6.33313 10.3727L12.9739 3.3999L14.0601 4.43439Z", fill: "#07AD3E" }) : /* @__PURE__ */ a.jsxs("g", { children: [
|
|
230
234
|
/* @__PURE__ */ a.jsx("g", { clipPath: "url(#clip0_16418_6183)", children: /* @__PURE__ */ a.jsx(
|
|
231
235
|
"path",
|
|
232
236
|
{
|
|
233
237
|
d: "M16.0005 13H14.5005V1.5H3.00049V0H14.5005C15.3289 2.86102e-06 16.0005 0.671575 16.0005 1.5V13ZM1.34717 15.9922C0.641178 15.9205 0.0799799 15.3593 0.00830078 14.6533L0.000488281 14.5V4.5C0.000488281 3.72334 0.590765 3.08461 1.34717 3.00781L1.50049 3H11.5005L11.6538 3.00781C12.4102 3.08461 13.0005 3.72334 13.0005 4.5V14.5L12.9927 14.6533C12.921 15.3593 12.3598 15.9205 11.6538 15.9922L11.5005 16H1.50049L1.34717 15.9922ZM11.5005 4.5H1.50049V14.5H11.5005V4.5Z",
|
|
234
|
-
fill:
|
|
238
|
+
fill: F ? P : _
|
|
235
239
|
}
|
|
236
240
|
) }),
|
|
237
241
|
/* @__PURE__ */ a.jsx("defs", { children: /* @__PURE__ */ a.jsx("clipPath", { id: "clip0_16418_6183", children: /* @__PURE__ */ a.jsx("rect", { width: "16", height: "16", transform: "translate(0.000488281)", fill: "white" }) }) })
|
|
@@ -244,9 +248,9 @@ function $t({
|
|
|
244
248
|
width: "24",
|
|
245
249
|
height: "24",
|
|
246
250
|
fill: "transparent",
|
|
247
|
-
onClick:
|
|
248
|
-
onMouseOver: () =>
|
|
249
|
-
onMouseLeave: () =>
|
|
251
|
+
onClick: N,
|
|
252
|
+
onMouseOver: () => R(!0),
|
|
253
|
+
onMouseLeave: () => R(!1),
|
|
250
254
|
style: { cursor: "pointer" }
|
|
251
255
|
}
|
|
252
256
|
)
|
|
@@ -257,15 +261,15 @@ function $t({
|
|
|
257
261
|
]
|
|
258
262
|
}
|
|
259
263
|
);
|
|
260
|
-
return
|
|
261
|
-
|
|
262
|
-
|
|
264
|
+
return o === null ? I : w.createPortal(
|
|
265
|
+
I,
|
|
266
|
+
o
|
|
263
267
|
);
|
|
264
268
|
}
|
|
265
269
|
export {
|
|
266
|
-
$
|
|
270
|
+
$e as Tooltip,
|
|
267
271
|
B as getTooltipHeight,
|
|
268
272
|
G as getTooltipWidth,
|
|
269
|
-
|
|
273
|
+
ae as useTooltip
|
|
270
274
|
};
|
|
271
275
|
//# sourceMappingURL=Tooltip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","sources":["../../src/common/Tooltip.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { BLACK } from '../constants';\nimport { exhaustive } from '../utils';\nimport { TextMeasurer } from '../utils/TextMeasurer/TextMeasurer';\n\ntype Direction = 'left'|'right'|'top'|'bottom';\ntype SideDistances = {\n left: number;\n right: number;\n top: number;\n bottom: number;\n};\n\nconst OFFSET_V = 8;\nconst OFFSET_H = 12;\nconst LINE_HEIGHT = 20;\nconst R = 6;\nconst TAIL_OFFSET = 5;\nconst POSITION_OFFSET = 8;\n\nconst ICON_W = 16;\nconst ICON_OFFSET = 8;\nconst ICONS_WIDTH = ICON_W * 2 + ICON_OFFSET + 16;\n\nconst GREY = '#CFD1DB';\nconst WHITE = '#fff';\n\nconst TOOLTIP_CLASS = 'miplots-tooltip';\n\nexport function getTooltipHeight(content: string[]) {\n return content.length * LINE_HEIGHT + 2 * OFFSET_V;\n}\nexport function getTooltipWidth(content: string[], hasIcons = false) {\n const textMeasurer = new TextMeasurer('600 14px Arial');\n return Math.max(...content.map((str, idx) => textMeasurer.getTextWidth(str) + (idx === 0 && hasIcons ? ICONS_WIDTH : 0))) + 2 * OFFSET_H;\n}\n\nfunction rightTooltipPath(width: number, height: number, shiftY: number) {\n const left = -TAIL_OFFSET - width;\n const right = -TAIL_OFFSET;\n const top = -height / 2 + shiftY;\n const bottom = height / 2 + shiftY;\n return `M 0,0 \n L ${right},${-TAIL_OFFSET} \n V ${top + R}\n Q ${right},${top} ${right - R},${top} \n H ${left + R} \n Q ${left},${top} ${left},${top + R}\n V ${bottom - R}\n Q ${left},${bottom} ${left + R},${bottom}\n H ${right - R}\n Q ${right},${bottom} ${right},${bottom - R}\n V ${TAIL_OFFSET} \n L 0,0 z`;\n}\nfunction leftTooltipPath(width: number, height: number, shiftY: number) {\n const left = TAIL_OFFSET;\n const right = TAIL_OFFSET + width;\n const top = -height / 2 + shiftY;\n const bottom = height / 2 + shiftY;\n return `M 0,0 \n L ${left},${-TAIL_OFFSET} \n V ${top + R}\n Q ${left},${top} ${left + R},${top} \n H ${right - R} \n Q ${right},${top} ${right},${top + R}\n V ${bottom - R}\n Q ${right},${bottom} ${right - R},${bottom}\n H ${left + R}\n Q ${left},${bottom} ${left},${bottom - R}\n V ${TAIL_OFFSET} \n L 0,0 z`;\n}\n\nfunction topTooltipPath(width: number, height: number, shiftX: number) {\n const left = -width / 2 + shiftX;\n const right = width / 2 + shiftX;\n const top = -TAIL_OFFSET - height;\n const bottom = -TAIL_OFFSET;\n return `M 0,0 \n L ${-TAIL_OFFSET},${bottom} \n H ${left + R}\n Q ${left},${bottom} ${left},${bottom - R} \n V ${top + R} \n Q ${left},${top} ${left + R},${top}\n H ${right - R}\n Q ${right},${top} ${right},${top + R}\n V ${bottom - R}\n Q ${right},${bottom} ${right - R},${bottom}\n H ${TAIL_OFFSET} \n L 0,0 z`;\n}\n\nfunction bottomTooltipPath(width: number, height: number, shiftX: number) {\n const left = -width / 2 + shiftX;\n const right = width / 2 + shiftX;\n const bottom = TAIL_OFFSET + height;\n const top = TAIL_OFFSET;\n return `M 0,0 \n L ${-TAIL_OFFSET},${top} \n H ${left + R}\n Q ${left},${top} ${left},${top + R} \n V ${bottom - R} \n Q ${left},${bottom} ${left + R},${bottom}\n H ${right - R}\n Q ${right},${bottom} ${right},${bottom - R}\n V ${top + R}\n Q ${right},${top} ${right - R},${top}\n H ${TAIL_OFFSET} \n L 0,0 z`;\n}\n\nfunction getPath(width: number, height: number, direction: Direction, shiftX: number, shiftY: number):string {\n switch (direction) {\n case 'left': return rightTooltipPath(width, height, shiftY);\n case 'right': return leftTooltipPath(width, height, shiftY);\n case 'top': return topTooltipPath(width, height, shiftX);\n case 'bottom': return bottomTooltipPath(width, height, shiftX);\n default: exhaustive(direction, 'Unknown tooltip direction');\n }\n}\n\nfunction getDirection(width: number, height: number, x: number, y: number, offset:number, sideDistances:SideDistances , horizontal: boolean):Direction {\n if (horizontal) {\n return sideDistances.right - x - offset - TAIL_OFFSET > width ? 'right' : 'left';\n }\n return sideDistances.top + y - offset - TAIL_OFFSET > height ? 'top' : 'bottom';\n}\n\nfunction getContentTransform (direction:Direction, width: number, height: number, offset:number, shiftX: number, shiftY: number) {\n if (direction === 'left' || direction === 'right') {\n return `translate(${(direction === 'left' ? -(offset + TAIL_OFFSET + width) : (offset + TAIL_OFFSET))},${-height / 2 + shiftY})`;\n }\n return `translate(${-width / 2 + shiftX},${direction === 'top' ? -(height + offset + TAIL_OFFSET) : offset + TAIL_OFFSET})`;\n\n}\nfunction getPathTransform (direction:Direction, offset:number) {\n if (direction === 'left' || direction === 'right') {\n return `translate(${direction === 'left' ? -offset : offset},0)`;\n }\n return `translate(0,${direction === 'top' ? -offset : offset})`;\n}\n\nfunction getShiftX (direction:Direction, sideDistances: SideDistances, x: number, width: number) {\n if (direction === 'left' || direction === 'right') {\n return 0;\n }\n const rightFreeSpace = sideDistances.right - x;\n const leftFreeSpace = sideDistances.left + x;\n if (rightFreeSpace < width / 2) {\n return rightFreeSpace - width / 2;\n }\n if (leftFreeSpace < width / 2) {\n return width / 2 - leftFreeSpace;\n }\n return 0;\n}\nfunction getShiftY (direction:Direction, sideDistances: SideDistances, y: number, height: number) {\n if (direction === 'top' || direction === 'bottom') {\n return 0;\n }\n const topFreeSpace = sideDistances.top + y;\n const bottomFreeSpace = sideDistances.bottom - y;\n if (topFreeSpace < height / 2) {\n return height / 2 - topFreeSpace;\n }\n if (bottomFreeSpace < height / 2) {\n return bottomFreeSpace - height / 2;\n }\n return 0;\n}\n\nexport type TooltipsData<T> = {\n active: boolean,\n fixed: boolean,\n selectedData: T | null,\n currentFacet: string,\n onMouseEnter: (elementData:T, facetKey?:string) => void,\n onMouseLeave: () => void,\n onClose: () => void\n}\n\nexport function useTooltip<T = unknown>(onTooltipHintSwitchOuterCallback: (v:boolean) => void = () => undefined): TooltipsData<T> {\n const [selectedData, setSelectedData] = useState<T | null>(null);\n const [fixed, setFixed] = useState(false);\n const openRef = useRef(false);\n const fixedRef = useRef(false);\n const currentFacet = useRef('null');\n const hintTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const close = () => {\n setSelectedData(null);\n openRef.current = false;\n if (hintTimer.current) {\n clearTimeout(hintTimer.current);\n hintTimer.current = null;\n }\n onTooltipHintSwitchOuterCallback(false);\n };\n const closeFixed = () => {\n fixedRef.current = false;\n setFixed(false);\n close();\n };\n const onMouseEnter = useCallback((newElementData:T, facetKey?: string) => {\n if (fixedRef.current) {\n return;\n }\n setSelectedData(newElementData);\n openRef.current = true;\n currentFacet.current = facetKey ?? 'null';\n if (hintTimer.current) {\n clearTimeout(hintTimer.current);\n }\n hintTimer.current = setTimeout(() => {\n onTooltipHintSwitchOuterCallback(true);\n }, 2000);\n }, []);\n const onMouseLeave = useCallback(() => {\n if (fixedRef.current) {\n return;\n }\n close();\n }, []);\n\n const onClose = useCallback(closeFixed, []);\n\n useEffect(() => {\n function handleEnter(e:KeyboardEvent) {\n if (openRef.current && e.key === 'Enter') {\n fixedRef.current = true;\n setFixed(true);\n if (hintTimer.current) {\n clearTimeout(hintTimer.current);\n hintTimer.current = null;\n }\n onTooltipHintSwitchOuterCallback(false);\n }\n }\n function handleClickOutside(e:MouseEvent) {\n if (!fixedRef.current) {\n return;\n }\n //const tooltipNodes = Array.from(document.getElementsByClassName(TOOLTIP_CLASS));\n const tooltipNode = document.querySelector(`.${TOOLTIP_CLASS}`);\n const clickedNode = e.target;\n if (tooltipNode && clickedNode && tooltipNode.contains(clickedNode as Node)) {\n return;\n }\n closeFixed();\n }\n document.addEventListener('keydown', handleEnter);\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('keydown', handleEnter);\n document.removeEventListener('click', handleClickOutside);\n };\n }, []);\n\n return {\n active: selectedData !== null,\n currentFacet: currentFacet.current,\n fixed,\n selectedData,\n onMouseEnter,\n onMouseLeave,\n onClose\n };\n}\n\nexport function Tooltip({\n content,\n x,\n y,\n active,\n fixed,\n container,\n sideDistances,\n onClose = () => undefined,\n offset = POSITION_OFFSET,\n horizontal = true,\n}: {\n content: string[];\n x: number;\n y: number;\n active: boolean;\n fixed: boolean;\n sideDistances: SideDistances;\n onClose?: () => void;\n offset?: number;\n horizontal?: boolean;\n container?: Element | null;\n}) {\n const width = getTooltipWidth(content, fixed);\n const height = getTooltipHeight(content);\n const direction = getDirection(width, height, x, y, offset, sideDistances, horizontal);\n // shifts for tooltip positioning not in center if it is close to chart edges\n const shiftX = getShiftX(direction, sideDistances, x, width);\n const shiftY = getShiftY(direction, sideDistances, y, height);\n\n const firstIconPosition = `translate(${width - ICON_W - OFFSET_H},${OFFSET_V})`;\n const secondIconPosition = `translate(${width - ICON_W * 2 - ICON_OFFSET - OFFSET_H},${OFFSET_V})`;\n\n const [copied, setCopied] = useState(false);\n const [hoveredClose, setHoveredClose] = useState(false);\n const [hoveredCopy, setHoveredCopy] = useState(false);\n\n function copyToClipboard () {\n window?.navigator?.clipboard.writeText(content.join('\\n'));\n setCopied(true);\n }\n \n if (!active || (!container && container !== null)) {\n return null;\n }\n\n const tooltip = (\n <g\n className={TOOLTIP_CLASS}\n transform={`translate(${sideDistances.left + x},${sideDistances.top + y})`}\n opacity={active ? 1 : 0}\n stroke=\"none\"\n fill=\"none\"\n style={{pointerEvents: fixed ? 'all' : 'none'}}\n >\n <path\n transform={getPathTransform(direction, offset)}\n d={getPath(width, height, direction, shiftX, shiftY)}\n fill={BLACK}\n />\n <g\n fontSize=\"14px\"\n fontFamily=\"Manrope\"\n fill=\"white\"\n transform={getContentTransform(direction, width, height, offset, shiftX, shiftY)}\n >\n {content.map((str, idx) => (\n <text\n key={idx}\n x={OFFSET_H}\n y={OFFSET_V + LINE_HEIGHT * idx + LINE_HEIGHT / 2}\n dominantBaseline=\"central\"\n >\n {str}\n </text>\n ))}\n {fixed && (\n <g transform={firstIconPosition}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4.0006 2.93945L8.0006 6.93945L12.0006 2.93945L13.0613 4.00011L9.06126 8.00011L13.0613 12.0001L12.0006 13.0608L8.0006 9.06077L4.0006 13.0608L2.93994 12.0001L6.93994 8.00011L2.93994 4.00011L4.0006 2.93945Z\"\n fill={hoveredClose ? GREY : WHITE}\n />\n <rect\n x=\"-8\"\n y=\"-8\"\n width=\"24\"\n height=\"24\"\n fill=\"transparent\"\n onClick={onClose}\n onMouseOver={() => setHoveredClose(true)}\n onMouseLeave={() => setHoveredClose(false)}\n style={{cursor: 'pointer'}}\n />\n </g>\n )}\n {fixed && (\n <g transform={secondIconPosition}>\n {copied\n ? (\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M14.0601 4.43439L6.33313 12.5477L1.93945 7.93439L3.02566 6.8999L6.33313 10.3727L12.9739 3.3999L14.0601 4.43439Z\" fill=\"#07AD3E\"/>\n )\n : (\n <g>\n <g clipPath=\"url(#clip0_16418_6183)\">\n <path d=\"M16.0005 13H14.5005V1.5H3.00049V0H14.5005C15.3289 2.86102e-06 16.0005 0.671575 16.0005 1.5V13ZM1.34717 15.9922C0.641178 15.9205 0.0799799 15.3593 0.00830078 14.6533L0.000488281 14.5V4.5C0.000488281 3.72334 0.590765 3.08461 1.34717 3.00781L1.50049 3H11.5005L11.6538 3.00781C12.4102 3.08461 13.0005 3.72334 13.0005 4.5V14.5L12.9927 14.6533C12.921 15.3593 12.3598 15.9205 11.6538 15.9922L11.5005 16H1.50049L1.34717 15.9922ZM11.5005 4.5H1.50049V14.5H11.5005V4.5Z\"\n fill={hoveredCopy ? GREY : WHITE}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_16418_6183\">\n <rect width=\"16\" height=\"16\" transform=\"translate(0.000488281)\" fill=\"white\" />\n </clipPath>\n </defs>\n </g>\n )}\n <rect\n x=\"-8\"\n y=\"-8\"\n width=\"24\"\n height=\"24\"\n fill=\"transparent\"\n onClick={copyToClipboard}\n onMouseOver={() => setHoveredCopy(true)}\n onMouseLeave={() => setHoveredCopy(false)}\n style={{cursor: 'pointer'}}\n />\n </g>\n )}\n </g>\n </g>\n );\n\n return container === null ? tooltip : createPortal(\n tooltip,\n container\n );\n}\n"],"names":["OFFSET_V","OFFSET_H","LINE_HEIGHT","R","TAIL_OFFSET","POSITION_OFFSET","ICON_W","ICON_OFFSET","ICONS_WIDTH","GREY","WHITE","TOOLTIP_CLASS","getTooltipHeight","content","getTooltipWidth","hasIcons","textMeasurer","TextMeasurer","str","idx","rightTooltipPath","width","height","shiftY","left","right","top","bottom","leftTooltipPath","topTooltipPath","shiftX","bottomTooltipPath","getPath","direction","exhaustive","getDirection","x","y","offset","sideDistances","horizontal","getContentTransform","getPathTransform","getShiftX","rightFreeSpace","leftFreeSpace","getShiftY","topFreeSpace","bottomFreeSpace","useTooltip","onTooltipHintSwitchOuterCallback","selectedData","setSelectedData","useState","fixed","setFixed","openRef","useRef","fixedRef","currentFacet","hintTimer","close","closeFixed","onMouseEnter","useCallback","newElementData","facetKey","onMouseLeave","onClose","useEffect","handleEnter","e","handleClickOutside","tooltipNode","clickedNode","Tooltip","active","container","firstIconPosition","secondIconPosition","copied","setCopied","hoveredClose","setHoveredClose","hoveredCopy","setHoveredCopy","copyToClipboard","_a","tooltip","jsxs","jsx","BLACK","createPortal"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sources":["../../src/common/Tooltip.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { BLACK } from '../constants';\nimport { exhaustive } from '../utils';\nimport { TextMeasurer } from '../utils/TextMeasurer/TextMeasurer';\nimport type { TooltipSettings } from '../types';\n\ntype Direction = 'left'|'right'|'top'|'bottom';\ntype SideDistances = {\n left: number;\n right: number;\n top: number;\n bottom: number;\n};\n\nconst OFFSET_V = 8;\nconst OFFSET_H = 12;\nconst LINE_HEIGHT = 20;\nconst R = 6;\nconst TAIL_OFFSET = 5;\nconst POSITION_OFFSET = 8;\n\nconst ICON_W = 16;\nconst ICON_OFFSET = 8;\nconst ICONS_WIDTH = ICON_W * 2 + ICON_OFFSET + 16;\n\nconst GREY = '#CFD1DB';\nconst WHITE = '#fff';\n\nconst TOOLTIP_CLASS = 'miplots-tooltip';\n\nexport function getTooltipHeight(content: string[]) {\n return content.length * LINE_HEIGHT + 2 * OFFSET_V;\n}\nexport function getTooltipWidth(content: string[], hasIcons = false) {\n const textMeasurer = new TextMeasurer('600 14px Arial');\n return Math.max(...content.map((str, idx) => textMeasurer.getTextWidth(str) + (idx === 0 && hasIcons ? ICONS_WIDTH : 0))) + 2 * OFFSET_H;\n}\n\nfunction rightTooltipPath(width: number, height: number, shiftY: number) {\n const left = -TAIL_OFFSET - width;\n const right = -TAIL_OFFSET;\n const top = -height / 2 + shiftY;\n const bottom = height / 2 + shiftY;\n return `M 0,0 \n L ${right},${-TAIL_OFFSET} \n V ${top + R}\n Q ${right},${top} ${right - R},${top} \n H ${left + R} \n Q ${left},${top} ${left},${top + R}\n V ${bottom - R}\n Q ${left},${bottom} ${left + R},${bottom}\n H ${right - R}\n Q ${right},${bottom} ${right},${bottom - R}\n V ${TAIL_OFFSET} \n L 0,0 z`;\n}\nfunction leftTooltipPath(width: number, height: number, shiftY: number) {\n const left = TAIL_OFFSET;\n const right = TAIL_OFFSET + width;\n const top = -height / 2 + shiftY;\n const bottom = height / 2 + shiftY;\n return `M 0,0 \n L ${left},${-TAIL_OFFSET} \n V ${top + R}\n Q ${left},${top} ${left + R},${top} \n H ${right - R} \n Q ${right},${top} ${right},${top + R}\n V ${bottom - R}\n Q ${right},${bottom} ${right - R},${bottom}\n H ${left + R}\n Q ${left},${bottom} ${left},${bottom - R}\n V ${TAIL_OFFSET} \n L 0,0 z`;\n}\n\nfunction topTooltipPath(width: number, height: number, shiftX: number) {\n const left = -width / 2 + shiftX;\n const right = width / 2 + shiftX;\n const top = -TAIL_OFFSET - height;\n const bottom = -TAIL_OFFSET;\n return `M 0,0 \n L ${-TAIL_OFFSET},${bottom} \n H ${left + R}\n Q ${left},${bottom} ${left},${bottom - R} \n V ${top + R} \n Q ${left},${top} ${left + R},${top}\n H ${right - R}\n Q ${right},${top} ${right},${top + R}\n V ${bottom - R}\n Q ${right},${bottom} ${right - R},${bottom}\n H ${TAIL_OFFSET} \n L 0,0 z`;\n}\n\nfunction bottomTooltipPath(width: number, height: number, shiftX: number) {\n const left = -width / 2 + shiftX;\n const right = width / 2 + shiftX;\n const bottom = TAIL_OFFSET + height;\n const top = TAIL_OFFSET;\n return `M 0,0 \n L ${-TAIL_OFFSET},${top} \n H ${left + R}\n Q ${left},${top} ${left},${top + R} \n V ${bottom - R} \n Q ${left},${bottom} ${left + R},${bottom}\n H ${right - R}\n Q ${right},${bottom} ${right},${bottom - R}\n V ${top + R}\n Q ${right},${top} ${right - R},${top}\n H ${TAIL_OFFSET} \n L 0,0 z`;\n}\n\nfunction getPath(width: number, height: number, direction: Direction, shiftX: number, shiftY: number):string {\n switch (direction) {\n case 'left': return rightTooltipPath(width, height, shiftY);\n case 'right': return leftTooltipPath(width, height, shiftY);\n case 'top': return topTooltipPath(width, height, shiftX);\n case 'bottom': return bottomTooltipPath(width, height, shiftX);\n default: exhaustive(direction, 'Unknown tooltip direction');\n }\n}\n\nfunction getDirection(width: number, height: number, x: number, y: number, offset:number, sideDistances:SideDistances , horizontal: boolean):Direction {\n if (horizontal) {\n return sideDistances.right - x - offset - TAIL_OFFSET > width ? 'right' : 'left';\n }\n return sideDistances.top + y - offset - TAIL_OFFSET > height ? 'top' : 'bottom';\n}\n\nfunction getContentTransform (direction:Direction, width: number, height: number, offset:number, shiftX: number, shiftY: number) {\n if (direction === 'left' || direction === 'right') {\n return `translate(${(direction === 'left' ? -(offset + TAIL_OFFSET + width) : (offset + TAIL_OFFSET))},${-height / 2 + shiftY})`;\n }\n return `translate(${-width / 2 + shiftX},${direction === 'top' ? -(height + offset + TAIL_OFFSET) : offset + TAIL_OFFSET})`;\n\n}\nfunction getPathTransform (direction:Direction, offset:number) {\n if (direction === 'left' || direction === 'right') {\n return `translate(${direction === 'left' ? -offset : offset},0)`;\n }\n return `translate(0,${direction === 'top' ? -offset : offset})`;\n}\n\nfunction getShiftX (direction:Direction, sideDistances: SideDistances, x: number, width: number) {\n if (direction === 'left' || direction === 'right') {\n return 0;\n }\n const rightFreeSpace = sideDistances.right - x;\n const leftFreeSpace = sideDistances.left + x;\n if (rightFreeSpace < width / 2) {\n return rightFreeSpace - width / 2;\n }\n if (leftFreeSpace < width / 2) {\n return width / 2 - leftFreeSpace;\n }\n return 0;\n}\nfunction getShiftY (direction:Direction, sideDistances: SideDistances, y: number, height: number) {\n if (direction === 'top' || direction === 'bottom') {\n return 0;\n }\n const topFreeSpace = sideDistances.top + y;\n const bottomFreeSpace = sideDistances.bottom - y;\n if (topFreeSpace < height / 2) {\n return height / 2 - topFreeSpace;\n }\n if (bottomFreeSpace < height / 2) {\n return bottomFreeSpace - height / 2;\n }\n return 0;\n}\n\nexport type TooltipsData<T> = {\n active: boolean,\n fixed: boolean,\n selectedData: T | null,\n currentFacet: string,\n onMouseEnter: (elementData:T, facetKey?:string) => void,\n onMouseLeave: () => void,\n onClose: () => void\n}\n\nexport function useTooltip<T = unknown>(\n onTooltipHintSwitchOuterCallback: (v:boolean) => void = () => undefined,\n tooltipSettings?: TooltipSettings\n): TooltipsData<T> {\n const [selectedData, setSelectedData] = useState<T | null>(null);\n const [fixed, setFixed] = useState(false);\n const openRef = useRef(false);\n const fixedRef = useRef(false);\n const currentFacet = useRef('null');\n const hintTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n const disabled = useRef(!tooltipSettings || (!tooltipSettings.show || !tooltipSettings.content?.length));\n\n const close = () => {\n setSelectedData(null);\n openRef.current = false;\n if (hintTimer.current) {\n clearTimeout(hintTimer.current);\n hintTimer.current = null;\n }\n onTooltipHintSwitchOuterCallback(false);\n };\n const closeFixed = () => {\n fixedRef.current = false;\n setFixed(false);\n close();\n };\n const onMouseEnter = useCallback((newElementData:T, facetKey?: string) => {\n if (fixedRef.current || disabled.current) {\n return;\n }\n setSelectedData(newElementData);\n openRef.current = true;\n currentFacet.current = facetKey ?? 'null';\n if (hintTimer.current) {\n clearTimeout(hintTimer.current);\n }\n hintTimer.current = setTimeout(() => {\n onTooltipHintSwitchOuterCallback(true);\n }, 2000);\n }, []);\n const onMouseLeave = useCallback(() => {\n if (fixedRef.current) {\n return;\n }\n close();\n }, []);\n\n const onClose = useCallback(closeFixed, []);\n\n useEffect(() => {\n disabled.current = !tooltipSettings || (!tooltipSettings.show || !tooltipSettings.content?.length);\n }, [tooltipSettings?.content, tooltipSettings?.show]);\n useEffect(() => {\n function handleEnter(e:KeyboardEvent) {\n if (openRef.current && e.key === 'Enter') {\n fixedRef.current = true;\n setFixed(true);\n if (hintTimer.current) {\n clearTimeout(hintTimer.current);\n hintTimer.current = null;\n }\n onTooltipHintSwitchOuterCallback(false);\n }\n }\n function handleClickOutside(e:MouseEvent) {\n if (!fixedRef.current) {\n return;\n }\n //const tooltipNodes = Array.from(document.getElementsByClassName(TOOLTIP_CLASS));\n const tooltipNode = document.querySelector(`.${TOOLTIP_CLASS}`);\n const clickedNode = e.target;\n if (tooltipNode && clickedNode && tooltipNode.contains(clickedNode as Node)) {\n return;\n }\n closeFixed();\n }\n document.addEventListener('keydown', handleEnter);\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('keydown', handleEnter);\n document.removeEventListener('click', handleClickOutside);\n };\n }, []);\n\n return {\n active: selectedData !== null,\n currentFacet: currentFacet.current,\n fixed,\n selectedData,\n onMouseEnter,\n onMouseLeave,\n onClose\n };\n}\n\nexport function Tooltip({\n content,\n x,\n y,\n active,\n fixed,\n container,\n sideDistances,\n onClose = () => undefined,\n offset = POSITION_OFFSET,\n horizontal = true,\n}: {\n content: string[];\n x: number;\n y: number;\n active: boolean;\n fixed: boolean;\n sideDistances: SideDistances;\n onClose?: () => void;\n offset?: number;\n horizontal?: boolean;\n container?: Element | null;\n}) {\n const width = getTooltipWidth(content, fixed);\n const height = getTooltipHeight(content);\n const direction = getDirection(width, height, x, y, offset, sideDistances, horizontal);\n // shifts for tooltip positioning not in center if it is close to chart edges\n const shiftX = getShiftX(direction, sideDistances, x, width);\n const shiftY = getShiftY(direction, sideDistances, y, height);\n\n const firstIconPosition = `translate(${width - ICON_W - OFFSET_H},${OFFSET_V})`;\n const secondIconPosition = `translate(${width - ICON_W * 2 - ICON_OFFSET - OFFSET_H},${OFFSET_V})`;\n\n const [copied, setCopied] = useState(false);\n const [hoveredClose, setHoveredClose] = useState(false);\n const [hoveredCopy, setHoveredCopy] = useState(false);\n\n function copyToClipboard () {\n window?.navigator?.clipboard.writeText(content.join('\\n'));\n setCopied(true);\n }\n \n if (!active || (!container && container !== null)) {\n return null;\n }\n\n const tooltip = (\n <g\n className={TOOLTIP_CLASS}\n transform={`translate(${sideDistances.left + x},${sideDistances.top + y})`}\n opacity={active ? 1 : 0}\n stroke=\"none\"\n fill=\"none\"\n style={{pointerEvents: fixed ? 'all' : 'none'}}\n >\n <path\n transform={getPathTransform(direction, offset)}\n d={getPath(width, height, direction, shiftX, shiftY)}\n fill={BLACK}\n />\n <g\n fontSize=\"14px\"\n fontFamily=\"Manrope\"\n fill=\"white\"\n transform={getContentTransform(direction, width, height, offset, shiftX, shiftY)}\n >\n {content.map((str, idx) => (\n <text\n key={idx}\n x={OFFSET_H}\n y={OFFSET_V + LINE_HEIGHT * idx + LINE_HEIGHT / 2}\n dominantBaseline=\"central\"\n >\n {str}\n </text>\n ))}\n {fixed && (\n <g transform={firstIconPosition}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4.0006 2.93945L8.0006 6.93945L12.0006 2.93945L13.0613 4.00011L9.06126 8.00011L13.0613 12.0001L12.0006 13.0608L8.0006 9.06077L4.0006 13.0608L2.93994 12.0001L6.93994 8.00011L2.93994 4.00011L4.0006 2.93945Z\"\n fill={hoveredClose ? GREY : WHITE}\n />\n <rect\n x=\"-8\"\n y=\"-8\"\n width=\"24\"\n height=\"24\"\n fill=\"transparent\"\n onClick={onClose}\n onMouseOver={() => setHoveredClose(true)}\n onMouseLeave={() => setHoveredClose(false)}\n style={{cursor: 'pointer'}}\n />\n </g>\n )}\n {fixed && (\n <g transform={secondIconPosition}>\n {copied\n ? (\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M14.0601 4.43439L6.33313 12.5477L1.93945 7.93439L3.02566 6.8999L6.33313 10.3727L12.9739 3.3999L14.0601 4.43439Z\" fill=\"#07AD3E\"/>\n )\n : (\n <g>\n <g clipPath=\"url(#clip0_16418_6183)\">\n <path d=\"M16.0005 13H14.5005V1.5H3.00049V0H14.5005C15.3289 2.86102e-06 16.0005 0.671575 16.0005 1.5V13ZM1.34717 15.9922C0.641178 15.9205 0.0799799 15.3593 0.00830078 14.6533L0.000488281 14.5V4.5C0.000488281 3.72334 0.590765 3.08461 1.34717 3.00781L1.50049 3H11.5005L11.6538 3.00781C12.4102 3.08461 13.0005 3.72334 13.0005 4.5V14.5L12.9927 14.6533C12.921 15.3593 12.3598 15.9205 11.6538 15.9922L11.5005 16H1.50049L1.34717 15.9922ZM11.5005 4.5H1.50049V14.5H11.5005V4.5Z\"\n fill={hoveredCopy ? GREY : WHITE}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_16418_6183\">\n <rect width=\"16\" height=\"16\" transform=\"translate(0.000488281)\" fill=\"white\" />\n </clipPath>\n </defs>\n </g>\n )}\n <rect\n x=\"-8\"\n y=\"-8\"\n width=\"24\"\n height=\"24\"\n fill=\"transparent\"\n onClick={copyToClipboard}\n onMouseOver={() => setHoveredCopy(true)}\n onMouseLeave={() => setHoveredCopy(false)}\n style={{cursor: 'pointer'}}\n />\n </g>\n )}\n </g>\n </g>\n );\n\n return container === null ? tooltip : createPortal(\n tooltip,\n container\n );\n}\n"],"names":["OFFSET_V","OFFSET_H","LINE_HEIGHT","R","TAIL_OFFSET","POSITION_OFFSET","ICON_W","ICON_OFFSET","ICONS_WIDTH","GREY","WHITE","TOOLTIP_CLASS","getTooltipHeight","content","getTooltipWidth","hasIcons","textMeasurer","TextMeasurer","str","idx","rightTooltipPath","width","height","shiftY","left","right","top","bottom","leftTooltipPath","topTooltipPath","shiftX","bottomTooltipPath","getPath","direction","exhaustive","getDirection","x","y","offset","sideDistances","horizontal","getContentTransform","getPathTransform","getShiftX","rightFreeSpace","leftFreeSpace","getShiftY","topFreeSpace","bottomFreeSpace","useTooltip","onTooltipHintSwitchOuterCallback","tooltipSettings","selectedData","setSelectedData","useState","fixed","setFixed","openRef","useRef","fixedRef","currentFacet","hintTimer","disabled","_a","close","closeFixed","onMouseEnter","useCallback","newElementData","facetKey","onMouseLeave","onClose","useEffect","handleEnter","e","handleClickOutside","tooltipNode","clickedNode","Tooltip","active","container","firstIconPosition","secondIconPosition","copied","setCopied","hoveredClose","setHoveredClose","hoveredCopy","setHoveredCopy","copyToClipboard","tooltip","jsxs","jsx","BLACK","createPortal"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AesRecord, AggregationMethod, Color, ColumnName, DataValue, DiscreteSettings, FrameType, InheritAesDiscrete, LegendPosition, LineShape, Orientation, BarLayer as OuterBarLayer, BinnedDotsLayer as OuterBinnedDotsLayer, BoxLayer as OuterBoxLayer, DotLayer as OuterDotLayer, ErrorBarLayer as OuterErrorBarLayer, LineLayer as OuterLineLayer, LogoPlotLayer as OuterLogoPlotLayer, PairedPointsLayer as OuterPairedPointsLayer, SinaLayer as OuterSinaLayer, StackedAreaLayer as OuterStackedAreaLayer, StackedBarLayer as OuterStackedBarLayer, StatLayer as OuterStatLayer, ViolinLayer as OuterViolinLayer, PointShape, PValueCorrectionMethod, SettingsInterface, SignificanceLevels, StatTestMethod, SummaryErrorValue, SummaryGroupValue, TitlePosition } from '../types';
|
|
1
|
+
import { AesRecord, AggregationMethod, Color, ColumnName, DataValue, DiscreteSettings, FrameType, InheritAesDiscrete, LegendPosition, LineShape, Orientation, BarLayer as OuterBarLayer, BinnedDotsLayer as OuterBinnedDotsLayer, BoxLayer as OuterBoxLayer, DotLayer as OuterDotLayer, ErrorBarLayer as OuterErrorBarLayer, LineLayer as OuterLineLayer, LogoPlotLayer as OuterLogoPlotLayer, PairedPointsLayer as OuterPairedPointsLayer, SinaLayer as OuterSinaLayer, StackedAreaLayer as OuterStackedAreaLayer, StackedBarLayer as OuterStackedBarLayer, StatLayer as OuterStatLayer, ViolinLayer as OuterViolinLayer, PointShape, PValueCorrectionMethod, SettingsInterface, SignificanceLevels, StatTestMethod, SummaryErrorValue, SummaryGroupValue, TitlePosition, TooltipSettings } from '../types';
|
|
2
2
|
declare abstract class BaseDiscreteLayer {
|
|
3
3
|
abstract type: string;
|
|
4
4
|
abstract isEqualForCalculation(otherLayer: DiscreteLayer): boolean;
|
|
@@ -274,36 +274,16 @@ export declare class DiscreteSettingsImpl implements SettingsInterface {
|
|
|
274
274
|
position: LegendPosition;
|
|
275
275
|
};
|
|
276
276
|
readonly tooltips: {
|
|
277
|
-
box:
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
show: boolean;
|
|
288
|
-
};
|
|
289
|
-
dot: {
|
|
290
|
-
show: boolean;
|
|
291
|
-
};
|
|
292
|
-
errorBar: {
|
|
293
|
-
show: boolean;
|
|
294
|
-
};
|
|
295
|
-
binnedDots: {
|
|
296
|
-
show: boolean;
|
|
297
|
-
};
|
|
298
|
-
pairedPoints: {
|
|
299
|
-
show: boolean;
|
|
300
|
-
};
|
|
301
|
-
stackedBar: {
|
|
302
|
-
show: boolean;
|
|
303
|
-
};
|
|
304
|
-
logo: {
|
|
305
|
-
show: boolean;
|
|
306
|
-
};
|
|
277
|
+
box: TooltipSettings;
|
|
278
|
+
violin: TooltipSettings;
|
|
279
|
+
boxOutliers: TooltipSettings;
|
|
280
|
+
line: TooltipSettings;
|
|
281
|
+
dot: TooltipSettings;
|
|
282
|
+
errorBar: TooltipSettings;
|
|
283
|
+
binnedDots: TooltipSettings;
|
|
284
|
+
pairedPoints: TooltipSettings;
|
|
285
|
+
stackedBar: TooltipSettings;
|
|
286
|
+
logo: TooltipSettings;
|
|
307
287
|
};
|
|
308
288
|
};
|
|
309
289
|
readonly layers: DiscreteLayer[];
|