@weng-lab/visualization 2.4.1 → 2.4.3
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.map +1 -1
- package/dist/src/components/Heatmap/scrollable/heatmapExport.d.ts +5 -10
- package/dist/src/components/Heatmap/scrollable/heatmapExport.d.ts.map +1 -1
- package/dist/src/components/Histogram/Histogram.d.ts.map +1 -1
- package/dist/src/utility.d.ts +8 -2
- package/dist/src/utility.d.ts.map +1 -1
- package/dist/visualization.es10.js +11 -11
- package/dist/visualization.es100.js +2 -156
- package/dist/visualization.es100.js.map +1 -1
- package/dist/visualization.es101.js +4795 -78
- package/dist/visualization.es101.js.map +1 -1
- package/dist/visualization.es102.js +25 -38
- package/dist/visualization.es102.js.map +1 -1
- package/dist/visualization.es103.js +45 -47
- package/dist/visualization.es103.js.map +1 -1
- package/dist/visualization.es104.js +141 -71
- package/dist/visualization.es104.js.map +1 -1
- package/dist/visualization.es105.js +144 -30
- package/dist/visualization.es105.js.map +1 -1
- package/dist/visualization.es106.js +9 -9
- package/dist/visualization.es106.js.map +1 -1
- package/dist/visualization.es107.js +73 -25
- package/dist/visualization.es107.js.map +1 -1
- package/dist/visualization.es108.js +31 -68
- package/dist/visualization.es108.js.map +1 -1
- package/dist/visualization.es109.js +12 -221
- package/dist/visualization.es109.js.map +1 -1
- package/dist/visualization.es11.js +10 -10
- package/dist/visualization.es110.js +26 -2
- package/dist/visualization.es110.js.map +1 -1
- package/dist/visualization.es111.js +69 -556
- package/dist/visualization.es111.js.map +1 -1
- package/dist/visualization.es112.js +58 -214
- package/dist/visualization.es112.js.map +1 -1
- package/dist/visualization.es113.js +32 -2
- package/dist/visualization.es113.js.map +1 -1
- package/dist/visualization.es114.js +18 -4800
- package/dist/visualization.es114.js.map +1 -1
- package/dist/visualization.es115.js +13 -24
- package/dist/visualization.es115.js.map +1 -1
- package/dist/visualization.es116.js +26 -45
- package/dist/visualization.es116.js.map +1 -1
- package/dist/visualization.es117.js +29 -141
- package/dist/visualization.es117.js.map +1 -1
- package/dist/visualization.es118.js +41 -143
- package/dist/visualization.es118.js.map +1 -1
- package/dist/visualization.es119.js +67 -49
- package/dist/visualization.es119.js.map +1 -1
- package/dist/visualization.es12.js +2 -2
- package/dist/visualization.es120.js +24 -31
- package/dist/visualization.es120.js.map +1 -1
- package/dist/visualization.es121.js +85 -18
- package/dist/visualization.es121.js.map +1 -1
- package/dist/visualization.es122.js +36 -14
- package/dist/visualization.es122.js.map +1 -1
- package/dist/visualization.es123.js +45 -26
- package/dist/visualization.es123.js.map +1 -1
- package/dist/visualization.es124.js +22 -32
- package/dist/visualization.es124.js.map +1 -1
- package/dist/visualization.es125.js +123 -44
- package/dist/visualization.es125.js.map +1 -1
- package/dist/visualization.es126.js +79 -75
- package/dist/visualization.es126.js.map +1 -1
- package/dist/visualization.es127.js +154 -23
- package/dist/visualization.es127.js.map +1 -1
- package/dist/visualization.es128.js +81 -83
- package/dist/visualization.es128.js.map +1 -1
- package/dist/visualization.es129.js +37 -35
- package/dist/visualization.es129.js.map +1 -1
- package/dist/visualization.es13.js +7 -7
- package/dist/visualization.es130.js +60 -85
- package/dist/visualization.es130.js.map +1 -1
- package/dist/visualization.es131.js +47 -5
- package/dist/visualization.es131.js.map +1 -1
- package/dist/visualization.es132.js +63 -89
- package/dist/visualization.es132.js.map +1 -1
- package/dist/visualization.es133.js +7 -13
- package/dist/visualization.es133.js.map +1 -1
- package/dist/visualization.es134.js +5 -6
- package/dist/visualization.es134.js.map +1 -1
- package/dist/visualization.es135.js +42 -14
- package/dist/visualization.es135.js.map +1 -1
- package/dist/visualization.es136.js +2 -7
- package/dist/visualization.es136.js.map +1 -1
- package/dist/visualization.es137.js +1605 -13
- package/dist/visualization.es137.js.map +1 -1
- package/dist/visualization.es138.js +19 -4
- package/dist/visualization.es138.js.map +1 -1
- package/dist/visualization.es139.js +27 -7
- package/dist/visualization.es139.js.map +1 -1
- package/dist/visualization.es140.js +14 -14
- package/dist/visualization.es141.js +1 -1
- package/dist/visualization.es142.js +1 -1
- package/dist/visualization.es143.js +1 -1
- package/dist/visualization.es144.js +1 -1
- package/dist/visualization.es145.js +7 -3
- package/dist/visualization.es145.js.map +1 -1
- package/dist/visualization.es146.js +4 -71
- package/dist/visualization.es146.js.map +1 -1
- package/dist/visualization.es147.js +3 -16
- package/dist/visualization.es147.js.map +1 -1
- package/dist/visualization.es148.js +30 -11
- package/dist/visualization.es148.js.map +1 -1
- package/dist/visualization.es149.js +8 -5
- package/dist/visualization.es149.js.map +1 -1
- package/dist/visualization.es15.js +8 -8
- package/dist/visualization.es150.js +6 -30
- package/dist/visualization.es150.js.map +1 -1
- package/dist/visualization.es151.js +3 -7
- package/dist/visualization.es151.js.map +1 -1
- package/dist/visualization.es152.js +16 -6
- package/dist/visualization.es152.js.map +1 -1
- package/dist/visualization.es153.js +16 -3
- package/dist/visualization.es153.js.map +1 -1
- package/dist/visualization.es154.js +32 -16
- package/dist/visualization.es154.js.map +1 -1
- package/dist/visualization.es155.js +16 -16
- package/dist/visualization.es155.js.map +1 -1
- package/dist/visualization.es156.js +9 -31
- package/dist/visualization.es156.js.map +1 -1
- package/dist/visualization.es157.js +6 -16
- package/dist/visualization.es157.js.map +1 -1
- package/dist/visualization.es158.js +6 -10
- package/dist/visualization.es158.js.map +1 -1
- package/dist/visualization.es159.js +10 -6
- package/dist/visualization.es159.js.map +1 -1
- package/dist/visualization.es160.js +4 -6
- package/dist/visualization.es160.js.map +1 -1
- package/dist/visualization.es161.js +4 -10
- package/dist/visualization.es161.js.map +1 -1
- package/dist/visualization.es162.js +8 -4
- package/dist/visualization.es162.js.map +1 -1
- package/dist/visualization.es163.js +3 -3
- package/dist/visualization.es163.js.map +1 -1
- package/dist/visualization.es164.js +12 -8
- package/dist/visualization.es164.js.map +1 -1
- package/dist/visualization.es165.js +26 -4
- package/dist/visualization.es165.js.map +1 -1
- package/dist/visualization.es166.js +83 -11
- package/dist/visualization.es166.js.map +1 -1
- package/dist/visualization.es167.js +89 -26
- package/dist/visualization.es167.js.map +1 -1
- package/dist/visualization.es168.js +13 -2
- package/dist/visualization.es168.js.map +1 -1
- package/dist/visualization.es169.js +5 -1605
- package/dist/visualization.es169.js.map +1 -1
- package/dist/visualization.es170.js +14 -74
- package/dist/visualization.es170.js.map +1 -1
- package/dist/visualization.es171.js +7 -2
- package/dist/visualization.es171.js.map +1 -1
- package/dist/visualization.es172.js +13 -482
- package/dist/visualization.es172.js.map +1 -1
- package/dist/visualization.es173.js +4 -2
- package/dist/visualization.es173.js.map +1 -1
- package/dist/visualization.es174.js +17 -63
- package/dist/visualization.es174.js.map +1 -1
- package/dist/visualization.es175.js +70 -59
- package/dist/visualization.es175.js.map +1 -1
- package/dist/visualization.es176.js +15 -122
- package/dist/visualization.es176.js.map +1 -1
- package/dist/visualization.es177.js +12 -8
- package/dist/visualization.es177.js.map +1 -1
- package/dist/visualization.es178.js +5 -16
- package/dist/visualization.es178.js.map +1 -1
- package/dist/visualization.es179.js +8 -11
- package/dist/visualization.es179.js.map +1 -1
- package/dist/visualization.es18.js +1 -1
- package/dist/visualization.es180.js +15 -5
- package/dist/visualization.es180.js.map +1 -1
- package/dist/visualization.es181.js +11 -12
- package/dist/visualization.es181.js.map +1 -1
- package/dist/visualization.es182.js +5 -3
- package/dist/visualization.es182.js.map +1 -1
- package/dist/visualization.es183.js +12 -2
- package/dist/visualization.es183.js.map +1 -1
- package/dist/visualization.es184.js +4 -11
- package/dist/visualization.es184.js.map +1 -1
- package/dist/visualization.es185.js +2 -31
- package/dist/visualization.es185.js.map +1 -1
- package/dist/visualization.es186.js +10 -42
- package/dist/visualization.es186.js.map +1 -1
- package/dist/visualization.es187.js +29 -48
- package/dist/visualization.es187.js.map +1 -1
- package/dist/visualization.es188.js +43 -3
- package/dist/visualization.es188.js.map +1 -1
- package/dist/visualization.es189.js +50 -3
- package/dist/visualization.es189.js.map +1 -1
- package/dist/visualization.es190.js +3 -6
- package/dist/visualization.es190.js.map +1 -1
- package/dist/visualization.es191.js +3 -5
- package/dist/visualization.es191.js.map +1 -1
- package/dist/visualization.es192.js +5 -10
- package/dist/visualization.es192.js.map +1 -1
- package/dist/visualization.es193.js +4 -3
- package/dist/visualization.es193.js.map +1 -1
- package/dist/visualization.es194.js +9 -16
- package/dist/visualization.es194.js.map +1 -1
- package/dist/visualization.es195.js +3 -18
- package/dist/visualization.es195.js.map +1 -1
- package/dist/visualization.es196.js +17 -36
- package/dist/visualization.es196.js.map +1 -1
- package/dist/visualization.es197.js +19 -2
- package/dist/visualization.es197.js.map +1 -1
- package/dist/visualization.es198.js +37 -2
- package/dist/visualization.es198.js.map +1 -1
- package/dist/visualization.es199.js +2 -4
- package/dist/visualization.es199.js.map +1 -1
- package/dist/visualization.es2.js +8 -8
- package/dist/visualization.es20.js +43 -147
- package/dist/visualization.es20.js.map +1 -1
- package/dist/visualization.es200.js +2 -15
- package/dist/visualization.es200.js.map +1 -1
- package/dist/visualization.es201.js +4 -3
- package/dist/visualization.es201.js.map +1 -1
- package/dist/visualization.es202.js +15 -7
- package/dist/visualization.es202.js.map +1 -1
- package/dist/visualization.es203.js +1 -1
- package/dist/visualization.es203.js.map +1 -1
- package/dist/visualization.es204.js +7 -7
- package/dist/visualization.es204.js.map +1 -1
- package/dist/visualization.es205.js +3 -19
- package/dist/visualization.es205.js.map +1 -1
- package/dist/visualization.es206.js +6 -3
- package/dist/visualization.es206.js.map +1 -1
- package/dist/visualization.es207.js +18 -35
- package/dist/visualization.es207.js.map +1 -1
- package/dist/visualization.es208.js +3 -63
- package/dist/visualization.es208.js.map +1 -1
- package/dist/visualization.es209.js +36 -7
- package/dist/visualization.es209.js.map +1 -1
- package/dist/visualization.es21.js +31 -62
- package/dist/visualization.es21.js.map +1 -1
- package/dist/visualization.es210.js +9 -42
- package/dist/visualization.es210.js.map +1 -1
- package/dist/visualization.es211.js +6 -19
- package/dist/visualization.es211.js.map +1 -1
- package/dist/visualization.es212.js +7 -27
- package/dist/visualization.es212.js.map +1 -1
- package/dist/visualization.es213.js +9 -3
- package/dist/visualization.es213.js.map +1 -1
- package/dist/visualization.es214.js +6 -9
- package/dist/visualization.es214.js.map +1 -1
- package/dist/visualization.es215.js +6 -6
- package/dist/visualization.es215.js.map +1 -1
- package/dist/visualization.es216.js +5 -7
- package/dist/visualization.es216.js.map +1 -1
- package/dist/visualization.es217.js +13 -8
- package/dist/visualization.es217.js.map +1 -1
- package/dist/visualization.es218.js +5 -6
- package/dist/visualization.es218.js.map +1 -1
- package/dist/visualization.es219.js +3 -6
- package/dist/visualization.es219.js.map +1 -1
- package/dist/visualization.es22.js +7 -39
- package/dist/visualization.es22.js.map +1 -1
- package/dist/visualization.es220.js +6 -5
- package/dist/visualization.es220.js.map +1 -1
- package/dist/visualization.es221.js +6 -14
- package/dist/visualization.es221.js.map +1 -1
- package/dist/visualization.es222.js +9 -5
- package/dist/visualization.es222.js.map +1 -1
- package/dist/visualization.es223.js +32 -3
- package/dist/visualization.es223.js.map +1 -1
- package/dist/visualization.es224.js +114 -6
- package/dist/visualization.es224.js.map +1 -1
- package/dist/visualization.es225.js +3 -6
- package/dist/visualization.es225.js.map +1 -1
- package/dist/visualization.es226.js +5 -9
- package/dist/visualization.es226.js.map +1 -1
- package/dist/visualization.es227.js +32 -31
- package/dist/visualization.es227.js.map +1 -1
- package/dist/visualization.es228.js +14 -113
- package/dist/visualization.es228.js.map +1 -1
- package/dist/visualization.es229.js +7 -3
- package/dist/visualization.es229.js.map +1 -1
- package/dist/visualization.es23.js +7 -80
- package/dist/visualization.es23.js.map +1 -1
- package/dist/visualization.es230.js +11 -5
- package/dist/visualization.es230.js.map +1 -1
- package/dist/visualization.es231.js +74 -33
- package/dist/visualization.es231.js.map +1 -1
- package/dist/visualization.es232.js +2 -16
- package/dist/visualization.es232.js.map +1 -1
- package/dist/visualization.es233.js +482 -7
- package/dist/visualization.es233.js.map +1 -1
- package/dist/visualization.es234.js +2 -12
- package/dist/visualization.es234.js.map +1 -1
- package/dist/visualization.es235.js +123 -17
- package/dist/visualization.es235.js.map +1 -1
- package/dist/visualization.es236.js +60 -69
- package/dist/visualization.es236.js.map +1 -1
- package/dist/visualization.es237.js +57 -19
- package/dist/visualization.es237.js.map +1 -1
- package/dist/visualization.es238.js +2 -23
- package/dist/visualization.es238.js.map +1 -1
- package/dist/visualization.es239.js +68 -36
- package/dist/visualization.es239.js.map +1 -1
- package/dist/visualization.es24.js +68 -44
- package/dist/visualization.es24.js.map +1 -1
- package/dist/visualization.es240.js +22 -7
- package/dist/visualization.es240.js.map +1 -1
- package/dist/visualization.es241.js +20 -10
- package/dist/visualization.es241.js.map +1 -1
- package/dist/visualization.es242.js +37 -14
- package/dist/visualization.es242.js.map +1 -1
- package/dist/visualization.es243.js +7 -36
- package/dist/visualization.es243.js.map +1 -1
- package/dist/visualization.es244.js +10 -22
- package/dist/visualization.es244.js.map +1 -1
- package/dist/visualization.es245.js +15 -25
- package/dist/visualization.es245.js.map +1 -1
- package/dist/visualization.es246.js +36 -34
- package/dist/visualization.es246.js.map +1 -1
- package/dist/visualization.es247.js +25 -2
- package/dist/visualization.es247.js.map +1 -1
- package/dist/visualization.es248.js +26 -122
- package/dist/visualization.es248.js.map +1 -1
- package/dist/visualization.es249.js +34 -23
- package/dist/visualization.es249.js.map +1 -1
- package/dist/visualization.es25.js +44 -56
- package/dist/visualization.es25.js.map +1 -1
- package/dist/visualization.es250.js +2 -54
- package/dist/visualization.es250.js.map +1 -1
- package/dist/visualization.es251.js +27 -18
- package/dist/visualization.es251.js.map +1 -1
- package/dist/visualization.es252.js +20 -3
- 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 -3
- package/dist/visualization.es254.js.map +1 -1
- package/dist/visualization.es255.js +3 -3
- 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 +3 -3
- package/dist/visualization.es257.js.map +1 -1
- package/dist/visualization.es258.js +3 -3
- package/dist/visualization.es258.js.map +1 -1
- package/dist/visualization.es259.js +2 -6
- package/dist/visualization.es259.js.map +1 -1
- package/dist/visualization.es26.js +11 -7
- package/dist/visualization.es26.js.map +1 -1
- package/dist/visualization.es260.js +6 -47
- package/dist/visualization.es260.js.map +1 -1
- package/dist/visualization.es261.js +48 -3
- package/dist/visualization.es261.js.map +1 -1
- package/dist/visualization.es262.js +2 -5
- package/dist/visualization.es262.js.map +1 -1
- package/dist/visualization.es263.js +6 -4
- package/dist/visualization.es263.js.map +1 -1
- package/dist/visualization.es264.js +4 -3
- package/dist/visualization.es264.js.map +1 -1
- package/dist/visualization.es265.js +3 -6
- package/dist/visualization.es265.js.map +1 -1
- package/dist/visualization.es266.js +6 -4
- package/dist/visualization.es266.js.map +1 -1
- package/dist/visualization.es267.js +5 -2
- package/dist/visualization.es267.js.map +1 -1
- package/dist/visualization.es268.js +23 -53
- package/dist/visualization.es268.js.map +1 -1
- package/dist/visualization.es269.js +53 -31
- package/dist/visualization.es269.js.map +1 -1
- package/dist/visualization.es27.js +55 -5
- package/dist/visualization.es27.js.map +1 -1
- package/dist/visualization.es270.js +51 -31
- package/dist/visualization.es270.js.map +1 -1
- package/dist/visualization.es271.js +31 -12
- package/dist/visualization.es271.js.map +1 -1
- package/dist/visualization.es272.js +34 -7
- package/dist/visualization.es272.js.map +1 -1
- package/dist/visualization.es273.js +12 -34
- package/dist/visualization.es273.js.map +1 -1
- package/dist/visualization.es274.js +29 -4
- package/dist/visualization.es274.js.map +1 -1
- package/dist/visualization.es275.js +119 -3
- package/dist/visualization.es275.js.map +1 -1
- package/dist/visualization.es276.js +29 -6
- package/dist/visualization.es276.js.map +1 -1
- package/dist/visualization.es277.js +10 -12
- package/dist/visualization.es277.js.map +1 -1
- package/dist/visualization.es278.js +14 -2
- package/dist/visualization.es278.js.map +1 -1
- package/dist/visualization.es279.js +32 -3
- package/dist/visualization.es279.js.map +1 -1
- package/dist/visualization.es28.js +147 -6
- package/dist/visualization.es28.js.map +1 -1
- package/dist/visualization.es280.js +28 -3
- package/dist/visualization.es280.js.map +1 -1
- package/dist/visualization.es281.js +10 -10
- package/dist/visualization.es281.js.map +1 -1
- package/dist/visualization.es282.js +12 -25
- package/dist/visualization.es282.js.map +1 -1
- package/dist/visualization.es283.js +17 -4
- package/dist/visualization.es283.js.map +1 -1
- package/dist/visualization.es284.js +23 -32
- package/dist/visualization.es284.js.map +1 -1
- package/dist/visualization.es285.js +17 -3
- package/dist/visualization.es285.js.map +1 -1
- package/dist/visualization.es286.js +96 -11
- package/dist/visualization.es286.js.map +1 -1
- package/dist/visualization.es287.js +27 -35
- package/dist/visualization.es287.js.map +1 -1
- package/dist/visualization.es288.js +67 -256
- package/dist/visualization.es288.js.map +1 -1
- package/dist/visualization.es289.js +49 -57
- package/dist/visualization.es289.js.map +1 -1
- package/dist/visualization.es29.js +110 -47
- package/dist/visualization.es29.js.map +1 -1
- package/dist/visualization.es290.js +34 -5
- package/dist/visualization.es290.js.map +1 -1
- package/dist/visualization.es291.js +41 -21
- package/dist/visualization.es291.js.map +1 -1
- package/dist/visualization.es292.js +3 -38
- package/dist/visualization.es292.js.map +1 -1
- package/dist/visualization.es293.js +11 -34
- package/dist/visualization.es293.js.map +1 -1
- package/dist/visualization.es294.js +36 -14
- package/dist/visualization.es294.js.map +1 -1
- package/dist/visualization.es295.js +260 -18
- package/dist/visualization.es295.js.map +1 -1
- package/dist/visualization.es296.js +59 -8
- package/dist/visualization.es296.js.map +1 -1
- package/dist/visualization.es297.js +5 -7
- package/dist/visualization.es297.js.map +1 -1
- package/dist/visualization.es298.js +21 -140
- package/dist/visualization.es298.js.map +1 -1
- package/dist/visualization.es299.js +37 -5
- package/dist/visualization.es299.js.map +1 -1
- package/dist/visualization.es3.js +12 -12
- package/dist/visualization.es30.js +7 -33
- package/dist/visualization.es30.js.map +1 -1
- package/dist/visualization.es300.js +29 -104
- package/dist/visualization.es300.js.map +1 -1
- package/dist/visualization.es301.js +13 -11
- package/dist/visualization.es301.js.map +1 -1
- package/dist/visualization.es302.js +18 -141
- package/dist/visualization.es302.js.map +1 -1
- package/dist/visualization.es303.js +9 -6
- package/dist/visualization.es303.js.map +1 -1
- package/dist/visualization.es304.js +5 -69
- package/dist/visualization.es304.js.map +1 -1
- package/dist/visualization.es305.js +137 -32
- package/dist/visualization.es305.js.map +1 -1
- package/dist/visualization.es306.js +5 -20
- package/dist/visualization.es306.js.map +1 -1
- package/dist/visualization.es307.js +109 -3
- package/dist/visualization.es307.js.map +1 -1
- package/dist/visualization.es308.js +12 -24
- package/dist/visualization.es308.js.map +1 -1
- package/dist/visualization.es309.js +139 -28
- package/dist/visualization.es309.js.map +1 -1
- package/dist/visualization.es31.js +17 -31
- package/dist/visualization.es31.js.map +1 -1
- package/dist/visualization.es310.js +6 -2
- package/dist/visualization.es310.js.map +1 -1
- package/dist/visualization.es311.js +72 -2
- package/dist/visualization.es311.js.map +1 -1
- package/dist/visualization.es312.js +35 -5
- package/dist/visualization.es312.js.map +1 -1
- package/dist/visualization.es313.js +21 -15
- package/dist/visualization.es313.js.map +1 -1
- package/dist/visualization.es314.js +3 -34
- package/dist/visualization.es314.js.map +1 -1
- package/dist/visualization.es315.js +24 -27
- package/dist/visualization.es315.js.map +1 -1
- package/dist/visualization.es316.js +30 -10
- package/dist/visualization.es316.js.map +1 -1
- package/dist/visualization.es317.js +2 -7
- package/dist/visualization.es317.js.map +1 -1
- package/dist/visualization.es318.js +2 -14
- package/dist/visualization.es318.js.map +1 -1
- package/dist/visualization.es319.js +6 -12
- package/dist/visualization.es319.js.map +1 -1
- package/dist/visualization.es32.js +31 -18
- package/dist/visualization.es32.js.map +1 -1
- package/dist/visualization.es320.js +15 -2
- package/dist/visualization.es320.js.map +1 -1
- package/dist/visualization.es321.js +35 -3
- package/dist/visualization.es321.js.map +1 -1
- package/dist/visualization.es322.js +28 -2
- package/dist/visualization.es322.js.map +1 -1
- package/dist/visualization.es323.js +10 -103
- package/dist/visualization.es323.js.map +1 -1
- package/dist/visualization.es324.js +6 -4
- package/dist/visualization.es324.js.map +1 -1
- package/dist/visualization.es325.js +14 -3
- package/dist/visualization.es325.js.map +1 -1
- package/dist/visualization.es326.js +12 -19
- package/dist/visualization.es326.js.map +1 -1
- package/dist/visualization.es327.js +2 -6
- package/dist/visualization.es327.js.map +1 -1
- package/dist/visualization.es328.js +3 -15
- package/dist/visualization.es328.js.map +1 -1
- package/dist/visualization.es329.js +2 -5
- package/dist/visualization.es329.js.map +1 -1
- package/dist/visualization.es33.js +18701 -12
- package/dist/visualization.es33.js.map +1 -1
- package/dist/visualization.es330.js +103 -28
- package/dist/visualization.es330.js.map +1 -1
- package/dist/visualization.es331.js +4 -6
- package/dist/visualization.es331.js.map +1 -1
- package/dist/visualization.es332.js +3 -2
- package/dist/visualization.es332.js.map +1 -1
- package/dist/visualization.es333.js +19 -20
- package/dist/visualization.es333.js.map +1 -1
- package/dist/visualization.es334.js +6 -21
- package/dist/visualization.es334.js.map +1 -1
- package/dist/visualization.es335.js +14 -5
- package/dist/visualization.es335.js.map +1 -1
- package/dist/visualization.es336.js +4 -7
- package/dist/visualization.es336.js.map +1 -1
- package/dist/visualization.es337.js +28 -18
- package/dist/visualization.es337.js.map +1 -1
- package/dist/visualization.es338.js +7 -44
- package/dist/visualization.es338.js.map +1 -1
- package/dist/visualization.es339.js +2 -7
- package/dist/visualization.es339.js.map +1 -1
- package/dist/visualization.es34.js +5 -58
- package/dist/visualization.es34.js.map +1 -1
- package/dist/visualization.es340.js +20 -20
- package/dist/visualization.es340.js.map +1 -1
- package/dist/visualization.es341.js +21 -54
- package/dist/visualization.es341.js.map +1 -1
- package/dist/visualization.es342.js +5 -26
- package/dist/visualization.es342.js.map +1 -1
- package/dist/visualization.es343.js +8 -11
- package/dist/visualization.es343.js.map +1 -1
- package/dist/visualization.es344.js +18 -18
- package/dist/visualization.es344.js.map +1 -1
- package/dist/visualization.es345.js +43 -11
- package/dist/visualization.es345.js.map +1 -1
- package/dist/visualization.es346.js +7 -5
- package/dist/visualization.es346.js.map +1 -1
- package/dist/visualization.es347.js +20 -4
- package/dist/visualization.es347.js.map +1 -1
- package/dist/visualization.es348.js +53 -3
- package/dist/visualization.es348.js.map +1 -1
- package/dist/visualization.es349.js +25 -174
- package/dist/visualization.es349.js.map +1 -1
- package/dist/visualization.es35.js +5 -55
- package/dist/visualization.es35.js.map +1 -1
- package/dist/visualization.es350.js +11 -40
- package/dist/visualization.es350.js.map +1 -1
- package/dist/visualization.es351.js +18 -5
- package/dist/visualization.es351.js.map +1 -1
- package/dist/visualization.es352.js +11 -3
- package/dist/visualization.es352.js.map +1 -1
- package/dist/visualization.es353.js +5 -2
- package/dist/visualization.es353.js.map +1 -1
- package/dist/visualization.es354.js +4 -30
- package/dist/visualization.es354.js.map +1 -1
- package/dist/visualization.es355.js +4 -8
- package/dist/visualization.es355.js.map +1 -1
- package/dist/visualization.es356.js +174 -9
- package/dist/visualization.es356.js.map +1 -1
- package/dist/visualization.es357.js +39 -3
- package/dist/visualization.es357.js.map +1 -1
- package/dist/visualization.es358.js +5 -65
- package/dist/visualization.es358.js.map +1 -1
- package/dist/visualization.es359.js +4 -7
- package/dist/visualization.es359.js.map +1 -1
- package/dist/visualization.es36.js +60 -111
- package/dist/visualization.es36.js.map +1 -1
- package/dist/visualization.es360.js +2 -5
- package/dist/visualization.es360.js.map +1 -1
- package/dist/visualization.es361.js +30 -14
- package/dist/visualization.es361.js.map +1 -1
- package/dist/visualization.es362.js +7 -34
- package/dist/visualization.es362.js.map +1 -1
- package/dist/visualization.es363.js +10 -4
- package/dist/visualization.es363.js.map +1 -1
- package/dist/visualization.es364.js +3 -9
- package/dist/visualization.es364.js.map +1 -1
- package/dist/visualization.es365.js +66 -2
- package/dist/visualization.es365.js.map +1 -1
- package/dist/visualization.es366.js +7 -5
- package/dist/visualization.es366.js.map +1 -1
- package/dist/visualization.es367.js +5 -2
- package/dist/visualization.es367.js.map +1 -1
- package/dist/visualization.es368.js +13 -9
- package/dist/visualization.es368.js.map +1 -1
- package/dist/visualization.es369.js +35 -10
- package/dist/visualization.es369.js.map +1 -1
- package/dist/visualization.es37.js +810 -7
- package/dist/visualization.es37.js.map +1 -1
- package/dist/visualization.es370.js +5 -13
- package/dist/visualization.es370.js.map +1 -1
- package/dist/visualization.es371.js +10 -2
- package/dist/visualization.es371.js.map +1 -1
- package/dist/visualization.es372.js +2 -10
- package/dist/visualization.es372.js.map +1 -1
- package/dist/visualization.es373.js +5 -8
- package/dist/visualization.es373.js.map +1 -1
- package/dist/visualization.es374.js +2 -6
- package/dist/visualization.es374.js.map +1 -1
- package/dist/visualization.es375.js +9 -24
- package/dist/visualization.es375.js.map +1 -1
- package/dist/visualization.es376.js +10 -19
- package/dist/visualization.es376.js.map +1 -1
- package/dist/visualization.es377.js +13 -41
- package/dist/visualization.es377.js.map +1 -1
- package/dist/visualization.es378.js +2 -3
- package/dist/visualization.es378.js.map +1 -1
- package/dist/visualization.es379.js +10 -9
- package/dist/visualization.es379.js.map +1 -1
- package/dist/visualization.es380.js +6 -7
- package/dist/visualization.es380.js.map +1 -1
- package/dist/visualization.es381.js +5 -35
- package/dist/visualization.es381.js.map +1 -1
- package/dist/visualization.es382.js +23 -8
- package/dist/visualization.es382.js.map +1 -1
- package/dist/visualization.es383.js +19 -32
- package/dist/visualization.es383.js.map +1 -1
- package/dist/visualization.es384.js +40 -4
- package/dist/visualization.es384.js.map +1 -1
- package/dist/visualization.es385.js +3 -2
- package/dist/visualization.es385.js.map +1 -1
- package/dist/visualization.es386.js +8 -15
- package/dist/visualization.es386.js.map +1 -1
- package/dist/visualization.es387.js +8 -24
- package/dist/visualization.es387.js.map +1 -1
- package/dist/visualization.es388.js +36 -2
- package/dist/visualization.es388.js.map +1 -1
- package/dist/visualization.es389.js +9 -62
- package/dist/visualization.es389.js.map +1 -1
- package/dist/visualization.es39.js +130 -33
- package/dist/visualization.es39.js.map +1 -1
- package/dist/visualization.es390.js +32 -2
- package/dist/visualization.es390.js.map +1 -1
- package/dist/visualization.es391.js +5 -2
- package/dist/visualization.es391.js.map +1 -1
- package/dist/visualization.es392.js +2 -6
- package/dist/visualization.es392.js.map +1 -1
- package/dist/visualization.es393.js +14 -35
- package/dist/visualization.es393.js.map +1 -1
- package/dist/visualization.es394.js +23 -19
- package/dist/visualization.es394.js.map +1 -1
- package/dist/visualization.es395.js +2 -4
- package/dist/visualization.es395.js.map +1 -1
- package/dist/visualization.es396.js +62 -4
- package/dist/visualization.es396.js.map +1 -1
- package/dist/visualization.es397.js +2 -5
- package/dist/visualization.es397.js.map +1 -1
- package/dist/visualization.es398.js +2 -49
- package/dist/visualization.es398.js.map +1 -1
- package/dist/visualization.es399.js +5 -26
- package/dist/visualization.es399.js.map +1 -1
- package/dist/visualization.es4.js +6 -6
- package/dist/visualization.es40.js +63 -31
- package/dist/visualization.es40.js.map +1 -1
- package/dist/visualization.es400.js +35 -15
- package/dist/visualization.es400.js.map +1 -1
- package/dist/visualization.es401.js +21 -10
- package/dist/visualization.es401.js.map +1 -1
- package/dist/visualization.es402.js +3 -19
- package/dist/visualization.es402.js.map +1 -1
- package/dist/visualization.es403.js +5 -14
- package/dist/visualization.es403.js.map +1 -1
- package/dist/visualization.es404.js +4 -3
- package/dist/visualization.es404.js.map +1 -1
- package/dist/visualization.es405.js +47 -11
- package/dist/visualization.es405.js.map +1 -1
- package/dist/visualization.es406.js +25 -47
- package/dist/visualization.es406.js.map +1 -1
- package/dist/visualization.es407.js +16 -5
- package/dist/visualization.es407.js.map +1 -1
- package/dist/visualization.es408.js +10 -13
- package/dist/visualization.es408.js.map +1 -1
- package/dist/visualization.es409.js +20 -2
- package/dist/visualization.es409.js.map +1 -1
- package/dist/visualization.es41.js +62 -164
- package/dist/visualization.es41.js.map +1 -1
- package/dist/visualization.es410.js +14 -7
- package/dist/visualization.es410.js.map +1 -1
- package/dist/visualization.es411.js +3 -209
- package/dist/visualization.es411.js.map +1 -1
- package/dist/visualization.es412.js +12 -26
- package/dist/visualization.es412.js.map +1 -1
- package/dist/visualization.es413.js +48 -3
- package/dist/visualization.es413.js.map +1 -1
- package/dist/visualization.es414.js +6 -16
- package/dist/visualization.es414.js.map +1 -1
- package/dist/visualization.es415.js +13 -15
- package/dist/visualization.es415.js.map +1 -1
- package/dist/visualization.es416.js +2 -15
- package/dist/visualization.es416.js.map +1 -1
- package/dist/visualization.es417.js +7 -2
- package/dist/visualization.es417.js.map +1 -1
- package/dist/visualization.es418.js +210 -2
- package/dist/visualization.es418.js.map +1 -1
- package/dist/visualization.es419.js +27 -2
- package/dist/visualization.es419.js.map +1 -1
- package/dist/visualization.es42.js +112 -64
- package/dist/visualization.es42.js.map +1 -1
- package/dist/visualization.es420.js +4 -5
- package/dist/visualization.es420.js.map +1 -1
- package/dist/visualization.es421.js +16 -2
- package/dist/visualization.es421.js.map +1 -1
- package/dist/visualization.es422.js +15 -25
- package/dist/visualization.es422.js.map +1 -1
- package/dist/visualization.es423.js +14 -21
- package/dist/visualization.es423.js.map +1 -1
- package/dist/visualization.es424.js +2 -9
- package/dist/visualization.es424.js.map +1 -1
- package/dist/visualization.es425.js +2 -68
- package/dist/visualization.es425.js.map +1 -1
- package/dist/visualization.es426.js +2 -6
- package/dist/visualization.es426.js.map +1 -1
- package/dist/visualization.es427.js +4 -28
- package/dist/visualization.es427.js.map +1 -1
- package/dist/visualization.es428.js +2 -10
- package/dist/visualization.es428.js.map +1 -1
- package/dist/visualization.es429.js +25 -6
- package/dist/visualization.es429.js.map +1 -1
- package/dist/visualization.es43.js +46 -173
- package/dist/visualization.es43.js.map +1 -1
- package/dist/visualization.es430.js +22 -2
- package/dist/visualization.es430.js.map +1 -1
- package/dist/visualization.es431.js +9 -5
- package/dist/visualization.es431.js.map +1 -1
- package/dist/visualization.es432.js +68 -26
- package/dist/visualization.es432.js.map +1 -1
- package/dist/visualization.es433.js +6 -11
- package/dist/visualization.es433.js.map +1 -1
- package/dist/visualization.es434.js +29 -27
- package/dist/visualization.es434.js.map +1 -1
- package/dist/visualization.es435.js +9 -9
- package/dist/visualization.es435.js.map +1 -1
- package/dist/visualization.es436.js +6 -11
- package/dist/visualization.es436.js.map +1 -1
- package/dist/visualization.es437.js +2 -2
- package/dist/visualization.es437.js.map +1 -1
- package/dist/visualization.es438.js +5 -16
- package/dist/visualization.es438.js.map +1 -1
- package/dist/visualization.es439.js +24 -28
- package/dist/visualization.es439.js.map +1 -1
- package/dist/visualization.es44.js +5 -74
- package/dist/visualization.es44.js.map +1 -1
- package/dist/visualization.es440.js +11 -26
- package/dist/visualization.es440.js.map +1 -1
- package/dist/visualization.es441.js +27 -2
- package/dist/visualization.es441.js.map +1 -1
- package/dist/visualization.es442.js +9 -8
- package/dist/visualization.es442.js.map +1 -1
- package/dist/visualization.es443.js +10 -12
- package/dist/visualization.es443.js.map +1 -1
- package/dist/visualization.es444.js +2 -23
- package/dist/visualization.es444.js.map +1 -1
- package/dist/visualization.es445.js +16 -13
- package/dist/visualization.es445.js.map +1 -1
- package/dist/visualization.es446.js +30 -3
- package/dist/visualization.es446.js.map +1 -1
- package/dist/visualization.es447.js +26 -2
- package/dist/visualization.es447.js.map +1 -1
- package/dist/visualization.es448.js +2 -18
- package/dist/visualization.es448.js.map +1 -1
- package/dist/visualization.es449.js +8 -3
- package/dist/visualization.es449.js.map +1 -1
- package/dist/visualization.es45.js +33 -112
- package/dist/visualization.es45.js.map +1 -1
- package/dist/visualization.es450.js +12 -11
- package/dist/visualization.es450.js.map +1 -1
- package/dist/visualization.es451.js +23 -11
- package/dist/visualization.es451.js.map +1 -1
- package/dist/visualization.es452.js +12 -6
- package/dist/visualization.es452.js.map +1 -1
- package/dist/visualization.es453.js +3 -19
- package/dist/visualization.es453.js.map +1 -1
- package/dist/visualization.es454.js +2 -23
- package/dist/visualization.es454.js.map +1 -1
- package/dist/visualization.es455.js +17 -11
- package/dist/visualization.es455.js.map +1 -1
- package/dist/visualization.es456.js +3 -50
- package/dist/visualization.es456.js.map +1 -1
- package/dist/visualization.es457.js +11 -17
- package/dist/visualization.es457.js.map +1 -1
- package/dist/visualization.es458.js +11 -36
- package/dist/visualization.es458.js.map +1 -1
- package/dist/visualization.es459.js +6 -22
- package/dist/visualization.es459.js.map +1 -1
- package/dist/visualization.es46.js +33 -18700
- package/dist/visualization.es46.js.map +1 -1
- package/dist/visualization.es460.js +19 -32
- package/dist/visualization.es460.js.map +1 -1
- package/dist/visualization.es461.js +22 -3
- package/dist/visualization.es461.js.map +1 -1
- package/dist/visualization.es462.js +11 -18
- package/dist/visualization.es462.js.map +1 -1
- package/dist/visualization.es463.js +50 -13
- package/dist/visualization.es463.js.map +1 -1
- package/dist/visualization.es464.js +17 -10
- package/dist/visualization.es464.js.map +1 -1
- package/dist/visualization.es465.js +35 -29
- package/dist/visualization.es465.js.map +1 -1
- package/dist/visualization.es466.js +23 -6
- package/dist/visualization.es466.js.map +1 -1
- package/dist/visualization.es467.js +31 -7
- package/dist/visualization.es467.js.map +1 -1
- package/dist/visualization.es468.js +4 -2
- package/dist/visualization.es468.js.map +1 -1
- package/dist/visualization.es469.js +18 -16
- package/dist/visualization.es469.js.map +1 -1
- package/dist/visualization.es47.js +52 -5
- package/dist/visualization.es47.js.map +1 -1
- package/dist/visualization.es470.js +14 -9
- package/dist/visualization.es470.js.map +1 -1
- package/dist/visualization.es471.js +10 -9
- package/dist/visualization.es471.js.map +1 -1
- package/dist/visualization.es472.js +26 -612
- package/dist/visualization.es472.js.map +1 -1
- package/dist/visualization.es473.js +6 -51
- package/dist/visualization.es473.js.map +1 -1
- package/dist/visualization.es474.js +8 -13
- package/dist/visualization.es474.js.map +1 -1
- package/dist/visualization.es475.js +2 -11
- package/dist/visualization.es475.js.map +1 -1
- package/dist/visualization.es476.js +17 -23
- package/dist/visualization.es476.js.map +1 -1
- package/dist/visualization.es477.js +8 -34
- package/dist/visualization.es477.js.map +1 -1
- package/dist/visualization.es478.js +9 -12
- package/dist/visualization.es478.js.map +1 -1
- package/dist/visualization.es479.js +613 -17
- package/dist/visualization.es479.js.map +1 -1
- package/dist/visualization.es48.js +55 -5
- package/dist/visualization.es48.js.map +1 -1
- package/dist/visualization.es480.js +43 -33
- package/dist/visualization.es480.js.map +1 -1
- package/dist/visualization.es481.js +11 -56
- package/dist/visualization.es481.js.map +1 -1
- package/dist/visualization.es482.js +11 -19
- package/dist/visualization.es482.js.map +1 -1
- package/dist/visualization.es483.js +22 -25
- package/dist/visualization.es483.js.map +1 -1
- package/dist/visualization.es484.js +33 -25
- package/dist/visualization.es484.js.map +1 -1
- package/dist/visualization.es485.js +11 -41
- package/dist/visualization.es485.js.map +1 -1
- package/dist/visualization.es486.js +18 -3
- package/dist/visualization.es486.js.map +1 -1
- package/dist/visualization.es487.js +26 -3
- package/dist/visualization.es487.js.map +1 -1
- package/dist/visualization.es488.js +27 -7
- package/dist/visualization.es488.js.map +1 -1
- package/dist/visualization.es489.js +41 -14
- package/dist/visualization.es489.js.map +1 -1
- package/dist/visualization.es49.js +42 -59
- package/dist/visualization.es49.js.map +1 -1
- package/dist/visualization.es490.js +20 -2
- package/dist/visualization.es490.js.map +1 -1
- package/dist/visualization.es491.js +41 -2
- package/dist/visualization.es491.js.map +1 -1
- package/dist/visualization.es492.js +58 -2
- package/dist/visualization.es492.js.map +1 -1
- package/dist/visualization.es493.js +3 -9
- package/dist/visualization.es493.js.map +1 -1
- package/dist/visualization.es494.js +3 -10
- 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 +15 -8
- package/dist/visualization.es496.js.map +1 -1
- package/dist/visualization.es497.js +2 -7
- package/dist/visualization.es497.js.map +1 -1
- package/dist/visualization.es498.js +2 -6
- package/dist/visualization.es498.js.map +1 -1
- package/dist/visualization.es499.js +2 -15
- package/dist/visualization.es499.js.map +1 -1
- package/dist/visualization.es5.js +88 -96
- package/dist/visualization.es5.js.map +1 -1
- package/dist/visualization.es50.js +5 -810
- package/dist/visualization.es50.js.map +1 -1
- package/dist/visualization.es500.js +7 -6
- package/dist/visualization.es500.js.map +1 -1
- package/dist/visualization.es501.js +34 -6
- package/dist/visualization.es501.js.map +1 -1
- package/dist/visualization.es502.js +3 -6
- package/dist/visualization.es502.js.map +1 -1
- package/dist/visualization.es503.js +3 -6
- package/dist/visualization.es503.js.map +1 -1
- package/dist/visualization.es504.js +6 -3
- package/dist/visualization.es504.js.map +1 -1
- package/dist/visualization.es505.js +12 -4
- package/dist/visualization.es505.js.map +1 -1
- package/dist/visualization.es506.js +2 -10
- package/dist/visualization.es506.js.map +1 -1
- package/dist/visualization.es507.js +3 -29
- package/dist/visualization.es507.js.map +1 -1
- package/dist/visualization.es508.js +3 -61
- package/dist/visualization.es508.js.map +1 -1
- package/dist/visualization.es509.js +9 -236
- package/dist/visualization.es509.js.map +1 -1
- package/dist/visualization.es51.js +8 -0
- package/dist/visualization.es51.js.map +1 -0
- package/dist/visualization.es510.js +4 -992
- package/dist/visualization.es510.js.map +1 -1
- package/dist/visualization.es511.js +33 -29
- package/dist/visualization.es511.js.map +1 -1
- package/dist/visualization.es512.js +8 -118
- package/dist/visualization.es512.js.map +1 -1
- package/dist/visualization.es513.js +9 -29
- package/dist/visualization.es513.js.map +1 -1
- package/dist/visualization.es514.js +6 -10
- package/dist/visualization.es514.js.map +1 -1
- package/dist/visualization.es515.js +8 -13
- package/dist/visualization.es515.js.map +1 -1
- package/dist/visualization.es516.js +6 -32
- package/dist/visualization.es516.js.map +1 -1
- package/dist/visualization.es517.js +4 -27
- package/dist/visualization.es517.js.map +1 -1
- package/dist/visualization.es518.js +14 -10
- package/dist/visualization.es518.js.map +1 -1
- package/dist/visualization.es519.js +5 -12
- package/dist/visualization.es519.js.map +1 -1
- package/dist/visualization.es52.js +18 -131
- package/dist/visualization.es52.js.map +1 -1
- package/dist/visualization.es520.js +6 -17
- package/dist/visualization.es520.js.map +1 -1
- package/dist/visualization.es521.js +6 -23
- package/dist/visualization.es521.js.map +1 -1
- package/dist/visualization.es522.js +6 -16
- package/dist/visualization.es522.js.map +1 -1
- package/dist/visualization.es523.js +3 -96
- package/dist/visualization.es523.js.map +1 -1
- package/dist/visualization.es524.js +4 -28
- package/dist/visualization.es524.js.map +1 -1
- package/dist/visualization.es525.js +8 -70
- package/dist/visualization.es525.js.map +1 -1
- package/dist/visualization.es526.js +234 -48
- package/dist/visualization.es526.js.map +1 -1
- package/dist/visualization.es527.js +991 -33
- package/dist/visualization.es527.js.map +1 -1
- package/dist/visualization.es528.js +59 -39
- package/dist/visualization.es528.js.map +1 -1
- package/dist/visualization.es53.js +4 -43
- package/dist/visualization.es53.js.map +1 -1
- package/dist/visualization.es54.js +26 -35
- package/dist/visualization.es54.js.map +1 -1
- package/dist/visualization.es540.js +4 -28
- package/dist/visualization.es540.js.map +1 -1
- package/dist/visualization.es541.js +3 -10
- package/dist/visualization.es541.js.map +1 -1
- package/dist/visualization.es542.js +15 -13
- package/dist/visualization.es542.js.map +1 -1
- package/dist/visualization.es543.js +4 -8
- package/dist/visualization.es543.js.map +1 -1
- package/dist/visualization.es544.js +10 -8
- package/dist/visualization.es544.js.map +1 -1
- package/dist/visualization.es545.js +4 -19
- package/dist/visualization.es545.js.map +1 -1
- package/dist/visualization.es546.js +5 -62
- package/dist/visualization.es546.js.map +1 -1
- package/dist/visualization.es547.js +10 -5
- package/dist/visualization.es547.js.map +1 -1
- package/dist/visualization.es548.js +7 -3
- package/dist/visualization.es548.js.map +1 -1
- package/dist/visualization.es549.js +5 -2
- package/dist/visualization.es549.js.map +1 -1
- package/dist/visualization.es55.js +30 -69
- package/dist/visualization.es55.js.map +1 -1
- package/dist/visualization.es550.js +3 -18
- package/dist/visualization.es550.js.map +1 -1
- package/dist/visualization.es551.js +4 -282
- package/dist/visualization.es551.js.map +1 -1
- package/dist/visualization.es552.js +12 -2
- package/dist/visualization.es552.js.map +1 -1
- package/dist/visualization.es553.js +9 -127
- package/dist/visualization.es553.js.map +1 -1
- package/dist/visualization.es554.js +29 -8
- package/dist/visualization.es554.js.map +1 -1
- package/dist/visualization.es555.js +24 -51
- package/dist/visualization.es555.js.map +1 -1
- package/dist/visualization.es556.js +51 -7
- package/dist/visualization.es556.js.map +1 -1
- package/dist/visualization.es557.js +3 -4
- package/dist/visualization.es557.js.map +1 -1
- package/dist/visualization.es558.js +7 -2
- package/dist/visualization.es558.js.map +1 -1
- package/dist/visualization.es559.js +20 -3
- package/dist/visualization.es559.js.map +1 -1
- package/dist/visualization.es56.js +28 -43
- package/dist/visualization.es56.js.map +1 -1
- package/dist/visualization.es560.js +8 -4
- package/dist/visualization.es560.js.map +1 -1
- package/dist/visualization.es561.js +6 -3
- package/dist/visualization.es561.js.map +1 -1
- package/dist/visualization.es562.js +5 -11
- package/dist/visualization.es562.js.map +1 -1
- package/dist/visualization.es563.js +7 -9
- package/dist/visualization.es563.js.map +1 -1
- package/dist/visualization.es564.js +15 -30
- package/dist/visualization.es564.js.map +1 -1
- package/dist/visualization.es565.js +4 -24
- package/dist/visualization.es565.js.map +1 -1
- package/dist/visualization.es566.js +6 -3
- package/dist/visualization.es566.js.map +1 -1
- package/dist/visualization.es567.js +34 -3
- package/dist/visualization.es567.js.map +1 -1
- package/dist/visualization.es568.js +8 -9
- package/dist/visualization.es568.js.map +1 -1
- package/dist/visualization.es569.js +28 -9
- package/dist/visualization.es569.js.map +1 -1
- package/dist/visualization.es57.js +64 -11
- package/dist/visualization.es57.js.map +1 -1
- package/dist/visualization.es570.js +5 -16
- package/dist/visualization.es570.js.map +1 -1
- package/dist/visualization.es571.js +10 -4
- package/dist/visualization.es571.js.map +1 -1
- package/dist/visualization.es572.js +13 -5
- package/dist/visualization.es572.js.map +1 -1
- package/dist/visualization.es573.js +8 -21
- package/dist/visualization.es573.js.map +1 -1
- package/dist/visualization.es574.js +8 -8
- package/dist/visualization.es574.js.map +1 -1
- package/dist/visualization.es575.js +19 -6
- package/dist/visualization.es575.js.map +1 -1
- package/dist/visualization.es576.js +62 -5
- package/dist/visualization.es576.js.map +1 -1
- package/dist/visualization.es577.js +3 -7
- package/dist/visualization.es577.js.map +1 -1
- package/dist/visualization.es578.js +2 -16
- package/dist/visualization.es578.js.map +1 -1
- package/dist/visualization.es579.js +18 -4
- package/dist/visualization.es579.js.map +1 -1
- package/dist/visualization.es58.js +61 -34
- package/dist/visualization.es58.js.map +1 -1
- package/dist/visualization.es580.js +281 -6
- package/dist/visualization.es580.js.map +1 -1
- package/dist/visualization.es581.js +2 -35
- package/dist/visualization.es581.js.map +1 -1
- package/dist/visualization.es582.js +127 -8
- package/dist/visualization.es582.js.map +1 -1
- package/dist/visualization.es583.js +1 -1
- package/dist/visualization.es584.js +1 -1
- package/dist/visualization.es585.js +1 -1
- package/dist/visualization.es587.js +1 -1
- package/dist/visualization.es588.js +1 -1
- package/dist/visualization.es59.js +3 -10
- package/dist/visualization.es59.js.map +1 -1
- package/dist/visualization.es6.js +239 -205
- package/dist/visualization.es6.js.map +1 -1
- package/dist/visualization.es60.js +46 -54
- package/dist/visualization.es60.js.map +1 -1
- package/dist/visualization.es600.js +4 -12
- package/dist/visualization.es600.js.map +1 -1
- package/dist/visualization.es601.js +8 -24
- package/dist/visualization.es601.js.map +1 -1
- package/dist/visualization.es602.js +6 -19
- package/dist/visualization.es602.js.map +1 -1
- package/dist/visualization.es603.js +19 -7
- package/dist/visualization.es603.js.map +1 -1
- package/dist/visualization.es604.js +15 -6
- package/dist/visualization.es604.js.map +1 -1
- package/dist/visualization.es605.js +12 -3
- package/dist/visualization.es605.js.map +1 -1
- package/dist/visualization.es606.js +24 -64
- package/dist/visualization.es606.js.map +1 -1
- package/dist/visualization.es607.js +18 -31
- package/dist/visualization.es607.js.map +1 -1
- package/dist/visualization.es608.js +7 -5
- package/dist/visualization.es608.js.map +1 -1
- package/dist/visualization.es609.js +6 -9
- package/dist/visualization.es609.js.map +1 -1
- package/dist/visualization.es61.js +4 -52
- package/dist/visualization.es61.js.map +1 -1
- package/dist/visualization.es610.js +3 -6
- package/dist/visualization.es610.js.map +1 -1
- package/dist/visualization.es611.js +62 -288
- package/dist/visualization.es611.js.map +1 -1
- package/dist/visualization.es612.js +31 -17
- package/dist/visualization.es612.js.map +1 -1
- package/dist/visualization.es613.js +9 -14
- package/dist/visualization.es613.js.map +1 -1
- package/dist/visualization.es614.js +9 -9
- package/dist/visualization.es614.js.map +1 -1
- package/dist/visualization.es615.js +18 -9
- package/dist/visualization.es615.js.map +1 -1
- package/dist/visualization.es616.js +289 -17
- package/dist/visualization.es616.js.map +1 -1
- package/dist/visualization.es62.js +281 -54
- package/dist/visualization.es62.js.map +1 -1
- package/dist/visualization.es621.js +3 -117
- package/dist/visualization.es621.js.map +1 -1
- package/dist/visualization.es622.js +11 -3
- package/dist/visualization.es622.js.map +1 -1
- package/dist/visualization.es623.js +117 -11
- package/dist/visualization.es623.js.map +1 -1
- package/dist/visualization.es63.js +17 -41
- package/dist/visualization.es63.js.map +1 -1
- package/dist/visualization.es64.js +34 -5
- package/dist/visualization.es64.js.map +1 -1
- package/dist/visualization.es65.js +10 -4
- package/dist/visualization.es65.js.map +1 -1
- package/dist/visualization.es66.js +54 -17
- package/dist/visualization.es66.js.map +1 -1
- package/dist/visualization.es67.js +7 -4
- package/dist/visualization.es67.js.map +1 -1
- package/dist/visualization.es68.js +7 -26
- package/dist/visualization.es68.js.map +1 -1
- package/dist/visualization.es69.js +64 -29
- package/dist/visualization.es69.js.map +1 -1
- package/dist/visualization.es7.js +11 -11
- package/dist/visualization.es70.js +265 -7
- package/dist/visualization.es70.js.map +1 -1
- package/dist/visualization.es71.js +103 -8
- package/dist/visualization.es71.js.map +1 -1
- package/dist/visualization.es72.js +27 -29
- package/dist/visualization.es72.js.map +1 -1
- package/dist/visualization.es73.js +21 -63
- package/dist/visualization.es73.js.map +1 -1
- package/dist/visualization.es74.js +17 -61
- package/dist/visualization.es74.js.map +1 -1
- package/dist/visualization.es75.js +20 -3
- package/dist/visualization.es75.js.map +1 -1
- package/dist/visualization.es76.js +74 -47
- package/dist/visualization.es76.js.map +1 -1
- package/dist/visualization.es77.js +81 -4
- package/dist/visualization.es77.js.map +1 -1
- package/dist/visualization.es78.js +36 -278
- package/dist/visualization.es78.js.map +1 -1
- package/dist/visualization.es79.js +79 -17
- package/dist/visualization.es79.js.map +1 -1
- package/dist/visualization.es8.js +13 -13
- package/dist/visualization.es80.js +45 -65
- package/dist/visualization.es80.js.map +1 -1
- package/dist/visualization.es81.js +55 -265
- package/dist/visualization.es81.js.map +1 -1
- package/dist/visualization.es82.js +7 -103
- package/dist/visualization.es82.js.map +1 -1
- package/dist/visualization.es83.js +26 -27
- package/dist/visualization.es83.js.map +1 -1
- package/dist/visualization.es84.js +12 -22
- package/dist/visualization.es84.js.map +1 -1
- package/dist/visualization.es85.js +57 -17
- package/dist/visualization.es85.js.map +1 -1
- package/dist/visualization.es86.js +31 -20
- package/dist/visualization.es86.js.map +1 -1
- package/dist/visualization.es87.js +169 -74
- package/dist/visualization.es87.js.map +1 -1
- package/dist/visualization.es88.js +129 -80
- package/dist/visualization.es88.js.map +1 -1
- package/dist/visualization.es89.js +174 -63
- package/dist/visualization.es89.js.map +1 -1
- package/dist/visualization.es9.js +1 -1
- package/dist/visualization.es90.js +74 -5
- package/dist/visualization.es90.js.map +1 -1
- package/dist/visualization.es91.js +5 -5
- package/dist/visualization.es92.js +5 -5
- package/dist/visualization.es92.js.map +1 -1
- package/dist/visualization.es93.js +5 -15
- package/dist/visualization.es93.js.map +1 -1
- package/dist/visualization.es94.js +10 -10
- package/dist/visualization.es94.js.map +1 -1
- package/dist/visualization.es95.js +14 -12
- package/dist/visualization.es95.js.map +1 -1
- package/dist/visualization.es96.js +221 -44
- package/dist/visualization.es96.js.map +1 -1
- package/dist/visualization.es97.js +2 -22
- package/dist/visualization.es97.js.map +1 -1
- package/dist/visualization.es98.js +557 -60
- package/dist/visualization.es98.js.map +1 -1
- package/dist/visualization.es99.js +213 -79
- package/dist/visualization.es99.js.map +1 -1
- package/package.json +1 -1
- package/dist/visualization.es38.js +0 -11
- package/dist/visualization.es38.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visualization.es87.js","sources":["../src/components/ScatterPlot/hooks/useHoverTooltip.ts"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { localPoint } from \"@visx/event\";\nimport { ScaleLinear } from \"@visx/vendor/d3-scale\";\nimport { Point, ZoomType } from \"../types\";\nimport { rescaleX, rescaleY } from \"../helpers\";\nimport { useStableCallback } from \"../../../hooks\";\n\ntype UseHoverTooltipProps<T extends object> = {\n pointData: Point<T>[];\n margin: { top: number; left: number };\n xScale: ScaleLinear<number, number, never>;\n yScale: ScaleLinear<number, number, never>;\n onHoveredPointChange?: (point: Point<T> | null) => void;\n};\n\ntype TransformedPointCache<T extends object> = {\n pointData: Point<T>[];\n translateX: number;\n translateY: number;\n scaleX: number;\n scaleY: number;\n points: Array<{ point: Point<T>; x: number; y: number }>;\n};\n\nexport const useHoverTooltip = <T extends object>({\n pointData,\n margin,\n xScale,\n yScale,\n onHoveredPointChange,\n}: UseHoverTooltipProps<T>) => {\n const [tooltipData, setTooltipData] = useState<Point<T> | null>(null);\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const [mouseX, setMouseX] = useState(0);\n const [mouseY, setMouseY] = useState(0);\n const transformedPointCacheRef = useRef<TransformedPointCache<T> | null>(null);\n\n const hoveredPoint = useMemo(\n () => tooltipData\n ? pointData.find((point) => point.x === tooltipData.x && point.y === tooltipData.y) ?? null\n : null,\n [pointData, tooltipData]\n );\n\n // Published from an effect rather than the move handler because hoveredPoint is derived:\n // setTooltipData is called on every move and React discards the ones that do not change it,\n // so watching the derived value is what turns a stream of moves into enter/leave events.\n // The ref keeps that true when the effect itself is re-run without a real change.\n const publishHoverChange = useStableCallback(onHoveredPointChange);\n const publishedPointRef = useRef<Point<T> | null>(null);\n\n useEffect(() => {\n if (publishedPointRef.current === hoveredPoint) return;\n publishedPointRef.current = hoveredPoint;\n publishHoverChange(hoveredPoint);\n }, [hoveredPoint, publishHoverChange]);\n\n // Announce the hover as ended when the plot unmounts, so a consumer driving highlight state\n // of its own - a legend entry, a linked chart - isn't left lit for a plot that is gone.\n // Kept apart from the effect above, whose cleanup would otherwise fire on every transition.\n useEffect(() => () => {\n if (publishedPointRef.current !== null) publishHoverChange(null);\n }, [publishHoverChange]);\n\n const handleMouseMove = useCallback((event: React.MouseEvent<SVGElement>, zoom: ZoomType) => {\n if (zoom.isDragging) {\n setTooltipOpen(false);\n setTooltipData(null);\n return;\n }\n\n setMouseX(event.pageX);\n setMouseY(event.pageY);\n\n const point = localPoint(event.currentTarget, event);\n if (!point) return;\n\n const adjustedX = point.x - margin.left;\n const adjustedY = point.y - margin.top;\n const { translateX, translateY, scaleX, scaleY } = zoom.transformMatrix;\n\n const cachedTransformedPoints = transformedPointCacheRef.current;\n const shouldReuseCachedPoints =\n cachedTransformedPoints &&\n cachedTransformedPoints.pointData === pointData &&\n cachedTransformedPoints.translateX === translateX &&\n cachedTransformedPoints.translateY === translateY &&\n cachedTransformedPoints.scaleX === scaleX &&\n cachedTransformedPoints.scaleY === scaleY;\n\n const transformedPoints = shouldReuseCachedPoints\n ? cachedTransformedPoints.points\n : (() => {\n const xScaleTransformed = rescaleX(xScale, translateX, scaleX);\n const yScaleTransformed = rescaleY(yScale, translateY, scaleY);\n const nextPoints = pointData.map((curr) => ({\n point: curr,\n x: xScaleTransformed(curr.x),\n y: yScaleTransformed(curr.y),\n }));\n\n transformedPointCacheRef.current = {\n pointData,\n translateX,\n translateY,\n scaleX,\n scaleY,\n points: nextPoints,\n };\n\n return nextPoints;\n })();\n\n const threshold = 5;\n const nextHoveredPoint = transformedPoints.find((curr) => (\n Math.abs(adjustedX - curr.x) < threshold &&\n Math.abs(adjustedY - curr.y) < threshold\n ))?.point ?? null;\n\n setTooltipData(nextHoveredPoint);\n setTooltipOpen(Boolean(nextHoveredPoint));\n }, [margin.left, margin.top, pointData, xScale, yScale]);\n\n const handleMouseLeave = useCallback(() => {\n setTooltipOpen(false);\n setTooltipData(null);\n }, []);\n\n return { hoveredPoint, tooltipData, tooltipOpen, mouseX, mouseY, handleMouseMove, handleMouseLeave };\n};\n"],"names":["useHoverTooltip","t0","$","_c","pointData","margin","xScale","yScale","onHoveredPointChange","tooltipData","setTooltipData","useState","tooltipOpen","setTooltipOpen","mouseX","setMouseX","mouseY","setMouseY","transformedPointCacheRef","useRef","t1","find","point","x","y","hoveredPoint","publishHoverChange","useStableCallback","publishedPointRef","t2","t3","current","useEffect","t4","t5","t6","left","top","event","zoom","isDragging","pageX","pageY","point_0","localPoint","currentTarget","adjustedX","adjustedY","translateX","translateY","scaleX","scaleY","transformMatrix","cachedTransformedPoints","nextHoveredPoint","points","xScaleTransformed","rescaleX","yScaleTransformed","rescaleY","nextPoints","map","curr","curr_0","Math","abs","Boolean","handleMouseMove","t7","Symbol","for","handleMouseLeave","t8"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"visualization.es87.js","sources":["../src/components/Heatmap/heatmapLayout.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport { scaleLinear } from \"@visx/scale\";\nimport { ScaleLinear } from \"@visx/vendor/d3-scale\";\nimport type { ColumnDatum, HeatmapCellId } from \"./types\";\nimport type { HeatmapProps } from \"./types\";\nimport { measureTextWidth } from \"../../utility\";\nimport { getHeatmapLegendWidth } from \"./HeatmapLegend\";\nimport { DEFAULT_DESELECTED_COLOR, cellKey, getHeatmapColorScale } from \"./heatmapCellAppearance\";\nimport { type CanvasCellParams } from \"./HeatmapCanvasCells\";\nimport { TICK_FONT_SIZE, TICK_FONT_FAMILY } from \"./heatmapAxisProps\";\n\nexport const 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.\nexport const 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 in HeatmapLayout.\nexport const Y_AXIS_TITLE_SPACE = 40;\nexport const X_AXIS_TITLE_SPACE = 70;\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.\nexport const TICK_LABEL_WIDTH_SAFETY_FACTOR = 1.15;\nexport const MINI_MAP_HEIGHT = 50;\n\nexport const getBins = (d: ColumnDatum) => d.rows;\n\nexport function 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\nexport interface HeatmapLayout {\n allColNames: string[];\n allRowNames: string[];\n numRows: number;\n minValue: number;\n maxValue: number;\n marg: { top: number; right: number; bottom: number; left: number };\n xMax: number;\n yMax: number;\n viewportWidth: number;\n viewportHeight: number;\n yTitleWidth: number;\n yTickLabelWidth: number;\n xTitleHeight: number;\n xTickLabelHeight: number;\n binWidth: number;\n binHeight: number;\n colLabelHeight: number;\n xTickLeftOverhangMax: number;\n maxRowNameWidth: number;\n legendWidth: number;\n xScale: ScaleLinear<number, number, never>;\n yScale: ScaleLinear<number, number, never>;\n cellYScale: (row: number) => number;\n xTickValues: number[];\n yTickValues: number[];\n stableColors: [string, string, ...string[]];\n colorScale: (count: number) => string | undefined;\n canvasCellParams: CanvasCellParams;\n}\n\nexport interface UseHeatmapLayoutArgs {\n data: ColumnDatum[];\n colorDomain?: [number, number];\n colors: [string, string, ...string[]];\n xLabelOrientation: NonNullable<HeatmapProps[\"xLabelOrientation\"]>;\n margin?: { top: number; right: number; bottom: number; left: number };\n showLegend: boolean;\n isScrollable: boolean;\n cellWidth?: number;\n cellHeight?: number;\n parentWidth: number;\n parentHeight: number;\n showMiniMap: boolean;\n gap: number;\n isRect: boolean;\n selectedCells?: HeatmapCellId[];\n deselectedColor?: string;\n}\n\nexport function useHeatmapLayout({\n data, colorDomain, colors, xLabelOrientation, margin, showLegend, isScrollable,\n cellWidth, cellHeight, parentWidth, parentHeight, showMiniMap, gap, isRect,\n selectedCells, deselectedColor,\n}: UseHeatmapLayoutArgs): HeatmapLayout {\n const allColNames = useMemo(() => data.map((d) => d.columnName), [data]);\n const allRowNames = useMemo(() => data[0]?.rows.map((r) => r.rowName) ?? [], [data]);\n const dataMaxValue = useMemo(() => maxOf(data, (d) => maxOf(getBins(d), (r) => r.count)), [data]);\n const [minValue, maxValue] = colorDomain ?? [0, dataMaxValue];\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 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(minValue, maxValue), [minValue, 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, [minValue, maxValue]),\n [stableColors, minValue, 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 return {\n allColNames, allRowNames, numRows, minValue, maxValue, marg, xMax, yMax,\n viewportWidth, viewportHeight, yTitleWidth, yTickLabelWidth, xTitleHeight, xTickLabelHeight,\n binWidth, binHeight, colLabelHeight, xTickLeftOverhangMax, maxRowNameWidth, legendWidth,\n xScale, yScale, cellYScale, xTickValues, yTickValues, stableColors, colorScale, canvasCellParams,\n };\n}\n"],"names":["LEGEND_GAP","AXIS_LABEL_GAP","Y_AXIS_TITLE_SPACE","X_AXIS_TITLE_SPACE","TICK_LABEL_WIDTH_SAFETY_FACTOR","MINI_MAP_HEIGHT","getBins","d","rows","maxOf","data","value","reduce","max","datum","datumValue","Math","useHeatmapLayout","t0","$","_c","colorDomain","colors","xLabelOrientation","margin","showLegend","isScrollable","cellWidth","cellHeight","parentWidth","parentHeight","showMiniMap","gap","isRect","selectedCells","deselectedColor","t1","map","_temp","allColNames","t2","_temp2","allRowNames","t3","_temp4","dataMaxValue","t4","minValue","maxValue","numRows","_temp5","maxColNameWidth","_temp6","maxRowNameWidth","_temp7","rotatedColNameSpace","colLabelHeight","SQRT1_2","xTickLeftOverhangMax","t5","join","colorsKey","t6","split","stableColors","legendWidth","getHeatmapLegendWidth","defaultRight","labelBottomSpace","t7","top","left","right","bottom","TICK_FONT_SIZE","marg","miniMapSpace","availableWidth","availableHeight","xMax","length","yMax","viewportWidth","min","viewportHeight","yTickLabelWidth","xTickLabelHeight","binWidth","binHeight","t8","scaleLinear","domain","range","xScale","t9","yScale","t10","row","cellYScale","t11","_temp8","xTickValues","t12","_temp9","yTickValues","resolvedDeselectedColor","DEFAULT_DESELECTED_COLOR","t13","getHeatmapColorScale","colorScale","t14","Set","cellKey","selectedKeys","t15","canvasCellParams","t16","yTitleWidth","xTitleHeight","__0","i_0","i","_","m_0","name_0","m","measureTextWidth","name","TICK_FONT_FAMILY","d_1","d_0","_temp3","r_0","r","count","rowName","columnName"],"mappings":"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"}
|
|
@@ -1,84 +1,133 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
let u;
|
|
17
|
-
e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (u = () => {
|
|
18
|
-
s.current !== null && (cancelAnimationFrame(s.current), s.current = null);
|
|
19
|
-
}, e[0] = u) : u = e[0];
|
|
20
|
-
const P = u;
|
|
21
|
-
let c;
|
|
22
|
-
e[1] !== n ? (c = (t) => {
|
|
23
|
-
F.current = t, L(t), n(t);
|
|
24
|
-
}, e[1] = n, e[2] = c) : c = e[2];
|
|
25
|
-
const i = c;
|
|
26
|
-
let a;
|
|
27
|
-
e[3] !== i ? (a = (t) => {
|
|
28
|
-
if (t === null) {
|
|
29
|
-
if (P(), o.current = null, F.current === null)
|
|
30
|
-
return;
|
|
31
|
-
i(null);
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
o.current = t, s.current === null && (s.current = requestAnimationFrame(() => {
|
|
35
|
-
s.current = null;
|
|
36
|
-
const b = o.current;
|
|
37
|
-
o.current = null, b && i(b);
|
|
38
|
-
}));
|
|
39
|
-
}, e[3] = i, e[4] = a) : a = e[4];
|
|
40
|
-
const r = a;
|
|
41
|
-
let f, m;
|
|
42
|
-
e[5] !== n ? (f = () => () => {
|
|
43
|
-
P(), F.current !== null && n(null);
|
|
44
|
-
}, m = [P, n], e[5] = n, e[6] = f, e[7] = m) : (f = e[6], m = e[7]), z(f, m);
|
|
45
|
-
let h;
|
|
46
|
-
e[8] !== x || e[9] !== g || e[10] !== C || e[11] !== l.left || e[12] !== l.top || e[13] !== r || e[14] !== y || e[15] !== R ? (h = (t, b) => {
|
|
47
|
-
if (!C)
|
|
48
|
-
return;
|
|
49
|
-
const v = D(t.currentTarget, t);
|
|
50
|
-
if (!v)
|
|
51
|
-
return;
|
|
52
|
-
const A = v.x - l.left, M = v.y - l.top;
|
|
53
|
-
if (A < 0 || A > g || M < 0 || M > x) {
|
|
54
|
-
r(null);
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
const {
|
|
58
|
-
translateX: T,
|
|
59
|
-
translateY: W,
|
|
60
|
-
scaleX: _,
|
|
61
|
-
scaleY: $
|
|
62
|
-
} = b.transformMatrix;
|
|
63
|
-
r({
|
|
64
|
-
x: q(y, T, _, A),
|
|
65
|
-
y: q(R, W, $, M)
|
|
66
|
-
});
|
|
67
|
-
}, e[8] = x, e[9] = g, e[10] = C, e[11] = l.left, e[12] = l.top, e[13] = r, e[14] = y, e[15] = R, e[16] = h) : h = e[16];
|
|
68
|
-
const X = h;
|
|
69
|
-
let p;
|
|
70
|
-
e[17] !== r ? (p = () => {
|
|
71
|
-
r(null);
|
|
72
|
-
}, e[17] = r, e[18] = p) : p = e[18];
|
|
73
|
-
const Y = p;
|
|
74
|
-
let d;
|
|
75
|
-
return e[19] !== S || e[20] !== Y || e[21] !== X ? (d = {
|
|
76
|
-
crosshairPosition: S,
|
|
77
|
-
handleCrosshairMove: X,
|
|
78
|
-
handleCrosshairLeave: Y
|
|
79
|
-
}, e[19] = S, e[20] = Y, e[21] = X, e[22] = d) : d = e[22], d;
|
|
1
|
+
import { jsxs as k, Fragment as N, jsx as h } from "react/jsx-runtime";
|
|
2
|
+
import { createRoot as R } from "react-dom/client";
|
|
3
|
+
import { flushSync as _ } from "react-dom";
|
|
4
|
+
import { downloadBlob as I, MAX_CANVAS_EXPORT_DIMENSION as L, MAX_CANVAS_EXPORT_PIXELS as P } from "./visualization.es28.js";
|
|
5
|
+
import { LEGEND_GAP as O } from "./visualization.es87.js";
|
|
6
|
+
import { yAxisTickLabelProps as V, AXIS_TITLE_FONT_SIZE as F, TICK_FONT_FAMILY as U } from "./visualization.es86.js";
|
|
7
|
+
import { drawHeatmapCells as X } from "./visualization.es125.js";
|
|
8
|
+
import B from "./visualization.es46.js";
|
|
9
|
+
import G from "./visualization.es45.js";
|
|
10
|
+
const S = "http://www.w3.org/2000/svg", j = "http://www.w3.org/1999/xlink", y = (e, o, n, t, i) => {
|
|
11
|
+
const r = document.createElementNS(S, "text");
|
|
12
|
+
r.setAttribute("x", String(n)), r.setAttribute("y", String(t)), i && r.setAttribute("transform", `rotate(-90, ${n}, ${t})`), r.setAttribute("text-anchor", "middle"), r.setAttribute("dominant-baseline", "middle"), r.setAttribute("font-size", String(F)), r.setAttribute("font-family", U), r.textContent = o, e.appendChild(r);
|
|
13
|
+
}, w = (e, o, n, t) => {
|
|
14
|
+
const i = document.createElementNS(S, "g");
|
|
15
|
+
i.setAttribute("transform", `translate(${n},${t})`), o.childNodes.forEach((r) => i.appendChild(r.cloneNode(!0))), e.appendChild(i);
|
|
80
16
|
};
|
|
17
|
+
function M(e, o) {
|
|
18
|
+
const n = window.devicePixelRatio || 2;
|
|
19
|
+
return Math.min(n, L / e, L / o, Math.sqrt(P / (e * o)));
|
|
20
|
+
}
|
|
21
|
+
function C(e, o) {
|
|
22
|
+
const {
|
|
23
|
+
xMax: n,
|
|
24
|
+
yMax: t,
|
|
25
|
+
canvasCellParams: i,
|
|
26
|
+
numRows: r
|
|
27
|
+
} = e.layout;
|
|
28
|
+
if (n <= 0 || t <= 0) return null;
|
|
29
|
+
const a = document.createElement("canvas");
|
|
30
|
+
a.width = Math.max(1, Math.round(n * o)), a.height = Math.max(1, Math.round(t * o));
|
|
31
|
+
const s = a.getContext("2d");
|
|
32
|
+
if (!s) return null;
|
|
33
|
+
s.setTransform(o, 0, 0, o, 0, 0);
|
|
34
|
+
const c = {
|
|
35
|
+
colStart: 0,
|
|
36
|
+
colEnd: Math.max(0, e.data.length - 1),
|
|
37
|
+
rowStart: 0,
|
|
38
|
+
rowEnd: Math.max(0, r - 1)
|
|
39
|
+
};
|
|
40
|
+
return X(s, i, c, null), a;
|
|
41
|
+
}
|
|
42
|
+
function D(e) {
|
|
43
|
+
const {
|
|
44
|
+
xMax: o,
|
|
45
|
+
yMax: n
|
|
46
|
+
} = e.layout;
|
|
47
|
+
if (o <= 0 || n <= 0) return null;
|
|
48
|
+
const t = C(e, M(o, n));
|
|
49
|
+
return t ? t.toDataURL("image/png") : null;
|
|
50
|
+
}
|
|
51
|
+
const H = (e, o, n, t, i, r) => {
|
|
52
|
+
const a = document.createElementNS(S, "image");
|
|
53
|
+
a.setAttribute("x", String(n)), a.setAttribute("y", String(t)), a.setAttribute("width", String(i)), a.setAttribute("height", String(r)), a.setAttribute("preserveAspectRatio", "none"), a.setAttributeNS(j, "href", o), a.setAttribute("href", o), e.appendChild(a);
|
|
54
|
+
};
|
|
55
|
+
function E(e, {
|
|
56
|
+
includeCells: o = !0
|
|
57
|
+
} = {}) {
|
|
58
|
+
const {
|
|
59
|
+
layout: n
|
|
60
|
+
} = e, {
|
|
61
|
+
marg: t,
|
|
62
|
+
xMax: i,
|
|
63
|
+
yMax: r,
|
|
64
|
+
xScale: a,
|
|
65
|
+
yScale: s,
|
|
66
|
+
numRows: c,
|
|
67
|
+
xTickValues: p,
|
|
68
|
+
yTickValues: x,
|
|
69
|
+
yTickLabelWidth: f,
|
|
70
|
+
xTickLabelHeight: g,
|
|
71
|
+
yTitleWidth: b,
|
|
72
|
+
xTitleHeight: A
|
|
73
|
+
} = n, l = document.createElementNS(S, "svg");
|
|
74
|
+
if (l.setAttribute("width", String(t.left + i + t.right)), l.setAttribute("height", String(t.top + r + t.bottom)), o) {
|
|
75
|
+
const d = D(e);
|
|
76
|
+
d && H(l, d, t.left, t.top, i, r);
|
|
77
|
+
}
|
|
78
|
+
let u = null, m = null;
|
|
79
|
+
const T = document.createElement("div"), v = R(T);
|
|
80
|
+
return _(() => {
|
|
81
|
+
v.render(/* @__PURE__ */ k(N, { children: [
|
|
82
|
+
/* @__PURE__ */ h("svg", { width: f, height: r, ref: (d) => {
|
|
83
|
+
u = d;
|
|
84
|
+
}, children: /* @__PURE__ */ h("g", { transform: `translate(${f},0)`, children: /* @__PURE__ */ h(B, { scale: s, numTicks: c, tickValues: x, tickFormat: e.yAxisTickFormat, tickLabelProps: V }) }) }),
|
|
85
|
+
/* @__PURE__ */ h("svg", { width: i, height: g, ref: (d) => {
|
|
86
|
+
m = d;
|
|
87
|
+
}, children: /* @__PURE__ */ h(G, { top: 0, scale: a, numTicks: e.data.length, tickFormat: e.xAxisTickFormat, tickValues: p, tickLabelProps: e.xAxisTickLabelProps }) })
|
|
88
|
+
] }));
|
|
89
|
+
}), u && w(l, u, b, t.top), m && w(l, m, t.left, t.top + r), v.unmount(), e.showLegend && e.legendSvg && w(l, e.legendSvg, t.left + i + O, t.top), e.yLabel && y(l, e.yLabel, b / 2, t.top + r / 2, !0), e.xLabel && y(l, e.xLabel, t.left + i / 2, t.top + r + g + A / 2, !1), l;
|
|
90
|
+
}
|
|
91
|
+
function tt(e, o) {
|
|
92
|
+
const {
|
|
93
|
+
marg: n,
|
|
94
|
+
xMax: t,
|
|
95
|
+
yMax: i
|
|
96
|
+
} = e.layout;
|
|
97
|
+
if (t <= 0 || i <= 0) return;
|
|
98
|
+
const r = n.left + t + n.right, a = n.top + i + n.bottom, s = M(r, a), c = document.createElement("canvas");
|
|
99
|
+
c.width = Math.max(1, Math.round(r * s)), c.height = Math.max(1, Math.round(a * s));
|
|
100
|
+
const p = c.getContext("2d");
|
|
101
|
+
if (!p) return;
|
|
102
|
+
const x = C(e, s);
|
|
103
|
+
x && p.drawImage(x, n.left * s, n.top * s);
|
|
104
|
+
const f = (m) => {
|
|
105
|
+
m && I(m, o);
|
|
106
|
+
}, g = E(e, {
|
|
107
|
+
includeCells: !1
|
|
108
|
+
});
|
|
109
|
+
if (!g) {
|
|
110
|
+
c.toBlob(f, "image/png", 1);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const b = new XMLSerializer().serializeToString(g), A = new Blob([b], {
|
|
114
|
+
type: "image/svg+xml;charset=utf-8"
|
|
115
|
+
}), l = URL.createObjectURL(A), u = new Image();
|
|
116
|
+
u.onload = () => {
|
|
117
|
+
p.drawImage(u, 0, 0, c.width, c.height), URL.revokeObjectURL(l), c.toBlob(f, "image/png", 1);
|
|
118
|
+
}, u.onerror = () => URL.revokeObjectURL(l), u.src = l;
|
|
119
|
+
}
|
|
120
|
+
function et(e, o) {
|
|
121
|
+
const n = E(e);
|
|
122
|
+
if (!n) return;
|
|
123
|
+
const t = document.createElement("div");
|
|
124
|
+
t.style.position = "absolute", t.style.top = "0", t.style.left = "-99999px", t.appendChild(n), document.body.appendChild(t), o(n, () => {
|
|
125
|
+
t.parentNode && document.body.removeChild(t);
|
|
126
|
+
});
|
|
127
|
+
}
|
|
81
128
|
export {
|
|
82
|
-
|
|
129
|
+
E as buildScrollableExportSVG,
|
|
130
|
+
tt as downloadScrollableHeatmapPNG,
|
|
131
|
+
et as withOffscreenExportSVG
|
|
83
132
|
};
|
|
84
133
|
//# sourceMappingURL=visualization.es88.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visualization.es88.js","sources":["../src/components/ScatterPlot/hooks/useCrosshair.ts"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { localPoint } from \"@visx/event\";\nimport { ScaleLinear } from \"@visx/vendor/d3-scale\";\nimport { CrosshairPosition, ZoomType } from \"../types\";\nimport { invertRescaled } from \"../helpers\";\nimport { useStableCallback } from \"../../../hooks\";\n\ntype UseCrosshairProps = {\n enabled: boolean;\n margin: { top: number; left: number };\n boundedWidth: number;\n boundedHeight: number;\n xScale: ScaleLinear<number, number, never>;\n yScale: ScaleLinear<number, number, never>;\n onCrosshairChange?: (position: CrosshairPosition | null) => void;\n};\n\n/**\n * Tracks the pointer as a crosshair position in data coordinates.\n *\n * Data coordinates rather than pixels because the position is also published to consumers, who\n * may mirror it onto another plot or feed it back in as a controlled position. Keeping one\n * currency means every plot showing this crosshair resolves it through its own scales and so\n * agrees with the others, even mid-zoom.\n *\n * The zoom transform arrives as an argument rather than a hook input because it only exists\n * inside the Zoom render prop, below where this hook is called.\n *\n * Moves are coalesced to one update per animation frame. A mouse can report positions faster\n * than the browser paints, and mousemove is a continuous event that React flushes synchronously,\n * so publishing every one of them - into this state and, through onCrosshairChange, into a\n * parent shared by several plots - re-renders the whole group without ever yielding, and React\n * eventually warns about the update depth. Leaving is published immediately: it ends the\n * gesture, and a frame queued behind it would put the crosshair back.\n */\nexport const useCrosshair = ({\n enabled,\n margin,\n boundedWidth,\n boundedHeight,\n xScale,\n yScale,\n onCrosshairChange,\n}: UseCrosshairProps) => {\n const [crosshairPosition, setCrosshairPosition] = useState<CrosshairPosition | null>(null);\n const publishedRef = useRef<CrosshairPosition | null>(null);\n const publishChange = useStableCallback(onCrosshairChange);\n\n const frameRef = useRef<number | null>(null);\n const pendingRef = useRef<CrosshairPosition | null>(null);\n\n const cancelFrame = useCallback(() => {\n if (frameRef.current === null) return;\n cancelAnimationFrame(frameRef.current);\n frameRef.current = null;\n }, []);\n\n const apply = useCallback((position: CrosshairPosition | null) => {\n publishedRef.current = position;\n setCrosshairPosition(position);\n publishChange(position);\n }, [publishChange]);\n\n const publish = useCallback((position: CrosshairPosition | null) => {\n if (position === null) {\n cancelFrame();\n pendingRef.current = null;\n // Leaving the plot area fires on every subsequent move; only announce the first one.\n if (publishedRef.current === null) return;\n apply(null);\n return;\n }\n\n pendingRef.current = position;\n if (frameRef.current !== null) return;\n frameRef.current = requestAnimationFrame(() => {\n frameRef.current = null;\n const pending = pendingRef.current;\n pendingRef.current = null;\n if (pending) apply(pending);\n });\n }, [apply, cancelFrame]);\n\n // On unmount, drop any queued frame and announce the crosshair as gone. Without the second\n // half a parent mirroring this position onto sibling plots - ScatterPlotSync - keeps drawing\n // the crosshair of a plot that no longer exists, until something else happens to move it.\n useEffect(() => () => {\n cancelFrame();\n if (publishedRef.current !== null) publishChange(null);\n }, [cancelFrame, publishChange]);\n\n const handleCrosshairMove = useCallback((event: React.MouseEvent<SVGElement>, zoom: ZoomType) => {\n if (!enabled) return;\n\n const point = localPoint(event.currentTarget, event);\n if (!point) return;\n\n // The listener covers the whole svg, margins included, so anything outside the plot\n // area counts as leaving it.\n const plotX = point.x - margin.left;\n const plotY = point.y - margin.top;\n if (plotX < 0 || plotX > boundedWidth || plotY < 0 || plotY > boundedHeight) {\n publish(null);\n return;\n }\n\n const { translateX, translateY, scaleX, scaleY } = zoom.transformMatrix;\n publish({\n x: invertRescaled(xScale, translateX, scaleX, plotX),\n y: invertRescaled(yScale, translateY, scaleY, plotY),\n });\n }, [boundedHeight, boundedWidth, enabled, margin.left, margin.top, publish, xScale, yScale]);\n\n const handleCrosshairLeave = useCallback(() => {\n publish(null);\n }, [publish]);\n\n return { crosshairPosition, handleCrosshairMove, handleCrosshairLeave };\n};\n"],"names":["useCrosshair","t0","$","_c","enabled","margin","boundedWidth","boundedHeight","xScale","yScale","onCrosshairChange","crosshairPosition","setCrosshairPosition","useState","publishedRef","useRef","publishChange","useStableCallback","frameRef","pendingRef","t1","Symbol","for","current","cancelAnimationFrame","cancelFrame","t2","position","apply","t3","position_0","requestAnimationFrame","pending","publish","t4","t5","useEffect","t6","left","top","event","zoom","point","localPoint","currentTarget","plotX","x","plotY","y","translateX","translateY","scaleX","scaleY","transformMatrix","invertRescaled","handleCrosshairMove","t7","handleCrosshairLeave","t8"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"visualization.es88.js","sources":["../src/components/Heatmap/scrollable/heatmapExport.tsx"],"sourcesContent":["import { createRoot } from \"react-dom/client\";\nimport { flushSync } from \"react-dom\";\nimport { AxisLeft, AxisBottom } from \"@visx/axis\";\nimport type { ColumnDatum } from \"../types\";\nimport { MAX_CANVAS_EXPORT_DIMENSION, MAX_CANVAS_EXPORT_PIXELS, downloadBlob } from \"../../../utility\";\nimport type { HeatmapLayout } from \"../heatmapLayout\";\nimport { LEGEND_GAP } from \"../heatmapLayout\";\nimport { AXIS_TITLE_FONT_SIZE, TICK_FONT_FAMILY, getXAxisTickLabelProps, yAxisTickLabelProps } from \"../heatmapAxisProps\";\nimport { drawHeatmapCells } from \"../HeatmapCanvasCells\";\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nconst XLINK_NS = \"http://www.w3.org/1999/xlink\";\n\ninterface ScrollableExportOptions {\n layout: HeatmapLayout;\n data: ColumnDatum[];\n xLabel?: string;\n yLabel?: string;\n showLegend: boolean;\n legendSvg: SVGSVGElement | null;\n xAxisTickFormat: (d: number | { valueOf(): number }) => string;\n yAxisTickFormat: (d: number | { valueOf(): number }) => string;\n xAxisTickLabelProps: ReturnType<typeof getXAxisTickLabelProps>;\n}\n\nconst appendTitle = (exportSvg: SVGSVGElement, 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\", String(AXIS_TITLE_FONT_SIZE));\n titleEl.setAttribute(\"font-family\", TICK_FONT_FAMILY);\n titleEl.textContent = text;\n exportSvg.appendChild(titleEl);\n};\n\nconst appendClone = (exportSvg: SVGSVGElement, 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// Resolution is capped (never upscaled) so a canvas can't exceed what browsers will reliably\n// allocate - past that, some browsers just hand back a blank canvas instead of erroring.\nfunction computeExportScale(width: number, height: number): number {\n const desiredScale = window.devicePixelRatio || 2;\n return Math.min(\n desiredScale,\n MAX_CANVAS_EXPORT_DIMENSION / width,\n MAX_CANVAS_EXPORT_DIMENSION / height,\n Math.sqrt(MAX_CANVAS_EXPORT_PIXELS / (width * height))\n );\n}\n\n// Rasterizes the full (unwindowed) cell grid onto a canvas using the same paint routine the\n// live scrollable grid and minimap use for their own canvases (drawHeatmapCells). This is the\n// key difference from every other layer here: a large grid (e.g. 1000x1000 = 1M cells) rendered\n// as individual SVG shapes via React would mean 1M DOM nodes built synchronously and then\n// serialized into a multi-hundred-MB XML string - that's what used to hang/crash the tab.\n// Painting into a canvas instead collapses that to a bounded number of fillRect calls, which is\n// exactly how the minimap already handles full-dataset draws.\nfunction rasterizeCells(o: ScrollableExportOptions, scale: number): HTMLCanvasElement | null {\n const { xMax, yMax, canvasCellParams, numRows } = o.layout;\n if (xMax <= 0 || yMax <= 0) return null;\n\n const canvas = document.createElement(\"canvas\");\n canvas.width = Math.max(1, Math.round(xMax * scale));\n canvas.height = Math.max(1, Math.round(yMax * scale));\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return null;\n\n ctx.setTransform(scale, 0, 0, scale, 0, 0);\n const range = { colStart: 0, colEnd: Math.max(0, o.data.length - 1), rowStart: 0, rowEnd: Math.max(0, numRows - 1) };\n drawHeatmapCells(ctx, canvasCellParams, range, null);\n return canvas;\n}\n\n// Only used to embed the cell layer in an actual downloadable .svg file (see\n// buildScrollableExportSVG) - the PNG path (downloadScrollableHeatmapPNG below) draws the\n// rasterized canvas directly onto the output canvas instead, so it never needs this as a string.\nfunction renderCellsToDataURL(o: ScrollableExportOptions): string | null {\n const { xMax, yMax } = o.layout;\n if (xMax <= 0 || yMax <= 0) return null;\n const canvas = rasterizeCells(o, computeExportScale(xMax, yMax));\n return canvas ? canvas.toDataURL(\"image/png\") : null;\n}\n\nconst appendCellsImage = (exportSvg: SVGSVGElement, dataUrl: string, x: number, y: number, width: number, height: number) => {\n const image = document.createElementNS(SVG_NS, \"image\");\n image.setAttribute(\"x\", String(x));\n image.setAttribute(\"y\", String(y));\n image.setAttribute(\"width\", String(width));\n image.setAttribute(\"height\", String(height));\n image.setAttribute(\"preserveAspectRatio\", \"none\");\n // Both attributes are set for compatibility: xlink:href is what older SVG renderers (and some\n // image editors) still expect, href is the modern SVG2/browser-native attribute.\n image.setAttributeNS(XLINK_NS, \"href\", dataUrl);\n image.setAttribute(\"href\", dataUrl);\n exportSvg.appendChild(image);\n};\n\n// Builds a standalone, off-DOM <svg> at full content size for export. The on-screen row/column\n// axis panes (SVGs windowed to the visible tick range) only ever hold a slice of the full grid -\n// they can't just be cloned for export without capturing an incomplete/mispositioned snapshot -\n// so both are rendered fresh here in one detached tree, synchronously, full grid, no windowing,\n// purely to snapshot into the export SVG below. The cell layer is handled separately (see\n// renderCellsToDataURL above) since it doesn't have this problem's flip side: rendering it fresh\n// as SVG shapes is exactly what's too expensive at full-grid scale.\nexport function buildScrollableExportSVG(o: ScrollableExportOptions, { includeCells = true }: { includeCells?: boolean } = {}): SVGSVGElement | null {\n const { layout } = o;\n const {\n marg, xMax, yMax, xScale, yScale, numRows, xTickValues, yTickValues, yTickLabelWidth, xTickLabelHeight,\n yTitleWidth, xTitleHeight,\n } = layout;\n\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 if (includeCells) {\n const cellsDataUrl = renderCellsToDataURL(o);\n if (cellsDataUrl) appendCellsImage(exportSvg, cellsDataUrl, marg.left, marg.top, xMax, yMax);\n }\n\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={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={o.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={o.data.length}\n tickFormat={o.xAxisTickFormat}\n tickValues={xTickValues}\n tickLabelProps={o.xAxisTickLabelProps}\n />\n </svg>\n </>\n );\n });\n if (fullRowAxis) appendClone(exportSvg, fullRowAxis, yTitleWidth, marg.top);\n if (fullColAxis) appendClone(exportSvg, fullColAxis, marg.left, marg.top + yMax);\n exportRoot.unmount();\n\n if (o.showLegend && o.legendSvg) {\n appendClone(exportSvg, o.legendSvg, 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 if (o.yLabel) appendTitle(exportSvg, o.yLabel, yTitleWidth / 2, marg.top + yMax / 2, true);\n if (o.xLabel) appendTitle(exportSvg, o.xLabel, marg.left + xMax / 2, marg.top + yMax + xTickLabelHeight + xTitleHeight / 2, false);\n\n return exportSvg;\n}\n\n// Renders a scrollable heatmap straight to a downloadable PNG in a single raster pass: the cell\n// grid is drawn once (rasterizeCells) directly onto the output canvas, and only the much smaller\n// axes/legend/titles are round-tripped through SVG-to-image to rasterize on top of it. This\n// deliberately avoids buildScrollableExportSVG's normal cells-as-embedded-image path (used for\n// the actual .svg download, where a raster layer has to be embedded as a data URL to produce a\n// valid standalone file) - base64-encoding a full-resolution cell canvas into an XML string,\n// then decoding that string back into an image to redraw onto a second full-size canvas, doubles\n// both the memory footprint and the encode/decode work for no benefit here, and was enough to\n// crash the tab on a large export. No DOM attachment is needed either: unlike downloadSVGAsPNG,\n// nothing here reads clientWidth/clientHeight - the output size comes straight from the layout.\nexport function downloadScrollableHeatmapPNG(o: ScrollableExportOptions, fileName: string): void {\n const { marg, xMax, yMax } = o.layout;\n if (xMax <= 0 || yMax <= 0) return;\n\n const fullWidth = marg.left + xMax + marg.right;\n const fullHeight = marg.top + yMax + marg.bottom;\n const scale = computeExportScale(fullWidth, fullHeight);\n\n const canvas = document.createElement(\"canvas\");\n canvas.width = Math.max(1, Math.round(fullWidth * scale));\n canvas.height = Math.max(1, Math.round(fullHeight * scale));\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return;\n\n const cellsCanvas = rasterizeCells(o, scale);\n if (cellsCanvas) ctx.drawImage(cellsCanvas, marg.left * scale, marg.top * scale);\n\n const finish = (blob: Blob | null) => {\n if (blob) downloadBlob(blob, fileName);\n };\n\n const axesSvg = buildScrollableExportSVG(o, { includeCells: false });\n if (!axesSvg) {\n canvas.toBlob(finish, \"image/png\", 1);\n return;\n }\n\n const svgString = new XMLSerializer().serializeToString(axesSvg);\n const svgBlob = new Blob([svgString], { type: \"image/svg+xml;charset=utf-8\" });\n const url = URL.createObjectURL(svgBlob);\n const img = new Image();\n img.onload = () => {\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n URL.revokeObjectURL(url);\n canvas.toBlob(finish, \"image/png\", 1);\n };\n img.onerror = () => URL.revokeObjectURL(url);\n img.src = url;\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.\nexport function withOffscreenExportSVG(o: ScrollableExportOptions, run: (svg: SVGSVGElement, onDone: () => void) => void): void {\n const svg = buildScrollableExportSVG(o);\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"],"names":["SVG_NS","XLINK_NS","appendTitle","exportSvg","text","x","y","rotate","titleEl","document","createElementNS","setAttribute","String","AXIS_TITLE_FONT_SIZE","TICK_FONT_FAMILY","textContent","appendChild","appendClone","source","group","childNodes","forEach","node","cloneNode","computeExportScale","width","height","desiredScale","window","devicePixelRatio","Math","min","MAX_CANVAS_EXPORT_DIMENSION","sqrt","MAX_CANVAS_EXPORT_PIXELS","rasterizeCells","o","scale","xMax","yMax","canvasCellParams","numRows","layout","canvas","createElement","max","round","ctx","getContext","setTransform","range","colStart","colEnd","data","length","rowStart","rowEnd","drawHeatmapCells","renderCellsToDataURL","toDataURL","appendCellsImage","dataUrl","image","setAttributeNS","buildScrollableExportSVG","includeCells","marg","xScale","yScale","xTickValues","yTickValues","yTickLabelWidth","xTickLabelHeight","yTitleWidth","xTitleHeight","left","right","top","bottom","cellsDataUrl","fullRowAxis","fullColAxis","exportContainer","exportRoot","createRoot","flushSync","render","jsxs","Fragment","jsx","el","AxisLeft","yAxisTickFormat","yAxisTickLabelProps","AxisBottom","xAxisTickFormat","xAxisTickLabelProps","unmount","showLegend","legendSvg","LEGEND_GAP","yLabel","xLabel","downloadScrollableHeatmapPNG","fileName","fullWidth","fullHeight","cellsCanvas","drawImage","finish","blob","downloadBlob","axesSvg","toBlob","svgString","XMLSerializer","serializeToString","svgBlob","Blob","type","url","URL","createObjectURL","img","Image","onload","revokeObjectURL","onerror","src","withOffscreenExportSVG","run","svg","wrapper","style","position","body","parentNode","removeChild"],"mappings":"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"}
|
|
@@ -1,67 +1,178 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
1
|
+
import { jsxs as n, Fragment as ri, jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { useId as oi, useCallback as ai, useState as ni, useRef as si } from "react";
|
|
3
|
+
import di from "./visualization.es123.js";
|
|
4
|
+
import ci from "./visualization.es126.js";
|
|
5
|
+
import hi from "./visualization.es127.js";
|
|
6
|
+
import { TICK_FONT_FAMILY as C, AXIS_TITLE_FONT_SIZE as M, yAxisTickLabelProps as mi } from "./visualization.es86.js";
|
|
7
|
+
import { MINI_MAP_HEIGHT as pi, LEGEND_GAP as b } from "./visualization.es87.js";
|
|
8
|
+
import { useHeatmapCanvasGrid as fi } from "./visualization.es128.js";
|
|
9
|
+
import { useScrollToSelection as gi } from "./visualization.es129.js";
|
|
10
|
+
import xi from "./visualization.es46.js";
|
|
11
|
+
import vi from "./visualization.es12.js";
|
|
12
|
+
import ui from "./visualization.es45.js";
|
|
13
|
+
const R = 10, Si = ({
|
|
14
|
+
legendSvgRef: $,
|
|
15
|
+
layout: I,
|
|
16
|
+
data: L,
|
|
17
|
+
showMiniMap: p,
|
|
18
|
+
showLegend: f,
|
|
19
|
+
xLabel: P,
|
|
20
|
+
yLabel: S,
|
|
21
|
+
tooltipBody: g,
|
|
22
|
+
onClick: H,
|
|
23
|
+
selectedCells: _,
|
|
24
|
+
scrollToSelection: A,
|
|
25
|
+
xAxisTickFormat: E,
|
|
26
|
+
yAxisTickFormat: N,
|
|
27
|
+
xAxisTickLabelProps: V
|
|
28
|
+
}) => {
|
|
29
|
+
const {
|
|
30
|
+
numRows: F,
|
|
31
|
+
marg: G,
|
|
32
|
+
xMax: d,
|
|
33
|
+
yMax: c,
|
|
34
|
+
viewportWidth: e,
|
|
35
|
+
viewportHeight: t,
|
|
36
|
+
yTitleWidth: l,
|
|
37
|
+
yTickLabelWidth: o,
|
|
38
|
+
xTitleHeight: s,
|
|
39
|
+
xTickLabelHeight: a,
|
|
40
|
+
binWidth: O,
|
|
41
|
+
xTickLeftOverhangMax: x,
|
|
42
|
+
legendWidth: h,
|
|
43
|
+
xScale: W,
|
|
44
|
+
yScale: j,
|
|
45
|
+
xTickValues: X,
|
|
46
|
+
yTickValues: B,
|
|
47
|
+
stableColors: z,
|
|
48
|
+
minValue: D,
|
|
49
|
+
maxValue: Y,
|
|
50
|
+
canvasCellParams: m
|
|
51
|
+
} = I, {
|
|
52
|
+
canvasRef: K,
|
|
53
|
+
mainPaneRef: v,
|
|
54
|
+
canvasTooltipRef: Z,
|
|
55
|
+
setMainPaneNode: q,
|
|
56
|
+
handleGridScroll: J,
|
|
57
|
+
axisScrollPos: r,
|
|
58
|
+
visibleXTickValues: Q,
|
|
59
|
+
visibleYTickValues: U,
|
|
60
|
+
canvasHandlers: ii
|
|
61
|
+
} = fi({
|
|
62
|
+
canvasCellParams: m,
|
|
63
|
+
viewportWidth: e,
|
|
64
|
+
viewportHeight: t,
|
|
65
|
+
xTickValues: X,
|
|
66
|
+
yTickValues: B,
|
|
67
|
+
isScrollable: !0,
|
|
68
|
+
onClick: H
|
|
69
|
+
});
|
|
70
|
+
gi({
|
|
71
|
+
mainPaneRef: v,
|
|
72
|
+
selectedCells: _,
|
|
73
|
+
scrollToSelection: A,
|
|
74
|
+
isScrollable: !0,
|
|
75
|
+
binWidth: O,
|
|
76
|
+
viewportWidth: e
|
|
77
|
+
});
|
|
78
|
+
const u = oi(), w = Math.max(0, x - r.left), y = ai((ti, li) => {
|
|
79
|
+
v.current?.scrollTo({
|
|
80
|
+
left: ti,
|
|
81
|
+
top: li
|
|
53
82
|
});
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
83
|
+
}, []), [ei, T] = ni(!1), k = si(null);
|
|
84
|
+
return /* @__PURE__ */ n(ri, { children: [
|
|
85
|
+
/* @__PURE__ */ n("div", { style: {
|
|
86
|
+
display: "flex",
|
|
87
|
+
flexDirection: "column"
|
|
88
|
+
}, children: [
|
|
89
|
+
p && /* @__PURE__ */ i("div", { ref: k, style: {
|
|
90
|
+
marginLeft: l + o,
|
|
91
|
+
position: "relative",
|
|
92
|
+
width: e
|
|
93
|
+
}, children: /* @__PURE__ */ i(ci, { canvasCellParams: m, xMax: d, yMax: c, viewportWidth: e, viewportHeight: t, scrollLeft: r.left, scrollTop: r.top, width: e, height: pi, onNavigate: y, onCanvasClick: () => T(!0) }) }),
|
|
94
|
+
/* @__PURE__ */ n("div", { style: {
|
|
95
|
+
display: "grid",
|
|
96
|
+
gridTemplateColumns: f ? `${l}px ${o}px ${e}px ${b + h}px` : `${l}px ${o}px ${e}px`,
|
|
97
|
+
gridTemplateRows: `${G.top}px ${t}px ${a}px ${s}px`
|
|
98
|
+
}, children: [
|
|
99
|
+
/* @__PURE__ */ i("div", { style: {
|
|
100
|
+
gridColumn: 1,
|
|
101
|
+
gridRow: 2,
|
|
102
|
+
width: l,
|
|
103
|
+
height: t,
|
|
104
|
+
display: "flex",
|
|
105
|
+
alignItems: "center",
|
|
106
|
+
justifyContent: "center"
|
|
107
|
+
}, children: /* @__PURE__ */ i("svg", { width: l, height: t, children: /* @__PURE__ */ i("text", { x: l / 2, y: t / 2, transform: `rotate(-90, ${l / 2}, ${t / 2})`, textAnchor: "middle", dominantBaseline: "middle", fontSize: M, fontFamily: C, children: S ?? "" }) }) }),
|
|
108
|
+
/* @__PURE__ */ i("div", { style: {
|
|
109
|
+
gridColumn: 2,
|
|
110
|
+
gridRow: 2,
|
|
111
|
+
width: o,
|
|
112
|
+
height: t,
|
|
113
|
+
overflow: "hidden"
|
|
114
|
+
}, children: /* @__PURE__ */ i("svg", { width: o, height: t, children: /* @__PURE__ */ i("g", { transform: `translate(${o},${-r.top})`, children: /* @__PURE__ */ i(xi, { scale: j, numTicks: F, tickValues: U, tickFormat: N, tickLabelProps: mi }) }) }) }),
|
|
115
|
+
/* @__PURE__ */ i("div", { ref: q, onScroll: J, style: {
|
|
116
|
+
gridColumn: 3,
|
|
117
|
+
gridRow: 2,
|
|
118
|
+
width: e,
|
|
119
|
+
height: t,
|
|
120
|
+
overflow: "auto",
|
|
121
|
+
overscrollBehavior: "contain",
|
|
122
|
+
position: "relative"
|
|
123
|
+
}, children: /* @__PURE__ */ i("div", { style: {
|
|
124
|
+
width: d,
|
|
125
|
+
height: c,
|
|
126
|
+
position: "relative"
|
|
127
|
+
}, children: /* @__PURE__ */ i("canvas", { ref: K, width: e * (window.devicePixelRatio || 1), height: t * (window.devicePixelRatio || 1), style: {
|
|
128
|
+
width: e,
|
|
129
|
+
height: t,
|
|
130
|
+
position: "sticky",
|
|
131
|
+
top: 0,
|
|
132
|
+
left: 0,
|
|
133
|
+
display: "block",
|
|
134
|
+
cursor: "default"
|
|
135
|
+
}, ...ii }) }) }),
|
|
136
|
+
g && /* @__PURE__ */ i(vi, { ref: Z, children: g }),
|
|
137
|
+
/* @__PURE__ */ i("div", { style: {
|
|
138
|
+
gridColumn: 3,
|
|
139
|
+
gridRow: 3,
|
|
140
|
+
width: e,
|
|
141
|
+
height: a,
|
|
142
|
+
overflow: "visible"
|
|
143
|
+
}, children: /* @__PURE__ */ n("svg", { width: e, height: a, style: {
|
|
144
|
+
overflow: "visible"
|
|
145
|
+
}, children: [
|
|
146
|
+
/* @__PURE__ */ i("defs", { children: /* @__PURE__ */ n("clipPath", { id: u, children: [
|
|
147
|
+
/* @__PURE__ */ i("rect", { x: 0, y: 0, width: e, height: a }),
|
|
148
|
+
x > 0 && /* @__PURE__ */ i("rect", { x: -w, y: R, width: w, height: Math.max(0, a - R) })
|
|
149
|
+
] }) }),
|
|
150
|
+
/* @__PURE__ */ i("g", { clipPath: `url(#${u})`, children: /* @__PURE__ */ i("g", { transform: `translate(${-r.left},0)`, children: /* @__PURE__ */ i(ui, { top: 0, scale: W, numTicks: L.length, tickFormat: E, tickValues: Q, tickLabelProps: V }) }) })
|
|
151
|
+
] }) }),
|
|
152
|
+
/* @__PURE__ */ i("div", { style: {
|
|
153
|
+
gridColumn: 3,
|
|
154
|
+
gridRow: 4,
|
|
155
|
+
width: e,
|
|
156
|
+
height: s,
|
|
157
|
+
display: "flex",
|
|
158
|
+
alignItems: "center",
|
|
159
|
+
justifyContent: "center"
|
|
160
|
+
}, children: /* @__PURE__ */ i("svg", { width: e, height: s, children: /* @__PURE__ */ i("text", { x: e / 2, y: s / 2, textAnchor: "middle", dominantBaseline: "middle", fontSize: M, fontFamily: C, children: P ?? "" }) }) }),
|
|
161
|
+
f && /* @__PURE__ */ i("div", { style: {
|
|
162
|
+
gridColumn: 4,
|
|
163
|
+
gridRow: 2,
|
|
164
|
+
width: h,
|
|
165
|
+
marginLeft: b,
|
|
166
|
+
height: t
|
|
167
|
+
}, children: /* @__PURE__ */ i("svg", { width: h, height: t, ref: $, style: {
|
|
168
|
+
overflow: "visible"
|
|
169
|
+
}, children: /* @__PURE__ */ i(di, { colors: z, minValue: D, maxValue: Y, height: t }) }) })
|
|
170
|
+
] })
|
|
171
|
+
] }),
|
|
172
|
+
p && ei && /* @__PURE__ */ i(hi, { onClose: () => T(!1), containerRef: k, canvasCellParams: m, xMax: d, yMax: c, viewportWidth: e, viewportHeight: t, scrollLeft: r.left, scrollTop: r.top, onNavigate: y })
|
|
173
|
+
] });
|
|
174
|
+
};
|
|
64
175
|
export {
|
|
65
|
-
|
|
176
|
+
Si as default
|
|
66
177
|
};
|
|
67
178
|
//# sourceMappingURL=visualization.es89.js.map
|