@milaboratories/graph-maker 1.1.167 → 1.1.169
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/constantsCommon.d.ts +5 -0
- package/dist/GraphMaker/constantsCommon.d.ts.map +1 -1
- package/dist/GraphMaker/constantsCommon.js +13 -8
- package/dist/GraphMaker/constantsCommon.js.map +1 -1
- package/dist/GraphMaker/forms/DataMappingForm/BubbleForm.vue.d.ts.map +1 -1
- package/dist/GraphMaker/forms/DataMappingForm/BubbleForm.vue.js +60 -56
- package/dist/GraphMaker/forms/DataMappingForm/BubbleForm.vue.js.map +1 -1
- package/dist/GraphMaker/forms/LayersForm/Layer/Bubble.vue.d.ts.map +1 -1
- package/dist/GraphMaker/forms/LayersForm/Layer/Bubble.vue.js +86 -58
- package/dist/GraphMaker/forms/LayersForm/Layer/Bubble.vue.js.map +1 -1
- package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedArea.vue.d.ts.map +1 -1
- package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedArea.vue.js +56 -38
- package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedArea.vue.js.map +1 -1
- package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedBar.vue.d.ts.map +1 -1
- package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedBar.vue.js +48 -30
- package/dist/GraphMaker/forms/LayersForm/Layer/discrete/StackedBar.vue.js.map +1 -1
- package/dist/GraphMaker/forms/LayersForm/Layer/heatmap/Heatmap.vue.js +109 -112
- package/dist/GraphMaker/forms/LayersForm/Layer/heatmap/Heatmap.vue.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +20 -0
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.js +19 -15
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +3 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +8 -8
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.js +23 -23
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/getLayersDataFromForms.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/getLayersDataFromForms.js +7 -5
- package/dist/GraphMaker/utils/createChartSettingsForRender/getLayersDataFromForms.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/BubbleSettingsImpl.js +19 -14
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/BubbleSettingsImpl.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/ChartRenderer.js +132 -132
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/ChartRenderer.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/Chart.js +53 -53
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/Chart.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/ChartsGroup.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCellTooltip.js +7 -7
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCellTooltip.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getGroupedCellsData.js +49 -83
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getGroupedCellsData.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js +51 -34
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/utils/calculateCaptionTails.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js +8 -8
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js +8 -8
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/stackedBar.js +54 -29
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/stackedBar.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js +2 -2
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/AnnotationCellsCanvas.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/AnnotationCellsSvg.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/CanvasCells.js +31 -31
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/CanvasCells.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js +20 -20
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js +12 -12
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/SvgCells.js +14 -14
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/SvgCells.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/tooltipUtils.js +14 -14
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/tooltipUtils.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/fillCellsData.js +244 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/fillCellsData.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js +28 -214
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getDendrograms.js +26 -26
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getDendrograms.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js +8 -8
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateCaptionTails.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-array/src/min.js +12 -6
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-array/src/min.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/bubble.js +23 -12
- package/dist/node_modules/@milaboratories/miplots4/dist/types/bubble.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js +2 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/getFacetOrGroupKey.js +7 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/getFacetOrGroupKey.js.map +1 -0
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js +165 -95
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js +64 -64
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js +30 -30
- package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import { j as
|
|
1
|
+
import { j as M } from "../../node_modules/react/jsx-runtime.js";
|
|
2
2
|
import { r as x } from "../../_virtual/index.js";
|
|
3
|
-
import { useFunction as
|
|
4
|
-
function
|
|
3
|
+
import { useFunction as j } from "../../utils/hooks/useFunction.js";
|
|
4
|
+
function K(e, t, s, o, n, l, v, g, h, d, m, a) {
|
|
5
5
|
var f;
|
|
6
6
|
if (e) {
|
|
7
|
-
e.beginPath(), e.clearRect(0, 0, m,
|
|
8
|
-
for (const
|
|
7
|
+
e.beginPath(), e.clearRect(0, 0, m, a);
|
|
8
|
+
for (const c of o)
|
|
9
9
|
for (const i of n) {
|
|
10
|
-
const
|
|
11
|
-
if (!
|
|
10
|
+
const u = (f = s == null ? void 0 : s[c]) == null ? void 0 : f[i];
|
|
11
|
+
if (!u)
|
|
12
12
|
continue;
|
|
13
|
-
const p = t.x(
|
|
14
|
-
e.fillStyle =
|
|
13
|
+
const p = t.x(c), r = t.y(i);
|
|
14
|
+
e.fillStyle = u.value.dataSource === null ? h : d(u.normalizedValue.dataSource), e.fillRect(p, r, l, v);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
function
|
|
18
|
+
function L(e, t, s) {
|
|
19
19
|
let o = 0, n = e.length - 1;
|
|
20
20
|
for (; o <= n; ) {
|
|
21
|
-
const
|
|
22
|
-
if (Math.abs(e[
|
|
23
|
-
return e[
|
|
24
|
-
t < e[
|
|
21
|
+
const l = Math.floor((o + n) / 2);
|
|
22
|
+
if (Math.abs(e[l] - t) < s)
|
|
23
|
+
return e[l] >= t ? l - 1 : l;
|
|
24
|
+
t < e[l] ? n = l - 1 : o = l + 1;
|
|
25
25
|
}
|
|
26
26
|
return -1;
|
|
27
27
|
}
|
|
28
|
-
function
|
|
29
|
-
const n =
|
|
28
|
+
function w(e, t, s, o) {
|
|
29
|
+
const n = L(t, e, o);
|
|
30
30
|
return n === -1 ? -1 : s[n];
|
|
31
31
|
}
|
|
32
32
|
function X({
|
|
@@ -35,20 +35,20 @@ function X({
|
|
|
35
35
|
facetKey: s,
|
|
36
36
|
scales: o,
|
|
37
37
|
cells: n,
|
|
38
|
-
xKeys:
|
|
38
|
+
xKeys: l,
|
|
39
39
|
yKeys: v,
|
|
40
40
|
stepX: g,
|
|
41
41
|
stepY: h,
|
|
42
42
|
aes: d,
|
|
43
43
|
colorScale: m,
|
|
44
|
-
tooltipsData:
|
|
44
|
+
tooltipsData: a
|
|
45
45
|
}) {
|
|
46
|
-
const f = x.useRef(null),
|
|
47
|
-
|
|
46
|
+
const f = x.useRef(null), c = window.devicePixelRatio || 1, i = x.useRef(null), u = () => {
|
|
47
|
+
K(
|
|
48
48
|
i.current,
|
|
49
49
|
o,
|
|
50
50
|
n,
|
|
51
|
-
|
|
51
|
+
l,
|
|
52
52
|
v,
|
|
53
53
|
g,
|
|
54
54
|
h,
|
|
@@ -60,22 +60,22 @@ function X({
|
|
|
60
60
|
);
|
|
61
61
|
};
|
|
62
62
|
x.useEffect(() => {
|
|
63
|
-
const
|
|
64
|
-
i.current || (i.current = (
|
|
65
|
-
}, [e, t]),
|
|
66
|
-
const p =
|
|
63
|
+
const r = f.current;
|
|
64
|
+
i.current || (i.current = (r == null ? void 0 : r.getContext("2d")) ?? null), r && i.current && (r.style.width = e + "px", r.style.height = t + "px", i.current.scale(c, c)), u();
|
|
65
|
+
}, [e, t]), u();
|
|
66
|
+
const p = j((r) => {
|
|
67
67
|
var y;
|
|
68
|
-
const R =
|
|
69
|
-
|
|
68
|
+
const R = r.nativeEvent.offsetX, S = r.nativeEvent.offsetY, E = w(R, o.x.range(), o.x.domain(), g), b = w(S, o.y.range(), o.y.domain(), h), C = (y = n[E]) == null ? void 0 : y[b];
|
|
69
|
+
C ? a.onMouseEnter(C, s) : a.onMouseLeave();
|
|
70
70
|
});
|
|
71
|
-
return /* @__PURE__ */
|
|
71
|
+
return /* @__PURE__ */ M.jsx("foreignObject", { width: e, height: t, children: /* @__PURE__ */ M.jsx(
|
|
72
72
|
"canvas",
|
|
73
73
|
{
|
|
74
74
|
ref: f,
|
|
75
|
-
width:
|
|
76
|
-
height:
|
|
75
|
+
width: c * e,
|
|
76
|
+
height: c * t,
|
|
77
77
|
onMouseMove: p,
|
|
78
|
-
onMouseLeave: () =>
|
|
78
|
+
onMouseLeave: () => a.onMouseLeave()
|
|
79
79
|
}
|
|
80
80
|
) });
|
|
81
81
|
}
|
package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/CanvasCells.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CanvasCells.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/components/CanvasCells.tsx"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"CanvasCells.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/components/CanvasCells.tsx"],"sourcesContent":["import type { CellHeatmap, GroupedCellsHeatmap } from '../getCells';\nimport type { AnnotationTooltipData, ChartScales } from './types';\nimport type { TooltipsData } from '../../common/Tooltip';\nimport type { HeatmapSettingsImpl } from '../HeatmapSettingsImpl';\nimport type { MouseEventHandler } from 'react';\nimport { useEffect, useRef } from 'react';\nimport { useFunction } from '../../utils/hooks/useFunction';\n\nfunction renderCells<T>(\n ctx: CanvasRenderingContext2D | null,\n scales: ChartScales,\n cells: GroupedCellsHeatmap['facets'][keyof GroupedCellsHeatmap['facets']]['cells'],\n xKeys: string[],\n yKeys: string[],\n stepX: number,\n stepY: number,\n strokeColor: string,\n emptyCellColor: string,\n colorScale: (value: T) => string,\n width: number,\n height: number\n) {\n if (!ctx) {\n return;\n }\n ctx.beginPath(); // Start a new path\n ctx.clearRect(0, 0, width, height);\n for (const xKey of xKeys) {\n for (const yKey of yKeys) {\n const cell = cells?.[xKey]?.[yKey];\n if (!cell) {\n continue;\n }\n const x = scales.x(xKey);\n const y = scales.y(yKey);\n ctx.fillStyle = cell.value.dataSource === null ? emptyCellColor : colorScale(cell.normalizedValue.dataSource as T),\n ctx.fillRect(x, y, stepX, stepY); // Add a rectangle to the current path\n }\n }\n}\n\nfunction binarySearch(arr: number[], val: number, step: number) {\n let start = 0;\n let end = arr.length - 1;\n\n while (start <= end) {\n const mid = Math.floor((start + end) / 2);\n if (Math.abs(arr[mid] - val) < step) {\n return arr[mid] >= val ? mid - 1 : mid;\n }\n\n if (val < arr[mid]) {\n end = mid - 1;\n } else {\n start = mid + 1;\n }\n }\n return -1;\n}\nfunction searchKey(px: number, positions: number[], keys: string[], step: number) {\n const pos = binarySearch(positions, px, step);\n if (pos === -1) {\n return -1;\n }\n return keys[pos];\n}\n\ninterface CanvasCellsProps<T> {\n width: number,\n height: number,\n facetKey: string,\n scales: ChartScales,\n cells: GroupedCellsHeatmap['facets'][keyof GroupedCellsHeatmap['facets']]['cells'],\n xKeys: string[],\n yKeys: string[],\n stepX: number,\n stepY: number,\n aes: HeatmapSettingsImpl['aes'];\n colorScale: (value: T) => string,\n tooltipsData: TooltipsData<CellHeatmap | AnnotationTooltipData>;\n}\n\nexport function CanvasCells<ValueType>({\n width,\n height,\n facetKey,\n scales,\n cells,\n xKeys,\n yKeys,\n stepX,\n stepY,\n aes,\n colorScale,\n tooltipsData,\n}: CanvasCellsProps<ValueType>) {\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n const canvasRatio = window.devicePixelRatio || 1;\n const ctx = useRef<CanvasRenderingContext2D | null>(null);\n const render = () => {\n renderCells<ValueType>(\n ctx.current,\n scales,\n cells,\n xKeys,\n yKeys, stepX, stepY,\n aes.cellStrokeColor,\n aes.emptyCellColor,\n colorScale,\n width,\n height\n );\n };\n useEffect(() => {\n const canvasEl = canvasRef.current;\n if (!ctx.current) {\n ctx.current = canvasEl?.getContext('2d') ?? null;\n }\n if (canvasEl && ctx.current) {\n canvasEl.style.width = width + 'px';\n canvasEl.style.height = height + 'px';\n ctx.current.scale(canvasRatio, canvasRatio);\n }\n render();\n }, [width, height]);\n render();\n\n const moveOnCanvas: MouseEventHandler<HTMLCanvasElement> = useFunction((e: React.MouseEvent) => {\n const x = e.nativeEvent.offsetX;\n const y = e.nativeEvent.offsetY;\n const xKey = searchKey(x, scales.x.range(), scales.x.domain(), stepX);\n const yKey = searchKey(y, scales.y.range(), scales.y.domain(), stepY);\n const activeCell = cells[xKey]?.[yKey];\n if (activeCell) {\n tooltipsData.onMouseEnter(activeCell, facetKey);\n } else {\n tooltipsData.onMouseLeave();\n }\n });\n\n return (\n <foreignObject width={width} height={height}>\n <canvas\n ref={canvasRef}\n width={canvasRatio * width}\n height={canvasRatio * height}\n onMouseMove={moveOnCanvas}\n onMouseLeave={() => tooltipsData.onMouseLeave()}\n />\n </foreignObject>\n );\n}"],"names":["renderCells","ctx","scales","cells","xKeys","yKeys","stepX","stepY","strokeColor","emptyCellColor","colorScale","width","height","xKey","yKey","cell","_a","x","y","binarySearch","arr","val","step","start","end","mid","searchKey","px","positions","keys","pos","CanvasCells","facetKey","aes","tooltipsData","canvasRef","useRef","canvasRatio","render","useEffect","canvasEl","moveOnCanvas","useFunction","e","activeCell","jsx"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -14,7 +14,7 @@ function fe({
|
|
|
14
14
|
facetKey: o,
|
|
15
15
|
dimensions: l,
|
|
16
16
|
scales: s,
|
|
17
|
-
cells:
|
|
17
|
+
cells: b,
|
|
18
18
|
xGroupKeys: f,
|
|
19
19
|
yGroupKeys: m,
|
|
20
20
|
xKeysByGroups: g,
|
|
@@ -33,16 +33,16 @@ function fe({
|
|
|
33
33
|
labelAngles: M,
|
|
34
34
|
chartSizes: d,
|
|
35
35
|
margins: x,
|
|
36
|
-
tooltipsContainer:
|
|
36
|
+
tooltipsContainer: j,
|
|
37
37
|
tooltipsData: e,
|
|
38
38
|
cellsRenderingMode: D
|
|
39
39
|
}) {
|
|
40
|
-
const R = J(), { xAxis: V, yAxis: W, tooltips:
|
|
40
|
+
const R = J(), { xAxis: V, yAxis: W, tooltips: C } = p, { width: G, height: S } = l.inner, { padding: i, chartEdgeSides: _, sideElementBBoxes: n } = l, { xGroupLabels: H, yGroupLabels: I, xLabels: O, yLabels: q } = a, h = s.x.domain(), B = s.y.domain(), w = {
|
|
41
41
|
left: x.left + l.left + i.left,
|
|
42
42
|
right: d.totalWidth - (x.left + l.left + i.left),
|
|
43
43
|
top: x.top + l.top + i.top,
|
|
44
44
|
bottom: d.totalHeight - (x.top + l.top + i.top)
|
|
45
|
-
},
|
|
45
|
+
}, T = !1;
|
|
46
46
|
return /* @__PURE__ */ t.jsxs("g", { transform: `translate(${l.left},${l.top})`, fontSize: N, children: [
|
|
47
47
|
/* @__PURE__ */ t.jsxs("g", { transform: `translate(${i.left},${i.top})`, children: [
|
|
48
48
|
/* @__PURE__ */ t.jsx(
|
|
@@ -57,7 +57,7 @@ function fe({
|
|
|
57
57
|
sharedY: X,
|
|
58
58
|
chartEdgeSides: _,
|
|
59
59
|
width: G,
|
|
60
|
-
height:
|
|
60
|
+
height: S,
|
|
61
61
|
scales: s,
|
|
62
62
|
stepX: r,
|
|
63
63
|
stepY: c,
|
|
@@ -93,15 +93,15 @@ function fe({
|
|
|
93
93
|
children: a.facetKeyValues[o].join(", ")
|
|
94
94
|
}
|
|
95
95
|
),
|
|
96
|
-
|
|
96
|
+
T,
|
|
97
97
|
D === "svg" && /* @__PURE__ */ t.jsx(
|
|
98
98
|
ae,
|
|
99
99
|
{
|
|
100
100
|
scales: s,
|
|
101
101
|
facetKey: o,
|
|
102
|
-
cells:
|
|
102
|
+
cells: b,
|
|
103
103
|
xKeys: h,
|
|
104
|
-
yKeys:
|
|
104
|
+
yKeys: B,
|
|
105
105
|
stepX: r,
|
|
106
106
|
stepY: c,
|
|
107
107
|
aes: y,
|
|
@@ -114,11 +114,11 @@ function fe({
|
|
|
114
114
|
{
|
|
115
115
|
scales: s,
|
|
116
116
|
facetKey: o,
|
|
117
|
-
cells:
|
|
117
|
+
cells: b,
|
|
118
118
|
width: G,
|
|
119
|
-
height:
|
|
119
|
+
height: S,
|
|
120
120
|
xKeys: h,
|
|
121
|
-
yKeys:
|
|
121
|
+
yKeys: B,
|
|
122
122
|
stepX: r,
|
|
123
123
|
stepY: c,
|
|
124
124
|
aes: y,
|
|
@@ -138,7 +138,7 @@ function fe({
|
|
|
138
138
|
stepX: r,
|
|
139
139
|
stepY: c,
|
|
140
140
|
width: G,
|
|
141
|
-
height:
|
|
141
|
+
height: S
|
|
142
142
|
}
|
|
143
143
|
),
|
|
144
144
|
/* @__PURE__ */ t.jsx(
|
|
@@ -149,10 +149,10 @@ function fe({
|
|
|
149
149
|
scales: s,
|
|
150
150
|
stepX: r,
|
|
151
151
|
stepY: c,
|
|
152
|
-
debug:
|
|
152
|
+
debug: T,
|
|
153
153
|
sideElementBBoxes: n,
|
|
154
154
|
xKeys: h,
|
|
155
|
-
yKeys:
|
|
155
|
+
yKeys: B,
|
|
156
156
|
xGroupKeys: f,
|
|
157
157
|
yGroupKeys: m,
|
|
158
158
|
xKeysByGroups: g,
|
|
@@ -168,15 +168,15 @@ function fe({
|
|
|
168
168
|
p.tooltips.show && A(e.selectedData) && e.currentFacet === o && /* @__PURE__ */ t.jsx(
|
|
169
169
|
E,
|
|
170
170
|
{
|
|
171
|
-
content: ee(R, e.selectedData, a,
|
|
171
|
+
content: ee(R, e.selectedData, a, C == null ? void 0 : C.content),
|
|
172
172
|
x: s.x(String(e.selectedData.x)) + r / 2,
|
|
173
173
|
y: s.y(String(e.selectedData.y)) + c / 2,
|
|
174
174
|
offset: h.length > 1 ? r / 2 : 0,
|
|
175
175
|
active: !0,
|
|
176
|
-
sideDistances:
|
|
176
|
+
sideDistances: w,
|
|
177
177
|
fixed: e.fixed,
|
|
178
178
|
onClose: e.onClose,
|
|
179
|
-
container:
|
|
179
|
+
container: j
|
|
180
180
|
}
|
|
181
181
|
),
|
|
182
182
|
p.tooltips.show && L(e.selectedData) && e.currentFacet === o && /* @__PURE__ */ t.jsx(
|
|
@@ -187,10 +187,10 @@ function fe({
|
|
|
187
187
|
y: e.selectedData.y,
|
|
188
188
|
offset: 0,
|
|
189
189
|
active: !0,
|
|
190
|
-
sideDistances:
|
|
190
|
+
sideDistances: w,
|
|
191
191
|
fixed: e.fixed,
|
|
192
192
|
onClose: e.onClose,
|
|
193
|
-
container:
|
|
193
|
+
container: j
|
|
194
194
|
}
|
|
195
195
|
),
|
|
196
196
|
/* @__PURE__ */ t.jsxs("g", { transform: `translate(${i.left},${i.top})`, children: [
|
|
@@ -203,7 +203,7 @@ function fe({
|
|
|
203
203
|
height: c,
|
|
204
204
|
x: s.x(e.selectedData.x),
|
|
205
205
|
y: s.y(e.selectedData.y),
|
|
206
|
-
fill: K(e.selectedData.normalizedValue ?? e.selectedData.value),
|
|
206
|
+
fill: K(e.selectedData.normalizedValue.dataSource ?? e.selectedData.value.dataSource),
|
|
207
207
|
stroke: y.cellStrokeColor
|
|
208
208
|
}
|
|
209
209
|
),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chart.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/components/Chart.tsx"],"sourcesContent":["import type { TooltipsData } from '../../common/Tooltip';\nimport { Tooltip } from '../../common/Tooltip';\nimport { useDataFrame } from '../../common/useDataFrame';\nimport { FACET_TITLE_OFFSET, FONT_SIZE } from '../constants';\nimport type { Cell, GroupedCellsData } from '../getCells';\nimport type { HeatmapSettingsImpl } from '../HeatmapSettingsImpl';\nimport { Annotations } from './Annotations';\nimport { Captions } from './Captions';\nimport { Dendrograms } from './Dendrograms';\nimport { Frames } from './Frames';\nimport type { AnnotationColorScales, AnnotationTooltipData, CaptionsSizes, ChartDendrograms, ChartDimensionsData, ChartScales, ChartSizes, DendrogramAesScales, LabelAngles, Margins } from './types';\nimport { getAnnotationTooltipContent, getTooltipContent, isAnnotationTooltip, isCellTooltip } from './tooltipUtils';\nimport { CanvasCells } from './CanvasCells';\nimport { SvgCells } from './SvgCells';\n\nexport function Chart<ValueType>({\n dendrograms,\n facetKey,\n dimensions,\n scales,\n cells,\n xGroupKeys,\n yGroupKeys,\n xKeysByGroups,\n yKeysByGroups,\n colorScale,\n chartSettings,\n cellsMeta,\n stepX,\n stepY,\n sharedX,\n sharedY,\n annotations,\n annotationColorScales,\n dendrogramAesScales,\n aes,\n labelAngles,\n chartSizes,\n margins,\n tooltipsContainer,\n tooltipsData,\n cellsRenderingMode,\n}: {\n facetKey: string;\n chartSizes: ChartSizes;\n captionsSizes: CaptionsSizes;\n dimensions: ChartDimensionsData;\n scales: ChartScales;\n cells: GroupedCellsData['facets'][keyof GroupedCellsData['facets']]['cells'];\n xKeysByGroups: GroupedCellsData['facets'][keyof GroupedCellsData['facets']]['xKeysByGroups'];\n yKeysByGroups: GroupedCellsData['facets'][keyof GroupedCellsData['facets']]['yKeysByGroups'];\n xGroupKeys: string[];\n yGroupKeys: string[];\n colorScale: (value: ValueType) => string;\n chartSettings: HeatmapSettingsImpl['chartSettings'];\n cellsMeta: GroupedCellsData['meta'];\n stepX: number;\n stepY: number;\n annotations: HeatmapSettingsImpl['annotations'];\n annotationColorScales: AnnotationColorScales;\n sharedX: boolean;\n sharedY: boolean;\n aes: HeatmapSettingsImpl['aes'];\n dendrograms: ChartDendrograms;\n dendrogramAesScales: DendrogramAesScales;\n labelAngles: LabelAngles;\n margins: Margins;\n tooltipsContainer?: Element;\n tooltipsData: TooltipsData<Cell | AnnotationTooltipData>;\n cellsRenderingMode: 'svg' | 'canvas';\n}) {\n const dataFrame = useDataFrame();\n\n const { xAxis, yAxis, tooltips } = chartSettings;\n const { width, height } = dimensions.inner;\n const { padding, chartEdgeSides, sideElementBBoxes } = dimensions;\n const { xGroupLabels, yGroupLabels, xLabels, yLabels } = cellsMeta;\n\n const xKeys = scales.x.domain();\n const yKeys = scales.y.domain();\n\n const sideDistances = {\n left: margins.left + dimensions.left + padding.left,\n right: chartSizes.totalWidth - (margins.left + dimensions.left + padding.left),\n top: margins.top + dimensions.top + padding.top,\n bottom: chartSizes.totalHeight - (margins.top + dimensions.top + padding.top),\n };\n\n const debug = false;\n return (\n <g transform={`translate(${dimensions.left},${dimensions.top})`} fontSize={FONT_SIZE}>\n <g transform={`translate(${padding.left},${padding.top})`}>\n <Annotations\n facetKey={facetKey}\n sideElementBBoxes={sideElementBBoxes}\n annotations={annotations}\n cellsMeta={cellsMeta}\n annotationColorScales={annotationColorScales}\n sharedX={sharedX}\n sharedY={sharedY}\n chartEdgeSides={chartEdgeSides}\n width={width}\n height={height}\n scales={scales}\n stepX={stepX}\n stepY={stepY}\n aes={aes}\n frame={chartSettings.frame}\n xGroupKeys={xGroupKeys}\n yGroupKeys={yGroupKeys}\n xKeysByGroups={xKeysByGroups}\n yKeysByGroups={yKeysByGroups}\n tooltipsData={tooltipsData}\n cellsRenderingMode={cellsRenderingMode}\n />\n <Dendrograms\n dendrograms={dendrograms}\n sideElementBBoxes={sideElementBBoxes}\n xGroupKeys={cellsMeta.xGroupKeys}\n yGroupKeys={cellsMeta.yGroupKeys}\n xDataByKeys={cellsMeta.xDataByKeys}\n yDataByKeys={cellsMeta.yDataByKeys}\n aesScales={dendrogramAesScales}\n />\n {/* facet title */}\n {sideElementBBoxes.top.facetTitle.isVisible && (\n <text\n x={sideElementBBoxes.top.facetTitle.x}\n y={\n sideElementBBoxes.top.facetTitle.y +\n sideElementBBoxes.top.facetTitle.height -\n FACET_TITLE_OFFSET\n }\n fontWeight=\"500\"\n fontSize=\"20px\"\n >\n {cellsMeta.facetKeyValues[facetKey].join(', ')}\n </text>\n )}\n {debug && (\n <g fill=\"green\" opacity=\"0.2\">\n <rect\n x={-padding.left}\n y={-padding.top}\n width={dimensions.outer.width}\n height={dimensions.outer.height}\n fill=\"none\"\n stroke=\"red\"\n />\n <rect x={-padding.left} y=\"0\" width={padding.left} height={height} />\n <rect x={width} y=\"0\" width={padding.right} height={height} />\n <rect x=\"0\" y={-padding.top} width={width} height={padding.top} />\n <rect x=\"0\" y={height} width={width} height={padding.bottom} />\n </g>\n )}\n {/* cells */}\n {cellsRenderingMode === 'svg' && (\n <SvgCells\n scales={scales}\n facetKey={facetKey}\n cells={cells}\n xKeys={xKeys}\n yKeys={yKeys}\n stepX={stepX}\n stepY={stepY}\n aes={aes}\n colorScale={colorScale}\n tooltipsData={tooltipsData}\n />\n )}\n {cellsRenderingMode === 'canvas' && (\n <CanvasCells\n scales={scales}\n facetKey={facetKey}\n cells={cells}\n width={width}\n height={height}\n xKeys={xKeys}\n yKeys={yKeys}\n stepX={stepX}\n stepY={stepY}\n aes={aes}\n colorScale={colorScale}\n tooltipsData={tooltipsData}\n />\n )}\n <Frames\n frame={chartSettings.frame}\n xGroupKeys={xGroupKeys}\n yGroupKeys={yGroupKeys}\n xKeysByGroups={xKeysByGroups}\n yKeysByGroups={yKeysByGroups}\n scales={scales}\n stepX={stepX}\n stepY={stepY}\n width={width}\n height={height}\n />\n <Captions\n xAxis={xAxis}\n yAxis={yAxis}\n scales={scales}\n stepX={stepX}\n stepY={stepY}\n debug={debug}\n sideElementBBoxes={sideElementBBoxes}\n xKeys={xKeys}\n yKeys={yKeys}\n xGroupKeys={xGroupKeys}\n yGroupKeys={yGroupKeys}\n xKeysByGroups={xKeysByGroups}\n yKeysByGroups={yKeysByGroups}\n xGroupLabels={xGroupLabels}\n yGroupLabels={yGroupLabels}\n labelAngles={labelAngles}\n xLabels={xLabels}\n yLabels={yLabels}\n />\n </g>\n {chartSettings.tooltips.show && isCellTooltip(tooltipsData.selectedData) && tooltipsData.currentFacet === facetKey && (\n <Tooltip\n content={getTooltipContent(dataFrame, tooltipsData.selectedData, cellsMeta, tooltips?.content)}\n x={scales.x(String(tooltipsData.selectedData.x)) + stepX / 2}\n y={scales.y(String(tooltipsData.selectedData.y)) + stepY / 2}\n offset={xKeys.length > 1 ? stepX / 2 : 0}\n active\n sideDistances={sideDistances}\n fixed={tooltipsData.fixed}\n onClose={tooltipsData.onClose}\n container={tooltipsContainer}\n />\n )}\n {chartSettings.tooltips.show && isAnnotationTooltip(tooltipsData.selectedData) && tooltipsData.currentFacet === facetKey && (\n <Tooltip\n content={getAnnotationTooltipContent(tooltipsData.selectedData, cellsMeta)}\n x={tooltipsData.selectedData.x}\n y={tooltipsData.selectedData.y}\n offset={0}\n active\n sideDistances={sideDistances}\n fixed={tooltipsData.fixed}\n onClose={tooltipsData.onClose}\n container={tooltipsContainer}\n />\n )}\n <g transform={`translate(${padding.left},${padding.top})`}>\n {tooltipsData.fixed && <rect width={chartSizes.chartWidth} height={chartSizes.chartHeight} fill=\"rgba(255, 255, 255, 0.8)\" />}\n <g>\n {tooltipsData.fixed && tooltipsData.currentFacet === facetKey && isCellTooltip(tooltipsData.selectedData) && (\n <rect\n width={stepX}\n height={stepY}\n x={scales.x(tooltipsData.selectedData.x as string)}\n y={scales.y(tooltipsData.selectedData.y as string)}\n fill={colorScale((tooltipsData.selectedData.normalizedValue ?? tooltipsData.selectedData.value) as ValueType)}\n stroke={aes.cellStrokeColor}\n />\n )}\n {tooltipsData.fixed && tooltipsData.currentFacet === facetKey && isAnnotationTooltip(tooltipsData.selectedData) && (\n <rect\n x={tooltipsData.selectedData.cell.x}\n y={tooltipsData.selectedData.cell.y}\n width={tooltipsData.selectedData.cell.width}\n height={tooltipsData.selectedData.cell.height}\n fill={tooltipsData.selectedData.cell.fill}\n stroke={tooltipsData.selectedData.cell.stroke}\n />\n )}\n </g>\n </g>\n </g>\n );\n}\n"],"names":["Chart","dendrograms","facetKey","dimensions","scales","cells","xGroupKeys","yGroupKeys","xKeysByGroups","yKeysByGroups","colorScale","chartSettings","cellsMeta","stepX","stepY","sharedX","sharedY","annotations","annotationColorScales","dendrogramAesScales","aes","labelAngles","chartSizes","margins","tooltipsContainer","tooltipsData","cellsRenderingMode","dataFrame","useDataFrame","xAxis","yAxis","tooltips","width","height","padding","chartEdgeSides","sideElementBBoxes","xGroupLabels","yGroupLabels","xLabels","yLabels","xKeys","yKeys","sideDistances","debug","jsxs","FONT_SIZE","jsx","Annotations","Dendrograms","FACET_TITLE_OFFSET","SvgCells","CanvasCells","Frames","Captions","isCellTooltip","Tooltip","getTooltipContent","isAnnotationTooltip","getAnnotationTooltipContent","r"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"Chart.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/components/Chart.tsx"],"sourcesContent":["import type { TooltipsData } from '../../common/Tooltip';\nimport { Tooltip } from '../../common/Tooltip';\nimport { useDataFrame } from '../../common/useDataFrame';\nimport { FACET_TITLE_OFFSET, FONT_SIZE } from '../constants';\nimport type { CellHeatmap, GroupedCellsHeatmap } from '../getCells';\nimport type { HeatmapSettingsImpl } from '../HeatmapSettingsImpl';\nimport { Annotations } from './Annotations';\nimport { Captions } from './Captions';\nimport { Dendrograms } from './Dendrograms';\nimport { Frames } from './Frames';\nimport type { AnnotationColorScales, AnnotationTooltipData, CaptionsSizes, ChartDendrograms, ChartDimensionsData, ChartScales, ChartSizes, DendrogramAesScales, LabelAngles, Margins } from './types';\nimport { getAnnotationTooltipContent, getTooltipContent, isAnnotationTooltip, isCellTooltip } from './tooltipUtils';\nimport { CanvasCells } from './CanvasCells';\nimport { SvgCells } from './SvgCells';\n\nexport function Chart<ValueType>({\n dendrograms,\n facetKey,\n dimensions,\n scales,\n cells,\n xGroupKeys,\n yGroupKeys,\n xKeysByGroups,\n yKeysByGroups,\n colorScale,\n chartSettings,\n cellsMeta,\n stepX,\n stepY,\n sharedX,\n sharedY,\n annotations,\n annotationColorScales,\n dendrogramAesScales,\n aes,\n labelAngles,\n chartSizes,\n margins,\n tooltipsContainer,\n tooltipsData,\n cellsRenderingMode,\n}: {\n facetKey: string;\n chartSizes: ChartSizes;\n captionsSizes: CaptionsSizes;\n dimensions: ChartDimensionsData;\n scales: ChartScales;\n cells: GroupedCellsHeatmap['facets'][keyof GroupedCellsHeatmap['facets']]['cells'];\n xKeysByGroups: GroupedCellsHeatmap['facets'][keyof GroupedCellsHeatmap['facets']]['xKeysByGroups'];\n yKeysByGroups: GroupedCellsHeatmap['facets'][keyof GroupedCellsHeatmap['facets']]['yKeysByGroups'];\n xGroupKeys: string[];\n yGroupKeys: string[];\n colorScale: (value: ValueType) => string;\n chartSettings: HeatmapSettingsImpl['chartSettings'];\n cellsMeta: GroupedCellsHeatmap['meta'];\n stepX: number;\n stepY: number;\n annotations: HeatmapSettingsImpl['annotations'];\n annotationColorScales: AnnotationColorScales;\n sharedX: boolean;\n sharedY: boolean;\n aes: HeatmapSettingsImpl['aes'];\n dendrograms: ChartDendrograms;\n dendrogramAesScales: DendrogramAesScales;\n labelAngles: LabelAngles;\n margins: Margins;\n tooltipsContainer?: Element;\n tooltipsData: TooltipsData<CellHeatmap | AnnotationTooltipData>;\n cellsRenderingMode: 'svg' | 'canvas';\n}) {\n const dataFrame = useDataFrame();\n\n const { xAxis, yAxis, tooltips } = chartSettings;\n const { width, height } = dimensions.inner;\n const { padding, chartEdgeSides, sideElementBBoxes } = dimensions;\n const { xGroupLabels, yGroupLabels, xLabels, yLabels } = cellsMeta;\n\n const xKeys = scales.x.domain();\n const yKeys = scales.y.domain();\n\n const sideDistances = {\n left: margins.left + dimensions.left + padding.left,\n right: chartSizes.totalWidth - (margins.left + dimensions.left + padding.left),\n top: margins.top + dimensions.top + padding.top,\n bottom: chartSizes.totalHeight - (margins.top + dimensions.top + padding.top),\n };\n\n const debug = false;\n return (\n <g transform={`translate(${dimensions.left},${dimensions.top})`} fontSize={FONT_SIZE}>\n <g transform={`translate(${padding.left},${padding.top})`}>\n <Annotations\n facetKey={facetKey}\n sideElementBBoxes={sideElementBBoxes}\n annotations={annotations}\n cellsMeta={cellsMeta}\n annotationColorScales={annotationColorScales}\n sharedX={sharedX}\n sharedY={sharedY}\n chartEdgeSides={chartEdgeSides}\n width={width}\n height={height}\n scales={scales}\n stepX={stepX}\n stepY={stepY}\n aes={aes}\n frame={chartSettings.frame}\n xGroupKeys={xGroupKeys}\n yGroupKeys={yGroupKeys}\n xKeysByGroups={xKeysByGroups}\n yKeysByGroups={yKeysByGroups}\n tooltipsData={tooltipsData}\n cellsRenderingMode={cellsRenderingMode}\n />\n <Dendrograms\n dendrograms={dendrograms}\n sideElementBBoxes={sideElementBBoxes}\n xGroupKeys={cellsMeta.xGroupKeys}\n yGroupKeys={cellsMeta.yGroupKeys}\n xDataByKeys={cellsMeta.xDataByKeys}\n yDataByKeys={cellsMeta.yDataByKeys}\n aesScales={dendrogramAesScales}\n />\n {/* facet title */}\n {sideElementBBoxes.top.facetTitle.isVisible && (\n <text\n x={sideElementBBoxes.top.facetTitle.x}\n y={\n sideElementBBoxes.top.facetTitle.y +\n sideElementBBoxes.top.facetTitle.height -\n FACET_TITLE_OFFSET\n }\n fontWeight=\"500\"\n fontSize=\"20px\"\n >\n {cellsMeta.facetKeyValues[facetKey].join(', ')}\n </text>\n )}\n {debug && (\n <g fill=\"green\" opacity=\"0.2\">\n <rect\n x={-padding.left}\n y={-padding.top}\n width={dimensions.outer.width}\n height={dimensions.outer.height}\n fill=\"none\"\n stroke=\"red\"\n />\n <rect x={-padding.left} y=\"0\" width={padding.left} height={height} />\n <rect x={width} y=\"0\" width={padding.right} height={height} />\n <rect x=\"0\" y={-padding.top} width={width} height={padding.top} />\n <rect x=\"0\" y={height} width={width} height={padding.bottom} />\n </g>\n )}\n {/* cells */}\n {cellsRenderingMode === 'svg' && (\n <SvgCells\n scales={scales}\n facetKey={facetKey}\n cells={cells}\n xKeys={xKeys}\n yKeys={yKeys}\n stepX={stepX}\n stepY={stepY}\n aes={aes}\n colorScale={colorScale}\n tooltipsData={tooltipsData}\n />\n )}\n {cellsRenderingMode === 'canvas' && (\n <CanvasCells\n scales={scales}\n facetKey={facetKey}\n cells={cells}\n width={width}\n height={height}\n xKeys={xKeys}\n yKeys={yKeys}\n stepX={stepX}\n stepY={stepY}\n aes={aes}\n colorScale={colorScale}\n tooltipsData={tooltipsData}\n />\n )}\n <Frames\n frame={chartSettings.frame}\n xGroupKeys={xGroupKeys}\n yGroupKeys={yGroupKeys}\n xKeysByGroups={xKeysByGroups}\n yKeysByGroups={yKeysByGroups}\n scales={scales}\n stepX={stepX}\n stepY={stepY}\n width={width}\n height={height}\n />\n <Captions\n xAxis={xAxis}\n yAxis={yAxis}\n scales={scales}\n stepX={stepX}\n stepY={stepY}\n debug={debug}\n sideElementBBoxes={sideElementBBoxes}\n xKeys={xKeys}\n yKeys={yKeys}\n xGroupKeys={xGroupKeys}\n yGroupKeys={yGroupKeys}\n xKeysByGroups={xKeysByGroups}\n yKeysByGroups={yKeysByGroups}\n xGroupLabels={xGroupLabels}\n yGroupLabels={yGroupLabels}\n labelAngles={labelAngles}\n xLabels={xLabels}\n yLabels={yLabels}\n />\n </g>\n {chartSettings.tooltips.show && isCellTooltip(tooltipsData.selectedData) && tooltipsData.currentFacet === facetKey && (\n <Tooltip\n content={getTooltipContent(dataFrame, tooltipsData.selectedData, cellsMeta, tooltips?.content)}\n x={scales.x(String(tooltipsData.selectedData.x)) + stepX / 2}\n y={scales.y(String(tooltipsData.selectedData.y)) + stepY / 2}\n offset={xKeys.length > 1 ? stepX / 2 : 0}\n active\n sideDistances={sideDistances}\n fixed={tooltipsData.fixed}\n onClose={tooltipsData.onClose}\n container={tooltipsContainer}\n />\n )}\n {chartSettings.tooltips.show && isAnnotationTooltip(tooltipsData.selectedData) && tooltipsData.currentFacet === facetKey && (\n <Tooltip\n content={getAnnotationTooltipContent(tooltipsData.selectedData, cellsMeta)}\n x={tooltipsData.selectedData.x}\n y={tooltipsData.selectedData.y}\n offset={0}\n active\n sideDistances={sideDistances}\n fixed={tooltipsData.fixed}\n onClose={tooltipsData.onClose}\n container={tooltipsContainer}\n />\n )}\n <g transform={`translate(${padding.left},${padding.top})`}>\n {tooltipsData.fixed && <rect width={chartSizes.chartWidth} height={chartSizes.chartHeight} fill=\"rgba(255, 255, 255, 0.8)\" />}\n <g>\n {tooltipsData.fixed && tooltipsData.currentFacet === facetKey && isCellTooltip(tooltipsData.selectedData) && (\n <rect\n width={stepX}\n height={stepY}\n x={scales.x(tooltipsData.selectedData.x as string)}\n y={scales.y(tooltipsData.selectedData.y as string)}\n fill={colorScale((tooltipsData.selectedData.normalizedValue.dataSource ?? tooltipsData.selectedData.value.dataSource) as ValueType)}\n stroke={aes.cellStrokeColor}\n />\n )}\n {tooltipsData.fixed && tooltipsData.currentFacet === facetKey && isAnnotationTooltip(tooltipsData.selectedData) && (\n <rect\n x={tooltipsData.selectedData.cell.x}\n y={tooltipsData.selectedData.cell.y}\n width={tooltipsData.selectedData.cell.width}\n height={tooltipsData.selectedData.cell.height}\n fill={tooltipsData.selectedData.cell.fill}\n stroke={tooltipsData.selectedData.cell.stroke}\n />\n )}\n </g>\n </g>\n </g>\n );\n}\n"],"names":["Chart","dendrograms","facetKey","dimensions","scales","cells","xGroupKeys","yGroupKeys","xKeysByGroups","yKeysByGroups","colorScale","chartSettings","cellsMeta","stepX","stepY","sharedX","sharedY","annotations","annotationColorScales","dendrogramAesScales","aes","labelAngles","chartSizes","margins","tooltipsContainer","tooltipsData","cellsRenderingMode","dataFrame","useDataFrame","xAxis","yAxis","tooltips","width","height","padding","chartEdgeSides","sideElementBBoxes","xGroupLabels","yGroupLabels","xLabels","yLabels","xKeys","yKeys","sideDistances","debug","jsxs","FONT_SIZE","jsx","Annotations","Dendrograms","FACET_TITLE_OFFSET","SvgCells","CanvasCells","Frames","Captions","isCellTooltip","Tooltip","getTooltipContent","isAnnotationTooltip","getAnnotationTooltipContent","r"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -32,13 +32,13 @@ function et({
|
|
|
32
32
|
columnsCount: D,
|
|
33
33
|
labelAngles: E,
|
|
34
34
|
onTooltipHintSwitch: M,
|
|
35
|
-
cellsRenderingMode:
|
|
35
|
+
cellsRenderingMode: W
|
|
36
36
|
}) {
|
|
37
|
-
const [
|
|
37
|
+
const [$, v] = c.useState(), z = N(M), d = c.useRef(null);
|
|
38
38
|
c.useEffect(() => {
|
|
39
|
-
d.current &&
|
|
39
|
+
d.current && v(d.current);
|
|
40
40
|
}, []);
|
|
41
|
-
const g = n[i[0]].padding,
|
|
41
|
+
const g = n[i[0]].padding, A = n[i[D - 1]].padding, F = a.left + s.chartsWidth + O, H = a.top + g.top;
|
|
42
42
|
return /* @__PURE__ */ e.jsx(b, { dataId: y, children: /* @__PURE__ */ e.jsxs(
|
|
43
43
|
"svg",
|
|
44
44
|
{
|
|
@@ -57,12 +57,12 @@ function et({
|
|
|
57
57
|
show: o.title.show,
|
|
58
58
|
position: o.title.position,
|
|
59
59
|
leftPadding: g.left,
|
|
60
|
-
rightPadding:
|
|
60
|
+
rightPadding: A.right,
|
|
61
61
|
chartsWidth: s.chartsWidth
|
|
62
62
|
}
|
|
63
63
|
),
|
|
64
64
|
i.map((t) => {
|
|
65
|
-
const { cells:
|
|
65
|
+
const { cells: R, xKeysByGroups: T, yKeysByGroups: X } = S[t];
|
|
66
66
|
return /* @__PURE__ */ e.jsx(
|
|
67
67
|
P,
|
|
68
68
|
{
|
|
@@ -72,12 +72,12 @@ function et({
|
|
|
72
72
|
dimensions: n[t],
|
|
73
73
|
xGroupKeys: u,
|
|
74
74
|
yGroupKeys: f,
|
|
75
|
-
xKeysByGroups: r.sharedX ? l.xKeysByGroups :
|
|
75
|
+
xKeysByGroups: r.sharedX ? l.xKeysByGroups : T,
|
|
76
76
|
yKeysByGroups: r.sharedY ? l.yKeysByGroups : X,
|
|
77
77
|
sharedX: r.sharedX,
|
|
78
78
|
sharedY: r.sharedY,
|
|
79
79
|
scales: { x: p.x[t], y: p.y[t] },
|
|
80
|
-
cells:
|
|
80
|
+
cells: R,
|
|
81
81
|
cellsMeta: l,
|
|
82
82
|
stepX: h.x[t],
|
|
83
83
|
stepY: h.y[t],
|
|
@@ -90,15 +90,15 @@ function et({
|
|
|
90
90
|
labelAngles: E,
|
|
91
91
|
margins: a,
|
|
92
92
|
chartSizes: s,
|
|
93
|
-
tooltipsContainer:
|
|
94
|
-
tooltipsData:
|
|
95
|
-
cellsRenderingMode:
|
|
93
|
+
tooltipsContainer: $,
|
|
94
|
+
tooltipsData: z,
|
|
95
|
+
cellsRenderingMode: W
|
|
96
96
|
},
|
|
97
97
|
t
|
|
98
98
|
);
|
|
99
99
|
})
|
|
100
100
|
] }),
|
|
101
|
-
/* @__PURE__ */ e.jsx("g", { transform: `translate(${
|
|
101
|
+
/* @__PURE__ */ e.jsx("g", { transform: `translate(${F},${H})`, children: /* @__PURE__ */ e.jsx(L, { legendData: j }) }),
|
|
102
102
|
/* @__PURE__ */ e.jsx("g", { ref: d, style: { outline: "none" } })
|
|
103
103
|
]
|
|
104
104
|
}
|
package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartsGroup.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/components/ChartsGroup.tsx"],"sourcesContent":["import { useEffect, useRef, useState } 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 { LEGEND_OFFSET } from '../constants';\nimport type {
|
|
1
|
+
{"version":3,"file":"ChartsGroup.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/components/ChartsGroup.tsx"],"sourcesContent":["import { useEffect, useRef, useState } 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 { LEGEND_OFFSET } from '../constants';\nimport type { CellHeatmap, GroupedCellsHeatmap } from '../getCells';\nimport type { HeatmapSettingsImpl } from '../HeatmapSettingsImpl';\nimport { Chart } from './Chart';\nimport type {\n AnnotationColorScales, AnnotationTooltipData, CaptionsSizes,\n ChartDendrograms, ChartDimensionsData, ChartSizes, ChartsScales, DendrogramAesScales, LabelAngles, Margins\n} from './types';\n\nexport function ChartsGroup({\n margins,\n captionsSizes,\n settingsId,\n chartSettings,\n chartSizes,\n chartsDimensions,\n facetKeys,\n facetSettings,\n xGroupKeys,\n yGroupKeys,\n scales,\n colorScale,\n groupedCells,\n cellsMeta,\n step,\n annotations,\n annotationColorScales,\n legend,\n aes,\n dendrograms,\n dendrogramAesScales,\n columnsCount,\n labelAngles,\n onTooltipHintSwitch,\n cellsRenderingMode\n}: {\n margins: Margins;\n captionsSizes: CaptionsSizes;\n chartSettings: HeatmapSettingsImpl['chartSettings'];\n facetSettings: HeatmapSettingsImpl['facetSettings'];\n chartSizes: ChartSizes;\n chartsDimensions: Record<string, ChartDimensionsData>;\n scales: ChartsScales;\n facetKeys: string[];\n xGroupKeys: string[];\n yGroupKeys: string[];\n settingsId: string;\n colorScale: (value:unknown) => string;\n annotationColorScales: AnnotationColorScales;\n groupedCells: GroupedCellsHeatmap['facets'];\n cellsMeta: GroupedCellsHeatmap['meta'];\n annotations: HeatmapSettingsImpl['annotations'];\n step: {\n x: Record<string, number>;\n y: Record<string, number>;\n };\n legend: LegendData;\n aes: HeatmapSettingsImpl['aes'];\n dendrograms: Record<string, ChartDendrograms>;\n dendrogramAesScales: DendrogramAesScales;\n columnsCount: number;\n labelAngles: LabelAngles;\n onTooltipHintSwitch: (v:boolean) => void;\n cellsRenderingMode: 'svg' | 'canvas'\n}) {\n const [tooltipsContainer, setTooltipsContainer] = useState<SVGGElement>();\n const tooltipsData = useTooltip<CellHeatmap|AnnotationTooltipData>(onTooltipHintSwitch);\n const tooltipsRef = useRef<SVGGElement>(null);\n useEffect(() => {\n if (tooltipsRef.current) {\n setTooltipsContainer(tooltipsRef.current);\n }\n }, []);\n\n const leftTopChartPadding = chartsDimensions[facetKeys[0]].padding;\n const rightTopChartPadding = chartsDimensions[facetKeys[columnsCount - 1]].padding;\n\n const legendLeft = margins.left + chartSizes.chartsWidth + LEGEND_OFFSET;\n const legendTop = margins.top + 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 fontFamily=\"Manrope\"\n >\n <defs>{fonts}</defs>\n <g transform={`translate(${margins.left},${margins.top})`}>\n <ChartsTitle\n title={[chartSettings.title.name]}\n show={chartSettings.title.show}\n position={chartSettings.title.position}\n leftPadding={leftTopChartPadding.left}\n rightPadding={rightTopChartPadding.right}\n chartsWidth={chartSizes.chartsWidth}\n />\n {facetKeys.map(facetKey => {\n const {cells, xKeysByGroups, yKeysByGroups} = groupedCells[facetKey];\n return (\n <Chart\n dendrograms={dendrograms[facetKey]}\n captionsSizes={captionsSizes}\n key={facetKey}\n facetKey={facetKey}\n dimensions={chartsDimensions[facetKey]}\n xGroupKeys={xGroupKeys}\n yGroupKeys={yGroupKeys}\n xKeysByGroups={facetSettings.sharedX ? cellsMeta.xKeysByGroups : xKeysByGroups}\n yKeysByGroups={facetSettings.sharedY ? cellsMeta.yKeysByGroups : yKeysByGroups}\n sharedX={facetSettings.sharedX}\n sharedY={facetSettings.sharedY}\n scales={{x: scales.x[facetKey], y: scales.y[facetKey]}}\n cells={cells}\n cellsMeta={cellsMeta}\n stepX={step.x[facetKey]}\n stepY={step.y[facetKey]}\n colorScale={colorScale}\n chartSettings={chartSettings}\n aes={aes}\n annotations={annotations}\n annotationColorScales={annotationColorScales}\n dendrogramAesScales={dendrogramAesScales}\n labelAngles={labelAngles}\n margins={margins}\n chartSizes={chartSizes}\n tooltipsContainer={tooltipsContainer}\n tooltipsData={tooltipsData}\n cellsRenderingMode={cellsRenderingMode}\n />\n );\n })}\n </g>\n <g transform={`translate(${legendLeft},${legendTop})`}>\n <Legend legendData={legend} />\n </g>\n <g ref={tooltipsRef} style={{outline: 'none'}} />\n </svg>\n </ErrorBoundary>\n );\n}\n"],"names":["ChartsGroup","margins","captionsSizes","settingsId","chartSettings","chartSizes","chartsDimensions","facetKeys","facetSettings","xGroupKeys","yGroupKeys","scales","colorScale","groupedCells","cellsMeta","step","annotations","annotationColorScales","legend","aes","dendrograms","dendrogramAesScales","columnsCount","labelAngles","onTooltipHintSwitch","cellsRenderingMode","tooltipsContainer","setTooltipsContainer","useState","tooltipsData","useTooltip","tooltipsRef","useRef","useEffect","leftTopChartPadding","rightTopChartPadding","legendLeft","LEGEND_OFFSET","legendTop","jsx","ErrorBoundary","jsxs","fonts","ChartsTitle","facetKey","cells","xKeysByGroups","yKeysByGroups","Chart","Legend"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { j as
|
|
2
|
-
function
|
|
1
|
+
import { j as m } from "../../node_modules/react/jsx-runtime.js";
|
|
2
|
+
function S({
|
|
3
3
|
facetKey: u,
|
|
4
4
|
scales: o,
|
|
5
5
|
cells: l,
|
|
6
|
-
xKeys:
|
|
7
|
-
yKeys:
|
|
6
|
+
xKeys: c,
|
|
7
|
+
yKeys: i,
|
|
8
8
|
stepX: p,
|
|
9
9
|
stepY: v,
|
|
10
|
-
aes:
|
|
11
|
-
colorScale:
|
|
10
|
+
aes: a,
|
|
11
|
+
colorScale: d,
|
|
12
12
|
tooltipsData: t
|
|
13
13
|
}) {
|
|
14
|
-
return
|
|
15
|
-
(
|
|
14
|
+
return c.map(
|
|
15
|
+
(s) => i.map((r) => {
|
|
16
16
|
var n;
|
|
17
|
-
const e = (n = l == null ? void 0 : l[
|
|
18
|
-
return e ? /* @__PURE__ */
|
|
17
|
+
const e = (n = l == null ? void 0 : l[s]) == null ? void 0 : n[r];
|
|
18
|
+
return e ? /* @__PURE__ */ m.jsx(
|
|
19
19
|
"rect",
|
|
20
20
|
{
|
|
21
|
-
x: o.x(
|
|
21
|
+
x: o.x(s),
|
|
22
22
|
y: o.y(r),
|
|
23
23
|
width: p,
|
|
24
24
|
height: v,
|
|
25
|
-
stroke:
|
|
26
|
-
fill: e.value === null ?
|
|
25
|
+
stroke: a.cellStrokeColor,
|
|
26
|
+
fill: e.value.dataSource === null ? a.emptyCellColor : d(e.normalizedValue.dataSource),
|
|
27
27
|
onMouseOver: () => t.onMouseEnter(e, u),
|
|
28
28
|
onMouseLeave: () => t.onMouseLeave()
|
|
29
29
|
},
|
|
@@ -33,6 +33,6 @@ function f({
|
|
|
33
33
|
);
|
|
34
34
|
}
|
|
35
35
|
export {
|
|
36
|
-
|
|
36
|
+
S as SvgCells
|
|
37
37
|
};
|
|
38
38
|
//# sourceMappingURL=SvgCells.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SvgCells.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/components/SvgCells.tsx"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"SvgCells.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/components/SvgCells.tsx"],"sourcesContent":["import type { CellHeatmap, GroupedCellsHeatmap } from '../getCells';\nimport type { AnnotationTooltipData, ChartScales } from './types';\nimport type { TooltipsData } from '../../common/Tooltip';\nimport type { HeatmapSettingsImpl } from '../HeatmapSettingsImpl';\n\ninterface SvgCellsProps<T> {\n facetKey: string,\n scales: ChartScales,\n cells: GroupedCellsHeatmap['facets'][keyof GroupedCellsHeatmap['facets']]['cells'],\n xKeys: string[],\n yKeys: string[],\n stepX: number,\n stepY: number,\n aes: HeatmapSettingsImpl['aes'];\n colorScale: (value: T) => string,\n tooltipsData: TooltipsData<CellHeatmap | AnnotationTooltipData>;\n}\n\nexport function SvgCells<ValueType>({\n facetKey,\n scales,\n cells,\n xKeys,\n yKeys,\n stepX,\n stepY,\n aes,\n colorScale,\n tooltipsData,\n}: SvgCellsProps<ValueType>) {\n return xKeys.map(xKey =>\n yKeys.map(yKey => {\n const cell = cells?.[xKey]?.[yKey];\n return cell ? (\n <rect\n key={cell.id}\n x={scales.x(xKey)}\n y={scales.y(yKey)}\n width={stepX}\n height={stepY}\n stroke={aes.cellStrokeColor}\n fill={cell.value.dataSource === null ? aes.emptyCellColor : colorScale(cell.normalizedValue.dataSource as ValueType)}\n onMouseOver={() => tooltipsData.onMouseEnter(cell, facetKey)}\n onMouseLeave={() => tooltipsData.onMouseLeave()}\n />\n ) : null;\n })\n );\n}"],"names":["SvgCells","facetKey","scales","cells","xKeys","yKeys","stepX","stepY","aes","colorScale","tooltipsData","xKey","yKey","cell","_a","jsx"],"mappings":";AAkBO,SAASA,EAAoB;AAAA,EAChC,UAAAC;AAAAA,EACA,QAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,KAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,cAAAC;AACJ,GAA6B;AACzB,SAAON,EAAM;AAAA,IAAI,CAAAO,MACbN,EAAM,IAAI,CAAAO,MAAQ;;AACd,YAAMC,KAAOC,IAAAX,KAAA,gBAAAA,EAAQQ,CAAAA,MAAR,gBAAAG,EAAgBF,CAAAA;AAC7B,aAAOC,IACHE,kBAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UAEG,GAAGb,EAAO,EAAES,CAAI;AAAA,UAChB,GAAGT,EAAO,EAAEU,CAAI;AAAA,UAChB,OAAON;AAAAA,UACP,QAAQC;AAAAA,UACR,QAAQC,EAAI;AAAA,UACZ,MAAMK,EAAK,MAAM,eAAe,OAAOL,EAAI,iBAAiBC,EAAWI,EAAK,gBAAgB,UAAuB;AAAA,UACnH,aAAa,MAAMH,EAAa,aAAaG,GAAMZ,CAAQ;AAAA,UAC3D,cAAc,MAAMS,EAAa,aAAA;AAAA,QAAA;AAAA,QAR5BG,EAAK;AAAA,MAAA,IAUd;AAAA,IACR,CAAC;AAAA,EAAA;AAET;","x_google_ignoreList":[0]}
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
import { format as s } from "../../node_modules/d3-format/src/defaultLocale.js";
|
|
2
|
-
function
|
|
2
|
+
function u(t, e) {
|
|
3
3
|
if (t === null)
|
|
4
4
|
return "null";
|
|
5
5
|
if (typeof t == "number") {
|
|
6
6
|
if (e)
|
|
7
7
|
return s(e)(t);
|
|
8
|
-
const
|
|
9
|
-
return
|
|
8
|
+
const o = t > 0 ? Math.floor(t) : Math.ceil(t), l = t - o;
|
|
9
|
+
return o + Number(l.toPrecision(2));
|
|
10
10
|
}
|
|
11
11
|
return t;
|
|
12
12
|
}
|
|
13
|
-
function c(t, e,
|
|
14
|
-
const r = `${
|
|
15
|
-
if (
|
|
16
|
-
const
|
|
13
|
+
function c(t, e, o, l = []) {
|
|
14
|
+
const r = `${u(e.value.dataSource)}${e.value !== e.normalizedValue ? ` (${u(e.normalizedValue.dataSource)})` : ""}`;
|
|
15
|
+
if (l.length) {
|
|
16
|
+
const a = [
|
|
17
17
|
`Value: ${r}`
|
|
18
18
|
];
|
|
19
|
-
for (const
|
|
20
|
-
const
|
|
21
|
-
|
|
19
|
+
for (const n of l) {
|
|
20
|
+
const i = t.getColumnValue(n.value, e.idx);
|
|
21
|
+
a.push(`${n.label}: ${u(i, n.format)}`);
|
|
22
22
|
}
|
|
23
|
-
return
|
|
23
|
+
return a;
|
|
24
24
|
}
|
|
25
25
|
return [r];
|
|
26
26
|
}
|
|
27
27
|
function m(t, e) {
|
|
28
|
-
const
|
|
29
|
-
return t.xKey &&
|
|
28
|
+
const o = [];
|
|
29
|
+
return t.xKey && o.push(`X: ${e.xLabels[t.xKey]}`), t.yKey && o.push(`Y: ${e.yLabels[t.yKey]}`), o.push(`${t.title}: ${u(t.value, t.column.format)}`), o;
|
|
30
30
|
}
|
|
31
31
|
function p(t) {
|
|
32
32
|
return t !== null && "isAnnotation" in t;
|
|
@@ -35,7 +35,7 @@ function $(t) {
|
|
|
35
35
|
return t !== null && "isCell" in t;
|
|
36
36
|
}
|
|
37
37
|
export {
|
|
38
|
-
|
|
38
|
+
u as formatCellValue,
|
|
39
39
|
m as getAnnotationTooltipContent,
|
|
40
40
|
c as getTooltipContent,
|
|
41
41
|
p as isAnnotationTooltip,
|