@weng-lab/visualization 2.4.0-beta.6 → 2.4.0-beta.8
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/src/components/Heatmap/Heatmap.d.ts +1 -1
- package/dist/src/components/Heatmap/Heatmap.d.ts.map +1 -1
- package/dist/src/components/Heatmap/HeatmapCells.d.ts +5 -0
- package/dist/src/components/Heatmap/HeatmapCells.d.ts.map +1 -1
- package/dist/src/components/Heatmap/HeatmapStaticSvg.d.ts +33 -0
- package/dist/src/components/Heatmap/HeatmapStaticSvg.d.ts.map +1 -0
- package/dist/src/components/Heatmap/heatmapAxisProps.d.ts +37 -0
- package/dist/src/components/Heatmap/heatmapAxisProps.d.ts.map +1 -0
- package/dist/src/components/Heatmap/heatmapCellAppearance.d.ts +1 -1
- package/dist/src/components/Heatmap/heatmapCellAppearance.d.ts.map +1 -1
- package/dist/src/components/Heatmap/heatmapLayout.d.ts +71 -0
- package/dist/src/components/Heatmap/heatmapLayout.d.ts.map +1 -0
- package/dist/src/components/Heatmap/hooks/useHeatmapCanvasGrid.d.ts +31 -0
- package/dist/src/components/Heatmap/hooks/useHeatmapCanvasGrid.d.ts.map +1 -0
- package/dist/src/components/Heatmap/hooks/useScrollToSelection.d.ts +12 -0
- package/dist/src/components/Heatmap/hooks/useScrollToSelection.d.ts.map +1 -0
- package/dist/src/components/Heatmap/{HeatmapMiniMap.d.ts → scrollable/HeatmapMiniMap.d.ts} +3 -3
- package/dist/src/components/Heatmap/scrollable/HeatmapMiniMap.d.ts.map +1 -0
- package/dist/src/components/Heatmap/scrollable/HeatmapMiniMapPopup.d.ts +11 -0
- package/dist/src/components/Heatmap/scrollable/HeatmapMiniMapPopup.d.ts.map +1 -0
- package/dist/src/components/Heatmap/scrollable/HeatmapScrollableGrid.d.ts +28 -0
- package/dist/src/components/Heatmap/scrollable/HeatmapScrollableGrid.d.ts.map +1 -0
- package/dist/src/components/Heatmap/scrollable/heatmapExport.d.ts +30 -0
- package/dist/src/components/Heatmap/scrollable/heatmapExport.d.ts.map +1 -0
- package/dist/src/components/Heatmap/types.d.ts +4 -0
- package/dist/src/components/Heatmap/types.d.ts.map +1 -1
- package/dist/src/components/ScatterPlot/PlotZoom.d.ts +0 -12
- package/dist/src/components/ScatterPlot/PlotZoom.d.ts.map +1 -1
- package/dist/src/components/ScatterPlot/hooks/useCrosshair.d.ts.map +1 -1
- package/dist/src/components/ScatterPlot/hooks/useHoverTooltip.d.ts.map +1 -1
- package/dist/visualization.es10.js +11 -11
- package/dist/visualization.es100.js +102 -25
- package/dist/visualization.es100.js.map +1 -1
- package/dist/visualization.es101.js +129 -70
- package/dist/visualization.es101.js.map +1 -1
- package/dist/visualization.es102.js +83 -32
- package/dist/visualization.es102.js.map +1 -1
- package/dist/visualization.es103.js +37 -44
- package/dist/visualization.es103.js.map +1 -1
- package/dist/visualization.es104.js +46 -75
- package/dist/visualization.es104.js.map +1 -1
- package/dist/visualization.es105.js +56 -23
- package/dist/visualization.es105.js.map +1 -1
- package/dist/visualization.es106.js +31 -84
- package/dist/visualization.es106.js.map +1 -1
- package/dist/visualization.es107.js +18 -36
- package/dist/visualization.es107.js.map +1 -1
- package/dist/visualization.es108.js +14 -64
- package/dist/visualization.es108.js.map +1 -1
- package/dist/visualization.es109.js +26 -61
- package/dist/visualization.es109.js.map +1 -1
- package/dist/visualization.es11.js +10 -10
- package/dist/visualization.es112.js +2 -2
- package/dist/visualization.es116.js +9 -9
- package/dist/visualization.es117.js +2 -2
- package/dist/visualization.es12.js +2 -2
- package/dist/visualization.es120.js +30 -56
- package/dist/visualization.es120.js.map +1 -1
- package/dist/visualization.es121.js +45 -32
- package/dist/visualization.es121.js.map +1 -1
- package/dist/visualization.es122.js +76 -18
- package/dist/visualization.es122.js.map +1 -1
- package/dist/visualization.es123.js +25 -14
- package/dist/visualization.es123.js.map +1 -1
- package/dist/visualization.es124.js +84 -25
- package/dist/visualization.es124.js.map +1 -1
- package/dist/visualization.es125.js +35 -63
- package/dist/visualization.es125.js.map +1 -1
- package/dist/visualization.es126.js +13 -7
- package/dist/visualization.es126.js.map +1 -1
- package/dist/visualization.es127.js +74 -5
- package/dist/visualization.es127.js.map +1 -1
- package/dist/visualization.es128.js +31 -41
- package/dist/visualization.es128.js.map +1 -1
- package/dist/visualization.es129.js +11 -18
- package/dist/visualization.es129.js.map +1 -1
- package/dist/visualization.es13.js +7 -7
- package/dist/visualization.es130.js +17 -27
- package/dist/visualization.es130.js.map +1 -1
- package/dist/visualization.es131.js +62 -59
- package/dist/visualization.es131.js.map +1 -1
- package/dist/visualization.es132.js +7 -39
- package/dist/visualization.es132.js.map +1 -1
- package/dist/visualization.es133.js +5 -37
- package/dist/visualization.es133.js.map +1 -1
- package/dist/visualization.es134.js +42 -83
- package/dist/visualization.es134.js.map +1 -1
- package/dist/visualization.es135.js +30 -28
- package/dist/visualization.es135.js.map +1 -1
- package/dist/visualization.es136.js +7 -7
- package/dist/visualization.es136.js.map +1 -1
- package/dist/visualization.es137.js +6 -4
- package/dist/visualization.es137.js.map +1 -1
- package/dist/visualization.es138.js +3 -3
- package/dist/visualization.es138.js.map +1 -1
- package/dist/visualization.es139.js +16 -30
- package/dist/visualization.es139.js.map +1 -1
- package/dist/visualization.es140.js +16 -7
- package/dist/visualization.es140.js.map +1 -1
- package/dist/visualization.es141.js +32 -6
- package/dist/visualization.es141.js.map +1 -1
- package/dist/visualization.es142.js +16 -3
- package/dist/visualization.es142.js.map +1 -1
- package/dist/visualization.es143.js +10 -16
- package/dist/visualization.es143.js.map +1 -1
- package/dist/visualization.es144.js +6 -16
- package/dist/visualization.es144.js.map +1 -1
- package/dist/visualization.es145.js +6 -32
- package/dist/visualization.es145.js.map +1 -1
- package/dist/visualization.es146.js +8 -14
- package/dist/visualization.es146.js.map +1 -1
- package/dist/visualization.es147.js +4 -10
- package/dist/visualization.es147.js.map +1 -1
- package/dist/visualization.es148.js +4 -6
- package/dist/visualization.es148.js.map +1 -1
- package/dist/visualization.es149.js +8 -6
- package/dist/visualization.es149.js.map +1 -1
- package/dist/visualization.es15.js +8 -8
- package/dist/visualization.es150.js +4 -10
- package/dist/visualization.es150.js.map +1 -1
- package/dist/visualization.es151.js +12 -4
- package/dist/visualization.es151.js.map +1 -1
- package/dist/visualization.es152.js +26 -4
- package/dist/visualization.es152.js.map +1 -1
- package/dist/visualization.es153.js +60 -8
- package/dist/visualization.es153.js.map +1 -1
- package/dist/visualization.es154.js +38 -4
- package/dist/visualization.es154.js.map +1 -1
- package/dist/visualization.es155.js +35 -11
- package/dist/visualization.es155.js.map +1 -1
- package/dist/visualization.es156.js +82 -25
- package/dist/visualization.es156.js.map +1 -1
- package/dist/visualization.es157.js +27 -70
- package/dist/visualization.es157.js.map +1 -1
- package/dist/visualization.es158.js +6 -15
- package/dist/visualization.es158.js.map +1 -1
- package/dist/visualization.es159.js +4 -11
- package/dist/visualization.es159.js.map +1 -1
- package/dist/visualization.es160.js +4 -5
- package/dist/visualization.es160.js.map +1 -1
- package/dist/visualization.es161.js +20 -2
- package/dist/visualization.es161.js.map +1 -1
- package/dist/visualization.es162.js +27 -1605
- package/dist/visualization.es162.js.map +1 -1
- package/dist/visualization.es163.js +2 -75
- package/dist/visualization.es163.js.map +1 -1
- package/dist/visualization.es164.js +1606 -2
- package/dist/visualization.es164.js.map +1 -1
- package/dist/visualization.es165.js +84 -482
- package/dist/visualization.es165.js.map +1 -1
- package/dist/visualization.es166.js +90 -2
- package/dist/visualization.es166.js.map +1 -1
- package/dist/visualization.es167.js +12 -18
- package/dist/visualization.es167.js.map +1 -1
- package/dist/visualization.es168.js +5 -3
- package/dist/visualization.es168.js.map +1 -1
- package/dist/visualization.es169.js +14 -35
- package/dist/visualization.es169.js.map +1 -1
- package/dist/visualization.es170.js +7 -85
- package/dist/visualization.es170.js.map +1 -1
- package/dist/visualization.es171.js +13 -89
- package/dist/visualization.es171.js.map +1 -1
- package/dist/visualization.es172.js +18 -12
- package/dist/visualization.es172.js.map +1 -1
- package/dist/visualization.es173.js +3 -5
- package/dist/visualization.es173.js.map +1 -1
- package/dist/visualization.es174.js +35 -14
- package/dist/visualization.es174.js.map +1 -1
- package/dist/visualization.es175.js +8 -7
- package/dist/visualization.es175.js.map +1 -1
- package/dist/visualization.es176.js +15 -13
- package/dist/visualization.es176.js.map +1 -1
- package/dist/visualization.es177.js +11 -8
- package/dist/visualization.es177.js.map +1 -1
- package/dist/visualization.es178.js +5 -15
- package/dist/visualization.es178.js.map +1 -1
- package/dist/visualization.es179.js +12 -11
- package/dist/visualization.es179.js.map +1 -1
- package/dist/visualization.es18.js +1 -1
- package/dist/visualization.es180.js +3 -5
- package/dist/visualization.es180.js.map +1 -1
- package/dist/visualization.es181.js +2 -12
- package/dist/visualization.es181.js.map +1 -1
- package/dist/visualization.es182.js +11 -4
- package/dist/visualization.es182.js.map +1 -1
- package/dist/visualization.es183.js +31 -2
- package/dist/visualization.es183.js.map +1 -1
- package/dist/visualization.es184.js +42 -10
- package/dist/visualization.es184.js.map +1 -1
- package/dist/visualization.es185.js +48 -29
- package/dist/visualization.es185.js.map +1 -1
- package/dist/visualization.es186.js +3 -43
- package/dist/visualization.es186.js.map +1 -1
- package/dist/visualization.es187.js +3 -50
- package/dist/visualization.es187.js.map +1 -1
- package/dist/visualization.es188.js +6 -3
- package/dist/visualization.es188.js.map +1 -1
- package/dist/visualization.es189.js +5 -3
- package/dist/visualization.es189.js.map +1 -1
- package/dist/visualization.es190.js +10 -5
- package/dist/visualization.es190.js.map +1 -1
- package/dist/visualization.es191.js +3 -4
- package/dist/visualization.es191.js.map +1 -1
- package/dist/visualization.es192.js +16 -9
- package/dist/visualization.es192.js.map +1 -1
- package/dist/visualization.es193.js +18 -3
- package/dist/visualization.es193.js.map +1 -1
- package/dist/visualization.es194.js +36 -17
- package/dist/visualization.es194.js.map +1 -1
- package/dist/visualization.es195.js +2 -19
- package/dist/visualization.es195.js.map +1 -1
- package/dist/visualization.es196.js +2 -37
- package/dist/visualization.es196.js.map +1 -1
- package/dist/visualization.es197.js +4 -2
- package/dist/visualization.es197.js.map +1 -1
- package/dist/visualization.es198.js +15 -2
- package/dist/visualization.es198.js.map +1 -1
- package/dist/visualization.es199.js +3 -4
- package/dist/visualization.es199.js.map +1 -1
- package/dist/visualization.es2.js +8 -8
- package/dist/visualization.es20.js +59 -39
- package/dist/visualization.es20.js.map +1 -1
- package/dist/visualization.es200.js +7 -15
- package/dist/visualization.es200.js.map +1 -1
- package/dist/visualization.es201.js +1 -1
- package/dist/visualization.es201.js.map +1 -1
- package/dist/visualization.es202.js +7 -7
- package/dist/visualization.es202.js.map +1 -1
- package/dist/visualization.es203.js +73 -3
- package/dist/visualization.es203.js.map +1 -1
- package/dist/visualization.es204.js +22 -6
- package/dist/visualization.es204.js.map +1 -1
- package/dist/visualization.es205.js +22 -3
- package/dist/visualization.es205.js.map +1 -1
- package/dist/visualization.es206.js +40 -17
- package/dist/visualization.es206.js.map +1 -1
- package/dist/visualization.es207.js +6 -8
- package/dist/visualization.es207.js.map +1 -1
- package/dist/visualization.es208.js +12 -6
- package/dist/visualization.es208.js.map +1 -1
- package/dist/visualization.es209.js +16 -6
- package/dist/visualization.es209.js.map +1 -1
- package/dist/visualization.es21.js +10 -35
- package/dist/visualization.es21.js.map +1 -1
- package/dist/visualization.es210.js +36 -9
- package/dist/visualization.es210.js.map +1 -1
- package/dist/visualization.es211.js +24 -6
- package/dist/visualization.es211.js.map +1 -1
- package/dist/visualization.es212.js +26 -5
- package/dist/visualization.es212.js.map +1 -1
- package/dist/visualization.es213.js +71 -5
- package/dist/visualization.es213.js.map +1 -1
- package/dist/visualization.es214.js +16 -14
- package/dist/visualization.es214.js.map +1 -1
- package/dist/visualization.es215.js +11 -5
- package/dist/visualization.es215.js.map +1 -1
- package/dist/visualization.es216.js +5 -4
- package/dist/visualization.es216.js.map +1 -1
- package/dist/visualization.es217.js +9 -6
- package/dist/visualization.es217.js.map +1 -1
- package/dist/visualization.es218.js +6 -6
- package/dist/visualization.es218.js.map +1 -1
- package/dist/visualization.es219.js +7 -9
- package/dist/visualization.es219.js.map +1 -1
- package/dist/visualization.es22.js +54 -7
- package/dist/visualization.es22.js.map +1 -1
- package/dist/visualization.es220.js +9 -3
- package/dist/visualization.es220.js.map +1 -1
- package/dist/visualization.es221.js +6 -5
- package/dist/visualization.es221.js.map +1 -1
- package/dist/visualization.es222.js +6 -33
- package/dist/visualization.es222.js.map +1 -1
- package/dist/visualization.es223.js +5 -15
- package/dist/visualization.es223.js.map +1 -1
- package/dist/visualization.es224.js +13 -6
- package/dist/visualization.es224.js.map +1 -1
- package/dist/visualization.es225.js +5 -11
- package/dist/visualization.es225.js.map +1 -1
- package/dist/visualization.es226.js +3 -32
- package/dist/visualization.es226.js.map +1 -1
- package/dist/visualization.es227.js +6 -114
- package/dist/visualization.es227.js.map +1 -1
- package/dist/visualization.es228.js +6 -72
- package/dist/visualization.es228.js.map +1 -1
- package/dist/visualization.es229.js +9 -22
- package/dist/visualization.es229.js.map +1 -1
- package/dist/visualization.es23.js +43 -7
- package/dist/visualization.es23.js.map +1 -1
- package/dist/visualization.es230.js +32 -22
- package/dist/visualization.es230.js.map +1 -1
- package/dist/visualization.es231.js +112 -38
- package/dist/visualization.es231.js.map +1 -1
- package/dist/visualization.es232.js +3 -7
- package/dist/visualization.es232.js.map +1 -1
- package/dist/visualization.es233.js +5 -12
- package/dist/visualization.es233.js.map +1 -1
- package/dist/visualization.es234.js +32 -16
- package/dist/visualization.es234.js.map +1 -1
- package/dist/visualization.es235.js +15 -36
- package/dist/visualization.es235.js.map +1 -1
- package/dist/visualization.es236.js +7 -24
- package/dist/visualization.es236.js.map +1 -1
- package/dist/visualization.es237.js +10 -26
- package/dist/visualization.es237.js.map +1 -1
- package/dist/visualization.es238.js +3 -123
- package/dist/visualization.es238.js.map +1 -1
- package/dist/visualization.es239.js +75 -2
- package/dist/visualization.es239.js.map +1 -1
- package/dist/visualization.es24.js +33 -67
- package/dist/visualization.es24.js.map +1 -1
- package/dist/visualization.es240.js +2 -35
- package/dist/visualization.es240.js.map +1 -1
- package/dist/visualization.es241.js +483 -2
- package/dist/visualization.es241.js.map +1 -1
- package/dist/visualization.es242.js +2 -30
- package/dist/visualization.es242.js.map +1 -1
- package/dist/visualization.es243.js +63 -20
- package/dist/visualization.es243.js.map +1 -1
- package/dist/visualization.es244.js +60 -3
- package/dist/visualization.es244.js.map +1 -1
- package/dist/visualization.es245.js +123 -3
- package/dist/visualization.es245.js.map +1 -1
- package/dist/visualization.es246.js +115 -3
- package/dist/visualization.es246.js.map +1 -1
- package/dist/visualization.es247.js +34 -3
- package/dist/visualization.es247.js.map +1 -1
- package/dist/visualization.es248.js +2 -4
- package/dist/visualization.es248.js.map +1 -1
- package/dist/visualization.es249.js +2 -4
- package/dist/visualization.es249.js.map +1 -1
- package/dist/visualization.es25.js +8 -44
- package/dist/visualization.es25.js.map +1 -1
- package/dist/visualization.es250.js +3 -3
- package/dist/visualization.es250.js.map +1 -1
- package/dist/visualization.es251.js +3 -7
- package/dist/visualization.es251.js.map +1 -1
- package/dist/visualization.es252.js +3 -48
- package/dist/visualization.es252.js.map +1 -1
- package/dist/visualization.es253.js +3 -3
- package/dist/visualization.es253.js.map +1 -1
- package/dist/visualization.es254.js +3 -6
- package/dist/visualization.es254.js.map +1 -1
- package/dist/visualization.es255.js +3 -4
- package/dist/visualization.es255.js.map +1 -1
- package/dist/visualization.es256.js +3 -3
- package/dist/visualization.es256.js.map +1 -1
- package/dist/visualization.es257.js +6 -5
- package/dist/visualization.es257.js.map +1 -1
- package/dist/visualization.es258.js +48 -4
- package/dist/visualization.es258.js.map +1 -1
- package/dist/visualization.es259.js +3 -53
- package/dist/visualization.es259.js.map +1 -1
- package/dist/visualization.es26.js +7 -11
- package/dist/visualization.es26.js.map +1 -1
- package/dist/visualization.es260.js +5 -30
- package/dist/visualization.es260.js.map +1 -1
- package/dist/visualization.es261.js +4 -33
- package/dist/visualization.es261.js.map +1 -1
- package/dist/visualization.es262.js +3 -12
- package/dist/visualization.es262.js.map +1 -1
- package/dist/visualization.es263.js +6 -9
- package/dist/visualization.es263.js.map +1 -1
- package/dist/visualization.es264.js +4 -9
- package/dist/visualization.es264.js.map +1 -1
- package/dist/visualization.es265.js +29 -6
- package/dist/visualization.es265.js.map +1 -1
- package/dist/visualization.es266.js +20 -8
- package/dist/visualization.es266.js.map +1 -1
- package/dist/visualization.es267.js +23 -6
- package/dist/visualization.es267.js.map +1 -1
- package/dist/visualization.es268.js +52 -4
- package/dist/visualization.es268.js.map +1 -1
- package/dist/visualization.es269.js +8 -13
- package/dist/visualization.es269.js.map +1 -1
- package/dist/visualization.es27.js +67 -64
- package/dist/visualization.es27.js.map +1 -1
- package/dist/visualization.es270.js +9 -5
- package/dist/visualization.es270.js.map +1 -1
- package/dist/visualization.es271.js +6 -6
- package/dist/visualization.es271.js.map +1 -1
- package/dist/visualization.es272.js +8 -6
- package/dist/visualization.es272.js.map +1 -1
- package/dist/visualization.es273.js +6 -6
- package/dist/visualization.es273.js.map +1 -1
- package/dist/visualization.es274.js +5 -3
- package/dist/visualization.es274.js.map +1 -1
- package/dist/visualization.es275.js +14 -4
- package/dist/visualization.es275.js.map +1 -1
- package/dist/visualization.es276.js +4 -8
- package/dist/visualization.es276.js.map +1 -1
- package/dist/visualization.es277.js +7 -7
- package/dist/visualization.es277.js.map +1 -1
- package/dist/visualization.es278.js +6 -34
- package/dist/visualization.es278.js.map +1 -1
- package/dist/visualization.es279.js +6 -3
- package/dist/visualization.es279.js.map +1 -1
- package/dist/visualization.es28.js +44 -113
- package/dist/visualization.es28.js.map +1 -1
- package/dist/visualization.es280.js +3 -3
- package/dist/visualization.es280.js.map +1 -1
- package/dist/visualization.es281.js +4 -6
- package/dist/visualization.es281.js.map +1 -1
- package/dist/visualization.es282.js +9 -12
- package/dist/visualization.es282.js.map +1 -1
- package/dist/visualization.es283.js +3 -2
- package/dist/visualization.es283.js.map +1 -1
- package/dist/visualization.es284.js +11 -3
- package/dist/visualization.es284.js.map +1 -1
- package/dist/visualization.es285.js +36 -3
- package/dist/visualization.es285.js.map +1 -1
- package/dist/visualization.es286.js +259 -9
- package/dist/visualization.es286.js.map +1 -1
- package/dist/visualization.es287.js +56 -22
- package/dist/visualization.es287.js.map +1 -1
- package/dist/visualization.es288.js +5 -4
- package/dist/visualization.es288.js.map +1 -1
- package/dist/visualization.es289.js +5 -30
- package/dist/visualization.es289.js.map +1 -1
- package/dist/visualization.es29.js +11 -147
- package/dist/visualization.es29.js.map +1 -1
- package/dist/visualization.es290.js +138 -21
- package/dist/visualization.es290.js.map +1 -1
- package/dist/visualization.es291.js +5 -53
- package/dist/visualization.es291.js.map +1 -1
- package/dist/visualization.es292.js +22 -3
- package/dist/visualization.es292.js.map +1 -1
- package/dist/visualization.es293.js +37 -11
- package/dist/visualization.es293.js.map +1 -1
- package/dist/visualization.es294.js +33 -35
- package/dist/visualization.es294.js.map +1 -1
- package/dist/visualization.es295.js +14 -260
- package/dist/visualization.es295.js.map +1 -1
- package/dist/visualization.es296.js +18 -59
- package/dist/visualization.es296.js.map +1 -1
- package/dist/visualization.es297.js +9 -6
- package/dist/visualization.es297.js.map +1 -1
- package/dist/visualization.es298.js +109 -21
- package/dist/visualization.es298.js.map +1 -1
- package/dist/visualization.es299.js +12 -37
- package/dist/visualization.es299.js.map +1 -1
- package/dist/visualization.es3.js +12 -12
- package/dist/visualization.es30.js +53 -46
- package/dist/visualization.es30.js.map +1 -1
- package/dist/visualization.es300.js +136 -29
- package/dist/visualization.es300.js.map +1 -1
- package/dist/visualization.es301.js +6 -15
- package/dist/visualization.es301.js.map +1 -1
- package/dist/visualization.es302.js +71 -18
- package/dist/visualization.es302.js.map +1 -1
- package/dist/visualization.es303.js +35 -8
- package/dist/visualization.es303.js.map +1 -1
- package/dist/visualization.es304.js +20 -7
- package/dist/visualization.es304.js.map +1 -1
- package/dist/visualization.es305.js +3 -140
- package/dist/visualization.es305.js.map +1 -1
- package/dist/visualization.es306.js +24 -5
- package/dist/visualization.es306.js.map +1 -1
- package/dist/visualization.es307.js +30 -109
- package/dist/visualization.es307.js.map +1 -1
- package/dist/visualization.es308.js +2 -13
- package/dist/visualization.es308.js.map +1 -1
- package/dist/visualization.es309.js +2 -142
- package/dist/visualization.es309.js.map +1 -1
- package/dist/visualization.es31.js +146 -19
- package/dist/visualization.es31.js.map +1 -1
- package/dist/visualization.es310.js +5 -5
- package/dist/visualization.es310.js.map +1 -1
- package/dist/visualization.es311.js +15 -72
- package/dist/visualization.es311.js.map +1 -1
- package/dist/visualization.es312.js +33 -34
- package/dist/visualization.es312.js.map +1 -1
- package/dist/visualization.es313.js +26 -19
- package/dist/visualization.es313.js.map +1 -1
- package/dist/visualization.es314.js +10 -3
- package/dist/visualization.es314.js.map +1 -1
- package/dist/visualization.es315.js +6 -24
- package/dist/visualization.es315.js.map +1 -1
- package/dist/visualization.es316.js +13 -30
- package/dist/visualization.es316.js.map +1 -1
- package/dist/visualization.es317.js +12 -2
- package/dist/visualization.es317.js.map +1 -1
- package/dist/visualization.es318.js +2 -2
- package/dist/visualization.es318.js.map +1 -1
- package/dist/visualization.es319.js +3 -6
- package/dist/visualization.es319.js.map +1 -1
- package/dist/visualization.es32.js +111 -5
- package/dist/visualization.es32.js.map +1 -1
- package/dist/visualization.es320.js +2 -15
- package/dist/visualization.es320.js.map +1 -1
- package/dist/visualization.es321.js +102 -33
- package/dist/visualization.es321.js.map +1 -1
- package/dist/visualization.es322.js +4 -27
- package/dist/visualization.es322.js.map +1 -1
- package/dist/visualization.es323.js +3 -11
- package/dist/visualization.es323.js.map +1 -1
- package/dist/visualization.es324.js +18 -6
- package/dist/visualization.es324.js.map +1 -1
- package/dist/visualization.es325.js +5 -13
- package/dist/visualization.es325.js.map +1 -1
- package/dist/visualization.es326.js +14 -11
- package/dist/visualization.es326.js.map +1 -1
- package/dist/visualization.es327.js +5 -2
- package/dist/visualization.es327.js.map +1 -1
- package/dist/visualization.es328.js +29 -3
- package/dist/visualization.es328.js.map +1 -1
- package/dist/visualization.es329.js +7 -2
- package/dist/visualization.es329.js.map +1 -1
- package/dist/visualization.es33.js +7 -33
- package/dist/visualization.es33.js.map +1 -1
- package/dist/visualization.es330.js +2 -104
- package/dist/visualization.es330.js.map +1 -1
- package/dist/visualization.es331.js +20 -5
- package/dist/visualization.es331.js.map +1 -1
- package/dist/visualization.es332.js +21 -3
- package/dist/visualization.es332.js.map +1 -1
- package/dist/visualization.es333.js +5 -18
- package/dist/visualization.es333.js.map +1 -1
- package/dist/visualization.es334.js +7 -5
- package/dist/visualization.es334.js.map +1 -1
- package/dist/visualization.es335.js +18 -14
- package/dist/visualization.es335.js.map +1 -1
- package/dist/visualization.es336.js +44 -5
- package/dist/visualization.es336.js.map +1 -1
- package/dist/visualization.es337.js +7 -29
- package/dist/visualization.es337.js.map +1 -1
- package/dist/visualization.es338.js +19 -6
- package/dist/visualization.es338.js.map +1 -1
- package/dist/visualization.es339.js +54 -2
- package/dist/visualization.es339.js.map +1 -1
- package/dist/visualization.es34.js +17 -31
- package/dist/visualization.es34.js.map +1 -1
- package/dist/visualization.es340.js +27 -20
- package/dist/visualization.es340.js.map +1 -1
- package/dist/visualization.es341.js +11 -21
- package/dist/visualization.es341.js.map +1 -1
- package/dist/visualization.es342.js +18 -5
- package/dist/visualization.es342.js.map +1 -1
- package/dist/visualization.es343.js +10 -6
- package/dist/visualization.es343.js.map +1 -1
- package/dist/visualization.es344.js +4 -18
- package/dist/visualization.es344.js.map +1 -1
- package/dist/visualization.es345.js +4 -44
- package/dist/visualization.es345.js.map +1 -1
- package/dist/visualization.es346.js +4 -7
- package/dist/visualization.es346.js.map +1 -1
- package/dist/visualization.es347.js +174 -18
- package/dist/visualization.es347.js.map +1 -1
- package/dist/visualization.es348.js +37 -51
- package/dist/visualization.es348.js.map +1 -1
- package/dist/visualization.es349.js +5 -26
- package/dist/visualization.es349.js.map +1 -1
- package/dist/visualization.es35.js +32 -53
- package/dist/visualization.es35.js.map +1 -1
- package/dist/visualization.es350.js +4 -11
- package/dist/visualization.es350.js.map +1 -1
- package/dist/visualization.es351.js +2 -19
- package/dist/visualization.es351.js.map +1 -1
- package/dist/visualization.es352.js +30 -12
- package/dist/visualization.es352.js.map +1 -1
- package/dist/visualization.es353.js +8 -5
- package/dist/visualization.es353.js.map +1 -1
- package/dist/visualization.es354.js +11 -4
- package/dist/visualization.es354.js.map +1 -1
- package/dist/visualization.es355.js +3 -3
- package/dist/visualization.es355.js.map +1 -1
- package/dist/visualization.es356.js +62 -172
- package/dist/visualization.es356.js.map +1 -1
- package/dist/visualization.es357.js +7 -40
- package/dist/visualization.es357.js.map +1 -1
- package/dist/visualization.es358.js +4 -5
- package/dist/visualization.es358.js.map +1 -1
- package/dist/visualization.es359.js +13 -3
- package/dist/visualization.es359.js.map +1 -1
- package/dist/visualization.es36.js +51 -110
- package/dist/visualization.es36.js.map +1 -1
- package/dist/visualization.es360.js +35 -2
- package/dist/visualization.es360.js.map +1 -1
- package/dist/visualization.es361.js +5 -30
- package/dist/visualization.es361.js.map +1 -1
- package/dist/visualization.es362.js +10 -8
- package/dist/visualization.es362.js.map +1 -1
- package/dist/visualization.es363.js +2 -11
- package/dist/visualization.es363.js.map +1 -1
- package/dist/visualization.es364.js +5 -4
- package/dist/visualization.es364.js.map +1 -1
- package/dist/visualization.es365.js +2 -66
- package/dist/visualization.es365.js.map +1 -1
- package/dist/visualization.es366.js +10 -7
- package/dist/visualization.es366.js.map +1 -1
- package/dist/visualization.es367.js +10 -5
- package/dist/visualization.es367.js.map +1 -1
- package/dist/visualization.es368.js +13 -14
- package/dist/visualization.es368.js.map +1 -1
- package/dist/visualization.es369.js +2 -35
- package/dist/visualization.es369.js.map +1 -1
- package/dist/visualization.es37.js +54 -7
- package/dist/visualization.es37.js.map +1 -1
- package/dist/visualization.es370.js +10 -5
- package/dist/visualization.es370.js.map +1 -1
- package/dist/visualization.es371.js +7 -9
- package/dist/visualization.es371.js.map +1 -1
- package/dist/visualization.es372.js +6 -2
- package/dist/visualization.es372.js.map +1 -1
- package/dist/visualization.es373.js +25 -5
- package/dist/visualization.es373.js.map +1 -1
- package/dist/visualization.es374.js +19 -2
- package/dist/visualization.es374.js.map +1 -1
- package/dist/visualization.es375.js +40 -9
- package/dist/visualization.es375.js.map +1 -1
- package/dist/visualization.es376.js +3 -10
- package/dist/visualization.es376.js.map +1 -1
- package/dist/visualization.es377.js +8 -12
- package/dist/visualization.es377.js.map +1 -1
- package/dist/visualization.es378.js +9 -2
- package/dist/visualization.es378.js.map +1 -1
- package/dist/visualization.es379.js +36 -10
- package/dist/visualization.es379.js.map +1 -1
- package/dist/visualization.es38.js +40 -31
- package/dist/visualization.es38.js.map +1 -1
- package/dist/visualization.es380.js +9 -7
- package/dist/visualization.es380.js.map +1 -1
- package/dist/visualization.es381.js +31 -5
- package/dist/visualization.es381.js.map +1 -1
- package/dist/visualization.es382.js +4 -24
- package/dist/visualization.es382.js.map +1 -1
- package/dist/visualization.es383.js +2 -19
- package/dist/visualization.es383.js.map +1 -1
- package/dist/visualization.es384.js +15 -40
- package/dist/visualization.es384.js.map +1 -1
- package/dist/visualization.es385.js +25 -3
- package/dist/visualization.es385.js.map +1 -1
- package/dist/visualization.es386.js +2 -9
- package/dist/visualization.es386.js.map +1 -1
- package/dist/visualization.es387.js +62 -8
- package/dist/visualization.es387.js.map +1 -1
- package/dist/visualization.es388.js +2 -36
- package/dist/visualization.es388.js.map +1 -1
- package/dist/visualization.es389.js +2 -10
- package/dist/visualization.es389.js.map +1 -1
- package/dist/visualization.es39.js +6 -52
- package/dist/visualization.es39.js.map +1 -1
- package/dist/visualization.es390.js +5 -31
- package/dist/visualization.es390.js.map +1 -1
- package/dist/visualization.es391.js +36 -4
- package/dist/visualization.es391.js.map +1 -1
- package/dist/visualization.es392.js +21 -2
- package/dist/visualization.es392.js.map +1 -1
- package/dist/visualization.es393.js +3 -15
- package/dist/visualization.es393.js.map +1 -1
- package/dist/visualization.es394.js +4 -24
- package/dist/visualization.es394.js.map +1 -1
- package/dist/visualization.es395.js +5 -2
- package/dist/visualization.es395.js.map +1 -1
- package/dist/visualization.es396.js +45 -59
- package/dist/visualization.es396.js.map +1 -1
- package/dist/visualization.es397.js +27 -2
- package/dist/visualization.es397.js.map +1 -1
- package/dist/visualization.es398.js +17 -2
- package/dist/visualization.es398.js.map +1 -1
- package/dist/visualization.es399.js +10 -6
- package/dist/visualization.es399.js.map +1 -1
- package/dist/visualization.es4.js +6 -6
- package/dist/visualization.es40.js +4 -54
- package/dist/visualization.es40.js.map +1 -1
- package/dist/visualization.es400.js +17 -34
- package/dist/visualization.es400.js.map +1 -1
- package/dist/visualization.es401.js +14 -21
- package/dist/visualization.es401.js.map +1 -1
- package/dist/visualization.es402.js +3 -3
- package/dist/visualization.es402.js.map +1 -1
- package/dist/visualization.es403.js +13 -5
- package/dist/visualization.es403.js.map +1 -1
- package/dist/visualization.es404.js +48 -4
- package/dist/visualization.es404.js.map +1 -1
- package/dist/visualization.es405.js +5 -48
- package/dist/visualization.es405.js.map +1 -1
- package/dist/visualization.es406.js +12 -26
- package/dist/visualization.es406.js.map +1 -1
- package/dist/visualization.es407.js +2 -17
- package/dist/visualization.es407.js.map +1 -1
- package/dist/visualization.es408.js +7 -10
- package/dist/visualization.es408.js.map +1 -1
- package/dist/visualization.es409.js +208 -18
- package/dist/visualization.es409.js.map +1 -1
- package/dist/visualization.es41.js +18 -43
- package/dist/visualization.es41.js.map +1 -1
- package/dist/visualization.es410.js +27 -14
- package/dist/visualization.es410.js.map +1 -1
- package/dist/visualization.es411.js +3 -3
- package/dist/visualization.es411.js.map +1 -1
- package/dist/visualization.es412.js +15 -12
- package/dist/visualization.es412.js.map +1 -1
- package/dist/visualization.es413.js +14 -48
- package/dist/visualization.es413.js.map +1 -1
- package/dist/visualization.es414.js +15 -6
- package/dist/visualization.es414.js.map +1 -1
- package/dist/visualization.es415.js +2 -13
- package/dist/visualization.es415.js.map +1 -1
- package/dist/visualization.es416.js +2 -2
- package/dist/visualization.es416.js.map +1 -1
- package/dist/visualization.es417.js +2 -7
- package/dist/visualization.es417.js.map +1 -1
- package/dist/visualization.es418.js +5 -210
- package/dist/visualization.es418.js.map +1 -1
- package/dist/visualization.es419.js +2 -27
- package/dist/visualization.es419.js.map +1 -1
- package/dist/visualization.es42.js +4 -5
- package/dist/visualization.es42.js.map +1 -1
- package/dist/visualization.es420.js +25 -4
- package/dist/visualization.es420.js.map +1 -1
- package/dist/visualization.es421.js +21 -15
- package/dist/visualization.es421.js.map +1 -1
- package/dist/visualization.es422.js +8 -14
- package/dist/visualization.es422.js.map +1 -1
- package/dist/visualization.es423.js +67 -14
- package/dist/visualization.es423.js.map +1 -1
- package/dist/visualization.es424.js +6 -2
- package/dist/visualization.es424.js.map +1 -1
- package/dist/visualization.es425.js +29 -2
- package/dist/visualization.es425.js.map +1 -1
- package/dist/visualization.es426.js +10 -2
- package/dist/visualization.es426.js.map +1 -1
- package/dist/visualization.es427.js +6 -5
- package/dist/visualization.es427.js.map +1 -1
- package/dist/visualization.es428.js +2 -2
- package/dist/visualization.es428.js.map +1 -1
- package/dist/visualization.es429.js +5 -25
- package/dist/visualization.es429.js.map +1 -1
- package/dist/visualization.es43.js +26 -4
- package/dist/visualization.es43.js.map +1 -1
- package/dist/visualization.es430.js +25 -21
- package/dist/visualization.es430.js.map +1 -1
- package/dist/visualization.es431.js +11 -9
- package/dist/visualization.es431.js.map +1 -1
- package/dist/visualization.es432.js +27 -68
- package/dist/visualization.es432.js.map +1 -1
- package/dist/visualization.es433.js +10 -6
- package/dist/visualization.es433.js.map +1 -1
- package/dist/visualization.es434.js +11 -29
- package/dist/visualization.es434.js.map +1 -1
- package/dist/visualization.es435.js +2 -10
- package/dist/visualization.es435.js.map +1 -1
- package/dist/visualization.es436.js +16 -6
- package/dist/visualization.es436.js.map +1 -1
- package/dist/visualization.es437.js +30 -2
- package/dist/visualization.es437.js.map +1 -1
- package/dist/visualization.es438.js +26 -5
- package/dist/visualization.es438.js.map +1 -1
- package/dist/visualization.es439.js +2 -26
- package/dist/visualization.es439.js.map +1 -1
- package/dist/visualization.es44.js +29 -16
- package/dist/visualization.es44.js.map +1 -1
- package/dist/visualization.es440.js +8 -10
- package/dist/visualization.es440.js.map +1 -1
- package/dist/visualization.es441.js +11 -25
- package/dist/visualization.es441.js.map +1 -1
- package/dist/visualization.es442.js +22 -9
- package/dist/visualization.es442.js.map +1 -1
- package/dist/visualization.es443.js +12 -10
- package/dist/visualization.es443.js.map +1 -1
- package/dist/visualization.es444.js +3 -2
- package/dist/visualization.es444.js.map +1 -1
- package/dist/visualization.es445.js +2 -16
- package/dist/visualization.es445.js.map +1 -1
- package/dist/visualization.es446.js +15 -27
- package/dist/visualization.es446.js.map +1 -1
- package/dist/visualization.es447.js +4 -26
- package/dist/visualization.es447.js.map +1 -1
- package/dist/visualization.es448.js +12 -2
- package/dist/visualization.es448.js.map +1 -1
- package/dist/visualization.es449.js +11 -9
- package/dist/visualization.es449.js.map +1 -1
- package/dist/visualization.es45.js +5 -5
- package/dist/visualization.es45.js.map +1 -1
- package/dist/visualization.es450.js +6 -12
- package/dist/visualization.es450.js.map +1 -1
- package/dist/visualization.es451.js +19 -23
- package/dist/visualization.es451.js.map +1 -1
- package/dist/visualization.es452.js +22 -12
- package/dist/visualization.es452.js.map +1 -1
- package/dist/visualization.es453.js +12 -3
- package/dist/visualization.es453.js.map +1 -1
- package/dist/visualization.es454.js +51 -2
- package/dist/visualization.es454.js.map +1 -1
- package/dist/visualization.es455.js +16 -16
- package/dist/visualization.es455.js.map +1 -1
- package/dist/visualization.es456.js +35 -3
- package/dist/visualization.es456.js.map +1 -1
- package/dist/visualization.es457.js +22 -11
- package/dist/visualization.es457.js.map +1 -1
- package/dist/visualization.es458.js +32 -11
- package/dist/visualization.es458.js.map +1 -1
- package/dist/visualization.es459.js +3 -6
- package/dist/visualization.es459.js.map +1 -1
- package/dist/visualization.es46.js +32 -27
- package/dist/visualization.es46.js.map +1 -1
- package/dist/visualization.es460.js +18 -18
- package/dist/visualization.es460.js.map +1 -1
- package/dist/visualization.es461.js +14 -23
- package/dist/visualization.es461.js.map +1 -1
- package/dist/visualization.es462.js +10 -11
- package/dist/visualization.es462.js.map +1 -1
- package/dist/visualization.es463.js +26 -47
- package/dist/visualization.es463.js.map +1 -1
- package/dist/visualization.es464.js +6 -18
- package/dist/visualization.es464.js.map +1 -1
- package/dist/visualization.es465.js +7 -35
- package/dist/visualization.es465.js.map +1 -1
- package/dist/visualization.es466.js +2 -23
- package/dist/visualization.es466.js.map +1 -1
- package/dist/visualization.es467.js +16 -31
- package/dist/visualization.es467.js.map +1 -1
- package/dist/visualization.es468.js +8 -3
- package/dist/visualization.es468.js.map +1 -1
- package/dist/visualization.es469.js +9 -18
- package/dist/visualization.es469.js.map +1 -1
- package/dist/visualization.es47.js +169 -31
- package/dist/visualization.es47.js.map +1 -1
- package/dist/visualization.es470.js +615 -13
- package/dist/visualization.es470.js.map +1 -1
- package/dist/visualization.es471.js +50 -10
- package/dist/visualization.es471.js.map +1 -1
- package/dist/visualization.es472.js +13 -30
- package/dist/visualization.es472.js.map +1 -1
- package/dist/visualization.es473.js +11 -6
- package/dist/visualization.es473.js.map +1 -1
- package/dist/visualization.es474.js +23 -8
- package/dist/visualization.es474.js.map +1 -1
- package/dist/visualization.es475.js +35 -2
- package/dist/visualization.es475.js.map +1 -1
- package/dist/visualization.es476.js +12 -16
- package/dist/visualization.es476.js.map +1 -1
- package/dist/visualization.es477.js +17 -7
- package/dist/visualization.es477.js.map +1 -1
- package/dist/visualization.es478.js +25 -9
- package/dist/visualization.es478.js.map +1 -1
- package/dist/visualization.es479.js +23 -612
- package/dist/visualization.es479.js.map +1 -1
- package/dist/visualization.es48.js +63 -38
- package/dist/visualization.es48.js.map +1 -1
- package/dist/visualization.es480.js +40 -48
- package/dist/visualization.es480.js.map +1 -1
- package/dist/visualization.es481.js +20 -13
- package/dist/visualization.es481.js.map +1 -1
- package/dist/visualization.es482.js +41 -11
- package/dist/visualization.es482.js.map +1 -1
- package/dist/visualization.es483.js +58 -23
- package/dist/visualization.es483.js.map +1 -1
- package/dist/visualization.es484.js +3 -34
- package/dist/visualization.es484.js.map +1 -1
- package/dist/visualization.es485.js +3 -13
- package/dist/visualization.es485.js.map +1 -1
- package/dist/visualization.es486.js +7 -19
- package/dist/visualization.es486.js.map +1 -1
- package/dist/visualization.es487.js +15 -25
- package/dist/visualization.es487.js.map +1 -1
- package/dist/visualization.es488.js +2 -27
- package/dist/visualization.es488.js.map +1 -1
- package/dist/visualization.es489.js +2 -43
- package/dist/visualization.es489.js.map +1 -1
- package/dist/visualization.es49.js +172 -78
- package/dist/visualization.es49.js.map +1 -1
- package/dist/visualization.es490.js +2 -20
- package/dist/visualization.es490.js.map +1 -1
- package/dist/visualization.es491.js +50 -37
- package/dist/visualization.es491.js.map +1 -1
- package/dist/visualization.es492.js +28 -54
- package/dist/visualization.es492.js.map +1 -1
- package/dist/visualization.es493.js +33 -3
- package/dist/visualization.es493.js.map +1 -1
- package/dist/visualization.es494.js +13 -3
- package/dist/visualization.es494.js.map +1 -1
- package/dist/visualization.es495.js +7 -7
- package/dist/visualization.es495.js.map +1 -1
- package/dist/visualization.es496.js +33 -14
- package/dist/visualization.es496.js.map +1 -1
- package/dist/visualization.es497.js +4 -2
- package/dist/visualization.es497.js.map +1 -1
- package/dist/visualization.es498.js +4 -2
- package/dist/visualization.es498.js.map +1 -1
- package/dist/visualization.es499.js +7 -2
- package/dist/visualization.es499.js.map +1 -1
- package/dist/visualization.es5.js +113 -310
- package/dist/visualization.es5.js.map +1 -1
- package/dist/visualization.es50.js +74 -46
- package/dist/visualization.es50.js.map +1 -1
- package/dist/visualization.es500.js +12 -61
- package/dist/visualization.es500.js.map +1 -1
- package/dist/visualization.es501.js +2 -238
- package/dist/visualization.es501.js.map +1 -1
- package/dist/visualization.es502.js +3 -992
- package/dist/visualization.es502.js.map +1 -1
- package/dist/visualization.es503.js +4 -29
- package/dist/visualization.es503.js.map +1 -1
- package/dist/visualization.es504.js +10 -119
- package/dist/visualization.es504.js.map +1 -1
- package/dist/visualization.es505.js +24 -28
- package/dist/visualization.es505.js.map +1 -1
- package/dist/visualization.es506.js +2 -8
- package/dist/visualization.es506.js.map +1 -1
- package/dist/visualization.es507.js +32 -13
- package/dist/visualization.es507.js.map +1 -1
- package/dist/visualization.es508.js +237 -32
- package/dist/visualization.es508.js.map +1 -1
- package/dist/visualization.es509.js +988 -24
- package/dist/visualization.es509.js.map +1 -1
- package/dist/visualization.es51.js +47 -55
- package/dist/visualization.es51.js.map +1 -1
- package/dist/visualization.es510.js +60 -9
- package/dist/visualization.es510.js.map +1 -1
- package/dist/visualization.es511.js +29 -13
- package/dist/visualization.es511.js.map +1 -1
- package/dist/visualization.es512.js +118 -16
- package/dist/visualization.es512.js.map +1 -1
- package/dist/visualization.es513.js +28 -22
- package/dist/visualization.es513.js.map +1 -1
- package/dist/visualization.es514.js +10 -16
- package/dist/visualization.es514.js.map +1 -1
- package/dist/visualization.es515.js +13 -96
- package/dist/visualization.es515.js.map +1 -1
- package/dist/visualization.es516.js +31 -27
- package/dist/visualization.es516.js.map +1 -1
- package/dist/visualization.es517.js +26 -69
- package/dist/visualization.es517.js.map +1 -1
- package/dist/visualization.es518.js +9 -50
- package/dist/visualization.es518.js.map +1 -1
- package/dist/visualization.es519.js +12 -34
- package/dist/visualization.es519.js.map +1 -1
- package/dist/visualization.es52.js +33 -6
- package/dist/visualization.es52.js.map +1 -1
- package/dist/visualization.es520.js +15 -39
- package/dist/visualization.es520.js.map +1 -1
- package/dist/visualization.es521.js +23 -33
- package/dist/visualization.es521.js.map +1 -1
- package/dist/visualization.es522.js +16 -29
- package/dist/visualization.es522.js.map +1 -1
- package/dist/visualization.es523.js +94 -31
- package/dist/visualization.es523.js.map +1 -1
- package/dist/visualization.es524.js +29 -25
- package/dist/visualization.es524.js.map +1 -1
- package/dist/visualization.es525.js +70 -44
- package/dist/visualization.es525.js.map +1 -1
- package/dist/visualization.es526.js +52 -9
- package/dist/visualization.es526.js.map +1 -1
- package/dist/visualization.es527.js +35 -15
- package/dist/visualization.es527.js.map +1 -1
- package/dist/visualization.es528.js +42 -16
- package/dist/visualization.es528.js.map +1 -1
- package/dist/visualization.es529.js +34 -16
- package/dist/visualization.es529.js.map +1 -1
- package/dist/visualization.es53.js +7 -12
- package/dist/visualization.es53.js.map +1 -1
- package/dist/visualization.es530.js +24 -23
- package/dist/visualization.es530.js.map +1 -1
- package/dist/visualization.es531.js +45 -5
- package/dist/visualization.es531.js.map +1 -1
- package/dist/visualization.es532.js +9 -11
- package/dist/visualization.es532.js.map +1 -1
- package/dist/visualization.es533.js +15 -14
- package/dist/visualization.es533.js.map +1 -1
- package/dist/visualization.es534.js +16 -8
- package/dist/visualization.es534.js.map +1 -1
- package/dist/visualization.es535.js +16 -8
- package/dist/visualization.es535.js.map +1 -1
- package/dist/visualization.es536.js +24 -20
- package/dist/visualization.es536.js.map +1 -1
- package/dist/visualization.es537.js +5 -62
- package/dist/visualization.es537.js.map +1 -1
- package/dist/visualization.es538.js +34 -28
- package/dist/visualization.es538.js.map +1 -1
- package/dist/visualization.es539.js +30 -5
- package/dist/visualization.es539.js.map +1 -1
- package/dist/visualization.es54.js +7 -57
- package/dist/visualization.es54.js.map +1 -1
- package/dist/visualization.es540.js +10 -3
- package/dist/visualization.es540.js.map +1 -1
- package/dist/visualization.es541.js +14 -2
- package/dist/visualization.es541.js.map +1 -1
- package/dist/visualization.es542.js +8 -19
- package/dist/visualization.es542.js.map +1 -1
- package/dist/visualization.es543.js +8 -282
- package/dist/visualization.es543.js.map +1 -1
- package/dist/visualization.es544.js +20 -2
- package/dist/visualization.es544.js.map +1 -1
- package/dist/visualization.es545.js +60 -125
- package/dist/visualization.es545.js.map +1 -1
- package/dist/visualization.es546.js +28 -4
- package/dist/visualization.es546.js.map +1 -1
- package/dist/visualization.es547.js +5 -4
- package/dist/visualization.es547.js.map +1 -1
- package/dist/visualization.es548.js +3 -15
- package/dist/visualization.es548.js.map +1 -1
- package/dist/visualization.es549.js +2 -4
- package/dist/visualization.es549.js.map +1 -1
- package/dist/visualization.es55.js +34 -65
- package/dist/visualization.es55.js.map +1 -1
- package/dist/visualization.es550.js +17 -8
- package/dist/visualization.es550.js.map +1 -1
- package/dist/visualization.es551.js +281 -4
- package/dist/visualization.es551.js.map +1 -1
- package/dist/visualization.es552.js +2 -6
- package/dist/visualization.es552.js.map +1 -1
- package/dist/visualization.es553.js +126 -8
- package/dist/visualization.es553.js.map +1 -1
- package/dist/visualization.es554.js +3 -7
- package/dist/visualization.es554.js.map +1 -1
- package/dist/visualization.es555.js +3 -4
- package/dist/visualization.es555.js.map +1 -1
- package/dist/visualization.es556.js +15 -3
- package/dist/visualization.es556.js.map +1 -1
- package/dist/visualization.es557.js +4 -4
- package/dist/visualization.es557.js.map +1 -1
- package/dist/visualization.es558.js +9 -11
- package/dist/visualization.es558.js.map +1 -1
- package/dist/visualization.es559.js +4 -9
- package/dist/visualization.es559.js.map +1 -1
- package/dist/visualization.es56.js +34 -265
- package/dist/visualization.es56.js.map +1 -1
- package/dist/visualization.es560.js +5 -30
- package/dist/visualization.es560.js.map +1 -1
- package/dist/visualization.es561.js +9 -24
- package/dist/visualization.es561.js.map +1 -1
- package/dist/visualization.es562.js +7 -51
- package/dist/visualization.es562.js.map +1 -1
- package/dist/visualization.es563.js +4 -3
- package/dist/visualization.es563.js.map +1 -1
- package/dist/visualization.es564.js +3 -8
- package/dist/visualization.es564.js.map +1 -1
- package/dist/visualization.es565.js +4 -21
- package/dist/visualization.es565.js.map +1 -1
- package/dist/visualization.es566.js +11 -7
- package/dist/visualization.es566.js.map +1 -1
- package/dist/visualization.es567.js +9 -6
- package/dist/visualization.es567.js.map +1 -1
- package/dist/visualization.es568.js +30 -5
- package/dist/visualization.es568.js.map +1 -1
- package/dist/visualization.es569.js +24 -7
- package/dist/visualization.es569.js.map +1 -1
- package/dist/visualization.es57.js +26 -100
- package/dist/visualization.es57.js.map +1 -1
- package/dist/visualization.es570.js +51 -15
- package/dist/visualization.es570.js.map +1 -1
- package/dist/visualization.es571.js +3 -4
- package/dist/visualization.es571.js.map +1 -1
- package/dist/visualization.es572.js +8 -6
- package/dist/visualization.es572.js.map +1 -1
- package/dist/visualization.es573.js +20 -34
- package/dist/visualization.es573.js.map +1 -1
- package/dist/visualization.es574.js +7 -8
- package/dist/visualization.es574.js.map +1 -1
- package/dist/visualization.es575.js +6 -9
- package/dist/visualization.es575.js.map +1 -1
- package/dist/visualization.es576.js +5 -9
- package/dist/visualization.es576.js.map +1 -1
- package/dist/visualization.es577.js +7 -18
- package/dist/visualization.es577.js.map +1 -1
- package/dist/visualization.es578.js +15 -7
- package/dist/visualization.es578.js.map +1 -1
- package/dist/visualization.es579.js +4 -7
- package/dist/visualization.es579.js.map +1 -1
- package/dist/visualization.es58.js +65 -28
- package/dist/visualization.es58.js.map +1 -1
- package/dist/visualization.es580.js +6 -32
- package/dist/visualization.es580.js.map +1 -1
- package/dist/visualization.es581.js +34 -13
- package/dist/visualization.es581.js.map +1 -1
- package/dist/visualization.es582.js +8 -72
- package/dist/visualization.es582.js.map +1 -1
- package/dist/visualization.es583.js +9 -29
- package/dist/visualization.es583.js.map +1 -1
- package/dist/visualization.es584.js +9 -5
- package/dist/visualization.es584.js.map +1 -1
- package/dist/visualization.es585.js +17 -24
- package/dist/visualization.es585.js.map +1 -1
- package/dist/visualization.es586.js +7 -11
- package/dist/visualization.es586.js.map +1 -1
- package/dist/visualization.es587.js +7 -4
- package/dist/visualization.es587.js.map +1 -1
- package/dist/visualization.es588.js +32 -4
- package/dist/visualization.es588.js.map +1 -1
- package/dist/visualization.es589.js +13 -4
- package/dist/visualization.es589.js.map +1 -1
- package/dist/visualization.es59.js +61 -22
- package/dist/visualization.es59.js.map +1 -1
- package/dist/visualization.es590.js +72 -12
- package/dist/visualization.es590.js.map +1 -1
- package/dist/visualization.es591.js +28 -16
- package/dist/visualization.es591.js.map +1 -1
- package/dist/visualization.es592.js +5 -13
- package/dist/visualization.es592.js.map +1 -1
- package/dist/visualization.es593.js +25 -13
- package/dist/visualization.es593.js.map +1 -1
- package/dist/visualization.es594.js +11 -8
- package/dist/visualization.es594.js.map +1 -1
- package/dist/visualization.es595.js +4 -12
- package/dist/visualization.es595.js.map +1 -1
- package/dist/visualization.es596.js +4 -24
- package/dist/visualization.es596.js.map +1 -1
- package/dist/visualization.es597.js +4 -19
- package/dist/visualization.es597.js.map +1 -1
- package/dist/visualization.es598.js +13 -7
- package/dist/visualization.es598.js.map +1 -1
- package/dist/visualization.es599.js +18 -6
- package/dist/visualization.es599.js.map +1 -1
- package/dist/visualization.es6.js +15 -15
- package/dist/visualization.es60.js +4 -18
- package/dist/visualization.es60.js.map +1 -1
- package/dist/visualization.es600.js +13 -3
- package/dist/visualization.es600.js.map +1 -1
- package/dist/visualization.es601.js +12 -63
- package/dist/visualization.es601.js.map +1 -1
- package/dist/visualization.es602.js +8 -32
- package/dist/visualization.es602.js.map +1 -1
- package/dist/visualization.es603.js +12 -4
- package/dist/visualization.es603.js.map +1 -1
- package/dist/visualization.es604.js +24 -8
- package/dist/visualization.es604.js.map +1 -1
- package/dist/visualization.es605.js +19 -6
- package/dist/visualization.es605.js.map +1 -1
- package/dist/visualization.es606.js +7 -291
- package/dist/visualization.es606.js.map +1 -1
- package/dist/visualization.es607.js +6 -19
- package/dist/visualization.es607.js.map +1 -1
- package/dist/visualization.es608.js +3 -14
- package/dist/visualization.es608.js.map +1 -1
- package/dist/visualization.es609.js +64 -3
- package/dist/visualization.es609.js.map +1 -1
- package/dist/visualization.es61.js +46 -20
- package/dist/visualization.es61.js.map +1 -1
- package/dist/visualization.es610.js +31 -10
- package/dist/visualization.es610.js.map +1 -1
- package/dist/visualization.es611.js +4 -5
- package/dist/visualization.es611.js.map +1 -1
- package/dist/visualization.es612.js +8 -3
- package/dist/visualization.es612.js.map +1 -1
- package/dist/visualization.es613.js +5 -4
- package/dist/visualization.es613.js.map +1 -1
- package/dist/visualization.es614.js +18 -13
- package/dist/visualization.es614.js.map +1 -1
- package/dist/visualization.es615.js +13 -116
- package/dist/visualization.es615.js.map +1 -1
- package/dist/visualization.es616.js +285 -60
- package/dist/visualization.es616.js.map +1 -1
- package/dist/visualization.es617.js +3 -4
- package/dist/visualization.es617.js.map +1 -1
- package/dist/visualization.es618.js +11 -7
- package/dist/visualization.es618.js.map +1 -1
- package/dist/visualization.es619.js +3 -7
- package/dist/visualization.es619.js.map +1 -1
- package/dist/visualization.es62.js +4 -70
- package/dist/visualization.es62.js.map +1 -1
- package/dist/visualization.es620.js +5 -16
- package/dist/visualization.es620.js.map +1 -1
- package/dist/visualization.es621.js +6 -19
- package/dist/visualization.es621.js.map +1 -1
- package/dist/visualization.es622.js +13 -9
- package/dist/visualization.es622.js.map +1 -1
- package/dist/visualization.es623.js +117 -3
- package/dist/visualization.es623.js.map +1 -1
- package/dist/visualization.es624.js +64 -27
- package/dist/visualization.es624.js.map +1 -1
- package/dist/visualization.es625.js +5 -6
- package/dist/visualization.es625.js.map +1 -1
- package/dist/visualization.es626.js +6 -9
- package/dist/visualization.es626.js.map +1 -1
- package/dist/visualization.es627.js +6 -5
- package/dist/visualization.es627.js.map +1 -1
- package/dist/visualization.es628.js +16 -11
- package/dist/visualization.es628.js.map +1 -1
- package/dist/visualization.es629.js +19 -22
- package/dist/visualization.es629.js.map +1 -1
- package/dist/visualization.es63.js +278 -75
- package/dist/visualization.es63.js.map +1 -1
- package/dist/visualization.es630.js +10 -2
- package/dist/visualization.es630.js.map +1 -1
- package/dist/visualization.es631.js +3 -12
- package/dist/visualization.es631.js.map +1 -1
- package/dist/visualization.es632.js +27 -301
- package/dist/visualization.es632.js.map +1 -1
- package/dist/visualization.es633.js +6 -27
- package/dist/visualization.es633.js.map +1 -1
- package/dist/visualization.es634.js +10 -77
- package/dist/visualization.es634.js.map +1 -1
- package/dist/visualization.es635.js +6 -34
- package/dist/visualization.es635.js.map +1 -1
- package/dist/visualization.es636.js +11 -12
- package/dist/visualization.es636.js.map +1 -1
- package/dist/visualization.es637.js +21 -7
- package/dist/visualization.es637.js.map +1 -1
- package/dist/visualization.es638.js +2 -10
- package/dist/visualization.es638.js.map +1 -1
- package/dist/visualization.es639.js +13 -3
- package/dist/visualization.es639.js.map +1 -1
- package/dist/visualization.es64.js +18 -10
- package/dist/visualization.es64.js.map +1 -1
- package/dist/visualization.es640.js +306 -0
- package/dist/visualization.es640.js.map +1 -0
- package/dist/visualization.es641.js +30 -0
- package/dist/visualization.es641.js.map +1 -0
- package/dist/visualization.es642.js +81 -0
- package/dist/visualization.es642.js.map +1 -0
- package/dist/visualization.es643.js +38 -0
- package/dist/visualization.es643.js.map +1 -0
- package/dist/visualization.es644.js +16 -0
- package/dist/visualization.es644.js.map +1 -0
- package/dist/visualization.es645.js +11 -0
- package/dist/visualization.es645.js.map +1 -0
- package/dist/visualization.es646.js +13 -0
- package/dist/visualization.es646.js.map +1 -0
- package/dist/visualization.es647.js +6 -0
- package/dist/visualization.es647.js.map +1 -0
- package/dist/visualization.es65.js +18700 -56
- package/dist/visualization.es65.js.map +1 -1
- package/dist/visualization.es66.js +5 -47
- package/dist/visualization.es66.js.map +1 -1
- package/dist/visualization.es67.js +5 -45
- package/dist/visualization.es67.js.map +1 -1
- package/dist/visualization.es68.js +58 -19
- package/dist/visualization.es68.js.map +1 -1
- package/dist/visualization.es69.js +801 -106
- package/dist/visualization.es69.js.map +1 -1
- package/dist/visualization.es7.js +11 -11
- package/dist/visualization.es71.js +130 -34
- package/dist/visualization.es71.js.map +1 -1
- package/dist/visualization.es72.js +65 -54
- package/dist/visualization.es72.js.map +1 -1
- package/dist/visualization.es73.js +259 -18695
- package/dist/visualization.es73.js.map +1 -1
- package/dist/visualization.es74.js +103 -5
- package/dist/visualization.es74.js.map +1 -1
- package/dist/visualization.es75.js +27 -5
- package/dist/visualization.es75.js.map +1 -1
- package/dist/visualization.es76.js +22 -59
- package/dist/visualization.es76.js.map +1 -1
- package/dist/visualization.es77.js +17 -810
- package/dist/visualization.es77.js.map +1 -1
- package/dist/visualization.es78.js +24 -0
- package/dist/visualization.es78.js.map +1 -0
- package/dist/visualization.es79.js +72 -129
- package/dist/visualization.es79.js.map +1 -1
- package/dist/visualization.es8.js +13 -13
- package/dist/visualization.es80.js +81 -29
- package/dist/visualization.es80.js.map +1 -1
- package/dist/visualization.es81.js +66 -64
- package/dist/visualization.es81.js.map +1 -1
- package/dist/visualization.es82.js +38 -60
- package/dist/visualization.es82.js.map +1 -1
- package/dist/visualization.es83.js +80 -3
- package/dist/visualization.es83.js.map +1 -1
- package/dist/visualization.es84.js +46 -47
- package/dist/visualization.es84.js.map +1 -1
- package/dist/visualization.es85.js +55 -3
- package/dist/visualization.es85.js.map +1 -1
- package/dist/visualization.es86.js +6 -281
- package/dist/visualization.es86.js.map +1 -1
- package/dist/visualization.es87.js +11 -17
- package/dist/visualization.es87.js.map +1 -1
- package/dist/visualization.es88.js +56 -62
- package/dist/visualization.es88.js.map +1 -1
- package/dist/visualization.es89.js +113 -8
- package/dist/visualization.es89.js.map +1 -1
- package/dist/visualization.es9.js +1 -1
- package/dist/visualization.es90.js +5 -8
- package/dist/visualization.es90.js.map +1 -1
- package/dist/visualization.es91.js +5 -13
- package/dist/visualization.es91.js.map +1 -1
- package/dist/visualization.es92.js +5 -74
- package/dist/visualization.es92.js.map +1 -1
- package/dist/visualization.es93.js +14 -32
- package/dist/visualization.es93.js.map +1 -1
- package/dist/visualization.es94.js +14 -12
- package/dist/visualization.es94.js.map +1 -1
- package/dist/visualization.es95.js +26 -5
- package/dist/visualization.es95.js.map +1 -1
- package/dist/visualization.es96.js +70 -5
- package/dist/visualization.es96.js.map +1 -1
- package/dist/visualization.es97.js +45 -5
- package/dist/visualization.es97.js.map +1 -1
- package/dist/visualization.es98.js +20 -13
- package/dist/visualization.es98.js.map +1 -1
- package/dist/visualization.es99.js +60 -15
- package/dist/visualization.es99.js.map +1 -1
- package/package.json +1 -1
- package/dist/src/components/Heatmap/HeatmapMiniMap.d.ts.map +0 -1
- package/dist/visualization.es70.js +0 -101
- package/dist/visualization.es70.js.map +0 -1
|
@@ -1,319 +1,122 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
height: ue,
|
|
44
|
-
xLabelOrientation: C = "vertical",
|
|
45
|
-
selectedCells: L,
|
|
46
|
-
deselectedColor: ft,
|
|
47
|
-
cellWidth: Pt,
|
|
48
|
-
cellHeight: Mt,
|
|
49
|
-
scrollToSelection: Lt,
|
|
50
|
-
showMiniMap: It = !1
|
|
51
|
-
}) => {
|
|
1
|
+
import { jsx as K } from "react/jsx-runtime";
|
|
2
|
+
import { c as re } from "react/compiler-runtime";
|
|
3
|
+
import { useRef as te, useImperativeHandle as ce } from "react";
|
|
4
|
+
import { downloadSVGAsPNG as oe, downloadAsSVG as le } from "./visualization.es31.js";
|
|
5
|
+
import { makeTickFormat as ie, getXAxisTickLabelProps as me } from "./visualization.es46.js";
|
|
6
|
+
import { useHeatmapLayout as pe } from "./visualization.es47.js";
|
|
7
|
+
import { withOffscreenExportSVG as ne } from "./visualization.es48.js";
|
|
8
|
+
import de from "./visualization.es49.js";
|
|
9
|
+
import fe from "./visualization.es50.js";
|
|
10
|
+
import { useResponsiveParentSize as ue } from "./visualization.es18.js";
|
|
11
|
+
import { ResponsiveContainer as ge } from "./visualization.es14.js";
|
|
12
|
+
const He = (se) => {
|
|
13
|
+
const e = re(71), {
|
|
14
|
+
data: t,
|
|
15
|
+
onClick: c,
|
|
16
|
+
ref: ae,
|
|
17
|
+
downloadFileName: v,
|
|
18
|
+
colors: O,
|
|
19
|
+
colorDomain: V,
|
|
20
|
+
xLabel: m,
|
|
21
|
+
yLabel: p,
|
|
22
|
+
tooltipBody: L,
|
|
23
|
+
margin: E,
|
|
24
|
+
gap: Q,
|
|
25
|
+
isRect: U,
|
|
26
|
+
animationType: w,
|
|
27
|
+
showLegend: Y,
|
|
28
|
+
width: W,
|
|
29
|
+
height: j,
|
|
30
|
+
xLabelOrientation: Z,
|
|
31
|
+
selectedCells: o,
|
|
32
|
+
deselectedColor: n,
|
|
33
|
+
cellWidth: k,
|
|
34
|
+
cellHeight: y,
|
|
35
|
+
scrollToSelection: z,
|
|
36
|
+
showMiniMap: _
|
|
37
|
+
} = se, s = Q === void 0 ? 2 : Q, a = U === void 0 ? !0 : U, l = Y === void 0 ? !0 : Y, x = Z === void 0 ? "vertical" : Z, S = _ === void 0 ? !1 : _;
|
|
38
|
+
let G;
|
|
39
|
+
e[0] !== j || e[1] !== W ? (G = {
|
|
40
|
+
width: W,
|
|
41
|
+
height: j
|
|
42
|
+
}, e[0] = j, e[1] = W, e[2] = G) : G = e[2];
|
|
52
43
|
const {
|
|
53
|
-
parentRef:
|
|
54
|
-
containerStyle:
|
|
55
|
-
width:
|
|
56
|
-
height:
|
|
57
|
-
} =
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
S.column < a && (a = S.column), S.column > v && (v = S.column), S.row < k && (k = S.row), S.row > z && (z = S.row);
|
|
113
|
-
const x = a * V, Y = (v + 1) * V, B = s - (z + 1) * N, H = s - k * N, m = he(h.scrollLeft, c, x, Y), Ot = he(h.scrollTop, l, B, H);
|
|
114
|
-
(m !== h.scrollLeft || Ot !== h.scrollTop) && h.scrollTo({
|
|
115
|
-
left: m,
|
|
116
|
-
top: Ot,
|
|
117
|
-
behavior: "smooth"
|
|
118
|
-
});
|
|
119
|
-
}, [L, Lt, u, V, N, s, c, l]);
|
|
120
|
-
const Re = D(() => {
|
|
121
|
-
const t = I.current;
|
|
122
|
-
t && q.current == null && (q.current = requestAnimationFrame(() => {
|
|
123
|
-
q.current = null, E(), Ce({
|
|
124
|
-
left: t.scrollLeft,
|
|
125
|
-
top: t.scrollTop
|
|
126
|
-
});
|
|
127
|
-
}));
|
|
128
|
-
}, [E]), _e = D((t, e) => {
|
|
129
|
-
I.current?.scrollTo({
|
|
130
|
-
left: t,
|
|
131
|
-
top: e
|
|
132
|
-
});
|
|
133
|
-
}, []), Ee = D((t) => {
|
|
134
|
-
const e = I.current;
|
|
135
|
-
if (!e) return;
|
|
136
|
-
const i = t.nativeEvent.offsetX + e.scrollLeft, h = t.nativeEvent.offsetY + e.scrollTop, a = te(p, i, h);
|
|
137
|
-
t.currentTarget.style.cursor = a ? "pointer" : "default";
|
|
138
|
-
const v = j.current;
|
|
139
|
-
if ((v?.row !== a?.row || v?.column !== a?.column) && (j.current = a, E()), a) {
|
|
140
|
-
const k = ee(p, a);
|
|
141
|
-
k && nt.current?.show(k, t);
|
|
142
|
-
} else
|
|
143
|
-
nt.current?.hide();
|
|
144
|
-
}, [p, E]), Pe = D((t) => {
|
|
145
|
-
t.currentTarget.style.cursor = "default", j.current && (j.current = null, E()), nt.current?.hide();
|
|
146
|
-
}, [E]), Me = D((t) => {
|
|
147
|
-
const e = I.current;
|
|
148
|
-
if (!e || !g) return;
|
|
149
|
-
const i = t.nativeEvent.offsetX + e.scrollLeft, h = t.nativeEvent.offsetY + e.scrollTop, a = te(p, i, h);
|
|
150
|
-
if (!a) return;
|
|
151
|
-
const v = ee(p, a);
|
|
152
|
-
v && g(v);
|
|
153
|
-
}, [p, g]), Le = () => {
|
|
154
|
-
const t = document.createElementNS(kt, "svg");
|
|
155
|
-
t.setAttribute("width", String(r.left + d + r.right)), t.setAttribute("height", String(r.top + s + r.bottom));
|
|
156
|
-
const e = (x, Y, B) => {
|
|
157
|
-
const H = document.createElementNS(kt, "g");
|
|
158
|
-
H.setAttribute("transform", `translate(${Y},${B})`), x.childNodes.forEach((m) => H.appendChild(m.cloneNode(!0))), t.appendChild(H);
|
|
159
|
-
};
|
|
160
|
-
let i = null, h = null, a = null;
|
|
161
|
-
const v = document.createElement("div"), k = Ge(v);
|
|
162
|
-
De(() => {
|
|
163
|
-
k.render(/* @__PURE__ */ G(Ve, { children: [
|
|
164
|
-
/* @__PURE__ */ o("svg", { width: d, height: s, ref: (x) => {
|
|
165
|
-
i = x;
|
|
166
|
-
}, children: /* @__PURE__ */ o(Ut, { data: n, xScale: F, yScale: rt, colors: W, maxValue: R, gap: et, isRect: ot, binWidth: V, binHeight: N, animationType: Et, onClick: g, selectedCells: L, deselectedColor: ft }) }),
|
|
167
|
-
/* @__PURE__ */ o("svg", { width: _, height: s, ref: (x) => {
|
|
168
|
-
h = x;
|
|
169
|
-
}, children: /* @__PURE__ */ o("g", { transform: `translate(${_},0)`, children: /* @__PURE__ */ o(Ct, { scale: Q, numTicks: T, tickValues: st, tickFormat: Tt, tickLabelProps: yt }) }) }),
|
|
170
|
-
/* @__PURE__ */ o("svg", { width: d, height: $, ref: (x) => {
|
|
171
|
-
a = x;
|
|
172
|
-
}, children: /* @__PURE__ */ o(bt, { top: 0, scale: F, numTicks: n.length, tickFormat: xt, tickValues: lt, tickLabelProps: wt }) })
|
|
173
|
-
] }));
|
|
174
|
-
}), i && e(i, r.left, r.top), h && e(h, y, r.top), a && e(a, r.left, r.top + s), k.unmount(), K && dt.current && e(dt.current, r.left + d + U, r.top);
|
|
175
|
-
const z = (x, Y, B, H) => {
|
|
176
|
-
const m = document.createElementNS(kt, "text");
|
|
177
|
-
m.setAttribute("x", String(Y)), m.setAttribute("y", String(B)), H && m.setAttribute("transform", `rotate(-90, ${Y}, ${B})`), m.setAttribute("text-anchor", "middle"), m.setAttribute("dominant-baseline", "middle"), m.setAttribute("font-size", "14"), m.setAttribute("font-family", "sans-serif"), m.textContent = x, t.appendChild(m);
|
|
178
|
-
};
|
|
179
|
-
return tt && z(tt, y / 2, r.top + s / 2, !0), J && z(J, r.left + d / 2, r.top + s + $ + X / 2, !1), t;
|
|
180
|
-
}, Kt = (t) => {
|
|
181
|
-
const e = Le();
|
|
182
|
-
if (!e) return;
|
|
183
|
-
const i = document.createElement("div");
|
|
184
|
-
i.style.position = "absolute", i.style.top = "0", i.style.left = "-99999px", i.appendChild(e), document.body.appendChild(i), t(e, () => {
|
|
185
|
-
i.parentNode && document.body.removeChild(i);
|
|
186
|
-
});
|
|
187
|
-
};
|
|
188
|
-
He(A, () => ({
|
|
44
|
+
parentRef: B,
|
|
45
|
+
containerStyle: D,
|
|
46
|
+
width: d,
|
|
47
|
+
height: f
|
|
48
|
+
} = ue(G), b = te(null), ee = te(null), i = k != null && y != null;
|
|
49
|
+
let H;
|
|
50
|
+
e[3] !== y || e[4] !== k || e[5] !== V || e[6] !== O || e[7] !== t || e[8] !== n || e[9] !== s || e[10] !== a || e[11] !== i || e[12] !== E || e[13] !== f || e[14] !== d || e[15] !== o || e[16] !== l || e[17] !== S || e[18] !== x ? (H = {
|
|
51
|
+
data: t,
|
|
52
|
+
colorDomain: V,
|
|
53
|
+
colors: O,
|
|
54
|
+
xLabelOrientation: x,
|
|
55
|
+
margin: E,
|
|
56
|
+
showLegend: l,
|
|
57
|
+
isScrollable: i,
|
|
58
|
+
cellWidth: k,
|
|
59
|
+
cellHeight: y,
|
|
60
|
+
parentWidth: d,
|
|
61
|
+
parentHeight: f,
|
|
62
|
+
showMiniMap: S,
|
|
63
|
+
gap: s,
|
|
64
|
+
isRect: a,
|
|
65
|
+
selectedCells: o,
|
|
66
|
+
deselectedColor: n
|
|
67
|
+
}, e[3] = y, e[4] = k, e[5] = V, e[6] = O, e[7] = t, e[8] = n, e[9] = s, e[10] = a, e[11] = i, e[12] = E, e[13] = f, e[14] = d, e[15] = o, e[16] = l, e[17] = S, e[18] = x, e[19] = H) : H = e[19];
|
|
68
|
+
const r = pe(H), {
|
|
69
|
+
allColNames: I,
|
|
70
|
+
allRowNames: X,
|
|
71
|
+
numRows: $
|
|
72
|
+
} = r;
|
|
73
|
+
let T;
|
|
74
|
+
e[20] !== I ? (T = ie(I), e[20] = I, e[21] = T) : T = e[21];
|
|
75
|
+
const u = T;
|
|
76
|
+
let A;
|
|
77
|
+
e[22] !== X ? (A = ie(X), e[22] = X, e[23] = A) : A = e[23];
|
|
78
|
+
const g = A;
|
|
79
|
+
let C;
|
|
80
|
+
e[24] !== x ? (C = me(x), e[24] = x, e[25] = C) : C = e[25];
|
|
81
|
+
const h = C;
|
|
82
|
+
let N;
|
|
83
|
+
e[26] !== w || e[27] !== t || e[28] !== n || e[29] !== s || e[30] !== a || e[31] !== r || e[32] !== c || e[33] !== o || e[34] !== l || e[35] !== u || e[36] !== h || e[37] !== m || e[38] !== g || e[39] !== p ? (N = () => ({
|
|
84
|
+
layout: r,
|
|
85
|
+
data: t,
|
|
86
|
+
gap: s,
|
|
87
|
+
isRect: a,
|
|
88
|
+
animationType: w,
|
|
89
|
+
onClick: c,
|
|
90
|
+
selectedCells: o,
|
|
91
|
+
deselectedColor: n,
|
|
92
|
+
xLabel: m,
|
|
93
|
+
yLabel: p,
|
|
94
|
+
showLegend: l,
|
|
95
|
+
legendSvg: ee.current,
|
|
96
|
+
xAxisTickFormat: u,
|
|
97
|
+
yAxisTickFormat: g,
|
|
98
|
+
xAxisTickLabelProps: h
|
|
99
|
+
}), e[26] = w, e[27] = t, e[28] = n, e[29] = s, e[30] = a, e[31] = r, e[32] = c, e[33] = o, e[34] = l, e[35] = u, e[36] = h, e[37] = m, e[38] = g, e[39] = p, e[40] = N) : N = e[40];
|
|
100
|
+
const P = N;
|
|
101
|
+
let F;
|
|
102
|
+
e[41] !== P || e[42] !== v || e[43] !== i ? (F = () => ({
|
|
189
103
|
downloadSVG: () => {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
}) :
|
|
104
|
+
i ? ne(P(), (q, J) => {
|
|
105
|
+
le(q, v ?? "heatmap.svg"), J();
|
|
106
|
+
}) : b.current && le(b.current, v ?? "heatmap.svg");
|
|
193
107
|
},
|
|
194
108
|
downloadPNG: () => {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
}) :
|
|
109
|
+
i ? ne(P(), (q, J) => {
|
|
110
|
+
oe(q, v ?? "heatmap.png", void 0, J);
|
|
111
|
+
}) : b.current && oe(b.current, v ?? "heatmap.png");
|
|
198
112
|
}
|
|
199
|
-
}));
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
angle: xe,
|
|
205
|
-
dy: C === "horizontal" ? "0.71em" : "0.25em"
|
|
206
|
-
}), Ie = {
|
|
207
|
-
fontSize: 14,
|
|
208
|
-
fontFamily: "sans-serif",
|
|
209
|
-
textAnchor: "middle",
|
|
210
|
-
dy: "-0.5em"
|
|
211
|
-
}, Tt = (t) => pt[Math.floor(+t)] ?? "", yt = () => ({
|
|
212
|
-
fontSize: 12,
|
|
213
|
-
fontFamily: "sans-serif",
|
|
214
|
-
textAnchor: "end",
|
|
215
|
-
dx: "-0.25em",
|
|
216
|
-
dy: "0.25em"
|
|
217
|
-
}), $e = {
|
|
218
|
-
fontSize: 14,
|
|
219
|
-
fontFamily: "sans-serif",
|
|
220
|
-
textAnchor: "middle"
|
|
221
|
-
};
|
|
222
|
-
return /* @__PURE__ */ o(je, { parentRef: pe, containerStyle: ge, children: !ht || !mt || n.length === 0 || T === 0 ? null : u ? /* @__PURE__ */ G("div", { style: {
|
|
223
|
-
display: "flex",
|
|
224
|
-
flexDirection: "column"
|
|
225
|
-
}, children: [
|
|
226
|
-
It && /* @__PURE__ */ o("div", { style: {
|
|
227
|
-
marginLeft: y + _
|
|
228
|
-
}, children: /* @__PURE__ */ o(Ke, { canvasCellParams: p, xMax: d, yMax: s, viewportWidth: c, viewportHeight: l, scrollLeft: b.left, scrollTop: b.top, width: c, height: ce, onNavigate: _e }) }),
|
|
229
|
-
/* @__PURE__ */ G("div", { style: {
|
|
230
|
-
display: "grid",
|
|
231
|
-
gridTemplateColumns: K ? `${y}px ${_}px ${c}px ${U + it}px` : `${y}px ${_}px ${c}px`,
|
|
232
|
-
gridTemplateRows: `${r.top}px ${l}px ${$}px ${X}px`
|
|
233
|
-
}, children: [
|
|
234
|
-
/* @__PURE__ */ o("div", { style: {
|
|
235
|
-
gridColumn: 1,
|
|
236
|
-
gridRow: 2,
|
|
237
|
-
width: y,
|
|
238
|
-
height: l,
|
|
239
|
-
display: "flex",
|
|
240
|
-
alignItems: "center",
|
|
241
|
-
justifyContent: "center"
|
|
242
|
-
}, children: /* @__PURE__ */ o("svg", { width: y, height: l, children: /* @__PURE__ */ o("text", { x: y / 2, y: l / 2, transform: `rotate(-90, ${y / 2}, ${l / 2})`, textAnchor: "middle", dominantBaseline: "middle", fontSize: 14, fontFamily: "sans-serif", children: tt ?? "" }) }) }),
|
|
243
|
-
/* @__PURE__ */ o("div", { style: {
|
|
244
|
-
gridColumn: 2,
|
|
245
|
-
gridRow: 2,
|
|
246
|
-
width: _,
|
|
247
|
-
height: l,
|
|
248
|
-
overflow: "hidden"
|
|
249
|
-
}, children: /* @__PURE__ */ o("svg", { width: _, height: l, children: /* @__PURE__ */ o("g", { transform: `translate(${_},${-b.top})`, children: /* @__PURE__ */ o(Ct, { scale: Q, numTicks: T, tickValues: ke, tickFormat: Tt, tickLabelProps: yt }) }) }) }),
|
|
250
|
-
/* @__PURE__ */ o("div", { ref: I, onScroll: Re, style: {
|
|
251
|
-
gridColumn: 3,
|
|
252
|
-
gridRow: 2,
|
|
253
|
-
width: c,
|
|
254
|
-
height: l,
|
|
255
|
-
overflow: "auto",
|
|
256
|
-
overscrollBehavior: "contain",
|
|
257
|
-
position: "relative"
|
|
258
|
-
}, children: /* @__PURE__ */ o("div", { style: {
|
|
259
|
-
width: d,
|
|
260
|
-
height: s,
|
|
261
|
-
position: "relative"
|
|
262
|
-
}, children: /* @__PURE__ */ o("canvas", { ref: $t, width: c * (window.devicePixelRatio || 1), height: l * (window.devicePixelRatio || 1), style: {
|
|
263
|
-
width: c,
|
|
264
|
-
height: l,
|
|
265
|
-
position: "sticky",
|
|
266
|
-
top: 0,
|
|
267
|
-
left: 0,
|
|
268
|
-
display: "block",
|
|
269
|
-
cursor: "default"
|
|
270
|
-
}, onMouseMove: Ee, onMouseLeave: Pe, onClick: Me }) }) }),
|
|
271
|
-
at && /* @__PURE__ */ o(qe, { ref: nt, children: at }),
|
|
272
|
-
/* @__PURE__ */ o("div", { style: {
|
|
273
|
-
gridColumn: 3,
|
|
274
|
-
gridRow: 3,
|
|
275
|
-
width: c,
|
|
276
|
-
height: $,
|
|
277
|
-
overflow: "visible"
|
|
278
|
-
}, children: /* @__PURE__ */ G("svg", { width: c, height: $, style: {
|
|
279
|
-
overflow: "visible"
|
|
280
|
-
}, children: [
|
|
281
|
-
vt > 0 && /* @__PURE__ */ o("defs", { children: /* @__PURE__ */ G("clipPath", { id: Yt, children: [
|
|
282
|
-
/* @__PURE__ */ o("rect", { x: 0, y: 0, width: c, height: $ }),
|
|
283
|
-
/* @__PURE__ */ o("rect", { x: -Bt, y: ae, width: Bt, height: Math.max(0, $ - ae) })
|
|
284
|
-
] }) }),
|
|
285
|
-
/* @__PURE__ */ o("g", { clipPath: vt > 0 ? `url(#${Yt})` : void 0, children: /* @__PURE__ */ o("g", { transform: `translate(${-b.left},0)`, children: /* @__PURE__ */ o(bt, { top: 0, scale: F, numTicks: n.length, tickFormat: xt, tickValues: be, tickLabelProps: wt }) }) })
|
|
286
|
-
] }) }),
|
|
287
|
-
/* @__PURE__ */ o("div", { style: {
|
|
288
|
-
gridColumn: 3,
|
|
289
|
-
gridRow: 4,
|
|
290
|
-
width: c,
|
|
291
|
-
height: X,
|
|
292
|
-
display: "flex",
|
|
293
|
-
alignItems: "center",
|
|
294
|
-
justifyContent: "center"
|
|
295
|
-
}, children: /* @__PURE__ */ o("svg", { width: c, height: X, children: /* @__PURE__ */ o("text", { x: c / 2, y: X / 2, textAnchor: "middle", dominantBaseline: "middle", fontSize: 14, fontFamily: "sans-serif", children: J ?? "" }) }) }),
|
|
296
|
-
K && /* @__PURE__ */ o("div", { style: {
|
|
297
|
-
gridColumn: 4,
|
|
298
|
-
gridRow: 2,
|
|
299
|
-
width: it,
|
|
300
|
-
marginLeft: U,
|
|
301
|
-
height: l
|
|
302
|
-
}, children: /* @__PURE__ */ o("svg", { width: it, height: l, ref: dt, style: {
|
|
303
|
-
overflow: "visible"
|
|
304
|
-
}, children: /* @__PURE__ */ o(Zt, { colors: W, minValue: 0, maxValue: R, height: l }) }) })
|
|
305
|
-
] })
|
|
306
|
-
] }) : /* @__PURE__ */ G("svg", { width: ht, height: mt, ref: O, children: [
|
|
307
|
-
/* @__PURE__ */ o("style", { children: We }),
|
|
308
|
-
/* @__PURE__ */ G("g", { transform: `translate(${r.left},${r.top})`, children: [
|
|
309
|
-
/* @__PURE__ */ o(Ut, { data: n, xScale: F, yScale: rt, colors: W, maxValue: R, gap: et, isRect: ot, binWidth: V, binHeight: N, animationType: Et, tooltipBody: at, onClick: g, selectedCells: L, deselectedColor: ft }),
|
|
310
|
-
/* @__PURE__ */ o(bt, { top: s, scale: F, numTicks: n.length, tickFormat: xt, tickValues: lt, tickLabelProps: wt, label: J ?? "", labelOffset: gt + ct, labelProps: Ie }),
|
|
311
|
-
/* @__PURE__ */ o(Ct, { scale: Q, numTicks: T, tickValues: st, tickFormat: Tt, tickLabelProps: yt, label: tt ?? "", labelOffset: Nt + ct, labelProps: $e }),
|
|
312
|
-
K && /* @__PURE__ */ o("g", { transform: `translate(${d + U}, 0)`, children: /* @__PURE__ */ o(Zt, { colors: W, minValue: 0, maxValue: R, height: s }) })
|
|
313
|
-
] })
|
|
314
|
-
] }) });
|
|
113
|
+
}), e[41] = P, e[42] = v, e[43] = i, e[44] = F) : F = e[44], ce(ae, F);
|
|
114
|
+
let R;
|
|
115
|
+
e[45] !== w || e[46] !== t || e[47] !== n || e[48] !== s || e[49] !== a || e[50] !== i || e[51] !== r || e[52] !== $ || e[53] !== c || e[54] !== f || e[55] !== d || e[56] !== z || e[57] !== o || e[58] !== l || e[59] !== S || e[60] !== L || e[61] !== u || e[62] !== h || e[63] !== m || e[64] !== g || e[65] !== p ? (R = !d || !f || t.length === 0 || $ === 0 ? null : i ? /* @__PURE__ */ K(de, { legendSvgRef: ee, layout: r, data: t, showMiniMap: S, showLegend: l, xLabel: m, yLabel: p, tooltipBody: L, onClick: c, selectedCells: o, scrollToSelection: z, xAxisTickFormat: u, yAxisTickFormat: g, xAxisTickLabelProps: h }) : /* @__PURE__ */ K(fe, { svgRef: b, layout: r, parentWidth: d, parentHeight: f, data: t, gap: s, isRect: a, animationType: w, tooltipBody: L, onClick: c, selectedCells: o, deselectedColor: n, xLabel: m, yLabel: p, showLegend: l, xAxisTickFormat: u, yAxisTickFormat: g, xAxisTickLabelProps: h }), e[45] = w, e[46] = t, e[47] = n, e[48] = s, e[49] = a, e[50] = i, e[51] = r, e[52] = $, e[53] = c, e[54] = f, e[55] = d, e[56] = z, e[57] = o, e[58] = l, e[59] = S, e[60] = L, e[61] = u, e[62] = h, e[63] = m, e[64] = g, e[65] = p, e[66] = R) : R = e[66];
|
|
116
|
+
let M;
|
|
117
|
+
return e[67] !== D || e[68] !== B || e[69] !== R ? (M = /* @__PURE__ */ K(ge, { parentRef: B, containerStyle: D, children: R }), e[67] = D, e[68] = B, e[69] = R, e[70] = M) : M = e[70], M;
|
|
315
118
|
};
|
|
316
119
|
export {
|
|
317
|
-
|
|
120
|
+
He as default
|
|
318
121
|
};
|
|
319
122
|
//# sourceMappingURL=visualization.es5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visualization.es5.js","sources":["../src/components/Heatmap/Heatmap.tsx"],"sourcesContent":["import { scaleLinear } from \"@visx/scale\";\nimport type { HeatmapProps, ColumnDatum, HeatmapCellId } from \"./types\";\nimport { useImperativeHandle, useRef, useMemo, useCallback, useEffect, useState, useId } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { flushSync } from \"react-dom\";\nimport { downloadAsSVG, downloadSVGAsPNG, measureTextWidth } from \"../../utility\";\nimport { ResponsiveContainer, useResponsiveParentSize } from \"../../responsive\";\nimport { AxisLeft, AxisBottom } from \"@visx/axis\";\nimport HeatmapCells, { type AnyBin } from \"./HeatmapCells\";\nimport { heatmapCellStyles } from \"./HeatmapCell\";\nimport HeatmapLegend, { getHeatmapLegendWidth } from \"./HeatmapLegend\";\nimport { DEFAULT_DESELECTED_COLOR, cellKey, getHeatmapColorScale } from \"./heatmapCellAppearance\";\nimport { drawHeatmapCells, getVisibleRange, hitTestCell, buildBin, type CanvasCellParams } from \"./HeatmapCanvasCells\";\nimport HeatmapMiniMap from \"./HeatmapMiniMap\";\nimport { PlotTooltip, type PlotTooltipHandle } from \"../../tooltip\";\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nconst LEGEND_GAP = 16;\n// Extra breathing room between the tick labels and the axis title, beyond the space\n// reserved for the tick labels themselves.\nconst AXIS_LABEL_GAP = 12;\n// Space reserved for the axis title itself (the \"X-Axis Label\" / \"Y-Axis Label\" text), beyond\n// the tick labels. In scrollable mode this is carved out into its own always-visible pane so\n// the title can't be scrolled out of view - see yTitleWidth/xTitleHeight below.\nconst Y_AXIS_TITLE_SPACE = 40;\nconst X_AXIS_TITLE_SPACE = 70;\nconst TICK_FONT_SIZE = 12;\nconst TICK_FONT_FAMILY = \"sans-serif\";\n// Canvas's measureText and the browser's actual SVG text layout don't agree to the sub-pixel,\n// and the gap widens with string length - pad generously so long tick labels aren't clipped.\nconst TICK_LABEL_WIDTH_SAFETY_FACTOR = 1.15;\n// Extra rows/columns painted/rendered just beyond the visible viewport in scrollable mode, so a\n// cell or tick label is already there before it scrolls into view rather than popping in late.\nconst GRID_OVERSCAN_CELLS = 4;\nconst MINI_MAP_HEIGHT = 50;\nconst X_AXIS_OVERHANG_CLIP_HEIGHT = 10;\nconst getBins = (d: ColumnDatum) => d.rows;\n\n// Minimal scroll offset (along one axis) that brings [boxStart, boxEnd) fully into\n// [current, current+viewportSize) - unchanged if it's already fully visible, and aligned to\n// boxStart if the box itself is bigger than the viewport (can't fit all of it either way).\n// Mirrors Element.scrollIntoView({ block: \"nearest\" })'s semantics.\nfunction nearestScrollOffset(current: number, viewportSize: number, boxStart: number, boxEnd: number): number {\n if (boxEnd - boxStart > viewportSize) return boxStart;\n if (boxStart < current) return boxStart;\n if (boxEnd > current + viewportSize) return boxEnd - viewportSize;\n return current;\n}\n\nfunction maxOf<Datum>(data: Datum[], value: (d: Datum) => number | null): number {\n // Null counts are gaps in the data and don't participate in the max. reduce rather than\n // Math.max(...spread): returns 0 (not -Infinity) for empty/all-null input, with no\n // argument-count ceiling.\n return data.reduce((max, datum) => {\n const datumValue = value(datum);\n return datumValue == null ? max : Math.max(max, datumValue);\n }, 0);\n}\n\nconst Heatmap = ({\n data,\n onClick,\n ref,\n downloadFileName,\n colors,\n xLabel,\n yLabel,\n tooltipBody,\n margin,\n gap = 2,\n isRect = true,\n animationType,\n showLegend = true,\n width,\n height,\n xLabelOrientation = \"vertical\",\n selectedCells,\n deselectedColor,\n cellWidth,\n cellHeight,\n scrollToSelection,\n showMiniMap = false,\n}: HeatmapProps) => {\n const { parentRef, containerStyle, width: parentWidth, height: parentHeight } = useResponsiveParentSize({ width, height });\n const svgRef = useRef<SVGSVGElement | null>(null);\n const isScrollable = cellWidth != null && cellHeight != null;\n\n // Frozen-pane refs: only used when isScrollable. mainPaneRef is the only pane with a real\n // native scrollbar - the cell canvas and the row/column tick-label panes all track its scroll\n // position by reading it directly in handleGridScroll (rAF-throttled), rather than being\n // natively scrolled themselves: the canvas repaints imperatively (drawCanvas), and the tick\n // label SVGs are viewport-sized and shift via a transform driven by axisScrollPos state (see\n // below) - both cheaper than the pane actually scrolling 15,000px+ of real content.\n const mainPaneRef = useRef<HTMLDivElement | null>(null);\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n const legendSvgRef = useRef<SVGSVGElement | null>(null);\n const hoveredCellRef = useRef<HeatmapCellId | null>(null);\n const canvasTooltipRef = useRef<PlotTooltipHandle<AnyBin>>(null);\n const drawRafRef = useRef<number | null>(null);\n \n const previousSelectionKeysRef = useRef<Set<string>>(new Set());\n\n useEffect(() => () => {\n if (drawRafRef.current != null) cancelAnimationFrame(drawRafRef.current);\n }, []);\n\n const allColNames = useMemo(() => data.map((d) => d.columnName), [data]);\n const allRowNames = useMemo(() => data[0]?.rows.map((r) => r.rowName) ?? [], [data]);\n const maxValue = useMemo(() => maxOf(data, (d) => maxOf(getBins(d), (r) => r.count)), [data]);\n const numRows = useMemo(() => maxOf(data, (d) => getBins(d).length), [data]);\n\n // Measured (not estimated) pixel width of the longest label, so any label - short or long,\n // narrow or wide characters - gets exactly the room it needs rather than a per-character guess.\n const maxColNameWidth = useMemo(\n () => allColNames.reduce((m, name) => Math.max(m, measureTextWidth(name, TICK_FONT_SIZE, TICK_FONT_FAMILY)), 0) * TICK_LABEL_WIDTH_SAFETY_FACTOR,\n [allColNames]\n );\n const maxRowNameWidth = useMemo(\n () => allRowNames.reduce((m, name) => Math.max(m, measureTextWidth(name, TICK_FONT_SIZE, TICK_FONT_FAMILY)), 0) * TICK_LABEL_WIDTH_SAFETY_FACTOR,\n [allRowNames]\n );\n\n const xTickAngle = xLabelOrientation === \"horizontal\" ? 0 : xLabelOrientation === \"vertical\" ? -90 : xLabelOrientation === \"leftDiagonal\" ? -45 : 45;\n const xTickTextAnchor: \"middle\" | \"start\" | \"end\" = xLabelOrientation === \"horizontal\" ? \"middle\" : xLabelOrientation === \"rightDiagonal\" ? \"start\" : \"end\";\n const rotatedColNameSpace = maxColNameWidth;\n const colLabelHeight = xLabelOrientation === \"horizontal\" ? 12 : xLabelOrientation === \"vertical\" ? rotatedColNameSpace : rotatedColNameSpace * Math.SQRT1_2;\n\n const xTickLeftOverhangMax = xLabelOrientation === \"leftDiagonal\" ? colLabelHeight : 0;\n\n const colorsKey = colors.join(\"\\u0000\");\n const stableColors = useMemo(\n () => colorsKey.split(\"\\u0000\") as [string, string, ...string[]],\n [colorsKey]\n );\n\n const legendWidth = useMemo(() => getHeatmapLegendWidth(0, maxValue), [maxValue]);\n const defaultRight = showLegend ? legendWidth + LEGEND_GAP : 10;\n const defaultTop = 20;\n const labelBottomSpace = colLabelHeight + AXIS_LABEL_GAP + X_AXIS_TITLE_SPACE;\n const marg = margin ?? {\n top: defaultTop,\n left: maxRowNameWidth + AXIS_LABEL_GAP + Y_AXIS_TITLE_SPACE,\n right: defaultRight,\n bottom: labelBottomSpace + TICK_FONT_SIZE,\n };\n\n const miniMapSpace = isScrollable && showMiniMap ? MINI_MAP_HEIGHT : 0;\n const availableWidth = Math.max(0, parentWidth - marg.left - marg.right);\n const availableHeight = Math.max(0, parentHeight - marg.bottom - marg.top - miniMapSpace);\n\n const xMax = isScrollable ? data.length * (cellWidth as number) : availableWidth;\n const yMax = isScrollable ? numRows * (cellHeight as number) : availableHeight;\n const viewportWidth = isScrollable ? Math.min(xMax, availableWidth) : xMax;\n const viewportHeight = isScrollable ? Math.min(yMax, availableHeight) : yMax;\n\n const yTitleWidth = Y_AXIS_TITLE_SPACE;\n const yTickLabelWidth = Math.max(0, marg.left - yTitleWidth);\n const xTitleHeight = X_AXIS_TITLE_SPACE;\n const xTickLabelHeight = Math.max(0, marg.bottom - xTitleHeight);\n\n const binWidth = xMax / data.length;\n const binHeight = yMax / numRows;\n\n const xScale = useMemo(\n () => scaleLinear<number>({ domain: [0, data.length], range: [0, xMax] }),\n [data.length, xMax]\n );\n const yScale = useMemo(\n () => scaleLinear<number>({ domain: [0, numRows], range: [yMax, 0] }),\n [numRows, yMax]\n );\n const cellYScale = useCallback((row: number) => yScale(row + 1), [yScale]);\n\n const xTickValues = useMemo(() => data.map((_, i) => i + 0.5), [data]);\n const yTickValues = useMemo(() => data[0]?.rows.map((_, i) => i + 0.5) ?? [], [data]);\n\n const resolvedDeselectedColor = deselectedColor ?? DEFAULT_DESELECTED_COLOR;\n const colorScale = useMemo(\n () => getHeatmapColorScale(stableColors, maxValue),\n [stableColors, maxValue]\n );\n const selectedKeys = useMemo(\n () => (selectedCells?.length ? new Set(selectedCells.map(cellKey)) : null),\n [selectedCells]\n );\n\n // Everything the canvas draw loop and hit-testing need to place/color a cell. Only changes when\n // a prop that actually affects appearance/geometry changes - never on scroll or hover, so\n // drawCanvas (and, through it, handleGridScroll) keeps a stable identity across scroll events.\n const canvasCellParams: CanvasCellParams = useMemo(\n () => ({\n data, numRows, xScale, cellYScale, colorScale, gap, isRect, binWidth, binHeight,\n yMax, selectedKeys, deselectedColor: resolvedDeselectedColor,\n }),\n [data, numRows, xScale, cellYScale, colorScale, gap, isRect, binWidth, binHeight, yMax, selectedKeys, resolvedDeselectedColor]\n );\n\n // Imperative canvas paint - deliberately never routed through React state. Driven both by prop\n // changes (the effect below) and by native scroll events (handleGridScroll), and it's the\n // scroll case that matters: an earlier attempt at this drove the redraw through a React state\n // update on every scroll frame, which forced React to reconcile on every frame and made\n // scrolling *slower* than the plain (if huge) static SVG it replaced. Reading scroll position\n // directly off the DOM and painting immediately keeps scrolling itself entirely on the\n // browser's native, free compositor path - React is never involved.\n const drawCanvas = useCallback(() => {\n const canvas = canvasRef.current;\n const main = mainPaneRef.current;\n if (!canvas || !main) return;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return;\n const dpr = window.devicePixelRatio || 1;\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n ctx.clearRect(0, 0, viewportWidth, viewportHeight);\n const range = getVisibleRange(canvasCellParams, main.scrollLeft, main.scrollTop, viewportWidth, viewportHeight, GRID_OVERSCAN_CELLS);\n ctx.translate(-main.scrollLeft, -main.scrollTop);\n drawHeatmapCells(ctx, canvasCellParams, range, hoveredCellRef.current);\n }, [canvasCellParams, viewportWidth, viewportHeight]);\n\n useEffect(() => {\n if (isScrollable) drawCanvas();\n }, [isScrollable, drawCanvas]);\n\n const [axisScrollPos, setAxisScrollPos] = useState({ left: 0, top: 0 });\n const xTickClipId = useId();\n // Shrinks to 0 as soon as scrolling moves away from the start, so the reveal only ever applies\n // to column 0's genuine edge case (nothing real to its left) and doesn't linger over the y-axis\n // pane at other scroll positions, where a real, adjacent column - not empty space - would\n // otherwise show through.\n const xTickLeftOverhang = Math.max(0, xTickLeftOverhangMax - axisScrollPos.left);\n const axisVisibleRange = useMemo(\n () => getVisibleRange(canvasCellParams, axisScrollPos.left, axisScrollPos.top, viewportWidth, viewportHeight, GRID_OVERSCAN_CELLS),\n [canvasCellParams, axisScrollPos.left, axisScrollPos.top, viewportWidth, viewportHeight]\n );\n const visibleXTickValues = useMemo(\n () => xTickValues.slice(axisVisibleRange.colStart, axisVisibleRange.colEnd + 1),\n [xTickValues, axisVisibleRange.colStart, axisVisibleRange.colEnd]\n );\n const visibleYTickValues = useMemo(\n () => yTickValues.slice(axisVisibleRange.rowStart, axisVisibleRange.rowEnd + 1),\n [yTickValues, axisVisibleRange.rowStart, axisVisibleRange.rowEnd]\n );\n\n // Auto-scrolls to reveal newly-selected cells \n useEffect(() => {\n const previousKeys = previousSelectionKeysRef.current;\n const cells = selectedCells ?? [];\n const newCells = cells.filter((cell) => !previousKeys.has(cellKey(cell)));\n previousSelectionKeysRef.current = new Set(cells.map(cellKey));\n\n const main = mainPaneRef.current;\n if (!scrollToSelection || !isScrollable || !main || newCells.length === 0) return;\n\n let minCol = Infinity, maxCol = -Infinity, minRow = Infinity, maxRow = -Infinity;\n for (const cell of newCells) {\n if (cell.column < minCol) minCol = cell.column;\n if (cell.column > maxCol) maxCol = cell.column;\n if (cell.row < minRow) minRow = cell.row;\n if (cell.row > maxRow) maxRow = cell.row;\n }\n\n const boxLeft = minCol * binWidth;\n const boxRight = (maxCol + 1) * binWidth;\n const boxTop = yMax - (maxRow + 1) * binHeight;\n const boxBottom = yMax - minRow * binHeight;\n\n const targetLeft = nearestScrollOffset(main.scrollLeft, viewportWidth, boxLeft, boxRight);\n const targetTop = nearestScrollOffset(main.scrollTop, viewportHeight, boxTop, boxBottom);\n if (targetLeft !== main.scrollLeft || targetTop !== main.scrollTop) {\n main.scrollTo({ left: targetLeft, top: targetTop, behavior: \"smooth\" });\n }\n }, [selectedCells, scrollToSelection, isScrollable, binWidth, binHeight, yMax, viewportWidth, viewportHeight]);\n\n const handleGridScroll = useCallback(() => {\n const main = mainPaneRef.current;\n if (!main) return;\n if (drawRafRef.current != null) return;\n drawRafRef.current = requestAnimationFrame(() => {\n drawRafRef.current = null;\n drawCanvas();\n setAxisScrollPos({ left: main.scrollLeft, top: main.scrollTop });\n });\n }, [drawCanvas]);\n\n // Drives the minimap: scrollTo dispatches a native scroll event on mainPaneRef, which\n // handleGridScroll picks up the same way it would a manual scroll (repainting the canvas and\n // updating axisScrollPos, which also moves the minimap's own viewport rectangle).\n const handleMiniMapNavigate = useCallback((left: number, top: number) => {\n mainPaneRef.current?.scrollTo({ left, top });\n }, []);\n\n const handleCanvasMouseMove = useCallback((event: React.MouseEvent<HTMLCanvasElement>) => {\n const main = mainPaneRef.current;\n if (!main) return;\n const contentX = event.nativeEvent.offsetX + main.scrollLeft;\n const contentY = event.nativeEvent.offsetY + main.scrollTop;\n const cell = hitTestCell(canvasCellParams, contentX, contentY);\n // Matches the SVG path's heatmapCellStyles (`.visx-heatmap-cell { cursor: pointer }`):\n // pointer over any real cell - including a null-count one, which still hit-tests true here,\n // same as it still being a hit target there via `pointer-events: all` - not just where\n // onClick is wired up, so hover-only tooltips still get the affordance.\n event.currentTarget.style.cursor = cell ? \"pointer\" : \"default\";\n const prev = hoveredCellRef.current;\n if (prev?.row !== cell?.row || prev?.column !== cell?.column) {\n hoveredCellRef.current = cell;\n drawCanvas();\n }\n if (cell) {\n const bin = buildBin(canvasCellParams, cell);\n if (bin) canvasTooltipRef.current?.show(bin, event);\n } else {\n canvasTooltipRef.current?.hide();\n }\n }, [canvasCellParams, drawCanvas]);\n\n const handleCanvasMouseLeave = useCallback((event: React.MouseEvent<HTMLCanvasElement>) => {\n event.currentTarget.style.cursor = \"default\";\n if (hoveredCellRef.current) {\n hoveredCellRef.current = null;\n drawCanvas();\n }\n canvasTooltipRef.current?.hide();\n }, [drawCanvas]);\n\n const handleCanvasClick = useCallback((event: React.MouseEvent<HTMLCanvasElement>) => {\n const main = mainPaneRef.current;\n if (!main || !onClick) return;\n const contentX = event.nativeEvent.offsetX + main.scrollLeft;\n const contentY = event.nativeEvent.offsetY + main.scrollTop;\n const cell = hitTestCell(canvasCellParams, contentX, contentY);\n if (!cell) return;\n const bin = buildBin(canvasCellParams, cell);\n if (bin) onClick(bin);\n }, [canvasCellParams, onClick]);\n\n // Builds a standalone, off-DOM <svg> at full content size for export. Both the on-screen cell\n // layer (a canvas painting only the current scroll viewport) and the on-screen row/column axis\n // panes (SVGs now windowed to the visible tick range, see axisVisibleRange above) only ever\n // hold a slice of the full grid - neither can just be cloned for export without capturing an\n // incomplete/mispositioned snapshot. So all three (cells, row axis, column axis) are instead\n // rendered fresh here in one detached tree - synchronously, full grid, no windowing - purely to\n // snapshot into the export SVG below.\n const buildScrollableExportSVG = (): SVGSVGElement | null => {\n const exportSvg = document.createElementNS(SVG_NS, \"svg\") as SVGSVGElement;\n exportSvg.setAttribute(\"width\", String(marg.left + xMax + marg.right));\n exportSvg.setAttribute(\"height\", String(marg.top + yMax + marg.bottom));\n\n const appendClone = (source: SVGSVGElement, x: number, y: number) => {\n const group = document.createElementNS(SVG_NS, \"g\");\n group.setAttribute(\"transform\", `translate(${x},${y})`);\n source.childNodes.forEach((node) => group.appendChild(node.cloneNode(true)));\n exportSvg.appendChild(group);\n };\n\n let fullCells: SVGSVGElement | null = null;\n let fullRowAxis: SVGSVGElement | null = null;\n let fullColAxis: SVGSVGElement | null = null;\n const exportContainer = document.createElement(\"div\");\n const exportRoot = createRoot(exportContainer);\n flushSync(() => {\n exportRoot.render(\n <>\n <svg width={xMax} height={yMax} ref={(el) => { fullCells = el; }}>\n <HeatmapCells\n data={data}\n xScale={xScale}\n yScale={cellYScale}\n colors={stableColors}\n maxValue={maxValue}\n gap={gap}\n isRect={isRect}\n binWidth={binWidth}\n binHeight={binHeight}\n animationType={animationType}\n onClick={onClick}\n selectedCells={selectedCells}\n deselectedColor={deselectedColor}\n />\n </svg>\n <svg width={yTickLabelWidth} height={yMax} ref={(el) => { fullRowAxis = el; }}>\n <g transform={`translate(${yTickLabelWidth},0)`}>\n <AxisLeft\n scale={yScale}\n numTicks={numRows}\n tickValues={yTickValues}\n tickFormat={yAxisTickFormat}\n tickLabelProps={yAxisTickLabelProps}\n />\n </g>\n </svg>\n <svg width={xMax} height={xTickLabelHeight} ref={(el) => { fullColAxis = el; }}>\n <AxisBottom\n top={0}\n scale={xScale}\n numTicks={data.length}\n tickFormat={xAxisTickFormat}\n tickValues={xTickValues}\n tickLabelProps={xAxisTickLabelProps}\n />\n </svg>\n </>\n );\n });\n if (fullCells) appendClone(fullCells, marg.left, marg.top);\n if (fullRowAxis) appendClone(fullRowAxis, yTitleWidth, marg.top);\n if (fullColAxis) appendClone(fullColAxis, marg.left, marg.top + yMax);\n exportRoot.unmount();\n\n if (showLegend && legendSvgRef.current) {\n appendClone(legendSvgRef.current, marg.left + xMax + LEGEND_GAP, marg.top);\n }\n\n // The axis titles live in their own always-visible panes on screen (so scrolling can't\n // carry them out of view) rather than as visx's built-in centered-on-the-full-axis label,\n // so they're added here directly instead of being cloned from a live pane.\n const appendTitle = (text: string, x: number, y: number, rotate: boolean) => {\n const titleEl = document.createElementNS(SVG_NS, \"text\");\n titleEl.setAttribute(\"x\", String(x));\n titleEl.setAttribute(\"y\", String(y));\n if (rotate) titleEl.setAttribute(\"transform\", `rotate(-90, ${x}, ${y})`);\n titleEl.setAttribute(\"text-anchor\", \"middle\");\n titleEl.setAttribute(\"dominant-baseline\", \"middle\");\n titleEl.setAttribute(\"font-size\", \"14\");\n titleEl.setAttribute(\"font-family\", \"sans-serif\");\n titleEl.textContent = text;\n exportSvg.appendChild(titleEl);\n };\n if (yLabel) appendTitle(yLabel, yTitleWidth / 2, marg.top + yMax / 2, true);\n if (xLabel) appendTitle(xLabel, marg.left + xMax / 2, marg.top + yMax + xTickLabelHeight + xTitleHeight / 2, false);\n\n return exportSvg;\n };\n\n // downloadSVGAsPNG reads the element's layout box asynchronously (after its image loads), so\n // an off-DOM export node has to stay attached (off-screen) until onComplete fires. The\n // off-screen positioning goes on a wrapper div, never on the <svg> itself - that svg is what\n // gets serialized and downloaded, so any inline style set directly on it (e.g. `left:\n // -99999px`) would be baked into the exported file, rendering everything pushed off-canvas\n // and out of view - the exact \"blank image\" bug this replaced.\n const withOffscreenExportSVG = (run: (svg: SVGSVGElement, onDone: () => void) => void) => {\n const svg = buildScrollableExportSVG();\n if (!svg) return;\n const wrapper = document.createElement(\"div\");\n wrapper.style.position = \"absolute\";\n wrapper.style.top = \"0\";\n wrapper.style.left = \"-99999px\";\n wrapper.appendChild(svg);\n document.body.appendChild(wrapper);\n run(svg, () => {\n if (wrapper.parentNode) document.body.removeChild(wrapper);\n });\n };\n\n useImperativeHandle(ref, () => ({\n downloadSVG: () => {\n if (isScrollable) {\n withOffscreenExportSVG((svg, onDone) => {\n downloadAsSVG(svg, downloadFileName ?? \"heatmap.svg\");\n onDone();\n });\n } else if (svgRef.current) {\n downloadAsSVG(svgRef.current, downloadFileName ?? \"heatmap.svg\");\n }\n },\n downloadPNG: () => {\n if (isScrollable) {\n withOffscreenExportSVG((svg, onDone) => {\n downloadSVGAsPNG(svg, downloadFileName ?? \"heatmap.png\", undefined, onDone);\n });\n } else if (svgRef.current) {\n downloadSVGAsPNG(svgRef.current, downloadFileName ?? \"heatmap.png\");\n }\n },\n }));\n // No deps array: buildScrollableExportSVG (and the plain closures above) now render the cells\n // and both axes fresh on every export (see its comment), reading a long list of render-scoped\n // values - hand-maintaining an exhaustive deps list for that is exactly the kind of duplicated\n // upkeep this refactor was trying to reduce elsewhere, and risks a stale export if one is ever\n // missed. Recomputing this handle (two small closures) on every render is negligible cost.\n\n const xAxisTickFormat = (d: number | { valueOf(): number }) => allColNames[Math.floor(+d)] ?? \"\";\n const xAxisTickLabelProps = () => ({\n fontSize: 12,\n fontFamily: \"sans-serif\",\n textAnchor: xTickTextAnchor,\n angle: xTickAngle,\n dy: xLabelOrientation === \"horizontal\" ? \"0.71em\" : \"0.25em\",\n });\n const xAxisLabelProps = {\n fontSize: 14,\n fontFamily: \"sans-serif\",\n textAnchor: \"middle\" as const,\n dy: \"-0.5em\",\n };\n const yAxisTickFormat = (d: number | { valueOf(): number }) => allRowNames[Math.floor(+d)] ?? \"\";\n const yAxisTickLabelProps = () => ({\n fontSize: 12,\n fontFamily: \"sans-serif\",\n textAnchor: \"end\" as const,\n dx: \"-0.25em\",\n dy: \"0.25em\",\n });\n const yAxisLabelProps = {\n fontSize: 14,\n fontFamily: \"sans-serif\",\n textAnchor: \"middle\" as const,\n };\n\n return (\n <ResponsiveContainer parentRef={parentRef} containerStyle={containerStyle}>\n {!parentWidth || !parentHeight || data.length === 0 || numRows === 0 ? null : isScrollable ? (\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n {showMiniMap && (\n <div style={{ marginLeft: yTitleWidth + yTickLabelWidth }}>\n <HeatmapMiniMap\n canvasCellParams={canvasCellParams}\n xMax={xMax}\n yMax={yMax}\n viewportWidth={viewportWidth}\n viewportHeight={viewportHeight}\n scrollLeft={axisScrollPos.left}\n scrollTop={axisScrollPos.top}\n width={viewportWidth}\n height={MINI_MAP_HEIGHT}\n onNavigate={handleMiniMapNavigate}\n />\n </div>\n )}\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: showLegend\n ? `${yTitleWidth}px ${yTickLabelWidth}px ${viewportWidth}px ${LEGEND_GAP + legendWidth}px`\n : `${yTitleWidth}px ${yTickLabelWidth}px ${viewportWidth}px`,\n gridTemplateRows: `${marg.top}px ${viewportHeight}px ${xTickLabelHeight}px ${xTitleHeight}px`,\n }}\n >\n <div style={{ gridColumn: 1, gridRow: 2, width: yTitleWidth, height: viewportHeight, display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\n <svg width={yTitleWidth} height={viewportHeight}>\n <text\n x={yTitleWidth / 2}\n y={viewportHeight / 2}\n transform={`rotate(-90, ${yTitleWidth / 2}, ${viewportHeight / 2})`}\n textAnchor=\"middle\"\n dominantBaseline=\"middle\"\n fontSize={14}\n fontFamily=\"sans-serif\"\n >\n {yLabel ?? \"\"}\n </text>\n </svg>\n </div>\n <div style={{ gridColumn: 2, gridRow: 2, width: yTickLabelWidth, height: viewportHeight, overflow: \"hidden\" }}>\n <svg width={yTickLabelWidth} height={viewportHeight}>\n <g transform={`translate(${yTickLabelWidth},${-axisScrollPos.top})`}>\n <AxisLeft\n scale={yScale}\n numTicks={numRows}\n tickValues={visibleYTickValues}\n tickFormat={yAxisTickFormat}\n tickLabelProps={yAxisTickLabelProps}\n />\n </g>\n </svg>\n </div>\n <div\n ref={mainPaneRef}\n onScroll={handleGridScroll}\n style={{ gridColumn: 3, gridRow: 2, width: viewportWidth, height: viewportHeight, overflow: \"auto\", overscrollBehavior: \"contain\", position: \"relative\" }}\n >\n <div style={{ width: xMax, height: yMax, position: \"relative\" }}>\n <canvas\n ref={canvasRef}\n width={viewportWidth * (window.devicePixelRatio || 1)}\n height={viewportHeight * (window.devicePixelRatio || 1)}\n style={{\n width: viewportWidth,\n height: viewportHeight,\n position: \"sticky\",\n top: 0,\n left: 0,\n display: \"block\",\n cursor: \"default\",\n }}\n onMouseMove={handleCanvasMouseMove}\n onMouseLeave={handleCanvasMouseLeave}\n onClick={handleCanvasClick}\n />\n </div>\n </div>\n {tooltipBody && <PlotTooltip ref={canvasTooltipRef}>{tooltipBody}</PlotTooltip>}\n <div style={{ gridColumn: 3, gridRow: 3, width: viewportWidth, height: xTickLabelHeight, overflow: \"visible\" }}>\n <svg width={viewportWidth} height={xTickLabelHeight} style={{ overflow: \"visible\" }}>\n {xTickLeftOverhangMax > 0 && (\n <defs>\n <clipPath id={xTickClipId}>\n {/* The pane itself, always fully visible. */}\n <rect x={0} y={0} width={viewportWidth} height={xTickLabelHeight} />\n {/* The leftDiagonal overhang reach (shrinks to 0 as axisScrollPos.left grows\n - see xTickLeftOverhang) - full height except a thin strip at the top,\n where the axis's own tick-line stub would otherwise show through\n underneath the y-axis pane. Leaving that strip out of the clip hides just\n the stub; the label text, which sits lower, is unaffected. */}\n <rect\n x={-xTickLeftOverhang}\n y={X_AXIS_OVERHANG_CLIP_HEIGHT}\n width={xTickLeftOverhang}\n height={Math.max(0, xTickLabelHeight - X_AXIS_OVERHANG_CLIP_HEIGHT)}\n />\n </clipPath>\n </defs>\n )}\n <g clipPath={xTickLeftOverhangMax > 0 ? `url(#${xTickClipId})` : undefined}>\n <g transform={`translate(${-axisScrollPos.left},0)`}>\n <AxisBottom\n top={0}\n scale={xScale}\n numTicks={data.length}\n tickFormat={xAxisTickFormat}\n tickValues={visibleXTickValues}\n tickLabelProps={xAxisTickLabelProps}\n />\n </g>\n </g>\n </svg>\n </div>\n {/* X-axis title: fixed in place (not scroll-synced) so it's always visible, centered on\n the visible viewport rather than the full data range */}\n <div style={{ gridColumn: 3, gridRow: 4, width: viewportWidth, height: xTitleHeight, display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\n <svg width={viewportWidth} height={xTitleHeight}>\n <text\n x={viewportWidth / 2}\n y={xTitleHeight / 2}\n textAnchor=\"middle\"\n dominantBaseline=\"middle\"\n fontSize={14}\n fontFamily=\"sans-serif\"\n >\n {xLabel ?? \"\"}\n </text>\n </svg>\n </div>\n {showLegend && (\n <div style={{ gridColumn: 4, gridRow: 2, width: legendWidth, marginLeft: LEGEND_GAP, height: viewportHeight }}>\n <svg width={legendWidth} height={viewportHeight} ref={legendSvgRef} style={{ overflow: \"visible\" }}>\n <HeatmapLegend\n colors={stableColors}\n minValue={0}\n maxValue={maxValue}\n height={viewportHeight}\n />\n </svg>\n </div>\n )}\n </div>\n </div>\n ) : (\n <svg width={parentWidth} height={parentHeight} ref={svgRef}>\n {/* Inside the <svg> so cell hover styling survives the SVG/PNG download serialization */}\n <style>{heatmapCellStyles}</style>\n <g transform={`translate(${marg.left},${marg.top})`}>\n <HeatmapCells\n data={data}\n xScale={xScale}\n yScale={cellYScale}\n colors={stableColors}\n maxValue={maxValue}\n gap={gap}\n isRect={isRect}\n binWidth={binWidth}\n binHeight={binHeight}\n animationType={animationType}\n tooltipBody={tooltipBody}\n onClick={onClick}\n selectedCells={selectedCells}\n deselectedColor={deselectedColor}\n />\n <AxisBottom\n top={yMax}\n scale={xScale}\n numTicks={data.length}\n tickFormat={xAxisTickFormat}\n tickValues={xTickValues}\n tickLabelProps={xAxisTickLabelProps}\n label={xLabel ?? \"\"}\n labelOffset={colLabelHeight + AXIS_LABEL_GAP}\n labelProps={xAxisLabelProps}\n />\n <AxisLeft\n scale={yScale}\n numTicks={numRows}\n tickValues={yTickValues}\n tickFormat={yAxisTickFormat}\n tickLabelProps={yAxisTickLabelProps}\n label={yLabel ?? \"\"}\n labelOffset={maxRowNameWidth + AXIS_LABEL_GAP}\n labelProps={yAxisLabelProps}\n />\n {showLegend && (\n <g transform={`translate(${xMax + LEGEND_GAP}, 0)`}>\n <HeatmapLegend\n colors={stableColors}\n minValue={0}\n maxValue={maxValue}\n height={yMax}\n />\n </g>\n )}\n </g>\n </svg>\n )}\n </ResponsiveContainer>\n );\n};\n\nexport default Heatmap;\n"],"names":["SVG_NS","LEGEND_GAP","AXIS_LABEL_GAP","Y_AXIS_TITLE_SPACE","X_AXIS_TITLE_SPACE","TICK_FONT_SIZE","TICK_FONT_FAMILY","TICK_LABEL_WIDTH_SAFETY_FACTOR","GRID_OVERSCAN_CELLS","MINI_MAP_HEIGHT","X_AXIS_OVERHANG_CLIP_HEIGHT","getBins","d","rows","nearestScrollOffset","current","viewportSize","boxStart","boxEnd","maxOf","data","value","reduce","max","datum","datumValue","Math","Heatmap","onClick","ref","downloadFileName","colors","xLabel","yLabel","tooltipBody","margin","gap","isRect","animationType","showLegend","width","height","xLabelOrientation","selectedCells","deselectedColor","cellWidth","cellHeight","scrollToSelection","showMiniMap","parentRef","containerStyle","parentWidth","parentHeight","useResponsiveParentSize","svgRef","useRef","isScrollable","mainPaneRef","canvasRef","legendSvgRef","hoveredCellRef","canvasTooltipRef","drawRafRef","previousSelectionKeysRef","Set","useEffect","cancelAnimationFrame","allColNames","useMemo","map","columnName","allRowNames","r","rowName","maxValue","count","numRows","length","maxColNameWidth","m","name","measureTextWidth","maxRowNameWidth","xTickAngle","xTickTextAnchor","rotatedColNameSpace","colLabelHeight","SQRT1_2","xTickLeftOverhangMax","colorsKey","join","stableColors","split","legendWidth","getHeatmapLegendWidth","defaultRight","defaultTop","labelBottomSpace","marg","top","left","right","bottom","miniMapSpace","availableWidth","availableHeight","xMax","yMax","viewportWidth","min","viewportHeight","yTitleWidth","yTickLabelWidth","xTitleHeight","xTickLabelHeight","binWidth","binHeight","xScale","scaleLinear","domain","range","yScale","cellYScale","useCallback","row","xTickValues","_","i","yTickValues","resolvedDeselectedColor","DEFAULT_DESELECTED_COLOR","colorScale","getHeatmapColorScale","selectedKeys","cellKey","canvasCellParams","drawCanvas","canvas","main","ctx","getContext","dpr","window","devicePixelRatio","setTransform","clearRect","getVisibleRange","scrollLeft","scrollTop","translate","drawHeatmapCells","axisScrollPos","setAxisScrollPos","useState","xTickClipId","useId","xTickLeftOverhang","axisVisibleRange","visibleXTickValues","slice","colStart","colEnd","visibleYTickValues","rowStart","rowEnd","previousKeys","cells","newCells","filter","cell","has","minCol","Infinity","maxCol","minRow","maxRow","column","boxLeft","boxRight","boxTop","boxBottom","targetLeft","targetTop","scrollTo","behavior","handleGridScroll","requestAnimationFrame","handleMiniMapNavigate","handleCanvasMouseMove","event","contentX","nativeEvent","offsetX","contentY","offsetY","hitTestCell","currentTarget","style","cursor","prev","bin","buildBin","show","hide","handleCanvasMouseLeave","handleCanvasClick","buildScrollableExportSVG","exportSvg","document","createElementNS","setAttribute","String","appendClone","source","x","y","group","childNodes","forEach","node","appendChild","cloneNode","fullCells","fullRowAxis","fullColAxis","exportContainer","createElement","exportRoot","createRoot","flushSync","render","jsxs","Fragment","jsx","el","HeatmapCells","AxisLeft","yAxisTickFormat","yAxisTickLabelProps","AxisBottom","xAxisTickFormat","xAxisTickLabelProps","unmount","appendTitle","text","rotate","titleEl","textContent","withOffscreenExportSVG","run","svg","wrapper","position","body","parentNode","removeChild","useImperativeHandle","downloadSVG","onDone","downloadAsSVG","downloadPNG","downloadSVGAsPNG","undefined","floor","fontSize","fontFamily","textAnchor","angle","dy","xAxisLabelProps","dx","yAxisLabelProps","ResponsiveContainer","display","flexDirection","marginLeft","HeatmapMiniMap","gridTemplateColumns","gridTemplateRows","gridColumn","gridRow","alignItems","justifyContent","overflow","overscrollBehavior","PlotTooltip","HeatmapLegend","heatmapCellStyles"],"mappings":";;;;;;;;;;;;;;;;;AAgBA,MAAMA,KAAS,8BACTC,IAAa,IAGbC,KAAiB,IAIjBC,KAAqB,IACrBC,KAAqB,IACrBC,KAAiB,IACjBC,KAAmB,cAGnBC,KAAiC,MAGjCC,KAAsB,GACtBC,KAAkB,IAClBC,KAA8B,IAC9BC,KAAUA,CAACC,MAAmBA,EAAEC;AAMtC,SAASC,GAAoBC,GAAiBC,GAAsBC,GAAkBC,GAAwB;AAE5G,SADIA,IAASD,IAAWD,KACpBC,IAAWF,IAAgBE,IAC3BC,IAASH,IAAUC,IAAqBE,IAASF,IAC9CD;AACT;AAEA,SAASI,GAAaC,GAAeC,GAA4C;AAI/E,SAAOD,EAAKE,OAAO,CAACC,GAAKC,MAAU;AACjC,UAAMC,IAAaJ,EAAMG,CAAK;AAC9B,WAAOC,KAAc,OAAOF,IAAMG,KAAKH,IAAIA,GAAKE,CAAU;AAAA,EAC5D,GAAG,CAAC;AACN;AAEA,MAAME,KAAUA,CAAC;AAAA,EACfP,MAAAA;AAAAA,EACAQ,SAAAA;AAAAA,EACAC,KAAAA;AAAAA,EACAC,kBAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,KAAAA,KAAM;AAAA,EACNC,QAAAA,KAAS;AAAA,EACTC,eAAAA;AAAAA,EACAC,YAAAA,IAAa;AAAA,EACbC,OAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,mBAAAA,IAAoB;AAAA,EACpBC,eAAAA;AAAAA,EACAC,iBAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC,mBAAAA;AAAAA,EACAC,aAAAA,KAAc;AACF,MAAM;AAClB,QAAM;AAAA,IAAEC,WAAAA;AAAAA,IAAWC,gBAAAA;AAAAA,IAAgBV,OAAOW;AAAAA,IAAaV,QAAQW;AAAAA,EAAAA,IAAiBC,GAAwB;AAAA,IAAEb,OAAAA;AAAAA,IAAOC,QAAAA;AAAAA,EAAAA,CAAQ,GACnHa,IAASC,EAA6B,IAAI,GAC1CC,IAAeX,MAAa,QAAQC,MAAc,MAQlDW,IAAcF,EAA8B,IAAI,GAChDG,KAAYH,EAAiC,IAAI,GACjDI,KAAeJ,EAA6B,IAAI,GAChDK,IAAiBL,EAA6B,IAAI,GAClDM,KAAmBN,EAAkC,IAAI,GACzDO,IAAaP,EAAsB,IAAI,GAEvCQ,KAA2BR,EAAoB,oBAAIS,KAAK;AAE9DC,EAAAA,GAAU,MAAM,MAAM;AACpB,IAAIH,EAAW/C,WAAW,QAAMmD,qBAAqBJ,EAAW/C,OAAO;AAAA,EACzE,GAAG,CAAA,CAAE;AAEL,QAAMoD,KAAcC,EAAQ,MAAMhD,EAAKiD,IAAKzD,CAAAA,MAAMA,EAAE0D,UAAU,GAAG,CAAClD,CAAI,CAAC,GACjEmD,KAAcH,EAAQ,MAAMhD,EAAK,CAAC,GAAGP,KAAKwD,IAAKG,CAAAA,MAAMA,EAAEC,OAAO,KAAK,CAAA,GAAI,CAACrD,CAAI,CAAC,GAC7EsD,IAAWN,EAAQ,MAAMjD,GAAMC,GAAOR,OAAMO,GAAMR,GAAQC,CAAC,GAAI4D,OAAMA,EAAEG,KAAK,CAAC,GAAG,CAACvD,CAAI,CAAC,GACtFwD,IAAUR,EAAQ,MAAMjD,GAAMC,GAAOR,CAAAA,MAAMD,GAAQC,CAAC,EAAEiE,MAAM,GAAG,CAACzD,CAAI,CAAC,GAIrE0D,KAAkBV,EACtB,MAAMD,GAAY7C,OAAO,CAACyD,GAAGC,MAAStD,KAAKH,IAAIwD,GAAGE,GAAiBD,GAAM3E,IAAgBC,EAAgB,CAAC,GAAG,CAAC,IAAIC,IAClH,CAAC4D,EAAW,CACd,GACMe,KAAkBd,EACtB,MAAMG,GAAYjD,OAAO,CAACyD,GAAGC,MAAStD,KAAKH,IAAIwD,GAAGE,GAAiBD,GAAM3E,IAAgBC,EAAgB,CAAC,GAAG,CAAC,IAAIC,IAClH,CAACgE,EAAW,CACd,GAEMY,KAAazC,MAAsB,eAAe,IAAIA,MAAsB,aAAa,MAAMA,MAAsB,iBAAiB,MAAM,IAC5I0C,KAA8C1C,MAAsB,eAAe,WAAWA,MAAsB,kBAAkB,UAAU,OAChJ2C,KAAsBP,IACtBQ,KAAiB5C,MAAsB,eAAe,KAAKA,MAAsB,aAAa2C,KAAsBA,KAAsB3D,KAAK6D,SAE/IC,KAAuB9C,MAAsB,iBAAiB4C,KAAiB,GAE/EG,KAAY1D,EAAO2D,KAAK,IAAQ,GAChCC,IAAevB,EACnB,MAAMqB,GAAUG,MAAM,IAAQ,GAC9B,CAACH,EAAS,CACZ,GAEMI,KAAczB,EAAQ,MAAM0B,GAAsB,GAAGpB,CAAQ,GAAG,CAACA,CAAQ,CAAC,GAC1EqB,KAAexD,IAAasD,KAAc5F,IAAa,IACvD+F,KAAa,IACbC,KAAmBX,KAAiBpF,KAAiBE,IACrD8F,IAAO/D,MAAU;AAAA,IACrBgE,KAAKH;AAAAA,IACLI,MAAMlB,KAAkBhF,KAAiBC;AAAAA,IACzCkG,OAAON;AAAAA,IACPO,QAAQL,KAAmB5F;AAAAA,EAAAA,GAGvBkG,KAAe/C,KAAgBR,KAAcvC,KAAkB,GAC/D+F,KAAiB9E,KAAKH,IAAI,GAAG4B,KAAc+C,EAAKE,OAAOF,EAAKG,KAAK,GACjEI,KAAkB/E,KAAKH,IAAI,GAAG6B,KAAe8C,EAAKI,SAASJ,EAAKC,MAAMI,EAAY,GAElFG,IAAOlD,IAAepC,EAAKyD,SAAUhC,KAAuB2D,IAC5DG,IAAOnD,IAAeoB,IAAW9B,KAAwB2D,IACzDG,IAAgBpD,IAAe9B,KAAKmF,IAAIH,GAAMF,EAAc,IAAIE,GAChEI,IAAiBtD,IAAe9B,KAAKmF,IAAIF,GAAMF,EAAe,IAAIE,GAElEI,IAAc5G,IACd6G,IAAkBtF,KAAKH,IAAI,GAAG2E,EAAKE,OAAOW,CAAW,GACrDE,IAAe7G,IACf8G,IAAmBxF,KAAKH,IAAI,GAAG2E,EAAKI,SAASW,CAAY,GAEzDE,IAAWT,IAAOtF,EAAKyD,QACvBuC,IAAYT,IAAO/B,GAEnByC,IAASjD,EACb,MAAMkD,GAAoB;AAAA,IAAEC,QAAQ,CAAC,GAAGnG,EAAKyD,MAAM;AAAA,IAAG2C,OAAO,CAAC,GAAGd,CAAI;AAAA,EAAA,CAAG,GACxE,CAACtF,EAAKyD,QAAQ6B,CAAI,CACpB,GACMe,IAASrD,EACb,MAAMkD,GAAoB;AAAA,IAAEC,QAAQ,CAAC,GAAG3C,CAAO;AAAA,IAAG4C,OAAO,CAACb,GAAM,CAAC;AAAA,EAAA,CAAG,GACpE,CAAC/B,GAAS+B,CAAI,CAChB,GACMe,KAAaC,EAAY,CAACC,MAAgBH,EAAOG,IAAM,CAAC,GAAG,CAACH,CAAM,CAAC,GAEnEI,KAAczD,EAAQ,MAAMhD,EAAKiD,IAAI,CAACyD,GAAGC,MAAMA,IAAI,GAAG,GAAG,CAAC3G,CAAI,CAAC,GAC/D4G,KAAc5D,EAAQ,MAAMhD,EAAK,CAAC,GAAGP,KAAKwD,IAAI,CAACyD,GAAGC,MAAMA,IAAI,GAAG,KAAK,CAAA,GAAI,CAAC3G,CAAI,CAAC,GAE9E6G,KAA0BrF,MAAmBsF,IAC7CC,KAAa/D,EACjB,MAAMgE,GAAqBzC,GAAcjB,CAAQ,GACjD,CAACiB,GAAcjB,CAAQ,CACzB,GACM2D,KAAejE,EACnB,MAAOzB,GAAekC,SAAS,IAAIb,IAAIrB,EAAc0B,IAAIiE,EAAO,CAAC,IAAI,MACrE,CAAC3F,CAAa,CAChB,GAKM4F,IAAqCnE,EACzC,OAAO;AAAA,IACLhD,MAAAA;AAAAA,IAAMwD,SAAAA;AAAAA,IAASyC,QAAAA;AAAAA,IAAQK,YAAAA;AAAAA,IAAYS,YAAAA;AAAAA,IAAY/F,KAAAA;AAAAA,IAAKC,QAAAA;AAAAA,IAAQ8E,UAAAA;AAAAA,IAAUC,WAAAA;AAAAA,IACtET,MAAAA;AAAAA,IAAM0B,cAAAA;AAAAA,IAAczF,iBAAiBqF;AAAAA,EAAAA,IAEvC,CAAC7G,GAAMwD,GAASyC,GAAQK,IAAYS,IAAY/F,IAAKC,IAAQ8E,GAAUC,GAAWT,GAAM0B,IAAcJ,EAAuB,CAC/H,GASMO,IAAab,EAAY,MAAM;AACnC,UAAMc,IAAS/E,GAAU3C,SACnB2H,IAAOjF,EAAY1C;AACzB,QAAI,CAAC0H,KAAU,CAACC,EAAM;AACtB,UAAMC,IAAMF,EAAOG,WAAW,IAAI;AAClC,QAAI,CAACD,EAAK;AACV,UAAME,IAAMC,OAAOC,oBAAoB;AACvCJ,IAAAA,EAAIK,aAAaH,GAAK,GAAG,GAAGA,GAAK,GAAG,CAAC,GACrCF,EAAIM,UAAU,GAAG,GAAGrC,GAAeE,CAAc;AACjD,UAAMU,IAAQ0B,GAAgBX,GAAkBG,EAAKS,YAAYT,EAAKU,WAAWxC,GAAeE,GAAgBtG,EAAmB;AACnImI,IAAAA,EAAIU,UAAU,CAACX,EAAKS,YAAY,CAACT,EAAKU,SAAS,GAC/CE,GAAiBX,GAAKJ,GAAkBf,GAAO5D,EAAe7C,OAAO;AAAA,EACvE,GAAG,CAACwH,GAAkB3B,GAAeE,CAAc,CAAC;AAEpD7C,EAAAA,GAAU,MAAM;AACd,IAAIT,KAAcgF,EAAAA;AAAAA,EACpB,GAAG,CAAChF,GAAcgF,CAAU,CAAC;AAE7B,QAAM,CAACe,GAAeC,EAAgB,IAAIC,GAAS;AAAA,IAAErD,MAAM;AAAA,IAAGD,KAAK;AAAA,EAAA,CAAG,GAChEuD,KAAcC,GAAAA,GAKdC,KAAoBlI,KAAKH,IAAI,GAAGiE,KAAuB+D,EAAcnD,IAAI,GACzEyD,IAAmBzF,EACvB,MAAM8E,GAAgBX,GAAkBgB,EAAcnD,MAAMmD,EAAcpD,KAAKS,GAAeE,GAAgBtG,EAAmB,GACjI,CAAC+H,GAAkBgB,EAAcnD,MAAMmD,EAAcpD,KAAKS,GAAeE,CAAc,CACzF,GACMgD,KAAqB1F,EACzB,MAAMyD,GAAYkC,MAAMF,EAAiBG,UAAUH,EAAiBI,SAAS,CAAC,GAC9E,CAACpC,IAAagC,EAAiBG,UAAUH,EAAiBI,MAAM,CAClE,GACMC,KAAqB9F,EACzB,MAAM4D,GAAY+B,MAAMF,EAAiBM,UAAUN,EAAiBO,SAAS,CAAC,GAC9E,CAACpC,IAAa6B,EAAiBM,UAAUN,EAAiBO,MAAM,CAClE;AAGAnG,EAAAA,GAAU,MAAM;AACd,UAAMoG,IAAetG,GAAyBhD,SACxCuJ,IAAQ3H,KAAiB,CAAA,GACzB4H,IAAWD,EAAME,OAAQC,CAAAA,MAAS,CAACJ,EAAaK,IAAIpC,GAAQmC,CAAI,CAAC,CAAC;AACxE1G,IAAAA,GAAyBhD,UAAU,IAAIiD,IAAIsG,EAAMjG,IAAIiE,EAAO,CAAC;AAE7D,UAAMI,IAAOjF,EAAY1C;AACzB,QAAI,CAACgC,MAAqB,CAACS,KAAgB,CAACkF,KAAQ6B,EAAS1F,WAAW,EAAG;AAE3E,QAAI8F,IAASC,OAAUC,IAAS,QAAWC,IAASF,OAAUG,IAAS;AACvE,eAAWN,KAAQF;AACjB,MAAIE,EAAKO,SAASL,MAAQA,IAASF,EAAKO,SACpCP,EAAKO,SAASH,MAAQA,IAASJ,EAAKO,SACpCP,EAAK7C,MAAMkD,MAAQA,IAASL,EAAK7C,MACjC6C,EAAK7C,MAAMmD,MAAQA,IAASN,EAAK7C;AAGvC,UAAMqD,IAAUN,IAASxD,GACnB+D,KAAYL,IAAS,KAAK1D,GAC1BgE,IAASxE,KAAQoE,IAAS,KAAK3D,GAC/BgE,IAAYzE,IAAOmE,IAAS1D,GAE5BiE,IAAavK,GAAoB4H,EAAKS,YAAYvC,GAAeqE,GAASC,CAAQ,GAClFI,KAAYxK,GAAoB4H,EAAKU,WAAWtC,GAAgBqE,GAAQC,CAAS;AACvF,KAAIC,MAAe3C,EAAKS,cAAcmC,OAAc5C,EAAKU,cACvDV,EAAK6C,SAAS;AAAA,MAAEnF,MAAMiF;AAAAA,MAAYlF,KAAKmF;AAAAA,MAAWE,UAAU;AAAA,IAAA,CAAU;AAAA,EAE1E,GAAG,CAAC7I,GAAeI,IAAmBS,GAAc2D,GAAUC,GAAWT,GAAMC,GAAeE,CAAc,CAAC;AAE7G,QAAM2E,KAAmB9D,EAAY,MAAM;AACzC,UAAMe,IAAOjF,EAAY1C;AACzB,IAAK2H,KACD5E,EAAW/C,WAAW,SAC1B+C,EAAW/C,UAAU2K,sBAAsB,MAAM;AAC/C5H,MAAAA,EAAW/C,UAAU,MACrByH,EAAAA,GACAgB,GAAiB;AAAA,QAAEpD,MAAMsC,EAAKS;AAAAA,QAAYhD,KAAKuC,EAAKU;AAAAA,MAAAA,CAAW;AAAA,IACjE,CAAC;AAAA,EACH,GAAG,CAACZ,CAAU,CAAC,GAKTmD,KAAwBhE,EAAY,CAACvB,GAAcD,MAAgB;AACvE1C,IAAAA,EAAY1C,SAASwK,SAAS;AAAA,MAAEnF,MAAAA;AAAAA,MAAMD,KAAAA;AAAAA,IAAAA,CAAK;AAAA,EAC7C,GAAG,CAAA,CAAE,GAECyF,KAAwBjE,EAAY,CAACkE,MAA+C;AACxF,UAAMnD,IAAOjF,EAAY1C;AACzB,QAAI,CAAC2H,EAAM;AACX,UAAMoD,IAAWD,EAAME,YAAYC,UAAUtD,EAAKS,YAC5C8C,IAAWJ,EAAME,YAAYG,UAAUxD,EAAKU,WAC5CqB,IAAO0B,GAAY5D,GAAkBuD,GAAUG,CAAQ;AAK7DJ,IAAAA,EAAMO,cAAcC,MAAMC,SAAS7B,IAAO,YAAY;AACtD,UAAM8B,IAAO3I,EAAe7C;AAK5B,SAJIwL,GAAM3E,QAAQ6C,GAAM7C,OAAO2E,GAAMvB,WAAWP,GAAMO,YACpDpH,EAAe7C,UAAU0J,GACzBjC,EAAAA,IAEEiC,GAAM;AACR,YAAM+B,IAAMC,GAASlE,GAAkBkC,CAAI;AAC3C,MAAI+B,KAAK3I,GAAiB9C,SAAS2L,KAAKF,GAAKX,CAAK;AAAA,IACpD;AACEhI,MAAAA,GAAiB9C,SAAS4L,KAAAA;AAAAA,EAE9B,GAAG,CAACpE,GAAkBC,CAAU,CAAC,GAE3BoE,KAAyBjF,EAAY,CAACkE,MAA+C;AACzFA,IAAAA,EAAMO,cAAcC,MAAMC,SAAS,WAC/B1I,EAAe7C,YACjB6C,EAAe7C,UAAU,MACzByH,EAAAA,IAEF3E,GAAiB9C,SAAS4L,KAAAA;AAAAA,EAC5B,GAAG,CAACnE,CAAU,CAAC,GAETqE,KAAoBlF,EAAY,CAACkE,MAA+C;AACpF,UAAMnD,IAAOjF,EAAY1C;AACzB,QAAI,CAAC2H,KAAQ,CAAC9G,EAAS;AACvB,UAAMkK,IAAWD,EAAME,YAAYC,UAAUtD,EAAKS,YAC5C8C,IAAWJ,EAAME,YAAYG,UAAUxD,EAAKU,WAC5CqB,IAAO0B,GAAY5D,GAAkBuD,GAAUG,CAAQ;AAC7D,QAAI,CAACxB,EAAM;AACX,UAAM+B,IAAMC,GAASlE,GAAkBkC,CAAI;AAC3C,IAAI+B,OAAaA,CAAG;AAAA,EACtB,GAAG,CAACjE,GAAkB3G,CAAO,CAAC,GASxBkL,KAA2BA,MAA4B;AAC3D,UAAMC,IAAYC,SAASC,gBAAgBjN,IAAQ,KAAK;AACxD+M,IAAAA,EAAUG,aAAa,SAASC,OAAOjH,EAAKE,OAAOM,IAAOR,EAAKG,KAAK,CAAC,GACrE0G,EAAUG,aAAa,UAAUC,OAAOjH,EAAKC,MAAMQ,IAAOT,EAAKI,MAAM,CAAC;AAEtE,UAAM8G,IAAcA,CAACC,GAAuBC,GAAWC,MAAc;AACnE,YAAMC,IAAQR,SAASC,gBAAgBjN,IAAQ,GAAG;AAClDwN,MAAAA,EAAMN,aAAa,aAAa,aAAaI,CAAC,IAAIC,CAAC,GAAG,GACtDF,EAAOI,WAAWC,QAASC,CAAAA,MAASH,EAAMI,YAAYD,EAAKE,UAAU,EAAI,CAAC,CAAC,GAC3Ed,EAAUa,YAAYJ,CAAK;AAAA,IAC7B;AAEA,QAAIM,IAAkC,MAClCC,IAAoC,MACpCC,IAAoC;AACxC,UAAMC,IAAkBjB,SAASkB,cAAc,KAAK,GAC9CC,IAAaC,GAAWH,CAAe;AAC7CI,IAAAA,GAAU,MAAM;AACdF,MAAAA,EAAWG,OACT,gBAAAC,EAAAC,IAAA,EACE,UAAA;AAAA,QAAA,gBAAAC,EAAC,SAAI,OAAO/H,GAAM,QAAQC,GAAM,KAAM+H,CAAAA,MAAO;AAAEZ,UAAAA,IAAYY;AAAAA,QAAI,GAC7D,UAAA,gBAAAD,EAACE,IAAA,EACC,MAAAvN,GACA,QAAAiG,GACA,QAAQK,IACR,QAAQ/B,GACR,UAAAjB,GACA,KAAAtC,IACA,QAAAC,IACA,UAAA8E,GACA,WAAAC,GACA,eAAA9E,IACA,SAAAV,GACA,eAAAe,GACA,iBAAAC,IAAiC,GAErC;AAAA,0BACC,OAAA,EAAI,OAAOoE,GAAiB,QAAQL,GAAM,KAAM+H,CAAAA,MAAO;AAAEX,UAAAA,IAAcW;AAAAA,QAAI,GAC1E,4BAAC,KAAA,EAAE,WAAW,aAAa1H,CAAe,OACxC,4BAAC4H,IAAA,EACC,OAAOnH,GACP,UAAU7C,GACV,YAAYoD,IACZ,YAAY6G,IACZ,gBAAgBC,IAAoB,GAExC,EAAA,CACF;AAAA,0BACC,OAAA,EAAI,OAAOpI,GAAM,QAAQQ,GAAkB,KAAMwH,CAAAA,MAAO;AAAEV,UAAAA,IAAcU;AAAAA,QAAI,GAC3E,UAAA,gBAAAD,EAACM,IAAA,EACC,KAAK,GACL,OAAO1H,GACP,UAAUjG,EAAKyD,QACf,YAAYmK,IACZ,YAAYnH,IACZ,gBAAgBoH,IAAoB,EAAA,CAExC;AAAA,MAAA,EAAA,CACF,CACF;AAAA,IACF,CAAC,GACGnB,KAAWV,EAAYU,GAAW5H,EAAKE,MAAMF,EAAKC,GAAG,GACrD4H,KAAaX,EAAYW,GAAahH,GAAab,EAAKC,GAAG,GAC3D6H,KAAaZ,EAAYY,GAAa9H,EAAKE,MAAMF,EAAKC,MAAMQ,CAAI,GACpEwH,EAAWe,QAAAA,GAEP3M,KAAcoB,GAAa5C,WAC7BqM,EAAYzJ,GAAa5C,SAASmF,EAAKE,OAAOM,IAAOzG,GAAYiG,EAAKC,GAAG;AAM3E,UAAMgJ,IAAcA,CAACC,GAAc9B,GAAWC,GAAW8B,MAAoB;AAC3E,YAAMC,IAAUtC,SAASC,gBAAgBjN,IAAQ,MAAM;AACvDsP,MAAAA,EAAQpC,aAAa,KAAKC,OAAOG,CAAC,CAAC,GACnCgC,EAAQpC,aAAa,KAAKC,OAAOI,CAAC,CAAC,GAC/B8B,OAAgBnC,aAAa,aAAa,eAAeI,CAAC,KAAKC,CAAC,GAAG,GACvE+B,EAAQpC,aAAa,eAAe,QAAQ,GAC5CoC,EAAQpC,aAAa,qBAAqB,QAAQ,GAClDoC,EAAQpC,aAAa,aAAa,IAAI,GACtCoC,EAAQpC,aAAa,eAAe,YAAY,GAChDoC,EAAQC,cAAcH,GACtBrC,EAAUa,YAAY0B,CAAO;AAAA,IAC/B;AACA,WAAIrN,QAAoBA,IAAQ8E,IAAc,GAAGb,EAAKC,MAAMQ,IAAO,GAAG,EAAI,GACtE3E,KAAQmN,EAAYnN,GAAQkE,EAAKE,OAAOM,IAAO,GAAGR,EAAKC,MAAMQ,IAAOO,IAAmBD,IAAe,GAAG,EAAK,GAE3G8F;AAAAA,EACT,GAQMyC,KAAyBA,CAACC,MAA0D;AACxF,UAAMC,IAAM5C,GAAAA;AACZ,QAAI,CAAC4C,EAAK;AACV,UAAMC,IAAU3C,SAASkB,cAAc,KAAK;AAC5CyB,IAAAA,EAAQtD,MAAMuD,WAAW,YACzBD,EAAQtD,MAAMlG,MAAM,KACpBwJ,EAAQtD,MAAMjG,OAAO,YACrBuJ,EAAQ/B,YAAY8B,CAAG,GACvB1C,SAAS6C,KAAKjC,YAAY+B,CAAO,GACjCF,EAAIC,GAAK,MAAM;AACb,MAAIC,EAAQG,cAAY9C,SAAS6C,KAAKE,YAAYJ,CAAO;AAAA,IAC3D,CAAC;AAAA,EACH;AAEAK,EAAAA,GAAoBnO,GAAK,OAAO;AAAA,IAC9BoO,aAAaA,MAAM;AACjB,MAAIzM,IACFgM,GAAuB,CAACE,GAAKQ,MAAW;AACtCC,QAAAA,GAAcT,GAAK5N,KAAoB,aAAa,GACpDoO,EAAAA;AAAAA,MACF,CAAC,IACQ5M,EAAOvC,WAChBoP,GAAc7M,EAAOvC,SAASe,KAAoB,aAAa;AAAA,IAEnE;AAAA,IACAsO,aAAaA,MAAM;AACjB,MAAI5M,IACFgM,GAAuB,CAACE,GAAKQ,MAAW;AACtCG,QAAAA,GAAiBX,GAAK5N,KAAoB,eAAewO,QAAWJ,CAAM;AAAA,MAC5E,CAAC,IACQ5M,EAAOvC,WAChBsP,GAAiB/M,EAAOvC,SAASe,KAAoB,aAAa;AAAA,IAEtE;AAAA,EAAA,EACA;AAOF,QAAMkN,KAAkBA,CAACpO,MAAsCuD,GAAYzC,KAAK6O,MAAM,CAAC3P,CAAC,CAAC,KAAK,IACxFqO,KAAsBA,OAAO;AAAA,IACjCuB,UAAU;AAAA,IACVC,YAAY;AAAA,IACZC,YAAYtL;AAAAA,IACZuL,OAAOxL;AAAAA,IACPyL,IAAIlO,MAAsB,eAAe,WAAW;AAAA,EAAA,IAEhDmO,KAAkB;AAAA,IACtBL,UAAU;AAAA,IACVC,YAAY;AAAA,IACZC,YAAY;AAAA,IACZE,IAAI;AAAA,EAAA,GAEA/B,KAAkBA,CAACjO,MAAsC2D,GAAY7C,KAAK6O,MAAM,CAAC3P,CAAC,CAAC,KAAK,IACxFkO,KAAsBA,OAAO;AAAA,IACjC0B,UAAU;AAAA,IACVC,YAAY;AAAA,IACZC,YAAY;AAAA,IACZI,IAAI;AAAA,IACJF,IAAI;AAAA,EAAA,IAEAG,KAAkB;AAAA,IACtBP,UAAU;AAAA,IACVC,YAAY;AAAA,IACZC,YAAY;AAAA,EAAA;AAGd,2BACGM,IAAA,EAAoB,WAAA/N,IAAsB,gBAAAC,IACxC,UAAA,CAACC,MAAe,CAACC,MAAgBhC,EAAKyD,WAAW,KAAKD,MAAY,IAAI,OAAOpB,IAC5E,gBAAA+K,EAAC,SAAI,OAAO;AAAA,IAAE0C,SAAS;AAAA,IAAQC,eAAe;AAAA,EAAA,GAC3ClO,UAAAA;AAAAA,IAAAA,MACC,gBAAAyL,EAAC,SAAI,OAAO;AAAA,MAAE0C,YAAYpK,IAAcC;AAAAA,IAAAA,GACtC,4BAACoK,IAAA,EACC,kBAAA7I,GACA,MAAA7B,GACA,MAAAC,GACA,eAAAC,GACA,gBAAAE,GACA,YAAYyC,EAAcnD,MAC1B,WAAWmD,EAAcpD,KACzB,OAAOS,GACP,QAAQnG,IACR,YAAYkL,IAAsB,GAEtC;AAAA,IAEF,gBAAA4C,EAAC,SACC,OAAO;AAAA,MACL0C,SAAS;AAAA,MACTI,qBAAqB9O,IACjB,GAAGwE,CAAW,MAAMC,CAAe,MAAMJ,CAAa,MAAM3G,IAAa4F,EAAW,OACpF,GAAGkB,CAAW,MAAMC,CAAe,MAAMJ,CAAa;AAAA,MAC1D0K,kBAAkB,GAAGpL,EAAKC,GAAG,MAAMW,CAAc,MAAMI,CAAgB,MAAMD,CAAY;AAAA,IAAA,GAG3F,UAAA;AAAA,MAAA,gBAAAwH,EAAC,SAAI,OAAO;AAAA,QAAE8C,YAAY;AAAA,QAAGC,SAAS;AAAA,QAAGhP,OAAOuE;AAAAA,QAAatE,QAAQqE;AAAAA,QAAgBmK,SAAS;AAAA,QAAQQ,YAAY;AAAA,QAAUC,gBAAgB;AAAA,MAAA,GAC1I,UAAA,gBAAAjD,EAAC,OAAA,EAAI,OAAO1H,GAAa,QAAQD,GAC/B,UAAA,gBAAA2H,EAAC,QAAA,EACC,GAAG1H,IAAc,GACjB,GAAGD,IAAiB,GACpB,WAAW,eAAeC,IAAc,CAAC,KAAKD,IAAiB,CAAC,KAChE,YAAW,UACX,kBAAiB,UACjB,UAAU,IACV,YAAW,cAEV7E,UAAAA,MAAU,GAAA,CACb,GACF,GACF;AAAA,MACA,gBAAAwM,EAAC,SAAI,OAAO;AAAA,QAAE8C,YAAY;AAAA,QAAGC,SAAS;AAAA,QAAGhP,OAAOwE;AAAAA,QAAiBvE,QAAQqE;AAAAA,QAAgB6K,UAAU;AAAA,MAAA,GACjG,UAAA,gBAAAlD,EAAC,OAAA,EAAI,OAAOzH,GAAiB,QAAQF,GACnC,UAAA,gBAAA2H,EAAC,KAAA,EAAE,WAAW,aAAazH,CAAe,IAAI,CAACuC,EAAcpD,GAAG,KAC9D,UAAA,gBAAAsI,EAACG,IAAA,EACC,OAAOnH,GACP,UAAU7C,GACV,YAAYsF,IACZ,YAAY2E,IACZ,gBAAgBC,GAAAA,CAAoB,EAAA,CAExC,GACF,GACF;AAAA,wBACC,OAAA,EACC,KAAKrL,GACL,UAAUgI,IACV,OAAO;AAAA,QAAE8F,YAAY;AAAA,QAAGC,SAAS;AAAA,QAAGhP,OAAOoE;AAAAA,QAAenE,QAAQqE;AAAAA,QAAgB6K,UAAU;AAAA,QAAQC,oBAAoB;AAAA,QAAWhC,UAAU;AAAA,MAAA,GAE7I,UAAA,gBAAAnB,EAAC,OAAA,EAAI,OAAO;AAAA,QAAEjM,OAAOkE;AAAAA,QAAMjE,QAAQkE;AAAAA,QAAMiJ,UAAU;AAAA,MAAA,GACjD,UAAA,gBAAAnB,EAAC,UAAA,EACC,KAAK/K,IACL,OAAOkD,KAAiBkC,OAAOC,oBAAoB,IACnD,QAAQjC,KAAkBgC,OAAOC,oBAAoB,IACrD,OAAO;AAAA,QACLvG,OAAOoE;AAAAA,QACPnE,QAAQqE;AAAAA,QACR8I,UAAU;AAAA,QACVzJ,KAAK;AAAA,QACLC,MAAM;AAAA,QACN6K,SAAS;AAAA,QACT3E,QAAQ;AAAA,MAAA,GAEV,aAAaV,IACb,cAAcgB,IACd,SAASC,GAAAA,CAAkB,GAE/B,GACF;AAAA,MACC3K,MAAe,gBAAAuM,EAACoD,IAAA,EAAY,KAAKhO,IAAmB3B,UAAAA,IAAY;AAAA,MACjE,gBAAAuM,EAAC,SAAI,OAAO;AAAA,QAAE8C,YAAY;AAAA,QAAGC,SAAS;AAAA,QAAGhP,OAAOoE;AAAAA,QAAenE,QAAQyE;AAAAA,QAAkByK,UAAU;AAAA,MAAA,GACjG,UAAA,gBAAApD,EAAC,OAAA,EAAI,OAAO3H,GAAe,QAAQM,GAAkB,OAAO;AAAA,QAAEyK,UAAU;AAAA,MAAA,GACrEnM,UAAAA;AAAAA,QAAAA,KAAuB,KACtB,gBAAAiJ,EAAC,QAAA,EACC,UAAA,gBAAAF,EAAC,YAAA,EAAS,IAAI7E,IAEZ,UAAA;AAAA,UAAA,gBAAA+E,EAAC,QAAA,EAAK,GAAG,GAAG,GAAG,GAAG,OAAO7H,GAAe,QAAQM,EAAAA,CAAiB;AAAA,UAMjE,gBAAAuH,EAAC,QAAA,EACC,GAAG,CAAC7E,IACJ,GAAGlJ,IACH,OAAOkJ,IACP,QAAQlI,KAAKH,IAAI,GAAG2F,IAAmBxG,EAA2B,EAAA,CAAE;AAAA,QAAA,EAAA,CAExE,EAAA,CACF;AAAA,QAEF,gBAAA+N,EAAC,KAAA,EAAE,UAAUjJ,KAAuB,IAAI,QAAQkE,EAAW,MAAM4G,QAC/D,UAAA,gBAAA7B,EAAC,KAAA,EAAE,WAAW,aAAa,CAAClF,EAAcnD,IAAI,OAC5C,UAAA,gBAAAqI,EAACM,IAAA,EACC,KAAK,GACL,OAAO1H,GACP,UAAUjG,EAAKyD,QACf,YAAYmK,IACZ,YAAYlF,IACZ,gBAAgBmF,IAAoB,GAExC,EAAA,CACF;AAAA,MAAA,EAAA,CACF,EAAA,CACF;AAAA,MAGA,gBAAAR,EAAC,SAAI,OAAO;AAAA,QAAE8C,YAAY;AAAA,QAAGC,SAAS;AAAA,QAAGhP,OAAOoE;AAAAA,QAAenE,QAAQwE;AAAAA,QAAcgK,SAAS;AAAA,QAAQQ,YAAY;AAAA,QAAUC,gBAAgB;AAAA,MAAA,GAC1I,UAAA,gBAAAjD,EAAC,OAAA,EAAI,OAAO7H,GAAe,QAAQK,GACjC,UAAA,gBAAAwH,EAAC,QAAA,EACC,GAAG7H,IAAgB,GACnB,GAAGK,IAAe,GAClB,YAAW,UACX,kBAAiB,UACjB,UAAU,IACV,YAAW,cAEVjF,UAAAA,KAAU,GAAA,CACb,EAAA,CACF,GACF;AAAA,MACCO,KACC,gBAAAkM,EAAC,OAAA,EAAI,OAAO;AAAA,QAAE8C,YAAY;AAAA,QAAGC,SAAS;AAAA,QAAGhP,OAAOqD;AAAAA,QAAasL,YAAYlR;AAAAA,QAAYwC,QAAQqE;AAAAA,MAAAA,GAC3F,4BAAC,OAAA,EAAI,OAAOjB,IAAa,QAAQiB,GAAgB,KAAKnD,IAAc,OAAO;AAAA,QAAEgO,UAAU;AAAA,MAAA,GACrF,UAAA,gBAAAlD,EAACqD,IAAA,EACC,QAAQnM,GACR,UAAU,GACV,UAAAjB,GACA,QAAQoC,EAAAA,CAAe,EAAA,CAE3B,EAAA,CACF;AAAA,IAAA,EAAA,CAEJ;AAAA,EAAA,EAAA,CACF,sBAEC,OAAA,EAAI,OAAO3D,IAAa,QAAQC,IAAc,KAAKE,GAElD,UAAA;AAAA,IAAA,gBAAAmL,EAAC,WAAOsD,UAAAA,GAAAA,CAAkB;AAAA,IAC1B,gBAAAxD,EAAC,OAAE,WAAW,aAAarI,EAAKE,IAAI,IAAIF,EAAKC,GAAG,KAC9C,UAAA;AAAA,MAAA,gBAAAsI,EAACE,MACC,MAAAvN,GACA,QAAAiG,GACA,QAAQK,IACR,QAAQ/B,GACR,UAAAjB,GACA,KAAAtC,IACA,QAAAC,IACA,UAAA8E,GACA,WAAAC,GACA,eAAA9E,IACA,aAAAJ,IACA,SAAAN,GACA,eAAAe,GACA,iBAAAC,IAAiC;AAAA,MAEnC,gBAAA6L,EAACM,MACC,KAAKpI,GACL,OAAOU,GACP,UAAUjG,EAAKyD,QACf,YAAYmK,IACZ,YAAYnH,IACZ,gBAAgBoH,IAChB,OAAOjN,KAAU,IACjB,aAAasD,KAAiBpF,IAC9B,YAAY2Q,GAAAA,CAAgB;AAAA,wBAE7BjC,IAAA,EACC,OAAOnH,GACP,UAAU7C,GACV,YAAYoD,IACZ,YAAY6G,IACZ,gBAAgBC,IAChB,OAAO7M,MAAU,IACjB,aAAaiD,KAAkBhF,IAC/B,YAAY6Q,IAAgB;AAAA,MAE7BxO,KACC,gBAAAkM,EAAC,KAAA,EAAE,WAAW,aAAa/H,IAAOzG,CAAU,QAC1C,UAAA,gBAAAwO,EAACqD,IAAA,EACC,QAAQnM,GACR,UAAU,GACV,UAAAjB,GACA,QAAQiC,GAAK,EAAA,CAEjB;AAAA,IAAA,EAAA,CAEJ;AAAA,EAAA,EAAA,CACF,EAAA,CAEJ;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"visualization.es5.js","sources":["../src/components/Heatmap/Heatmap.tsx"],"sourcesContent":["import type { HeatmapProps } from \"./types\";\nimport { useImperativeHandle, useRef, useMemo } from \"react\";\nimport { downloadAsSVG, downloadSVGAsPNG } from \"../../utility\";\nimport { ResponsiveContainer, useResponsiveParentSize } from \"../../responsive\";\nimport { makeTickFormat, getXAxisTickLabelProps } from \"./heatmapAxisProps\";\nimport { useHeatmapLayout } from \"./heatmapLayout\";\nimport { withOffscreenExportSVG } from \"./scrollable/heatmapExport\";\nimport HeatmapScrollableGrid from \"./scrollable/HeatmapScrollableGrid\";\nimport HeatmapStaticSvg from \"./HeatmapStaticSvg\";\n\nconst Heatmap = ({\n data,\n onClick,\n ref,\n downloadFileName,\n colors,\n colorDomain,\n xLabel,\n yLabel,\n tooltipBody,\n margin,\n gap = 2,\n isRect = true,\n animationType,\n showLegend = true,\n width,\n height,\n xLabelOrientation = \"vertical\",\n selectedCells,\n deselectedColor,\n cellWidth,\n cellHeight,\n scrollToSelection,\n showMiniMap = false,\n}: HeatmapProps) => {\n const { parentRef, containerStyle, width: parentWidth, height: parentHeight } = useResponsiveParentSize({ width, height });\n const svgRef = useRef<SVGSVGElement | null>(null);\n const legendSvgRef = useRef<SVGSVGElement | null>(null);\n const isScrollable = cellWidth != null && cellHeight != null;\n\n const layout = useHeatmapLayout({\n data, colorDomain, colors, xLabelOrientation, margin, showLegend, isScrollable,\n cellWidth, cellHeight, parentWidth, parentHeight, showMiniMap, gap, isRect,\n selectedCells, deselectedColor,\n });\n const { allColNames, allRowNames, numRows } = layout;\n\n const xAxisTickFormat = useMemo(() => makeTickFormat(allColNames), [allColNames]);\n const yAxisTickFormat = useMemo(() => makeTickFormat(allRowNames), [allRowNames]);\n const xAxisTickLabelProps = useMemo(() => getXAxisTickLabelProps(xLabelOrientation), [xLabelOrientation]);\n\n const buildExportOptions = () => ({\n layout, data, gap, isRect, animationType, onClick, selectedCells, deselectedColor,\n xLabel, yLabel, showLegend, legendSvg: legendSvgRef.current,\n xAxisTickFormat, yAxisTickFormat, xAxisTickLabelProps,\n });\n\n useImperativeHandle(ref, () => ({\n downloadSVG: () => {\n if (isScrollable) {\n withOffscreenExportSVG(buildExportOptions(), (svg, onDone) => {\n downloadAsSVG(svg, downloadFileName ?? \"heatmap.svg\");\n onDone();\n });\n } else if (svgRef.current) {\n downloadAsSVG(svgRef.current, downloadFileName ?? \"heatmap.svg\");\n }\n },\n downloadPNG: () => {\n if (isScrollable) {\n withOffscreenExportSVG(buildExportOptions(), (svg, onDone) => {\n downloadSVGAsPNG(svg, downloadFileName ?? \"heatmap.png\", undefined, onDone);\n });\n } else if (svgRef.current) {\n downloadSVGAsPNG(svgRef.current, downloadFileName ?? \"heatmap.png\");\n }\n },\n }));\n // No deps array: buildScrollableExportSVG (and the plain closures above) now render the cells\n // and both axes fresh on every export (see its comment), reading a long list of render-scoped\n // values - hand-maintaining an exhaustive deps list for that is exactly the kind of duplicated\n // upkeep this refactor was trying to reduce elsewhere, and risks a stale export if one is ever\n // missed. Recomputing this handle (two small closures) on every render is negligible cost.\n\n return (\n <ResponsiveContainer parentRef={parentRef} containerStyle={containerStyle}>\n {!parentWidth || !parentHeight || data.length === 0 || numRows === 0 ? null : isScrollable ? (\n <HeatmapScrollableGrid\n legendSvgRef={legendSvgRef}\n layout={layout}\n data={data}\n showMiniMap={showMiniMap}\n showLegend={showLegend}\n xLabel={xLabel}\n yLabel={yLabel}\n tooltipBody={tooltipBody}\n onClick={onClick}\n selectedCells={selectedCells}\n scrollToSelection={scrollToSelection}\n xAxisTickFormat={xAxisTickFormat}\n yAxisTickFormat={yAxisTickFormat}\n xAxisTickLabelProps={xAxisTickLabelProps}\n />\n ) : (\n <HeatmapStaticSvg\n svgRef={svgRef}\n layout={layout}\n parentWidth={parentWidth}\n parentHeight={parentHeight}\n data={data}\n gap={gap}\n isRect={isRect}\n animationType={animationType}\n tooltipBody={tooltipBody}\n onClick={onClick}\n selectedCells={selectedCells}\n deselectedColor={deselectedColor}\n xLabel={xLabel}\n yLabel={yLabel}\n showLegend={showLegend}\n xAxisTickFormat={xAxisTickFormat}\n yAxisTickFormat={yAxisTickFormat}\n xAxisTickLabelProps={xAxisTickLabelProps}\n />\n )}\n </ResponsiveContainer>\n );\n};\n\nexport default Heatmap;\n"],"names":["Heatmap","t0","$","_c","data","onClick","ref","downloadFileName","colors","colorDomain","xLabel","yLabel","tooltipBody","margin","gap","t1","isRect","t2","animationType","showLegend","t3","width","height","xLabelOrientation","t4","selectedCells","deselectedColor","cellWidth","cellHeight","scrollToSelection","showMiniMap","t5","undefined","t6","parentRef","containerStyle","parentWidth","parentHeight","useResponsiveParentSize","svgRef","useRef","legendSvgRef","isScrollable","t7","layout","useHeatmapLayout","allColNames","allRowNames","numRows","t8","makeTickFormat","xAxisTickFormat","t9","yAxisTickFormat","t10","getXAxisTickLabelProps","xAxisTickLabelProps","t11","legendSvg","current","buildExportOptions","t12","downloadSVG","withOffscreenExportSVG","svg","onDone","downloadAsSVG","downloadPNG","svg_0","onDone_0","downloadSVGAsPNG","useImperativeHandle","t13","length","jsx","HeatmapScrollableGrid","HeatmapStaticSvg","t14","ResponsiveContainer"],"mappings":"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"}
|