@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.
Files changed (112) hide show
  1. package/dist/DataFrame.d.ts +7 -5
  2. package/dist/DataFrame.d.ts.map +1 -1
  3. package/dist/DataFrame.js +67 -60
  4. package/dist/DataFrame.js.map +1 -1
  5. package/dist/bubble/components/Chart.d.ts +3 -3
  6. package/dist/bubble/components/Chart.d.ts.map +1 -1
  7. package/dist/bubble/components/Chart.js +23 -23
  8. package/dist/bubble/components/Chart.js.map +1 -1
  9. package/dist/common/Tooltip.d.ts +1 -1
  10. package/dist/common/Tooltip.d.ts.map +1 -1
  11. package/dist/common/Tooltip.js +17 -17
  12. package/dist/common/Tooltip.js.map +1 -1
  13. package/dist/discrete/components/layers/BinnedDotsElement.d.ts +2 -2
  14. package/dist/discrete/components/layers/BinnedDotsElement.d.ts.map +1 -1
  15. package/dist/discrete/components/layers/BinnedDotsElement.js +9 -9
  16. package/dist/discrete/components/layers/BinnedDotsElement.js.map +1 -1
  17. package/dist/discrete/components/layers/BoxElement.d.ts +2 -2
  18. package/dist/discrete/components/layers/BoxElement.d.ts.map +1 -1
  19. package/dist/discrete/components/layers/BoxElement.js +19 -19
  20. package/dist/discrete/components/layers/BoxElement.js.map +1 -1
  21. package/dist/discrete/components/layers/DotsGroupElement.d.ts +3 -3
  22. package/dist/discrete/components/layers/DotsGroupElement.d.ts.map +1 -1
  23. package/dist/discrete/components/layers/DotsGroupElement.js +10 -10
  24. package/dist/discrete/components/layers/DotsGroupElement.js.map +1 -1
  25. package/dist/discrete/components/layers/ErrorBarElement.d.ts +2 -2
  26. package/dist/discrete/components/layers/ErrorBarElement.d.ts.map +1 -1
  27. package/dist/discrete/components/layers/ErrorBarElement.js +15 -15
  28. package/dist/discrete/components/layers/ErrorBarElement.js.map +1 -1
  29. package/dist/discrete/components/layers/LineElement.d.ts +2 -2
  30. package/dist/discrete/components/layers/LineElement.d.ts.map +1 -1
  31. package/dist/discrete/components/layers/LineElement.js +12 -12
  32. package/dist/discrete/components/layers/LineElement.js.map +1 -1
  33. package/dist/discrete/components/layers/LogoElement.d.ts +2 -2
  34. package/dist/discrete/components/layers/LogoElement.d.ts.map +1 -1
  35. package/dist/discrete/components/layers/LogoElement.js +19 -19
  36. package/dist/discrete/components/layers/LogoElement.js.map +1 -1
  37. package/dist/discrete/components/layers/PairedPointsElement.d.ts +2 -2
  38. package/dist/discrete/components/layers/PairedPointsElement.d.ts.map +1 -1
  39. package/dist/discrete/components/layers/PairedPointsElement.js +37 -37
  40. package/dist/discrete/components/layers/PairedPointsElement.js.map +1 -1
  41. package/dist/discrete/components/layers/StackedBarElement.d.ts +3 -3
  42. package/dist/discrete/components/layers/StackedBarElement.d.ts.map +1 -1
  43. package/dist/discrete/components/layers/StackedBarElement.js +18 -18
  44. package/dist/discrete/components/layers/StackedBarElement.js.map +1 -1
  45. package/dist/discrete/components/layers/ViolinElement.d.ts +4 -4
  46. package/dist/discrete/components/layers/ViolinElement.d.ts.map +1 -1
  47. package/dist/discrete/components/layers/ViolinElement.js +7 -7
  48. package/dist/discrete/components/layers/ViolinElement.js.map +1 -1
  49. package/dist/heatmap/components/Annotations/Annotation.d.ts +2 -2
  50. package/dist/heatmap/components/Annotations/Annotation.d.ts.map +1 -1
  51. package/dist/heatmap/components/Annotations/Annotation.js +16 -16
  52. package/dist/heatmap/components/Annotations/Annotation.js.map +1 -1
  53. package/dist/heatmap/components/Chart.d.ts +1 -1
  54. package/dist/heatmap/components/Chart.d.ts.map +1 -1
  55. package/dist/heatmap/components/Chart.js +28 -28
  56. package/dist/heatmap/components/Chart.js.map +1 -1
  57. package/dist/histogram/components/Chart.d.ts +2 -2
  58. package/dist/histogram/components/Chart.d.ts.map +1 -1
  59. package/dist/histogram/components/Chart.js +22 -22
  60. package/dist/histogram/components/Chart.js.map +1 -1
  61. package/dist/scatterplot/components/Chart.d.ts +6 -11
  62. package/dist/scatterplot/components/Chart.d.ts.map +1 -1
  63. package/dist/scatterplot/components/Chart.js +101 -331
  64. package/dist/scatterplot/components/Chart.js.map +1 -1
  65. package/dist/scatterplot/components/ChartAxis.d.ts +20 -0
  66. package/dist/scatterplot/components/ChartAxis.d.ts.map +1 -0
  67. package/dist/scatterplot/components/ChartAxis.js +52 -0
  68. package/dist/scatterplot/components/ChartAxis.js.map +1 -0
  69. package/dist/scatterplot/components/ChartAxisTitles.d.ts +15 -0
  70. package/dist/scatterplot/components/ChartAxisTitles.d.ts.map +1 -0
  71. package/dist/scatterplot/components/ChartAxisTitles.js +56 -0
  72. package/dist/scatterplot/components/ChartAxisTitles.js.map +1 -0
  73. package/dist/scatterplot/components/ChartFacetTitle.d.ts +11 -0
  74. package/dist/scatterplot/components/ChartFacetTitle.d.ts.map +1 -0
  75. package/dist/scatterplot/components/ChartFacetTitle.js +37 -0
  76. package/dist/scatterplot/components/ChartFacetTitle.js.map +1 -0
  77. package/dist/scatterplot/components/ChartLayersData.d.ts +39 -0
  78. package/dist/scatterplot/components/ChartLayersData.d.ts.map +1 -0
  79. package/dist/scatterplot/components/ChartLayersData.js +250 -0
  80. package/dist/scatterplot/components/ChartLayersData.js.map +1 -0
  81. package/dist/scatterplot/components/ChartTooltip.d.ts +18 -0
  82. package/dist/scatterplot/components/ChartTooltip.d.ts.map +1 -0
  83. package/dist/scatterplot/components/ChartTooltip.js +58 -0
  84. package/dist/scatterplot/components/ChartTooltip.js.map +1 -0
  85. package/dist/scatterplot/components/ChartTrendsData.d.ts +11 -0
  86. package/dist/scatterplot/components/ChartTrendsData.d.ts.map +1 -0
  87. package/dist/scatterplot/components/ChartTrendsData.js +65 -0
  88. package/dist/scatterplot/components/ChartTrendsData.js.map +1 -0
  89. package/dist/scatterplot/components/ChartsGroup.d.ts +3 -3
  90. package/dist/scatterplot/components/ChartsGroup.d.ts.map +1 -1
  91. package/dist/scatterplot/components/ChartsGroup.js +81 -73
  92. package/dist/scatterplot/components/ChartsGroup.js.map +1 -1
  93. package/dist/scatterplot/dots.d.ts +0 -2
  94. package/dist/scatterplot/dots.d.ts.map +1 -1
  95. package/dist/scatterplot/dots.js +26 -22
  96. package/dist/scatterplot/dots.js.map +1 -1
  97. package/dist/scatterplot-umap/components/SVGLayer.d.ts.map +1 -1
  98. package/dist/scatterplot-umap/components/SVGLayer.js +32 -32
  99. package/dist/scatterplot-umap/components/SVGLayer.js.map +1 -1
  100. package/dist/scatterplot-umap/components/UpperSVG.d.ts +1 -1
  101. package/dist/scatterplot-umap/components/UpperSVG.d.ts.map +1 -1
  102. package/dist/scatterplot-umap/components/UpperSVG.js +18 -18
  103. package/dist/scatterplot-umap/components/UpperSVG.js.map +1 -1
  104. package/dist/scatterplot-umap/index.d.ts +2 -2
  105. package/dist/scatterplot-umap/index.d.ts.map +1 -1
  106. package/dist/scatterplot-umap/index.js +26 -25
  107. package/dist/scatterplot-umap/index.js.map +1 -1
  108. package/dist/utils/hooks/useFunction.d.ts +2 -0
  109. package/dist/utils/hooks/useFunction.d.ts.map +1 -0
  110. package/dist/utils/hooks/useFunction.js +9 -0
  111. package/dist/utils/hooks/useFunction.js.map +1 -0
  112. 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 { AesGetters, CaptionsSizes, ChartDimensionsData, ChartSizes, ChartsScales, Margins } from './types';
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 { ColumnName } from '../../types';
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":"AAOA,OAAO,KAAK,EACR,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,OAAO,EACV,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAM,WAAW,EAAC,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAE5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,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,2CAyElB"}
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 { ChartsTitle as N } from "../../common/ChartsTitle.js";
3
- import O from "../../common/fonts.js";
4
- import { useTooltip as _ } from "../../common/Tooltip.js";
5
- import { LEGEND_OFFSET as b } from "../constants.js";
6
- import { Legend as q } from "../../common/Legend.js";
7
- import { Chart as y } from "./Chart.js";
8
- import { ErrorBoundary as J } from "../../common/ErrorBoundary.js";
9
- import { r as l } from "../../_virtual/index.js";
10
- function z({
11
- settingsId: h,
12
- chartSettings: m,
13
- chartSizes: t,
14
- chartsDimensions: i,
15
- facetKeys: n,
16
- facetSettings: g,
17
- scales: a,
18
- groupedDots: x,
19
- legendData: u,
20
- trendsData: d,
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: s,
23
- keyColumn: j,
24
- mainTitle: w,
23
+ margins: l,
24
+ keyColumn: w,
25
+ mainTitle: E,
25
26
  facetTitles: T,
26
- captionsSizes: C,
27
- onlyPositive: E,
28
- layersData: W,
29
- aesGetters: $,
30
- onTooltipHintSwitch: P
27
+ captionsSizes: v,
28
+ onlyPositive: W,
29
+ layersData: C,
30
+ aesGetters: a,
31
+ onTooltipHintSwitch: F
31
32
  }) {
32
- const v = _(P), [F, H] = l.useState(), e = l.useRef(null);
33
- l.useEffect(() => {
34
- e.current && H(e.current);
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 ${t.totalWidth} ${t.totalHeight}`,
42
- width: t.totalWidth,
43
- height: t.totalHeight,
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: O }),
46
- /* @__PURE__ */ r.jsxs("g", { transform: `translate(${s.left},${s.top})`, fontFamily: "Manrope", children: [
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
- N,
48
+ I,
49
49
  {
50
- title: w,
50
+ title: E,
51
51
  show: p.show,
52
52
  position: p.position,
53
- leftPadding: f.left,
54
- rightPadding: G.right,
55
- chartsWidth: t.chartsWidth
53
+ leftPadding: h.left,
54
+ rightPadding: B.right,
55
+ chartsWidth: o.chartsWidth
56
56
  }
57
57
  ),
58
- n.map((o) => /* @__PURE__ */ r.jsx(
59
- y,
58
+ i.map((t) => /* @__PURE__ */ r.jsx(
59
+ q,
60
60
  {
61
- facetKey: o,
62
- scales: { x: a.x[o], y: a.y[o] },
63
- width: t.chartWidth,
64
- height: t.chartHeight,
65
- dimensions: i[o],
66
- margins: s,
67
- chartSizes: t,
68
- facetSettings: g,
69
- xAxis: L,
70
- yAxis: R,
71
- frameType: A.type,
72
- dotsData: x[o],
73
- trendsData: d ? d[o] : null,
74
- tooltips: D,
75
- tooltipsContainer: F,
76
- keyColumn: j,
77
- facetTitle: T[o],
78
- captionsSizes: C,
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
- o
80
+ t
85
81
  )),
86
- B.show && /* @__PURE__ */ r.jsx("g", { transform: `translate(${I},${M})`, children: /* @__PURE__ */ r.jsx(q, { legendData: u }) })
87
- ] }),
88
- /* @__PURE__ */ r.jsx("g", { ref: e, style: { outline: "none" } })
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
- z as ChartsGroup
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 {ChartsTitle} from '../../common/ChartsTitle';\nimport fonts from '../../common/fonts';\nimport {useTooltip} from '../../common/Tooltip';\nimport {LEGEND_OFFSET} from '../constants';\nimport {Legend} from '../../common/Legend';\nimport {Chart} from './Chart';\nimport {ErrorBoundary} from '../../common/ErrorBoundary';\nimport type {\n AesGetters,\n CaptionsSizes,\n ChartDimensionsData,\n ChartSizes,\n ChartsScales,\n Margins,\n} from './types';\nimport type {Dot, GroupedDots} from '../dots';\nimport type {ScatterplotLayerData} from '../getLayersData';\nimport type {TrendsData} from '../linearRegression';\nimport type {ScatterplotSettingsImpl} from '../ScatterplotSettingsImpl';\nimport type {ColumnName} from '../../types';\nimport React, {useEffect, useRef, useState} from 'react';\nimport type { LegendData } from '../../common/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 const [tooltipsContainer, setTooltipsContainer] = useState<SVGGElement>();\n const tooltipsRef = useRef<SVGGElement>(null);\n useEffect(() => {\n if (tooltipsRef.current) {\n setTooltipsContainer(tooltipsRef.current);\n }\n }, []);\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 return (\n <ErrorBoundary dataId={settingsId}>\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 >\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={{x: scales.x[key], y: scales.y[key]}}\n width={chartSizes.chartWidth}\n height={chartSizes.chartHeight}\n dimensions={chartsDimensions[key]}\n margins={margins}\n chartSizes={chartSizes}\n facetSettings={facetSettings}\n xAxis={xAxis}\n yAxis={yAxis}\n frameType={frame.type}\n dotsData={groupedDots[key]}\n trendsData={trendsData ? trendsData[key] : null}\n tooltips={tooltips}\n tooltipsContainer={tooltipsContainer}\n keyColumn={keyColumn}\n facetTitle={facetTitles[key]}\n captionsSizes={captionsSizes}\n layersData={layersData[key]}\n onlyPositive={onlyPositive}\n aesGetters={aesGetters}\n tooltipsData={tooltipsData}\n />\n ))}\n {legend.show && (\n <g transform={`translate(${legendLeft},${legendTop})`}>\n <Legend legendData={legendData} />\n </g>\n )}\n </g>\n <g ref={tooltipsRef} style={{outline: 'none'}} />\n </svg>\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","tooltipsContainer","setTooltipsContainer","useState","tooltipsRef","useRef","useEffect","xAxis","yAxis","title","frame","legend","tooltips","leftTopChartPadding","rightTopChartPadding","legendLeft","LEGEND_OFFSET","legendTop","jsx","ErrorBoundary","jsxs","fonts","ChartsTitle","key","Chart","Legend"],"mappings":"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"}
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":";;;;;;;;;;AA+CO,SAASA,EAAY;AAAA,EACxB,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC;AAAA,EACA,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,qBAAAC;AACJ,GAAqB;AACjB,QAAMC,IAAeC,EAAgBF,CAAmB,GAElD,EAAC,OAAAG,GAAO,OAAAC,GAAO,OAAAC,GAAO,OAAAC,GAAO,QAAAC,GAAQ,UAAAC,MAAY1B,GAEjD2B,IAAsBzB,EAAiBC,EAAU,CAAC,CAAC,EAAE,SACrDyB,IAAuB1B,EAAiBC,EAAUM,IAAe,CAAC,CAAC,EAAE,SAErEoB,IAAa5B,EAAW,cAAc6B,GACtCC,IAAYJ,EAAoB,KAEhCK,IAAgBC,EAAAA,QAAQ,MACnB,OAAO;AAAA,IACV9B,EAAU,IAAI,CAAA+B,MAAO,CAACA,GAAK,EAAC,GAAG7B,EAAO,EAAE6B,CAAG,GAAG,GAAG7B,EAAO,EAAE6B,CAAG,GAAE,CAAC;AAAA,EAAA,GAErE,CAAC7B,GAAQF,CAAS,CAAC;AAEtB,+BACKgC,GAAA,EAAc,QAAQpC,GACnB,UAAAqC,gBAAAA,EAAAA,IAAC,SAAI,OAAO,EAAE,UAAU,YAAY,OAAOnC,EAAW,YAAY,QAAQA,EAAW,eACjF,UAAAoC,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACG,OAAM;AAAA,MACN,SAAS,OAAOpC,EAAW,UAAU,IAAIA,EAAW,WAAW;AAAA,MAC/D,OAAOA,EAAW;AAAA,MAClB,QAAQA,EAAW;AAAA,MACnB,OAAO,EAAE,UAAU,YAAY,KAAK,GAAG,MAAM,GAAG,QAAQ,EAAA;AAAA,MAExD,UAAA;AAAA,QAAAmC,gBAAAA,EAAAA,IAAC,UAAM,UAAAE,EAAA,CAAM;AAAA,QACbD,gBAAAA,EAAAA,KAAC,KAAA,EAAE,WAAW,aAAa3B,EAAQ,IAAI,IAAIA,EAAQ,GAAG,KAAK,YAAW,WAClE,UAAA;AAAA,UAAA0B,gBAAAA,EAAAA;AAAAA,YAACG;AAAA,YAAA;AAAA,cACG,OAAO3B;AAAA,cACP,MAAMW,EAAM;AAAA,cACZ,UAAUA,EAAM;AAAA,cAChB,aAAaI,EAAoB;AAAA,cACjC,cAAcC,EAAqB;AAAA,cACnC,aAAa3B,EAAW;AAAA,YAAA;AAAA,UAAA;AAAA,UAE3BE,EAAU,IAAI,CAAA+B,MACXE,gBAAAA,EAAAA;AAAAA,YAACI;AAAA,YAAA;AAAA,cAEG,UAAUN;AAAA,cACV,QAAQF,EAAcE,CAAG;AAAA,cACzB,OAAOjC,EAAW;AAAA,cAClB,QAAQA,EAAW;AAAA,cACnB,YAAYC,EAAiBgC,CAAG;AAAA,cAChC,eAAA9B;AAAA,cACA,OAAAiB;AAAA,cACA,OAAAC;AAAA,cACA,WAAWE,EAAM;AAAA,cACjB,UAAUlB,EAAY4B,CAAG;AAAA,cACzB,YAAY1B,IAAaA,EAAW0B,CAAG,IAAI;AAAA,cAC3C,YAAYrB,EAAYqB,CAAG;AAAA,cAC3B,eAAApB;AAAA,cACA,YAAYE,EAAWkB,CAAG;AAAA,cAC1B,cAAAnB;AAAA,cACA,YAAAE;AAAA,cACA,iBAAiBE,EAAa;AAAA,cAC9B,iBAAiBA,EAAa;AAAA,YAAA;AAAA,YAlBzBe;AAAA,UAAA,CAoBZ;AAAA,UACAT,EAAO,QACJW,gBAAAA,MAAC,KAAA,EAAE,WAAW,aAAaP,CAAU,IAAIE,CAAS,KAC9C,UAAAK,gBAAAA,EAAAA,IAACK,GAAA,EAAO,YAAAlC,GAAwB,GACpC;AAAA,UAGJ6B,gBAAAA,EAAAA;AAAAA,YAACM;AAAA,YAAA;AAAA,cACG,cAAAvB;AAAA,cACA,YAAYjB,EAAiBiB,EAAa,YAAY;AAAA,cACtD,QAAQa,EAAcb,EAAa,YAAY;AAAA,cAC/C,WAAAR;AAAA,cACA,SAAAD;AAAA,cACA,YAAAT;AAAA,cACA,UAAAyB;AAAA,cACA,YAAAT;AAAA,YAAA;AAAA,UAAA;AAAA,QACJ,EAAA,CACJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAER,EAAA,CACJ;AAER;"}
@@ -1,10 +1,8 @@
1
1
  import { DataFrame } from '../DataFrame';
2
2
  import { ColumnName, DataValue, Row } from '../types';
3
3
  export type Dot = {
4
- id: string;
5
4
  x: number;
6
5
  y: number;
7
- idx?: number;
8
6
  label: DataValue | null;
9
7
  dimmed: boolean;
10
8
  data: Row;
@@ -1 +1 @@
1
- {"version":3,"file":"dots.d.ts","sourceRoot":"","sources":["../../src/scatterplot/dots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,UAAU,EAAE,SAAS,EAAE,GAAG,EAAC,MAAM,UAAU,CAAC;AAEzD,MAAM,MAAM,GAAG,GAAG;IACd,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,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,CAuCb"}
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"}
@@ -1,30 +1,34 @@
1
- function M(r, d, h, y, e, c, I) {
2
- const f = {};
3
- return d.forEach((v) => {
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 i = 1 / 0, u = 1 / 0, s = -1 / 0, o = -1 / 0;
6
- I.forEach((m) => {
7
- r.getRowsByGrouping([...v, m]).forEach((t) => {
8
- const n = t[h.value], a = t[y.value];
9
- i = Math.min(i, n), u = Math.min(u, a), s = Math.max(s, n), o = Math.max(o, a), n !== null && a !== null && l.push({
10
- id: `${Object.values(t)}`,
11
- x: n,
12
- y: a,
13
- label: e ? t[e.valueLabels ?? e.value] : null,
14
- dimmed: c ? !t[c.value] : !1,
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
- }), l.sort((m, x) => m.x - x.x), f[v.join("_")] = {
19
- minX: i,
20
- maxX: s,
21
- minY: u,
22
- maxY: o,
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
- }), f;
28
+ }
29
+ return x;
26
30
  }
27
31
  export {
28
- M as getDots
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 id: string;\n x: number;\n y: number;\n idx?: 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 facetKeysCombinations.forEach((facetKeys) => {\n const dots: Dot[] = [];\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n keys.forEach(primaryKey => {\n const rows = data.getRowsByGrouping([...facetKeys, primaryKey]);\n rows.forEach(row => {\n const valueX = row[x.value] as number;\n const valueY = row[y.value] as number;\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 if (valueX !== null && valueY !== null) {\n dots.push({\n id: `${Object.values(row)}`,\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 result[facetKeys.join('_')] = {\n minX,\n maxX,\n minY,\n maxY,\n dots,\n };\n });\n return result;\n}\n"],"names":["getDots","data","facetKeysCombinations","x","label","highlight","keys","result","facetKeys","dots","minX","minY","maxX","maxY","primaryKey","row","valueX","valueY","d1","d2"],"mappings":"AAwBO,SAASA,EACZC,GACAC,GACAC,GACA,GACAC,GACAC,GACAC,GACW;AACX,QAAMC,IAAsB,CAAA;AAC5B,SAAAL,EAAsB,QAAQ,CAACM,MAAc;AACzC,UAAMC,IAAc,CAAA;AACpB,QAAIC,IAAO,OACPC,IAAO,OACPC,IAAO,QACPC,IAAO;AACX,IAAAP,EAAK,QAAQ,CAAAQ,MAAc;AAEvB,MADab,EAAK,kBAAkB,CAAC,GAAGO,GAAWM,CAAU,CAAC,EACzD,QAAQ,CAAAC,MAAO;AAChB,cAAMC,IAASD,EAAIZ,EAAE,KAAK,GACpBc,IAASF,EAAI,EAAE,KAAK;AAC1B,QAAAL,IAAO,KAAK,IAAIA,GAAMM,CAAM,GAC5BL,IAAO,KAAK,IAAIA,GAAMM,CAAM,GAC5BL,IAAO,KAAK,IAAIA,GAAMI,CAAM,GAC5BH,IAAO,KAAK,IAAIA,GAAMI,CAAM,GACxBD,MAAW,QAAQC,MAAW,QAC9BR,EAAK,KAAK;AAAA,UACN,IAAI,GAAG,OAAO,OAAOM,CAAG,CAAC;AAAA,UACzB,GAAGC;AAAA,UACH,GAAGC;AAAA,UACH,OAAOb,IAAQW,EAAIX,EAAM,eAAeA,EAAM,KAAK,IAAI;AAAA,UACvD,QAAQC,IAAY,CAACU,EAAIV,EAAU,KAAK,IAAI;AAAA,UAC5C,MAAMU;AAAA,QAAA,CACT;AAAA,MAET,CAAC;AAAA,IACL,CAAC,GACDN,EAAK,KAAK,CAACS,GAAIC,MAAOD,EAAG,IAAIC,EAAG,CAAC,GACjCZ,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,CAAC,GACMF;AACX;"}
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,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAK5C,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
+ {"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 { useTooltip as w } from "../../common/Tooltip.js";
3
- import y from "./LowerSVG.js";
4
- import B from "./UpperSVG.js";
5
- import { r as G } from "../../_virtual/index.js";
6
- import { ErrorBoundary as I } from "../../common/ErrorBoundary.js";
7
- import { r as O } from "../../node_modules/react-dom/index.js";
8
- function k({
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: f,
10
+ scales: t,
11
11
  chartSettings: x,
12
- mainTitle: a,
13
- keyColumn: n,
12
+ mainTitle: n,
13
+ keyColumn: a,
14
14
  margins: j,
15
- chartSizes: i,
15
+ chartSizes: f,
16
16
  captionsSizes: l,
17
17
  onlyPositive: E,
18
18
  container: r,
19
- zoomStateKey: t,
19
+ zoomStateKey: i,
20
20
  aesGetters: u,
21
21
  legendData: e,
22
- labels: v,
23
- onPolygonUpdate: d,
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 = w(L);
34
- return G.useEffect(() => {
35
- o ? m.onMouseOver(o) : m.onMouseLeave();
36
- }, [o]), /* @__PURE__ */ p.jsx("div", { children: /* @__PURE__ */ p.jsxs(I, { dataId: s, children: [
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
- y,
38
+ I,
39
39
  {
40
40
  aesGetters: u,
41
41
  dotsByGrouping: V,
42
42
  layers: g,
43
- scales: f,
44
- keyColumn: n,
43
+ scales: t,
44
+ keyColumn: a,
45
45
  margins: j,
46
- mainTitle: a,
46
+ mainTitle: n,
47
47
  captionsSizes: l,
48
48
  chartSettings: x,
49
- chartSizes: i,
49
+ chartSizes: f,
50
50
  onlyPositive: E,
51
51
  container: r,
52
- zoomStateKey: t,
52
+ zoomStateKey: i,
53
53
  legendData: e,
54
54
  tooltipData: m
55
55
  }
56
56
  ),
57
- O.createPortal(
57
+ y.createPortal(
58
58
  /* @__PURE__ */ p.jsx(
59
- B,
59
+ P,
60
60
  {
61
- scales: f,
61
+ scales: t,
62
62
  container: r,
63
63
  aesGetters: u,
64
- labels: v,
65
- chartSizes: i,
66
- zoomStateKey: t,
64
+ labels: d,
65
+ chartSizes: f,
66
+ zoomStateKey: i,
67
67
  selectedDot: o,
68
68
  defaultPolygons: h,
69
- onPolygonUpdate: d,
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
- k as SVGLayer
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 {useTooltip} from '../../common/Tooltip';\nimport LowerSvg from './LowerSVG';\nimport UpperSVG from './UpperSVG';\nimport type {DotInfo} from '../types';\nimport type {SVGLayerProps} from '../types';\nimport React, {useEffect} from 'react';\nimport {ErrorBoundary} from '../../common/ErrorBoundary';\nimport {createPortal} from 'react-dom';\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.onMouseOver(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":";;;;;;;AASO,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,YAAYD,CAAW,IAEnCC,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
+ {"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,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAEvD,OAAO,KAAK,EAAC,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAC,MAAM,UAAU,CAAC;AACtE,OAAO,KAAK,EAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAC,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,0CAA0C,CAAC;AAGpE,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
+ {"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 p } from "./Lasso.js";
3
- function u({
2
+ import { Lasso as y } from "./Lasso.js";
3
+ function k({
4
4
  scales: n,
5
5
  container: l,
6
- labels: o,
6
+ labels: x,
7
7
  aesGetters: i,
8
8
  chartSizes: r,
9
9
  zoomStateKey: a,
10
- defaultPolygons: c,
11
- onPolygonUpdate: h,
12
- onLassoControlsStateUpdate: m,
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
- o.map((s) => {
17
- const { name: f, height: d, bbox: x, width: j } = s;
18
- return /* @__PURE__ */ e.jsx("g", { children: /* @__PURE__ */ e.jsxs("g", { transform: `translate(${x.minX},${x.minY})`, children: [
19
- /* @__PURE__ */ e.jsx("rect", { x: "0", y: "0", width: j, height: d, fill: "transparent", stroke: "none" }),
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: d / 2,
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: f
32
+ children: j
33
33
  }
34
34
  )
35
- ] }) }, s.dot.id);
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
- p,
48
+ y,
49
49
  {
50
50
  scales: n,
51
51
  chartSizes: r,
52
52
  zoomStateKey: a,
53
- defaultPolygons: c,
54
- onPolygonsApply: h,
55
- onLassoControlsStateUpdate: m
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
- u as default
62
+ k as default
63
63
  };
64
64
  //# sourceMappingURL=UpperSVG.js.map