@milaboratories/miplots4 1.0.164 → 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/index.d.ts +2 -2
- package/dist/index.js +4 -4
- 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 +4 -3
- package/dist/scatterplot-umap/ChartRenderer.js +169 -164
- package/dist/scatterplot-umap/ChartRenderer.js.map +1 -1
- package/dist/scatterplot-umap/components/Lasso.js +49 -49
- package/dist/scatterplot-umap/components/Lasso.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/constants.d.ts +6 -5
- package/dist/scatterplot-umap/constants.js +12 -11
- package/dist/scatterplot-umap/constants.js.map +1 -1
- package/dist/scatterplot-umap/index.d.ts +1 -0
- package/dist/scatterplot-umap/index.js +103 -83
- 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 +42 -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[];
|