@milaboratories/graph-maker 1.1.168 → 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.
Files changed (67) hide show
  1. package/dist/GraphMaker/constantsCommon.d.ts +3 -0
  2. package/dist/GraphMaker/constantsCommon.d.ts.map +1 -1
  3. package/dist/GraphMaker/constantsCommon.js +9 -6
  4. package/dist/GraphMaker/constantsCommon.js.map +1 -1
  5. package/dist/GraphMaker/forms/DataMappingForm/BubbleForm.vue.d.ts.map +1 -1
  6. package/dist/GraphMaker/forms/DataMappingForm/BubbleForm.vue.js +60 -56
  7. package/dist/GraphMaker/forms/DataMappingForm/BubbleForm.vue.js.map +1 -1
  8. package/dist/GraphMaker/forms/LayersForm/Layer/Bubble.vue.d.ts.map +1 -1
  9. package/dist/GraphMaker/forms/LayersForm/Layer/Bubble.vue.js +86 -58
  10. package/dist/GraphMaker/forms/LayersForm/Layer/Bubble.vue.js.map +1 -1
  11. package/dist/GraphMaker/forms/LayersForm/Layer/heatmap/Heatmap.vue.js +109 -112
  12. package/dist/GraphMaker/forms/LayersForm/Layer/heatmap/Heatmap.vue.js.map +1 -1
  13. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +20 -0
  14. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts.map +1 -1
  15. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.js +19 -15
  16. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.js.map +1 -1
  17. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +3 -3
  18. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +8 -8
  19. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts.map +1 -1
  20. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.js +23 -23
  21. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.js.map +1 -1
  22. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/BubbleSettingsImpl.js +19 -14
  23. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/BubbleSettingsImpl.js.map +1 -1
  24. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/ChartRenderer.js +132 -132
  25. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/ChartRenderer.js.map +1 -1
  26. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/Chart.js +53 -53
  27. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/Chart.js.map +1 -1
  28. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/ChartsGroup.js.map +1 -1
  29. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCellTooltip.js +7 -7
  30. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCellTooltip.js.map +1 -1
  31. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getGroupedCellsData.js +49 -83
  32. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getGroupedCellsData.js.map +1 -1
  33. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js +51 -34
  34. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js.map +1 -1
  35. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/utils/calculateCaptionTails.js.map +1 -1
  36. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js +2 -2
  37. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js.map +1 -1
  38. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js.map +1 -1
  39. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/AnnotationCellsCanvas.js.map +1 -1
  40. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/AnnotationCellsSvg.js.map +1 -1
  41. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/index.js.map +1 -1
  42. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/CanvasCells.js +31 -31
  43. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/CanvasCells.js.map +1 -1
  44. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js +20 -20
  45. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js.map +1 -1
  46. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js +12 -12
  47. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js.map +1 -1
  48. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/SvgCells.js +14 -14
  49. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/SvgCells.js.map +1 -1
  50. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/tooltipUtils.js +14 -14
  51. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/tooltipUtils.js.map +1 -1
  52. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/fillCellsData.js +244 -0
  53. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/fillCellsData.js.map +1 -0
  54. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js +28 -214
  55. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js.map +1 -1
  56. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getDendrograms.js +26 -26
  57. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getDendrograms.js.map +1 -1
  58. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js +8 -8
  59. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js.map +1 -1
  60. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateCaptionTails.js.map +1 -1
  61. package/dist/node_modules/@milaboratories/miplots4/dist/types/bubble.js +23 -12
  62. package/dist/node_modules/@milaboratories/miplots4/dist/types/bubble.js.map +1 -1
  63. package/dist/node_modules/@milaboratories/miplots4/dist/utils/getFacetOrGroupKey.js +7 -0
  64. package/dist/node_modules/@milaboratories/miplots4/dist/utils/getFacetOrGroupKey.js.map +1 -0
  65. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js +165 -95
  66. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/bubble.js.map +1 -1
  67. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"AnnotationCellsCanvas.js","sources":["../../../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/components/Annotations/AnnotationCellsCanvas.tsx"],"sourcesContent":["\nimport type { AnnotationColorScales, AnnotationTooltipData, ChartScales } from '../types';\nimport { ANNOTATION_WIDTH } from '../../constants';\nimport type { DataValue } from '../../../types/common';\nimport type { HeatmapSettingsImpl } from '../../HeatmapSettingsImpl';\nimport type { Cell } from '../../getCells';\nimport type { TooltipsData } from '../../../common/Tooltip';\nimport type { MouseEventHandler } from 'react';\nimport { useEffect, useRef } from 'react';\nimport { useFunction } from '../../../utils/hooks/useFunction';\n\ninterface AnnotationCellsCanvasProps {\n facetKey: string,\n scales: ChartScales,\n keys: string[],\n x: number,\n y: number,\n stepX: number,\n stepY: number,\n vertical: boolean,\n aes: HeatmapSettingsImpl['aes'];\n colorScale: AnnotationColorScales[keyof AnnotationColorScales],\n data: Record<string, DataValue>;\n annotation: HeatmapSettingsImpl['annotations'][0];\n tooltipsData: TooltipsData<Cell | AnnotationTooltipData>;\n}\n\nfunction renderCells(\n ctx: CanvasRenderingContext2D | null,\n scales: ChartScales,\n data: Record<string, DataValue>,\n keys: string[],\n vertical: boolean,\n strokeColor: string,\n colorScale: AnnotationColorScales[keyof AnnotationColorScales],\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 key of keys) {\n const value = data?.[key];\n const fillColor = colorScale.type === 'continuous'\n ? colorScale.scale(Number(value))\n : colorScale.scale(String(value));\n const x = (vertical ? 0 : scales.x(key));\n const y = (vertical ? scales.y(key) : 0);\n\n ctx.fillStyle = fillColor;\n ctx.fillRect(x, y, width, height); // Add a rectangle to the current path\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\nexport function AnnotationCellsCanvas({\n facetKey,\n scales,\n data,\n keys,\n vertical,\n annotation,\n x, y, stepX, stepY,\n aes,\n colorScale,\n tooltipsData,\n}: AnnotationCellsCanvasProps) {\n const { valueColumn } = annotation;\n const cellWidth = vertical ? ANNOTATION_WIDTH : stepX;\n const cellHeight = vertical ? stepY : ANNOTATION_WIDTH;\n const annotationWidth = vertical ? cellWidth : cellWidth * keys.length;\n const annotationHeight = vertical ? cellHeight * keys.length : cellHeight;\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(\n ctx.current,\n scales,\n data,\n keys,\n vertical,\n aes.cellStrokeColor,\n colorScale,\n cellWidth,\n cellHeight\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 = annotationWidth + 'px';\n canvasEl.style.height = annotationHeight + 'px';\n ctx.current.scale(canvasRatio, canvasRatio);\n }\n render();\n }, [annotationWidth, annotationHeight]);\n render();\n\n const moveOnCanvas: MouseEventHandler<HTMLCanvasElement> = useFunction((e: React.MouseEvent) => {\n const mouseX = e.nativeEvent.offsetX;\n const mouseY = e.nativeEvent.offsetY;\n const key = vertical\n ? searchKey(mouseY, scales.y.range(), scales.y.domain(), stepY)\n : searchKey(mouseX, scales.x.range(), scales.x.domain(), stepX);\n if (key !== -1) {\n const innerX = (vertical ? 0 : scales.x(key));\n const innerY = (vertical ? scales.y(key) : 0);\n const value = data[key];\n const fillColor = colorScale.type === 'continuous'\n ? colorScale.scale(Number(value))\n : colorScale.scale(String(value));\n tooltipsData.onMouseEnter({\n isAnnotation: true,\n x: x + innerX + cellWidth,\n y: y + innerY + cellHeight / 2,\n cell: {\n x: x + innerX,\n y: y + innerY,\n width: cellWidth,\n height: cellHeight,\n fill: fillColor,\n stroke: aes.cellStrokeColor\n },\n xKey: vertical ? null : key,\n yKey: vertical ? key : null,\n value,\n title: valueColumn.label ?? valueColumn.value,\n column: annotation.valueColumn\n } satisfies AnnotationTooltipData, facetKey);\n } else {\n tooltipsData.onMouseLeave();\n }\n });\n return (\n <foreignObject x={x} y={y} width={annotationWidth} height={annotationHeight}>\n <canvas\n ref={canvasRef}\n width={canvasRatio * annotationWidth}\n height={canvasRatio * annotationHeight}\n onMouseMove={moveOnCanvas}\n onMouseLeave={() => tooltipsData.onMouseLeave()}\n />\n </foreignObject>\n );\n}"],"names":["renderCells","ctx","scales","data","keys","vertical","strokeColor","colorScale","width","height","key","value","fillColor","x","y","binarySearch","arr","val","step","start","end","mid","searchKey","px","positions","pos","AnnotationCellsCanvas","facetKey","annotation","stepX","stepY","aes","tooltipsData","valueColumn","cellWidth","ANNOTATION_WIDTH","cellHeight","annotationWidth","annotationHeight","canvasRef","useRef","canvasRatio","render","useEffect","canvasEl","moveOnCanvas","useFunction","e","mouseX","mouseY","innerX","innerY","k","jsx"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"AnnotationCellsCanvas.js","sources":["../../../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/components/Annotations/AnnotationCellsCanvas.tsx"],"sourcesContent":["\nimport type { AnnotationColorScales, AnnotationTooltipData, ChartScales } from '../types';\nimport { ANNOTATION_WIDTH } from '../../constants';\nimport type { DataValue } from '../../../types/common';\nimport type { HeatmapSettingsImpl } from '../../HeatmapSettingsImpl';\nimport type { CellHeatmap } from '../../getCells';\nimport type { TooltipsData } from '../../../common/Tooltip';\nimport type { MouseEventHandler } from 'react';\nimport { useEffect, useRef } from 'react';\nimport { useFunction } from '../../../utils/hooks/useFunction';\n\ninterface AnnotationCellsCanvasProps {\n facetKey: string,\n scales: ChartScales,\n keys: string[],\n x: number,\n y: number,\n stepX: number,\n stepY: number,\n vertical: boolean,\n aes: HeatmapSettingsImpl['aes'];\n colorScale: AnnotationColorScales[keyof AnnotationColorScales],\n data: Record<string, DataValue>;\n annotation: HeatmapSettingsImpl['annotations'][0];\n tooltipsData: TooltipsData<CellHeatmap | AnnotationTooltipData>;\n}\n\nfunction renderCells(\n ctx: CanvasRenderingContext2D | null,\n scales: ChartScales,\n data: Record<string, DataValue>,\n keys: string[],\n vertical: boolean,\n strokeColor: string,\n colorScale: AnnotationColorScales[keyof AnnotationColorScales],\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 key of keys) {\n const value = data?.[key];\n const fillColor = colorScale.type === 'continuous'\n ? colorScale.scale(Number(value))\n : colorScale.scale(String(value));\n const x = (vertical ? 0 : scales.x(key));\n const y = (vertical ? scales.y(key) : 0);\n\n ctx.fillStyle = fillColor;\n ctx.fillRect(x, y, width, height); // Add a rectangle to the current path\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\nexport function AnnotationCellsCanvas({\n facetKey,\n scales,\n data,\n keys,\n vertical,\n annotation,\n x, y, stepX, stepY,\n aes,\n colorScale,\n tooltipsData,\n}: AnnotationCellsCanvasProps) {\n const { valueColumn } = annotation;\n const cellWidth = vertical ? ANNOTATION_WIDTH : stepX;\n const cellHeight = vertical ? stepY : ANNOTATION_WIDTH;\n const annotationWidth = vertical ? cellWidth : cellWidth * keys.length;\n const annotationHeight = vertical ? cellHeight * keys.length : cellHeight;\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(\n ctx.current,\n scales,\n data,\n keys,\n vertical,\n aes.cellStrokeColor,\n colorScale,\n cellWidth,\n cellHeight\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 = annotationWidth + 'px';\n canvasEl.style.height = annotationHeight + 'px';\n ctx.current.scale(canvasRatio, canvasRatio);\n }\n render();\n }, [annotationWidth, annotationHeight]);\n render();\n\n const moveOnCanvas: MouseEventHandler<HTMLCanvasElement> = useFunction((e: React.MouseEvent) => {\n const mouseX = e.nativeEvent.offsetX;\n const mouseY = e.nativeEvent.offsetY;\n const key = vertical\n ? searchKey(mouseY, scales.y.range(), scales.y.domain(), stepY)\n : searchKey(mouseX, scales.x.range(), scales.x.domain(), stepX);\n if (key !== -1) {\n const innerX = (vertical ? 0 : scales.x(key));\n const innerY = (vertical ? scales.y(key) : 0);\n const value = data[key];\n const fillColor = colorScale.type === 'continuous'\n ? colorScale.scale(Number(value))\n : colorScale.scale(String(value));\n tooltipsData.onMouseEnter({\n isAnnotation: true,\n x: x + innerX + cellWidth,\n y: y + innerY + cellHeight / 2,\n cell: {\n x: x + innerX,\n y: y + innerY,\n width: cellWidth,\n height: cellHeight,\n fill: fillColor,\n stroke: aes.cellStrokeColor\n },\n xKey: vertical ? null : key,\n yKey: vertical ? key : null,\n value,\n title: valueColumn.label ?? valueColumn.value,\n column: annotation.valueColumn\n } satisfies AnnotationTooltipData, facetKey);\n } else {\n tooltipsData.onMouseLeave();\n }\n });\n return (\n <foreignObject x={x} y={y} width={annotationWidth} height={annotationHeight}>\n <canvas\n ref={canvasRef}\n width={canvasRatio * annotationWidth}\n height={canvasRatio * annotationHeight}\n onMouseMove={moveOnCanvas}\n onMouseLeave={() => tooltipsData.onMouseLeave()}\n />\n </foreignObject>\n );\n}"],"names":["renderCells","ctx","scales","data","keys","vertical","strokeColor","colorScale","width","height","key","value","fillColor","x","y","binarySearch","arr","val","step","start","end","mid","searchKey","px","positions","pos","AnnotationCellsCanvas","facetKey","annotation","stepX","stepY","aes","tooltipsData","valueColumn","cellWidth","ANNOTATION_WIDTH","cellHeight","annotationWidth","annotationHeight","canvasRef","useRef","canvasRatio","render","useEffect","canvasEl","moveOnCanvas","useFunction","e","mouseX","mouseY","innerX","innerY","k","jsx"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"AnnotationCellsSvg.js","sources":["../../../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/components/Annotations/AnnotationCellsSvg.tsx"],"sourcesContent":["\nimport type { AnnotationColorScales, AnnotationTooltipData, ChartScales } from '../types';\nimport { ANNOTATION_WIDTH } from '../../constants';\nimport type { DataValue } from '../../../types/common';\nimport type { HeatmapSettingsImpl } from '../../HeatmapSettingsImpl';\nimport type { Cell } from '../../getCells';\nimport type { TooltipsData } from '../../../common/Tooltip';\n\ninterface AnnotationCellsSvgProps {\n facetKey: string,\n scales: ChartScales,\n keys: string[],\n x: number,\n y: number,\n stepX: number,\n stepY: number,\n vertical: boolean,\n aes: HeatmapSettingsImpl['aes'];\n colorScale: AnnotationColorScales[keyof AnnotationColorScales],\n data: Record<string, DataValue>;\n annotation: HeatmapSettingsImpl['annotations'][0];\n tooltipsData: TooltipsData<Cell | AnnotationTooltipData>;\n}\n\nexport function AnnotationCellsSvg({\n facetKey,\n scales,\n data,\n keys,\n vertical,\n annotation,\n x, y, stepX, stepY,\n aes,\n colorScale,\n tooltipsData,\n}: AnnotationCellsSvgProps) {\n const { valueColumn } = annotation;\n return keys.map(key => {\n const value = data?.[key];\n const fillColor = colorScale.type === 'continuous'\n ? colorScale.scale(Number(value))\n : colorScale.scale(String(value));\n const xInner = x + (vertical ? 0 : scales.x(key));\n const yInner = y + (vertical ? scales.y(key) : 0);\n const width = vertical ? ANNOTATION_WIDTH : stepX;\n const height = vertical ? stepY : ANNOTATION_WIDTH;\n const xKey = vertical ? null : key;\n const yKey = vertical ? key : null;\n return (\n <rect\n key={key}\n x={xInner}\n y={yInner}\n width={width}\n height={height}\n fill={fillColor}\n stroke={aes.cellStrokeColor}\n onMouseEnter={() => tooltipsData.onMouseEnter({\n isAnnotation: true,\n x: xInner + width,\n y: yInner + height / 2,\n cell: {\n x: xInner,\n y: yInner,\n width,\n height,\n fill: fillColor,\n stroke: aes.cellStrokeColor\n },\n xKey,\n yKey,\n value,\n title: valueColumn.label ?? valueColumn.value,\n column: annotation.valueColumn\n } satisfies AnnotationTooltipData, facetKey)}\n onMouseLeave={() => tooltipsData.onMouseLeave()}\n />\n );\n });\n}"],"names":["AnnotationCellsSvg","facetKey","scales","data","keys","vertical","annotation","x","y","stepX","stepY","aes","colorScale","tooltipsData","valueColumn","key","value","fillColor","xInner","yInner","width","ANNOTATION_WIDTH","height","xKey","yKey","jsx"],"mappings":";;AAwBO,SAASA,EAAmB;AAAA,EAC/B,UAAAC;AAAAA,EACA,QAAAC;AAAAA,EACA,MAAAC;AAAAA,EACA,MAAAC;AAAAA,EACA,UAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,GAAAC;AAAAA,EAAG,GAAAC;AAAAA,EAAG,OAAAC;AAAAA,EAAO,OAAAC;AAAAA,EACb,KAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,cAAAC;AACJ,GAA4B;AACxB,QAAM,EAAE,aAAAC,EAAAA,IAAgBR;AACxB,SAAOF,EAAK,IAAI,CAAAW,MAAO;AACnB,UAAMC,IAAQb,KAAA,OAAA,SAAAA,EAAOY,IACfE,IAAYL,EAAW,SAAS,eAChCA,EAAW,MAAM,OAAOI,CAAK,CAAC,IAC9BJ,EAAW,MAAM,OAAOI,CAAK,CAAC,GAC9BE,IAASX,KAAKF,IAAW,IAAIH,EAAO,EAAEa,CAAG,IACzCI,IAASX,KAAKH,IAAWH,EAAO,EAAEa,CAAG,IAAI,IACzCK,IAAQf,IAAWgB,IAAmBZ,GACtCa,IAASjB,IAAWK,IAAQW,GAC5BE,IAAOlB,IAAW,OAAOU,GACzBS,IAAOnB,IAAWU,IAAM;AAC9B,WACIU,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QAEG,GAAGP;AAAAA,QACH,GAAGC;AAAAA,QACH,OAAAC;AAAAA,QACA,QAAAE;AAAAA,QACA,MAAML;AAAAA,QACN,QAAQN,EAAI;AAAA,QACZ,cAAc,MAAME,EAAa,aAAa;AAAA,UAC1C,cAAc;AAAA,UACd,GAAGK,IAASE;AAAAA,UACZ,GAAGD,IAASG,IAAS;AAAA,UACrB,MAAM;AAAA,YACF,GAAGJ;AAAAA,YACH,GAAGC;AAAAA,YACH,OAAAC;AAAAA,YACA,QAAAE;AAAAA,YACA,MAAML;AAAAA,YACN,QAAQN,EAAI;AAAA,UAAA;AAAA,UAEhB,MAAAY;AAAAA,UACA,MAAAC;AAAAA,UACA,OAAAR;AAAAA,UACA,OAAOF,EAAY,SAASA,EAAY;AAAA,UACxC,QAAQR,EAAW;AAAA,QAAA,GACYL,CAAQ;AAAA,QAC3C,cAAc,MAAMY,EAAa,aAAA;AAAA,MAAA;AAAA,MAzB5BE;AAAAA,IAAA;AAAA,EA4BjB,CAAC;AACL;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"AnnotationCellsSvg.js","sources":["../../../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/components/Annotations/AnnotationCellsSvg.tsx"],"sourcesContent":["\nimport type { AnnotationColorScales, AnnotationTooltipData, ChartScales } from '../types';\nimport { ANNOTATION_WIDTH } from '../../constants';\nimport type { DataValue } from '../../../types/common';\nimport type { HeatmapSettingsImpl } from '../../HeatmapSettingsImpl';\nimport type { CellHeatmap } from '../../getCells';\nimport type { TooltipsData } from '../../../common/Tooltip';\n\ninterface AnnotationCellsSvgProps {\n facetKey: string,\n scales: ChartScales,\n keys: string[],\n x: number,\n y: number,\n stepX: number,\n stepY: number,\n vertical: boolean,\n aes: HeatmapSettingsImpl['aes'];\n colorScale: AnnotationColorScales[keyof AnnotationColorScales],\n data: Record<string, DataValue>;\n annotation: HeatmapSettingsImpl['annotations'][0];\n tooltipsData: TooltipsData<CellHeatmap | AnnotationTooltipData>;\n}\n\nexport function AnnotationCellsSvg({\n facetKey,\n scales,\n data,\n keys,\n vertical,\n annotation,\n x, y, stepX, stepY,\n aes,\n colorScale,\n tooltipsData,\n}: AnnotationCellsSvgProps) {\n const { valueColumn } = annotation;\n return keys.map(key => {\n const value = data?.[key];\n const fillColor = colorScale.type === 'continuous'\n ? colorScale.scale(Number(value))\n : colorScale.scale(String(value));\n const xInner = x + (vertical ? 0 : scales.x(key));\n const yInner = y + (vertical ? scales.y(key) : 0);\n const width = vertical ? ANNOTATION_WIDTH : stepX;\n const height = vertical ? stepY : ANNOTATION_WIDTH;\n const xKey = vertical ? null : key;\n const yKey = vertical ? key : null;\n return (\n <rect\n key={key}\n x={xInner}\n y={yInner}\n width={width}\n height={height}\n fill={fillColor}\n stroke={aes.cellStrokeColor}\n onMouseEnter={() => tooltipsData.onMouseEnter({\n isAnnotation: true,\n x: xInner + width,\n y: yInner + height / 2,\n cell: {\n x: xInner,\n y: yInner,\n width,\n height,\n fill: fillColor,\n stroke: aes.cellStrokeColor\n },\n xKey,\n yKey,\n value,\n title: valueColumn.label ?? valueColumn.value,\n column: annotation.valueColumn\n } satisfies AnnotationTooltipData, facetKey)}\n onMouseLeave={() => tooltipsData.onMouseLeave()}\n />\n );\n });\n}"],"names":["AnnotationCellsSvg","facetKey","scales","data","keys","vertical","annotation","x","y","stepX","stepY","aes","colorScale","tooltipsData","valueColumn","key","value","fillColor","xInner","yInner","width","ANNOTATION_WIDTH","height","xKey","yKey","jsx"],"mappings":";;AAwBO,SAASA,EAAmB;AAAA,EAC/B,UAAAC;AAAAA,EACA,QAAAC;AAAAA,EACA,MAAAC;AAAAA,EACA,MAAAC;AAAAA,EACA,UAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,GAAAC;AAAAA,EAAG,GAAAC;AAAAA,EAAG,OAAAC;AAAAA,EAAO,OAAAC;AAAAA,EACb,KAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,cAAAC;AACJ,GAA4B;AACxB,QAAM,EAAE,aAAAC,EAAAA,IAAgBR;AACxB,SAAOF,EAAK,IAAI,CAAAW,MAAO;AACnB,UAAMC,IAAQb,KAAA,OAAA,SAAAA,EAAOY,IACfE,IAAYL,EAAW,SAAS,eAChCA,EAAW,MAAM,OAAOI,CAAK,CAAC,IAC9BJ,EAAW,MAAM,OAAOI,CAAK,CAAC,GAC9BE,IAASX,KAAKF,IAAW,IAAIH,EAAO,EAAEa,CAAG,IACzCI,IAASX,KAAKH,IAAWH,EAAO,EAAEa,CAAG,IAAI,IACzCK,IAAQf,IAAWgB,IAAmBZ,GACtCa,IAASjB,IAAWK,IAAQW,GAC5BE,IAAOlB,IAAW,OAAOU,GACzBS,IAAOnB,IAAWU,IAAM;AAC9B,WACIU,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QAEG,GAAGP;AAAAA,QACH,GAAGC;AAAAA,QACH,OAAAC;AAAAA,QACA,QAAAE;AAAAA,QACA,MAAML;AAAAA,QACN,QAAQN,EAAI;AAAA,QACZ,cAAc,MAAME,EAAa,aAAa;AAAA,UAC1C,cAAc;AAAA,UACd,GAAGK,IAASE;AAAAA,UACZ,GAAGD,IAASG,IAAS;AAAA,UACrB,MAAM;AAAA,YACF,GAAGJ;AAAAA,YACH,GAAGC;AAAAA,YACH,OAAAC;AAAAA,YACA,QAAAE;AAAAA,YACA,MAAML;AAAAA,YACN,QAAQN,EAAI;AAAA,UAAA;AAAA,UAEhB,MAAAY;AAAAA,UACA,MAAAC;AAAAA,UACA,OAAAR;AAAAA,UACA,OAAOF,EAAY,SAASA,EAAY;AAAA,UACxC,QAAQR,EAAW;AAAA,QAAA,GACYL,CAAQ;AAAA,QAC3C,cAAc,MAAMY,EAAa,aAAA;AAAA,MAAA;AAAA,MAzB5BE;AAAAA,IAAA;AAAA,EA4BjB,CAAC;AACL;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/components/Annotations/index.tsx"],"sourcesContent":["import type {TooltipsData} from '../../../common/Tooltip';\nimport {Annotation} from './Annotation';\nimport type {\n AnnotationColorScales,\n AnnotationTooltipData,\n ChartDimensionsData,\n ChartScales,\n} from '../types';\nimport {ANNOTATION_WIDTH, ANNOTATIONS_OFFSET} from '../../constants';\nimport type {Cell} from '../../getCells';\nimport type {GroupedCellsData} from '../../getCells';\nimport type {HeatmapSettingsImpl} from '../../HeatmapSettingsImpl';\nimport React from 'react';\n\nfunction showTitle(item: HeatmapSettingsImpl['annotations'][0], chartEdgeSides: ChartDimensionsData['chartEdgeSides']) {\n return item.showTitle && chartEdgeSides.includes(item.titlePosition);\n}\n\ninterface AnnotationProps {\n facetKey: string;\n sideElementBBoxes: ChartDimensionsData['sideElementBBoxes'];\n annotations: HeatmapSettingsImpl['annotations'];\n cellsMeta: GroupedCellsData['meta'];\n annotationColorScales: AnnotationColorScales;\n sharedX: boolean;\n sharedY: boolean;\n chartEdgeSides: ChartDimensionsData['chartEdgeSides'];\n width: number;\n height: number;\n scales: ChartScales;\n stepX: number;\n stepY: number;\n aes: HeatmapSettingsImpl['aes'];\n frame: HeatmapSettingsImpl['chartSettings']['frame'];\n xGroupKeys: string[];\n yGroupKeys: string[];\n xKeysByGroups: GroupedCellsData['facets'][keyof GroupedCellsData['facets']]['xKeysByGroups'];\n yKeysByGroups: GroupedCellsData['facets'][keyof GroupedCellsData['facets']]['yKeysByGroups'];\n tooltipsData: TooltipsData<Cell|AnnotationTooltipData>;\n cellsRenderingMode: 'canvas' | 'svg';\n}\n\nexport function Annotations({\n facetKey,\n sideElementBBoxes,\n annotations,\n annotationColorScales,\n cellsMeta,\n chartEdgeSides,\n sharedX,\n sharedY,\n width,\n height,\n scales,\n stepX,\n stepY,\n aes,\n frame,\n xGroupKeys,\n yGroupKeys,\n xKeysByGroups,\n yKeysByGroups,\n tooltipsData,\n cellsRenderingMode,\n}: AnnotationProps) {\n const usedAnnotations = annotations.filter(item => {\n return (\n chartEdgeSides.includes(item.position) ||\n (!sharedX && ['left', 'right'].includes(item.position)) ||\n (!sharedY && ['top', 'bottom'].includes(item.position))\n );\n });\n const leftAnnotations = usedAnnotations.filter(item => item.position === 'left');\n const rightAnnotations = usedAnnotations.filter(item => item.position === 'right');\n const topAnnotations = usedAnnotations.filter(item => item.position === 'top');\n const bottomAnnotations = usedAnnotations.filter(item => item.position === 'bottom');\n const {xDataByKeys, yDataByKeys} = cellsMeta;\n\n const commonProps = {\n facetKey,\n scales,\n stepX,\n stepY,\n width,\n height,\n aes,\n frame,\n xGroupKeys,\n yGroupKeys,\n xKeysByGroups,\n yKeysByGroups,\n tooltipsData,\n cellsRenderingMode,\n };\n return (\n <g>\n {leftAnnotations.map((item, idx) => {\n return (\n <Annotation\n key={item.id}\n annotation={item}\n colorScale={annotationColorScales[item.id]}\n data={yDataByKeys[item.valueColumn.valueLabels ?? item.valueColumn.value]}\n showTitle={showTitle(item, chartEdgeSides)}\n x={sideElementBBoxes.left.annotations.x + idx * ANNOTATION_WIDTH}\n y={sideElementBBoxes.left.annotations.y}\n {...commonProps}\n />\n );\n })}\n {rightAnnotations.map((item, idx) => {\n return (\n <Annotation\n key={item.id}\n annotation={item}\n colorScale={annotationColorScales[item.id]}\n data={yDataByKeys[item.valueColumn.valueLabels ?? item.valueColumn.value]}\n showTitle={showTitle(item, chartEdgeSides)}\n x={sideElementBBoxes.right.annotations.x + idx * ANNOTATION_WIDTH + ANNOTATIONS_OFFSET}\n y={sideElementBBoxes.right.annotations.y}\n {...commonProps}\n />\n );\n })}\n {topAnnotations.map((item, idx) => {\n return (\n <Annotation\n key={item.id}\n annotation={item}\n colorScale={annotationColorScales[item.id]}\n data={xDataByKeys[item.valueColumn.valueLabels ?? item.valueColumn.value]}\n showTitle={showTitle(item, chartEdgeSides)}\n x={sideElementBBoxes.top.annotations.x}\n y={sideElementBBoxes.top.annotations.y + idx * ANNOTATION_WIDTH}\n {...commonProps}\n />\n );\n })}\n {bottomAnnotations.map((item, idx) => {\n return (\n <Annotation\n key={item.id}\n annotation={item}\n colorScale={annotationColorScales[item.id]}\n data={xDataByKeys[item.valueColumn.valueLabels ?? item.valueColumn.value]}\n showTitle={showTitle(item, chartEdgeSides)}\n x={sideElementBBoxes.bottom.annotations.x}\n y={sideElementBBoxes.bottom.annotations.y + idx * ANNOTATION_WIDTH + ANNOTATIONS_OFFSET}\n {...commonProps}\n />\n );\n })}\n </g>\n );\n}\n"],"names":["showTitle","item","chartEdgeSides","Annotations","facetKey","sideElementBBoxes","annotations","annotationColorScales","cellsMeta","sharedX","sharedY","width","height","scales","stepX","stepY","aes","frame","xGroupKeys","yGroupKeys","xKeysByGroups","yKeysByGroups","tooltipsData","cellsRenderingMode","usedAnnotations","leftAnnotations","rightAnnotations","topAnnotations","bottomAnnotations","xDataByKeys","yDataByKeys","commonProps","l","idx","jsx","Annotation","ANNOTATION_WIDTH","ANNOTATIONS_OFFSET"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/components/Annotations/index.tsx"],"sourcesContent":["import type {TooltipsData} from '../../../common/Tooltip';\nimport {Annotation} from './Annotation';\nimport type {\n AnnotationColorScales,\n AnnotationTooltipData,\n ChartDimensionsData,\n ChartScales,\n} from '../types';\nimport {ANNOTATION_WIDTH, ANNOTATIONS_OFFSET} from '../../constants';\nimport type {CellHeatmap, GroupedCellsHeatmap} from '../../getCells';\nimport type {HeatmapSettingsImpl} from '../../HeatmapSettingsImpl';\nimport React from 'react';\n\nfunction showTitle(item: HeatmapSettingsImpl['annotations'][0], chartEdgeSides: ChartDimensionsData['chartEdgeSides']) {\n return item.showTitle && chartEdgeSides.includes(item.titlePosition);\n}\n\ninterface AnnotationProps {\n facetKey: string;\n sideElementBBoxes: ChartDimensionsData['sideElementBBoxes'];\n annotations: HeatmapSettingsImpl['annotations'];\n cellsMeta: GroupedCellsHeatmap['meta'];\n annotationColorScales: AnnotationColorScales;\n sharedX: boolean;\n sharedY: boolean;\n chartEdgeSides: ChartDimensionsData['chartEdgeSides'];\n width: number;\n height: number;\n scales: ChartScales;\n stepX: number;\n stepY: number;\n aes: HeatmapSettingsImpl['aes'];\n frame: HeatmapSettingsImpl['chartSettings']['frame'];\n xGroupKeys: string[];\n yGroupKeys: string[];\n xKeysByGroups: GroupedCellsHeatmap['facets'][keyof GroupedCellsHeatmap['facets']]['xKeysByGroups'];\n yKeysByGroups: GroupedCellsHeatmap['facets'][keyof GroupedCellsHeatmap['facets']]['yKeysByGroups'];\n tooltipsData: TooltipsData<CellHeatmap|AnnotationTooltipData>;\n cellsRenderingMode: 'canvas' | 'svg';\n}\n\nexport function Annotations({\n facetKey,\n sideElementBBoxes,\n annotations,\n annotationColorScales,\n cellsMeta,\n chartEdgeSides,\n sharedX,\n sharedY,\n width,\n height,\n scales,\n stepX,\n stepY,\n aes,\n frame,\n xGroupKeys,\n yGroupKeys,\n xKeysByGroups,\n yKeysByGroups,\n tooltipsData,\n cellsRenderingMode,\n}: AnnotationProps) {\n const usedAnnotations = annotations.filter(item => {\n return (\n chartEdgeSides.includes(item.position) ||\n (!sharedX && ['left', 'right'].includes(item.position)) ||\n (!sharedY && ['top', 'bottom'].includes(item.position))\n );\n });\n const leftAnnotations = usedAnnotations.filter(item => item.position === 'left');\n const rightAnnotations = usedAnnotations.filter(item => item.position === 'right');\n const topAnnotations = usedAnnotations.filter(item => item.position === 'top');\n const bottomAnnotations = usedAnnotations.filter(item => item.position === 'bottom');\n const {xDataByKeys, yDataByKeys} = cellsMeta;\n\n const commonProps = {\n facetKey,\n scales,\n stepX,\n stepY,\n width,\n height,\n aes,\n frame,\n xGroupKeys,\n yGroupKeys,\n xKeysByGroups,\n yKeysByGroups,\n tooltipsData,\n cellsRenderingMode,\n };\n return (\n <g>\n {leftAnnotations.map((item, idx) => {\n return (\n <Annotation\n key={item.id}\n annotation={item}\n colorScale={annotationColorScales[item.id]}\n data={yDataByKeys[item.valueColumn.valueLabels ?? item.valueColumn.value]}\n showTitle={showTitle(item, chartEdgeSides)}\n x={sideElementBBoxes.left.annotations.x + idx * ANNOTATION_WIDTH}\n y={sideElementBBoxes.left.annotations.y}\n {...commonProps}\n />\n );\n })}\n {rightAnnotations.map((item, idx) => {\n return (\n <Annotation\n key={item.id}\n annotation={item}\n colorScale={annotationColorScales[item.id]}\n data={yDataByKeys[item.valueColumn.valueLabels ?? item.valueColumn.value]}\n showTitle={showTitle(item, chartEdgeSides)}\n x={sideElementBBoxes.right.annotations.x + idx * ANNOTATION_WIDTH + ANNOTATIONS_OFFSET}\n y={sideElementBBoxes.right.annotations.y}\n {...commonProps}\n />\n );\n })}\n {topAnnotations.map((item, idx) => {\n return (\n <Annotation\n key={item.id}\n annotation={item}\n colorScale={annotationColorScales[item.id]}\n data={xDataByKeys[item.valueColumn.valueLabels ?? item.valueColumn.value]}\n showTitle={showTitle(item, chartEdgeSides)}\n x={sideElementBBoxes.top.annotations.x}\n y={sideElementBBoxes.top.annotations.y + idx * ANNOTATION_WIDTH}\n {...commonProps}\n />\n );\n })}\n {bottomAnnotations.map((item, idx) => {\n return (\n <Annotation\n key={item.id}\n annotation={item}\n colorScale={annotationColorScales[item.id]}\n data={xDataByKeys[item.valueColumn.valueLabels ?? item.valueColumn.value]}\n showTitle={showTitle(item, chartEdgeSides)}\n x={sideElementBBoxes.bottom.annotations.x}\n y={sideElementBBoxes.bottom.annotations.y + idx * ANNOTATION_WIDTH + ANNOTATIONS_OFFSET}\n {...commonProps}\n />\n );\n })}\n </g>\n );\n}\n"],"names":["showTitle","item","chartEdgeSides","Annotations","facetKey","sideElementBBoxes","annotations","annotationColorScales","cellsMeta","sharedX","sharedY","width","height","scales","stepX","stepY","aes","frame","xGroupKeys","yGroupKeys","xKeysByGroups","yKeysByGroups","tooltipsData","cellsRenderingMode","usedAnnotations","leftAnnotations","rightAnnotations","topAnnotations","bottomAnnotations","xDataByKeys","yDataByKeys","commonProps","l","idx","jsx","Annotation","ANNOTATION_WIDTH","ANNOTATIONS_OFFSET"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,32 +1,32 @@
1
- import { j as w } from "../../node_modules/react/jsx-runtime.js";
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 K } from "../../utils/hooks/useFunction.js";
4
- function L(e, t, s, o, n, r, v, g, h, d, m, u) {
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, u);
8
- for (const a of o)
7
+ e.beginPath(), e.clearRect(0, 0, m, a);
8
+ for (const c of o)
9
9
  for (const i of n) {
10
- const c = (f = s == null ? void 0 : s[a]) == null ? void 0 : f[i];
11
- if (!c)
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(a), l = t.y(i);
14
- e.fillStyle = c.value === null ? h : d(c.normalizedValue), e.fillRect(p, l, r, v);
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 S(e, t, s) {
18
+ function L(e, t, s) {
19
19
  let o = 0, n = e.length - 1;
20
20
  for (; o <= n; ) {
21
- const r = Math.floor((o + n) / 2);
22
- if (Math.abs(e[r] - t) < s)
23
- return e[r] >= t ? r - 1 : r;
24
- t < e[r] ? n = r - 1 : o = r + 1;
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 C(e, t, s, o) {
29
- const n = S(t, e, o);
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: r,
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: u
44
+ tooltipsData: a
45
45
  }) {
46
- const f = x.useRef(null), a = window.devicePixelRatio || 1, i = x.useRef(null), c = () => {
47
- L(
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
- r,
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 l = f.current;
64
- i.current || (i.current = (l == null ? void 0 : l.getContext("2d")) ?? null), l && i.current && (l.style.width = e + "px", l.style.height = t + "px", i.current.scale(a, a)), c();
65
- }, [e, t]), c();
66
- const p = K((l) => {
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 = l.nativeEvent.offsetX, E = l.nativeEvent.offsetY, b = C(R, o.x.range(), o.x.domain(), g), j = C(E, o.y.range(), o.y.domain(), h), M = (y = n[b]) == null ? void 0 : y[j];
69
- M ? u.onMouseEnter(M, s) : u.onMouseLeave();
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__ */ w.jsx("foreignObject", { width: e, height: t, children: /* @__PURE__ */ w.jsx(
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: a * e,
76
- height: a * t,
75
+ width: c * e,
76
+ height: c * t,
77
77
  onMouseMove: p,
78
- onMouseLeave: () => u.onMouseLeave()
78
+ onMouseLeave: () => a.onMouseLeave()
79
79
  }
80
80
  ) });
81
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CanvasCells.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/components/CanvasCells.tsx"],"sourcesContent":["import type { Cell, GroupedCellsData } 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: GroupedCellsData['facets'][keyof GroupedCellsData['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 === null ? emptyCellColor : colorScale(cell.normalizedValue 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: GroupedCellsData['facets'][keyof GroupedCellsData['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<Cell | 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":";;;AAQA,SAASA,EACLC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACF;;AACE,MAAKX,GAGL;AAAAA,MAAI,aACJA,EAAI,UAAU,GAAG,GAAGU,GAAOC,CAAM;AACjC,eAAWC,KAAQT;AACf,iBAAWU,KAAQT,GAAO;AACtB,cAAMU,KAAOC,IAAAb,KAAA,gBAAAA,EAAQU,CAAAA,MAAR,gBAAAG,EAAgBF,CAAAA;AAC7B,YAAI,CAACC;AACD;AAEJ,cAAME,IAAIf,EAAO,EAAEW,CAAI,GACjBK,IAAIhB,EAAO,EAAEY,CAAI;AACvBb,UAAI,YAAYc,EAAK,UAAU,OAAON,IAAiBC,EAAWK,EAAK,eAAoB,GACvFd,EAAI,SAASgB,GAAGC,GAAGZ,GAAOC,CAAK;AAAA,MACvC;AAAA,EAAA;AAER;AAEA,SAASY,EAAaC,GAAeC,GAAaC,GAAc;AAC5D,MAAIC,IAAQ,GACRC,IAAMJ,EAAI,SAAS;AAEvB,SAAOG,KAASC,KAAK;AACjB,UAAMC,IAAM,KAAK,OAAOF,IAAQC,KAAO,CAAC;AACxC,QAAI,KAAK,IAAIJ,EAAIK,CAAG,IAAIJ,CAAG,IAAIC;AAC3B,aAAOF,EAAIK,CAAG,KAAKJ,IAAMI,IAAM,IAAIA;AAGnCJ,IAAAA,IAAMD,EAAIK,CAAG,IACbD,IAAMC,IAAM,IAEZF,IAAQE,IAAM;AAAA,EAEtB;AACA,SAAO;AACX;AACA,SAASC,EAAUC,GAAYC,GAAqBC,GAAgBP,GAAc;AAC9E,QAAMQ,IAAMX,EAAaS,GAAWD,GAAIL,CAAI;AAC5C,SAAIQ,MAAQ,KACD,KAEJD,EAAKC,CAAG;AACnB;AAiBO,SAASC,EAAuB;AAAA,EACnC,OAAApB;AAAAA,EACA,QAAAC;AAAAA,EACA,UAAAoB;AAAAA,EACA,QAAA9B;AAAAA,EACA,OAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,KAAA0B;AAAAA,EACA,YAAAvB;AAAAA,EACA,cAAAwB;AACJ,GAAgC;AAC5B,QAAMC,IAAYC,EAAAA,OAAiC,IAAI,GACjDC,IAAc,OAAO,oBAAoB,GACzCpC,IAAMmC,EAAAA,OAAwC,IAAI,GAClDE,IAAS,MAAM;AACjBtC,IAAAA;AAAAA,MACIC,EAAI;AAAA,MACJC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MAAOC;AAAAA,MAAOC;AAAAA,MACd0B,EAAI;AAAA,MACJA,EAAI;AAAA,MACJvB;AAAAA,MACAC;AAAAA,MACAC;AAAAA,IAAA;AAAA,EAER;AACA2B,EAAAA,EAAAA,UAAU,MAAM;AACZ,UAAMC,IAAWL,EAAU;AACtBlC,IAAAA,EAAI,YACLA,EAAI,WAAUuC,KAAA,OAAA,SAAAA,EAAU,WAAW,IAAA,MAAS,OAE5CA,KAAYvC,EAAI,YAChBuC,EAAS,MAAM,QAAQ7B,IAAQ,MAC/B6B,EAAS,MAAM,SAAS5B,IAAS,MACjCX,EAAI,QAAQ,MAAMoC,GAAaA,CAAW,IAE9CC,EAAAA;AAAAA,EACJ,GAAG,CAAC3B,GAAOC,CAAM,CAAC,GAClB0B,EAAAA;AAEA,QAAMG,IAAqDC,EAAY,CAACC,MAAwB;;AAC5F,UAAM1B,IAAI0B,EAAE,YAAY,SAClBzB,IAAIyB,EAAE,YAAY,SAClB9B,IAAOa,EAAUT,GAAGf,EAAO,EAAE,MAAA,GAASA,EAAO,EAAE,UAAUI,CAAK,GAC9DQ,IAAOY,EAAUR,GAAGhB,EAAO,EAAE,MAAA,GAASA,EAAO,EAAE,UAAUK,CAAK,GAC9DqC,KAAa5B,IAAAb,EAAMU,CAAI,MAAV,gBAAAG,EAAcF,CAAAA;AAC7B8B,IAAAA,IACAV,EAAa,aAAaU,GAAYZ,CAAQ,IAE9CE,EAAa,aAAA;AAAA,EAErB,CAAC;AAED,SACIW,gBAAAA,EAAAA,IAAC,iBAAA,EAAc,OAAAlC,GAAc,QAAAC,GACzB,UAAAiC,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACG,KAAKV;AAAAA,MACL,OAAOE,IAAc1B;AAAAA,MACrB,QAAQ0B,IAAczB;AAAAA,MACtB,aAAa6B;AAAAA,MACb,cAAc,MAAMP,EAAa,aAAA;AAAA,IAAA;AAAA,EAAa,GAEtD;AAER;","x_google_ignoreList":[0]}
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":";;;AAQA,SAASA,EACLC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACF;;AACE,MAAKX,GAGL;AAAAA,MAAI,aACJA,EAAI,UAAU,GAAG,GAAGU,GAAOC,CAAM;AACjC,eAAWC,KAAQT;AACf,iBAAWU,KAAQT,GAAO;AACtB,cAAMU,KAAOC,IAAAb,KAAA,gBAAAA,EAAQU,CAAAA,MAAR,gBAAAG,EAAgBF,CAAAA;AAC7B,YAAI,CAACC;AACD;AAEJ,cAAME,IAAIf,EAAO,EAAEW,CAAI,GACjBK,IAAIhB,EAAO,EAAEY,CAAI;AACvBb,UAAI,YAAYc,EAAK,MAAM,eAAe,OAAON,IAAiBC,EAAWK,EAAK,gBAAgB,UAAe,GAC7Gd,EAAI,SAASgB,GAAGC,GAAGZ,GAAOC,CAAK;AAAA,MACvC;AAAA,EAAA;AAER;AAEA,SAASY,EAAaC,GAAeC,GAAaC,GAAc;AAC5D,MAAIC,IAAQ,GACRC,IAAMJ,EAAI,SAAS;AAEvB,SAAOG,KAASC,KAAK;AACjB,UAAMC,IAAM,KAAK,OAAOF,IAAQC,KAAO,CAAC;AACxC,QAAI,KAAK,IAAIJ,EAAIK,CAAG,IAAIJ,CAAG,IAAIC;AAC3B,aAAOF,EAAIK,CAAG,KAAKJ,IAAMI,IAAM,IAAIA;AAGnCJ,IAAAA,IAAMD,EAAIK,CAAG,IACbD,IAAMC,IAAM,IAEZF,IAAQE,IAAM;AAAA,EAEtB;AACA,SAAO;AACX;AACA,SAASC,EAAUC,GAAYC,GAAqBC,GAAgBP,GAAc;AAC9E,QAAMQ,IAAMX,EAAaS,GAAWD,GAAIL,CAAI;AAC5C,SAAIQ,MAAQ,KACD,KAEJD,EAAKC,CAAG;AACnB;AAiBO,SAASC,EAAuB;AAAA,EACnC,OAAApB;AAAAA,EACA,QAAAC;AAAAA,EACA,UAAAoB;AAAAA,EACA,QAAA9B;AAAAA,EACA,OAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,KAAA0B;AAAAA,EACA,YAAAvB;AAAAA,EACA,cAAAwB;AACJ,GAAgC;AAC5B,QAAMC,IAAYC,EAAAA,OAAiC,IAAI,GACjDC,IAAc,OAAO,oBAAoB,GACzCpC,IAAMmC,EAAAA,OAAwC,IAAI,GAClDE,IAAS,MAAM;AACjBtC,IAAAA;AAAAA,MACIC,EAAI;AAAA,MACJC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MAAOC;AAAAA,MAAOC;AAAAA,MACd0B,EAAI;AAAA,MACJA,EAAI;AAAA,MACJvB;AAAAA,MACAC;AAAAA,MACAC;AAAAA,IAAA;AAAA,EAER;AACA2B,EAAAA,EAAAA,UAAU,MAAM;AACZ,UAAMC,IAAWL,EAAU;AACtBlC,IAAAA,EAAI,YACLA,EAAI,WAAUuC,KAAA,OAAA,SAAAA,EAAU,WAAW,IAAA,MAAS,OAE5CA,KAAYvC,EAAI,YAChBuC,EAAS,MAAM,QAAQ7B,IAAQ,MAC/B6B,EAAS,MAAM,SAAS5B,IAAS,MACjCX,EAAI,QAAQ,MAAMoC,GAAaA,CAAW,IAE9CC,EAAAA;AAAAA,EACJ,GAAG,CAAC3B,GAAOC,CAAM,CAAC,GAClB0B,EAAAA;AAEA,QAAMG,IAAqDC,EAAY,CAACC,MAAwB;;AAC5F,UAAM1B,IAAI0B,EAAE,YAAY,SAClBzB,IAAIyB,EAAE,YAAY,SAClB9B,IAAOa,EAAUT,GAAGf,EAAO,EAAE,MAAA,GAASA,EAAO,EAAE,UAAUI,CAAK,GAC9DQ,IAAOY,EAAUR,GAAGhB,EAAO,EAAE,MAAA,GAASA,EAAO,EAAE,UAAUK,CAAK,GAC9DqC,KAAa5B,IAAAb,EAAMU,CAAI,MAAV,gBAAAG,EAAcF,CAAAA;AAC7B8B,IAAAA,IACAV,EAAa,aAAaU,GAAYZ,CAAQ,IAE9CE,EAAa,aAAA;AAAA,EAErB,CAAC;AAED,SACIW,gBAAAA,EAAAA,IAAC,iBAAA,EAAc,OAAAlC,GAAc,QAAAC,GACzB,UAAAiC,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACG,KAAKV;AAAAA,MACL,OAAOE,IAAc1B;AAAAA,MACrB,QAAQ0B,IAAczB;AAAAA,MACtB,aAAa6B;AAAAA,MACb,cAAc,MAAMP,EAAa,aAAA;AAAA,IAAA;AAAA,EAAa,GAEtD;AAER;","x_google_ignoreList":[0]}
@@ -14,7 +14,7 @@ function fe({
14
14
  facetKey: o,
15
15
  dimensions: l,
16
16
  scales: s,
17
- cells: j,
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: C,
36
+ tooltipsContainer: j,
37
37
  tooltipsData: e,
38
38
  cellsRenderingMode: D
39
39
  }) {
40
- const R = J(), { xAxis: V, yAxis: W, tooltips: T } = p, { width: G, height: B } = l.inner, { padding: i, chartEdgeSides: _, sideElementBBoxes: n } = l, { xGroupLabels: H, yGroupLabels: I, xLabels: O, yLabels: q } = a, h = s.x.domain(), S = s.y.domain(), b = {
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
- }, w = !1;
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: B,
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
- w,
96
+ T,
97
97
  D === "svg" && /* @__PURE__ */ t.jsx(
98
98
  ae,
99
99
  {
100
100
  scales: s,
101
101
  facetKey: o,
102
- cells: j,
102
+ cells: b,
103
103
  xKeys: h,
104
- yKeys: S,
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: j,
117
+ cells: b,
118
118
  width: G,
119
- height: B,
119
+ height: S,
120
120
  xKeys: h,
121
- yKeys: S,
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: B
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: w,
152
+ debug: T,
153
153
  sideElementBBoxes: n,
154
154
  xKeys: h,
155
- yKeys: S,
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, T == null ? void 0 : T.content),
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: b,
176
+ sideDistances: w,
177
177
  fixed: e.fixed,
178
178
  onClose: e.onClose,
179
- container: C
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: b,
190
+ sideDistances: w,
191
191
  fixed: e.fixed,
192
192
  onClose: e.onClose,
193
- container: C
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":";;;;;;;;;;;AAeO,SAASA,GAAiB;AAAA,EAC7B,aAAAC;AAAAA,EACA,UAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,QAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,eAAAC;AAAAA,EACA,eAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,eAAAC;AAAAA,EACA,WAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,SAAAC;AAAAA,EACA,SAAAC;AAAAA,EACA,aAAAC;AAAAA,EACA,uBAAAC;AAAAA,EACA,qBAAAC;AAAAA,EACA,KAAAC;AAAAA,EACA,aAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,SAAAC;AAAAA,EACA,mBAAAC;AAAAA,EACA,cAAAC;AAAAA,EACA,oBAAAC;AACJ,GA4BG;AACC,QAAMC,IAAYC,KAEZ,EAAE,OAAAC,GAAO,OAAAC,GAAO,UAAAC,MAAapB,GAC7B,EAAE,OAAAqB,GAAO,QAAAC,MAAW9B,EAAW,OAC/B,EAAE,SAAA+B,GAAS,gBAAAC,GAAgB,mBAAAC,MAAsBjC,GACjD,EAAE,cAAAkC,GAAc,cAAAC,GAAc,SAAAC,GAAS,SAAAC,MAAY5B,GAEnD6B,IAAQrC,EAAO,EAAE,OAAA,GACjBsC,IAAQtC,EAAO,EAAE,OAAA,GAEjBuC,IAAgB;AAAA,IAClB,MAAMpB,EAAQ,OAAOpB,EAAW,OAAO+B,EAAQ;AAAA,IAC/C,OAAOZ,EAAW,cAAcC,EAAQ,OAAOpB,EAAW,OAAO+B,EAAQ;AAAA,IACzE,KAAKX,EAAQ,MAAMpB,EAAW,MAAM+B,EAAQ;AAAA,IAC5C,QAAQZ,EAAW,eAAeC,EAAQ,MAAMpB,EAAW,MAAM+B,EAAQ;AAAA,EAAA,GAGvEU,IAAQ;AACd,SACIC,gBAAAA,EAAAA,KAAC,KAAA,EAAE,WAAW,aAAa1C,EAAW,IAAI,IAAIA,EAAW,GAAG,KAAK,UAAU2C,GACvE,UAAA;AAAA,IAAAD,gBAAAA,EAAAA,KAAC,KAAA,EAAE,WAAW,aAAaX,EAAQ,IAAI,IAAIA,EAAQ,GAAG,KAClD,UAAA;AAAA,MAAAa,gBAAAA,EAAAA;AAAAA,QAACC;AAAAA,QAAA;AAAA,UACG,UAAA9C;AAAAA,UACA,mBAAAkC;AAAAA,UACA,aAAAnB;AAAAA,UACA,WAAAL;AAAAA,UACA,uBAAAM;AAAAA,UACA,SAAAH;AAAAA,UACA,SAAAC;AAAAA,UACA,gBAAAmB;AAAAA,UACA,OAAAH;AAAAA,UACA,QAAAC;AAAAA,UACA,QAAA7B;AAAAA,UACA,OAAAS;AAAAA,UACA,OAAAC;AAAAA,UACA,KAAAM;AAAAA,UACA,OAAOT,EAAc;AAAA,UACrB,YAAAL;AAAAA,UACA,YAAAC;AAAAA,UACA,eAAAC;AAAAA,UACA,eAAAC;AAAAA,UACA,cAAAgB;AAAAA,UACA,oBAAAC;AAAAA,QAAA;AAAA,MAAA;AAAA,MAEJqB,gBAAAA,EAAAA;AAAAA,QAACE;AAAAA,QAAA;AAAA,UACG,aAAAhD;AAAAA,UACA,mBAAAmC;AAAAA,UACA,YAAYxB,EAAU;AAAA,UACtB,YAAYA,EAAU;AAAA,UACtB,aAAaA,EAAU;AAAA,UACvB,aAAaA,EAAU;AAAA,UACvB,WAAWO;AAAAA,QAAA;AAAA,MAAA;AAAA,MAGdiB,EAAkB,IAAI,WAAW,aAC9BW,gBAAAA,EAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACG,GAAGX,EAAkB,IAAI,WAAW;AAAA,UACpC,GACIA,EAAkB,IAAI,WAAW,IACjCA,EAAkB,IAAI,WAAW,SACjCc;AAAAA,UAEJ,YAAW;AAAA,UACX,UAAS;AAAA,UAER,UAAAtC,EAAU,eAAeV,CAAQ,EAAE,KAAK,IAAI;AAAA,QAAA;AAAA,MAAA;AAAA,MAGpD0C;AAAAA,MAiBAlB,MAAuB,SACpBqB,gBAAAA,EAAAA;AAAAA,QAACI;AAAAA,QAAA;AAAA,UACG,QAAA/C;AAAAA,UACA,UAAAF;AAAAA,UACA,OAAAG;AAAAA,UACA,OAAAoC;AAAAA,UACA,OAAAC;AAAAA,UACA,OAAA7B;AAAAA,UACA,OAAAC;AAAAA,UACA,KAAAM;AAAAA,UACA,YAAAV;AAAAA,UACA,cAAAe;AAAAA,QAAA;AAAA,MAAA;AAAA,MAGPC,MAAuB,YACpBqB,gBAAAA,EAAAA;AAAAA,QAACK;AAAAA,QAAA;AAAA,UACG,QAAAhD;AAAAA,UACA,UAAAF;AAAAA,UACA,OAAAG;AAAAA,UACA,OAAA2B;AAAAA,UACA,QAAAC;AAAAA,UACA,OAAAQ;AAAAA,UACA,OAAAC;AAAAA,UACA,OAAA7B;AAAAA,UACA,OAAAC;AAAAA,UACA,KAAAM;AAAAA,UACA,YAAAV;AAAAA,UACA,cAAAe;AAAAA,QAAA;AAAA,MAAA;AAAA,MAGRsB,gBAAAA,EAAAA;AAAAA,QAACM;AAAAA,QAAA;AAAA,UACG,OAAO1C,EAAc;AAAA,UACrB,YAAAL;AAAAA,UACA,YAAAC;AAAAA,UACA,eAAAC;AAAAA,UACA,eAAAC;AAAAA,UACA,QAAAL;AAAAA,UACA,OAAAS;AAAAA,UACA,OAAAC;AAAAA,UACA,OAAAkB;AAAAA,UACA,QAAAC;AAAAA,QAAA;AAAA,MAAA;AAAA,MAEJc,gBAAAA,EAAAA;AAAAA,QAACO;AAAAA,QAAA;AAAA,UACG,OAAAzB;AAAAA,UACA,OAAAC;AAAAA,UACA,QAAA1B;AAAAA,UACA,OAAAS;AAAAA,UACA,OAAAC;AAAAA,UACA,OAAA8B;AAAAA,UACA,mBAAAR;AAAAA,UACA,OAAAK;AAAAA,UACA,OAAAC;AAAAA,UACA,YAAApC;AAAAA,UACA,YAAAC;AAAAA,UACA,eAAAC;AAAAA,UACA,eAAAC;AAAAA,UACA,cAAA4B;AAAAA,UACA,cAAAC;AAAAA,UACA,aAAAjB;AAAAA,UACA,SAAAkB;AAAAA,UACA,SAAAC;AAAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAER;AAAA,IACC7B,EAAc,SAAS,QAAQ4C,EAAc9B,EAAa,YAAY,KAAKA,EAAa,iBAAiBvB,KACtG6C,gBAAAA,EAAAA;AAAAA,MAACS;AAAAA,MAAA;AAAA,QACG,SAASC,GAAkB9B,GAAWF,EAAa,cAAcb,GAAWmB,KAAA,OAAA,SAAAA,EAAU,OAAO;AAAA,QAC7F,GAAG3B,EAAO,EAAE,OAAOqB,EAAa,aAAa,CAAC,CAAC,IAAIZ,IAAQ;AAAA,QAC3D,GAAGT,EAAO,EAAE,OAAOqB,EAAa,aAAa,CAAC,CAAC,IAAIX,IAAQ;AAAA,QAC3D,QAAQ2B,EAAM,SAAS,IAAI5B,IAAQ,IAAI;AAAA,QACvC,QAAM;AAAA,QACN,eAAA8B;AAAAA,QACA,OAAOlB,EAAa;AAAA,QACpB,SAASA,EAAa;AAAA,QACtB,WAAWD;AAAAA,MAAA;AAAA,IAAA;AAAA,IAGlBb,EAAc,SAAS,QAAQ+C,EAAoBjC,EAAa,YAAY,KAAKA,EAAa,iBAAiBvB,KAC5G6C,gBAAAA,EAAAA;AAAAA,MAACS;AAAAA,MAAA;AAAA,QACG,SAASG,GAA4BlC,EAAa,cAAcb,CAAS;AAAA,QACzE,GAAGa,EAAa,aAAa;AAAA,QAC7B,GAAGA,EAAa,aAAa;AAAA,QAC7B,QAAQ;AAAA,QACR,QAAM;AAAA,QACN,eAAAkB;AAAAA,QACA,OAAOlB,EAAa;AAAA,QACpB,SAASA,EAAa;AAAA,QACtB,WAAWD;AAAAA,MAAA;AAAA,IAAA;AAAA,IAGnBqB,gBAAAA,EAAAA,KAAC,KAAA,EAAE,WAAW,aAAaX,EAAQ,IAAI,IAAIA,EAAQ,GAAG,KACjD,UAAA;AAAA,MAAAT,EAAa,SAASsB,gBAAAA,EAAAA,IAAC,QAAA,EAAK,OAAOzB,EAAW,YAAY,QAAQA,EAAW,aAAa,MAAK,4BAA2B;AAAA,MAAAsC,gBAAAA,EAAA,KAC1H,KAAA,EACI,UAAA;AAAA,QAAAnC,EAAa,SAASA,EAAa,iBAAiBvB,KAAYqD,EAAc9B,EAAa,YAAY,KACpGsB,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACG,OAAOlC;AAAAA,YACP,QAAQC;AAAAA,YACR,GAAGV,EAAO,EAAEqB,EAAa,aAAa,CAAW;AAAA,YACjD,GAAGrB,EAAO,EAAEqB,EAAa,aAAa,CAAW;AAAA,YACjD,MAAMf,EAAYe,EAAa,aAAa,mBAAmBA,EAAa,aAAa,KAAmB;AAAA,YAC5G,QAAQL,EAAI;AAAA,UAAA;AAAA,QAAA;AAAA,QAGnBK,EAAa,SAASA,EAAa,iBAAiBvB,KAAYwD,EAAoBjC,EAAa,YAAY,KAC1GsB,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACG,GAAGtB,EAAa,aAAa,KAAK;AAAA,YAClC,GAAGA,EAAa,aAAa,KAAK;AAAA,YAClC,OAAOA,EAAa,aAAa,KAAK;AAAA,YACtC,QAAQA,EAAa,aAAa,KAAK;AAAA,YACvC,MAAMA,EAAa,aAAa,KAAK;AAAA,YACrC,QAAQA,EAAa,aAAa,KAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA,GAGnD;AAAA,IAAA,GACJ;AAAA,EAAA,GACJ;AAER;","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: T
35
+ cellsRenderingMode: W
36
36
  }) {
37
- const [W, $] = c.useState(), v = N(M), d = c.useRef(null);
37
+ const [$, v] = c.useState(), z = N(M), d = c.useRef(null);
38
38
  c.useEffect(() => {
39
- d.current && $(d.current);
39
+ d.current && v(d.current);
40
40
  }, []);
41
- const g = n[i[0]].padding, z = n[i[D - 1]].padding, A = a.left + s.chartsWidth + O, F = a.top + g.top;
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: z.right,
60
+ rightPadding: A.right,
61
61
  chartsWidth: s.chartsWidth
62
62
  }
63
63
  ),
64
64
  i.map((t) => {
65
- const { cells: H, xKeysByGroups: R, yKeysByGroups: X } = S[t];
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 : R,
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: H,
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: W,
94
- tooltipsData: v,
95
- cellsRenderingMode: T
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(${A},${F})`, children: /* @__PURE__ */ e.jsx(L, { legendData: j }) }),
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
  }