@milaboratories/miplots4 1.0.165 → 1.0.167

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/common/Tooltip.d.ts +2 -1
  2. package/dist/common/Tooltip.js +147 -143
  3. package/dist/common/Tooltip.js.map +1 -1
  4. package/dist/discrete/DiscreteSettingsImpl.d.ts +11 -31
  5. package/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
  6. package/dist/discrete/components/Chart.js +143 -143
  7. package/dist/discrete/components/Chart.js.map +1 -1
  8. package/dist/discrete/index.d.ts +2 -0
  9. package/dist/discrete/index.js +127 -123
  10. package/dist/discrete/index.js.map +1 -1
  11. package/dist/discrete/utils/getFacetLabels.d.ts +3 -0
  12. package/dist/discrete/utils/getFacetLabels.js +16 -0
  13. package/dist/discrete/utils/getFacetLabels.js.map +1 -0
  14. package/dist/heatmap/components/tooltipUtils.js +15 -15
  15. package/dist/heatmap/components/tooltipUtils.js.map +1 -1
  16. package/dist/heatmap/fillCellsData.js +88 -85
  17. package/dist/heatmap/fillCellsData.js.map +1 -1
  18. package/dist/histogram/getHistogramData.js +42 -41
  19. package/dist/histogram/getHistogramData.js.map +1 -1
  20. package/dist/histogram/index.d.ts +1 -0
  21. package/dist/histogram/index.js +59 -57
  22. package/dist/histogram/index.js.map +1 -1
  23. package/dist/scatterplot/components/ChartTooltip.js +34 -33
  24. package/dist/scatterplot/components/ChartTooltip.js.map +1 -1
  25. package/dist/scatterplot/components/ChartsGroup.js +31 -31
  26. package/dist/scatterplot/components/ChartsGroup.js.map +1 -1
  27. package/dist/scatterplot/dots.d.ts +2 -2
  28. package/dist/scatterplot/dots.js +9 -9
  29. package/dist/scatterplot/dots.js.map +1 -1
  30. package/dist/scatterplot/index.d.ts +1 -0
  31. package/dist/scatterplot/index.js +61 -59
  32. package/dist/scatterplot/index.js.map +1 -1
  33. package/dist/scatterplot/utils/sortDotsByGrouping.d.ts +2 -1
  34. package/dist/scatterplot/utils/sortDotsByGrouping.js +22 -11
  35. package/dist/scatterplot/utils/sortDotsByGrouping.js.map +1 -1
  36. package/dist/scatterplot-umap/ChartRenderer.d.ts +1 -1
  37. package/dist/scatterplot-umap/ChartRenderer.js +17 -17
  38. package/dist/scatterplot-umap/ChartRenderer.js.map +1 -1
  39. package/dist/scatterplot-umap/components/SVGLayer.js +49 -49
  40. package/dist/scatterplot-umap/components/SVGLayer.js.map +1 -1
  41. package/dist/scatterplot-umap/components/UpperSVG.d.ts +1 -1
  42. package/dist/scatterplot-umap/components/UpperSVG.js +39 -38
  43. package/dist/scatterplot-umap/components/UpperSVG.js.map +1 -1
  44. package/dist/scatterplot-umap/index.js +87 -77
  45. package/dist/scatterplot-umap/index.js.map +1 -1
  46. package/dist/types/bubble.js +32 -37
  47. package/dist/types/bubble.js.map +1 -1
  48. package/dist/types/common.d.ts +41 -0
  49. package/dist/types/common.js +39 -35
  50. package/dist/types/common.js.map +1 -1
  51. package/dist/types/discrete.d.ts +680 -70
  52. package/dist/types/discrete.js +141 -141
  53. package/dist/types/discrete.js.map +1 -1
  54. package/dist/types/heatmap.js +54 -59
  55. package/dist/types/heatmap.js.map +1 -1
  56. package/dist/types/scatterplot-umap.js +19 -24
  57. package/dist/types/scatterplot-umap.js.map +1 -1
  58. package/dist/types/scatterplot.js +41 -46
  59. package/dist/types/scatterplot.js.map +1 -1
  60. package/package.json +1 -1
@@ -1,3 +1,4 @@
1
+ import { TooltipSettings } from '../types';
1
2
  type SideDistances = {
2
3
  left: number;
3
4
  right: number;
@@ -15,7 +16,7 @@ export type TooltipsData<T> = {
15
16
  onMouseLeave: () => void;
16
17
  onClose: () => void;
17
18
  };
18
- export declare function useTooltip<T = unknown>(onTooltipHintSwitchOuterCallback?: (v: boolean) => void): TooltipsData<T>;
19
+ export declare function useTooltip<T = unknown>(onTooltipHintSwitchOuterCallback?: (v: boolean) => void, tooltipSettings?: TooltipSettings): TooltipsData<T>;
19
20
  export declare function Tooltip({ content, x, y, active, fixed, container, sideDistances, onClose, offset, horizontal, }: {
20
21
  content: string[];
21
22
  x: number;
@@ -1,185 +1,189 @@
1
1
  import { j as a } from "../_virtual/jsx-runtime.js";
2
- import { r as i } from "../_virtual/index.js";
3
- import { r as N } from "../_virtual/index2.js";
4
- import { BLACK as z } from "../constants.js";
5
- import { exhaustive as A } from "../utils/index.js";
6
- import { TextMeasurer as W } from "../utils/TextMeasurer/TextMeasurer.js";
7
- const E = 8, S = 12, F = 20, c = 6, u = 5, Z = 8, j = 16, P = 8, w = j * 2 + P + 16, I = "#CFD1DB", O = "#fff", R = "miplots-tooltip";
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 * F + 2 * E;
9
+ return n.length * b + 2 * M;
10
10
  }
11
- function G(n, o = !1) {
12
- const s = new W("600 14px Arial");
13
- return Math.max(...n.map((t, e) => s.getTextWidth(t) + (e === 0 && o ? w : 0))) + 2 * S;
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, o, s) {
16
- const t = -u - n, e = -u, r = -o / 2 + s, l = o / 2 + s;
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 ${e},${-u}
19
- V ${r + c}
20
- Q ${e},${r} ${e - c},${r}
21
- H ${t + c}
22
- Q ${t},${r} ${t},${r + c}
23
- V ${l - c}
24
- Q ${t},${l} ${t + c},${l}
25
- H ${e - c}
26
- Q ${e},${l} ${e},${l - c}
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, o, s) {
31
- const t = u, e = u + n, r = -o / 2 + s, l = o / 2 + s;
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 ${t},${-u}
34
- V ${r + c}
35
- Q ${t},${r} ${t + c},${r}
36
- H ${e - c}
37
- Q ${e},${r} ${e},${r + c}
38
- V ${l - c}
39
- Q ${e},${l} ${e - c},${l}
40
- H ${t + c}
41
- Q ${t},${l} ${t},${l - c}
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, o, s) {
46
- const t = -n / 2 + s, e = n / 2 + s, r = -u - o, l = -u;
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},${l}
49
- H ${t + c}
50
- Q ${t},${l} ${t},${l - c}
51
- V ${r + c}
52
- Q ${t},${r} ${t + c},${r}
53
- H ${e - c}
54
- Q ${e},${r} ${e},${r + c}
55
- V ${l - c}
56
- Q ${e},${l} ${e - c},${l}
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, o, s) {
61
- const t = -n / 2 + s, e = n / 2 + s, r = u + o, l = u;
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},${l}
64
- H ${t + c}
65
- Q ${t},${l} ${t},${l + c}
66
- V ${r - c}
67
- Q ${t},${r} ${t + c},${r}
68
- H ${e - c}
69
- Q ${e},${r} ${e},${r - c}
70
- V ${l + c}
71
- Q ${e},${l} ${e - c},${l}
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, o, s, t, e) {
75
+ function J(n, t, s, e, r) {
76
76
  switch (s) {
77
77
  case "left":
78
- return q(n, o, e);
78
+ return q(n, t, r);
79
79
  case "right":
80
- return D(n, o, e);
80
+ return D(n, t, r);
81
81
  case "top":
82
- return K(n, o, t);
82
+ return K(n, t, e);
83
83
  case "bottom":
84
- return U(n, o, t);
84
+ return U(n, t, e);
85
85
  default:
86
- A(s, "Unknown tooltip direction");
86
+ z(s, "Unknown tooltip direction");
87
87
  }
88
88
  }
89
- function Y(n, o, s, t, e, r, l) {
90
- return l ? r.right - s - e - u > n ? "right" : "left" : r.top + t - e - u > o ? "top" : "bottom";
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, o, s, t, e, r) {
93
- return n === "left" || n === "right" ? `translate(${n === "left" ? -(t + u + o) : t + u},${-s / 2 + r})` : `translate(${-o / 2 + e},${n === "top" ? -(s + t + u) : t + u})`;
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 tt(n, o) {
96
- return n === "left" || n === "right" ? `translate(${n === "left" ? -o : o},0)` : `translate(0,${n === "top" ? -o : o})`;
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 et(n, o, s, t) {
98
+ function te(n, t, s, e) {
99
99
  if (n === "left" || n === "right")
100
100
  return 0;
101
- const e = o.right - s, r = o.left + s;
102
- return e < t / 2 ? e - t / 2 : r < t / 2 ? t / 2 - r : 0;
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 nt(n, o, s, t) {
104
+ function re(n, t, s, e) {
105
105
  if (n === "top" || n === "bottom")
106
106
  return 0;
107
- const e = o.top + s, r = o.bottom - s;
108
- return e < t / 2 ? t / 2 - e : r < t / 2 ? r - t / 2 : 0;
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 at(n = () => {
111
- }) {
112
- const [o, s] = i.useState(null), [t, e] = i.useState(!1), r = i.useRef(!1), l = i.useRef(!1), h = i.useRef("null"), $ = i.useRef(null), T = () => {
113
- s(null), r.current = !1, $.current && (clearTimeout($.current), $.current = null), n(!1);
114
- }, f = () => {
115
- l.current = !1, e(!1), T();
116
- }, L = i.useCallback((m, d) => {
117
- l.current || (s(m), r.current = !0, h.current = d ?? "null", $.current && clearTimeout($.current), $.current = setTimeout(() => {
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
- }, []), p = i.useCallback(() => {
121
- l.current || T();
122
- }, []), g = i.useCallback(f, []);
123
- return i.useEffect(() => {
124
- function m(x) {
125
- r.current && x.key === "Enter" && (l.current = !0, e(!0), $.current && (clearTimeout($.current), $.current = null), n(!1));
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 d(x) {
128
- if (!l.current)
131
+ function x(T) {
132
+ if (!L.current)
129
133
  return;
130
- const v = document.querySelector(`.${R}`), C = x.target;
131
- v && C && v.contains(C) || f();
134
+ const v = document.querySelector(`.${y}`), F = T.target;
135
+ v && F && v.contains(F) || m();
132
136
  }
133
- return document.addEventListener("keydown", m), document.addEventListener("click", d), () => {
134
- document.removeEventListener("keydown", m), document.removeEventListener("click", d);
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: o !== null,
141
+ active: s !== null,
138
142
  currentFacet: h.current,
139
- fixed: t,
140
- selectedData: o,
141
- onMouseEnter: L,
142
- onMouseLeave: p,
143
- onClose: g
143
+ fixed: r,
144
+ selectedData: s,
145
+ onMouseEnter: C,
146
+ onMouseLeave: E,
147
+ onClose: Q
144
148
  };
145
149
  }
146
- function $t({
150
+ function $e({
147
151
  content: n,
148
- x: o,
152
+ x: t,
149
153
  y: s,
150
- active: t,
151
- fixed: e,
152
- container: r,
153
- sideDistances: l,
154
- onClose: h = () => {
154
+ active: e,
155
+ fixed: r,
156
+ container: o,
157
+ sideDistances: c,
158
+ onClose: L = () => {
155
159
  },
156
- offset: $ = Z,
157
- horizontal: T = !0
160
+ offset: h = W,
161
+ horizontal: f = !0
158
162
  }) {
159
- const f = G(n, e), L = B(n), p = Y(f, L, o, s, $, l, T), g = et(p, l, o, f), m = nt(p, l, s, L), d = `translate(${f - j - S},${E})`, x = `translate(${f - j * 2 - P - S},${E})`, [v, C] = i.useState(!1), [_, M] = i.useState(!1), [k, V] = i.useState(!1);
160
- function y() {
161
- var H;
162
- (H = window == null ? void 0 : window.navigator) == null || H.clipboard.writeText(n.join(`
163
- `)), C(!0);
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 (!t || !r && r !== null)
169
+ if (!e || !o && o !== null)
166
170
  return null;
167
- const Q = /* @__PURE__ */ a.jsxs(
171
+ const I = /* @__PURE__ */ a.jsxs(
168
172
  "g",
169
173
  {
170
- className: R,
171
- transform: `translate(${l.left + o},${l.top + s})`,
172
- opacity: t ? 1 : 0,
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: e ? "all" : "none" },
179
+ style: { pointerEvents: r ? "all" : "none" },
176
180
  children: [
177
181
  /* @__PURE__ */ a.jsx(
178
182
  "path",
179
183
  {
180
- transform: tt(p, $),
181
- d: J(f, L, p, g, m),
182
- fill: z
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(p, f, L, $, g, m),
195
+ transform: X(m, i, d, h, C, E),
192
196
  children: [
193
- n.map((H, b) => /* @__PURE__ */ a.jsx(
197
+ n.map((j, O) => /* @__PURE__ */ a.jsx(
194
198
  "text",
195
199
  {
196
- x: S,
197
- y: E + F * b + F / 2,
200
+ x: V,
201
+ y: M + b * O + b / 2,
198
202
  dominantBaseline: "central",
199
- children: H
203
+ children: j
200
204
  },
201
- b
205
+ O
202
206
  )),
203
- e && /* @__PURE__ */ a.jsxs("g", { transform: d, children: [
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: _ ? I : O
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: h,
222
- onMouseOver: () => M(!0),
223
- onMouseLeave: () => M(!1),
225
+ onClick: L,
226
+ onMouseOver: () => v(!0),
227
+ onMouseLeave: () => v(!1),
224
228
  style: { cursor: "pointer" }
225
229
  }
226
230
  )
227
231
  ] }),
228
- e && /* @__PURE__ */ a.jsxs("g", { transform: x, children: [
229
- v ? /* @__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: [
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: k ? I : O
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: y,
248
- onMouseOver: () => V(!0),
249
- onMouseLeave: () => V(!1),
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 r === null ? Q : N.createPortal(
261
- Q,
262
- r
264
+ return o === null ? I : w.createPortal(
265
+ I,
266
+ o
263
267
  );
264
268
  }
265
269
  export {
266
- $t as Tooltip,
270
+ $e as Tooltip,
267
271
  B as getTooltipHeight,
268
272
  G as getTooltipWidth,
269
- at as useTooltip
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
- show: boolean;
279
- };
280
- violin: {
281
- show: boolean;
282
- };
283
- boxOutliers: {
284
- show: boolean;
285
- };
286
- line: {
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[];