@milaboratories/miplots4 1.0.130 → 1.0.131

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 (39) hide show
  1. package/dist/scatterplot/ScatterplotSettingsImpl.js +28 -28
  2. package/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
  3. package/dist/scatterplot/components/ChartTooltip.d.ts.map +1 -1
  4. package/dist/scatterplot/components/ChartTooltip.js +42 -40
  5. package/dist/scatterplot/components/ChartTooltip.js.map +1 -1
  6. package/dist/scatterplot/dots.d.ts.map +1 -1
  7. package/dist/scatterplot/dots.js +24 -22
  8. package/dist/scatterplot/dots.js.map +1 -1
  9. package/dist/scatterplot/utils/formatColumnValue.d.ts +5 -0
  10. package/dist/scatterplot/utils/formatColumnValue.d.ts.map +1 -0
  11. package/dist/scatterplot/utils/formatColumnValue.js +11 -0
  12. package/dist/scatterplot/utils/formatColumnValue.js.map +1 -0
  13. package/dist/scatterplot-umap/SettingsImpl.js +25 -25
  14. package/dist/scatterplot-umap/SettingsImpl.js.map +1 -1
  15. package/dist/scatterplot-umap/components/LowerSVG.d.ts.map +1 -1
  16. package/dist/scatterplot-umap/components/LowerSVG.js +88 -86
  17. package/dist/scatterplot-umap/components/LowerSVG.js.map +1 -1
  18. package/dist/scatterplot-umap/index.d.ts.map +1 -1
  19. package/dist/scatterplot-umap/index.js +79 -77
  20. package/dist/scatterplot-umap/index.js.map +1 -1
  21. package/dist/types/bubble.d.ts +32 -0
  22. package/dist/types/bubble.d.ts.map +1 -1
  23. package/dist/types/common.d.ts +18 -0
  24. package/dist/types/common.d.ts.map +1 -1
  25. package/dist/types/common.js +2 -0
  26. package/dist/types/common.js.map +1 -1
  27. package/dist/types/dendro.d.ts +103 -0
  28. package/dist/types/dendro.d.ts.map +1 -1
  29. package/dist/types/discrete.d.ts +85 -8
  30. package/dist/types/discrete.d.ts.map +1 -1
  31. package/dist/types/heatmap.d.ts +159 -0
  32. package/dist/types/heatmap.d.ts.map +1 -1
  33. package/dist/types/histogram.d.ts +22 -0
  34. package/dist/types/histogram.d.ts.map +1 -1
  35. package/dist/types/scatterplot-umap.d.ts +138 -0
  36. package/dist/types/scatterplot-umap.d.ts.map +1 -1
  37. package/dist/types/scatterplot.d.ts +152 -0
  38. package/dist/types/scatterplot.d.ts.map +1 -1
  39. package/package.json +1 -1
@@ -1,45 +1,47 @@
1
- import { j as i } from "../../node_modules/react/jsx-runtime.js";
2
- import O, { r as g } from "../../_virtual/index.js";
3
- import { ChartsTitle as R } from "../../common/ChartsTitle.js";
4
- import { ContinuousGrid as V } from "../../common/ContinuousGrid.js";
1
+ import { j as o } from "../../node_modules/react/jsx-runtime.js";
2
+ import N, { r as g } from "../../_virtual/index.js";
3
+ import { ChartsTitle as O } from "../../common/ChartsTitle.js";
4
+ import { ContinuousGrid as R } from "../../common/ContinuousGrid.js";
5
5
  import M from "../../common/fonts.js";
6
6
  import { Legend as U } from "../../common/Legend.js";
7
- import { Tooltip as Z } from "../../common/Tooltip.js";
8
- import { useDataFrame as q } from "../../common/useDataFrame.js";
9
- import { BLACK as G } from "../../constants.js";
10
- import { Axis as H } from "../../scatterplot/components/Axis.js";
11
- import { numberFormat as L } from "../../utils/numberFormat.js";
12
- import { DEFAULT_TICKS_SIZE as F, TITLE_LINE as u, LEGEND_OFFSET as J } from "../constants.js";
7
+ import { Tooltip as V } from "../../common/Tooltip.js";
8
+ import { useDataFrame as Z } from "../../common/useDataFrame.js";
9
+ import { BLACK as q } from "../../constants.js";
10
+ import { Axis as E } from "../../scatterplot/components/Axis.js";
11
+ import { formatColumnValue as G } from "../../scatterplot/utils/formatColumnValue.js";
12
+ import { DEFAULT_TICKS_SIZE as H, TITLE_LINE as u, LEGEND_OFFSET as J } from "../constants.js";
13
13
  import Q from "../../node_modules/d3-shape/src/line.js";
14
14
  import S from "../../node_modules/d3-shape/src/curve/basis.js";
15
- function z(e, s, h, c = []) {
16
- const n = [`x: ${L(s.x)}`, `y: ${L(s.y)}`];
17
- h != null && h.label && n.unshift(`${h.label}: ${e.getColumnValue(h.label, s.idx)}`);
18
- for (const t of c)
19
- n.push(`${t.label}: ${e.getColumnValue(t.valueLabels ?? t.value, s.idx)}`);
20
- return n;
15
+ import { format as z } from "../../node_modules/d3-format/src/defaultLocale.js";
16
+ function tt(i, d, m = []) {
17
+ const a = [];
18
+ for (const e of m) {
19
+ const t = e != null && e.format ? z(e.format) : void 0;
20
+ a.push(`${e.label}: ${G(i, d.idx, e, t)}`);
21
+ }
22
+ return a;
21
23
  }
22
- function P(e) {
23
- return typeof e == "string" ? e : e.label ?? e.value;
24
+ function F(i) {
25
+ return typeof i == "string" ? i : i.label ?? i.value;
24
26
  }
25
- const k = Q().curve(S);
26
- function tt({
27
- scales: e,
28
- chartSettings: s,
29
- mainTitle: h,
30
- keyColumn: c,
31
- margins: n,
27
+ const L = Q().curve(S);
28
+ function ot({
29
+ scales: i,
30
+ chartSettings: d,
31
+ mainTitle: m,
32
+ keyColumn: a,
33
+ margins: e,
32
34
  chartSizes: t,
33
35
  container: j,
34
36
  zoomStateKey: y,
35
- legendData: A,
36
- dotsByGrouping: C,
37
- layers: D,
38
- aesGetters: a,
39
- tooltipData: d
37
+ legendData: P,
38
+ dotsByGrouping: b,
39
+ layers: A,
40
+ aesGetters: x,
41
+ tooltipData: h
40
42
  }) {
41
- var E;
42
- const B = q(), { title: w, xAxis: p, yAxis: m, frame: I, legend: _ } = s, X = p.showTicks ? F : 0, Y = m.showTicks ? F : 0, $ = p.title, T = m.title, K = {
43
+ var v;
44
+ const D = Z(), { title: w, xAxis: p, yAxis: c, frame: B, legend: I } = d, _ = p.showTicks ? H : 0, X = c.showTicks ? H : 0, T = p.title, W = c.title, Y = {
43
45
  left: 0,
44
46
  right: t.chartWidth,
45
47
  top: 0,
@@ -47,20 +49,20 @@ function tt({
47
49
  };
48
50
  if (!j)
49
51
  return null;
50
- const o = D.find((r) => r.type === "curve"), [W, N] = g.useState([]);
51
- function v() {
52
- const f = Object.entries(C).map(([x, l]) => ({
53
- key: x,
54
- d: o != null && o.smoothing ? k(l) ?? "" : l.map((b) => `${e.x(b.x)},${e.y(b.y)}`).join(" "),
52
+ const n = A.find((r) => r.type === "curve"), [k, K] = g.useState([]);
53
+ function $() {
54
+ const f = Object.entries(b).map(([s, l]) => ({
55
+ key: s,
56
+ d: n != null && n.smoothing ? L(l) ?? "" : l.map((C) => `${i.x(C.x)},${i.y(C.y)}`).join(" "),
55
57
  dot: l[0]
56
58
  }));
57
- N(f);
59
+ K(f);
58
60
  }
59
61
  return g.useEffect(() => {
60
- o && (k.x((r) => e.x(r.x)).y((r) => e.y(r.y)), v());
62
+ n && (L.x((r) => i.x(r.x)).y((r) => i.y(r.y)), $());
61
63
  }, [y, t.chartWidth, t.chartHeight]), g.useEffect(() => {
62
- o && v();
63
- }, [o == null ? void 0 : o.smoothing]), /* @__PURE__ */ i.jsxs(
64
+ n && $();
65
+ }, [n == null ? void 0 : n.smoothing]), /* @__PURE__ */ o.jsxs(
64
66
  "svg",
65
67
  {
66
68
  xmlns: "http://www.w3.org/2000/svg",
@@ -69,103 +71,103 @@ function tt({
69
71
  height: t.totalHeight,
70
72
  style: { pointerEvents: "none" },
71
73
  children: [
72
- /* @__PURE__ */ i.jsx("defs", { children: M }),
73
- /* @__PURE__ */ i.jsxs("g", { transform: `translate(${n.left},${n.top})`, fontFamily: "Manrope", children: [
74
- /* @__PURE__ */ i.jsx("clipPath", { id: "viewportClipPath", children: /* @__PURE__ */ i.jsx("rect", { x: "0", y: "0", width: t.chartWidth, height: t.chartHeight }) }),
75
- /* @__PURE__ */ i.jsx(
76
- R,
74
+ /* @__PURE__ */ o.jsx("defs", { children: M }),
75
+ /* @__PURE__ */ o.jsxs("g", { transform: `translate(${e.left},${e.top})`, fontFamily: "Manrope", children: [
76
+ /* @__PURE__ */ o.jsx("clipPath", { id: "viewportClipPath", children: /* @__PURE__ */ o.jsx("rect", { x: "0", y: "0", width: t.chartWidth, height: t.chartHeight }) }),
77
+ /* @__PURE__ */ o.jsx(
78
+ O,
77
79
  {
78
- title: h,
80
+ title: m,
79
81
  show: w.show,
80
82
  position: w.position,
81
- leftPadding: n.left,
82
- rightPadding: n.right,
83
+ leftPadding: e.left,
84
+ rightPadding: e.right,
83
85
  chartsWidth: t.chartWidth
84
86
  }
85
87
  ),
86
- /* @__PURE__ */ i.jsxs("g", { dominantBaseline: "central", textAnchor: "middle", fontWeight: "500", fontSize: "14px", fill: G, children: [
87
- $ && /* @__PURE__ */ i.jsx(
88
+ /* @__PURE__ */ o.jsxs("g", { dominantBaseline: "central", textAnchor: "middle", fontWeight: "500", fontSize: "14px", fill: q, children: [
89
+ T && /* @__PURE__ */ o.jsx(
88
90
  "text",
89
91
  {
90
92
  x: t.chartWidth / 2,
91
- y: t.chartHeight + n.bottom - u / 2,
92
- children: P($)
93
+ y: t.chartHeight + e.bottom - u / 2,
94
+ children: F(T)
93
95
  }
94
96
  ),
95
- T && /* @__PURE__ */ i.jsx(
97
+ W && /* @__PURE__ */ o.jsx(
96
98
  "text",
97
99
  {
98
- x: -n.left + u / 2,
100
+ x: -e.left + u / 2,
99
101
  y: t.chartHeight / 2,
100
- transform: `rotate(-90,${-n.left + u / 2},${t.chartHeight / 2})`,
101
- children: P(T)
102
+ transform: `rotate(-90,${-e.left + u / 2},${t.chartHeight / 2})`,
103
+ children: F(W)
102
104
  }
103
105
  )
104
106
  ] }),
105
- /* @__PURE__ */ i.jsx(
106
- V,
107
+ /* @__PURE__ */ o.jsx(
108
+ R,
107
109
  {
108
110
  width: t.chartWidth,
109
111
  height: t.chartHeight,
110
- scaleX: e.x,
111
- scaleY: e.y,
112
+ scaleX: i.x,
113
+ scaleY: i.y,
112
114
  axisX: p,
113
- axisY: m,
115
+ axisY: c,
114
116
  updatingKey: y,
115
- frameType: I.type
117
+ frameType: B.type
116
118
  }
117
119
  ),
118
- /* @__PURE__ */ i.jsx("g", { transform: `translate(0,${t.chartHeight})`, children: /* @__PURE__ */ i.jsx(H, { scale: e.x, orient: "bottom", tickSize: X }) }),
119
- /* @__PURE__ */ i.jsx("g", { children: /* @__PURE__ */ i.jsx(H, { scale: e.y, orient: "left", tickSize: Y }) }),
120
- o && o.smoothing && /* @__PURE__ */ i.jsx("g", { clipPath: "url(#viewportClipPath)", children: W.map(({ key: r, d: f, dot: x }) => {
120
+ /* @__PURE__ */ o.jsx("g", { transform: `translate(0,${t.chartHeight})`, children: /* @__PURE__ */ o.jsx(E, { scale: i.x, orient: "bottom", tickSize: _ }) }),
121
+ /* @__PURE__ */ o.jsx("g", { children: /* @__PURE__ */ o.jsx(E, { scale: i.y, orient: "left", tickSize: X }) }),
122
+ n && n.smoothing && /* @__PURE__ */ o.jsx("g", { clipPath: "url(#viewportClipPath)", children: k.map(({ key: r, d: f, dot: s }) => {
121
123
  var l;
122
- return /* @__PURE__ */ i.jsx(
124
+ return /* @__PURE__ */ o.jsx(
123
125
  "path",
124
126
  {
125
127
  d: f,
126
128
  fill: "none",
127
- stroke: a.dotFill(x.idx),
128
- strokeWidth: (l = o.aes) == null ? void 0 : l.lineWidth,
129
- strokeDasharray: a.lineType(x.idx)
129
+ stroke: x.dotFill(s.idx),
130
+ strokeWidth: (l = n.aes) == null ? void 0 : l.lineWidth,
131
+ strokeDasharray: x.lineType(s.idx)
130
132
  },
131
133
  r
132
134
  );
133
135
  }) }),
134
- o && !o.smoothing && /* @__PURE__ */ i.jsx("g", { clipPath: "url(#viewportClipPath)", children: W.map(({ key: r, d: f, dot: x }) => {
136
+ n && !n.smoothing && /* @__PURE__ */ o.jsx("g", { clipPath: "url(#viewportClipPath)", children: k.map(({ key: r, d: f, dot: s }) => {
135
137
  var l;
136
- return /* @__PURE__ */ i.jsx(
138
+ return /* @__PURE__ */ o.jsx(
137
139
  "polyline",
138
140
  {
139
141
  points: f,
140
142
  fill: "none",
141
- stroke: a.dotFill(x.idx),
142
- strokeWidth: (l = o.aes) == null ? void 0 : l.lineWidth,
143
- strokeDasharray: a.lineType(x.idx)
143
+ stroke: x.dotFill(s.idx),
144
+ strokeWidth: (l = n.aes) == null ? void 0 : l.lineWidth,
145
+ strokeDasharray: x.lineType(s.idx)
144
146
  },
145
147
  r
146
148
  );
147
149
  }) }),
148
- d.selectedData && /* @__PURE__ */ i.jsx(
149
- Z,
150
+ d.tooltips.show && h.selectedData && /* @__PURE__ */ o.jsx(
151
+ V,
150
152
  {
151
- content: z(B, d.selectedData, c, (E = s.tooltips) == null ? void 0 : E.content),
152
- x: e.x(d.selectedData.x),
153
- y: e.y(d.selectedData.y),
153
+ content: tt(D, h.selectedData, (v = d.tooltips) == null ? void 0 : v.content),
154
+ x: i.x(h.selectedData.x),
155
+ y: i.y(h.selectedData.y),
154
156
  active: !0,
155
- fixed: d.fixed,
156
- sideDistances: K,
157
+ fixed: h.fixed,
158
+ sideDistances: Y,
157
159
  container: j,
158
- onClose: d.onClose
160
+ onClose: h.onClose
159
161
  }
160
162
  ),
161
- _.show && /* @__PURE__ */ i.jsx("g", { transform: `translate(${t.chartWidth + J},0)`, children: /* @__PURE__ */ i.jsx(U, { legendData: A }) })
163
+ I.show && /* @__PURE__ */ o.jsx("g", { transform: `translate(${t.chartWidth + J},0)`, children: /* @__PURE__ */ o.jsx(U, { legendData: P }) })
162
164
  ] })
163
165
  ]
164
166
  }
165
167
  );
166
168
  }
167
- const mt = O.memo(tt);
169
+ const ut = N.memo(ot);
168
170
  export {
169
- mt as default
171
+ ut as default
170
172
  };
171
173
  //# sourceMappingURL=LowerSVG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LowerSVG.js","sources":["../../../src/scatterplot-umap/components/LowerSVG.tsx"],"sourcesContent":["import { curveBasis, line } from 'd3-shape';\nimport React, { useEffect, useState } from 'react';\nimport { ChartsTitle } from '../../common/ChartsTitle';\nimport { ContinuousGrid } from '../../common/ContinuousGrid';\nimport fonts from '../../common/fonts';\nimport { Legend } from '../../common/Legend';\nimport type { TooltipsData } from '../../common/Tooltip';\nimport { Tooltip } from '../../common/Tooltip';\nimport type { LegendData } from '../../common/types';\nimport { useDataFrame } from '../../common/useDataFrame';\nimport { BLACK } from '../../constants';\nimport type { DataFrame } from '../../DataFrame';\nimport { Axis } from '../../scatterplot/components/Axis';\nimport type { ColumnName } from '../../types';\nimport type { CurveUmapLayer } from '../../types/scatterplot-umap';\nimport { numberFormat } from '../../utils/numberFormat';\nimport { DEFAULT_TICKS_SIZE, LEGEND_OFFSET, TITLE_LINE } from '../constants';\nimport type { ScatterplotUmapSettingsImpl } from '../SettingsImpl';\nimport type { CaptionsSizes, ChartScales, ChartSizes, Dot, DotInfo, Margins, SVGLayerProps } from '../types';\n\nfunction getTooltipContent(dataFrame: DataFrame, dot: DotInfo, keyColumn: ColumnName | null, columnsList: ColumnName[] = []) {\n const lines = [`x: ${numberFormat(dot.x)}`, `y: ${numberFormat(dot.y)}`];\n if (keyColumn?.label) {\n lines.unshift(`${keyColumn.label}: ${dataFrame.getColumnValue(keyColumn.label, dot.idx)}`);\n }\n for (const column of columnsList) {\n lines.push(`${column.label}: ${dataFrame.getColumnValue(column.valueLabels ?? column.value, dot.idx)}`);\n }\n return lines;\n}\n\nfunction getTitle(title: string | ColumnName): string {\n if (typeof title === 'string') {\n return title;\n }\n return title.label ?? title.value;\n}\n\nconst lineGenerator = line<Dot>().curve(curveBasis);\n\nfunction LowerSvg({\n scales,\n chartSettings,\n mainTitle,\n keyColumn,\n margins,\n chartSizes,\n container,\n zoomStateKey,\n legendData,\n dotsByGrouping,\n layers,\n aesGetters,\n tooltipData\n}: {\n aesGetters: SVGLayerProps['aesGetters'];\n scales: ChartScales;\n chartSettings: ScatterplotUmapSettingsImpl['chartSettings'];\n mainTitle: string[];\n keyColumn: ColumnName | null;\n margins: Margins;\n chartSizes: ChartSizes;\n captionsSizes: CaptionsSizes;\n selectedDot?: DotInfo | null;\n container: SVGElement | null;\n zoomStateKey: string;\n legendData: LegendData;\n dotsByGrouping: Record<string, Dot[]>;\n layers: ScatterplotUmapSettingsImpl['layers'];\n tooltipData: TooltipsData<DotInfo>;\n}) {\n const dataFrame = useDataFrame();\n const {title, xAxis, yAxis, frame, legend} = chartSettings;\n const tickSizeX = xAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const tickSizeY = yAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const xTitle = xAxis.title;\n const yTitle = yAxis.title;\n const needLeftAxis = true;\n const needBottomAxis = true;\n\n const sideDistances = {\n left: 0,\n right: chartSizes.chartWidth,\n top: 0,\n bottom: chartSizes.chartHeight,\n };\n\n if (!container) {\n return null;\n }\n\n const curveLayer = layers.find(layer => layer.type === 'curve') as CurveUmapLayer | undefined;\n const [lines, setLines] = useState<{key: string, d:string, dot: Dot}[]>([]);\n\n function updateLines() {\n const data = Object.entries(dotsByGrouping);\n const nextLines = data.map(([key, dots]) => ({\n key,\n d: curveLayer?.smoothing ? lineGenerator(dots) ?? '' : dots.map(d => `${scales.x(d.x)},${scales.y(d.y)}`).join(' '),\n dot: dots[0]\n }));\n setLines(nextLines);\n }\n useEffect(() => {\n if (!curveLayer) {\n return;\n }\n lineGenerator\n .x((d: Dot) => scales.x(d.x))\n .y((d: Dot) => scales.y(d.y));\n updateLines();\n }, [zoomStateKey, chartSizes.chartWidth, chartSizes.chartHeight]);\n\n useEffect(() => {\n if (!curveLayer) {\n return;\n }\n updateLines();\n }, [curveLayer?.smoothing]);\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${chartSizes.totalWidth} ${chartSizes.totalHeight}`}\n width={chartSizes.totalWidth}\n height={chartSizes.totalHeight}\n style={{pointerEvents: 'none'}}\n >\n <defs>{fonts}</defs>\n <g transform={`translate(${margins.left},${margins.top})`} fontFamily=\"Manrope\">\n <clipPath id=\"viewportClipPath\">\n <rect x=\"0\" y=\"0\" width={chartSizes.chartWidth} height={chartSizes.chartHeight}/>\n </clipPath>\n <ChartsTitle\n title={mainTitle}\n show={title.show}\n position={title.position}\n leftPadding={margins.left}\n rightPadding={margins.right}\n chartsWidth={chartSizes.chartWidth}\n />\n <g dominantBaseline=\"central\" textAnchor=\"middle\" fontWeight=\"500\" fontSize=\"14px\" fill={BLACK}>\n {xTitle && (\n <text\n x={chartSizes.chartWidth / 2}\n y={chartSizes.chartHeight + margins.bottom - TITLE_LINE / 2}\n >\n {getTitle(xTitle)}\n </text>\n )}\n {yTitle && (\n <text\n x={-margins.left + TITLE_LINE / 2}\n y={chartSizes.chartHeight / 2}\n transform={`rotate(-90,${-margins.left + TITLE_LINE / 2},${\n chartSizes.chartHeight / 2\n })`}\n >\n {getTitle(yTitle)}\n </text>\n )}\n </g>\n <ContinuousGrid\n width={chartSizes.chartWidth}\n height={chartSizes.chartHeight}\n scaleX={scales.x}\n scaleY={scales.y}\n axisX={xAxis}\n axisY={yAxis}\n updatingKey={zoomStateKey}\n frameType={frame.type}\n />\n {needBottomAxis && (\n <g transform={`translate(0,${chartSizes.chartHeight})`}>\n <Axis scale={scales.x} orient=\"bottom\" tickSize={tickSizeX} />\n </g>\n )}\n {needLeftAxis && (\n <g>\n <Axis scale={scales.y} orient=\"left\" tickSize={tickSizeY} />\n </g>\n )}\n {curveLayer && curveLayer.smoothing && (\n <g clipPath=\"url(#viewportClipPath)\">\n {lines.map(({key, d, dot}) => (\n <path\n key={key}\n d={d}\n fill=\"none\"\n stroke={aesGetters.dotFill(dot.idx)}\n strokeWidth={curveLayer.aes?.lineWidth}\n strokeDasharray={aesGetters.lineType(dot.idx)}\n />\n ))}\n </g>\n )}\n {curveLayer && !curveLayer.smoothing && (\n <g clipPath=\"url(#viewportClipPath)\">\n {lines.map(({key, d, dot}) => (\n <polyline\n key={key}\n points={d}\n fill=\"none\"\n stroke={aesGetters.dotFill(dot.idx)}\n strokeWidth={curveLayer.aes?.lineWidth}\n strokeDasharray={aesGetters.lineType(dot.idx)}\n />\n ))}\n </g>\n )}\n {tooltipData.selectedData && (\n <Tooltip\n content={getTooltipContent(dataFrame, tooltipData.selectedData, keyColumn, chartSettings.tooltips?.content)}\n x={scales.x(tooltipData.selectedData.x)}\n y={scales.y(tooltipData.selectedData.y)}\n active={true}\n fixed={tooltipData.fixed}\n sideDistances={sideDistances}\n container={container}\n onClose={tooltipData.onClose}\n />\n )}\n {legend.show && (\n <g transform={`translate(${chartSizes.chartWidth + LEGEND_OFFSET},0)`}>\n <Legend legendData={legendData} />\n </g>\n )}\n </g>\n </svg>\n );\n}\n\nexport default React.memo(LowerSvg);\n"],"names":["getTooltipContent","dataFrame","dot","keyColumn","columnsList","lines","numberFormat","column","getTitle","title","lineGenerator","line","curveBasis","LowerSvg","scales","chartSettings","mainTitle","margins","chartSizes","container","zoomStateKey","legendData","dotsByGrouping","layers","aesGetters","tooltipData","useDataFrame","xAxis","yAxis","frame","legend","tickSizeX","DEFAULT_TICKS_SIZE","tickSizeY","xTitle","yTitle","sideDistances","curveLayer","layer","setLines","useState","updateLines","nextLines","key","dots","d","useEffect","jsxs","jsx","fonts","ChartsTitle","BLACK","TITLE_LINE","ContinuousGrid","Axis","_a","Tooltip","LEGEND_OFFSET","Legend","LowerSvg$1","React"],"mappings":"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"}
1
+ {"version":3,"file":"LowerSVG.js","sources":["../../../src/scatterplot-umap/components/LowerSVG.tsx"],"sourcesContent":["import {format} from 'd3-format';\nimport { curveBasis, line } from 'd3-shape';\nimport React, { useEffect, useState } from 'react';\nimport { ChartsTitle } from '../../common/ChartsTitle';\nimport { ContinuousGrid } from '../../common/ContinuousGrid';\nimport fonts from '../../common/fonts';\nimport { Legend } from '../../common/Legend';\nimport type { TooltipsData } from '../../common/Tooltip';\nimport { Tooltip } from '../../common/Tooltip';\nimport type { LegendData } from '../../common/types';\nimport { useDataFrame } from '../../common/useDataFrame';\nimport { BLACK } from '../../constants';\nimport type { DataFrame } from '../../DataFrame';\nimport { Axis } from '../../scatterplot/components/Axis';\nimport {formatColumnValue} from '../../scatterplot/utils/formatColumnValue';\nimport type { ColumnName } from '../../types';\nimport type { CurveUmapLayer } from '../../types/scatterplot-umap';\nimport { DEFAULT_TICKS_SIZE, LEGEND_OFFSET, TITLE_LINE } from '../constants';\nimport type { ScatterplotUmapSettingsImpl } from '../SettingsImpl';\nimport type { CaptionsSizes, ChartScales, ChartSizes, Dot, DotInfo, Margins, SVGLayerProps } from '../types';\n\nfunction getTooltipContent(dataFrame: DataFrame, dot: DotInfo, columnsList: ColumnName[] = [], ) {\n const lines: string[] = [];\n for (const column of columnsList) {\n const columnFormatter = column?.format ? format(column.format) : undefined;\n lines.push(`${column.label}: ${formatColumnValue(dataFrame, dot.idx, column, columnFormatter)}`);\n }\n return lines;\n}\n\nfunction getTitle(title: string | ColumnName): string {\n if (typeof title === 'string') {\n return title;\n }\n return title.label ?? title.value;\n}\n\nconst lineGenerator = line<Dot>().curve(curveBasis);\n\nfunction LowerSvg({\n scales,\n chartSettings,\n mainTitle,\n keyColumn,\n margins,\n chartSizes,\n container,\n zoomStateKey,\n legendData,\n dotsByGrouping,\n layers,\n aesGetters,\n tooltipData\n}: {\n aesGetters: SVGLayerProps['aesGetters'];\n scales: ChartScales;\n chartSettings: ScatterplotUmapSettingsImpl['chartSettings'];\n mainTitle: string[];\n keyColumn: ColumnName | null;\n margins: Margins;\n chartSizes: ChartSizes;\n captionsSizes: CaptionsSizes;\n selectedDot?: DotInfo | null;\n container: SVGElement | null;\n zoomStateKey: string;\n legendData: LegendData;\n dotsByGrouping: Record<string, Dot[]>;\n layers: ScatterplotUmapSettingsImpl['layers'];\n tooltipData: TooltipsData<DotInfo>;\n}) {\n const dataFrame = useDataFrame();\n const {title, xAxis, yAxis, frame, legend} = chartSettings;\n const tickSizeX = xAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const tickSizeY = yAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const xTitle = xAxis.title;\n const yTitle = yAxis.title;\n const needLeftAxis = true;\n const needBottomAxis = true;\n\n const sideDistances = {\n left: 0,\n right: chartSizes.chartWidth,\n top: 0,\n bottom: chartSizes.chartHeight,\n };\n\n if (!container) {\n return null;\n }\n\n const curveLayer = layers.find(layer => layer.type === 'curve') as CurveUmapLayer | undefined;\n const [lines, setLines] = useState<{key: string, d:string, dot: Dot}[]>([]);\n\n function updateLines() {\n const data = Object.entries(dotsByGrouping);\n const nextLines = data.map(([key, dots]) => ({\n key,\n d: curveLayer?.smoothing ? lineGenerator(dots) ?? '' : dots.map(d => `${scales.x(d.x)},${scales.y(d.y)}`).join(' '),\n dot: dots[0]\n }));\n setLines(nextLines);\n }\n useEffect(() => {\n if (!curveLayer) {\n return;\n }\n lineGenerator\n .x((d: Dot) => scales.x(d.x))\n .y((d: Dot) => scales.y(d.y));\n updateLines();\n }, [zoomStateKey, chartSizes.chartWidth, chartSizes.chartHeight]);\n\n useEffect(() => {\n if (!curveLayer) {\n return;\n }\n updateLines();\n }, [curveLayer?.smoothing]);\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${chartSizes.totalWidth} ${chartSizes.totalHeight}`}\n width={chartSizes.totalWidth}\n height={chartSizes.totalHeight}\n style={{pointerEvents: 'none'}}\n >\n <defs>{fonts}</defs>\n <g transform={`translate(${margins.left},${margins.top})`} fontFamily=\"Manrope\">\n <clipPath id=\"viewportClipPath\">\n <rect x=\"0\" y=\"0\" width={chartSizes.chartWidth} height={chartSizes.chartHeight}/>\n </clipPath>\n <ChartsTitle\n title={mainTitle}\n show={title.show}\n position={title.position}\n leftPadding={margins.left}\n rightPadding={margins.right}\n chartsWidth={chartSizes.chartWidth}\n />\n <g dominantBaseline=\"central\" textAnchor=\"middle\" fontWeight=\"500\" fontSize=\"14px\" fill={BLACK}>\n {xTitle && (\n <text\n x={chartSizes.chartWidth / 2}\n y={chartSizes.chartHeight + margins.bottom - TITLE_LINE / 2}\n >\n {getTitle(xTitle)}\n </text>\n )}\n {yTitle && (\n <text\n x={-margins.left + TITLE_LINE / 2}\n y={chartSizes.chartHeight / 2}\n transform={`rotate(-90,${-margins.left + TITLE_LINE / 2},${\n chartSizes.chartHeight / 2\n })`}\n >\n {getTitle(yTitle)}\n </text>\n )}\n </g>\n <ContinuousGrid\n width={chartSizes.chartWidth}\n height={chartSizes.chartHeight}\n scaleX={scales.x}\n scaleY={scales.y}\n axisX={xAxis}\n axisY={yAxis}\n updatingKey={zoomStateKey}\n frameType={frame.type}\n />\n {needBottomAxis && (\n <g transform={`translate(0,${chartSizes.chartHeight})`}>\n <Axis scale={scales.x} orient=\"bottom\" tickSize={tickSizeX} />\n </g>\n )}\n {needLeftAxis && (\n <g>\n <Axis scale={scales.y} orient=\"left\" tickSize={tickSizeY} />\n </g>\n )}\n {curveLayer && curveLayer.smoothing && (\n <g clipPath=\"url(#viewportClipPath)\">\n {lines.map(({key, d, dot}) => (\n <path\n key={key}\n d={d}\n fill=\"none\"\n stroke={aesGetters.dotFill(dot.idx)}\n strokeWidth={curveLayer.aes?.lineWidth}\n strokeDasharray={aesGetters.lineType(dot.idx)}\n />\n ))}\n </g>\n )}\n {curveLayer && !curveLayer.smoothing && (\n <g clipPath=\"url(#viewportClipPath)\">\n {lines.map(({key, d, dot}) => (\n <polyline\n key={key}\n points={d}\n fill=\"none\"\n stroke={aesGetters.dotFill(dot.idx)}\n strokeWidth={curveLayer.aes?.lineWidth}\n strokeDasharray={aesGetters.lineType(dot.idx)}\n />\n ))}\n </g>\n )}\n {chartSettings.tooltips.show && tooltipData.selectedData && (\n <Tooltip\n content={getTooltipContent(dataFrame, tooltipData.selectedData, chartSettings.tooltips?.content)}\n x={scales.x(tooltipData.selectedData.x)}\n y={scales.y(tooltipData.selectedData.y)}\n active={true}\n fixed={tooltipData.fixed}\n sideDistances={sideDistances}\n container={container}\n onClose={tooltipData.onClose}\n />\n )}\n {legend.show && (\n <g transform={`translate(${chartSizes.chartWidth + LEGEND_OFFSET},0)`}>\n <Legend legendData={legendData} />\n </g>\n )}\n </g>\n </svg>\n );\n}\n\nexport default React.memo(LowerSvg);\n"],"names":["getTooltipContent","dataFrame","dot","columnsList","lines","column","columnFormatter","format","formatColumnValue","getTitle","title","lineGenerator","line","curveBasis","LowerSvg","scales","chartSettings","mainTitle","keyColumn","margins","chartSizes","container","zoomStateKey","legendData","dotsByGrouping","layers","aesGetters","tooltipData","useDataFrame","xAxis","yAxis","frame","legend","tickSizeX","DEFAULT_TICKS_SIZE","tickSizeY","xTitle","yTitle","sideDistances","curveLayer","layer","setLines","useState","updateLines","nextLines","key","dots","d","useEffect","jsxs","jsx","fonts","ChartsTitle","BLACK","TITLE_LINE","ContinuousGrid","Axis","_a","Tooltip","LEGEND_OFFSET","Legend","LowerSvg$1","React"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scatterplot-umap/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAA2D,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAClH,OAAO,KAAK,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,kBAAkB,EAAa,OAAO,EAAE,MAAM,SAAS,CAAC;AAMxF,qBAAa,oBAAqB,SAAQ,aAAa;IACnD,QAAQ,EAAE,2BAA2B,CAAC;IACtC,aAAa,EAAE,aAAa,CAAC;IAE7B,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,IAAI,CAAmB;IACjF,mBAAmB,EAAE,CAAC,CAAC,EAAC,OAAO,KAAK,IAAI,CAAmB;IAC3D,0BAA0B,EAAE,CAAC,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAmB;IAE9E,cAAc,EAAE;QACZ,IAAI,EAAE,GAAG,EAAE,CAAC;QACZ,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACtC,WAAW,EAAE,WAAW,CAAC;QACzB,YAAY,EAAE,yBAAyB,CAAA;KAC1C,GAAG,IAAI,CAAQ;gBAEJ,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB,EAAE,aAAa,CAAC,EAAE,wBAAwB;IAaxG,KAAK,CAAC,IAAI,EAAE,WAAW;IAcvB,OAAO;IAIP,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB;IA+BxE,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IA8B9C,MAAM,IAAI,MAAM;IAOhB,mCAAmC,CAAC,YAAY,EAAE,2BAA2B,EAAE,QAAQ,EAAE,2BAA2B;IAUpH,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAUpE,WAAW;IAsFX,gBAAgB;IA0BhB,YAAY;CAqBf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scatterplot-umap/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,KAAK,EAA2D,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAClH,OAAO,KAAK,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,kBAAkB,EAAa,OAAO,EAAE,MAAM,SAAS,CAAC;AAMxF,qBAAa,oBAAqB,SAAQ,aAAa;IACnD,QAAQ,EAAE,2BAA2B,CAAC;IACtC,aAAa,EAAE,aAAa,CAAC;IAE7B,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,IAAI,CAAmB;IACjF,mBAAmB,EAAE,CAAC,CAAC,EAAC,OAAO,KAAK,IAAI,CAAmB;IAC3D,0BAA0B,EAAE,CAAC,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAmB;IAE9E,cAAc,EAAE;QACZ,IAAI,EAAE,GAAG,EAAE,CAAC;QACZ,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACtC,WAAW,EAAE,WAAW,CAAC;QACzB,YAAY,EAAE,yBAAyB,CAAA;KAC1C,GAAG,IAAI,CAAQ;gBAEJ,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB,EAAE,aAAa,CAAC,EAAE,wBAAwB;IAaxG,KAAK,CAAC,IAAI,EAAE,WAAW;IAcvB,OAAO;IAIP,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,uBAAuB;IA+BxE,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IA8B9C,MAAM,IAAI,MAAM;IAOhB,mCAAmC,CAAC,YAAY,EAAE,2BAA2B,EAAE,QAAQ,EAAE,2BAA2B;IAUpH,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAUpE,WAAW;IAmFX,gBAAgB;IA0BhB,YAAY;CAqBf"}
@@ -1,32 +1,34 @@
1
1
  var U = Object.defineProperty;
2
- var A = (c, u, e) => u in c ? U(c, u, { enumerable: !0, configurable: !0, writable: !0, value: e }) : c[u] = e;
3
- var f = (c, u, e) => A(c, typeof u != "symbol" ? u + "" : u, e);
4
- import { AbstractChart as R } from "../AbstractChart.js";
5
- import { createLegendInfo as I, addPalettesToAesMapping as T } from "../scatterplot/utils/createLegendInfo.js";
2
+ var L = (c, u, t) => u in c ? U(c, u, { enumerable: !0, configurable: !0, writable: !0, value: t }) : c[u] = t;
3
+ var g = (c, u, t) => L(c, typeof u != "symbol" ? u + "" : u, t);
4
+ import { AbstractChart as A } from "../AbstractChart.js";
5
+ import { createLegendInfo as R, addPalettesToAesMapping as I } from "../scatterplot/utils/createLegendInfo.js";
6
+ import { formatColumnValue as T } from "../scatterplot/utils/formatColumnValue.js";
6
7
  import P from "./ChartRenderer.js";
7
8
  import { SCATTERPLOT_LASSO_EVENTS as m } from "./constants.js";
8
- import { ScatterplotUmapSettingsImpl as D } from "./SettingsImpl.js";
9
- function B(c) {
9
+ import { ScatterplotUmapSettingsImpl as b } from "./SettingsImpl.js";
10
+ import { format as B } from "../node_modules/d3-format/src/defaultLocale.js";
11
+ function V(c) {
10
12
  return typeof c == "object" && "type" in c && c.type === "grouping";
11
13
  }
12
- class M extends R {
13
- constructor(e, a, t) {
14
- super(e, a);
15
- f(this, "settings");
16
- f(this, "chartRenderer");
17
- f(this, "onPolygonUpdate", () => {
14
+ class F extends A {
15
+ constructor(t, a, e) {
16
+ super(t, a);
17
+ g(this, "settings");
18
+ g(this, "chartRenderer");
19
+ g(this, "onPolygonUpdate", () => {
18
20
  });
19
21
  // dots indexes from input data
20
- f(this, "onTooltipHintSwitch", () => {
22
+ g(this, "onTooltipHintSwitch", () => {
21
23
  });
22
- f(this, "onLassoControlsStateUpdate", () => {
24
+ g(this, "onLassoControlsStateUpdate", () => {
23
25
  });
24
- f(this, "calculatedData", null);
25
- this.settings = new D(a), this.chartRenderer = new P(), t && (this.onPolygonUpdate = t.onPolygonUpdate, this.onTooltipHintSwitch = t.onTooltipHintSwitch, this.onLassoControlsStateUpdate = t.onLassoControlsStateUpdate);
26
+ g(this, "calculatedData", null);
27
+ this.settings = new b(a), this.chartRenderer = new P(), e && (this.onPolygonUpdate = e.onPolygonUpdate, this.onTooltipHintSwitch = e.onTooltipHintSwitch, this.onLassoControlsStateUpdate = e.onLassoControlsStateUpdate);
26
28
  }
27
- mount(e) {
29
+ mount(t) {
28
30
  try {
29
- this.chartRenderer.init(e), this._updateData(), this._updateChart();
31
+ this.chartRenderer.init(t), this._updateData(), this._updateChart();
30
32
  } catch (a) {
31
33
  console.error(a), a instanceof Error && (this.chartRenderer.renderError(a.message), console.error(a));
32
34
  }
@@ -34,113 +36,113 @@ class M extends R {
34
36
  unmount() {
35
37
  this.chartRenderer.clear();
36
38
  }
37
- updateSettingsAndData(e, a) {
39
+ updateSettingsAndData(t, a) {
38
40
  try {
39
- const t = this.settings, i = this.data;
40
- this.settings = new D(a), this.data = e, this._needUpdateCalculatedDataBySettings(t, this.settings) || this._needUpdateCalculatedDataByData(i, this.data) ? this._updateData() : this._updateAesInData();
41
- const n = t.layers.find((d) => d.type === "dots"), o = this.settings.layers.find((d) => d.type === "dots");
42
- n && o && n.aes.dotSize !== o.aes.dotSize && typeof n.aes.dotSize == "number" && typeof o.aes.dotSize == "number" && this.chartRenderer.updatePointSize(), this._updateChart();
43
- } catch (t) {
44
- t instanceof Error && (this.chartRenderer.renderError(t.message), console.error(t));
41
+ const e = this.settings, i = this.data;
42
+ this.settings = new b(a), this.data = t, this._needUpdateCalculatedDataBySettings(e, this.settings) || this._needUpdateCalculatedDataByData(i, this.data) ? this._updateData() : this._updateAesInData();
43
+ const n = e.layers.find((d) => d.type === "dots"), s = this.settings.layers.find((d) => d.type === "dots");
44
+ n && s && n.aes.dotSize !== s.aes.dotSize && typeof n.aes.dotSize == "number" && typeof s.aes.dotSize == "number" && this.chartRenderer.updatePointSize(), this._updateChart();
45
+ } catch (e) {
46
+ e instanceof Error && (this.chartRenderer.renderError(e.message), console.error(e));
45
47
  }
46
48
  }
47
- updateChartState(e, a) {
48
- if (e === "polygon" && (this.chartRenderer.polygons = a, this._updateChart()), e === m.delete && document) {
49
- const t = new CustomEvent(m.delete);
50
- document.dispatchEvent(t);
49
+ updateChartState(t, a) {
50
+ if (t === "polygon" && (this.chartRenderer.polygons = a, this._updateChart()), t === m.delete && document) {
51
+ const e = new CustomEvent(m.delete);
52
+ document.dispatchEvent(e);
51
53
  }
52
- if (e === m.selectMode && document) {
53
- const t = new CustomEvent(m.selectMode, { detail: a });
54
- document.dispatchEvent(t);
54
+ if (t === m.selectMode && document) {
55
+ const e = new CustomEvent(m.selectMode, { detail: a });
56
+ document.dispatchEvent(e);
55
57
  }
56
- if (e === m.forward && document) {
57
- const t = new CustomEvent(m.forward);
58
- document.dispatchEvent(t);
58
+ if (t === m.forward && document) {
59
+ const e = new CustomEvent(m.forward);
60
+ document.dispatchEvent(e);
59
61
  }
60
- if (e === m.back && document) {
61
- const t = new CustomEvent(m.back);
62
- document.dispatchEvent(t);
62
+ if (t === m.back && document) {
63
+ const e = new CustomEvent(m.back);
64
+ document.dispatchEvent(e);
63
65
  }
64
66
  }
65
67
  export() {
66
68
  return console.warn("export not implemented"), "";
67
69
  }
68
- _needUpdateCalculatedDataBySettings(e, a) {
69
- var t, i, n, o;
70
- return e.grouping.length !== a.grouping.length || e.grouping.some((d, s) => {
70
+ _needUpdateCalculatedDataBySettings(t, a) {
71
+ var e, i, n, s;
72
+ return t.grouping.length !== a.grouping.length || t.grouping.some((d, o) => {
71
73
  var h;
72
- return d.value !== ((h = a.grouping[s]) == null ? void 0 : h.value);
73
- }) || e.layers.length !== a.layers.length || e.layers.some((d, s) => d.type !== a.layers[s].type) || (((t = e.label) == null ? void 0 : t.value) || ((i = a.label) == null ? void 0 : i.value)) && ((n = e.label) == null ? void 0 : n.value) !== ((o = a.label) == null ? void 0 : o.value);
74
+ return d.value !== ((h = a.grouping[o]) == null ? void 0 : h.value);
75
+ }) || t.layers.length !== a.layers.length || t.layers.some((d, o) => d.type !== a.layers[o].type) || (((e = t.label) == null ? void 0 : e.value) || ((i = a.label) == null ? void 0 : i.value)) && ((n = t.label) == null ? void 0 : n.value) !== ((s = a.label) == null ? void 0 : s.value);
74
76
  }
75
- _needUpdateCalculatedDataByData(e, a) {
76
- const t = Object.keys(e.data), i = Object.keys(a.data);
77
- return e.id !== a.id || t.length !== i.length || t.some((n) => {
78
- var o;
79
- return e.data[n].length !== ((o = a.data[n]) == null ? void 0 : o.length);
77
+ _needUpdateCalculatedDataByData(t, a) {
78
+ const e = Object.keys(t.data), i = Object.keys(a.data);
79
+ return t.id !== a.id || e.length !== i.length || e.some((n) => {
80
+ var s;
81
+ return t.data[n].length !== ((s = a.data[n]) == null ? void 0 : s.length);
80
82
  });
81
83
  }
82
84
  _updateData() {
83
- const { x: e, y: a, label: t, highlight: i, grouping: n, layers: o, inheritedAes: d } = this.settings, s = {
85
+ const { x: t, y: a, label: e, highlight: i, grouping: n, layers: s, inheritedAes: d } = this.settings, o = {
84
86
  minX: 1 / 0,
85
87
  maxX: -1 / 0,
86
88
  minY: 1 / 0,
87
89
  maxY: -1 / 0
88
- }, h = o.some((r) => r.type === "curve"), g = /* @__PURE__ */ new Set(), y = {}, S = (t == null ? void 0 : t.valueLabels) ?? (t == null ? void 0 : t.value), v = [];
90
+ }, h = s.some((r) => r.type === "curve"), f = /* @__PURE__ */ new Set(), y = {}, S = [], D = e != null && e.format ? B(e.format) : void 0;
89
91
  for (let r = 0; r < this.data.rowsCount; r++) {
90
- const l = this.data.getColumnValue(e.value, r), p = this.data.getColumnValue(a.value, r);
92
+ const l = this.data.getColumnValue(t.value, r), p = this.data.getColumnValue(a.value, r);
91
93
  if (typeof l != "number" || typeof p != "number")
92
94
  continue;
93
- l < s.minX && (s.minX = l), l > s.maxX && (s.maxX = l), p < s.minY && (s.minY = p), p > s.maxY && (s.maxY = p);
94
- const w = typeof S == "string" ? this.data.getColumnValue(S, r) : null, _ = i ? !this.data.getColumnValue(i.value, r) : !1, b = {
95
+ l < o.minX && (o.minX = l), l > o.maxX && (o.maxX = l), p < o.minY && (o.minY = p), p > o.maxY && (o.maxY = p);
96
+ const w = i ? !this.data.getColumnValue(i.value, r) : !1, E = {
95
97
  x: l,
96
98
  y: p,
97
99
  idx: r,
98
- label: w,
99
- dimmed: _
100
+ label: T(this.data, r, e, D),
101
+ dimmed: w
100
102
  };
101
103
  if (h) {
102
- const C = n.map((L) => this.data.getColumnValue(L.value, r)).join("_");
103
- g.add(C), y[C] || (y[C] = []), y[C].push(b);
104
+ const C = n.map((_) => this.data.getColumnValue(_.value, r)).join("_");
105
+ f.add(C), y[C] || (y[C] = []), y[C].push(E);
104
106
  }
105
- v.push(b);
107
+ S.push(E);
106
108
  }
107
- i && v.sort((r, l) => l.dimmed === r.dimmed ? 0 : l.dimmed ? 1 : -1);
108
- const E = [...g];
109
- h && E.forEach((r) => {
109
+ i && S.sort((r, l) => l.dimmed === r.dimmed ? 0 : l.dimmed ? 1 : -1);
110
+ const v = [...f];
111
+ h && v.forEach((r) => {
110
112
  y[r].sort((l, p) => l.x - p.x);
111
113
  });
112
- const x = I(this.data, n, o, d);
114
+ const x = R(this.data, n, s, d);
113
115
  this.calculatedData = {
114
- dots: v,
116
+ dots: S,
115
117
  dotsByGrouping: y,
116
- groupingKeys: E,
117
- dotsExtents: s,
118
+ groupingKeys: v,
119
+ dotsExtents: o,
118
120
  legendLabels: x
119
121
  };
120
122
  }
121
123
  _updateAesInData() {
122
- const e = this.calculatedData;
123
- if (!e)
124
+ const t = this.calculatedData;
125
+ if (!t)
124
126
  return;
125
- const { layers: a, inheritedAes: t, grouping: i } = this.settings;
127
+ const { layers: a, inheritedAes: e, grouping: i } = this.settings;
126
128
  i.forEach((n) => {
127
- const o = /* @__PURE__ */ new Set(), d = {};
128
- a.forEach((s) => {
129
- s.aes && Object.entries(s.aes).forEach(([h, g]) => {
130
- B(g) && g.value === n.value && (o.add(h), g.palette && (d[h] = g.palette));
129
+ const s = /* @__PURE__ */ new Set(), d = {};
130
+ a.forEach((o) => {
131
+ o.aes && Object.entries(o.aes).forEach(([h, f]) => {
132
+ V(f) && f.value === n.value && (s.add(h), f.palette && (d[h] = f.palette));
131
133
  });
132
- }), e.legendLabels[n.value].usedAes = [...o], e.legendLabels[n.value].aesMap = T(n, d, t[n.value]);
134
+ }), t.legendLabels[n.value].usedAes = [...s], t.legendLabels[n.value].aesMap = I(n, d, e[n.value]);
133
135
  });
134
136
  }
135
137
  _updateChart() {
136
138
  if (!this.calculatedData)
137
139
  return;
138
- const { id: e, chartSettings: a, keyColumn: t, layers: i, grouping: n } = this.settings;
140
+ const { id: t, chartSettings: a, keyColumn: e, layers: i, grouping: n } = this.settings;
139
141
  this.chartRenderer.render(
140
142
  this.data,
141
- e,
142
- a,
143
143
  t,
144
+ a,
145
+ e,
144
146
  this.calculatedData.dots,
145
147
  this.calculatedData.dotsExtents,
146
148
  this.calculatedData.dotsByGrouping,
@@ -154,6 +156,6 @@ class M extends R {
154
156
  }
155
157
  }
156
158
  export {
157
- M as ChartScatterplotUmap
159
+ F as ChartScatterplotUmap
158
160
  };
159
161
  //# sourceMappingURL=index.js.map