@milaboratories/miplots4 1.0.124 → 1.0.126

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 (58) hide show
  1. package/dist/index.d.ts +3 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +4 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/node_modules/d3-drag/src/constant.js +5 -0
  6. package/dist/node_modules/d3-drag/src/constant.js.map +1 -0
  7. package/dist/node_modules/d3-drag/src/drag.js +122 -0
  8. package/dist/node_modules/d3-drag/src/drag.js.map +1 -0
  9. package/dist/node_modules/d3-drag/src/event.js +34 -0
  10. package/dist/node_modules/d3-drag/src/event.js.map +1 -0
  11. package/dist/node_modules/d3-drag/src/noevent.js +10 -5
  12. package/dist/node_modules/d3-drag/src/noevent.js.map +1 -1
  13. package/dist/scatterplot/index.js +27 -27
  14. package/dist/scatterplot/index.js.map +1 -1
  15. package/dist/scatterplot-umap/ChartRenderer.d.ts +11 -9
  16. package/dist/scatterplot-umap/ChartRenderer.d.ts.map +1 -1
  17. package/dist/scatterplot-umap/ChartRenderer.js +182 -172
  18. package/dist/scatterplot-umap/ChartRenderer.js.map +1 -1
  19. package/dist/scatterplot-umap/SettingsImpl.d.ts +0 -1
  20. package/dist/scatterplot-umap/SettingsImpl.d.ts.map +1 -1
  21. package/dist/scatterplot-umap/SettingsImpl.js +12 -13
  22. package/dist/scatterplot-umap/SettingsImpl.js.map +1 -1
  23. package/dist/scatterplot-umap/components/Lasso.d.ts +6 -4
  24. package/dist/scatterplot-umap/components/Lasso.d.ts.map +1 -1
  25. package/dist/scatterplot-umap/components/Lasso.js +212 -57
  26. package/dist/scatterplot-umap/components/Lasso.js.map +1 -1
  27. package/dist/scatterplot-umap/components/SVGLayer.d.ts +1 -1
  28. package/dist/scatterplot-umap/components/SVGLayer.d.ts.map +1 -1
  29. package/dist/scatterplot-umap/components/SVGLayer.js +49 -46
  30. package/dist/scatterplot-umap/components/SVGLayer.js.map +1 -1
  31. package/dist/scatterplot-umap/components/UpperSVG.d.ts +6 -4
  32. package/dist/scatterplot-umap/components/UpperSVG.d.ts.map +1 -1
  33. package/dist/scatterplot-umap/components/UpperSVG.js +35 -30
  34. package/dist/scatterplot-umap/components/UpperSVG.js.map +1 -1
  35. package/dist/scatterplot-umap/constants.d.ts +6 -0
  36. package/dist/scatterplot-umap/constants.d.ts.map +1 -1
  37. package/dist/scatterplot-umap/constants.js +12 -6
  38. package/dist/scatterplot-umap/constants.js.map +1 -1
  39. package/dist/scatterplot-umap/index.d.ts +3 -2
  40. package/dist/scatterplot-umap/index.d.ts.map +1 -1
  41. package/dist/scatterplot-umap/index.js +90 -72
  42. package/dist/scatterplot-umap/index.js.map +1 -1
  43. package/dist/scatterplot-umap/types.d.ts +14 -2
  44. package/dist/scatterplot-umap/types.d.ts.map +1 -1
  45. package/dist/types/bubble.d.ts +10 -10
  46. package/dist/types/common.d.ts +7 -4
  47. package/dist/types/common.d.ts.map +1 -1
  48. package/dist/types/common.js.map +1 -1
  49. package/dist/types/dendro.d.ts +22 -22
  50. package/dist/types/discrete.d.ts +14 -14
  51. package/dist/types/heatmap.d.ts +50 -50
  52. package/dist/types/histogram.d.ts +12 -12
  53. package/dist/types/scatterplot-umap.d.ts +8 -11
  54. package/dist/types/scatterplot-umap.d.ts.map +1 -1
  55. package/dist/types/scatterplot-umap.js +2 -3
  56. package/dist/types/scatterplot-umap.js.map +1 -1
  57. package/dist/types/scatterplot.d.ts +36 -36
  58. package/package.json +3 -1
package/dist/index.d.ts CHANGED
@@ -2,5 +2,7 @@ import { ChartInterface } from './AbstractChart';
2
2
  import { DataByColumns } from './DataFrame';
3
3
  import { MiPlots } from './MiPlots';
4
4
  import { BubbleSettings, DendroSettings, DiscreteSettings, HeatmapSettings, HistogramSettings, ScatterplotSettings, ScatterplotUmapSettings, Settings } from './types';
5
- export { BubbleSettings, ChartInterface, DataByColumns, DendroSettings, DiscreteSettings, HeatmapSettings, HistogramSettings, MiPlots, ScatterplotSettings, ScatterplotUmapSettings, Settings };
5
+ import { LassoControlsState, Polygon } from './scatterplot-umap/types';
6
+ import { SCATTERPLOT_LASSO_EVENTS } from './scatterplot-umap/constants';
7
+ export { BubbleSettings, ChartInterface, DataByColumns, DendroSettings, DiscreteSettings, HeatmapSettings, HistogramSettings, MiPlots, ScatterplotSettings, ScatterplotUmapSettings, Settings, SCATTERPLOT_LASSO_EVENTS, LassoControlsState, Polygon };
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5K,OAAO,EACH,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAChG,iBAAiB,EAAE,OAAO,EAAE,mBAAmB,EAC/C,uBAAuB,EAAE,QAAQ,EACpC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5K,OAAO,KAAK,EAAC,kBAAkB,EAAE,OAAO,EAAC,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAC,wBAAwB,EAAC,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EACH,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAChG,iBAAiB,EAAE,OAAO,EAAE,mBAAmB,EAC/C,uBAAuB,EAAE,QAAQ,EACjC,wBAAwB,EAAE,kBAAkB,EAAE,OAAO,EACxD,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
- import { MiPlots as t } from "./MiPlots.js";
1
+ import { MiPlots as S } from "./MiPlots.js";
2
+ import { SCATTERPLOT_LASSO_EVENTS as t } from "./scatterplot-umap/constants.js";
2
3
  export {
3
- t as MiPlots
4
+ S as MiPlots,
5
+ t as SCATTERPLOT_LASSO_EVENTS
4
6
  };
5
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,5 @@
1
+ const a = (t) => () => t;
2
+ export {
3
+ a as default
4
+ };
5
+ //# sourceMappingURL=constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constant.js","sources":["../../../../node_modules/d3-drag/src/constant.js"],"sourcesContent":["export default x => () => x;\n"],"names":["constant","x"],"mappings":"AAAA,MAAAA,IAAe,CAAAC,MAAK,MAAMA;","x_google_ignoreList":[0]}
@@ -0,0 +1,122 @@
1
+ import L, { yesdrag as O } from "./nodrag.js";
2
+ import j, { nonpassive as Q, nonpassivecapture as K, nopropagation as D } from "./noevent.js";
3
+ import y from "./constant.js";
4
+ import M from "./event.js";
5
+ import R from "../../d3-dispatch/src/dispatch.js";
6
+ import N from "../../d3-selection/src/select.js";
7
+ import P from "../../d3-selection/src/pointer.js";
8
+ function U(a) {
9
+ return !a.ctrlKey && !a.button;
10
+ }
11
+ function V() {
12
+ return this.parentNode;
13
+ }
14
+ function W(a, s) {
15
+ return s ?? { x: a.x, y: a.y };
16
+ }
17
+ function Z() {
18
+ return navigator.maxTouchPoints || "ontouchstart" in this;
19
+ }
20
+ function et() {
21
+ var a = U, s = V, b = W, w = Z, l = {}, h = R("start", "drag", "end"), d = 0, E, v, m, g, x = 0;
22
+ function u(t) {
23
+ t.on("mousedown.drag", S).filter(w).on("touchstart.drag", B).on("touchmove.drag", G, Q).on("touchend.drag touchcancel.drag", H).style("touch-action", "none").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)");
24
+ }
25
+ function S(t, o) {
26
+ if (!(g || !a.call(this, t, o))) {
27
+ var n = X(this, s.call(this, t, o), t, o, "mouse");
28
+ n && (N(t.view).on("mousemove.drag", z, K).on("mouseup.drag", A, K), L(t.view), D(t), m = !1, E = t.clientX, v = t.clientY, n("start", t));
29
+ }
30
+ }
31
+ function z(t) {
32
+ if (j(t), !m) {
33
+ var o = t.clientX - E, n = t.clientY - v;
34
+ m = o * o + n * n > x;
35
+ }
36
+ l.mouse("drag", t);
37
+ }
38
+ function A(t) {
39
+ N(t.view).on("mousemove.drag mouseup.drag", null), O(t.view, m), j(t), l.mouse("end", t);
40
+ }
41
+ function B(t, o) {
42
+ if (a.call(this, t, o)) {
43
+ var n = t.changedTouches, r = s.call(this, t, o), e = n.length, c, f;
44
+ for (c = 0; c < e; ++c)
45
+ (f = X(this, r, t, o, n[c].identifier, n[c])) && (D(t), f("start", t, n[c]));
46
+ }
47
+ }
48
+ function G(t) {
49
+ var o = t.changedTouches, n = o.length, r, e;
50
+ for (r = 0; r < n; ++r)
51
+ (e = l[o[r].identifier]) && (j(t), e("drag", t, o[r]));
52
+ }
53
+ function H(t) {
54
+ var o = t.changedTouches, n = o.length, r, e;
55
+ for (g && clearTimeout(g), g = setTimeout(function() {
56
+ g = null;
57
+ }, 500), r = 0; r < n; ++r)
58
+ (e = l[o[r].identifier]) && (D(t), e("end", t, o[r]));
59
+ }
60
+ function X(t, o, n, r, e, c) {
61
+ var f = h.copy(), i = P(c || n, o), Y, q, p;
62
+ if ((p = b.call(t, new M("beforestart", {
63
+ sourceEvent: n,
64
+ target: u,
65
+ identifier: e,
66
+ active: d,
67
+ x: i[0],
68
+ y: i[1],
69
+ dx: 0,
70
+ dy: 0,
71
+ dispatch: f
72
+ }), r)) != null)
73
+ return Y = p.x - i[0] || 0, q = p.y - i[1] || 0, function I(T, C, J) {
74
+ var F = i, k;
75
+ switch (T) {
76
+ case "start":
77
+ l[e] = I, k = d++;
78
+ break;
79
+ case "end":
80
+ delete l[e], --d;
81
+ case "drag":
82
+ i = P(J || C, o), k = d;
83
+ break;
84
+ }
85
+ f.call(
86
+ T,
87
+ t,
88
+ new M(T, {
89
+ sourceEvent: C,
90
+ subject: p,
91
+ target: u,
92
+ identifier: e,
93
+ active: k,
94
+ x: i[0] + Y,
95
+ y: i[1] + q,
96
+ dx: i[0] - F[0],
97
+ dy: i[1] - F[1],
98
+ dispatch: f
99
+ }),
100
+ r
101
+ );
102
+ };
103
+ }
104
+ return u.filter = function(t) {
105
+ return arguments.length ? (a = typeof t == "function" ? t : y(!!t), u) : a;
106
+ }, u.container = function(t) {
107
+ return arguments.length ? (s = typeof t == "function" ? t : y(t), u) : s;
108
+ }, u.subject = function(t) {
109
+ return arguments.length ? (b = typeof t == "function" ? t : y(t), u) : b;
110
+ }, u.touchable = function(t) {
111
+ return arguments.length ? (w = typeof t == "function" ? t : y(!!t), u) : w;
112
+ }, u.on = function() {
113
+ var t = h.on.apply(h, arguments);
114
+ return t === h ? u : t;
115
+ }, u.clickDistance = function(t) {
116
+ return arguments.length ? (x = (t = +t) * t, u) : Math.sqrt(x);
117
+ }, u;
118
+ }
119
+ export {
120
+ et as default
121
+ };
122
+ //# sourceMappingURL=drag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drag.js","sources":["../../../../node_modules/d3-drag/src/drag.js"],"sourcesContent":["import {dispatch} from \"d3-dispatch\";\nimport {select, pointer} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nonpassive, nonpassivecapture, nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(event, d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved, nonpassive)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned(event, d) {\n if (touchending || !filter.call(this, event, d)) return;\n var gesture = beforestart(this, container.call(this, event, d), event, d, \"mouse\");\n if (!gesture) return;\n select(event.view)\n .on(\"mousemove.drag\", mousemoved, nonpassivecapture)\n .on(\"mouseup.drag\", mouseupped, nonpassivecapture);\n nodrag(event.view);\n nopropagation(event);\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\", event);\n }\n\n function mousemoved(event) {\n noevent(event);\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\", event);\n }\n\n function mouseupped(event) {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent(event);\n gestures.mouse(\"end\", event);\n }\n\n function touchstarted(event, d) {\n if (!filter.call(this, event, d)) return;\n var touches = event.changedTouches,\n c = container.call(this, event, d),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {\n nopropagation(event);\n gesture(\"start\", event, touches[i]);\n }\n }\n }\n\n function touchmoved(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent(event);\n gesture(\"drag\", event, touches[i]);\n }\n }\n }\n\n function touchended(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation(event);\n gesture(\"end\", event, touches[i]);\n }\n }\n }\n\n function beforestart(that, container, event, d, identifier, touch) {\n var dispatch = listeners.copy(),\n p = pointer(touch || event, container), dx, dy,\n s;\n\n if ((s = subject.call(that, new DragEvent(\"beforestart\", {\n sourceEvent: event,\n target: drag,\n identifier,\n active,\n x: p[0],\n y: p[1],\n dx: 0,\n dy: 0,\n dispatch\n }), d)) == null) return;\n\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n\n return function gesture(type, event, touch) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[identifier] = gesture, n = active++; break;\n case \"end\": delete gestures[identifier], --active; // falls through\n case \"drag\": p = pointer(touch || event, container), n = active; break;\n }\n dispatch.call(\n type,\n that,\n new DragEvent(type, {\n sourceEvent: event,\n subject: s,\n target: drag,\n identifier,\n active: n,\n x: p[0] + dx,\n y: p[1] + dy,\n dx: p[0] - p0[0],\n dy: p[1] - p0[1],\n dispatch\n }),\n d\n );\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n"],"names":["defaultFilter","event","defaultContainer","defaultSubject","d","defaultTouchable","drag","filter","container","subject","touchable","gestures","listeners","dispatch","active","mousedownx","mousedowny","mousemoving","touchending","clickDistance2","selection","mousedowned","touchstarted","touchmoved","nonpassive","touchended","gesture","beforestart","select","mousemoved","nonpassivecapture","mouseupped","nodrag","nopropagation","noevent","dx","dy","yesdrag","touches","c","n","i","that","identifier","touch","p","pointer","s","DragEvent","type","p0","_","constant","value"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,34 @@
1
+ function v(e, {
2
+ sourceEvent: u,
3
+ subject: r,
4
+ target: t,
5
+ identifier: a,
6
+ active: l,
7
+ x: n,
8
+ y: i,
9
+ dx: b,
10
+ dy: o,
11
+ dispatch: c
12
+ }) {
13
+ Object.defineProperties(this, {
14
+ type: { value: e, enumerable: !0, configurable: !0 },
15
+ sourceEvent: { value: u, enumerable: !0, configurable: !0 },
16
+ subject: { value: r, enumerable: !0, configurable: !0 },
17
+ target: { value: t, enumerable: !0, configurable: !0 },
18
+ identifier: { value: a, enumerable: !0, configurable: !0 },
19
+ active: { value: l, enumerable: !0, configurable: !0 },
20
+ x: { value: n, enumerable: !0, configurable: !0 },
21
+ y: { value: i, enumerable: !0, configurable: !0 },
22
+ dx: { value: b, enumerable: !0, configurable: !0 },
23
+ dy: { value: o, enumerable: !0, configurable: !0 },
24
+ _: { value: c }
25
+ });
26
+ }
27
+ v.prototype.on = function() {
28
+ var e = this._.on.apply(this._, arguments);
29
+ return e === this._ ? this : e;
30
+ };
31
+ export {
32
+ v as default
33
+ };
34
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sources":["../../../../node_modules/d3-drag/src/event.js"],"sourcesContent":["export default function DragEvent(type, {\n sourceEvent,\n subject,\n target,\n identifier,\n active,\n x, y, dx, dy,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n subject: {value: subject, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n identifier: {value: identifier, enumerable: true, configurable: true},\n active: {value: active, enumerable: true, configurable: true},\n x: {value: x, enumerable: true, configurable: true},\n y: {value: y, enumerable: true, configurable: true},\n dx: {value: dx, enumerable: true, configurable: true},\n dy: {value: dy, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n"],"names":["DragEvent","type","sourceEvent","subject","target","identifier","active","x","y","dx","dy","dispatch","value"],"mappings":"AAAe,SAASA,EAAUC,GAAM;AAAA,EACtC,aAAAC;AAAA,EACA,SAAAC;AAAA,EACA,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,QAAAC;AAAA,EACA,GAAAC;AAAA,EAAG,GAAAC;AAAA,EAAG,IAAAC;AAAA,EAAI,IAAAC;AAAA,EACV,UAAAC;AACF,GAAG;AACD,SAAO,iBAAiB,MAAM;AAAA,IAC5B,MAAM,EAAC,OAAOV,GAAM,YAAY,IAAM,cAAc,GAAI;AAAA,IACxD,aAAa,EAAC,OAAOC,GAAa,YAAY,IAAM,cAAc,GAAI;AAAA,IACtE,SAAS,EAAC,OAAOC,GAAS,YAAY,IAAM,cAAc,GAAI;AAAA,IAC9D,QAAQ,EAAC,OAAOC,GAAQ,YAAY,IAAM,cAAc,GAAI;AAAA,IAC5D,YAAY,EAAC,OAAOC,GAAY,YAAY,IAAM,cAAc,GAAI;AAAA,IACpE,QAAQ,EAAC,OAAOC,GAAQ,YAAY,IAAM,cAAc,GAAI;AAAA,IAC5D,GAAG,EAAC,OAAOC,GAAG,YAAY,IAAM,cAAc,GAAI;AAAA,IAClD,GAAG,EAAC,OAAOC,GAAG,YAAY,IAAM,cAAc,GAAI;AAAA,IAClD,IAAI,EAAC,OAAOC,GAAI,YAAY,IAAM,cAAc,GAAI;AAAA,IACpD,IAAI,EAAC,OAAOC,GAAI,YAAY,IAAM,cAAc,GAAI;AAAA,IACpD,GAAG,EAAC,OAAOC,EAAQ;AAAA,EACvB,CAAG;AACH;AAEAX,EAAU,UAAU,KAAK,WAAW;AAClC,MAAIY,IAAQ,KAAK,EAAE,GAAG,MAAM,KAAK,GAAG,SAAS;AAC7C,SAAOA,MAAU,KAAK,IAAI,OAAOA;AACnC;","x_google_ignoreList":[0]}
@@ -1,9 +1,14 @@
1
- const t = { capture: !0, passive: !1 };
2
- function a(e) {
3
- e.preventDefault(), e.stopImmediatePropagation();
1
+ const e = { passive: !1 }, t = { capture: !0, passive: !1 };
2
+ function o(a) {
3
+ a.stopImmediatePropagation();
4
+ }
5
+ function n(a) {
6
+ a.preventDefault(), a.stopImmediatePropagation();
4
7
  }
5
8
  export {
6
- a as default,
7
- t as nonpassivecapture
9
+ n as default,
10
+ e as nonpassive,
11
+ t as nonpassivecapture,
12
+ o as nopropagation
8
13
  };
9
14
  //# sourceMappingURL=noevent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"noevent.js","sources":["../../../../node_modules/d3-drag/src/noevent.js"],"sourcesContent":["// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n"],"names":["nonpassivecapture","noevent","event"],"mappings":"AAGY,MAACA,IAAoB,EAAC,SAAS,IAAM,SAAS,GAAK;AAMhD,SAAAC,EAASC,GAAO;AAC7B,EAAAA,EAAM,eAAc,GACpBA,EAAM,yBAAwB;AAChC;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"noevent.js","sources":["../../../../node_modules/d3-drag/src/noevent.js"],"sourcesContent":["// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n"],"names":["nonpassive","nonpassivecapture","nopropagation","event","noevent"],"mappings":"AAEY,MAACA,IAAa,EAAC,SAAS,GAAK,GAC5BC,IAAoB,EAAC,SAAS,IAAM,SAAS,GAAK;AAExD,SAASC,EAAcC,GAAO;AACnC,EAAAA,EAAM,yBAAwB;AAChC;AAEe,SAAAC,EAASD,GAAO;AAC7B,EAAAA,EAAM,eAAc,GACpBA,EAAM,yBAAwB;AAChC;","x_google_ignoreList":[0]}
@@ -1,27 +1,27 @@
1
- var L = Object.defineProperty;
2
- var S = (l, i, t) => i in l ? L(l, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : l[i] = t;
3
- var y = (l, i, t) => S(l, typeof i != "symbol" ? i + "" : i, t);
1
+ var S = Object.defineProperty;
2
+ var L = (i, l, t) => l in i ? S(i, l, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[l] = t;
3
+ var y = (i, l, t) => L(i, typeof l != "symbol" ? l + "" : l, t);
4
4
  import { AbstractChart as j } from "../AbstractChart.js";
5
5
  import { getDots as x } from "./dots.js";
6
- import { getLayersData as k } from "./getLayersData.js";
7
- import { createLegendInfo as O, addPalettesToAesMapping as T } from "./utils/createLegendInfo.js";
6
+ import { getLayersData as T } from "./getLayersData.js";
7
+ import { createLegendInfo as k, addPalettesToAesMapping as O } from "./utils/createLegendInfo.js";
8
8
  import { renderToString as G } from "../node_modules/react-dom/server.browser.js";
9
9
  import I from "./ChartRenderer.js";
10
10
  import { ScatterplotSettingsImpl as _ } from "./ScatterplotSettingsImpl.js";
11
11
  import { getRegressionData as P } from "./linearRegression.js";
12
- function E(l) {
13
- if (!l.length)
12
+ function E(i) {
13
+ if (!i.length)
14
14
  return [];
15
- let i = [[]];
16
- return l.forEach((t) => {
15
+ let l = [[]];
16
+ return i.forEach((t) => {
17
17
  const e = [];
18
18
  t.forEach((a) => {
19
- e.push(...i.map((s) => [...s, a]));
20
- }), i = e;
21
- }), i;
19
+ e.push(...l.map((s) => [...s, a]));
20
+ }), l = e;
21
+ }), l;
22
22
  }
23
- function U(l) {
24
- return typeof l == "object" && "type" in l && l.type === "grouping";
23
+ function U(i) {
24
+ return typeof i == "object" && "type" in i && i.type === "grouping";
25
25
  }
26
26
  class W extends j {
27
27
  constructor(t, e, a) {
@@ -31,7 +31,7 @@ class W extends j {
31
31
  y(this, "onTooltipHintSwitch", () => {
32
32
  });
33
33
  y(this, "calculatedData", null);
34
- this.settings = new _(e), a && (this.onTooltipHintSwitch = a[1]);
34
+ this.settings = new _(e), a && (this.onTooltipHintSwitch = a.onTooltipHintSwitch);
35
35
  }
36
36
  mount(t) {
37
37
  try {
@@ -75,20 +75,20 @@ class W extends j {
75
75
  });
76
76
  }
77
77
  _updateData() {
78
- const { x: t, y: e, facetBy: a, grouping: s, keyColumn: c, trend: d, layers: o, inheritedAes: n, label: r, highlight: f } = this.settings, m = this.data.getColumnCategories(c.value), g = a.map((u) => this.data.getColumnCategories(u.value)), h = s.map((u) => this.data.getColumnCategories(u.value)), C = g.length ? E([...g]) : [["null"]], v = h.length ? E([...h]) : [["null"]], B = a.map((u) => u.value) ?? null;
79
- this.data.setGrouping([...B, c.value]);
80
- const w = {
81
- x: this.data.rows.every((u) => {
82
- const p = u[t.value];
78
+ const { x: t, y: e, facetBy: a, grouping: s, keyColumn: c, trend: d, layers: o, inheritedAes: n, label: r, highlight: f } = this.settings, m = this.data.getColumnCategories(c.value), g = a.map((h) => this.data.getColumnCategories(h.value)), u = s.map((h) => this.data.getColumnCategories(h.value)), C = g.length ? E([...g]) : [["null"]], v = u.length ? E([...u]) : [["null"]], w = a.map((h) => h.value) ?? null;
79
+ this.data.setGrouping([...w, c.value]);
80
+ const B = {
81
+ x: this.data.rows.every((h) => {
82
+ const p = h[t.value];
83
83
  return p === null || !(Number(p) < 0);
84
84
  }),
85
- y: this.data.rows.every((u) => {
86
- const p = u[e.value];
85
+ y: this.data.rows.every((h) => {
86
+ const p = h[e.value];
87
87
  return p === null || !(Number(p) < 0);
88
88
  })
89
- }, D = x(this.data, C, t, e, r, f, m), b = Object.keys(D), A = P(D, b, v, s, d), K = O(this.data, s, o, n), R = k(o, b, D, v, s);
89
+ }, D = x(this.data, C, t, e, r, f, m), b = Object.keys(D), A = P(D, b, v, s, d), K = k(this.data, s, o, n), R = T(o, b, D, v, s);
90
90
  this.calculatedData = {
91
- onlyPositive: w,
91
+ onlyPositive: B,
92
92
  dotsByFacets: D,
93
93
  facetKeys: b,
94
94
  facetKeysCombinations: C,
@@ -108,10 +108,10 @@ class W extends j {
108
108
  }), e.forEach((n) => {
109
109
  const r = /* @__PURE__ */ new Set(), f = {};
110
110
  s.forEach((m) => {
111
- m.aes && Object.entries(m.aes).forEach(([g, h]) => {
112
- U(h) && h.value === n.value && (r.add(g), h.palette && (f[g] = h.palette));
111
+ m.aes && Object.entries(m.aes).forEach(([g, u]) => {
112
+ U(u) && u.value === n.value && (r.add(g), u.palette && (f[g] = u.palette));
113
113
  });
114
- }), t.legendLabels[n.value].usedAes = [...r], t.legendLabels[n.value].aesMap = T(t.legendLabels[n.value].values, f, c[n.value]);
114
+ }), t.legendLabels[n.value].usedAes = [...r], t.legendLabels[n.value].aesMap = O(t.legendLabels[n.value].values, f, c[n.value]);
115
115
  }), o && a && Object.keys(o).forEach((n) => {
116
116
  o[n].forEach((r) => {
117
117
  r.color = a.color, r.bounded = a.bounded;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/scatterplot/index.ts"],"sourcesContent":["import {AbstractChart} from '../AbstractChart';\nimport type {GroupedDots} from './dots';\nimport {getDots} from './dots';\nimport type {ScatterplotLayerData} from './getLayersData';\nimport {getLayersData} from './getLayersData';\nimport {addPalettesToAesMapping, createLegendInfo} from './utils/createLegendInfo';\nimport type {\n AesItem,\n ContinuousAesFromColumn,\n InheritAesScatterplot,\n ScatterplotEventHandlers,\n ScatterplotLegendInfo,\n} from '../types';\nimport {renderToString} from 'react-dom/server';\nimport ChartRenderer from './ChartRenderer';\nimport type {ScatterplotSettings} from '../types';\nimport {ScatterplotSettingsImpl} from './ScatterplotSettingsImpl';\nimport type {DataFrame} from '../DataFrame';\nimport type {TrendsData} from './linearRegression';\nimport {getRegressionData} from './linearRegression';\n\n// all combinations with 1 key from each list\nfunction getKeysCombinations(keysLists: string[][]) {\n if (!keysLists.length) {\n return [];\n }\n let result: string[][] = [[]];\n keysLists.forEach(keys => {\n const nextResult: string[][] = [];\n keys.forEach(key => {\n nextResult.push(...result.map(resultItem => [...resultItem, key]));\n });\n result = nextResult;\n });\n return result;\n}\n\nfunction isInheritMapping<T extends (string | number)>(value:T | InheritAesScatterplot | ContinuousAesFromColumn<T>):value is InheritAesScatterplot {\n return typeof value === 'object' && 'type' in value && value.type === 'grouping';\n}\n\nexport class ChartScatterplot extends AbstractChart {\n settings: ScatterplotSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n calculatedData: {\n onlyPositive: {x: boolean; y: boolean};\n dotsByFacets: GroupedDots;\n facetKeys: string[];\n facetKeysCombinations: string[][];\n trendsData: TrendsData | null;\n legendLabels: ScatterplotLegendInfo;\n layersData: Record<string, ScatterplotLayerData[]>;\n } | null = null;\n\n constructor(data: DataFrame, settings: ScatterplotSettings, eventHandlers?:ScatterplotEventHandlers) {\n super(data, settings);\n\n this.settings = new ScatterplotSettingsImpl(settings);\n if (eventHandlers) {\n this.onTooltipHintSwitch = eventHandlers[1];\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this._updateChart();\n } catch (err) {\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: ScatterplotSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new ScatterplotSettingsImpl(settings);\n this.data = data;\n if (\n this._needUpdateCalculatedDataBySettings(previousSettings, this.settings) ||\n this._needUpdateCalculatedDataByData(previousData, this.data)\n ) {\n this._updateData();\n } else {\n this._updateAesInData();\n }\n this._updateChart();\n } catch (err) {\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n }\n }\n }\n\n updateChartState(_field: string, _value: unknown) {\n console.warn('no chart state for scatterplot');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: ScatterplotSettingsImpl, settings: ScatterplotSettingsImpl) {\n return (\n prevSettings.facetBy.some((el, idx) => el.value !== settings.facetBy[idx]?.value) ||\n prevSettings.grouping.length !== settings.grouping.length ||\n prevSettings.grouping.some((el, idx) => el.value !== settings.grouping[idx]?.value) ||\n (prevSettings.label?.value || settings.label?.value) && prevSettings.label?.value !== settings.label?.value ||\n prevSettings.layers.length !== settings.layers.length ||\n prevSettings.layers.some((l, idx) => l.type !== settings.layers[idx].type) ||\n Boolean(prevSettings.trend) !== Boolean(settings.trend)\n );\n }\n\n _needUpdateCalculatedDataByData(prevData: DataFrame, data: DataFrame) {\n const prevKeys = Object.keys(prevData.data);\n const keys = Object.keys(data.data);\n return (\n prevData.id !== data.id ||\n prevKeys.length !== keys.length ||\n prevKeys.some(key => prevData.data[key].length !== data.data[key]?.length)\n );\n }\n\n _updateData() {\n const {x, y, facetBy, grouping, keyColumn, trend, layers, inheritedAes, label, highlight} = this.settings;\n const keys = this.data.getColumnCategories(keyColumn.value);\n\n const facetKeysLists = facetBy.map(column => this.data.getColumnCategories(column.value));\n const categoryGroupingKeysKeysLists = grouping.map(column => this.data.getColumnCategories(column.value));\n\n const facetKeysCombinations = facetKeysLists.length ? getKeysCombinations([...facetKeysLists]) : [['null']];\n const categoryGroupingCombinations = categoryGroupingKeysKeysLists.length\n ? getKeysCombinations([...categoryGroupingKeysKeysLists])\n : [['null']];\n\n const facetGroupingValues = facetBy.map(column => column.value) ?? null;\n\n this.data.setGrouping([...facetGroupingValues, keyColumn.value]);\n const onlyPositive = {\n x: this.data.rows.every(row => {\n const v = row[x.value];\n return v === null || !(Number(v) < 0);\n }),\n y: this.data.rows.every(row => {\n const v = row[y.value];\n return v === null || !(Number(v) < 0);\n }),\n };\n // console.info('only positive Y:', onlyPositive.y);\n // console.info('only positive X:', onlyPositive.x);\n\n const dotsByFacets = getDots(this.data, facetKeysCombinations, x, y, label, highlight, keys);\n const facetKeys = Object.keys(dotsByFacets);\n const trendsData = getRegressionData(dotsByFacets, facetKeys, categoryGroupingCombinations, grouping, trend);\n\n const legendLabels = createLegendInfo(this.data, grouping, layers, inheritedAes);\n const layersData = getLayersData(layers, facetKeys, dotsByFacets, categoryGroupingCombinations, grouping);\n\n this.calculatedData = {\n onlyPositive,\n dotsByFacets,\n facetKeys,\n facetKeysCombinations,\n trendsData,\n legendLabels,\n layersData,\n };\n }\n\n _updateAesInData() {\n const calculated = this.calculatedData;\n if (!calculated) {\n return;\n }\n const {grouping, trend, layers, inheritedAes} = this.settings;\n const {facetKeys, trendsData} = calculated;\n\n facetKeys.forEach(facetKey => {\n for (let i = 0; i < layers.length; i++) {\n calculated.layersData[facetKey][i].info = layers[i];\n }\n });\n\n grouping.forEach(column => {\n const usedAes = new Set<keyof AesItem>();\n const usedAesFromPalettes:Partial<Record<keyof AesItem, string[]>> = {}; // if there is palette in mapping then\n layers.forEach(layer => {\n if (layer.aes) {\n Object.entries(layer.aes).forEach(([key, value]) => {\n if (isInheritMapping(value) && value.value === column.value) {\n usedAes.add(key as keyof AesItem);\n if (value.palette) {\n usedAesFromPalettes[key as keyof AesItem] = value.palette;\n }\n }\n });\n }\n });\n calculated.legendLabels[column.value].usedAes = [...usedAes];\n calculated.legendLabels[column.value].aesMap = addPalettesToAesMapping(calculated.legendLabels[column.value].values, usedAesFromPalettes, inheritedAes[column.value]);\n });\n if (trendsData && trend) {\n Object.keys(trendsData).forEach((key) => {\n trendsData[key].forEach(trendInfo => {\n trendInfo.color = trend.color;\n trendInfo.bounded = trend.bounded;\n });\n });\n }\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {id, chartSettings, facetSettings, grouping, keyColumn, layers, trend} = this.settings;\n this.chartRenderer.render(\n id,\n chartSettings,\n facetSettings,\n this.calculatedData.facetKeys,\n this.calculatedData.facetKeysCombinations, //for titles, if facet by more than 1 column\n this.calculatedData.dotsByFacets,\n this.calculatedData.trendsData,\n keyColumn,\n this.calculatedData.onlyPositive,\n this.calculatedData.legendLabels,\n this.calculatedData.layersData,\n grouping,\n layers,\n trend,\n this.onTooltipHintSwitch\n );\n }\n}\n"],"names":["getKeysCombinations","keysLists","result","keys","nextResult","key","resultItem","isInheritMapping","value","ChartScatterplot","AbstractChart","data","settings","eventHandlers","__publicField","ChartRenderer","ScatterplotSettingsImpl","node","err","previousSettings","previousData","_field","_value","renderToString","prevSettings","el","idx","_a","_b","_c","_d","l","prevData","prevKeys","x","y","facetBy","grouping","keyColumn","trend","layers","inheritedAes","label","highlight","facetKeysLists","column","categoryGroupingKeysKeysLists","facetKeysCombinations","categoryGroupingCombinations","facetGroupingValues","onlyPositive","row","v","dotsByFacets","getDots","facetKeys","trendsData","getRegressionData","legendLabels","createLegendInfo","layersData","getLayersData","calculated","facetKey","i","usedAes","usedAesFromPalettes","layer","addPalettesToAesMapping","trendInfo","id","chartSettings","facetSettings"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/scatterplot/index.ts"],"sourcesContent":["import {AbstractChart} from '../AbstractChart';\nimport type {GroupedDots} from './dots';\nimport {getDots} from './dots';\nimport type {ScatterplotLayerData} from './getLayersData';\nimport {getLayersData} from './getLayersData';\nimport {addPalettesToAesMapping, createLegendInfo} from './utils/createLegendInfo';\nimport type {\n AesItem,\n ContinuousAesFromColumn,\n InheritAesScatterplot,\n ScatterplotEventHandlers,\n ScatterplotLegendInfo,\n} from '../types';\nimport {renderToString} from 'react-dom/server';\nimport ChartRenderer from './ChartRenderer';\nimport type {ScatterplotSettings} from '../types';\nimport {ScatterplotSettingsImpl} from './ScatterplotSettingsImpl';\nimport type {DataFrame} from '../DataFrame';\nimport type {TrendsData} from './linearRegression';\nimport {getRegressionData} from './linearRegression';\n\n// all combinations with 1 key from each list\nfunction getKeysCombinations(keysLists: string[][]) {\n if (!keysLists.length) {\n return [];\n }\n let result: string[][] = [[]];\n keysLists.forEach(keys => {\n const nextResult: string[][] = [];\n keys.forEach(key => {\n nextResult.push(...result.map(resultItem => [...resultItem, key]));\n });\n result = nextResult;\n });\n return result;\n}\n\nfunction isInheritMapping<T extends (string | number)>(value:T | InheritAesScatterplot | ContinuousAesFromColumn<T>):value is InheritAesScatterplot {\n return typeof value === 'object' && 'type' in value && value.type === 'grouping';\n}\n\nexport class ChartScatterplot extends AbstractChart {\n settings: ScatterplotSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n calculatedData: {\n onlyPositive: {x: boolean; y: boolean};\n dotsByFacets: GroupedDots;\n facetKeys: string[];\n facetKeysCombinations: string[][];\n trendsData: TrendsData | null;\n legendLabels: ScatterplotLegendInfo;\n layersData: Record<string, ScatterplotLayerData[]>;\n } | null = null;\n\n constructor(data: DataFrame, settings: ScatterplotSettings, eventHandlers?:ScatterplotEventHandlers) {\n super(data, settings);\n\n this.settings = new ScatterplotSettingsImpl(settings);\n if (eventHandlers) {\n this.onTooltipHintSwitch = eventHandlers.onTooltipHintSwitch;\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this._updateChart();\n } catch (err) {\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: ScatterplotSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new ScatterplotSettingsImpl(settings);\n this.data = data;\n if (\n this._needUpdateCalculatedDataBySettings(previousSettings, this.settings) ||\n this._needUpdateCalculatedDataByData(previousData, this.data)\n ) {\n this._updateData();\n } else {\n this._updateAesInData();\n }\n this._updateChart();\n } catch (err) {\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n }\n }\n }\n\n updateChartState(_field: string, _value: unknown) {\n console.warn('no chart state for scatterplot');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: ScatterplotSettingsImpl, settings: ScatterplotSettingsImpl) {\n return (\n prevSettings.facetBy.some((el, idx) => el.value !== settings.facetBy[idx]?.value) ||\n prevSettings.grouping.length !== settings.grouping.length ||\n prevSettings.grouping.some((el, idx) => el.value !== settings.grouping[idx]?.value) ||\n (prevSettings.label?.value || settings.label?.value) && prevSettings.label?.value !== settings.label?.value ||\n prevSettings.layers.length !== settings.layers.length ||\n prevSettings.layers.some((l, idx) => l.type !== settings.layers[idx].type) ||\n Boolean(prevSettings.trend) !== Boolean(settings.trend)\n );\n }\n\n _needUpdateCalculatedDataByData(prevData: DataFrame, data: DataFrame) {\n const prevKeys = Object.keys(prevData.data);\n const keys = Object.keys(data.data);\n return (\n prevData.id !== data.id ||\n prevKeys.length !== keys.length ||\n prevKeys.some(key => prevData.data[key].length !== data.data[key]?.length)\n );\n }\n\n _updateData() {\n const {x, y, facetBy, grouping, keyColumn, trend, layers, inheritedAes, label, highlight} = this.settings;\n const keys = this.data.getColumnCategories(keyColumn.value);\n\n const facetKeysLists = facetBy.map(column => this.data.getColumnCategories(column.value));\n const categoryGroupingKeysKeysLists = grouping.map(column => this.data.getColumnCategories(column.value));\n\n const facetKeysCombinations = facetKeysLists.length ? getKeysCombinations([...facetKeysLists]) : [['null']];\n const categoryGroupingCombinations = categoryGroupingKeysKeysLists.length\n ? getKeysCombinations([...categoryGroupingKeysKeysLists])\n : [['null']];\n\n const facetGroupingValues = facetBy.map(column => column.value) ?? null;\n\n this.data.setGrouping([...facetGroupingValues, keyColumn.value]);\n const onlyPositive = {\n x: this.data.rows.every(row => {\n const v = row[x.value];\n return v === null || !(Number(v) < 0);\n }),\n y: this.data.rows.every(row => {\n const v = row[y.value];\n return v === null || !(Number(v) < 0);\n }),\n };\n // console.info('only positive Y:', onlyPositive.y);\n // console.info('only positive X:', onlyPositive.x);\n\n const dotsByFacets = getDots(this.data, facetKeysCombinations, x, y, label, highlight, keys);\n const facetKeys = Object.keys(dotsByFacets);\n const trendsData = getRegressionData(dotsByFacets, facetKeys, categoryGroupingCombinations, grouping, trend);\n\n const legendLabels = createLegendInfo(this.data, grouping, layers, inheritedAes);\n const layersData = getLayersData(layers, facetKeys, dotsByFacets, categoryGroupingCombinations, grouping);\n\n this.calculatedData = {\n onlyPositive,\n dotsByFacets,\n facetKeys,\n facetKeysCombinations,\n trendsData,\n legendLabels,\n layersData,\n };\n }\n\n _updateAesInData() {\n const calculated = this.calculatedData;\n if (!calculated) {\n return;\n }\n const {grouping, trend, layers, inheritedAes} = this.settings;\n const {facetKeys, trendsData} = calculated;\n\n facetKeys.forEach(facetKey => {\n for (let i = 0; i < layers.length; i++) {\n calculated.layersData[facetKey][i].info = layers[i];\n }\n });\n\n grouping.forEach(column => {\n const usedAes = new Set<keyof AesItem>();\n const usedAesFromPalettes:Partial<Record<keyof AesItem, string[]>> = {}; // if there is palette in mapping then\n layers.forEach(layer => {\n if (layer.aes) {\n Object.entries(layer.aes).forEach(([key, value]) => {\n if (isInheritMapping(value) && value.value === column.value) {\n usedAes.add(key as keyof AesItem);\n if (value.palette) {\n usedAesFromPalettes[key as keyof AesItem] = value.palette;\n }\n }\n });\n }\n });\n calculated.legendLabels[column.value].usedAes = [...usedAes];\n calculated.legendLabels[column.value].aesMap = addPalettesToAesMapping(calculated.legendLabels[column.value].values, usedAesFromPalettes, inheritedAes[column.value]);\n });\n if (trendsData && trend) {\n Object.keys(trendsData).forEach((key) => {\n trendsData[key].forEach(trendInfo => {\n trendInfo.color = trend.color;\n trendInfo.bounded = trend.bounded;\n });\n });\n }\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {id, chartSettings, facetSettings, grouping, keyColumn, layers, trend} = this.settings;\n this.chartRenderer.render(\n id,\n chartSettings,\n facetSettings,\n this.calculatedData.facetKeys,\n this.calculatedData.facetKeysCombinations, //for titles, if facet by more than 1 column\n this.calculatedData.dotsByFacets,\n this.calculatedData.trendsData,\n keyColumn,\n this.calculatedData.onlyPositive,\n this.calculatedData.legendLabels,\n this.calculatedData.layersData,\n grouping,\n layers,\n trend,\n this.onTooltipHintSwitch\n );\n }\n}\n"],"names":["getKeysCombinations","keysLists","result","keys","nextResult","key","resultItem","isInheritMapping","value","ChartScatterplot","AbstractChart","data","settings","eventHandlers","__publicField","ChartRenderer","ScatterplotSettingsImpl","node","err","previousSettings","previousData","_field","_value","renderToString","prevSettings","el","idx","_a","_b","_c","_d","l","prevData","prevKeys","x","y","facetBy","grouping","keyColumn","trend","layers","inheritedAes","label","highlight","facetKeysLists","column","categoryGroupingKeysKeysLists","facetKeysCombinations","categoryGroupingCombinations","facetGroupingValues","onlyPositive","row","v","dotsByFacets","getDots","facetKeys","trendsData","getRegressionData","legendLabels","createLegendInfo","layersData","getLayersData","calculated","facetKey","i","usedAes","usedAesFromPalettes","layer","addPalettesToAesMapping","trendInfo","id","chartSettings","facetSettings"],"mappings":"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"}
@@ -1,14 +1,14 @@
1
- import { AesGetters, CaptionsSizes, Dot, DotsExtents, Point, SVGLayerProps, ChartScales, ChartSizes, Margins } from './types';
1
+ import { AesGetters, CaptionsSizes, Dot, DotsExtents, LassoControlsState, Polygon, SVGLayerProps, ChartScales, ChartSizes, Margins } from './types';
2
2
  import { LegendData } from '../common/types';
3
3
  import { ScatterplotUmapLayer, ScatterplotUmapSettingsImpl } from './SettingsImpl';
4
4
  import { Label } from '../scatterplot/utils/getVisibleLabels';
5
- import { ColumnName } from '../types';
5
+ import { ColumnName, ScatterplotEventHandlers } from '../types';
6
6
  import { ScatterplotUmapLegendInfo } from '../types/scatterplot-umap';
7
7
  import { CartesianChart } from '@d3fc/d3fc-chart/src/cartesian';
8
8
  import { Quadtree } from 'd3-quadtree';
9
9
  import { ReactElement } from 'react';
10
10
  import { Root } from 'react-dom/client';
11
- import { ZoomBehavior } from 'd3-zoom';
11
+ import { ZoomBehavior, ZoomTransform } from 'd3-zoom';
12
12
  declare class ChartRenderer {
13
13
  reactRoot: Root | null;
14
14
  parentNode: HTMLElement | null;
@@ -30,9 +30,11 @@ declare class ChartRenderer {
30
30
  margins: Margins;
31
31
  chartSizes: ChartSizes;
32
32
  scales: ChartScales;
33
- polygon: Point[];
34
- onPolygonUpdateOutside: (data: number[]) => void;
35
- onTooltipHintSwitch: (v: boolean) => void;
33
+ polygons: Polygon[];
34
+ onPolygonUpdateOutside: ScatterplotEventHandlers['onPolygonUpdate'];
35
+ onTooltipHintSwitch: ScatterplotEventHandlers['onTooltipHintSwitch'];
36
+ onLassoControlsStateUpdate: ScatterplotEventHandlers['onLassoControlsStateUpdate'];
37
+ zoomTransform: ZoomTransform | null;
36
38
  zoomStateKey: string;
37
39
  selectedDot: Dot | null;
38
40
  captionsSizes: CaptionsSizes;
@@ -42,7 +44,6 @@ declare class ChartRenderer {
42
44
  allDots: Dot[];
43
45
  allPossibleLabels: Label[];
44
46
  visibleLabels: Label[];
45
- lassoMode: boolean;
46
47
  clear(): void;
47
48
  init(node: HTMLElement): void;
48
49
  updateChartSizes(size: ScatterplotUmapSettingsImpl['chartSettings']['size']): void;
@@ -58,13 +59,14 @@ declare class ChartRenderer {
58
59
  updateAes(legendInfo: ScatterplotUmapLegendInfo, layers: ScatterplotUmapSettingsImpl['layers']): void;
59
60
  updatePointSize(): void;
60
61
  updateByLasso(): void;
62
+ createQuadtree(dots: Dot[]): Quadtree<Dot>;
61
63
  updateData(dots: Dot[]): void;
62
64
  render(settingsId: string, chartSettings: ScatterplotUmapSettingsImpl['chartSettings'], keyColumn: ColumnName | null, onlyPositive: {
63
65
  x: boolean;
64
66
  y: boolean;
65
- }, dots: Dot[], dotExtents: DotsExtents, dotsByGrouping: Record<string, Dot[]>, layers: ScatterplotUmapSettingsImpl['layers'], legendInfo: ScatterplotUmapLegendInfo, grouping: ColumnName[], allPossibleLabels: Label[], onPolygonUpdateOutside: (data: number[]) => void, lassoMode: boolean, onTooltipHintSwitch: (v: boolean) => void): void;
67
+ }, dots: Dot[], dotExtents: DotsExtents, dotsByGrouping: Record<string, Dot[]>, layers: ScatterplotUmapSettingsImpl['layers'], legendInfo: ScatterplotUmapLegendInfo, grouping: ColumnName[], allPossibleLabels: Label[], onPolygonUpdateOutside: ScatterplotEventHandlers['onPolygonUpdate'], onTooltipHintSwitch: (v: boolean) => void, onLassoControlsStateUpdate: (v: LassoControlsState) => void): void;
66
68
  renderWebglLayer(): void;
67
- onPolygonUpdate: (p: Point[]) => void;
69
+ onPolygonUpdate: (p: Polygon[]) => void;
68
70
  renderSvgLayer(): void;
69
71
  renderError(message: string): void;
70
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ChartRenderer.d.ts","sourceRoot":"","sources":["../../src/scatterplot-umap/ChartRenderer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChartRenderer.d.ts","sourceRoot":"","sources":["../../src/scatterplot-umap/ChartRenderer.tsx"],"names":[],"mappings":"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"}