@milaboratories/graph-maker 1.1.142 → 1.1.143
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/GraphMaker/components/ReorderForm.vue.d.ts +15 -0
- package/dist/GraphMaker/components/ReorderForm.vue.d.ts.map +1 -0
- package/dist/GraphMaker/components/ReorderForm.vue.js +43 -0
- package/dist/GraphMaker/components/ReorderForm.vue.js.map +1 -0
- package/dist/GraphMaker/components/ReorderForm.vue2.js +5 -0
- package/dist/GraphMaker/components/ReorderForm.vue2.js.map +1 -0
- package/dist/GraphMaker/constantsCommon.d.ts +15 -0
- package/dist/GraphMaker/constantsCommon.d.ts.map +1 -1
- package/dist/GraphMaker/constantsCommon.js +11 -8
- package/dist/GraphMaker/constantsCommon.js.map +1 -1
- package/dist/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
- package/dist/GraphMaker/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.d.ts.map +1 -1
- package/dist/GraphMaker/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js +305 -172
- package/dist/GraphMaker/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js.map +1 -1
- package/dist/GraphMaker/index.vue.js +33 -33
- package/dist/GraphMaker/index.vue.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +3 -3
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDendroSettings.d.ts +9 -9
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDendroSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +5 -11
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +3 -3
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.d.ts +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +31 -5
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js +56 -53
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts +1 -7
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +13 -13
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.d.ts +6 -4
- package/dist/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.js +42 -13
- package/dist/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.js.map +1 -1
- package/dist/GraphMaker/utils/loadUniqueValuesToSave.d.ts.map +1 -1
- package/dist/GraphMaker/utils/loadUniqueValuesToSave.js +48 -44
- package/dist/GraphMaker/utils/loadUniqueValuesToSave.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/{discrete/components → common}/BandAxis.js +3 -3
- package/dist/node_modules/@milaboratories/miplots4/dist/common/BandAxis.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/common/ContinuousGrid.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/ChartRenderer.js +14 -14
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/ChartRenderer.js +197 -270
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/ChartRenderer.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js +9 -9
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/Chart.js +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/Chart.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/Grid.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js +11 -11
- package/dist/node_modules/@milaboratories/miplots4/dist/histogram/ChartRenderer.js +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-scale/src/band.js +44 -34
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-scale/src/band.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ChartRenderer.js +272 -195
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ChartRenderer.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js +23 -23
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Chart.js +54 -50
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Chart.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartAxis.js +32 -28
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartAxis.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartLayersData.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTooltip.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTrendsData.js +29 -26
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTrendsData.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartsGroup.js +44 -41
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartsGroup.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Grid.js +31 -27
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Grid.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/dots.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js +29 -18
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js +71 -57
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/linearRegression.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/isNumericScale.js +11 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/isNumericScale.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/ChartRenderer.js +10 -10
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/ChartRenderer.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/SettingsImpl.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js +6 -6
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/common.js +35 -25
- package/dist/node_modules/@milaboratories/miplots4/dist/types/common.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/dendro.js +3 -3
- package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js +37 -37
- package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/heatmap.js +6 -6
- package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js +7 -7
- package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/createMultilineDiscreteLabels.js +32 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/createMultilineDiscreteLabels.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/getFacetRowsColumns.js +18 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/getFacetRowsColumns.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/measureMultilineDiscreteLabels.js +63 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/measureMultilineDiscreteLabels.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/{discrete/utils → utils}/splitTextByWidth.js +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/splitTextByWidth.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js +2 -2
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js.map +1 -1
- package/package.json +3 -3
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/BandAxis.js.map +0 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/splitTextByWidth.js.map +0 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Axis.js +0 -59
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Axis.js.map +0 -1
|
@@ -1,44 +1,48 @@
|
|
|
1
1
|
import { j as s } from "../../node_modules/react/jsx-runtime.js";
|
|
2
|
-
import { r as
|
|
3
|
-
import { DEFAULT_TICKS_SIZE as h, TITLE_LINE as
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
2
|
+
import { r as u } from "../../_virtual/index.js";
|
|
3
|
+
import { DEFAULT_TICKS_SIZE as h, TITLE_LINE as A, TICK_OFFSET as m } from "../constants.js";
|
|
4
|
+
import { ContinuousAxis as b } from "../../common/ContinuousAxis.js";
|
|
5
|
+
import { BandAxis as f } from "../../common/BandAxis.js";
|
|
6
|
+
import { isNumericScale as S } from "../utils/isNumericScale.js";
|
|
7
|
+
const I = u.memo(({
|
|
8
|
+
debug: o,
|
|
9
|
+
width: y,
|
|
10
|
+
height: l,
|
|
11
|
+
dimensions: a,
|
|
12
|
+
scales: i,
|
|
13
|
+
xAxis: n,
|
|
14
|
+
yAxis: r,
|
|
15
|
+
facetSettings: e,
|
|
16
|
+
captionsSizes: c,
|
|
17
|
+
discreteLabelsX: g,
|
|
18
|
+
discreteLabelsY: j,
|
|
19
|
+
onlyPositive: x
|
|
16
20
|
}) => {
|
|
17
|
-
const
|
|
21
|
+
const t = n.showTicks ? h : 0, d = r.showTicks ? h : 0, k = a.chartEdgeSides.includes("left") || !(e != null && e.sharedY), p = a.chartEdgeSides.includes("bottom") || !(e != null && e.sharedX);
|
|
18
22
|
return /* @__PURE__ */ s.jsxs(s.Fragment, { children: [
|
|
19
|
-
|
|
20
|
-
/* @__PURE__ */ s.jsx(
|
|
21
|
-
|
|
23
|
+
p && /* @__PURE__ */ s.jsxs("g", { transform: `translate(0,${l})`, children: [
|
|
24
|
+
S(i.x) ? /* @__PURE__ */ s.jsx(b, { scale: i.x, orient: "bottom", tickSize: t, onlyPositive: x.x }) : /* @__PURE__ */ s.jsx(f, { scale: i.x, orient: "bottom", labels: g, labelsPosition: n.labelsPosition, tickSize: t }),
|
|
25
|
+
o && /* @__PURE__ */ s.jsx(
|
|
22
26
|
"rect",
|
|
23
27
|
{
|
|
24
28
|
x: "0",
|
|
25
|
-
y:
|
|
26
|
-
width:
|
|
27
|
-
height:
|
|
29
|
+
y: t + m,
|
|
30
|
+
width: y,
|
|
31
|
+
height: A,
|
|
28
32
|
fill: "none",
|
|
29
33
|
stroke: "black"
|
|
30
34
|
}
|
|
31
35
|
)
|
|
32
36
|
] }),
|
|
33
|
-
|
|
34
|
-
/* @__PURE__ */ s.jsx(
|
|
35
|
-
|
|
37
|
+
k && /* @__PURE__ */ s.jsxs("g", { children: [
|
|
38
|
+
S(i.y) ? /* @__PURE__ */ s.jsx(b, { scale: i.y, orient: "left", tickSize: t, onlyPositive: x.x }) : /* @__PURE__ */ s.jsx(f, { scale: i.y, orient: "left", labels: j, labelsPosition: r.labelsPosition, tickSize: d }),
|
|
39
|
+
o && /* @__PURE__ */ s.jsx(
|
|
36
40
|
"rect",
|
|
37
41
|
{
|
|
38
|
-
x: -
|
|
42
|
+
x: -d - m - c.yAxisCaptionsWidth,
|
|
39
43
|
y: "0",
|
|
40
|
-
width:
|
|
41
|
-
height:
|
|
44
|
+
width: c.yAxisCaptionsWidth,
|
|
45
|
+
height: l,
|
|
42
46
|
fill: "none",
|
|
43
47
|
stroke: "black"
|
|
44
48
|
}
|
|
@@ -47,6 +51,6 @@ const u = p.memo(({
|
|
|
47
51
|
] });
|
|
48
52
|
});
|
|
49
53
|
export {
|
|
50
|
-
|
|
54
|
+
I as ChartAxis
|
|
51
55
|
};
|
|
52
56
|
//# sourceMappingURL=ChartAxis.js.map
|
package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartAxis.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartAxis.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot/components/ChartAxis.tsx"],"sourcesContent":["import { memo } from 'react';\nimport { DEFAULT_TICKS_SIZE, TICK_OFFSET, TITLE_LINE } from '../constants';\nimport type { ScatterplotSettingsImpl } from '../ScatterplotSettingsImpl';\nimport
|
|
1
|
+
{"version":3,"file":"ChartAxis.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot/components/ChartAxis.tsx"],"sourcesContent":["import { memo } from 'react';\nimport { DEFAULT_TICKS_SIZE, TICK_OFFSET, TITLE_LINE } from '../constants';\nimport type { ScatterplotSettingsImpl } from '../ScatterplotSettingsImpl';\nimport type {\n CaptionsSizes,\n ChartDimensionsData,\n ChartScales\n} from './types';\nimport { ContinuousAxis } from '../../common/ContinuousAxis';\nimport { BandAxis } from '../../common/BandAxis';\nimport { isNumericScale } from '../utils/isNumericScale';\nimport type { AxisSettingsDiscrete } from '../../types';\n\ninterface Props {\n debug?: boolean;\n width: number;\n height: number;\n dimensions: ChartDimensionsData;\n scales: ChartScales;\n xAxis: ScatterplotSettingsImpl['chartSettings']['xAxis'];\n yAxis: ScatterplotSettingsImpl['chartSettings']['yAxis'];\n facetSettings: ScatterplotSettingsImpl['facetSettings'];\n captionsSizes: CaptionsSizes;\n discreteLabelsX: Record<string, string[]>;\n discreteLabelsY: Record<string, string[]>;\n onlyPositive: {x: boolean; y: boolean};\n}\n\nexport const ChartAxis = memo(({\n debug,\n width,\n height,\n dimensions,\n scales,\n xAxis,\n yAxis,\n facetSettings,\n captionsSizes,\n discreteLabelsX,\n discreteLabelsY,\n onlyPositive,\n}: Props) => {\n const tickSizeX = xAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const tickSizeY = yAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const needLeftAxis = dimensions.chartEdgeSides.includes('left') || !facetSettings?.sharedY;\n const needBottomAxis = dimensions.chartEdgeSides.includes('bottom') || !facetSettings?.sharedX;\n\n return (\n <>\n {needBottomAxis && (\n <g transform={`translate(0,${height})`}>\n {isNumericScale(scales.x) ? (\n <ContinuousAxis scale={scales.x} orient=\"bottom\" tickSize={tickSizeX} onlyPositive={onlyPositive.x} />\n ): (\n <BandAxis scale={scales.x} orient=\"bottom\" labels={discreteLabelsX} labelsPosition={(xAxis as AxisSettingsDiscrete).labelsPosition} tickSize={tickSizeX} />\n )}\n {debug && (\n <rect\n x=\"0\"\n y={tickSizeX + TICK_OFFSET}\n width={width}\n height={TITLE_LINE}\n fill=\"none\"\n stroke=\"black\"\n />\n )}\n </g>\n )}\n\n {needLeftAxis && (\n <g>\n {isNumericScale(scales.y) ? (\n <ContinuousAxis scale={scales.y} orient=\"left\" tickSize={tickSizeX} onlyPositive={onlyPositive.x} />\n ): (\n <BandAxis scale={scales.y} orient=\"left\" labels={discreteLabelsY} labelsPosition={(yAxis as AxisSettingsDiscrete).labelsPosition} tickSize={tickSizeY} />\n )}\n {debug && (\n <rect\n x={-tickSizeY - TICK_OFFSET - captionsSizes.yAxisCaptionsWidth}\n y=\"0\"\n width={captionsSizes.yAxisCaptionsWidth}\n height={height}\n fill=\"none\"\n stroke=\"black\"\n />\n )}\n </g>\n )}\n </>\n );\n});\n"],"names":["ChartAxis","memo","debug","width","height","dimensions","scales","xAxis","yAxis","facetSettings","captionsSizes","discreteLabelsX","discreteLabelsY","onlyPositive","tickSizeX","DEFAULT_TICKS_SIZE","tickSizeY","needLeftAxis","needBottomAxis","jsxs","Fragment","isNumericScale","jsx","ContinuousAxis","BandAxis","TICK_OFFSET","TITLE_LINE"],"mappings":";;;;;;AA4BO,MAAMA,IAAYC,EAAAA,KAAK,CAAC;AAAA,EAC3B,OAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,QAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,QAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,eAAAC;AAAAA,EACA,eAAAC;AAAAA,EACA,iBAAAC;AAAAA,EACA,iBAAAC;AAAAA,EACA,cAAAC;AACJ,MAAa;AACT,QAAMC,IAAYP,EAAM,YAAYQ,IAAqB,GACnDC,IAAYR,EAAM,YAAYO,IAAqB,GACnDE,IAAeZ,EAAW,eAAe,SAAS,MAAM,KAAK,EAACI,KAAA,QAAAA,EAAe,UAC7ES,IAAiBb,EAAW,eAAe,SAAS,QAAQ,KAAK,EAACI,KAAA,QAAAA,EAAe;AAEvF,SACIU,gBAAAA,EAAAA,KAAAC,EAAAA,UAAA,EACK,UAAA;AAAA,IAAAF,KACGC,gBAAAA,EAAAA,KAAC,KAAA,EAAE,WAAW,eAAef,CAAM,KAC9B,UAAA;AAAA,MAAAiB,EAAef,EAAO,CAAC,IACpBgB,gBAAAA,EAAAA,IAACC,GAAA,EAAe,OAAOjB,EAAO,GAAG,QAAO,UAAS,UAAUQ,GAAW,cAAcD,EAAa,EAAA,CAAG,IAEpGS,gBAAAA,EAAAA,IAACE,GAAA,EAAS,OAAOlB,EAAO,GAAG,QAAO,UAAS,QAAQK,GAAiB,gBAAiBJ,EAA+B,gBAAgB,UAAUO,GAAW;AAAA,MAE5JZ,KACGoB,gBAAAA,EAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACG,GAAE;AAAA,UACF,GAAGR,IAAYW;AAAAA,UACf,OAAAtB;AAAAA,UACA,QAAQuB;AAAAA,UACR,MAAK;AAAA,UACL,QAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAGnB;AAAA,IAGHT,KAAAA,gBAAAA,EAAAA,KACI,KAAA,EACI,UAAA;AAAA,MAAAI,EAAef,EAAO,CAAC,IACpBgB,gBAAAA,EAAAA,IAACC,GAAA,EAAe,OAAOjB,EAAO,GAAG,QAAO,QAAO,UAAUQ,GAAW,cAAcD,EAAa,EAAA,CAAG,IAElGS,gBAAAA,EAAAA,IAACE,GAAA,EAAS,OAAOlB,EAAO,GAAG,QAAO,QAAO,QAAQM,GAAiB,gBAAiBJ,EAA+B,gBAAgB,UAAUQ,GAAW;AAAA,MAE1Jd,KACGoB,gBAAAA,EAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACG,GAAG,CAACN,IAAYS,IAAcf,EAAc;AAAA,UAC5C,GAAE;AAAA,UACF,OAAOA,EAAc;AAAA,UACrB,QAAAN;AAAAA,UACA,MAAK;AAAA,UACL,QAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAGnB;AAAA,EAAA,GAER;AAER,CAAC;","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartLayersData.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot/components/ChartLayersData.tsx"],"sourcesContent":["import { curveBasis, line } from 'd3-shape';\nimport { memo, useMemo, useState } from 'react';\nimport { getLineShape } from '../../utils/getLineShape';\nimport { getPointShape } from '../../utils/getPointShape';\nimport { TextMeasurer } from '../../utils/TextMeasurer/TextMeasurer';\nimport type { Dot, GroupedDots } from '../dots';\nimport type { ScatterplotLayerData } from '../getLayersData';\nimport type { Label } from '../utils/getVisibleLabels';\nimport { createLabelPositioner, getLabelMinX, getLabelMinY } from '../utils/getVisibleLabels';\nimport type {\n AesGetters,\n ChartScales\n} from './types';\n\nconst LABEL_OFFSET = 3;\n\ninterface Props {\n width: number;\n height: number;\n scales: ChartScales;\n dotsData: GroupedDots[keyof GroupedDots];\n layersData: ScatterplotLayerData[];\n aesGetters: AesGetters;\n onMouseEnterDot?: (dot: Dot) => void;\n onMouseLeaveDot?: (dot: Dot) => void;\n}\n\nexport const ChartLayersData = memo(({\n width,\n height,\n scales,\n dotsData,\n layersData,\n aesGetters,\n onMouseEnterDot,\n onMouseLeaveDot,\n}: Props) => {\n return layersData.map((layer, idx) => {\n if (layer.type === 'dots') {\n return <ChartLayerDots\n key={layer.type + idx}\n width={width}\n height={height}\n scales={scales}\n dotsData={dotsData}\n layersData={layersData}\n aesGetters={aesGetters}\n onMouseEnterDot={onMouseEnterDot}\n onMouseLeaveDot={onMouseLeaveDot}\n />;\n }\n\n if (layer.type === 'curve') {\n return <ChartCurveLayer\n key={layer.type + idx}\n layer={layer}\n scales={scales}\n aesGetters={aesGetters}\n />;\n }\n });\n});\n\nexport const ChartLayerDots = memo(({\n width,\n height,\n scales,\n dotsData,\n layersData,\n aesGetters,\n onMouseEnterDot,\n onMouseLeaveDot,\n}: Props) => {\n const {dots} = dotsData;\n\n const [activeDot, setActiveDot] = useState<Dot | null>(null);\n const hasLayerDots = useMemo(() => layersData.findIndex(layer => layer.type === 'dots') !== -1, [layersData]);\n \n const labels = useMemo<Label[]>(() =>{\n if (!hasLayerDots) return [];\n return computeLabels(\n dots,\n scales,\n width,\n height,\n aesGetters,\n );\n }, [dots, scales.x, scales.y, width, height, aesGetters, hasLayerDots]);\n\n return (\n <g>\n <ChartDots\n scales={scales}\n dotsData={dotsData}\n aesGetters={aesGetters}\n onMouseEnter={onMouseEnterDot}\n onMouseLeave={onMouseLeaveDot}\n />\n <ChartLabels\n labels={labels}\n onMouseEnter={dot => setActiveDot(dot)}\n onMouseLeave={() => setActiveDot(null)}\n />\n {activeDot && (\n <g\n key=\"activeDot\"\n transform={`translate(${scales.x(activeDot.x)},${scales.y(activeDot.y)})`}\n >\n {getPointShape(\n aesGetters.dotShape(activeDot.idx),\n aesGetters.dotSize(activeDot.idx) + 1,\n 'white',\n 'white'\n )}\n {getPointShape(\n aesGetters.dotShape(activeDot.idx),\n aesGetters.dotSize(activeDot.idx),\n aesGetters.dotColor(activeDot.idx)\n )}\n </g>\n )}\n </g>\n );\n});\n\nexport const ChartCurveLayer = memo(({\n layer,\n scales,\n aesGetters,\n}: {\n layer: ScatterplotLayerData;\n scales: ChartScales;\n aesGetters: AesGetters;\n}) => {\n if (layer.type === 'curve' && !layer.info.smoothing) {\n return layer.geoms.map((curve, idx) => (\n <g key={idx}>\n <polyline\n points={curve.dots.map(d => `${scales.x(d.x)},${scales.y(d.y)}`).join(' ')}\n fill=\"none\"\n stroke={aesGetters.lineColor(curve.dots[0].idx)}\n strokeWidth={layer.info.aes.lineWidth}\n strokeDasharray={getLineShape(layer.info.aes.lineShape)}\n />\n </g>\n ));\n }\n\n if (layer.type === 'curve' && layer.info.smoothing) {\n return layer.geoms.map((curve, idx) => (\n <g key={idx}>\n <path\n d={\n line<Dot>()\n .curve(curveBasis)\n .x((d: Dot) => scales.x(d.x))\n .y((d: Dot) => scales.y(d.y))(curve.dots) ?? ''\n }\n fill=\"none\"\n stroke={aesGetters.lineColor(curve.dots[0].idx)}\n strokeWidth={layer.info.aes.lineWidth}\n strokeDasharray={getLineShape(layer.info.aes.lineShape)}\n />\n </g>\n ));\n }\n});\n\nexport const ChartDots = memo(({\n scales,\n dotsData,\n aesGetters,\n onMouseEnter,\n onMouseLeave,\n}: Pick<Props, 'scales' | 'dotsData' | 'aesGetters'> & {\n onMouseEnter?: (dot: Dot) => void;\n onMouseLeave?: (dot: Dot) => void;\n}) => {\n const {dots} = dotsData;\n\n return (<>\n {dots.map((dot, idx) => {\n return <ChartDot\n key={idx}\n dot={dot}\n scales={scales}\n aesGetters={aesGetters}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n />;\n })}\n </>);\n});\n\nexport const ChartDot = (({\n dot,\n scales,\n aesGetters,\n onMouseEnter,\n onMouseLeave,\n}: {\n dot: Dot;\n scales: ChartScales;\n aesGetters: AesGetters;\n onMouseEnter?: (dot: Dot) => void;\n onMouseLeave?: (dot: Dot) => void;\n}) => {\n return (<g\n transform={`translate(${scales.x(dot.x)},${scales.y(dot.y)})`}\n opacity={dot.dimmed ? 0.3 : 1}\n onMouseOver={() => onMouseEnter?.(dot)}\n onMouseLeave={() => onMouseLeave?.(dot)}\n >\n {getPointShape(\n aesGetters.dotShape(dot.idx),\n aesGetters.dotSize(dot.idx),\n aesGetters.dotColor(dot.idx)\n )}\n </g>);\n});\n\nexport const ChartLabels = memo(({\n labels,\n onMouseEnter,\n onMouseLeave,\n}: {\n labels: Label[];\n onMouseEnter: (dot: Dot ) => void;\n onMouseLeave: (dot: Dot ) => void;\n}) => {\n return (<>\n {labels.map((label, idx) => {\n const {name, height, width} = label;\n return (\n <g key={idx} transform={`translate(${getLabelMinX(label)},${getLabelMinY(label)})`}>\n <rect\n x=\"0\"\n y=\"0\"\n width={width}\n height={height}\n fill=\"transparent\"\n stroke=\"none\"\n onMouseEnter={() => onMouseEnter(label.dot)}\n onMouseLeave={() => onMouseLeave(label.dot)}\n />\n <text\n x={0}\n y={height / 2}\n stroke=\"white\"\n strokeWidth={2}\n paintOrder=\"stroke\"\n style={{pointerEvents: 'none'}}\n fontFamily=\"Manrope\"\n fontSize=\"16px\"\n dominantBaseline=\"middle\"\n >\n {name}\n </text>\n </g>\n );\n })}\n </>);\n});\n\nfunction computeLabels(dots: Dot[], scales: ChartScales, chartWidth: number, chartHeight: number, aesGetters: AesGetters): Label[] {\n const textMeasurer = new TextMeasurer('16px Manrope');\n const getPosition = createLabelPositioner(chartWidth, chartHeight);\n const labels: Label[] = [];\n\n for (let i = 0; i < dots.length; i++) {\n const dot = dots[i];\n if (dot.label == null) {\n continue;\n }\n const name = String(dot.label);\n const metrics = textMeasurer.getTextMetrics(name);\n const x = scales.x(dot.x);\n const y = scales.y(dot.y);\n const w = metrics.width;\n const h = (metrics.actualBoundingBoxAscent) + (metrics.actualBoundingBoxDescent);\n const p = aesGetters.dotSize(dot.idx) + LABEL_OFFSET;\n const position = getPosition(x, y, w, h, p);\n if (!position) {\n continue;\n }\n\n labels.push({\n x,\n y,\n dot,\n name,\n width: w,\n height: h,\n padding: p,\n xPosition: position[0],\n yPosition: position[1],\n } satisfies Label);\n }\n\n return labels;\n}\n"],"names":["LABEL_OFFSET","ChartLayersData","memo","width","height","scales","dotsData","layersData","aesGetters","onMouseEnterDot","onMouseLeaveDot","layer","idx","jsx","ChartLayerDots","ChartCurveLayer","dots","activeDot","setActiveDot","useState","hasLayerDots","useMemo","labels","computeLabels","s","ChartDots","ChartLabels","dot","jsxs","getPointShape","curve","d","getLineShape","line","curveBasis","onMouseEnter","onMouseLeave","Fragment","ChartDot","label","name","getLabelMinX","getLabelMinY","chartWidth","chartHeight","textMeasurer","TextMeasurer","getPosition","createLabelPositioner","i","metrics","x","y","w","h","p","position"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"ChartLayersData.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot/components/ChartLayersData.tsx"],"sourcesContent":["import { curveBasis, line } from 'd3-shape';\nimport { memo, useMemo, useState } from 'react';\nimport { getLineShape } from '../../utils/getLineShape';\nimport { getPointShape } from '../../utils/getPointShape';\nimport { TextMeasurer } from '../../utils/TextMeasurer/TextMeasurer';\nimport type { Dot, GroupedDots } from '../dots';\nimport type { ScatterplotLayerData } from '../getLayersData';\nimport type { Label } from '../utils/getVisibleLabels';\nimport { createLabelPositioner, getLabelMinX, getLabelMinY } from '../utils/getVisibleLabels';\nimport type {\n AesGetters,\n ChartScales\n} from './types';\nconst LABEL_OFFSET = 3;\n\ninterface Props {\n width: number;\n height: number;\n scales: ChartScales;\n dotsData: GroupedDots[keyof GroupedDots];\n layersData: ScatterplotLayerData[];\n aesGetters: AesGetters;\n onMouseEnterDot?: (dot: Dot) => void;\n onMouseLeaveDot?: (dot: Dot) => void;\n}\n\ntype PointValue = { valueOf(): number; } & string;\n\nexport const ChartLayersData = memo(({\n width,\n height,\n scales,\n dotsData,\n layersData,\n aesGetters,\n onMouseEnterDot,\n onMouseLeaveDot,\n}: Props) => {\n return layersData.map((layer, idx) => {\n if (layer.type === 'dots') {\n return <ChartLayerDots\n key={layer.type + idx}\n width={width}\n height={height}\n scales={scales}\n dotsData={dotsData}\n layersData={layersData}\n aesGetters={aesGetters}\n onMouseEnterDot={onMouseEnterDot}\n onMouseLeaveDot={onMouseLeaveDot}\n />;\n }\n\n if (layer.type === 'curve') {\n return <ChartCurveLayer\n key={layer.type + idx}\n layer={layer}\n scales={scales}\n aesGetters={aesGetters}\n />;\n }\n });\n});\n\nexport const ChartLayerDots = memo(({\n width,\n height,\n scales,\n dotsData,\n layersData,\n aesGetters,\n onMouseEnterDot,\n onMouseLeaveDot,\n}: Props) => {\n const {dots} = dotsData;\n\n const [activeDot, setActiveDot] = useState<Dot | null>(null);\n const hasLayerDots = useMemo(() => layersData.findIndex(layer => layer.type === 'dots') !== -1, [layersData]);\n \n const labels = useMemo<Label[]>(() =>{\n if (!hasLayerDots) return [];\n return computeLabels(\n dots,\n scales,\n width,\n height,\n aesGetters,\n );\n }, [dots, scales.x, scales.y, width, height, aesGetters, hasLayerDots]);\n\n return (\n <g>\n <ChartDots\n scales={scales}\n dotsData={dotsData}\n aesGetters={aesGetters}\n onMouseEnter={onMouseEnterDot}\n onMouseLeave={onMouseLeaveDot}\n />\n <ChartLabels\n labels={labels}\n onMouseEnter={dot => setActiveDot(dot)}\n onMouseLeave={() => setActiveDot(null)}\n />\n {activeDot && (\n <g\n key=\"activeDot\"\n transform={`translate(${scales.x(activeDot.x as PointValue)},${scales.y(activeDot.y as PointValue) as number})`}\n >\n {getPointShape(\n aesGetters.dotShape(activeDot.idx),\n aesGetters.dotSize(activeDot.idx) + 1,\n 'white',\n 'white'\n )}\n {getPointShape(\n aesGetters.dotShape(activeDot.idx),\n aesGetters.dotSize(activeDot.idx),\n aesGetters.dotColor(activeDot.idx)\n )}\n </g>\n )}\n </g>\n );\n});\n\nexport const ChartCurveLayer = memo(({\n layer,\n scales,\n aesGetters,\n}: {\n layer: ScatterplotLayerData;\n scales: ChartScales;\n aesGetters: AesGetters;\n}) => {\n if (layer.type === 'curve' && !layer.info.smoothing) {\n return layer.geoms.map((curve, idx) => (\n <g key={idx}>\n <polyline\n points={curve.dots.map(d => `${scales.x(d.x as PointValue) as number},${scales.y(d.y as PointValue) as number}`).join(' ')}\n fill=\"none\"\n stroke={aesGetters.lineColor(curve.dots[0].idx)}\n strokeWidth={layer.info.aes.lineWidth}\n strokeDasharray={getLineShape(layer.info.aes.lineShape)}\n />\n </g>\n ));\n }\n\n if (layer.type === 'curve' && layer.info.smoothing) {\n return layer.geoms.map((curve, idx) => (\n <g key={idx}>\n <path\n d={\n line<Dot>()\n .curve(curveBasis)\n .x((d: Dot) => scales.x(d.x as PointValue) as number)\n .y((d: Dot) => scales.y(d.y as PointValue) as number)(curve.dots) ?? ''\n }\n fill=\"none\"\n stroke={aesGetters.lineColor(curve.dots[0].idx)}\n strokeWidth={layer.info.aes.lineWidth}\n strokeDasharray={getLineShape(layer.info.aes.lineShape)}\n />\n </g>\n ));\n }\n});\n\nexport const ChartDots = memo(({\n scales,\n dotsData,\n aesGetters,\n onMouseEnter,\n onMouseLeave,\n}: Pick<Props, 'scales' | 'dotsData' | 'aesGetters'> & {\n onMouseEnter?: (dot: Dot) => void;\n onMouseLeave?: (dot: Dot) => void;\n}) => {\n const {dots} = dotsData;\n\n return (<>\n {dots.map((dot, idx) => {\n return <ChartDot\n key={idx}\n dot={dot}\n scales={scales}\n aesGetters={aesGetters}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n />;\n })}\n </>);\n});\n\nexport const ChartDot = (({\n dot,\n scales,\n aesGetters,\n onMouseEnter,\n onMouseLeave,\n}: {\n dot: Dot;\n scales: ChartScales;\n aesGetters: AesGetters;\n onMouseEnter?: (dot: Dot) => void;\n onMouseLeave?: (dot: Dot) => void;\n}) => {\n return (<g\n transform={`translate(${scales.x(dot.x as PointValue)},${scales.y(dot.y as PointValue)})`}\n opacity={dot.dimmed ? 0.3 : 1}\n onMouseOver={() => onMouseEnter?.(dot)}\n onMouseLeave={() => onMouseLeave?.(dot)}\n >\n {getPointShape(\n aesGetters.dotShape(dot.idx),\n aesGetters.dotSize(dot.idx),\n aesGetters.dotColor(dot.idx)\n )}\n </g>);\n});\n\nexport const ChartLabels = memo(({\n labels,\n onMouseEnter,\n onMouseLeave,\n}: {\n labels: Label[];\n onMouseEnter: (dot: Dot ) => void;\n onMouseLeave: (dot: Dot ) => void;\n}) => {\n return (<>\n {labels.map((label, idx) => {\n const {name, height, width} = label;\n return (\n <g key={idx} transform={`translate(${getLabelMinX(label)},${getLabelMinY(label)})`}>\n <rect\n x=\"0\"\n y=\"0\"\n width={width}\n height={height}\n fill=\"transparent\"\n stroke=\"none\"\n onMouseEnter={() => onMouseEnter(label.dot)}\n onMouseLeave={() => onMouseLeave(label.dot)}\n />\n <text\n x={0}\n y={height / 2}\n stroke=\"white\"\n strokeWidth={2}\n paintOrder=\"stroke\"\n style={{pointerEvents: 'none'}}\n fontFamily=\"Manrope\"\n fontSize=\"16px\"\n dominantBaseline=\"middle\"\n >\n {name}\n </text>\n </g>\n );\n })}\n </>);\n});\n\nfunction computeLabels(dots: Dot[], scales: ChartScales, chartWidth: number, chartHeight: number, aesGetters: AesGetters): Label[] {\n const textMeasurer = new TextMeasurer('16px Manrope');\n const getPosition = createLabelPositioner(chartWidth, chartHeight);\n const labels: Label[] = [];\n\n for (let i = 0; i < dots.length; i++) {\n const dot = dots[i];\n if (dot.label == null) {\n continue;\n }\n const name = String(dot.label);\n const metrics = textMeasurer.getTextMetrics(name);\n const x = scales.x(dot.x as PointValue);\n const y = scales.y(dot.y as PointValue);\n const w = metrics.width;\n const h = (metrics.actualBoundingBoxAscent) + (metrics.actualBoundingBoxDescent);\n const p = aesGetters.dotSize(dot.idx) + LABEL_OFFSET;\n const position = getPosition(x as number, y as number, w, h, p);\n if (!position) {\n continue;\n }\n\n labels.push({\n x: x as number,\n y: y as number,\n dot,\n name,\n width: w,\n height: h,\n padding: p,\n xPosition: position[0],\n yPosition: position[1],\n } satisfies Label);\n }\n\n return labels;\n}\n"],"names":["LABEL_OFFSET","ChartLayersData","memo","width","height","scales","dotsData","layersData","aesGetters","onMouseEnterDot","onMouseLeaveDot","layer","idx","jsx","ChartLayerDots","ChartCurveLayer","dots","activeDot","setActiveDot","useState","hasLayerDots","useMemo","labels","computeLabels","s","ChartDots","ChartLabels","dot","jsxs","getPointShape","curve","d","getLineShape","line","curveBasis","onMouseEnter","onMouseLeave","Fragment","ChartDot","label","name","getLabelMinX","getLabelMinY","chartWidth","chartHeight","textMeasurer","TextMeasurer","getPosition","createLabelPositioner","i","metrics","x","y","w","h","p","position"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTooltip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartTooltip.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot/components/ChartTooltip.tsx"],"sourcesContent":["import {format} from 'd3-format';\nimport { memo, useMemo } from 'react';\nimport type { TooltipsData } from '../../common/Tooltip';\nimport { Tooltip } from '../../common/Tooltip';\nimport { useDataFrame } from '../../common/useDataFrame';\nimport type { DataFrame } from '../../DataFrame';\nimport type { ColumnName } from '../../types';\nimport type { Dot } from '../dots';\nimport type { ScatterplotSettingsImpl } from '../ScatterplotSettingsImpl';\nimport {formatColumnValue} from '../utils/formatColumnValue';\nimport { ChartDot } from './ChartLayersData';\nimport type {\n AesGetters,\n ChartDimensionsData,\n ChartScales,\n ChartSizes,\n Margins\n} from './types';\n\ninterface Props {\n tooltipsData: TooltipsData<Dot>;\n dimensions: undefined | ChartDimensionsData;\n scales: undefined | ChartScales;\n keyColumn: ColumnName;\n margins: Margins;\n chartSizes: ChartSizes;\n tooltips: ScatterplotSettingsImpl['chartSettings']['tooltips'];\n aesGetters: AesGetters;\n}\n\nconst ZERO_SIDE_DISTANCES = { left: 0, right: 0, top: 0, bottom: 0 };\n\nexport const ChartTooltip = memo(({\n tooltipsData,\n tooltips,\n keyColumn,\n chartSizes,\n dimensions,\n scales,\n aesGetters,\n}: Props) => {\n const dataFrame = useDataFrame();\n const padding = dimensions?.padding;\n\n const sideDistances = useMemo(() => {\n if (!dimensions || !scales || !padding) {\n return ZERO_SIDE_DISTANCES;\n }\n\n return ({\n left: dimensions.left + padding.left,\n right: chartSizes.totalWidth - (dimensions.left + padding.left),\n top: dimensions.top + padding.top,\n bottom: chartSizes.totalHeight - (dimensions.top + padding.top),\n });\n }, [dimensions, padding, chartSizes]);\n\n if (!dimensions || !scales || !padding || !tooltipsData.selectedData || !tooltips.show) {\n return null;\n }\n\n return (\n <>\n {tooltipsData.fixed && \n <g transform={`translate(${dimensions.left + padding.left}, ${dimensions.top + padding.top})`}>\n <rect width={chartSizes.chartWidth} height={chartSizes.chartHeight} fill=\"rgba(255, 255, 255, 0.8)\"/>\n <ChartDot\n dot={tooltipsData.selectedData}\n scales={scales}\n aesGetters={aesGetters}\n />\n </g>\n }\n <Tooltip\n content={getTooltipContent(dataFrame, tooltipsData.selectedData, tooltips?.content)}\n x={scales.x(tooltipsData.selectedData.x)}\n y={scales.y(tooltipsData.selectedData.y)}\n active\n sideDistances={sideDistances}\n fixed={tooltipsData.fixed}\n onClose={tooltipsData.onClose}\n container={null}\n />\n </>\n );\n});\n\nfunction getTooltipContent(dataFrame: DataFrame, dot: Dot, columnsList: ColumnName[] = []) {\n const lines: string[] = [];\n for (const column of columnsList) {\n const columnFormatter = column?.format ? format(column.format) : undefined;\n lines.push(`${column.label}: ${formatColumnValue(dataFrame, dot.idx, column, columnFormatter)}`);\n }\n return lines;\n}\n"],"names":["ZERO_SIDE_DISTANCES","ChartTooltip","memo","tooltipsData","tooltips","keyColumn","chartSizes","dimensions","scales","aesGetters","dataFrame","useDataFrame","padding","sideDistances","useMemo","jsxs","Fragment","jsx","ChartDot","Tooltip","getTooltipContent","dot","columnsList","lines","column","columnFormatter","format","formatColumnValue"],"mappings":";;;;;;;AA8BA,MAAMA,IAAsB,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,EAAA,GAEpDC,IAAeC,EAAAA,KAAK,CAAC;AAAA,EAC9B,cAAAC;AAAAA,EACA,UAAAC;AAAAA,EACA,WAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,QAAAC;AAAAA,EACA,YAAAC;AACJ,MAAa;AACT,QAAMC,IAAYC,KACZC,IAAUL,KAAA,OAAA,SAAAA,EAAY,SAEtBM,IAAgBC,EAAAA,QAAQ,MACtB,CAACP,KAAc,CAACC,KAAU,CAACI,IACpBZ,IAGH;AAAA,IACJ,MAAMO,EAAW,OAAOK,EAAQ;AAAA,IAChC,OAAON,EAAW,cAAcC,EAAW,OAAOK,EAAQ;AAAA,IAC1D,KAAKL,EAAW,MAAMK,EAAQ;AAAA,IAC9B,QAAQN,EAAW,eAAeC,EAAW,MAAMK,EAAQ;AAAA,EAAA,GAEhE,CAACL,GAAYK,GAASN,CAAU,CAAC;AAEpC,SAAI,CAACC,KAAc,CAACC,KAAU,CAACI,KAAW,CAACT,EAAa,gBAAgB,CAACC,EAAS,OACvE,OAIPW,gBAAAA,EAAAA,KAAAC,EAAAA,UAAA,EACK,UAAA;AAAA,IAAAb,EAAa,SACVY,gBAAAA,EAAAA,KAAC,KAAA,EAAE,WAAW,aAAaR,EAAW,OAAOK,EAAQ,IAAI,KAAKL,EAAW,MAAMK,EAAQ,GAAG,KACtF,UAAA;AAAA,MAAAK,gBAAAA,EAAAA,IAAC,QAAA,EAAK,OAAOX,EAAW,YAAY,QAAQA,EAAW,aAAa,MAAK,4BAA0B;AAAA,MACnGW,gBAAAA,EAAAA;AAAAA,QAACC;AAAAA,QAAA;AAAA,UACG,KAAKf,EAAa;AAAA,UAClB,QAAAK;AAAAA,UACA,YAAAC;AAAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAER;AAAA,IAEJQ,gBAAAA,EAAAA;AAAAA,MAACE;AAAAA,MAAA;AAAA,QACG,SAASC,EAAkBV,GAAWP,EAAa,cAAcC,KAAA,OAAA,SAAAA,EAAU,OAAO;AAAA,QAClF,GAAGI,EAAO,EAAEL,EAAa,aAAa,
|
|
1
|
+
{"version":3,"file":"ChartTooltip.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot/components/ChartTooltip.tsx"],"sourcesContent":["import {format} from 'd3-format';\nimport { memo, useMemo } from 'react';\nimport type { TooltipsData } from '../../common/Tooltip';\nimport { Tooltip } from '../../common/Tooltip';\nimport { useDataFrame } from '../../common/useDataFrame';\nimport type { DataFrame } from '../../DataFrame';\nimport type { ColumnName } from '../../types';\nimport type { Dot } from '../dots';\nimport type { ScatterplotSettingsImpl } from '../ScatterplotSettingsImpl';\nimport {formatColumnValue} from '../utils/formatColumnValue';\nimport { ChartDot } from './ChartLayersData';\nimport type {\n AesGetters,\n ChartDimensionsData,\n ChartScales,\n ChartSizes,\n Margins\n} from './types';\n\ninterface Props {\n tooltipsData: TooltipsData<Dot>;\n dimensions: undefined | ChartDimensionsData;\n scales: undefined | ChartScales;\n keyColumn: ColumnName;\n margins: Margins;\n chartSizes: ChartSizes;\n tooltips: ScatterplotSettingsImpl['chartSettings']['tooltips'];\n aesGetters: AesGetters;\n}\n\nconst ZERO_SIDE_DISTANCES = { left: 0, right: 0, top: 0, bottom: 0 };\n\nexport const ChartTooltip = memo(({\n tooltipsData,\n tooltips,\n keyColumn,\n chartSizes,\n dimensions,\n scales,\n aesGetters,\n}: Props) => {\n const dataFrame = useDataFrame();\n const padding = dimensions?.padding;\n\n const sideDistances = useMemo(() => {\n if (!dimensions || !scales || !padding) {\n return ZERO_SIDE_DISTANCES;\n }\n\n return ({\n left: dimensions.left + padding.left,\n right: chartSizes.totalWidth - (dimensions.left + padding.left),\n top: dimensions.top + padding.top,\n bottom: chartSizes.totalHeight - (dimensions.top + padding.top),\n });\n }, [dimensions, padding, chartSizes]);\n\n if (!dimensions || !scales || !padding || !tooltipsData.selectedData || !tooltips.show) {\n return null;\n }\n\n return (\n <>\n {tooltipsData.fixed && \n <g transform={`translate(${dimensions.left + padding.left}, ${dimensions.top + padding.top})`}>\n <rect width={chartSizes.chartWidth} height={chartSizes.chartHeight} fill=\"rgba(255, 255, 255, 0.8)\"/>\n <ChartDot\n dot={tooltipsData.selectedData}\n scales={scales}\n aesGetters={aesGetters}\n />\n </g>\n }\n <Tooltip\n content={getTooltipContent(dataFrame, tooltipsData.selectedData, tooltips?.content)}\n x={scales.x(tooltipsData.selectedData.x as unknown as { valueOf(): number; } & string) as number}\n y={scales.y(tooltipsData.selectedData.y as unknown as { valueOf(): number; } & string) as number}\n active\n sideDistances={sideDistances}\n fixed={tooltipsData.fixed}\n onClose={tooltipsData.onClose}\n container={null}\n />\n </>\n );\n});\n\nfunction getTooltipContent(dataFrame: DataFrame, dot: Dot, columnsList: ColumnName[] = []) {\n const lines: string[] = [];\n for (const column of columnsList) {\n const columnFormatter = column?.format ? format(column.format) : undefined;\n lines.push(`${column.label}: ${formatColumnValue(dataFrame, dot.idx, column, columnFormatter)}`);\n }\n return lines;\n}\n"],"names":["ZERO_SIDE_DISTANCES","ChartTooltip","memo","tooltipsData","tooltips","keyColumn","chartSizes","dimensions","scales","aesGetters","dataFrame","useDataFrame","padding","sideDistances","useMemo","jsxs","Fragment","jsx","ChartDot","Tooltip","getTooltipContent","dot","columnsList","lines","column","columnFormatter","format","formatColumnValue"],"mappings":";;;;;;;AA8BA,MAAMA,IAAsB,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,EAAA,GAEpDC,IAAeC,EAAAA,KAAK,CAAC;AAAA,EAC9B,cAAAC;AAAAA,EACA,UAAAC;AAAAA,EACA,WAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,QAAAC;AAAAA,EACA,YAAAC;AACJ,MAAa;AACT,QAAMC,IAAYC,KACZC,IAAUL,KAAA,OAAA,SAAAA,EAAY,SAEtBM,IAAgBC,EAAAA,QAAQ,MACtB,CAACP,KAAc,CAACC,KAAU,CAACI,IACpBZ,IAGH;AAAA,IACJ,MAAMO,EAAW,OAAOK,EAAQ;AAAA,IAChC,OAAON,EAAW,cAAcC,EAAW,OAAOK,EAAQ;AAAA,IAC1D,KAAKL,EAAW,MAAMK,EAAQ;AAAA,IAC9B,QAAQN,EAAW,eAAeC,EAAW,MAAMK,EAAQ;AAAA,EAAA,GAEhE,CAACL,GAAYK,GAASN,CAAU,CAAC;AAEpC,SAAI,CAACC,KAAc,CAACC,KAAU,CAACI,KAAW,CAACT,EAAa,gBAAgB,CAACC,EAAS,OACvE,OAIPW,gBAAAA,EAAAA,KAAAC,EAAAA,UAAA,EACK,UAAA;AAAA,IAAAb,EAAa,SACVY,gBAAAA,EAAAA,KAAC,KAAA,EAAE,WAAW,aAAaR,EAAW,OAAOK,EAAQ,IAAI,KAAKL,EAAW,MAAMK,EAAQ,GAAG,KACtF,UAAA;AAAA,MAAAK,gBAAAA,EAAAA,IAAC,QAAA,EAAK,OAAOX,EAAW,YAAY,QAAQA,EAAW,aAAa,MAAK,4BAA0B;AAAA,MACnGW,gBAAAA,EAAAA;AAAAA,QAACC;AAAAA,QAAA;AAAA,UACG,KAAKf,EAAa;AAAA,UAClB,QAAAK;AAAAA,UACA,YAAAC;AAAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAER;AAAA,IAEJQ,gBAAAA,EAAAA;AAAAA,MAACE;AAAAA,MAAA;AAAA,QACG,SAASC,EAAkBV,GAAWP,EAAa,cAAcC,KAAA,OAAA,SAAAA,EAAU,OAAO;AAAA,QAClF,GAAGI,EAAO,EAAEL,EAAa,aAAa,CAA+C;AAAA,QACrF,GAAGK,EAAO,EAAEL,EAAa,aAAa,CAA+C;AAAA,QACrF,QAAM;AAAA,QACN,eAAAU;AAAAA,QACA,OAAOV,EAAa;AAAA,QACpB,SAASA,EAAa;AAAA,QACtB,WAAW;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEnB;AAER,CAAC;AAED,SAASiB,EAAkBV,GAAsBW,GAAUC,IAA4B,CAAA,GAAI;AACvF,QAAMC,IAAkB,CAAA;AACxB,aAAWC,KAAUF,GAAa;AAC9B,UAAMG,IAAkBD,KAAA,QAAAA,EAAQ,SAASE,EAAOF,EAAO,MAAM,IAAI;AACjED,IAAAA,EAAM,KAAK,GAAGC,EAAO,KAAK,KAAKG,EAAkBjB,GAAWW,EAAI,KAAKG,GAAQC,CAAe,CAAC,EAAE;AAAA,EACnG;AACA,SAAOF;AACX;","x_google_ignoreList":[0]}
|
package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTrendsData.js
CHANGED
|
@@ -1,23 +1,26 @@
|
|
|
1
1
|
import { j as n } from "../../node_modules/react/jsx-runtime.js";
|
|
2
|
-
import { l as
|
|
3
|
-
import { r as
|
|
2
|
+
import { l as g } from "../../node_modules/lodash/lodash.js";
|
|
3
|
+
import { r as N } from "../../_virtual/index.js";
|
|
4
4
|
import { numberFormat as i } from "../../utils/numberFormat.js";
|
|
5
|
-
|
|
5
|
+
import { isNumericScale as m } from "../utils/isNumericScale.js";
|
|
6
|
+
const V = N.memo(({
|
|
6
7
|
width: e,
|
|
7
|
-
scales:
|
|
8
|
-
trendsData:
|
|
8
|
+
scales: r,
|
|
9
|
+
trendsData: t,
|
|
9
10
|
aesGetters: s
|
|
10
|
-
}) =>
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
}) => t && t.map(({ idx: a, predict: c, getArea: h, bounded: j, xBounds: y, stats: $ }, u) => {
|
|
12
|
+
if (!m(r.x) || !m(r.y))
|
|
13
|
+
return null;
|
|
14
|
+
const [l, o] = j ? y : r.x.domain(), x = (o - l) / 15, d = c(l), f = c(o);
|
|
15
|
+
if (isNaN(d) || isNaN(f))
|
|
13
16
|
return null;
|
|
14
17
|
const p = s.trendColor(a);
|
|
15
18
|
return /* @__PURE__ */ n.jsxs("g", { children: [
|
|
16
|
-
/* @__PURE__ */ n.jsx("text", { y:
|
|
19
|
+
/* @__PURE__ */ n.jsx("text", { y: u * 20 + 20, fill: p, x: e - 8, textAnchor: "end", children: v($) }),
|
|
17
20
|
/* @__PURE__ */ n.jsx(
|
|
18
21
|
"path",
|
|
19
22
|
{
|
|
20
|
-
d:
|
|
23
|
+
d: h(r.x, r.y, g.range(l, o + x / 2, x)),
|
|
21
24
|
fill: p,
|
|
22
25
|
opacity: 0.2
|
|
23
26
|
}
|
|
@@ -25,41 +28,41 @@ const k = g.memo(({
|
|
|
25
28
|
/* @__PURE__ */ n.jsx(
|
|
26
29
|
"line",
|
|
27
30
|
{
|
|
28
|
-
x1:
|
|
29
|
-
x2:
|
|
30
|
-
y1:
|
|
31
|
-
y2:
|
|
31
|
+
x1: r.x(l),
|
|
32
|
+
x2: r.x(o),
|
|
33
|
+
y1: r.y(d),
|
|
34
|
+
y2: r.y(f),
|
|
32
35
|
stroke: p
|
|
33
36
|
}
|
|
34
37
|
)
|
|
35
|
-
] },
|
|
38
|
+
] }, u);
|
|
36
39
|
}));
|
|
37
|
-
function
|
|
40
|
+
function F(e) {
|
|
38
41
|
return typeof e.r2 > "u" ? null : /* @__PURE__ */ n.jsxs(n.Fragment, { children: [
|
|
39
42
|
/* @__PURE__ */ n.jsx("tspan", { children: "R" }),
|
|
40
43
|
/* @__PURE__ */ n.jsx("tspan", { fontSize: "10px", dy: "-8", children: "2" }),
|
|
41
44
|
/* @__PURE__ */ n.jsx("tspan", { dy: "8", children: ` = ${i(e.r2)}` })
|
|
42
45
|
] });
|
|
43
46
|
}
|
|
44
|
-
function
|
|
47
|
+
function C(e) {
|
|
45
48
|
return typeof e.pValue > "u" ? null : /* @__PURE__ */ n.jsx("tspan", { children: `p-value = ${i(e.pValue)}` });
|
|
46
49
|
}
|
|
47
50
|
function b(e) {
|
|
48
51
|
if (typeof e.coefficients > "u")
|
|
49
52
|
return null;
|
|
50
|
-
const { slope:
|
|
51
|
-
return /* @__PURE__ */ n.jsx("tspan", { children: /* @__PURE__ */ n.jsx("tspan", { children: `slope = ${i(
|
|
53
|
+
const { slope: r, slopeError: t, intercept: s, interceptError: a } = e.coefficients;
|
|
54
|
+
return /* @__PURE__ */ n.jsx("tspan", { children: /* @__PURE__ */ n.jsx("tspan", { children: `slope = ${i(r)} ± ${i(t)}, intercept = ${i(s)} ± ${i(a)}` }) });
|
|
52
55
|
}
|
|
53
|
-
function
|
|
54
|
-
const
|
|
55
|
-
(
|
|
56
|
+
function v(e) {
|
|
57
|
+
const r = [F(e), C(e), b(e)].filter(
|
|
58
|
+
(t) => t !== null
|
|
56
59
|
);
|
|
57
|
-
return /* @__PURE__ */ n.jsx(n.Fragment, { children:
|
|
58
|
-
|
|
59
|
-
/* @__PURE__ */ n.jsx("tspan", { children: s <
|
|
60
|
+
return /* @__PURE__ */ n.jsx(n.Fragment, { children: r.map((t, s) => /* @__PURE__ */ n.jsxs("tspan", { children: [
|
|
61
|
+
t,
|
|
62
|
+
/* @__PURE__ */ n.jsx("tspan", { children: s < r.length - 1 && ", " })
|
|
60
63
|
] }, s)) });
|
|
61
64
|
}
|
|
62
65
|
export {
|
|
63
|
-
|
|
66
|
+
V as ChartTrendsData
|
|
64
67
|
};
|
|
65
68
|
//# sourceMappingURL=ChartTrendsData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartTrendsData.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot/components/ChartTrendsData.tsx"],"sourcesContent":["import { range } 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(({ idx, predict, getArea, bounded, xBounds, stats}, i) => {\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(idx);\n return (\n <g key={i}>\n <text y={i * 20 + 20} fill={fillColor} x={width - 8} textAnchor=\"end\">\n {formatStats(stats)}\n </text>\n <path\n d={getArea(scales.x, scales.y, 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","idx","predict","getArea","bounded","xBounds","stats","i","minX","maxX","step","p1","p2","fillColor","n","jsx","formatStats","range","formatR2","jsxs","Fragment","numberFormat","formatPValue","formatCoefficients","slope","slopeError","intercept","interceptError","items","value","item"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChartTrendsData.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot/components/ChartTrendsData.tsx"],"sourcesContent":["import { range } 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';\nimport { isNumericScale } from '../utils/isNumericScale';\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(({ idx, predict, getArea, bounded, xBounds, stats}, i) => {\n if (!isNumericScale(scales.x) || !isNumericScale(scales.y)) {\n return null;\n }\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(idx);\n return (\n <g key={i}>\n <text y={i * 20 + 20} fill={fillColor} x={width - 8} textAnchor=\"end\">\n {formatStats(stats)}\n </text>\n <path\n d={getArea(scales.x, scales.y, 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","idx","predict","getArea","bounded","xBounds","stats","i","isNumericScale","minX","maxX","step","p1","p2","fillColor","n","jsx","formatStats","range","formatR2","jsxs","Fragment","numberFormat","formatPValue","formatCoefficients","slope","slopeError","intercept","interceptError","items","value","item"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartsGroup.js
CHANGED
|
@@ -1,39 +1,40 @@
|
|
|
1
1
|
import { j as s } from "../../node_modules/react/jsx-runtime.js";
|
|
2
|
-
import { r as
|
|
3
|
-
import { ChartsTitle as
|
|
4
|
-
import { ErrorBoundary as
|
|
5
|
-
import
|
|
6
|
-
import { Legend as
|
|
7
|
-
import { useTooltip as
|
|
8
|
-
import { LEGEND_OFFSET as
|
|
9
|
-
import { Chart as
|
|
10
|
-
import { ChartTooltip as
|
|
11
|
-
function
|
|
12
|
-
settingsId:
|
|
2
|
+
import { r as G } from "../../_virtual/index.js";
|
|
3
|
+
import { ChartsTitle as P } from "../../common/ChartsTitle.js";
|
|
4
|
+
import { ErrorBoundary as I } from "../../common/ErrorBoundary.js";
|
|
5
|
+
import B from "../../common/fonts.js";
|
|
6
|
+
import { Legend as $ } from "../../common/Legend.js";
|
|
7
|
+
import { useTooltip as k } from "../../common/Tooltip.js";
|
|
8
|
+
import { LEGEND_OFFSET as K } from "../constants.js";
|
|
9
|
+
import { Chart as O } from "./Chart.js";
|
|
10
|
+
import { ChartTooltip as N } from "./ChartTooltip.js";
|
|
11
|
+
function tt({
|
|
12
|
+
settingsId: f,
|
|
13
13
|
chartSettings: g,
|
|
14
14
|
chartSizes: e,
|
|
15
15
|
chartsDimensions: o,
|
|
16
16
|
facetKeys: a,
|
|
17
|
-
facetSettings:
|
|
17
|
+
facetSettings: x,
|
|
18
18
|
scales: r,
|
|
19
|
-
groupedDots:
|
|
19
|
+
groupedDots: y,
|
|
20
20
|
legendData: u,
|
|
21
21
|
trendsData: l,
|
|
22
|
-
columnsCount:
|
|
22
|
+
columnsCount: w,
|
|
23
23
|
margins: n,
|
|
24
|
-
keyColumn:
|
|
25
|
-
mainTitle:
|
|
26
|
-
facetTitles:
|
|
24
|
+
keyColumn: D,
|
|
25
|
+
mainTitle: j,
|
|
26
|
+
facetTitles: v,
|
|
27
27
|
captionsSizes: S,
|
|
28
|
-
onlyPositive:
|
|
29
|
-
layersData:
|
|
28
|
+
onlyPositive: T,
|
|
29
|
+
layersData: L,
|
|
30
30
|
aesGetters: h,
|
|
31
|
-
|
|
31
|
+
discreteAxesLabels: d,
|
|
32
|
+
onTooltipHintSwitch: b
|
|
32
33
|
}) {
|
|
33
|
-
const i =
|
|
34
|
+
const i = k(b), { xAxis: C, yAxis: E, title: m, frame: M, legend: W, tooltips: H } = g, c = o[a[0]].padding, z = o[a[w - 1]].padding, A = e.chartsWidth + K, F = c.top, p = G.useMemo(() => Object.fromEntries(
|
|
34
35
|
a.map((t) => [t, { x: r.x[t], y: r.y[t] }])
|
|
35
36
|
), [r.x, r.y, a]);
|
|
36
|
-
return /* @__PURE__ */ s.jsx(
|
|
37
|
+
return /* @__PURE__ */ s.jsx(I, { dataId: f, children: /* @__PURE__ */ s.jsx("div", { style: { position: "relative", width: e.totalWidth, height: e.totalHeight }, children: /* @__PURE__ */ s.jsxs(
|
|
37
38
|
"svg",
|
|
38
39
|
{
|
|
39
40
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -42,54 +43,56 @@ function Z({
|
|
|
42
43
|
height: e.totalHeight,
|
|
43
44
|
style: { position: "absolute", top: 0, left: 0, zIndex: 0 },
|
|
44
45
|
children: [
|
|
45
|
-
/* @__PURE__ */ s.jsx("defs", { children:
|
|
46
|
+
/* @__PURE__ */ s.jsx("defs", { children: B }),
|
|
46
47
|
/* @__PURE__ */ s.jsxs("g", { transform: `translate(${n.left},${n.top})`, fontFamily: "Manrope", children: [
|
|
47
48
|
/* @__PURE__ */ s.jsx(
|
|
48
|
-
|
|
49
|
+
P,
|
|
49
50
|
{
|
|
50
|
-
title:
|
|
51
|
+
title: j,
|
|
51
52
|
show: m.show,
|
|
52
53
|
position: m.position,
|
|
53
|
-
leftPadding:
|
|
54
|
-
rightPadding:
|
|
54
|
+
leftPadding: c.left,
|
|
55
|
+
rightPadding: z.right,
|
|
55
56
|
chartsWidth: e.chartsWidth
|
|
56
57
|
}
|
|
57
58
|
),
|
|
58
59
|
a.map((t) => /* @__PURE__ */ s.jsx(
|
|
59
|
-
|
|
60
|
+
O,
|
|
60
61
|
{
|
|
61
62
|
facetKey: t,
|
|
62
63
|
scales: p[t],
|
|
63
64
|
width: e.chartWidth,
|
|
64
65
|
height: e.chartHeight,
|
|
65
66
|
dimensions: o[t],
|
|
66
|
-
facetSettings:
|
|
67
|
-
xAxis:
|
|
68
|
-
yAxis:
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
facetSettings: x,
|
|
68
|
+
xAxis: C,
|
|
69
|
+
yAxis: E,
|
|
70
|
+
discreteLabelsX: d.x[t],
|
|
71
|
+
discreteLabelsY: d.y[t],
|
|
72
|
+
frameType: M.type,
|
|
73
|
+
dotsData: y[t],
|
|
71
74
|
trendsData: l ? l[t] : null,
|
|
72
|
-
facetTitle:
|
|
75
|
+
facetTitle: v[t],
|
|
73
76
|
captionsSizes: S,
|
|
74
|
-
layersData:
|
|
75
|
-
onlyPositive:
|
|
77
|
+
layersData: L[t],
|
|
78
|
+
onlyPositive: T,
|
|
76
79
|
aesGetters: h,
|
|
77
80
|
onMouseEnterDot: i.onMouseEnter,
|
|
78
81
|
onMouseLeaveDot: i.onMouseLeave
|
|
79
82
|
},
|
|
80
83
|
t
|
|
81
84
|
)),
|
|
82
|
-
|
|
85
|
+
W.show && /* @__PURE__ */ s.jsx("g", { transform: `translate(${A},${F})`, children: /* @__PURE__ */ s.jsx($, { legendData: u }) }),
|
|
83
86
|
/* @__PURE__ */ s.jsx(
|
|
84
|
-
|
|
87
|
+
N,
|
|
85
88
|
{
|
|
86
89
|
tooltipsData: i,
|
|
87
90
|
dimensions: o[i.currentFacet],
|
|
88
91
|
scales: p[i.currentFacet],
|
|
89
|
-
keyColumn:
|
|
92
|
+
keyColumn: D,
|
|
90
93
|
margins: n,
|
|
91
94
|
chartSizes: e,
|
|
92
|
-
tooltips:
|
|
95
|
+
tooltips: H,
|
|
93
96
|
aesGetters: h
|
|
94
97
|
}
|
|
95
98
|
)
|
|
@@ -99,6 +102,6 @@ function Z({
|
|
|
99
102
|
) }) });
|
|
100
103
|
}
|
|
101
104
|
export {
|
|
102
|
-
|
|
105
|
+
tt as ChartsGroup
|
|
103
106
|
};
|
|
104
107
|
//# sourceMappingURL=ChartsGroup.js.map
|
package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartsGroup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartsGroup.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/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.x, scales.y, 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","r","ErrorBoundary","jsx","jsxs","fonts","ChartsTitle","Chart","Legend","ChartTooltip"],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"ChartsGroup.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/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 discreteAxesLabels: {\n x: Record<string, Record<string, string[]>>,\n y: Record<string, Record<string, string[]>>\n };\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 discreteAxesLabels,\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.x, scales.y, 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 discreteLabelsX={discreteAxesLabels.x[key]}\n discreteLabelsY={discreteAxesLabels.y[key]}\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","discreteAxesLabels","onTooltipHintSwitch","tooltipsData","useTooltip","xAxis","yAxis","title","frame","legend","tooltips","leftTopChartPadding","rightTopChartPadding","legendLeft","LEGEND_OFFSET","legendTop","scalesByFacet","useMemo","key","r","ErrorBoundary","jsx","jsxs","fonts","ChartsTitle","Chart","Legend","ChartTooltip"],"mappings":"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","x_google_ignoreList":[0]}
|