@milaboratories/miplots4 1.0.126 → 1.0.127
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DataFrame.d.ts +7 -5
- package/dist/DataFrame.d.ts.map +1 -1
- package/dist/DataFrame.js +67 -60
- package/dist/DataFrame.js.map +1 -1
- package/dist/bubble/components/Chart.d.ts +3 -3
- package/dist/bubble/components/Chart.d.ts.map +1 -1
- package/dist/bubble/components/Chart.js +23 -23
- package/dist/bubble/components/Chart.js.map +1 -1
- package/dist/common/Tooltip.d.ts +1 -1
- package/dist/common/Tooltip.d.ts.map +1 -1
- package/dist/common/Tooltip.js +17 -17
- package/dist/common/Tooltip.js.map +1 -1
- package/dist/discrete/components/layers/BinnedDotsElement.d.ts +2 -2
- package/dist/discrete/components/layers/BinnedDotsElement.d.ts.map +1 -1
- package/dist/discrete/components/layers/BinnedDotsElement.js +9 -9
- package/dist/discrete/components/layers/BinnedDotsElement.js.map +1 -1
- package/dist/discrete/components/layers/BoxElement.d.ts +2 -2
- package/dist/discrete/components/layers/BoxElement.d.ts.map +1 -1
- package/dist/discrete/components/layers/BoxElement.js +19 -19
- package/dist/discrete/components/layers/BoxElement.js.map +1 -1
- package/dist/discrete/components/layers/DotsGroupElement.d.ts +3 -3
- package/dist/discrete/components/layers/DotsGroupElement.d.ts.map +1 -1
- package/dist/discrete/components/layers/DotsGroupElement.js +10 -10
- package/dist/discrete/components/layers/DotsGroupElement.js.map +1 -1
- package/dist/discrete/components/layers/ErrorBarElement.d.ts +2 -2
- package/dist/discrete/components/layers/ErrorBarElement.d.ts.map +1 -1
- package/dist/discrete/components/layers/ErrorBarElement.js +15 -15
- package/dist/discrete/components/layers/ErrorBarElement.js.map +1 -1
- package/dist/discrete/components/layers/LineElement.d.ts +2 -2
- package/dist/discrete/components/layers/LineElement.d.ts.map +1 -1
- package/dist/discrete/components/layers/LineElement.js +12 -12
- package/dist/discrete/components/layers/LineElement.js.map +1 -1
- package/dist/discrete/components/layers/LogoElement.d.ts +2 -2
- package/dist/discrete/components/layers/LogoElement.d.ts.map +1 -1
- package/dist/discrete/components/layers/LogoElement.js +19 -19
- package/dist/discrete/components/layers/LogoElement.js.map +1 -1
- package/dist/discrete/components/layers/PairedPointsElement.d.ts +2 -2
- package/dist/discrete/components/layers/PairedPointsElement.d.ts.map +1 -1
- package/dist/discrete/components/layers/PairedPointsElement.js +37 -37
- package/dist/discrete/components/layers/PairedPointsElement.js.map +1 -1
- package/dist/discrete/components/layers/StackedBarElement.d.ts +3 -3
- package/dist/discrete/components/layers/StackedBarElement.d.ts.map +1 -1
- package/dist/discrete/components/layers/StackedBarElement.js +18 -18
- package/dist/discrete/components/layers/StackedBarElement.js.map +1 -1
- package/dist/discrete/components/layers/ViolinElement.d.ts +4 -4
- package/dist/discrete/components/layers/ViolinElement.d.ts.map +1 -1
- package/dist/discrete/components/layers/ViolinElement.js +7 -7
- package/dist/discrete/components/layers/ViolinElement.js.map +1 -1
- package/dist/heatmap/components/Annotations/Annotation.d.ts +2 -2
- package/dist/heatmap/components/Annotations/Annotation.d.ts.map +1 -1
- package/dist/heatmap/components/Annotations/Annotation.js +16 -16
- package/dist/heatmap/components/Annotations/Annotation.js.map +1 -1
- package/dist/heatmap/components/Chart.d.ts +1 -1
- package/dist/heatmap/components/Chart.d.ts.map +1 -1
- package/dist/heatmap/components/Chart.js +28 -28
- package/dist/heatmap/components/Chart.js.map +1 -1
- package/dist/histogram/components/Chart.d.ts +2 -2
- package/dist/histogram/components/Chart.d.ts.map +1 -1
- package/dist/histogram/components/Chart.js +22 -22
- package/dist/histogram/components/Chart.js.map +1 -1
- package/dist/scatterplot/components/Chart.d.ts +6 -11
- package/dist/scatterplot/components/Chart.d.ts.map +1 -1
- package/dist/scatterplot/components/Chart.js +101 -331
- package/dist/scatterplot/components/Chart.js.map +1 -1
- package/dist/scatterplot/components/ChartAxis.d.ts +20 -0
- package/dist/scatterplot/components/ChartAxis.d.ts.map +1 -0
- package/dist/scatterplot/components/ChartAxis.js +52 -0
- package/dist/scatterplot/components/ChartAxis.js.map +1 -0
- package/dist/scatterplot/components/ChartAxisTitles.d.ts +15 -0
- package/dist/scatterplot/components/ChartAxisTitles.d.ts.map +1 -0
- package/dist/scatterplot/components/ChartAxisTitles.js +56 -0
- package/dist/scatterplot/components/ChartAxisTitles.js.map +1 -0
- package/dist/scatterplot/components/ChartFacetTitle.d.ts +11 -0
- package/dist/scatterplot/components/ChartFacetTitle.d.ts.map +1 -0
- package/dist/scatterplot/components/ChartFacetTitle.js +37 -0
- package/dist/scatterplot/components/ChartFacetTitle.js.map +1 -0
- package/dist/scatterplot/components/ChartLayersData.d.ts +39 -0
- package/dist/scatterplot/components/ChartLayersData.d.ts.map +1 -0
- package/dist/scatterplot/components/ChartLayersData.js +250 -0
- package/dist/scatterplot/components/ChartLayersData.js.map +1 -0
- package/dist/scatterplot/components/ChartTooltip.d.ts +18 -0
- package/dist/scatterplot/components/ChartTooltip.d.ts.map +1 -0
- package/dist/scatterplot/components/ChartTooltip.js +58 -0
- package/dist/scatterplot/components/ChartTooltip.js.map +1 -0
- package/dist/scatterplot/components/ChartTrendsData.d.ts +11 -0
- package/dist/scatterplot/components/ChartTrendsData.d.ts.map +1 -0
- package/dist/scatterplot/components/ChartTrendsData.js +65 -0
- package/dist/scatterplot/components/ChartTrendsData.js.map +1 -0
- package/dist/scatterplot/components/ChartsGroup.d.ts +3 -3
- package/dist/scatterplot/components/ChartsGroup.d.ts.map +1 -1
- package/dist/scatterplot/components/ChartsGroup.js +81 -73
- package/dist/scatterplot/components/ChartsGroup.js.map +1 -1
- package/dist/scatterplot/dots.d.ts +0 -2
- package/dist/scatterplot/dots.d.ts.map +1 -1
- package/dist/scatterplot/dots.js +26 -22
- package/dist/scatterplot/dots.js.map +1 -1
- package/dist/scatterplot-umap/components/SVGLayer.d.ts.map +1 -1
- package/dist/scatterplot-umap/components/SVGLayer.js +32 -32
- package/dist/scatterplot-umap/components/SVGLayer.js.map +1 -1
- package/dist/scatterplot-umap/components/UpperSVG.d.ts +1 -1
- package/dist/scatterplot-umap/components/UpperSVG.d.ts.map +1 -1
- package/dist/scatterplot-umap/components/UpperSVG.js +18 -18
- package/dist/scatterplot-umap/components/UpperSVG.js.map +1 -1
- package/dist/scatterplot-umap/index.d.ts +2 -2
- package/dist/scatterplot-umap/index.d.ts.map +1 -1
- package/dist/scatterplot-umap/index.js +26 -25
- package/dist/scatterplot-umap/index.js.map +1 -1
- package/dist/utils/hooks/useFunction.d.ts +2 -0
- package/dist/utils/hooks/useFunction.d.ts.map +1 -0
- package/dist/utils/hooks/useFunction.js +9 -0
- package/dist/utils/hooks/useFunction.js.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartTrendsData.js","sources":["../../../src/scatterplot/components/ChartTrendsData.tsx"],"sourcesContent":["import lodash from 'lodash';\nimport { memo, type ReactElement } from 'react';\nimport { numberFormat } from '../../utils/numberFormat';\nimport type { TrendsData } from '../linearRegression';\nimport type {\n AesGetters,\n ChartScales\n} from './types';\n\ninterface Props {\n trendsData: TrendsData[keyof TrendsData] | null;\n width: number;\n scales: ChartScales;\n aesGetters: AesGetters;\n}\n\nexport const ChartTrendsData = memo(({\n width,\n scales,\n trendsData,\n aesGetters,\n}: Props) => {\n return (trendsData &&\n trendsData.map(({predict, getArea, data, bounded, xBounds, stats}, idx) => {\n const [minX, maxX] = bounded ? xBounds : scales.x.domain();\n const step = (maxX - minX) / 15;\n const p1 = predict(minX);\n const p2 = predict(maxX);\n if (isNaN(p1) || isNaN(p2)) {\n return null;\n }\n const fillColor = aesGetters.trendColor(data);\n return (\n <g key={idx}>\n <text y={idx * 20 + 20} fill={fillColor} x={width - 8} textAnchor=\"end\">\n {formatStats(stats)}\n </text>\n <path\n d={getArea(scales.x, scales.y, lodash.range(minX, maxX + step / 2, step))}\n fill={fillColor}\n opacity={0.2}\n />\n <line\n x1={scales.x(minX)}\n x2={scales.x(maxX)}\n y1={scales.y(p1)}\n y2={scales.y(p2)}\n stroke={fillColor}\n />\n </g>\n );\n })\n );\n});\n\nfunction formatR2(stats: TrendsData[keyof TrendsData][number]['stats']) {\n if (typeof stats.r2 === 'undefined') {\n return null;\n }\n return (\n <>\n <tspan>R</tspan>\n <tspan fontSize=\"10px\" dy=\"-8\">\n 2\n </tspan>\n <tspan dy=\"8\">{` = ${numberFormat(stats.r2)}`}</tspan>\n </>\n );\n}\n\nfunction formatPValue(stats: TrendsData[keyof TrendsData][number]['stats']) {\n if (typeof stats.pValue === 'undefined') {\n return null;\n }\n return <tspan>{`p-value = ${numberFormat(stats.pValue)}`}</tspan>;\n}\n\nfunction formatCoefficients(stats: TrendsData[keyof TrendsData][number]['stats']) {\n if (typeof stats.coefficients === 'undefined') {\n return null;\n }\n const {slope, slopeError, intercept, interceptError} = stats.coefficients;\n return (\n <tspan>\n <tspan>\n {`slope = ${numberFormat(slope)} ± ${numberFormat(slopeError)}, intercept = ${numberFormat(intercept)} ± ${numberFormat(interceptError)}`}\n </tspan>\n </tspan>\n );\n}\n\nfunction formatStats(stats: TrendsData[keyof TrendsData][number]['stats']) {\n const items = [formatR2(stats), formatPValue(stats), formatCoefficients(stats)].filter(\n value => value !== null\n ) as unknown as ReactElement[];\n return (\n <>\n {items.map((item, idx) => (\n <tspan key={idx}>\n {item}\n <tspan>{idx < items.length - 1 && ', '}</tspan>\n </tspan>\n ))}\n </>\n );\n}\n\n"],"names":["ChartTrendsData","memo","width","scales","trendsData","aesGetters","predict","getArea","data","bounded","xBounds","stats","idx","minX","maxX","step","p1","p2","fillColor","jsx","formatStats","lodash","formatR2","jsxs","Fragment","numberFormat","formatPValue","formatCoefficients","slope","slopeError","intercept","interceptError","items","value","item"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LegendData } from '../../common/types';
|
|
2
|
+
import { ColumnName } from '../../types';
|
|
2
3
|
import { GroupedDots } from '../dots';
|
|
3
4
|
import { ScatterplotLayerData } from '../getLayersData';
|
|
4
5
|
import { TrendsData } from '../linearRegression';
|
|
5
6
|
import { ScatterplotSettingsImpl } from '../ScatterplotSettingsImpl';
|
|
6
|
-
import {
|
|
7
|
-
import { LegendData } from '../../common/types';
|
|
7
|
+
import { AesGetters, CaptionsSizes, ChartDimensionsData, ChartSizes, ChartsScales, Margins } from './types';
|
|
8
8
|
interface ChartsGroupProps {
|
|
9
9
|
chartSettings: ScatterplotSettingsImpl['chartSettings'];
|
|
10
10
|
facetSettings: ScatterplotSettingsImpl['facetSettings'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartsGroup.d.ts","sourceRoot":"","sources":["../../../src/scatterplot/components/ChartsGroup.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChartsGroup.d.ts","sourceRoot":"","sources":["../../../src/scatterplot/components/ChartsGroup.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAO,WAAW,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAG1E,OAAO,KAAK,EACR,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,OAAO,EACV,MAAM,SAAS,CAAC;AAEjB,UAAU,gBAAgB;IACtB,aAAa,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAC;IACxD,aAAa,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAC;IACxD,UAAU,EAAE,UAAU,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACtD,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACtC,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE;QAAC,CAAC,EAAE,OAAO,CAAC;QAAC,CAAC,EAAE,OAAO,CAAA;KAAC,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;IACnD,UAAU,EAAE,UAAU,CAAC;IACvB,mBAAmB,EAAE,CAAC,CAAC,EAAC,OAAO,KAAK,IAAI,CAAC;CAC5C;AAED,wBAAgB,WAAW,CAAC,EACxB,UAAU,EACV,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,MAAM,EACN,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,SAAS,EACT,SAAS,EACT,WAAW,EACX,aAAa,EACb,YAAY,EACZ,UAAU,EACV,UAAU,EACV,mBAAmB,EACtB,EAAE,gBAAgB,2CAiFlB"}
|
|
@@ -1,96 +1,104 @@
|
|
|
1
1
|
import { j as r } from "../../node_modules/react/jsx-runtime.js";
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import { Legend as
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
2
|
+
import { r as A } from "../../_virtual/index.js";
|
|
3
|
+
import { ChartsTitle as I } from "../../common/ChartsTitle.js";
|
|
4
|
+
import { ErrorBoundary as O } from "../../common/ErrorBoundary.js";
|
|
5
|
+
import G from "../../common/fonts.js";
|
|
6
|
+
import { Legend as N } from "../../common/Legend.js";
|
|
7
|
+
import { useTooltip as R } from "../../common/Tooltip.js";
|
|
8
|
+
import { LEGEND_OFFSET as _ } from "../constants.js";
|
|
9
|
+
import { Chart as q } from "./Chart.js";
|
|
10
|
+
import { ChartTooltip as J } from "./ChartTooltip.js";
|
|
11
|
+
function S({
|
|
12
|
+
settingsId: f,
|
|
13
|
+
chartSettings: g,
|
|
14
|
+
chartSizes: o,
|
|
15
|
+
chartsDimensions: e,
|
|
16
|
+
facetKeys: i,
|
|
17
|
+
facetSettings: x,
|
|
18
|
+
scales: d,
|
|
19
|
+
groupedDots: u,
|
|
20
|
+
legendData: j,
|
|
21
|
+
trendsData: s,
|
|
21
22
|
columnsCount: c,
|
|
22
|
-
margins:
|
|
23
|
-
keyColumn:
|
|
24
|
-
mainTitle:
|
|
23
|
+
margins: l,
|
|
24
|
+
keyColumn: w,
|
|
25
|
+
mainTitle: E,
|
|
25
26
|
facetTitles: T,
|
|
26
|
-
captionsSizes:
|
|
27
|
-
onlyPositive:
|
|
28
|
-
layersData:
|
|
29
|
-
aesGetters:
|
|
30
|
-
onTooltipHintSwitch:
|
|
27
|
+
captionsSizes: v,
|
|
28
|
+
onlyPositive: W,
|
|
29
|
+
layersData: C,
|
|
30
|
+
aesGetters: a,
|
|
31
|
+
onTooltipHintSwitch: F
|
|
31
32
|
}) {
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
},
|
|
36
|
-
const { xAxis: L, yAxis: R, title: p, frame: A, legend: B, tooltips: D } = m, f = i[n[0]].padding, G = i[n[c - 1]].padding, I = t.chartsWidth + b, M = f.top;
|
|
37
|
-
return /* @__PURE__ */ r.jsx(J, { dataId: h, children: /* @__PURE__ */ r.jsxs(
|
|
33
|
+
const n = R(F), { xAxis: M, yAxis: $, title: p, frame: L, legend: H, tooltips: P } = g, h = e[i[0]].padding, B = e[i[c - 1]].padding, D = o.chartsWidth + _, b = h.top, m = A.useMemo(() => Object.fromEntries(
|
|
34
|
+
i.map((t) => [t, { x: d.x[t], y: d.y[t] }])
|
|
35
|
+
), [d, i]);
|
|
36
|
+
return /* @__PURE__ */ r.jsx(O, { dataId: f, children: /* @__PURE__ */ r.jsx("div", { style: { position: "relative", width: o.totalWidth, height: o.totalHeight }, children: /* @__PURE__ */ r.jsxs(
|
|
38
37
|
"svg",
|
|
39
38
|
{
|
|
40
39
|
xmlns: "http://www.w3.org/2000/svg",
|
|
41
|
-
viewBox: `0 0 ${
|
|
42
|
-
width:
|
|
43
|
-
height:
|
|
40
|
+
viewBox: `0 0 ${o.totalWidth} ${o.totalHeight}`,
|
|
41
|
+
width: o.totalWidth,
|
|
42
|
+
height: o.totalHeight,
|
|
43
|
+
style: { position: "absolute", top: 0, left: 0, zIndex: 0 },
|
|
44
44
|
children: [
|
|
45
|
-
/* @__PURE__ */ r.jsx("defs", { children:
|
|
46
|
-
/* @__PURE__ */ r.jsxs("g", { transform: `translate(${
|
|
45
|
+
/* @__PURE__ */ r.jsx("defs", { children: G }),
|
|
46
|
+
/* @__PURE__ */ r.jsxs("g", { transform: `translate(${l.left},${l.top})`, fontFamily: "Manrope", children: [
|
|
47
47
|
/* @__PURE__ */ r.jsx(
|
|
48
|
-
|
|
48
|
+
I,
|
|
49
49
|
{
|
|
50
|
-
title:
|
|
50
|
+
title: E,
|
|
51
51
|
show: p.show,
|
|
52
52
|
position: p.position,
|
|
53
|
-
leftPadding:
|
|
54
|
-
rightPadding:
|
|
55
|
-
chartsWidth:
|
|
53
|
+
leftPadding: h.left,
|
|
54
|
+
rightPadding: B.right,
|
|
55
|
+
chartsWidth: o.chartsWidth
|
|
56
56
|
}
|
|
57
57
|
),
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
i.map((t) => /* @__PURE__ */ r.jsx(
|
|
59
|
+
q,
|
|
60
60
|
{
|
|
61
|
-
facetKey:
|
|
62
|
-
scales:
|
|
63
|
-
width:
|
|
64
|
-
height:
|
|
65
|
-
dimensions:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
layersData: W[o],
|
|
80
|
-
onlyPositive: E,
|
|
81
|
-
aesGetters: $,
|
|
82
|
-
tooltipsData: v
|
|
61
|
+
facetKey: t,
|
|
62
|
+
scales: m[t],
|
|
63
|
+
width: o.chartWidth,
|
|
64
|
+
height: o.chartHeight,
|
|
65
|
+
dimensions: e[t],
|
|
66
|
+
facetSettings: x,
|
|
67
|
+
xAxis: M,
|
|
68
|
+
yAxis: $,
|
|
69
|
+
frameType: L.type,
|
|
70
|
+
dotsData: u[t],
|
|
71
|
+
trendsData: s ? s[t] : null,
|
|
72
|
+
facetTitle: T[t],
|
|
73
|
+
captionsSizes: v,
|
|
74
|
+
layersData: C[t],
|
|
75
|
+
onlyPositive: W,
|
|
76
|
+
aesGetters: a,
|
|
77
|
+
onMouseEnterDot: n.onMouseEnter,
|
|
78
|
+
onMouseLeaveDot: n.onMouseLeave
|
|
83
79
|
},
|
|
84
|
-
|
|
80
|
+
t
|
|
85
81
|
)),
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
82
|
+
H.show && /* @__PURE__ */ r.jsx("g", { transform: `translate(${D},${b})`, children: /* @__PURE__ */ r.jsx(N, { legendData: j }) }),
|
|
83
|
+
/* @__PURE__ */ r.jsx(
|
|
84
|
+
J,
|
|
85
|
+
{
|
|
86
|
+
tooltipsData: n,
|
|
87
|
+
dimensions: e[n.currentFacet],
|
|
88
|
+
scales: m[n.currentFacet],
|
|
89
|
+
keyColumn: w,
|
|
90
|
+
margins: l,
|
|
91
|
+
chartSizes: o,
|
|
92
|
+
tooltips: P,
|
|
93
|
+
aesGetters: a
|
|
94
|
+
}
|
|
95
|
+
)
|
|
96
|
+
] })
|
|
89
97
|
]
|
|
90
98
|
}
|
|
91
|
-
) });
|
|
99
|
+
) }) });
|
|
92
100
|
}
|
|
93
101
|
export {
|
|
94
|
-
|
|
102
|
+
S as ChartsGroup
|
|
95
103
|
};
|
|
96
104
|
//# sourceMappingURL=ChartsGroup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartsGroup.js","sources":["../../../src/scatterplot/components/ChartsGroup.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"ChartsGroup.js","sources":["../../../src/scatterplot/components/ChartsGroup.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { ChartsTitle } from '../../common/ChartsTitle';\nimport { ErrorBoundary } from '../../common/ErrorBoundary';\nimport fonts from '../../common/fonts';\nimport { Legend } from '../../common/Legend';\nimport { useTooltip } from '../../common/Tooltip';\nimport type { LegendData } from '../../common/types';\nimport type { ColumnName } from '../../types';\nimport { LEGEND_OFFSET } from '../constants';\nimport type { Dot, GroupedDots } from '../dots';\nimport type { ScatterplotLayerData } from '../getLayersData';\nimport type { TrendsData } from '../linearRegression';\nimport type { ScatterplotSettingsImpl } from '../ScatterplotSettingsImpl';\nimport { Chart } from './Chart';\nimport { ChartTooltip } from './ChartTooltip';\nimport type {\n AesGetters,\n CaptionsSizes,\n ChartDimensionsData,\n ChartSizes,\n ChartsScales,\n Margins,\n} from './types';\n\ninterface ChartsGroupProps {\n chartSettings: ScatterplotSettingsImpl['chartSettings'];\n facetSettings: ScatterplotSettingsImpl['facetSettings'];\n chartSizes: ChartSizes;\n chartsDimensions: Record<string, ChartDimensionsData>;\n scales: ChartsScales;\n facetKeys: string[];\n settingsId: string;\n groupedDots: GroupedDots;\n legendData: LegendData;\n trendsData: TrendsData | null;\n columnsCount: number;\n margins: Margins;\n keyColumn: ColumnName;\n mainTitle: string[];\n facetTitles: Record<string, string[]>;\n captionsSizes: CaptionsSizes;\n onlyPositive: {x: boolean, y: boolean};\n layersData: Record<string, ScatterplotLayerData[]>;\n aesGetters: AesGetters;\n onTooltipHintSwitch: (v:boolean) => void;\n}\n\nexport function ChartsGroup({\n settingsId,\n chartSettings,\n chartSizes,\n chartsDimensions,\n facetKeys,\n facetSettings,\n scales,\n groupedDots,\n legendData,\n trendsData,\n columnsCount,\n margins,\n keyColumn,\n mainTitle,\n facetTitles,\n captionsSizes,\n onlyPositive,\n layersData,\n aesGetters,\n onTooltipHintSwitch\n}: ChartsGroupProps) {\n const tooltipsData = useTooltip<Dot>(onTooltipHintSwitch);\n \n const {xAxis, yAxis, title, frame, legend, tooltips} = chartSettings;\n\n const leftTopChartPadding = chartsDimensions[facetKeys[0]].padding;\n const rightTopChartPadding = chartsDimensions[facetKeys[columnsCount - 1]].padding;\n\n const legendLeft = chartSizes.chartsWidth + LEGEND_OFFSET;\n const legendTop = leftTopChartPadding.top;\n\n const scalesByFacet = useMemo(() => {\n return Object.fromEntries(\n facetKeys.map(key => [key, {x: scales.x[key], y: scales.y[key]}])\n );\n }, [scales, facetKeys]);\n\n return (\n <ErrorBoundary dataId={settingsId}>\n <div style={{ position: 'relative', width: chartSizes.totalWidth, height: chartSizes.totalHeight }}>\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={{ position: 'absolute', top: 0, left: 0, zIndex: 0 }}\n >\n <defs>{fonts}</defs>\n <g transform={`translate(${margins.left},${margins.top})`} fontFamily=\"Manrope\">\n <ChartsTitle\n title={mainTitle}\n show={title.show}\n position={title.position}\n leftPadding={leftTopChartPadding.left}\n rightPadding={rightTopChartPadding.right}\n chartsWidth={chartSizes.chartsWidth}\n />\n {facetKeys.map(key => (\n <Chart\n key={key}\n facetKey={key}\n scales={scalesByFacet[key]}\n width={chartSizes.chartWidth}\n height={chartSizes.chartHeight}\n dimensions={chartsDimensions[key]}\n facetSettings={facetSettings}\n xAxis={xAxis}\n yAxis={yAxis}\n frameType={frame.type}\n dotsData={groupedDots[key]}\n trendsData={trendsData ? trendsData[key] : null}\n facetTitle={facetTitles[key]}\n captionsSizes={captionsSizes}\n layersData={layersData[key]}\n onlyPositive={onlyPositive}\n aesGetters={aesGetters}\n onMouseEnterDot={tooltipsData.onMouseEnter}\n onMouseLeaveDot={tooltipsData.onMouseLeave}\n />\n ))}\n {legend.show && (\n <g transform={`translate(${legendLeft},${legendTop})`}>\n <Legend legendData={legendData} />\n </g>\n )}\n\n <ChartTooltip\n tooltipsData={tooltipsData}\n dimensions={chartsDimensions[tooltipsData.currentFacet]}\n scales={scalesByFacet[tooltipsData.currentFacet]}\n keyColumn={keyColumn}\n margins={margins}\n chartSizes={chartSizes}\n tooltips={tooltips}\n aesGetters={aesGetters}\n />\n </g>\n </svg>\n </div>\n </ErrorBoundary>\n );\n}\n"],"names":["ChartsGroup","settingsId","chartSettings","chartSizes","chartsDimensions","facetKeys","facetSettings","scales","groupedDots","legendData","trendsData","columnsCount","margins","keyColumn","mainTitle","facetTitles","captionsSizes","onlyPositive","layersData","aesGetters","onTooltipHintSwitch","tooltipsData","useTooltip","xAxis","yAxis","title","frame","legend","tooltips","leftTopChartPadding","rightTopChartPadding","legendLeft","LEGEND_OFFSET","legendTop","scalesByFacet","useMemo","key","ErrorBoundary","jsx","jsxs","fonts","ChartsTitle","Chart","Legend","ChartTooltip"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dots.d.ts","sourceRoot":"","sources":["../../src/scatterplot/dots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"dots.d.ts","sourceRoot":"","sources":["../../src/scatterplot/dots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE3D,MAAM,MAAM,GAAG,GAAG;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,GAAG,CAAA;CACZ,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,CAC5B,MAAM,EACN;IACI,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;CACf,CACJ,CAAC;AAEF,wBAAgB,OAAO,CACnB,IAAI,EAAE,SAAS,EACf,qBAAqB,EAAE,MAAM,EAAE,EAAE,EACjC,CAAC,EAAE,UAAU,EACb,CAAC,EAAE,UAAU,EACb,KAAK,EAAE,UAAU,GAAG,IAAI,EACxB,SAAS,EAAE,UAAU,GAAG,IAAI,EAC5B,IAAI,EAAE,MAAM,EAAE,GACf,WAAW,CAkDb"}
|
package/dist/scatterplot/dots.js
CHANGED
|
@@ -1,30 +1,34 @@
|
|
|
1
|
-
function
|
|
2
|
-
const
|
|
3
|
-
|
|
1
|
+
function g(p, h, d, I, a, y, M) {
|
|
2
|
+
const x = {};
|
|
3
|
+
for (const v of h) {
|
|
4
4
|
const l = [];
|
|
5
|
-
let
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
5
|
+
let s = 1 / 0, i = 1 / 0, u = -1 / 0, c = -1 / 0;
|
|
6
|
+
const r = v.concat([""]);
|
|
7
|
+
for (const f of M) {
|
|
8
|
+
r[r.length - 1] = f;
|
|
9
|
+
const n = p.getRowsByGrouping(r);
|
|
10
|
+
for (let m = 0; m < n.length; m++) {
|
|
11
|
+
const t = n[m], e = t[d.value], o = t[I.value];
|
|
12
|
+
e === null && o === null || (s = Math.min(s, e), i = Math.min(i, o), u = Math.max(u, e), c = Math.max(c, o), l.push({
|
|
13
|
+
x: e,
|
|
14
|
+
y: o,
|
|
15
|
+
label: a ? t[a.valueLabels ?? a.value] : null,
|
|
16
|
+
dimmed: y ? !t[y.value] : !1,
|
|
15
17
|
data: t
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
l.sort((f, n) => f.x - n.x), x[v.join("_")] = {
|
|
22
|
+
minX: s,
|
|
23
|
+
maxX: u,
|
|
24
|
+
minY: i,
|
|
25
|
+
maxY: c,
|
|
23
26
|
dots: l
|
|
24
27
|
};
|
|
25
|
-
}
|
|
28
|
+
}
|
|
29
|
+
return x;
|
|
26
30
|
}
|
|
27
31
|
export {
|
|
28
|
-
|
|
32
|
+
g as getDots
|
|
29
33
|
};
|
|
30
34
|
//# sourceMappingURL=dots.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dots.js","sources":["../../src/scatterplot/dots.ts"],"sourcesContent":["import type {DataFrame} from '../DataFrame';\nimport type {ColumnName, DataValue, Row} from '../types';\n\nexport type Dot = {\n
|
|
1
|
+
{"version":3,"file":"dots.js","sources":["../../src/scatterplot/dots.ts"],"sourcesContent":["import type { DataFrame } from '../DataFrame';\nimport type { ColumnName, DataValue, Row } from '../types';\n\nexport type Dot = {\n x: number;\n y: number;\n label: DataValue | null;\n dimmed: boolean;\n data: Row\n};\n\nexport type GroupedDots = Record<\n string,\n {\n minX: number;\n maxX: number;\n minY: number;\n maxY: number;\n dots: Dot[];\n }\n>;\n\nexport function getDots(\n data: DataFrame,\n facetKeysCombinations: string[][],\n x: ColumnName,\n y: ColumnName,\n label: ColumnName | null,\n highlight: ColumnName | null,\n keys: string[]\n): GroupedDots {\n const result: GroupedDots = {};\n\n for (const facetKeys of facetKeysCombinations) {\n const dots: Dot[] = [];\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n\n const templateGroupPath = facetKeys.concat(['']);\n\n for (const primaryKey of keys) {\n templateGroupPath[templateGroupPath.length - 1] = primaryKey;\n const rows = data.getRowsByGrouping(templateGroupPath);\n\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i];\n const valueX = row[x.value] as number;\n const valueY = row[y.value] as number;\n\n if (valueX === null && valueY === null) continue;\n\n minX = Math.min(minX, valueX);\n minY = Math.min(minY, valueY);\n maxX = Math.max(maxX, valueX);\n maxY = Math.max(maxY, valueY);\n \n dots.push({\n x: valueX,\n y: valueY,\n label: label ? row[label.valueLabels ?? label.value] : null,\n dimmed: highlight ? !row[highlight.value] : false,\n data: row\n });\n }\n }\n\n dots.sort((d1, d2) => d1.x - d2.x);\n\n result[facetKeys.join('_')] = {\n minX,\n maxX,\n minY,\n maxY,\n dots,\n };\n }\n\n return result;\n}\n"],"names":["getDots","data","facetKeysCombinations","x","y","label","highlight","keys","result","facetKeys","dots","minX","minY","maxX","maxY","templateGroupPath","primaryKey","rows","i","row","valueX","valueY","d1","d2"],"mappings":"AAsBO,SAASA,EACZC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACW;AACX,QAAMC,IAAsB,CAAA;AAE5B,aAAWC,KAAaP,GAAuB;AAC3C,UAAMQ,IAAc,CAAA;AACpB,QAAIC,IAAO,OACPC,IAAO,OACPC,IAAO,QACPC,IAAO;AAEX,UAAMC,IAAoBN,EAAU,OAAO,CAAC,EAAE,CAAC;AAE/C,eAAWO,KAAcT,GAAM;AAC3B,MAAAQ,EAAkBA,EAAkB,SAAS,CAAC,IAAIC;AAClD,YAAMC,IAAOhB,EAAK,kBAAkBc,CAAiB;AAErD,eAASG,IAAI,GAAGA,IAAID,EAAK,QAAQC,KAAK;AAClC,cAAMC,IAAMF,EAAKC,CAAC,GACZE,IAASD,EAAIhB,EAAE,KAAK,GACpBkB,IAASF,EAAIf,EAAE,KAAK;AAE1B,QAAIgB,MAAW,QAAQC,MAAW,SAElCV,IAAO,KAAK,IAAIA,GAAMS,CAAM,GAC5BR,IAAO,KAAK,IAAIA,GAAMS,CAAM,GAC5BR,IAAO,KAAK,IAAIA,GAAMO,CAAM,GAC5BN,IAAO,KAAK,IAAIA,GAAMO,CAAM,GAE5BX,EAAK,KAAK;AAAA,UACN,GAAGU;AAAA,UACH,GAAGC;AAAA,UACH,OAAOhB,IAAQc,EAAId,EAAM,eAAeA,EAAM,KAAK,IAAI;AAAA,UACvD,QAAQC,IAAY,CAACa,EAAIb,EAAU,KAAK,IAAI;AAAA,UAC5C,MAAMa;AAAA,QAAA,CACT;AAAA,MACL;AAAA,IACJ;AAEA,IAAAT,EAAK,KAAK,CAACY,GAAIC,MAAOD,EAAG,IAAIC,EAAG,CAAC,GAEjCf,EAAOC,EAAU,KAAK,GAAG,CAAC,IAAI;AAAA,MAC1B,MAAAE;AAAA,MACA,MAAAE;AAAA,MACA,MAAAD;AAAA,MACA,MAAAE;AAAA,MACA,MAAAJ;AAAA,IAAA;AAAA,EAER;AAEA,SAAOF;AACX;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SVGLayer.d.ts","sourceRoot":"","sources":["../../../src/scatterplot-umap/components/SVGLayer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"SVGLayer.d.ts","sourceRoot":"","sources":["../../../src/scatterplot-umap/components/SVGLayer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAW,aAAa,EAAE,MAAM,UAAU,CAAC;AAIvD,wBAAgB,QAAQ,CAAC,EACrB,UAAU,EACV,MAAM,EACN,aAAa,EACb,SAAS,EACT,SAAS,EACT,OAAO,EACP,UAAU,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,UAAU,EACV,UAAU,EACV,MAAM,EACN,eAAe,EACf,mBAAmB,EACnB,0BAA0B,EAC1B,cAAc,EACd,MAAM,EACN,eAAe,EACf,WAAkB,GACrB,EAAE,aAAa,kDAoDf"}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import { j as p } from "../../node_modules/react/jsx-runtime.js";
|
|
2
|
-
import {
|
|
3
|
-
import y from "
|
|
4
|
-
import B from "
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
function
|
|
2
|
+
import { r as w } from "../../_virtual/index.js";
|
|
3
|
+
import { r as y } from "../../node_modules/react-dom/index.js";
|
|
4
|
+
import { ErrorBoundary as B } from "../../common/ErrorBoundary.js";
|
|
5
|
+
import { useTooltip as G } from "../../common/Tooltip.js";
|
|
6
|
+
import I from "./LowerSVG.js";
|
|
7
|
+
import P from "./UpperSVG.js";
|
|
8
|
+
function q({
|
|
9
9
|
settingsId: s,
|
|
10
|
-
scales:
|
|
10
|
+
scales: t,
|
|
11
11
|
chartSettings: x,
|
|
12
|
-
mainTitle:
|
|
13
|
-
keyColumn:
|
|
12
|
+
mainTitle: n,
|
|
13
|
+
keyColumn: a,
|
|
14
14
|
margins: j,
|
|
15
|
-
chartSizes:
|
|
15
|
+
chartSizes: f,
|
|
16
16
|
captionsSizes: l,
|
|
17
17
|
onlyPositive: E,
|
|
18
18
|
container: r,
|
|
19
|
-
zoomStateKey:
|
|
19
|
+
zoomStateKey: i,
|
|
20
20
|
aesGetters: u,
|
|
21
21
|
legendData: e,
|
|
22
|
-
labels:
|
|
23
|
-
onPolygonUpdate:
|
|
22
|
+
labels: d,
|
|
23
|
+
onPolygonUpdate: v,
|
|
24
24
|
onTooltipHintSwitch: L,
|
|
25
25
|
onLassoControlsStateUpdate: M,
|
|
26
26
|
dotsByGrouping: V,
|
|
@@ -30,43 +30,43 @@ function k({
|
|
|
30
30
|
}) {
|
|
31
31
|
if (!r)
|
|
32
32
|
return null;
|
|
33
|
-
const m =
|
|
34
|
-
return
|
|
35
|
-
o ? m.
|
|
36
|
-
}, [o]), /* @__PURE__ */ p.jsx("div", { children: /* @__PURE__ */ p.jsxs(
|
|
33
|
+
const m = G(L);
|
|
34
|
+
return w.useEffect(() => {
|
|
35
|
+
o ? m.onMouseEnter(o) : m.onMouseLeave();
|
|
36
|
+
}, [o]), /* @__PURE__ */ p.jsx("div", { children: /* @__PURE__ */ p.jsxs(B, { dataId: s, children: [
|
|
37
37
|
/* @__PURE__ */ p.jsx(
|
|
38
|
-
|
|
38
|
+
I,
|
|
39
39
|
{
|
|
40
40
|
aesGetters: u,
|
|
41
41
|
dotsByGrouping: V,
|
|
42
42
|
layers: g,
|
|
43
|
-
scales:
|
|
44
|
-
keyColumn:
|
|
43
|
+
scales: t,
|
|
44
|
+
keyColumn: a,
|
|
45
45
|
margins: j,
|
|
46
|
-
mainTitle:
|
|
46
|
+
mainTitle: n,
|
|
47
47
|
captionsSizes: l,
|
|
48
48
|
chartSettings: x,
|
|
49
|
-
chartSizes:
|
|
49
|
+
chartSizes: f,
|
|
50
50
|
onlyPositive: E,
|
|
51
51
|
container: r,
|
|
52
|
-
zoomStateKey:
|
|
52
|
+
zoomStateKey: i,
|
|
53
53
|
legendData: e,
|
|
54
54
|
tooltipData: m
|
|
55
55
|
}
|
|
56
56
|
),
|
|
57
|
-
|
|
57
|
+
y.createPortal(
|
|
58
58
|
/* @__PURE__ */ p.jsx(
|
|
59
|
-
|
|
59
|
+
P,
|
|
60
60
|
{
|
|
61
|
-
scales:
|
|
61
|
+
scales: t,
|
|
62
62
|
container: r,
|
|
63
63
|
aesGetters: u,
|
|
64
|
-
labels:
|
|
65
|
-
chartSizes:
|
|
66
|
-
zoomStateKey:
|
|
64
|
+
labels: d,
|
|
65
|
+
chartSizes: f,
|
|
66
|
+
zoomStateKey: i,
|
|
67
67
|
selectedDot: o,
|
|
68
68
|
defaultPolygons: h,
|
|
69
|
-
onPolygonUpdate:
|
|
69
|
+
onPolygonUpdate: v,
|
|
70
70
|
onLassoControlsStateUpdate: M,
|
|
71
71
|
tooltipData: m
|
|
72
72
|
}
|
|
@@ -76,6 +76,6 @@ function k({
|
|
|
76
76
|
] }) });
|
|
77
77
|
}
|
|
78
78
|
export {
|
|
79
|
-
|
|
79
|
+
q as SVGLayer
|
|
80
80
|
};
|
|
81
81
|
//# sourceMappingURL=SVGLayer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SVGLayer.js","sources":["../../../src/scatterplot-umap/components/SVGLayer.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"SVGLayer.js","sources":["../../../src/scatterplot-umap/components/SVGLayer.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { ErrorBoundary } from '../../common/ErrorBoundary';\nimport { useTooltip } from '../../common/Tooltip';\nimport type { DotInfo, SVGLayerProps } from '../types';\nimport LowerSvg from './LowerSVG';\nimport UpperSVG from './UpperSVG';\n\nexport function SVGLayer({\n settingsId,\n scales,\n chartSettings,\n mainTitle,\n keyColumn,\n margins,\n chartSizes,\n captionsSizes,\n onlyPositive,\n container,\n zoomStateKey,\n aesGetters,\n legendData,\n labels,\n onPolygonUpdate,\n onTooltipHintSwitch,\n onLassoControlsStateUpdate,\n dotsByGrouping,\n layers,\n defaultPolygons,\n selectedDot = null,\n}: SVGLayerProps) {\n if (!container) {\n return null;\n }\n const tooltipData = useTooltip<DotInfo>(onTooltipHintSwitch);\n useEffect(() => {\n if (selectedDot) {\n tooltipData.onMouseEnter(selectedDot);\n } else {\n tooltipData.onMouseLeave();\n }\n }, [selectedDot]);\n\n return (\n <div>\n <ErrorBoundary dataId={settingsId}>\n <LowerSvg\n aesGetters={aesGetters}\n dotsByGrouping={dotsByGrouping}\n layers={layers}\n scales={scales}\n keyColumn={keyColumn}\n margins={margins}\n mainTitle={mainTitle}\n captionsSizes={captionsSizes}\n chartSettings={chartSettings}\n chartSizes={chartSizes}\n onlyPositive={onlyPositive}\n container={container}\n zoomStateKey={zoomStateKey}\n legendData={legendData}\n tooltipData={tooltipData}\n />\n {createPortal(\n <UpperSVG\n scales={scales}\n container={container}\n aesGetters={aesGetters}\n labels={labels}\n chartSizes={chartSizes}\n zoomStateKey={zoomStateKey}\n selectedDot={selectedDot}\n defaultPolygons={defaultPolygons}\n onPolygonUpdate={onPolygonUpdate}\n onLassoControlsStateUpdate={onLassoControlsStateUpdate}\n tooltipData={tooltipData}\n />,\n container\n )}\n </ErrorBoundary>\n </div>\n );\n}\n"],"names":["SVGLayer","settingsId","scales","chartSettings","mainTitle","keyColumn","margins","chartSizes","captionsSizes","onlyPositive","container","zoomStateKey","aesGetters","legendData","labels","onPolygonUpdate","onTooltipHintSwitch","onLassoControlsStateUpdate","dotsByGrouping","layers","defaultPolygons","selectedDot","tooltipData","useTooltip","useEffect","jsx","jsxs","ErrorBoundary","LowerSvg","createPortal","UpperSVG"],"mappings":";;;;;;;AAQO,SAASA,EAAS;AAAA,EACrB,YAAAC;AAAA,EACA,QAAAC;AAAA,EACA,eAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,QAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,4BAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,QAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,aAAAC,IAAc;AAClB,GAAkB;AACd,MAAI,CAACX;AACD,WAAO;AAEX,QAAMY,IAAcC,EAAoBP,CAAmB;AAC3DQ,SAAAA,EAAAA,UAAU,MAAM;AACZ,IAAIH,IACAC,EAAY,aAAaD,CAAW,IAEpCC,EAAY,aAAA;AAAA,EAEpB,GAAG,CAACD,CAAW,CAAC,GAGZI,gBAAAA,EAAAA,IAAC,OAAA,EACD,UAAAC,gBAAAA,EAAAA,KAACC,GAAA,EAAc,QAAQ1B,GACnB,UAAA;AAAA,IAAAwB,gBAAAA,EAAAA;AAAAA,MAACG;AAAA,MAAA;AAAA,QACG,YAAAhB;AAAA,QACA,gBAAAM;AAAA,QACA,QAAAC;AAAA,QACA,QAAAjB;AAAA,QACA,WAAAG;AAAA,QACA,SAAAC;AAAA,QACA,WAAAF;AAAA,QACA,eAAAI;AAAA,QACA,eAAAL;AAAA,QACA,YAAAI;AAAA,QACA,cAAAE;AAAA,QACA,WAAAC;AAAA,QACA,cAAAC;AAAA,QACA,YAAAE;AAAA,QACA,aAAAS;AAAA,MAAA;AAAA,IAAA;AAAA,IAEHO,EAAAA;AAAAA,MACGJ,gBAAAA,EAAAA;AAAAA,QAACK;AAAA,QAAA;AAAA,UACG,QAAA5B;AAAA,UACA,WAAAQ;AAAA,UACA,YAAAE;AAAA,UACA,QAAAE;AAAA,UACA,YAAAP;AAAA,UACA,cAAAI;AAAA,UACA,aAAAU;AAAA,UACA,iBAAAD;AAAA,UACA,iBAAAL;AAAA,UACA,4BAAAE;AAAA,UACA,aAAAK;AAAA,QAAA;AAAA,MAAA;AAAA,MAEJZ;AAAA,IAAA;AAAA,EACJ,EAAA,CACJ,EAAA,CACA;AAER;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TooltipsData } from '../../common/Tooltip';
|
|
2
|
-
import { AesGetters, LassoControlsState, Polygon, ChartScales, ChartSizes, DotInfo } from '../types';
|
|
3
2
|
import { Label } from '../../scatterplot/utils/getVisibleLabels';
|
|
3
|
+
import { AesGetters, ChartScales, ChartSizes, DotInfo, LassoControlsState, Polygon } from '../types';
|
|
4
4
|
declare function UpperSVG({ scales, container, labels, aesGetters, chartSizes, zoomStateKey, defaultPolygons, onPolygonUpdate, onLassoControlsStateUpdate, tooltipData }: {
|
|
5
5
|
scales: ChartScales;
|
|
6
6
|
container: SVGElement | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpperSVG.d.ts","sourceRoot":"","sources":["../../../src/scatterplot-umap/components/UpperSVG.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"UpperSVG.d.ts","sourceRoot":"","sources":["../../../src/scatterplot-umap/components/UpperSVG.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0CAA0C,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAG1G,iBAAS,QAAQ,CAAC,EACd,MAAM,EACN,SAAS,EACT,MAAM,EACN,UAAU,EACV,UAAU,EACV,YAAY,EACZ,eAAe,EACf,eAAe,EACf,0BAA0B,EAC1B,WAAW,EACd,EAAE;IACC,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,0BAA0B,EAAE,CAAC,CAAC,EAAC,kBAAkB,KAAK,IAAI,CAAC;IAC3D,eAAe,EAAE,CAAC,IAAI,EAAC,OAAO,EAAE,KAAK,IAAI,CAAC;IAC1C,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC,kDAkDA;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import { j as e } from "../../node_modules/react/jsx-runtime.js";
|
|
2
|
-
import { Lasso as
|
|
3
|
-
function
|
|
2
|
+
import { Lasso as y } from "./Lasso.js";
|
|
3
|
+
function k({
|
|
4
4
|
scales: n,
|
|
5
5
|
container: l,
|
|
6
|
-
labels:
|
|
6
|
+
labels: x,
|
|
7
7
|
aesGetters: i,
|
|
8
8
|
chartSizes: r,
|
|
9
9
|
zoomStateKey: a,
|
|
10
|
-
defaultPolygons:
|
|
11
|
-
onPolygonUpdate:
|
|
12
|
-
onLassoControlsStateUpdate:
|
|
10
|
+
defaultPolygons: o,
|
|
11
|
+
onPolygonUpdate: c,
|
|
12
|
+
onLassoControlsStateUpdate: h,
|
|
13
13
|
tooltipData: t
|
|
14
14
|
}) {
|
|
15
15
|
return l ? /* @__PURE__ */ e.jsxs("g", { children: [
|
|
16
|
-
|
|
17
|
-
const { name:
|
|
18
|
-
return /* @__PURE__ */ e.jsx("g", { children: /* @__PURE__ */ e.jsxs("g", { transform: `translate(${
|
|
19
|
-
/* @__PURE__ */ e.jsx("rect", { x: "0", y: "0", width:
|
|
16
|
+
x.map((m, f) => {
|
|
17
|
+
const { name: j, height: s, bbox: d, width: p } = m;
|
|
18
|
+
return /* @__PURE__ */ e.jsx("g", { children: /* @__PURE__ */ e.jsxs("g", { transform: `translate(${d.minX},${d.minY})`, children: [
|
|
19
|
+
/* @__PURE__ */ e.jsx("rect", { x: "0", y: "0", width: p, height: s, fill: "transparent", stroke: "none" }),
|
|
20
20
|
/* @__PURE__ */ e.jsx(
|
|
21
21
|
"text",
|
|
22
22
|
{
|
|
23
23
|
x: 0,
|
|
24
|
-
y:
|
|
24
|
+
y: s / 2,
|
|
25
25
|
stroke: "white",
|
|
26
26
|
strokeWidth: 2,
|
|
27
27
|
paintOrder: "stroke",
|
|
@@ -29,10 +29,10 @@ function u({
|
|
|
29
29
|
fontFamily: "Manrope",
|
|
30
30
|
fontSize: "16px",
|
|
31
31
|
dominantBaseline: "middle",
|
|
32
|
-
children:
|
|
32
|
+
children: j
|
|
33
33
|
}
|
|
34
34
|
)
|
|
35
|
-
] }) },
|
|
35
|
+
] }) }, f);
|
|
36
36
|
}),
|
|
37
37
|
t.selectedData && /* @__PURE__ */ e.jsx(
|
|
38
38
|
"circle",
|
|
@@ -45,20 +45,20 @@ function u({
|
|
|
45
45
|
}
|
|
46
46
|
),
|
|
47
47
|
/* @__PURE__ */ e.jsx(
|
|
48
|
-
|
|
48
|
+
y,
|
|
49
49
|
{
|
|
50
50
|
scales: n,
|
|
51
51
|
chartSizes: r,
|
|
52
52
|
zoomStateKey: a,
|
|
53
|
-
defaultPolygons:
|
|
54
|
-
onPolygonsApply:
|
|
55
|
-
onLassoControlsStateUpdate:
|
|
53
|
+
defaultPolygons: o,
|
|
54
|
+
onPolygonsApply: c,
|
|
55
|
+
onLassoControlsStateUpdate: h
|
|
56
56
|
}
|
|
57
57
|
),
|
|
58
58
|
t.fixed && /* @__PURE__ */ e.jsx("rect", { width: r.chartWidth, height: r.chartHeight, fill: "rgba(255,255,255,0.8)" })
|
|
59
59
|
] }) : null;
|
|
60
60
|
}
|
|
61
61
|
export {
|
|
62
|
-
|
|
62
|
+
k as default
|
|
63
63
|
};
|
|
64
64
|
//# sourceMappingURL=UpperSVG.js.map
|