@weng-lab/visualization 2.6.0-beta.0 → 2.6.0
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/HeatmapCanvasCells.d.ts +19 -5
- package/dist/src/components/Heatmap/HeatmapCanvasCells.d.ts.map +1 -1
- package/dist/src/components/Heatmap/HeatmapGrid.d.ts +36 -0
- package/dist/src/components/Heatmap/HeatmapGrid.d.ts.map +1 -0
- package/dist/src/components/Heatmap/{scrollable/HeatmapMiniMap.d.ts → HeatmapMiniMap.d.ts} +1 -1
- package/dist/src/components/Heatmap/HeatmapMiniMap.d.ts.map +1 -0
- package/dist/src/components/Heatmap/{scrollable/HeatmapMiniMapPopup.d.ts → HeatmapMiniMapPopup.d.ts} +1 -1
- package/dist/src/components/Heatmap/HeatmapMiniMapPopup.d.ts.map +1 -0
- package/dist/src/components/Heatmap/heatmapAxisProps.d.ts +2 -15
- package/dist/src/components/Heatmap/heatmapAxisProps.d.ts.map +1 -1
- package/dist/src/components/Heatmap/heatmapCellAppearance.d.ts +2 -2
- package/dist/src/components/Heatmap/heatmapExport.d.ts +20 -0
- package/dist/src/components/Heatmap/heatmapExport.d.ts.map +1 -0
- package/dist/src/components/Heatmap/heatmapLayout.d.ts +4 -18
- package/dist/src/components/Heatmap/heatmapLayout.d.ts.map +1 -1
- package/dist/src/components/Heatmap/hooks/useHeatmapCanvasGrid.d.ts +4 -3
- package/dist/src/components/Heatmap/hooks/useHeatmapCanvasGrid.d.ts.map +1 -1
- package/dist/src/components/Heatmap/types.d.ts +13 -5
- package/dist/src/components/Heatmap/types.d.ts.map +1 -1
- package/dist/src/components/ScatterPlot/controls.d.ts.map +1 -1
- package/dist/src/components/ScatterPlot/minimap.d.ts.map +1 -1
- package/dist/src/utility.d.ts +34 -20
- package/dist/src/utility.d.ts.map +1 -1
- package/dist/visualization.es10.js +10 -10
- package/dist/visualization.es100.js +556 -222
- package/dist/visualization.es100.js.map +1 -1
- package/dist/visualization.es101.js +214 -18
- package/dist/visualization.es101.js.map +1 -1
- package/dist/visualization.es102.js +2 -95
- package/dist/visualization.es102.js.map +1 -1
- package/dist/visualization.es103.js +4795 -170
- package/dist/visualization.es103.js.map +1 -1
- package/dist/visualization.es104.js +25 -82
- package/dist/visualization.es104.js.map +1 -1
- package/dist/visualization.es105.js +42 -34
- package/dist/visualization.es105.js.map +1 -1
- package/dist/visualization.es106.js +144 -56
- package/dist/visualization.es106.js.map +1 -1
- package/dist/visualization.es107.js +147 -47
- package/dist/visualization.es107.js.map +1 -1
- package/dist/visualization.es108.js +1 -1
- package/dist/visualization.es109.js +14 -221
- package/dist/visualization.es109.js.map +1 -1
- package/dist/visualization.es11.js +8 -8
- package/dist/visualization.es110.js +55 -2
- package/dist/visualization.es110.js.map +1 -1
- package/dist/visualization.es111.js +23 -556
- package/dist/visualization.es111.js.map +1 -1
- package/dist/visualization.es112.js +82 -212
- package/dist/visualization.es112.js.map +1 -1
- package/dist/visualization.es113.js +245 -2
- package/dist/visualization.es113.js.map +1 -1
- package/dist/visualization.es114.js +17 -4799
- package/dist/visualization.es114.js.map +1 -1
- package/dist/visualization.es115.js +142 -25
- package/dist/visualization.es115.js.map +1 -1
- package/dist/visualization.es116.js +173 -43
- package/dist/visualization.es116.js.map +1 -1
- package/dist/visualization.es117.js +102 -143
- package/dist/visualization.es117.js.map +1 -1
- package/dist/visualization.es118.js +36 -146
- package/dist/visualization.es118.js.map +1 -1
- package/dist/visualization.es119.js +25 -31
- package/dist/visualization.es119.js.map +1 -1
- package/dist/visualization.es120.js +69 -44
- package/dist/visualization.es120.js.map +1 -1
- package/dist/visualization.es121.js +29 -73
- package/dist/visualization.es121.js.map +1 -1
- package/dist/visualization.es122.js +43 -23
- package/dist/visualization.es122.js.map +1 -1
- package/dist/visualization.es123.js +71 -80
- package/dist/visualization.es123.js.map +1 -1
- package/dist/visualization.es124.js +25 -36
- package/dist/visualization.es124.js.map +1 -1
- package/dist/visualization.es125.js +84 -25
- package/dist/visualization.es125.js.map +1 -1
- package/dist/visualization.es126.js +35 -69
- package/dist/visualization.es126.js.map +1 -1
- package/dist/visualization.es127.js +55 -71
- package/dist/visualization.es127.js.map +1 -1
- package/dist/visualization.es128.js +31 -32
- package/dist/visualization.es128.js.map +1 -1
- package/dist/visualization.es129.js +18 -13
- package/dist/visualization.es129.js.map +1 -1
- package/dist/visualization.es130.js +14 -58
- package/dist/visualization.es130.js.map +1 -1
- package/dist/visualization.es131.js +25 -31
- package/dist/visualization.es131.js.map +1 -1
- package/dist/visualization.es132.js +2 -18
- package/dist/visualization.es132.js.map +1 -1
- package/dist/visualization.es133.js +1606 -14
- package/dist/visualization.es133.js.map +1 -1
- package/dist/visualization.es134.js +18 -26
- package/dist/visualization.es134.js.map +1 -1
- package/dist/visualization.es135.js +61 -2
- package/dist/visualization.es135.js.map +1 -1
- package/dist/visualization.es136.js +37 -1604
- package/dist/visualization.es136.js.map +1 -1
- package/dist/visualization.es137.js +34 -61
- package/dist/visualization.es137.js.map +1 -1
- package/dist/visualization.es138.js +84 -7
- package/dist/visualization.es138.js.map +1 -1
- package/dist/visualization.es139.js +29 -5
- package/dist/visualization.es139.js.map +1 -1
- package/dist/visualization.es14.js +6 -6
- package/dist/visualization.es140.js +7 -42
- package/dist/visualization.es140.js.map +1 -1
- package/dist/visualization.es141.js +4 -30
- package/dist/visualization.es141.js.map +1 -1
- package/dist/visualization.es142.js +2 -6
- package/dist/visualization.es142.js.map +1 -1
- package/dist/visualization.es143.js +63 -6
- package/dist/visualization.es143.js.map +1 -1
- package/dist/visualization.es144.js +7 -4
- package/dist/visualization.es144.js.map +1 -1
- package/dist/visualization.es145.js +5 -17
- package/dist/visualization.es145.js.map +1 -1
- package/dist/visualization.es146.js +40 -14
- package/dist/visualization.es146.js.map +1 -1
- package/dist/visualization.es147.js +84 -32
- package/dist/visualization.es147.js.map +1 -1
- package/dist/visualization.es148.js +89 -16
- package/dist/visualization.es148.js.map +1 -1
- package/dist/visualization.es149.js +11 -9
- package/dist/visualization.es149.js.map +1 -1
- package/dist/visualization.es150.js +5 -6
- package/dist/visualization.es150.js.map +1 -1
- package/dist/visualization.es151.js +14 -6
- package/dist/visualization.es151.js.map +1 -1
- package/dist/visualization.es152.js +7 -11
- package/dist/visualization.es152.js.map +1 -1
- package/dist/visualization.es153.js +13 -4
- package/dist/visualization.es153.js.map +1 -1
- package/dist/visualization.es154.js +71 -4
- package/dist/visualization.es154.js.map +1 -1
- package/dist/visualization.es155.js +16 -8
- package/dist/visualization.es155.js.map +1 -1
- package/dist/visualization.es156.js +11 -4
- package/dist/visualization.es156.js.map +1 -1
- package/dist/visualization.es157.js +5 -13
- package/dist/visualization.es157.js.map +1 -1
- package/dist/visualization.es158.js +18 -25
- package/dist/visualization.es158.js.map +1 -1
- package/dist/visualization.es159.js +27 -60
- package/dist/visualization.es159.js.map +1 -1
- package/dist/visualization.es16.js +7 -7
- package/dist/visualization.es160.js +30 -38
- package/dist/visualization.es160.js.map +1 -1
- package/dist/visualization.es161.js +6 -35
- package/dist/visualization.es161.js.map +1 -1
- package/dist/visualization.es162.js +6 -83
- package/dist/visualization.es162.js.map +1 -1
- package/dist/visualization.es163.js +3 -28
- package/dist/visualization.es163.js.map +1 -1
- package/dist/visualization.es164.js +15 -6
- package/dist/visualization.es164.js.map +1 -1
- package/dist/visualization.es165.js +16 -4
- package/dist/visualization.es165.js.map +1 -1
- package/dist/visualization.es166.js +32 -3
- package/dist/visualization.es166.js.map +1 -1
- package/dist/visualization.es167.js +15 -70
- package/dist/visualization.es167.js.map +1 -1
- package/dist/visualization.es168.js +8 -14
- package/dist/visualization.es168.js.map +1 -1
- package/dist/visualization.es169.js +6 -11
- package/dist/visualization.es169.js.map +1 -1
- package/dist/visualization.es170.js +7 -5
- package/dist/visualization.es170.js.map +1 -1
- package/dist/visualization.es171.js +10 -84
- package/dist/visualization.es171.js.map +1 -1
- package/dist/visualization.es172.js +4 -89
- package/dist/visualization.es172.js.map +1 -1
- package/dist/visualization.es173.js +3 -11
- package/dist/visualization.es173.js.map +1 -1
- package/dist/visualization.es174.js +8 -5
- package/dist/visualization.es174.js.map +1 -1
- package/dist/visualization.es175.js +4 -14
- package/dist/visualization.es175.js.map +1 -1
- package/dist/visualization.es176.js +13 -7
- package/dist/visualization.es176.js.map +1 -1
- package/dist/visualization.es177.js +26 -13
- package/dist/visualization.es177.js.map +1 -1
- package/dist/visualization.es178.js +3 -3
- package/dist/visualization.es179.js +2 -2
- package/dist/visualization.es180.js +3 -3
- package/dist/visualization.es186.js +2 -2
- package/dist/visualization.es187.js +2 -2
- package/dist/visualization.es19.js +1 -1
- package/dist/visualization.es193.js +2 -2
- package/dist/visualization.es2.js +8 -8
- package/dist/visualization.es206.js +3 -19
- package/dist/visualization.es206.js.map +1 -1
- package/dist/visualization.es207.js +74 -27
- package/dist/visualization.es207.js.map +1 -1
- package/dist/visualization.es208.js +2 -18
- package/dist/visualization.es208.js.map +1 -1
- package/dist/visualization.es209.js +482 -3
- package/dist/visualization.es209.js.map +1 -1
- package/dist/visualization.es21.js +1 -1
- package/dist/visualization.es210.js +2 -73
- package/dist/visualization.es210.js.map +1 -1
- package/dist/visualization.es211.js +16 -20
- package/dist/visualization.es211.js.map +1 -1
- package/dist/visualization.es212.js +3 -22
- package/dist/visualization.es212.js.map +1 -1
- package/dist/visualization.es213.js +34 -39
- package/dist/visualization.es213.js.map +1 -1
- package/dist/visualization.es214.js +72 -7
- package/dist/visualization.es214.js.map +1 -1
- package/dist/visualization.es215.js +20 -10
- package/dist/visualization.es215.js.map +1 -1
- package/dist/visualization.es216.js +19 -14
- package/dist/visualization.es216.js.map +1 -1
- package/dist/visualization.es217.js +37 -33
- package/dist/visualization.es217.js.map +1 -1
- package/dist/visualization.es218.js +7 -24
- package/dist/visualization.es218.js.map +1 -1
- package/dist/visualization.es219.js +10 -25
- package/dist/visualization.es219.js.map +1 -1
- package/dist/visualization.es220.js +14 -15
- package/dist/visualization.es220.js.map +1 -1
- package/dist/visualization.es221.js +36 -3
- package/dist/visualization.es221.js.map +1 -1
- package/dist/visualization.es222.js +24 -35
- package/dist/visualization.es222.js.map +1 -1
- package/dist/visualization.es223.js +27 -74
- package/dist/visualization.es223.js.map +1 -1
- package/dist/visualization.es224.js +33 -2
- package/dist/visualization.es224.js.map +1 -1
- package/dist/visualization.es225.js +114 -482
- package/dist/visualization.es225.js.map +1 -1
- package/dist/visualization.es226.js +4 -2
- package/dist/visualization.es226.js.map +1 -1
- package/dist/visualization.es227.js +5 -63
- package/dist/visualization.es227.js.map +1 -1
- package/dist/visualization.es228.js +33 -60
- package/dist/visualization.es228.js.map +1 -1
- package/dist/visualization.es229.js +15 -123
- package/dist/visualization.es229.js.map +1 -1
- package/dist/visualization.es23.js +62 -146
- package/dist/visualization.es23.js.map +1 -1
- package/dist/visualization.es230.js +6 -8
- package/dist/visualization.es230.js.map +1 -1
- package/dist/visualization.es231.js +11 -6
- package/dist/visualization.es231.js.map +1 -1
- package/dist/visualization.es232.js +9 -7
- package/dist/visualization.es232.js.map +1 -1
- package/dist/visualization.es233.js +5 -8
- package/dist/visualization.es233.js.map +1 -1
- package/dist/visualization.es234.js +7 -6
- package/dist/visualization.es234.js.map +1 -1
- package/dist/visualization.es235.js +9 -6
- package/dist/visualization.es235.js.map +1 -1
- package/dist/visualization.es236.js +6 -5
- package/dist/visualization.es236.js.map +1 -1
- package/dist/visualization.es237.js +6 -14
- package/dist/visualization.es237.js.map +1 -1
- package/dist/visualization.es238.js +4 -4
- package/dist/visualization.es238.js.map +1 -1
- package/dist/visualization.es239.js +14 -3
- package/dist/visualization.es239.js.map +1 -1
- package/dist/visualization.es24.js +1 -1
- package/dist/visualization.es240.js +5 -6
- package/dist/visualization.es240.js.map +1 -1
- package/dist/visualization.es241.js +3 -6
- package/dist/visualization.es241.js.map +1 -1
- package/dist/visualization.es242.js +6 -9
- package/dist/visualization.es242.js.map +1 -1
- package/dist/visualization.es243.js +6 -32
- package/dist/visualization.es243.js.map +1 -1
- package/dist/visualization.es244.js +9 -114
- package/dist/visualization.es244.js.map +1 -1
- package/dist/visualization.es245.js +123 -3
- package/dist/visualization.es245.js.map +1 -1
- package/dist/visualization.es246.js +2 -6
- package/dist/visualization.es246.js.map +1 -1
- package/dist/visualization.es247.js +3 -33
- package/dist/visualization.es247.js.map +1 -1
- package/dist/visualization.es248.js +3 -15
- package/dist/visualization.es248.js.map +1 -1
- package/dist/visualization.es249.js +3 -7
- package/dist/visualization.es249.js.map +1 -1
- package/dist/visualization.es25.js +111 -38
- package/dist/visualization.es25.js.map +1 -1
- package/dist/visualization.es250.js +3 -11
- package/dist/visualization.es250.js.map +1 -1
- package/dist/visualization.es251.js +4 -2
- package/dist/visualization.es251.js.map +1 -1
- package/dist/visualization.es252.js +3 -34
- package/dist/visualization.es252.js.map +1 -1
- package/dist/visualization.es253.js +4 -2
- package/dist/visualization.es253.js.map +1 -1
- package/dist/visualization.es254.js +7 -3
- package/dist/visualization.es254.js.map +1 -1
- package/dist/visualization.es255.js +48 -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 +6 -3
- package/dist/visualization.es257.js.map +1 -1
- package/dist/visualization.es258.js +4 -3
- package/dist/visualization.es258.js.map +1 -1
- package/dist/visualization.es259.js +3 -3
- package/dist/visualization.es259.js.map +1 -1
- package/dist/visualization.es26.js +175 -79
- package/dist/visualization.es26.js.map +1 -1
- package/dist/visualization.es260.js +6 -3
- package/dist/visualization.es260.js.map +1 -1
- package/dist/visualization.es261.js +4 -7
- package/dist/visualization.es261.js.map +1 -1
- package/dist/visualization.es262.js +33 -47
- package/dist/visualization.es262.js.map +1 -1
- package/dist/visualization.es263.js +2 -4
- package/dist/visualization.es263.js.map +1 -1
- package/dist/visualization.es264.js +23 -6
- package/dist/visualization.es264.js.map +1 -1
- package/dist/visualization.es265.js +53 -4
- package/dist/visualization.es265.js.map +1 -1
- package/dist/visualization.es266.js +20 -3
- package/dist/visualization.es266.js.map +1 -1
- package/dist/visualization.es267.js +52 -5
- package/dist/visualization.es267.js.map +1 -1
- package/dist/visualization.es268.js +31 -4
- package/dist/visualization.es268.js.map +1 -1
- package/dist/visualization.es269.js +34 -7
- package/dist/visualization.es269.js.map +1 -1
- package/dist/visualization.es27.js +8 -46
- package/dist/visualization.es27.js.map +1 -1
- package/dist/visualization.es270.js +12 -34
- package/dist/visualization.es270.js.map +1 -1
- package/dist/visualization.es271.js +28 -2
- package/dist/visualization.es271.js.map +1 -1
- package/dist/visualization.es272.js +3 -4
- package/dist/visualization.es272.js.map +1 -1
- package/dist/visualization.es273.js +11 -6
- package/dist/visualization.es273.js.map +1 -1
- package/dist/visualization.es274.js +36 -12
- package/dist/visualization.es274.js.map +1 -1
- package/dist/visualization.es275.js +261 -2
- package/dist/visualization.es275.js.map +1 -1
- package/dist/visualization.es276.js +59 -3
- package/dist/visualization.es276.js.map +1 -1
- package/dist/visualization.es277.js +5 -3
- package/dist/visualization.es277.js.map +1 -1
- package/dist/visualization.es278.js +6 -9
- package/dist/visualization.es278.js.map +1 -1
- package/dist/visualization.es279.js +140 -4
- package/dist/visualization.es279.js.map +1 -1
- package/dist/visualization.es28.js +7 -55
- package/dist/visualization.es28.js.map +1 -1
- package/dist/visualization.es280.js +5 -32
- package/dist/visualization.es280.js.map +1 -1
- package/dist/visualization.es281.js +21 -53
- package/dist/visualization.es281.js.map +1 -1
- package/dist/visualization.es282.js +33 -27
- package/dist/visualization.es282.js.map +1 -1
- package/dist/visualization.es283.js +31 -30
- package/dist/visualization.es283.js.map +1 -1
- package/dist/visualization.es284.js +15 -13
- package/dist/visualization.es284.js.map +1 -1
- package/dist/visualization.es285.js +19 -24
- package/dist/visualization.es285.js.map +1 -1
- package/dist/visualization.es286.js +9 -54
- package/dist/visualization.es286.js.map +1 -1
- package/dist/visualization.es287.js +108 -19
- package/dist/visualization.es287.js.map +1 -1
- package/dist/visualization.es288.js +13 -3
- package/dist/visualization.es288.js.map +1 -1
- package/dist/visualization.es289.js +141 -11
- package/dist/visualization.es289.js.map +1 -1
- package/dist/visualization.es29.js +47 -6
- package/dist/visualization.es29.js.map +1 -1
- package/dist/visualization.es290.js +5 -36
- package/dist/visualization.es290.js.map +1 -1
- package/dist/visualization.es291.js +58 -247
- package/dist/visualization.es291.js.map +1 -1
- package/dist/visualization.es292.js +33 -57
- package/dist/visualization.es292.js.map +1 -1
- package/dist/visualization.es293.js +20 -5
- package/dist/visualization.es293.js.map +1 -1
- package/dist/visualization.es294.js +3 -21
- package/dist/visualization.es294.js.map +1 -1
- package/dist/visualization.es295.js +18 -31
- package/dist/visualization.es295.js.map +1 -1
- package/dist/visualization.es296.js +30 -34
- package/dist/visualization.es296.js.map +1 -1
- package/dist/visualization.es297.js +2 -15
- package/dist/visualization.es297.js.map +1 -1
- package/dist/visualization.es298.js +2 -19
- package/dist/visualization.es298.js.map +1 -1
- package/dist/visualization.es299.js +6 -9
- package/dist/visualization.es299.js.map +1 -1
- package/dist/visualization.es3.js +10 -10
- package/dist/visualization.es30.js +20 -7
- package/dist/visualization.es30.js.map +1 -1
- package/dist/visualization.es300.js +15 -8
- package/dist/visualization.es300.js.map +1 -1
- package/dist/visualization.es301.js +31 -137
- package/dist/visualization.es301.js.map +1 -1
- package/dist/visualization.es302.js +27 -5
- package/dist/visualization.es302.js.map +1 -1
- package/dist/visualization.es303.js +10 -109
- package/dist/visualization.es303.js.map +1 -1
- package/dist/visualization.es304.js +6 -12
- package/dist/visualization.es304.js.map +1 -1
- package/dist/visualization.es305.js +13 -141
- package/dist/visualization.es305.js.map +1 -1
- package/dist/visualization.es306.js +12 -6
- package/dist/visualization.es306.js.map +1 -1
- package/dist/visualization.es307.js +2 -72
- package/dist/visualization.es307.js.map +1 -1
- package/dist/visualization.es308.js +3 -36
- package/dist/visualization.es308.js.map +1 -1
- package/dist/visualization.es309.js +2 -21
- package/dist/visualization.es309.js.map +1 -1
- package/dist/visualization.es310.js +103 -3
- package/dist/visualization.es310.js.map +1 -1
- package/dist/visualization.es311.js +4 -24
- package/dist/visualization.es311.js.map +1 -1
- package/dist/visualization.es312.js +3 -31
- package/dist/visualization.es312.js.map +1 -1
- package/dist/visualization.es313.js +19 -2
- package/dist/visualization.es313.js.map +1 -1
- package/dist/visualization.es314.js +6 -2
- package/dist/visualization.es314.js.map +1 -1
- package/dist/visualization.es315.js +14 -5
- package/dist/visualization.es315.js.map +1 -1
- package/dist/visualization.es316.js +5 -15
- package/dist/visualization.es316.js.map +1 -1
- package/dist/visualization.es317.js +28 -34
- package/dist/visualization.es317.js.map +1 -1
- package/dist/visualization.es318.js +6 -27
- package/dist/visualization.es318.js.map +1 -1
- package/dist/visualization.es319.js +2 -11
- package/dist/visualization.es319.js.map +1 -1
- package/dist/visualization.es32.js +33 -25
- package/dist/visualization.es32.js.map +1 -1
- package/dist/visualization.es320.js +20 -7
- package/dist/visualization.es320.js.map +1 -1
- package/dist/visualization.es321.js +21 -14
- package/dist/visualization.es321.js.map +1 -1
- package/dist/visualization.es322.js +6 -12
- package/dist/visualization.es322.js.map +1 -1
- package/dist/visualization.es323.js +8 -2
- package/dist/visualization.es323.js.map +1 -1
- package/dist/visualization.es324.js +19 -3
- package/dist/visualization.es324.js.map +1 -1
- package/dist/visualization.es325.js +44 -2
- package/dist/visualization.es325.js.map +1 -1
- package/dist/visualization.es326.js +7 -104
- package/dist/visualization.es326.js.map +1 -1
- package/dist/visualization.es327.js +19 -4
- package/dist/visualization.es327.js.map +1 -1
- package/dist/visualization.es328.js +54 -3
- package/dist/visualization.es328.js.map +1 -1
- package/dist/visualization.es329.js +26 -18
- package/dist/visualization.es329.js.map +1 -1
- package/dist/visualization.es33.js +32 -45
- package/dist/visualization.es33.js.map +1 -1
- package/dist/visualization.es330.js +11 -6
- package/dist/visualization.es330.js.map +1 -1
- package/dist/visualization.es331.js +17 -13
- package/dist/visualization.es331.js.map +1 -1
- package/dist/visualization.es332.js +11 -4
- package/dist/visualization.es332.js.map +1 -1
- package/dist/visualization.es333.js +4 -28
- package/dist/visualization.es333.js.map +1 -1
- package/dist/visualization.es334.js +4 -7
- package/dist/visualization.es334.js.map +1 -1
- package/dist/visualization.es335.js +4 -2
- package/dist/visualization.es335.js.map +1 -1
- package/dist/visualization.es336.js +176 -20
- package/dist/visualization.es336.js.map +1 -1
- package/dist/visualization.es337.js +40 -21
- package/dist/visualization.es337.js.map +1 -1
- package/dist/visualization.es338.js +5 -5
- package/dist/visualization.es338.js.map +1 -1
- package/dist/visualization.es339.js +3 -7
- package/dist/visualization.es339.js.map +1 -1
- package/dist/visualization.es34.js +41 -31
- package/dist/visualization.es34.js.map +1 -1
- package/dist/visualization.es340.js +2 -19
- package/dist/visualization.es340.js.map +1 -1
- package/dist/visualization.es341.js +29 -43
- package/dist/visualization.es341.js.map +1 -1
- package/dist/visualization.es342.js +8 -7
- package/dist/visualization.es342.js.map +1 -1
- package/dist/visualization.es343.js +10 -19
- package/dist/visualization.es343.js.map +1 -1
- package/dist/visualization.es344.js +3 -53
- package/dist/visualization.es344.js.map +1 -1
- package/dist/visualization.es345.js +65 -26
- package/dist/visualization.es345.js.map +1 -1
- package/dist/visualization.es346.js +7 -11
- package/dist/visualization.es346.js.map +1 -1
- package/dist/visualization.es347.js +4 -18
- package/dist/visualization.es347.js.map +1 -1
- package/dist/visualization.es348.js +12 -10
- package/dist/visualization.es348.js.map +1 -1
- package/dist/visualization.es349.js +34 -4
- package/dist/visualization.es349.js.map +1 -1
- package/dist/visualization.es35.js +34 -33
- package/dist/visualization.es35.js.map +1 -1
- package/dist/visualization.es350.js +5 -4
- package/dist/visualization.es350.js.map +1 -1
- package/dist/visualization.es351.js +9 -3
- package/dist/visualization.es351.js.map +1 -1
- package/dist/visualization.es352.js +2 -176
- package/dist/visualization.es352.js.map +1 -1
- package/dist/visualization.es353.js +5 -40
- package/dist/visualization.es353.js.map +1 -1
- package/dist/visualization.es354.js +2 -6
- package/dist/visualization.es354.js.map +1 -1
- package/dist/visualization.es355.js +9 -3
- package/dist/visualization.es355.js.map +1 -1
- package/dist/visualization.es356.js +10 -2
- package/dist/visualization.es356.js.map +1 -1
- package/dist/visualization.es357.js +12 -29
- package/dist/visualization.es357.js.map +1 -1
- package/dist/visualization.es358.js +2 -8
- package/dist/visualization.es358.js.map +1 -1
- package/dist/visualization.es359.js +10 -11
- package/dist/visualization.es359.js.map +1 -1
- package/dist/visualization.es36.js +67 -18
- package/dist/visualization.es36.js.map +1 -1
- package/dist/visualization.es360.js +7 -3
- package/dist/visualization.es360.js.map +1 -1
- package/dist/visualization.es361.js +5 -65
- package/dist/visualization.es361.js.map +1 -1
- package/dist/visualization.es362.js +25 -7
- package/dist/visualization.es362.js.map +1 -1
- package/dist/visualization.es363.js +19 -5
- package/dist/visualization.es363.js.map +1 -1
- package/dist/visualization.es364.js +39 -12
- package/dist/visualization.es364.js.map +1 -1
- package/dist/visualization.es365.js +3 -35
- package/dist/visualization.es365.js.map +1 -1
- package/dist/visualization.es366.js +8 -4
- package/dist/visualization.es366.js.map +1 -1
- package/dist/visualization.es367.js +8 -9
- package/dist/visualization.es367.js.map +1 -1
- package/dist/visualization.es368.js +36 -2
- package/dist/visualization.es368.js.map +1 -1
- package/dist/visualization.es369.js +10 -5
- package/dist/visualization.es369.js.map +1 -1
- package/dist/visualization.es37.js +11 -12
- package/dist/visualization.es37.js.map +1 -1
- package/dist/visualization.es370.js +32 -2
- package/dist/visualization.es370.js.map +1 -1
- package/dist/visualization.es371.js +4 -9
- 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 +16 -13
- package/dist/visualization.es373.js.map +1 -1
- package/dist/visualization.es374.js +25 -2
- package/dist/visualization.es374.js.map +1 -1
- package/dist/visualization.es375.js +2 -10
- package/dist/visualization.es375.js.map +1 -1
- package/dist/visualization.es376.js +62 -7
- package/dist/visualization.es376.js.map +1 -1
- package/dist/visualization.es377.js +2 -6
- package/dist/visualization.es377.js.map +1 -1
- package/dist/visualization.es378.js +2 -25
- package/dist/visualization.es378.js.map +1 -1
- package/dist/visualization.es379.js +6 -19
- package/dist/visualization.es379.js.map +1 -1
- package/dist/visualization.es38.js +18689 -45
- package/dist/visualization.es38.js.map +1 -1
- package/dist/visualization.es380.js +34 -38
- package/dist/visualization.es380.js.map +1 -1
- package/dist/visualization.es381.js +21 -3
- package/dist/visualization.es381.js.map +1 -1
- package/dist/visualization.es382.js +3 -8
- package/dist/visualization.es382.js.map +1 -1
- package/dist/visualization.es383.js +4 -8
- package/dist/visualization.es383.js.map +1 -1
- package/dist/visualization.es384.js +4 -35
- package/dist/visualization.es384.js.map +1 -1
- package/dist/visualization.es385.js +47 -8
- package/dist/visualization.es385.js.map +1 -1
- package/dist/visualization.es386.js +26 -31
- package/dist/visualization.es386.js.map +1 -1
- package/dist/visualization.es387.js +16 -4
- package/dist/visualization.es387.js.map +1 -1
- package/dist/visualization.es388.js +10 -2
- package/dist/visualization.es388.js.map +1 -1
- package/dist/visualization.es389.js +18 -14
- package/dist/visualization.es389.js.map +1 -1
- package/dist/visualization.es39.js +5 -55
- package/dist/visualization.es39.js.map +1 -1
- package/dist/visualization.es390.js +13 -24
- package/dist/visualization.es390.js.map +1 -1
- package/dist/visualization.es391.js +4 -2
- package/dist/visualization.es391.js.map +1 -1
- package/dist/visualization.es392.js +11 -61
- package/dist/visualization.es392.js.map +1 -1
- package/dist/visualization.es393.js +49 -2
- package/dist/visualization.es393.js.map +1 -1
- package/dist/visualization.es394.js +6 -2
- package/dist/visualization.es394.js.map +1 -1
- package/dist/visualization.es395.js +12 -5
- package/dist/visualization.es395.js.map +1 -1
- package/dist/visualization.es396.js +2 -37
- package/dist/visualization.es396.js.map +1 -1
- package/dist/visualization.es397.js +6 -20
- package/dist/visualization.es397.js.map +1 -1
- package/dist/visualization.es398.js +209 -3
- package/dist/visualization.es398.js.map +1 -1
- package/dist/visualization.es399.js +26 -4
- package/dist/visualization.es399.js.map +1 -1
- package/dist/visualization.es4.js +6 -6
- package/dist/visualization.es40.js +5 -111
- package/dist/visualization.es40.js.map +1 -1
- package/dist/visualization.es400.js +3 -4
- package/dist/visualization.es400.js.map +1 -1
- package/dist/visualization.es401.js +14 -47
- package/dist/visualization.es401.js.map +1 -1
- package/dist/visualization.es402.js +14 -26
- package/dist/visualization.es402.js.map +1 -1
- package/dist/visualization.es403.js +14 -16
- package/dist/visualization.es403.js.map +1 -1
- package/dist/visualization.es404.js +2 -10
- package/dist/visualization.es404.js.map +1 -1
- package/dist/visualization.es405.js +2 -20
- package/dist/visualization.es405.js.map +1 -1
- package/dist/visualization.es406.js +2 -14
- package/dist/visualization.es406.js.map +1 -1
- package/dist/visualization.es407.js +5 -4
- package/dist/visualization.es407.js.map +1 -1
- package/dist/visualization.es408.js +2 -13
- package/dist/visualization.es408.js.map +1 -1
- package/dist/visualization.es409.js +25 -49
- package/dist/visualization.es409.js.map +1 -1
- package/dist/visualization.es41.js +59 -7
- package/dist/visualization.es41.js.map +1 -1
- package/dist/visualization.es410.js +21 -5
- package/dist/visualization.es410.js.map +1 -1
- package/dist/visualization.es411.js +8 -12
- package/dist/visualization.es411.js.map +1 -1
- package/dist/visualization.es412.js +68 -2
- package/dist/visualization.es412.js.map +1 -1
- package/dist/visualization.es413.js +6 -7
- package/dist/visualization.es413.js.map +1 -1
- package/dist/visualization.es414.js +29 -210
- package/dist/visualization.es414.js.map +1 -1
- package/dist/visualization.es415.js +9 -26
- package/dist/visualization.es415.js.map +1 -1
- package/dist/visualization.es416.js +6 -4
- package/dist/visualization.es416.js.map +1 -1
- package/dist/visualization.es417.js +2 -16
- package/dist/visualization.es417.js.map +1 -1
- package/dist/visualization.es418.js +5 -15
- package/dist/visualization.es418.js.map +1 -1
- package/dist/visualization.es419.js +26 -15
- package/dist/visualization.es419.js.map +1 -1
- package/dist/visualization.es42.js +810 -7
- package/dist/visualization.es42.js.map +1 -1
- package/dist/visualization.es420.js +11 -2
- package/dist/visualization.es420.js.map +1 -1
- package/dist/visualization.es421.js +27 -2
- package/dist/visualization.es421.js.map +1 -1
- package/dist/visualization.es422.js +10 -2
- package/dist/visualization.es422.js.map +1 -1
- package/dist/visualization.es423.js +11 -5
- package/dist/visualization.es423.js.map +1 -1
- package/dist/visualization.es424.js +2 -2
- package/dist/visualization.es424.js.map +1 -1
- package/dist/visualization.es425.js +16 -25
- package/dist/visualization.es425.js.map +1 -1
- package/dist/visualization.es426.js +29 -21
- package/dist/visualization.es426.js.map +1 -1
- package/dist/visualization.es427.js +26 -9
- package/dist/visualization.es427.js.map +1 -1
- package/dist/visualization.es428.js +2 -68
- package/dist/visualization.es428.js.map +1 -1
- package/dist/visualization.es429.js +9 -6
- package/dist/visualization.es429.js.map +1 -1
- package/dist/visualization.es430.js +13 -29
- package/dist/visualization.es430.js.map +1 -1
- package/dist/visualization.es431.js +22 -9
- package/dist/visualization.es431.js.map +1 -1
- package/dist/visualization.es432.js +13 -6
- package/dist/visualization.es432.js.map +1 -1
- package/dist/visualization.es433.js +3 -2
- package/dist/visualization.es433.js.map +1 -1
- package/dist/visualization.es434.js +2 -5
- package/dist/visualization.es434.js.map +1 -1
- package/dist/visualization.es435.js +15 -23
- package/dist/visualization.es435.js.map +1 -1
- package/dist/visualization.es436.js +3 -10
- package/dist/visualization.es436.js.map +1 -1
- package/dist/visualization.es437.js +11 -26
- package/dist/visualization.es437.js.map +1 -1
- package/dist/visualization.es438.js +11 -10
- package/dist/visualization.es438.js.map +1 -1
- package/dist/visualization.es439.js +6 -10
- package/dist/visualization.es439.js.map +1 -1
- package/dist/visualization.es44.js +131 -36
- package/dist/visualization.es44.js.map +1 -1
- package/dist/visualization.es440.js +19 -2
- package/dist/visualization.es440.js.map +1 -1
- package/dist/visualization.es441.js +23 -16
- package/dist/visualization.es441.js.map +1 -1
- package/dist/visualization.es442.js +11 -29
- package/dist/visualization.es442.js.map +1 -1
- package/dist/visualization.es443.js +51 -26
- package/dist/visualization.es443.js.map +1 -1
- package/dist/visualization.es444.js +18 -2
- package/dist/visualization.es444.js.map +1 -1
- package/dist/visualization.es445.js +35 -8
- package/dist/visualization.es445.js.map +1 -1
- package/dist/visualization.es446.js +22 -12
- package/dist/visualization.es446.js.map +1 -1
- package/dist/visualization.es447.js +31 -22
- package/dist/visualization.es447.js.map +1 -1
- package/dist/visualization.es448.js +3 -12
- package/dist/visualization.es448.js.map +1 -1
- package/dist/visualization.es449.js +19 -3
- package/dist/visualization.es449.js.map +1 -1
- package/dist/visualization.es45.js +53 -192
- package/dist/visualization.es45.js.map +1 -1
- package/dist/visualization.es450.js +14 -2
- package/dist/visualization.es450.js.map +1 -1
- package/dist/visualization.es451.js +9 -16
- package/dist/visualization.es451.js.map +1 -1
- package/dist/visualization.es452.js +29 -3
- package/dist/visualization.es452.js.map +1 -1
- package/dist/visualization.es453.js +6 -12
- package/dist/visualization.es453.js.map +1 -1
- package/dist/visualization.es454.js +8 -11
- package/dist/visualization.es454.js.map +1 -1
- package/dist/visualization.es455.js +2 -7
- package/dist/visualization.es455.js.map +1 -1
- package/dist/visualization.es456.js +17 -19
- package/dist/visualization.es456.js.map +1 -1
- package/dist/visualization.es457.js +7 -21
- package/dist/visualization.es457.js.map +1 -1
- package/dist/visualization.es458.js +9 -11
- package/dist/visualization.es458.js.map +1 -1
- package/dist/visualization.es459.js +606 -41
- package/dist/visualization.es459.js.map +1 -1
- package/dist/visualization.es46.js +110 -144
- package/dist/visualization.es46.js.map +1 -1
- package/dist/visualization.es460.js +50 -17
- package/dist/visualization.es460.js.map +1 -1
- package/dist/visualization.es461.js +13 -36
- package/dist/visualization.es461.js.map +1 -1
- package/dist/visualization.es462.js +11 -23
- package/dist/visualization.es462.js.map +1 -1
- package/dist/visualization.es463.js +23 -32
- package/dist/visualization.es463.js.map +1 -1
- package/dist/visualization.es464.js +34 -3
- package/dist/visualization.es464.js.map +1 -1
- package/dist/visualization.es465.js +11 -17
- package/dist/visualization.es465.js.map +1 -1
- package/dist/visualization.es466.js +18 -13
- package/dist/visualization.es466.js.map +1 -1
- package/dist/visualization.es467.js +25 -10
- package/dist/visualization.es467.js.map +1 -1
- package/dist/visualization.es468.js +25 -28
- package/dist/visualization.es468.js.map +1 -1
- package/dist/visualization.es469.js +43 -6
- package/dist/visualization.es469.js.map +1 -1
- package/dist/visualization.es47.js +8 -188
- package/dist/visualization.es47.js.map +1 -1
- package/dist/visualization.es470.js +19 -7
- package/dist/visualization.es470.js.map +1 -1
- package/dist/visualization.es471.js +41 -2
- package/dist/visualization.es471.js.map +1 -1
- package/dist/visualization.es472.js +53 -12
- package/dist/visualization.es472.js.map +1 -1
- package/dist/visualization.es473.js +3 -8
- package/dist/visualization.es473.js.map +1 -1
- package/dist/visualization.es474.js +3 -10
- package/dist/visualization.es474.js.map +1 -1
- package/dist/visualization.es475.js +7 -616
- package/dist/visualization.es475.js.map +1 -1
- package/dist/visualization.es476.js +15 -50
- package/dist/visualization.es476.js.map +1 -1
- package/dist/visualization.es477.js +2 -13
- package/dist/visualization.es477.js.map +1 -1
- package/dist/visualization.es478.js +2 -11
- package/dist/visualization.es478.js.map +1 -1
- package/dist/visualization.es479.js +2 -23
- package/dist/visualization.es479.js.map +1 -1
- package/dist/visualization.es48.js +32 -118
- package/dist/visualization.es48.js.map +1 -1
- package/dist/visualization.es480.js +29 -35
- package/dist/visualization.es480.js.map +1 -1
- package/dist/visualization.es481.js +118 -11
- package/dist/visualization.es481.js.map +1 -1
- package/dist/visualization.es482.js +28 -17
- package/dist/visualization.es482.js.map +1 -1
- package/dist/visualization.es483.js +10 -25
- package/dist/visualization.es483.js.map +1 -1
- package/dist/visualization.es484.js +13 -26
- package/dist/visualization.es484.js.map +1 -1
- package/dist/visualization.es485.js +29 -39
- package/dist/visualization.es485.js.map +1 -1
- package/dist/visualization.es486.js +27 -18
- package/dist/visualization.es486.js.map +1 -1
- package/dist/visualization.es487.js +10 -40
- package/dist/visualization.es487.js.map +1 -1
- package/dist/visualization.es488.js +12 -57
- package/dist/visualization.es488.js.map +1 -1
- package/dist/visualization.es489.js +17 -3
- package/dist/visualization.es489.js.map +1 -1
- package/dist/visualization.es49.js +32 -41
- package/dist/visualization.es49.js.map +1 -1
- package/dist/visualization.es490.js +24 -3
- package/dist/visualization.es490.js.map +1 -1
- package/dist/visualization.es491.js +17 -7
- package/dist/visualization.es491.js.map +1 -1
- package/dist/visualization.es492.js +95 -14
- package/dist/visualization.es492.js.map +1 -1
- package/dist/visualization.es493.js +29 -2
- package/dist/visualization.es493.js.map +1 -1
- package/dist/visualization.es494.js +72 -2
- package/dist/visualization.es494.js.map +1 -1
- package/dist/visualization.es495.js +52 -2
- package/dist/visualization.es495.js.map +1 -1
- package/dist/visualization.es496.js +33 -28
- package/dist/visualization.es496.js.map +1 -1
- package/dist/visualization.es497.js +42 -29
- package/dist/visualization.es497.js.map +1 -1
- package/dist/visualization.es498.js +8 -118
- package/dist/visualization.es498.js.map +1 -1
- package/dist/visualization.es499.js +9 -29
- package/dist/visualization.es499.js.map +1 -1
- package/dist/visualization.es5.js +99 -106
- package/dist/visualization.es5.js.map +1 -1
- package/dist/visualization.es50.js +54 -35
- package/dist/visualization.es50.js.map +1 -1
- package/dist/visualization.es500.js +6 -10
- package/dist/visualization.es500.js.map +1 -1
- package/dist/visualization.es501.js +8 -13
- package/dist/visualization.es501.js.map +1 -1
- package/dist/visualization.es502.js +6 -32
- package/dist/visualization.es502.js.map +1 -1
- package/dist/visualization.es503.js +4 -27
- package/dist/visualization.es503.js.map +1 -1
- package/dist/visualization.es504.js +14 -10
- package/dist/visualization.es504.js.map +1 -1
- package/dist/visualization.es505.js +5 -12
- package/dist/visualization.es505.js.map +1 -1
- package/dist/visualization.es506.js +6 -17
- package/dist/visualization.es506.js.map +1 -1
- package/dist/visualization.es507.js +6 -23
- package/dist/visualization.es507.js.map +1 -1
- package/dist/visualization.es508.js +6 -16
- package/dist/visualization.es508.js.map +1 -1
- package/dist/visualization.es509.js +3 -96
- package/dist/visualization.es509.js.map +1 -1
- package/dist/visualization.es51.js +23 -70
- package/dist/visualization.es51.js.map +1 -1
- package/dist/visualization.es510.js +4 -28
- package/dist/visualization.es510.js.map +1 -1
- package/dist/visualization.es511.js +8 -70
- package/dist/visualization.es511.js.map +1 -1
- package/dist/visualization.es512.js +7 -52
- package/dist/visualization.es512.js.map +1 -1
- package/dist/visualization.es513.js +32 -32
- package/dist/visualization.es513.js.map +1 -1
- package/dist/visualization.es514.js +3 -41
- package/dist/visualization.es514.js.map +1 -1
- package/dist/visualization.es515.js +2 -8
- package/dist/visualization.es515.js.map +1 -1
- package/dist/visualization.es516.js +5 -8
- package/dist/visualization.es516.js.map +1 -1
- package/dist/visualization.es517.js +12 -6
- package/dist/visualization.es517.js.map +1 -1
- package/dist/visualization.es518.js +2 -9
- package/dist/visualization.es518.js.map +1 -1
- package/dist/visualization.es519.js +3 -6
- package/dist/visualization.es519.js.map +1 -1
- package/dist/visualization.es52.js +179 -11
- package/dist/visualization.es52.js.map +1 -1
- package/dist/visualization.es520.js +3 -5
- package/dist/visualization.es520.js.map +1 -1
- package/dist/visualization.es521.js +10 -14
- package/dist/visualization.es521.js.map +1 -1
- package/dist/visualization.es522.js +4 -5
- package/dist/visualization.es522.js.map +1 -1
- package/dist/visualization.es523.js +32 -6
- package/dist/visualization.es523.js.map +1 -1
- package/dist/visualization.es524.js +237 -6
- package/dist/visualization.es524.js.map +1 -1
- package/dist/visualization.es525.js +992 -6
- package/dist/visualization.es525.js.map +1 -1
- package/dist/visualization.es526.js +61 -3
- package/dist/visualization.es526.js.map +1 -1
- package/dist/visualization.es527.js +33 -4
- package/dist/visualization.es527.js.map +1 -1
- package/dist/visualization.es528.js +29 -9
- package/dist/visualization.es528.js.map +1 -1
- package/dist/visualization.es529.js +33 -237
- package/dist/visualization.es529.js.map +1 -1
- package/dist/visualization.es53.js +134 -18695
- package/dist/visualization.es53.js.map +1 -1
- package/dist/visualization.es530.js +23 -991
- package/dist/visualization.es530.js.map +1 -1
- package/dist/visualization.es531.js +44 -60
- package/dist/visualization.es531.js.map +1 -1
- package/dist/visualization.es532.js +9 -34
- package/dist/visualization.es532.js.map +1 -1
- package/dist/visualization.es533.js +15 -30
- package/dist/visualization.es533.js.map +1 -1
- package/dist/visualization.es534.js +16 -34
- package/dist/visualization.es534.js.map +1 -1
- package/dist/visualization.es535.js +15 -24
- package/dist/visualization.es535.js.map +1 -1
- package/dist/visualization.es536.js +24 -46
- package/dist/visualization.es536.js.map +1 -1
- package/dist/visualization.es537.js +6 -9
- package/dist/visualization.es537.js.map +1 -1
- package/dist/visualization.es538.js +28 -15
- package/dist/visualization.es538.js.map +1 -1
- package/dist/visualization.es539.js +11 -16
- package/dist/visualization.es539.js.map +1 -1
- package/dist/visualization.es54.js +180 -5
- package/dist/visualization.es54.js.map +1 -1
- package/dist/visualization.es540.js +14 -16
- package/dist/visualization.es540.js.map +1 -1
- package/dist/visualization.es541.js +8 -24
- package/dist/visualization.es541.js.map +1 -1
- package/dist/visualization.es542.js +8 -6
- package/dist/visualization.es542.js.map +1 -1
- package/dist/visualization.es543.js +19 -10
- package/dist/visualization.es543.js.map +1 -1
- package/dist/visualization.es544.js +61 -12
- package/dist/visualization.es544.js.map +1 -1
- package/dist/visualization.es545.js +5 -8
- package/dist/visualization.es545.js.map +1 -1
- package/dist/visualization.es546.js +4 -8
- package/dist/visualization.es546.js.map +1 -1
- package/dist/visualization.es547.js +2 -20
- package/dist/visualization.es547.js.map +1 -1
- package/dist/visualization.es548.js +17 -61
- package/dist/visualization.es548.js.map +1 -1
- package/dist/visualization.es549.js +282 -28
- package/dist/visualization.es549.js.map +1 -1
- package/dist/visualization.es55.js +52 -5
- package/dist/visualization.es55.js.map +1 -1
- package/dist/visualization.es550.js +2 -5
- package/dist/visualization.es550.js.map +1 -1
- package/dist/visualization.es551.js +127 -3
- package/dist/visualization.es551.js.map +1 -1
- package/dist/visualization.es552.js +4 -2
- package/dist/visualization.es552.js.map +1 -1
- package/dist/visualization.es553.js +3 -18
- package/dist/visualization.es553.js.map +1 -1
- package/dist/visualization.es554.js +15 -281
- package/dist/visualization.es554.js.map +1 -1
- package/dist/visualization.es555.js +4 -2
- package/dist/visualization.es555.js.map +1 -1
- package/dist/visualization.es556.js +8 -126
- package/dist/visualization.es556.js.map +1 -1
- package/dist/visualization.es557.js +4 -20
- package/dist/visualization.es557.js.map +1 -1
- package/dist/visualization.es558.js +5 -7
- package/dist/visualization.es558.js.map +1 -1
- package/dist/visualization.es559.js +9 -3
- package/dist/visualization.es559.js.map +1 -1
- package/dist/visualization.es56.js +48 -53
- package/dist/visualization.es56.js.map +1 -1
- package/dist/visualization.es560.js +7 -6
- package/dist/visualization.es560.js.map +1 -1
- package/dist/visualization.es561.js +4 -7
- package/dist/visualization.es561.js.map +1 -1
- package/dist/visualization.es562.js +2 -4
- package/dist/visualization.es562.js.map +1 -1
- package/dist/visualization.es564.js +11 -7
- package/dist/visualization.es564.js.map +1 -1
- package/dist/visualization.es565.js +9 -15
- package/dist/visualization.es565.js.map +1 -1
- package/dist/visualization.es566.js +29 -8
- package/dist/visualization.es566.js.map +1 -1
- package/dist/visualization.es567.js +24 -4
- package/dist/visualization.es567.js.map +1 -1
- package/dist/visualization.es568.js +51 -4
- package/dist/visualization.es568.js.map +1 -1
- package/dist/visualization.es569.js +3 -6
- package/dist/visualization.es569.js.map +1 -1
- package/dist/visualization.es57.js +41 -809
- package/dist/visualization.es57.js.map +1 -1
- package/dist/visualization.es570.js +8 -30
- package/dist/visualization.es570.js.map +1 -1
- package/dist/visualization.es571.js +20 -34
- package/dist/visualization.es571.js.map +1 -1
- package/dist/visualization.es572.js +7 -51
- package/dist/visualization.es572.js.map +1 -1
- package/dist/visualization.es573.js +6 -8
- package/dist/visualization.es573.js.map +1 -1
- package/dist/visualization.es574.js +5 -4
- package/dist/visualization.es574.js.map +1 -1
- package/dist/visualization.es575.js +7 -5
- package/dist/visualization.es575.js.map +1 -1
- package/dist/visualization.es576.js +15 -3
- package/dist/visualization.es576.js.map +1 -1
- package/dist/visualization.es577.js +4 -3
- package/dist/visualization.es577.js.map +1 -1
- package/dist/visualization.es578.js +6 -11
- package/dist/visualization.es578.js.map +1 -1
- package/dist/visualization.es579.js +34 -9
- package/dist/visualization.es579.js.map +1 -1
- package/dist/visualization.es58.js +9 -0
- package/dist/visualization.es58.js.map +1 -0
- package/dist/visualization.es580.js +7 -23
- package/dist/visualization.es580.js.map +1 -1
- package/dist/visualization.es581.js +32 -3
- package/dist/visualization.es581.js.map +1 -1
- package/dist/visualization.es582.js +9 -3
- package/dist/visualization.es582.js.map +1 -1
- package/dist/visualization.es583.js +9 -9
- package/dist/visualization.es583.js.map +1 -1
- package/dist/visualization.es584.js +18 -8
- package/dist/visualization.es584.js.map +1 -1
- package/dist/visualization.es585.js +7 -15
- package/dist/visualization.es585.js.map +1 -1
- package/dist/visualization.es586.js +7 -32
- package/dist/visualization.es586.js.map +1 -1
- package/dist/visualization.es587.js +13 -9
- package/dist/visualization.es587.js.map +1 -1
- package/dist/visualization.es588.js +71 -8
- package/dist/visualization.es588.js.map +1 -1
- package/dist/visualization.es589.js +28 -17
- package/dist/visualization.es589.js.map +1 -1
- package/dist/visualization.es59.js +5 -131
- package/dist/visualization.es59.js.map +1 -1
- package/dist/visualization.es590.js +5 -7
- package/dist/visualization.es590.js.map +1 -1
- package/dist/visualization.es591.js +24 -6
- package/dist/visualization.es591.js.map +1 -1
- package/dist/visualization.es592.js +11 -13
- package/dist/visualization.es592.js.map +1 -1
- package/dist/visualization.es593.js +4 -72
- package/dist/visualization.es593.js.map +1 -1
- package/dist/visualization.es594.js +4 -29
- package/dist/visualization.es594.js.map +1 -1
- package/dist/visualization.es595.js +4 -5
- package/dist/visualization.es595.js.map +1 -1
- package/dist/visualization.es596.js +13 -26
- package/dist/visualization.es596.js.map +1 -1
- package/dist/visualization.es597.js +17 -11
- package/dist/visualization.es597.js.map +1 -1
- package/dist/visualization.es598.js +13 -4
- package/dist/visualization.es598.js.map +1 -1
- package/dist/visualization.es599.js +13 -4
- package/dist/visualization.es599.js.map +1 -1
- package/dist/visualization.es6.js +14 -14
- package/dist/visualization.es60.js +18 -64
- package/dist/visualization.es60.js.map +1 -1
- package/dist/visualization.es600.js +8 -4
- package/dist/visualization.es600.js.map +1 -1
- package/dist/visualization.es601.js +11 -11
- package/dist/visualization.es601.js.map +1 -1
- package/dist/visualization.es602.js +24 -17
- package/dist/visualization.es602.js.map +1 -1
- package/dist/visualization.es603.js +18 -12
- package/dist/visualization.es603.js.map +1 -1
- package/dist/visualization.es604.js +7 -14
- package/dist/visualization.es604.js.map +1 -1
- package/dist/visualization.es605.js +6 -9
- package/dist/visualization.es605.js.map +1 -1
- package/dist/visualization.es606.js +3 -12
- package/dist/visualization.es606.js.map +1 -1
- package/dist/visualization.es607.js +64 -24
- package/dist/visualization.es607.js.map +1 -1
- package/dist/visualization.es608.js +4 -19
- package/dist/visualization.es608.js.map +1 -1
- package/dist/visualization.es609.js +9 -7
- package/dist/visualization.es609.js.map +1 -1
- package/dist/visualization.es61.js +4 -7
- package/dist/visualization.es61.js.map +1 -1
- package/dist/visualization.es610.js +7 -6
- package/dist/visualization.es610.js.map +1 -1
- package/dist/visualization.es611.js +18 -3
- package/dist/visualization.es611.js.map +1 -1
- package/dist/visualization.es612.js +13 -63
- package/dist/visualization.es612.js.map +1 -1
- package/dist/visualization.es613.js +290 -4
- package/dist/visualization.es613.js.map +1 -1
- package/dist/visualization.es614.js +32 -8
- package/dist/visualization.es614.js.map +1 -1
- package/dist/visualization.es615.js +3 -6
- package/dist/visualization.es615.js.map +1 -1
- package/dist/visualization.es616.js +10 -17
- package/dist/visualization.es616.js.map +1 -1
- package/dist/visualization.es617.js +3 -14
- package/dist/visualization.es617.js.map +1 -1
- package/dist/visualization.es618.js +5 -32
- package/dist/visualization.es618.js.map +1 -1
- package/dist/visualization.es619.js +4 -289
- package/dist/visualization.es619.js.map +1 -1
- package/dist/visualization.es62.js +26 -7
- package/dist/visualization.es62.js.map +1 -1
- package/dist/visualization.es620.js +13 -3
- package/dist/visualization.es620.js.map +1 -1
- package/dist/visualization.es621.js +117 -11
- package/dist/visualization.es621.js.map +1 -1
- package/dist/visualization.es622.js +65 -3
- package/dist/visualization.es622.js.map +1 -1
- package/dist/visualization.es623.js +4 -5
- package/dist/visualization.es623.js.map +1 -1
- package/dist/visualization.es624.js +6 -4
- package/dist/visualization.es624.js.map +1 -1
- package/dist/visualization.es625.js +7 -13
- package/dist/visualization.es625.js.map +1 -1
- package/dist/visualization.es626.js +15 -116
- package/dist/visualization.es626.js.map +1 -1
- package/dist/visualization.es627.js +19 -66
- package/dist/visualization.es627.js.map +1 -1
- package/dist/visualization.es628.js +9 -4
- package/dist/visualization.es628.js.map +1 -1
- package/dist/visualization.es629.js +3 -7
- package/dist/visualization.es629.js.map +1 -1
- package/dist/visualization.es63.js +29 -64
- package/dist/visualization.es63.js.map +1 -1
- package/dist/visualization.es630.js +28 -7
- package/dist/visualization.es630.js.map +1 -1
- package/dist/visualization.es631.js +6 -17
- package/dist/visualization.es631.js.map +1 -1
- package/dist/visualization.es632.js +11 -19
- package/dist/visualization.es632.js.map +1 -1
- package/dist/visualization.es633.js +6 -9
- package/dist/visualization.es633.js.map +1 -1
- package/dist/visualization.es634.js +11 -3
- package/dist/visualization.es634.js.map +1 -1
- package/dist/visualization.es635.js +21 -28
- package/dist/visualization.es635.js.map +1 -1
- package/dist/visualization.es636.js +2 -6
- package/dist/visualization.es636.js.map +1 -1
- package/dist/visualization.es637.js +10 -8
- package/dist/visualization.es637.js.map +1 -1
- package/dist/visualization.es638.js +302 -6
- package/dist/visualization.es638.js.map +1 -1
- package/dist/visualization.es639.js +25 -10
- package/dist/visualization.es639.js.map +1 -1
- package/dist/visualization.es64.js +64 -264
- package/dist/visualization.es64.js.map +1 -1
- package/dist/visualization.es640.js +77 -21
- package/dist/visualization.es640.js.map +1 -1
- package/dist/visualization.es641.js +35 -2
- package/dist/visualization.es641.js.map +1 -1
- package/dist/visualization.es642.js +11 -11
- package/dist/visualization.es642.js.map +1 -1
- package/dist/visualization.es643.js +7 -302
- package/dist/visualization.es643.js.map +1 -1
- package/dist/visualization.es644.js +8 -25
- package/dist/visualization.es644.js.map +1 -1
- package/dist/visualization.es645.js +3 -78
- package/dist/visualization.es645.js.map +1 -1
- package/dist/visualization.es65.js +261 -96
- package/dist/visualization.es65.js.map +1 -1
- package/dist/visualization.es66.js +140 -26
- package/dist/visualization.es66.js.map +1 -1
- package/dist/visualization.es67.js +26 -21
- package/dist/visualization.es67.js.map +1 -1
- package/dist/visualization.es68.js +21 -17
- package/dist/visualization.es68.js.map +1 -1
- package/dist/visualization.es69.js +16 -19
- package/dist/visualization.es69.js.map +1 -1
- package/dist/visualization.es7.js +11 -11
- package/dist/visualization.es70.js +20 -69
- package/dist/visualization.es70.js.map +1 -1
- package/dist/visualization.es71.js +63 -74
- package/dist/visualization.es71.js.map +1 -1
- package/dist/visualization.es72.js +79 -50
- package/dist/visualization.es72.js.map +1 -1
- package/dist/visualization.es73.js +38 -53
- package/dist/visualization.es73.js.map +1 -1
- package/dist/visualization.es74.js +79 -41
- package/dist/visualization.es74.js.map +1 -1
- package/dist/visualization.es75.js +46 -6
- package/dist/visualization.es75.js.map +1 -1
- package/dist/visualization.es76.js +55 -4
- package/dist/visualization.es76.js.map +1 -1
- package/dist/visualization.es77.js +7 -18
- package/dist/visualization.es77.js.map +1 -1
- package/dist/visualization.es78.js +25 -4
- package/dist/visualization.es78.js.map +1 -1
- package/dist/visualization.es79.js +12 -26
- package/dist/visualization.es79.js.map +1 -1
- package/dist/visualization.es8.js +11 -11
- package/dist/visualization.es80.js +54 -27
- package/dist/visualization.es80.js.map +1 -1
- package/dist/visualization.es81.js +8 -113
- package/dist/visualization.es81.js.map +1 -1
- package/dist/visualization.es82.js +8 -29
- package/dist/visualization.es82.js.map +1 -1
- package/dist/visualization.es83.js +28 -64
- package/dist/visualization.es83.js.map +1 -1
- package/dist/visualization.es84.js +64 -61
- package/dist/visualization.es84.js.map +1 -1
- package/dist/visualization.es85.js +61 -3
- package/dist/visualization.es85.js.map +1 -1
- package/dist/visualization.es86.js +3 -46
- package/dist/visualization.es86.js.map +1 -1
- package/dist/visualization.es87.js +46 -3
- package/dist/visualization.es87.js.map +1 -1
- package/dist/visualization.es88.js +3 -281
- package/dist/visualization.es88.js.map +1 -1
- package/dist/visualization.es89.js +279 -16
- package/dist/visualization.es89.js.map +1 -1
- package/dist/visualization.es9.js +1 -1
- package/dist/visualization.es90.js +15 -31
- package/dist/visualization.es90.js.map +1 -1
- package/dist/visualization.es91.js +11 -53
- package/dist/visualization.es91.js.map +1 -1
- package/dist/visualization.es92.js +74 -5
- package/dist/visualization.es92.js.map +1 -1
- package/dist/visualization.es93.js +33 -5
- package/dist/visualization.es93.js.map +1 -1
- package/dist/visualization.es94.js +13 -5
- package/dist/visualization.es94.js.map +1 -1
- package/dist/visualization.es95.js +5 -13
- package/dist/visualization.es95.js.map +1 -1
- package/dist/visualization.es96.js +5 -15
- package/dist/visualization.es96.js.map +1 -1
- package/dist/visualization.es97.js +5 -55
- package/dist/visualization.es97.js.map +1 -1
- package/dist/visualization.es98.js +221 -23
- package/dist/visualization.es98.js.map +1 -1
- package/dist/visualization.es99.js +2 -84
- package/dist/visualization.es99.js.map +1 -1
- package/package.json +1 -1
- package/dist/src/components/Heatmap/HeatmapCell.d.ts +0 -29
- package/dist/src/components/Heatmap/HeatmapCell.d.ts.map +0 -1
- package/dist/src/components/Heatmap/HeatmapCells.d.ts +0 -29
- package/dist/src/components/Heatmap/HeatmapCells.d.ts.map +0 -1
- package/dist/src/components/Heatmap/HeatmapStaticSvg.d.ts +0 -32
- package/dist/src/components/Heatmap/HeatmapStaticSvg.d.ts.map +0 -1
- package/dist/src/components/Heatmap/scrollable/HeatmapMiniMap.d.ts.map +0 -1
- package/dist/src/components/Heatmap/scrollable/HeatmapMiniMapPopup.d.ts.map +0 -1
- package/dist/src/components/Heatmap/scrollable/HeatmapScrollableGrid.d.ts +0 -29
- package/dist/src/components/Heatmap/scrollable/HeatmapScrollableGrid.d.ts.map +0 -1
- package/dist/src/components/Heatmap/scrollable/heatmapExport.d.ts +0 -25
- package/dist/src/components/Heatmap/scrollable/heatmapExport.d.ts.map +0 -1
- package/dist/visualization.es43.js +0 -37
- package/dist/visualization.es43.js.map +0 -1
- package/dist/visualization.es646.js +0 -38
- package/dist/visualization.es646.js.map +0 -1
- package/dist/visualization.es647.js +0 -16
- package/dist/visualization.es647.js.map +0 -1
- package/dist/visualization.es648.js +0 -11
- package/dist/visualization.es648.js.map +0 -1
- package/dist/visualization.es649.js +0 -13
- package/dist/visualization.es649.js.map +0 -1
- package/dist/visualization.es650.js +0 -6
- package/dist/visualization.es650.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visualization.es100.js","sources":["../src/components/Heatmap/HeatmapCanvasCells.ts"],"sourcesContent":["import type { ColumnDatum, HeatmapCellId } from \"./types\";\nimport type { AnyBin } from \"./HeatmapCells\";\nimport { DIMMED_OPACITY, isOutsideRange, resolveCellAppearance } from \"./heatmapCellAppearance\";\nimport { selectedCellsIn, selectionFrame, type SelectionMarks } from \"./heatmapSelection\";\n\n/** What the canvas renderers and hit-testing need to place and color cells as the SVG renderer does. */\nexport interface CanvasCellParams {\n data: ColumnDatum[];\n numRows: number;\n xScale: (column: number) => number;\n cellYScale: (row: number) => number;\n colorScale: (count: number) => string | undefined;\n /** The counts colorScale spans, which the overview samples it across. */\n minValue: number;\n maxValue: number;\n gap: number;\n isRect: boolean;\n binWidth: number;\n binHeight: number;\n yMax: number;\n /** The selected cells' keys, which the grid frames; null where nothing is selected. */\n selectedKeys: Set<string> | null;\n /** The columns and rows holding the selection, which the minimap marks along its edges. */\n selectionMarks: SelectionMarks;\n highlightRange: [number, number] | null;\n}\n\nexport interface CanvasDrawRange {\n colStart: number;\n colEnd: number;\n rowStart: number;\n rowEnd: number;\n}\n\nconst clamp = (value: number, min: number, max: number) => Math.min(Math.max(value, min), max);\n\n// Mirrors @visx/heatmap's HeatmapRect/HeatmapCircle geometry, so canvas cells land on the pixels SVG\n// cells would. A circle's x is centered in its cell, as HeatmapCell.tsx recomputes it.\ntype CellGeometry =\n | { isRect: true; x: number; y: number; width: number; height: number }\n | { isRect: false; cx: number; cy: number; r: number; radius: number };\n\nfunction getCellGeometry(params: CanvasCellParams, col: number, row: number): CellGeometry {\n const { xScale, cellYScale, gap, isRect, binWidth, binHeight } = params;\n if (isRect) {\n return { isRect: true, x: xScale(col), y: cellYScale(row) + gap, width: binWidth - gap, height: binHeight - gap };\n }\n const radius = Math.min(binWidth, binHeight) / 2;\n return { isRect: false, cx: col * binWidth + binWidth / 2, cy: cellYScale(row) + gap + radius, r: radius - gap, radius };\n}\n\n/**\n * The columns and rows (inclusive) within the scrolled viewport, plus `overscan` either side. Row 0\n * is at the bottom, so the row under content y is floor((yMax - y) / binHeight).\n */\nexport function getVisibleRange(\n params: CanvasCellParams,\n scrollLeft: number,\n scrollTop: number,\n viewportWidth: number,\n viewportHeight: number,\n overscan: number\n): CanvasDrawRange {\n const { data, numRows, binWidth, binHeight, yMax } = params;\n return {\n colStart: clamp(Math.floor(scrollLeft / binWidth) - overscan, 0, Math.max(0, data.length - 1)),\n colEnd: clamp(Math.ceil((scrollLeft + viewportWidth) / binWidth) + overscan, 0, Math.max(0, data.length - 1)),\n rowStart: clamp(Math.floor((yMax - (scrollTop + viewportHeight)) / binHeight) - overscan, 0, Math.max(0, numRows - 1)),\n rowEnd: clamp(Math.floor((yMax - scrollTop) / binHeight) + overscan, 0, Math.max(0, numRows - 1)),\n };\n}\n\n/** Paints the cells in `range` onto `ctx`, whose origin is already at content-space (0,0), and the selection's frame over them. */\nexport function drawHeatmapCells(\n ctx: CanvasRenderingContext2D,\n params: CanvasCellParams,\n range: CanvasDrawRange,\n hoveredCell: HeatmapCellId | null\n) {\n const { data, colorScale, selectedKeys, highlightRange } = params;\n // Setting fillStyle re-parses the color even when unchanged, so repeats are skipped: an export\n // runs this for every cell. A path is built only for the hovered cell, to stroke its outline.\n let lastFill: string | null = null;\n let lastAlpha = -1;\n for (let col = range.colStart; col <= range.colEnd; col++) {\n const columnDatum = data[col];\n if (!columnDatum) continue;\n for (let row = range.rowStart; row <= range.rowEnd; row++) {\n const rowDatum = columnDatum.rows[row];\n if (!rowDatum) continue;\n const count = rowDatum.count;\n const color = count == null ? undefined : colorScale(count);\n const isDimmed = isOutsideRange(count, highlightRange);\n const { fill, fillOpacity } = resolveCellAppearance(count, color, isDimmed);\n if (fillOpacity <= 0) continue;\n\n const geometry = getCellGeometry(params, col, row);\n if (fillOpacity !== lastAlpha) {\n ctx.globalAlpha = fillOpacity;\n lastAlpha = fillOpacity;\n }\n if (fill !== lastFill) {\n ctx.fillStyle = fill;\n lastFill = fill;\n }\n\n const isHovered = hoveredCell !== null && hoveredCell.row === row && hoveredCell.column === col;\n if (geometry.isRect) {\n const width = Math.max(geometry.width, 0);\n const height = Math.max(geometry.height, 0);\n ctx.fillRect(geometry.x, geometry.y, width, height);\n if (isHovered) {\n ctx.beginPath();\n ctx.rect(geometry.x, geometry.y, width, height);\n }\n } else {\n ctx.beginPath();\n ctx.arc(geometry.cx, geometry.cy, Math.max(geometry.r, 0), 0, Math.PI * 2);\n ctx.fill();\n }\n\n if (isHovered) {\n ctx.globalAlpha = 1;\n lastAlpha = 1;\n ctx.lineWidth = 2;\n ctx.strokeStyle = fill;\n ctx.stroke();\n }\n }\n }\n ctx.globalAlpha = 1;\n\n if (selectedKeys) {\n // Past the range by a cell, so the frame's line for a selected cell just outside it still shows.\n const around = {\n colStart: range.colStart - 1,\n colEnd: range.colEnd + 1,\n rowStart: range.rowStart - 1,\n rowEnd: range.rowEnd + 1,\n };\n const bounds = { width: data.length * params.binWidth, height: params.yMax };\n for (const { x, y, width, height, fill } of selectionFrame(selectedKeys, selectedCellsIn(selectedKeys, around), params, bounds)) {\n ctx.fillStyle = fill;\n ctx.fillRect(x, y, width, height);\n }\n }\n}\n\n// Colors sampled from colorScale for the overview, which looks them up rather than calling it per cell.\nconst OVERVIEW_LEVELS = 256;\n\nlet colorParser: CanvasRenderingContext2D | null = null;\n/** Any CSS color as RGB, read back off a 1px canvas, so a color the browser understands is one this does. */\nfunction parseColor(css: string): [number, number, number] {\n colorParser ??= document.createElement(\"canvas\").getContext(\"2d\", { willReadFrequently: true });\n if (!colorParser) return [0, 0, 0];\n colorParser.clearRect(0, 0, 1, 1);\n colorParser.fillStyle = \"#000\";\n colorParser.fillStyle = css;\n colorParser.fillRect(0, 0, 1, 1);\n const [r, g, b] = colorParser.getImageData(0, 0, 1, 1).data;\n return [r, g, b];\n}\n\n// Keyed on identities the layout memoizes, which a highlight sweep leaves alone.\nconst lutCache = new WeakMap<object, Uint8ClampedArray>();\nconst countsCache = new WeakMap<ColumnDatum[], Float64Array>();\n\nfunction colorLut(params: CanvasCellParams): Uint8ClampedArray {\n const cached = lutCache.get(params.colorScale);\n if (cached) return cached;\n const { colorScale, minValue, maxValue } = params;\n const lut = new Uint8ClampedArray(OVERVIEW_LEVELS * 3);\n for (let i = 0; i < OVERVIEW_LEVELS; i++) {\n const [r, g, b] = parseColor(colorScale(minValue + ((maxValue - minValue) * i) / (OVERVIEW_LEVELS - 1)) ?? \"#000\");\n lut.set([r, g, b], i * 3);\n }\n lutCache.set(params.colorScale, lut);\n return lut;\n}\n\n/** Every count in one column-major array, NaN where there is none: several times faster to scan than the row objects. */\nfunction flatCounts(data: ColumnDatum[], numRows: number): Float64Array {\n const cached = countsCache.get(data);\n if (cached && cached.length === data.length * numRows) return cached;\n const counts = new Float64Array(data.length * numRows).fill(NaN);\n data.forEach((column, c) =>\n column.rows.forEach((row, r) => {\n if (r < numRows && row.count != null) counts[c * numRows + r] = row.count;\n })\n );\n countsCache.set(data, counts);\n return counts;\n}\n\n/**\n * The whole grid resampled to `width` x `height` pixels for the minimap, written straight into an\n * ImageData: a fillRect per cell took ~400ms on a million-cell grid.\n *\n * Each pixel averages the cells under it. While highlightRange is set, a pixel holding any cell in\n * the range shows those cells alone at full strength, so a lone outlier isn't averaged away. Cells\n * are drawn as solid squares, without gaps, circles or the selection frame - the minimap marks the\n * selection along its edges instead.\n */\nfunction renderHeatmapOverview(params: CanvasCellParams, width: number, height: number): ImageData | null {\n const { data, numRows, highlightRange, minValue, maxValue } = params;\n const numColumns = data.length;\n if (numColumns === 0 || numRows === 0 || width < 1 || height < 1) return null;\n\n const lut = colorLut(params);\n const counts = flatCounts(data, numRows);\n const span = maxValue - minValue;\n // With no range, every cell is inside it: nothing fades and nothing is singled out.\n const [low, high] = highlightRange ?? [-Infinity, Infinity];\n const image = new ImageData(width, height);\n const pixels = image.data;\n\n // The run of columns (rows) each pixel column (row) covers: at least one, and between them every one.\n const spans = (cells: number, size: number) =>\n Array.from({ length: size }, (_, i) => {\n const start = Math.min(Math.floor((i * cells) / size), cells - 1);\n return [start, Math.max(start + 1, Math.floor(((i + 1) * cells) / size))] as const;\n });\n const columnSpans = spans(numColumns, width);\n // From the top down, where row 0 sits at the bottom of the grid (see cellYScale).\n const rowSpans = spans(numRows, height);\n\n // Scalars and typed arrays only in here: it runs once per cell per redraw.\n for (let y = 0; y < height; y++) {\n const [rowFrom, rowTo] = rowSpans[y];\n for (let x = 0; x < width; x++) {\n const [columnFrom, columnTo] = columnSpans[x];\n // Opacity-weighted sums over every cell, and plain sums over the highlighted ones.\n let r = 0, g = 0, b = 0, a = 0, cells = 0;\n let hr = 0, hg = 0, hb = 0, highlighted = 0;\n for (let column = columnFrom; column < columnTo; column++) {\n const base = column * numRows;\n for (let fromTop = rowFrom; fromTop < rowTo; fromTop++) {\n const index = base + numRows - 1 - fromTop;\n cells++;\n const count = counts[index];\n if (count !== count) continue; // NaN: transparent, as a null cell is drawn nowhere.\n // Held at the ends, as the color scale itself clamps.\n const level = span > 0 ? Math.round(Math.min(Math.max((count - minValue) / span, 0), 1) * (OVERVIEW_LEVELS - 1)) * 3 : 0;\n const cr = lut[level], cg = lut[level + 1], cb = lut[level + 2];\n // isOutsideRange, inlined.\n const inRange = count >= low && count <= high;\n if (inRange && highlightRange) {\n hr += cr; hg += cg; hb += cb; highlighted++;\n }\n const opacity = inRange ? 1 : DIMMED_OPACITY;\n r += cr * opacity; g += cg * opacity; b += cb * opacity; a += opacity;\n }\n }\n const offset = (y * width + x) * 4;\n if (highlighted > 0) {\n pixels[offset] = hr / highlighted;\n pixels[offset + 1] = hg / highlighted;\n pixels[offset + 2] = hb / highlighted;\n pixels[offset + 3] = 255;\n } else if (a > 0) {\n pixels[offset] = r / a;\n pixels[offset + 1] = g / a;\n pixels[offset + 2] = b / a;\n pixels[offset + 3] = (a / cells) * 255;\n }\n }\n }\n return image;\n}\n\nlet overviewScratch: HTMLCanvasElement | null = null;\n\n/**\n * The whole grid, filling the canvas. Rendered at no more than a pixel per cell and stretched\n * nearest-neighbor from there: resampling every pixel of the expanded minimap took over 100ms.\n */\nexport function drawHeatmapOverview(ctx: CanvasRenderingContext2D, params: CanvasCellParams) {\n const { width, height } = ctx.canvas;\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, width, height);\n const overviewWidth = Math.min(width, params.data.length);\n const overviewHeight = Math.min(height, params.numRows);\n const overview = renderHeatmapOverview(params, overviewWidth, overviewHeight);\n if (!overview) return;\n if (overviewWidth === width && overviewHeight === height) {\n ctx.putImageData(overview, 0, 0);\n } else {\n overviewScratch ??= document.createElement(\"canvas\");\n overviewScratch.width = overviewWidth;\n overviewScratch.height = overviewHeight;\n overviewScratch.getContext(\"2d\")?.putImageData(overview, 0, 0);\n ctx.imageSmoothingEnabled = false;\n ctx.drawImage(overviewScratch, 0, 0, width, height);\n }\n}\n\n/** Content-space (post-scroll-offset) coordinates -> the cell under them, or null if none. */\nexport function hitTestCell(params: CanvasCellParams, contentX: number, contentY: number): HeatmapCellId | null {\n const { data, numRows, binWidth, binHeight, yMax } = params;\n if (contentX < 0 || contentY < 0) return null;\n const column = Math.floor(contentX / binWidth);\n const row = Math.floor((yMax - contentY) / binHeight);\n if (column < 0 || column >= data.length || row < 0 || row >= numRows) return null;\n if (!data[column]?.rows[row]) return null;\n return { row, column };\n}\n\n/** Builds the same bin shape @visx/heatmap's RectCell/CircleCell provide, for onClick/tooltipBody. */\nexport function buildBin(params: CanvasCellParams, cell: HeatmapCellId): AnyBin | null {\n const columnDatum = params.data[cell.column];\n const rowDatum = columnDatum?.rows[cell.row];\n if (!columnDatum || !rowDatum) return null;\n\n const count = rowDatum.count;\n const color = count == null ? undefined : params.colorScale(count);\n const geometry = getCellGeometry(params, cell.column, cell.row);\n const shared = { bin: rowDatum, row: cell.row, column: cell.column, datum: columnDatum, gap: params.gap, count, color, opacity: count == null ? undefined : 1 };\n\n return geometry.isRect\n ? ({ ...shared, x: geometry.x, y: geometry.y, width: geometry.width, height: geometry.height } as AnyBin)\n : ({ ...shared, cx: geometry.cx, cy: geometry.cy, r: geometry.r, radius: geometry.radius } as AnyBin);\n}\n"],"names":["clamp","value","min","max","Math","getCellGeometry","params","col","row","xScale","cellYScale","gap","isRect","binWidth","binHeight","x","y","width","height","radius","cx","cy","r","getVisibleRange","scrollLeft","scrollTop","viewportWidth","viewportHeight","overscan","data","numRows","yMax","colStart","floor","length","colEnd","ceil","rowStart","rowEnd","drawHeatmapCells","ctx","range","hoveredCell","colorScale","selectedKeys","highlightRange","lastFill","lastAlpha","columnDatum","rowDatum","rows","count","color","undefined","isDimmed","isOutsideRange","fill","fillOpacity","resolveCellAppearance","geometry","globalAlpha","fillStyle","isHovered","column","fillRect","beginPath","rect","arc","PI","lineWidth","strokeStyle","stroke","around","bounds","selectionFrame","selectedCellsIn","OVERVIEW_LEVELS","colorParser","parseColor","css","document","createElement","getContext","willReadFrequently","clearRect","g","b","getImageData","lutCache","WeakMap","countsCache","colorLut","cached","get","minValue","maxValue","lut","Uint8ClampedArray","i","set","flatCounts","counts","Float64Array","NaN","forEach","c","renderHeatmapOverview","numColumns","span","low","high","Infinity","image","ImageData","pixels","spans","cells","size","Array","from","_","start","columnSpans","rowSpans","rowFrom","rowTo","columnFrom","columnTo","a","hr","hg","hb","highlighted","base","fromTop","index","level","round","cr","cg","cb","inRange","opacity","DIMMED_OPACITY","offset","overviewScratch","drawHeatmapOverview","canvas","setTransform","overviewWidth","overviewHeight","overview","putImageData","imageSmoothingEnabled","drawImage","hitTestCell","contentX","contentY","buildBin","cell","shared","bin","datum"],"mappings":";;AAkCA,MAAMA,IAAQA,CAACC,GAAeC,GAAaC,MAAgBC,KAAKF,IAAIE,KAAKD,IAAIF,GAAOC,CAAG,GAAGC,CAAG;AAQ7F,SAASE,EAAgBC,GAA0BC,GAAaC,GAA2B;AACzF,QAAM;AAAA,IAAEC,QAAAA;AAAAA,IAAQC,YAAAA;AAAAA,IAAYC,KAAAA;AAAAA,IAAKC,QAAAA;AAAAA,IAAQC,UAAAA;AAAAA,IAAUC,WAAAA;AAAAA,EAAAA,IAAcR;AACjE,MAAIM;AACF,WAAO;AAAA,MAAEA,QAAQ;AAAA,MAAMG,GAAGN,EAAOF,CAAG;AAAA,MAAGS,GAAGN,EAAWF,CAAG,IAAIG;AAAAA,MAAKM,OAAOJ,IAAWF;AAAAA,MAAKO,QAAQJ,IAAYH;AAAAA,IAAAA;AAE9G,QAAMQ,IAASf,KAAKF,IAAIW,GAAUC,CAAS,IAAI;AAC/C,SAAO;AAAA,IAAEF,QAAQ;AAAA,IAAOQ,IAAIb,IAAMM,IAAWA,IAAW;AAAA,IAAGQ,IAAIX,EAAWF,CAAG,IAAIG,IAAMQ;AAAAA,IAAQG,GAAGH,IAASR;AAAAA,IAAKQ,QAAAA;AAAAA,EAAAA;AAClH;AAMO,SAASI,GACdjB,GACAkB,GACAC,GACAC,GACAC,GACAC,GACiB;AACjB,QAAM;AAAA,IAAEC,MAAAA;AAAAA,IAAMC,SAAAA;AAAAA,IAASjB,UAAAA;AAAAA,IAAUC,WAAAA;AAAAA,IAAWiB,MAAAA;AAAAA,EAAAA,IAASzB;AACrD,SAAO;AAAA,IACL0B,UAAUhC,EAAMI,KAAK6B,MAAMT,IAAaX,CAAQ,IAAIe,GAAU,GAAGxB,KAAKD,IAAI,GAAG0B,EAAKK,SAAS,CAAC,CAAC;AAAA,IAC7FC,QAAQnC,EAAMI,KAAKgC,MAAMZ,IAAaE,KAAiBb,CAAQ,IAAIe,GAAU,GAAGxB,KAAKD,IAAI,GAAG0B,EAAKK,SAAS,CAAC,CAAC;AAAA,IAC5GG,UAAUrC,EAAMI,KAAK6B,OAAOF,KAAQN,IAAYE,MAAmBb,CAAS,IAAIc,GAAU,GAAGxB,KAAKD,IAAI,GAAG2B,IAAU,CAAC,CAAC;AAAA,IACrHQ,QAAQtC,EAAMI,KAAK6B,OAAOF,IAAON,KAAaX,CAAS,IAAIc,GAAU,GAAGxB,KAAKD,IAAI,GAAG2B,IAAU,CAAC,CAAC;AAAA,EAAA;AAEpG;AAGO,SAASS,GACdC,GACAlC,GACAmC,GACAC,GACA;AACA,QAAM;AAAA,IAAEb,MAAAA;AAAAA,IAAMc,YAAAA;AAAAA,IAAYC,cAAAA;AAAAA,IAAcC,gBAAAA;AAAAA,EAAAA,IAAmBvC;AAG3D,MAAIwC,IAA0B,MAC1BC,IAAY;AAChB,WAASxC,IAAMkC,EAAMT,UAAUzB,KAAOkC,EAAMN,QAAQ5B,KAAO;AACzD,UAAMyC,IAAcnB,EAAKtB,CAAG;AAC5B,QAAKyC;AACL,eAASxC,IAAMiC,EAAMJ,UAAU7B,KAAOiC,EAAMH,QAAQ9B,KAAO;AACzD,cAAMyC,IAAWD,EAAYE,KAAK1C,CAAG;AACrC,YAAI,CAACyC,EAAU;AACf,cAAME,IAAQF,EAASE,OACjBC,IAAQD,KAAS,OAAOE,SAAYV,EAAWQ,CAAK,GACpDG,IAAWC,EAAeJ,GAAON,CAAc,GAC/C;AAAA,UAAEW,MAAAA;AAAAA,UAAMC,aAAAA;AAAAA,QAAAA,IAAgBC,GAAsBP,GAAOC,GAAOE,CAAQ;AAC1E,YAAIG,KAAe,EAAG;AAEtB,cAAME,IAAWtD,EAAgBC,GAAQC,GAAKC,CAAG;AACjD,QAAIiD,MAAgBV,MAClBP,EAAIoB,cAAcH,GAClBV,IAAYU,IAEVD,MAASV,MACXN,EAAIqB,YAAYL,GAChBV,IAAWU;AAGb,cAAMM,IAAYpB,MAAgB,QAAQA,EAAYlC,QAAQA,KAAOkC,EAAYqB,WAAWxD;AAC5F,YAAIoD,EAAS/C,QAAQ;AACnB,gBAAMK,IAAQb,KAAKD,IAAIwD,EAAS1C,OAAO,CAAC,GAClCC,IAASd,KAAKD,IAAIwD,EAASzC,QAAQ,CAAC;AAC1CsB,UAAAA,EAAIwB,SAASL,EAAS5C,GAAG4C,EAAS3C,GAAGC,GAAOC,CAAM,GAC9C4C,MACFtB,EAAIyB,UAAAA,GACJzB,EAAI0B,KAAKP,EAAS5C,GAAG4C,EAAS3C,GAAGC,GAAOC,CAAM;AAAA,QAElD;AACEsB,UAAAA,EAAIyB,UAAAA,GACJzB,EAAI2B,IAAIR,EAASvC,IAAIuC,EAAStC,IAAIjB,KAAKD,IAAIwD,EAASrC,GAAG,CAAC,GAAG,GAAGlB,KAAKgE,KAAK,CAAC,GACzE5B,EAAIgB,KAAAA;AAGN,QAAIM,MACFtB,EAAIoB,cAAc,GAClBb,IAAY,GACZP,EAAI6B,YAAY,GAChB7B,EAAI8B,cAAcd,GAClBhB,EAAI+B,OAAAA;AAAAA,MAER;AAAA,EACF;AAGA,MAFA/B,EAAIoB,cAAc,GAEdhB,GAAc;AAEhB,UAAM4B,IAAS;AAAA,MACbxC,UAAUS,EAAMT,WAAW;AAAA,MAC3BG,QAAQM,EAAMN,SAAS;AAAA,MACvBE,UAAUI,EAAMJ,WAAW;AAAA,MAC3BC,QAAQG,EAAMH,SAAS;AAAA,IAAA,GAEnBmC,IAAS;AAAA,MAAExD,OAAOY,EAAKK,SAAS5B,EAAOO;AAAAA,MAAUK,QAAQZ,EAAOyB;AAAAA,IAAAA;AACtE,eAAW;AAAA,MAAEhB,GAAAA;AAAAA,MAAGC,GAAAA;AAAAA,MAAGC,OAAAA;AAAAA,MAAOC,QAAAA;AAAAA,MAAQsC,MAAAA;AAAAA,IAAAA,KAAUkB,GAAe9B,GAAc+B,GAAgB/B,GAAc4B,CAAM,GAAGlE,GAAQmE,CAAM;AAC5HjC,MAAAA,EAAIqB,YAAYL,GAChBhB,EAAIwB,SAASjD,GAAGC,GAAGC,GAAOC,CAAM;AAAA,EAEpC;AACF;AAGA,MAAM0D,IAAkB;AAExB,IAAIC,IAA+C;AAEnD,SAASC,GAAWC,GAAuC;AAEzD,MADAF,MAAgBG,SAASC,cAAc,QAAQ,EAAEC,WAAW,MAAM;AAAA,IAAEC,oBAAoB;AAAA,EAAA,CAAM,GAC1F,CAACN,EAAa,QAAO,CAAC,GAAG,GAAG,CAAC;AACjCA,EAAAA,EAAYO,UAAU,GAAG,GAAG,GAAG,CAAC,GAChCP,EAAYhB,YAAY,QACxBgB,EAAYhB,YAAYkB,GACxBF,EAAYb,SAAS,GAAG,GAAG,GAAG,CAAC;AAC/B,QAAM,CAAC1C,GAAG+D,GAAGC,CAAC,IAAIT,EAAYU,aAAa,GAAG,GAAG,GAAG,CAAC,EAAE1D;AACvD,SAAO,CAACP,GAAG+D,GAAGC,CAAC;AACjB;AAGA,MAAME,wBAAeC,QAAAA,GACfC,wBAAkBD,QAAAA;AAExB,SAASE,GAASrF,GAA6C;AAC7D,QAAMsF,IAASJ,EAASK,IAAIvF,EAAOqC,UAAU;AAC7C,MAAIiD,EAAQ,QAAOA;AACnB,QAAM;AAAA,IAAEjD,YAAAA;AAAAA,IAAYmD,UAAAA;AAAAA,IAAUC,UAAAA;AAAAA,EAAAA,IAAazF,GACrC0F,IAAM,IAAIC,kBAAkBrB,IAAkB,CAAC;AACrD,WAASsB,IAAI,GAAGA,IAAItB,GAAiBsB,KAAK;AACxC,UAAM,CAAC5E,GAAG+D,GAAGC,CAAC,IAAIR,GAAWnC,EAAWmD,KAAaC,IAAWD,KAAYI,KAAMtB,IAAkB,EAAE,KAAK,MAAM;AACjHoB,IAAAA,EAAIG,IAAI,CAAC7E,GAAG+D,GAAGC,CAAC,GAAGY,IAAI,CAAC;AAAA,EAC1B;AACAV,SAAAA,EAASW,IAAI7F,EAAOqC,YAAYqD,CAAG,GAC5BA;AACT;AAGA,SAASI,GAAWvE,GAAqBC,GAA+B;AACtE,QAAM8D,IAASF,EAAYG,IAAIhE,CAAI;AACnC,MAAI+D,KAAUA,EAAO1D,WAAWL,EAAKK,SAASJ,EAAS,QAAO8D;AAC9D,QAAMS,IAAS,IAAIC,aAAazE,EAAKK,SAASJ,CAAO,EAAE0B,KAAK+C,GAAG;AAC/D1E,SAAAA,EAAK2E,QAAQ,CAACzC,GAAQ0C,MACpB1C,EAAOb,KAAKsD,QAAQ,CAAChG,GAAKc,MAAM;AAC9B,IAAIA,IAAIQ,KAAWtB,EAAI2C,SAAS,WAAasD,IAAI3E,IAAUR,CAAC,IAAId,EAAI2C;AAAAA,EACtE,CAAC,CACH,GACAuC,EAAYS,IAAItE,GAAMwE,CAAM,GACrBA;AACT;AAWA,SAASK,GAAsBpG,GAA0BW,GAAeC,GAAkC;AACxG,QAAM;AAAA,IAAEW,MAAAA;AAAAA,IAAMC,SAAAA;AAAAA,IAASe,gBAAAA;AAAAA,IAAgBiD,UAAAA;AAAAA,IAAUC,UAAAA;AAAAA,EAAAA,IAAazF,GACxDqG,IAAa9E,EAAKK;AACxB,MAAIyE,MAAe,KAAK7E,MAAY,KAAKb,IAAQ,KAAKC,IAAS,EAAG,QAAO;AAEzE,QAAM8E,IAAML,GAASrF,CAAM,GACrB+F,IAASD,GAAWvE,GAAMC,CAAO,GACjC8E,IAAOb,IAAWD,GAElB,CAACe,GAAKC,CAAI,IAAIjE,KAAkB,CAAC,QAAWkE,KAAQ,GACpDC,IAAQ,IAAIC,UAAUhG,GAAOC,CAAM,GACnCgG,IAASF,EAAMnF,MAGfsF,IAAQA,CAACC,GAAeC,MAC5BC,MAAMC,KAAK;AAAA,IAAErF,QAAQmF;AAAAA,EAAAA,GAAQ,CAACG,GAAGtB,MAAM;AACrC,UAAMuB,IAAQrH,KAAKF,IAAIE,KAAK6B,MAAOiE,IAAIkB,IAASC,CAAI,GAAGD,IAAQ,CAAC;AAChE,WAAO,CAACK,GAAOrH,KAAKD,IAAIsH,IAAQ,GAAGrH,KAAK6B,OAAQiE,IAAI,KAAKkB,IAASC,CAAI,CAAC,CAAC;AAAA,EAC1E,CAAC,GACGK,IAAcP,EAAMR,GAAY1F,CAAK,GAErC0G,IAAWR,EAAMrF,GAASZ,CAAM;AAGtC,WAASF,IAAI,GAAGA,IAAIE,GAAQF,KAAK;AAC/B,UAAM,CAAC4G,GAASC,CAAK,IAAIF,EAAS3G,CAAC;AACnC,aAASD,IAAI,GAAGA,IAAIE,GAAOF,KAAK;AAC9B,YAAM,CAAC+G,GAAYC,CAAQ,IAAIL,EAAY3G,CAAC;AAE5C,UAAIO,IAAI,GAAG+D,IAAI,GAAGC,IAAI,GAAG0C,IAAI,GAAGZ,IAAQ,GACpCa,IAAK,GAAGC,IAAK,GAAGC,IAAK,GAAGC,IAAc;AAC1C,eAASrE,IAAS+D,GAAY/D,IAASgE,GAAUhE,KAAU;AACzD,cAAMsE,IAAOtE,IAASjC;AACtB,iBAASwG,IAAUV,GAASU,IAAUT,GAAOS,KAAW;AACtD,gBAAMC,IAAQF,IAAOvG,IAAU,IAAIwG;AACnClB,UAAAA;AACA,gBAAMjE,IAAQkD,EAAOkC,CAAK;AAC1B,cAAIpF,MAAUA,EAAO;AAErB,gBAAMqF,IAAQ5B,IAAO,IAAIxG,KAAKqI,MAAMrI,KAAKF,IAAIE,KAAKD,KAAKgD,IAAQ2C,KAAYc,GAAM,CAAC,GAAG,CAAC,KAAKhC,IAAkB,EAAE,IAAI,IAAI,GACjH8D,IAAK1C,EAAIwC,CAAK,GAAGG,IAAK3C,EAAIwC,IAAQ,CAAC,GAAGI,IAAK5C,EAAIwC,IAAQ,CAAC,GAExDK,IAAU1F,KAAS0D,KAAO1D,KAAS2D;AACzC,UAAI+B,KAAWhG,MACboF,KAAMS,GAAIR,KAAMS,GAAIR,KAAMS,GAAIR;AAEhC,gBAAMU,IAAUD,IAAU,IAAIE;AAC9BzH,UAAAA,KAAKoH,IAAKI,GAASzD,KAAKsD,IAAKG,GAASxD,KAAKsD,IAAKE,GAASd,KAAKc;AAAAA,QAChE;AAAA,MACF;AACA,YAAME,KAAUhI,IAAIC,IAAQF,KAAK;AACjC,MAAIqH,IAAc,KAChBlB,EAAO8B,CAAM,IAAIf,IAAKG,GACtBlB,EAAO8B,IAAS,CAAC,IAAId,IAAKE,GAC1BlB,EAAO8B,IAAS,CAAC,IAAIb,IAAKC,GAC1BlB,EAAO8B,IAAS,CAAC,IAAI,OACZhB,IAAI,MACbd,EAAO8B,CAAM,IAAI1H,IAAI0G,GACrBd,EAAO8B,IAAS,CAAC,IAAI3D,IAAI2C,GACzBd,EAAO8B,IAAS,CAAC,IAAI1D,IAAI0C,GACzBd,EAAO8B,IAAS,CAAC,IAAKhB,IAAIZ,IAAS;AAAA,IAEvC;AAAA,EACF;AACA,SAAOJ;AACT;AAEA,IAAIiC,IAA4C;AAMzC,SAASC,GAAoB1G,GAA+BlC,GAA0B;AAC3F,QAAM;AAAA,IAAEW,OAAAA;AAAAA,IAAOC,QAAAA;AAAAA,EAAAA,IAAWsB,EAAI2G;AAC9B3G,EAAAA,EAAI4G,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GACjC5G,EAAI4C,UAAU,GAAG,GAAGnE,GAAOC,CAAM;AACjC,QAAMmI,IAAgBjJ,KAAKF,IAAIe,GAAOX,EAAOuB,KAAKK,MAAM,GAClDoH,IAAiBlJ,KAAKF,IAAIgB,GAAQZ,EAAOwB,OAAO,GAChDyH,IAAW7C,GAAsBpG,GAAQ+I,GAAeC,CAAc;AAC5E,EAAKC,MACDF,MAAkBpI,KAASqI,MAAmBpI,IAChDsB,EAAIgH,aAAaD,GAAU,GAAG,CAAC,KAE/BN,MAAoBjE,SAASC,cAAc,QAAQ,GACnDgE,EAAgBhI,QAAQoI,GACxBJ,EAAgB/H,SAASoI,GACzBL,EAAgB/D,WAAW,IAAI,GAAGsE,aAAaD,GAAU,GAAG,CAAC,GAC7D/G,EAAIiH,wBAAwB,IAC5BjH,EAAIkH,UAAUT,GAAiB,GAAG,GAAGhI,GAAOC,CAAM;AAEtD;AAGO,SAASyI,GAAYrJ,GAA0BsJ,GAAkBC,GAAwC;AAC9G,QAAM;AAAA,IAAEhI,MAAAA;AAAAA,IAAMC,SAAAA;AAAAA,IAASjB,UAAAA;AAAAA,IAAUC,WAAAA;AAAAA,IAAWiB,MAAAA;AAAAA,EAAAA,IAASzB;AACrD,MAAIsJ,IAAW,KAAKC,IAAW,EAAG,QAAO;AACzC,QAAM9F,IAAS3D,KAAK6B,MAAM2H,IAAW/I,CAAQ,GACvCL,IAAMJ,KAAK6B,OAAOF,IAAO8H,KAAY/I,CAAS;AAEpD,SADIiD,IAAS,KAAKA,KAAUlC,EAAKK,UAAU1B,IAAM,KAAKA,KAAOsB,KACzD,CAACD,EAAKkC,CAAM,GAAGb,KAAK1C,CAAG,IAAU,OAC9B;AAAA,IAAEA,KAAAA;AAAAA,IAAKuD,QAAAA;AAAAA,EAAAA;AAChB;AAGO,SAAS+F,GAASxJ,GAA0ByJ,GAAoC;AACrF,QAAM/G,IAAc1C,EAAOuB,KAAKkI,EAAKhG,MAAM,GACrCd,IAAWD,GAAaE,KAAK6G,EAAKvJ,GAAG;AAC3C,MAAI,CAACwC,KAAe,CAACC,EAAU,QAAO;AAEtC,QAAME,IAAQF,EAASE,OACjBC,IAAQD,KAAS,OAAOE,SAAY/C,EAAOqC,WAAWQ,CAAK,GAC3DQ,IAAWtD,EAAgBC,GAAQyJ,EAAKhG,QAAQgG,EAAKvJ,GAAG,GACxDwJ,IAAS;AAAA,IAAEC,KAAKhH;AAAAA,IAAUzC,KAAKuJ,EAAKvJ;AAAAA,IAAKuD,QAAQgG,EAAKhG;AAAAA,IAAQmG,OAAOlH;AAAAA,IAAarC,KAAKL,EAAOK;AAAAA,IAAKwC,OAAAA;AAAAA,IAAOC,OAAAA;AAAAA,IAAO0F,SAAS3F,KAAS,OAAOE,SAAY;AAAA,EAAA;AAE5J,SAAOM,EAAS/C,SACX;AAAA,IAAE,GAAGoJ;AAAAA,IAAQjJ,GAAG4C,EAAS5C;AAAAA,IAAGC,GAAG2C,EAAS3C;AAAAA,IAAGC,OAAO0C,EAAS1C;AAAAA,IAAOC,QAAQyC,EAASzC;AAAAA,EAAAA,IACnF;AAAA,IAAE,GAAG8I;AAAAA,IAAQ5I,IAAIuC,EAASvC;AAAAA,IAAIC,IAAIsC,EAAStC;AAAAA,IAAIC,GAAGqC,EAASrC;AAAAA,IAAGH,QAAQwC,EAASxC;AAAAA,EAAAA;AACtF;"}
|
|
1
|
+
{"version":3,"file":"visualization.es100.js","sources":["../../../node_modules/.pnpm/cose-base@1.0.3/node_modules/cose-base/cose-base.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"layout-base\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"layout-base\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"coseBase\"] = factory(require(\"layout-base\"));\n\telse\n\t\troot[\"coseBase\"] = factory(root[\"layoutBase\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_0__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 7);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_0__;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar FDLayoutConstants = __webpack_require__(0).FDLayoutConstants;\n\nfunction CoSEConstants() {}\n\n//CoSEConstants inherits static props in FDLayoutConstants\nfor (var prop in FDLayoutConstants) {\n CoSEConstants[prop] = FDLayoutConstants[prop];\n}\n\nCoSEConstants.DEFAULT_USE_MULTI_LEVEL_SCALING = false;\nCoSEConstants.DEFAULT_RADIAL_SEPARATION = FDLayoutConstants.DEFAULT_EDGE_LENGTH;\nCoSEConstants.DEFAULT_COMPONENT_SEPERATION = 60;\nCoSEConstants.TILE = true;\nCoSEConstants.TILING_PADDING_VERTICAL = 10;\nCoSEConstants.TILING_PADDING_HORIZONTAL = 10;\nCoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = false; // make this true when cose is used incrementally as a part of other non-incremental layout\n\nmodule.exports = CoSEConstants;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar FDLayoutEdge = __webpack_require__(0).FDLayoutEdge;\n\nfunction CoSEEdge(source, target, vEdge) {\n FDLayoutEdge.call(this, source, target, vEdge);\n}\n\nCoSEEdge.prototype = Object.create(FDLayoutEdge.prototype);\nfor (var prop in FDLayoutEdge) {\n CoSEEdge[prop] = FDLayoutEdge[prop];\n}\n\nmodule.exports = CoSEEdge;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraph = __webpack_require__(0).LGraph;\n\nfunction CoSEGraph(parent, graphMgr, vGraph) {\n LGraph.call(this, parent, graphMgr, vGraph);\n}\n\nCoSEGraph.prototype = Object.create(LGraph.prototype);\nfor (var prop in LGraph) {\n CoSEGraph[prop] = LGraph[prop];\n}\n\nmodule.exports = CoSEGraph;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LGraphManager = __webpack_require__(0).LGraphManager;\n\nfunction CoSEGraphManager(layout) {\n LGraphManager.call(this, layout);\n}\n\nCoSEGraphManager.prototype = Object.create(LGraphManager.prototype);\nfor (var prop in LGraphManager) {\n CoSEGraphManager[prop] = LGraphManager[prop];\n}\n\nmodule.exports = CoSEGraphManager;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar FDLayoutNode = __webpack_require__(0).FDLayoutNode;\nvar IMath = __webpack_require__(0).IMath;\n\nfunction CoSENode(gm, loc, size, vNode) {\n FDLayoutNode.call(this, gm, loc, size, vNode);\n}\n\nCoSENode.prototype = Object.create(FDLayoutNode.prototype);\nfor (var prop in FDLayoutNode) {\n CoSENode[prop] = FDLayoutNode[prop];\n}\n\nCoSENode.prototype.move = function () {\n var layout = this.graphManager.getLayout();\n this.displacementX = layout.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.noOfChildren;\n this.displacementY = layout.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.noOfChildren;\n\n if (Math.abs(this.displacementX) > layout.coolingFactor * layout.maxNodeDisplacement) {\n this.displacementX = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementX);\n }\n\n if (Math.abs(this.displacementY) > layout.coolingFactor * layout.maxNodeDisplacement) {\n this.displacementY = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementY);\n }\n\n // a simple node, just move it\n if (this.child == null) {\n this.moveBy(this.displacementX, this.displacementY);\n }\n // an empty compound node, again just move it\n else if (this.child.getNodes().length == 0) {\n this.moveBy(this.displacementX, this.displacementY);\n }\n // non-empty compound node, propogate movement to children as well\n else {\n this.propogateDisplacementToChildren(this.displacementX, this.displacementY);\n }\n\n layout.totalDisplacement += Math.abs(this.displacementX) + Math.abs(this.displacementY);\n\n this.springForceX = 0;\n this.springForceY = 0;\n this.repulsionForceX = 0;\n this.repulsionForceY = 0;\n this.gravitationForceX = 0;\n this.gravitationForceY = 0;\n this.displacementX = 0;\n this.displacementY = 0;\n};\n\nCoSENode.prototype.propogateDisplacementToChildren = function (dX, dY) {\n var nodes = this.getChild().getNodes();\n var node;\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[i];\n if (node.getChild() == null) {\n node.moveBy(dX, dY);\n node.displacementX += dX;\n node.displacementY += dY;\n } else {\n node.propogateDisplacementToChildren(dX, dY);\n }\n }\n};\n\nCoSENode.prototype.setPred1 = function (pred1) {\n this.pred1 = pred1;\n};\n\nCoSENode.prototype.getPred1 = function () {\n return pred1;\n};\n\nCoSENode.prototype.getPred2 = function () {\n return pred2;\n};\n\nCoSENode.prototype.setNext = function (next) {\n this.next = next;\n};\n\nCoSENode.prototype.getNext = function () {\n return next;\n};\n\nCoSENode.prototype.setProcessed = function (processed) {\n this.processed = processed;\n};\n\nCoSENode.prototype.isProcessed = function () {\n return processed;\n};\n\nmodule.exports = CoSENode;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar FDLayout = __webpack_require__(0).FDLayout;\nvar CoSEGraphManager = __webpack_require__(4);\nvar CoSEGraph = __webpack_require__(3);\nvar CoSENode = __webpack_require__(5);\nvar CoSEEdge = __webpack_require__(2);\nvar CoSEConstants = __webpack_require__(1);\nvar FDLayoutConstants = __webpack_require__(0).FDLayoutConstants;\nvar LayoutConstants = __webpack_require__(0).LayoutConstants;\nvar Point = __webpack_require__(0).Point;\nvar PointD = __webpack_require__(0).PointD;\nvar Layout = __webpack_require__(0).Layout;\nvar Integer = __webpack_require__(0).Integer;\nvar IGeometry = __webpack_require__(0).IGeometry;\nvar LGraph = __webpack_require__(0).LGraph;\nvar Transform = __webpack_require__(0).Transform;\n\nfunction CoSELayout() {\n FDLayout.call(this);\n\n this.toBeTiled = {}; // Memorize if a node is to be tiled or is tiled\n}\n\nCoSELayout.prototype = Object.create(FDLayout.prototype);\n\nfor (var prop in FDLayout) {\n CoSELayout[prop] = FDLayout[prop];\n}\n\nCoSELayout.prototype.newGraphManager = function () {\n var gm = new CoSEGraphManager(this);\n this.graphManager = gm;\n return gm;\n};\n\nCoSELayout.prototype.newGraph = function (vGraph) {\n return new CoSEGraph(null, this.graphManager, vGraph);\n};\n\nCoSELayout.prototype.newNode = function (vNode) {\n return new CoSENode(this.graphManager, vNode);\n};\n\nCoSELayout.prototype.newEdge = function (vEdge) {\n return new CoSEEdge(null, null, vEdge);\n};\n\nCoSELayout.prototype.initParameters = function () {\n FDLayout.prototype.initParameters.call(this, arguments);\n if (!this.isSubLayout) {\n if (CoSEConstants.DEFAULT_EDGE_LENGTH < 10) {\n this.idealEdgeLength = 10;\n } else {\n this.idealEdgeLength = CoSEConstants.DEFAULT_EDGE_LENGTH;\n }\n\n this.useSmartIdealEdgeLengthCalculation = CoSEConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;\n this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH;\n this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH;\n this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;\n this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;\n this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;\n this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;\n\n // variables for tree reduction support\n this.prunedNodesAll = [];\n this.growTreeIterations = 0;\n this.afterGrowthIterations = 0;\n this.isTreeGrowing = false;\n this.isGrowthFinished = false;\n\n // variables for cooling\n this.coolingCycle = 0;\n this.maxCoolingCycle = this.maxIterations / FDLayoutConstants.CONVERGENCE_CHECK_PERIOD;\n this.finalTemperature = FDLayoutConstants.CONVERGENCE_CHECK_PERIOD / this.maxIterations;\n this.coolingAdjuster = 1;\n }\n};\n\nCoSELayout.prototype.layout = function () {\n var createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;\n if (createBendsAsNeeded) {\n this.createBendpoints();\n this.graphManager.resetAllEdges();\n }\n\n this.level = 0;\n return this.classicLayout();\n};\n\nCoSELayout.prototype.classicLayout = function () {\n this.nodesWithGravity = this.calculateNodesToApplyGravitationTo();\n this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity);\n this.calcNoOfChildrenForAllNodes();\n this.graphManager.calcLowestCommonAncestors();\n this.graphManager.calcInclusionTreeDepths();\n this.graphManager.getRoot().calcEstimatedSize();\n this.calcIdealEdgeLengths();\n\n if (!this.incremental) {\n var forest = this.getFlatForest();\n\n // The graph associated with this layout is flat and a forest\n if (forest.length > 0) {\n this.positionNodesRadially(forest);\n }\n // The graph associated with this layout is not flat or a forest\n else {\n // Reduce the trees when incremental mode is not enabled and graph is not a forest \n this.reduceTrees();\n // Update nodes that gravity will be applied\n this.graphManager.resetAllNodesToApplyGravitation();\n var allNodes = new Set(this.getAllNodes());\n var intersection = this.nodesWithGravity.filter(function (x) {\n return allNodes.has(x);\n });\n this.graphManager.setAllNodesToApplyGravitation(intersection);\n\n this.positionNodesRandomly();\n }\n } else {\n if (CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL) {\n // Reduce the trees in incremental mode if only this constant is set to true \n this.reduceTrees();\n // Update nodes that gravity will be applied\n this.graphManager.resetAllNodesToApplyGravitation();\n var allNodes = new Set(this.getAllNodes());\n var intersection = this.nodesWithGravity.filter(function (x) {\n return allNodes.has(x);\n });\n this.graphManager.setAllNodesToApplyGravitation(intersection);\n }\n }\n\n this.initSpringEmbedder();\n this.runSpringEmbedder();\n\n return true;\n};\n\nCoSELayout.prototype.tick = function () {\n this.totalIterations++;\n\n if (this.totalIterations === this.maxIterations && !this.isTreeGrowing && !this.isGrowthFinished) {\n if (this.prunedNodesAll.length > 0) {\n this.isTreeGrowing = true;\n } else {\n return true;\n }\n }\n\n if (this.totalIterations % FDLayoutConstants.CONVERGENCE_CHECK_PERIOD == 0 && !this.isTreeGrowing && !this.isGrowthFinished) {\n if (this.isConverged()) {\n if (this.prunedNodesAll.length > 0) {\n this.isTreeGrowing = true;\n } else {\n return true;\n }\n }\n\n this.coolingCycle++;\n\n if (this.layoutQuality == 0) {\n // quality - \"draft\"\n this.coolingAdjuster = this.coolingCycle;\n } else if (this.layoutQuality == 1) {\n // quality - \"default\"\n this.coolingAdjuster = this.coolingCycle / 3;\n }\n\n // cooling schedule is based on http://www.btluke.com/simanf1.html -> cooling schedule 3\n this.coolingFactor = Math.max(this.initialCoolingFactor - Math.pow(this.coolingCycle, Math.log(100 * (this.initialCoolingFactor - this.finalTemperature)) / Math.log(this.maxCoolingCycle)) / 100 * this.coolingAdjuster, this.finalTemperature);\n this.animationPeriod = Math.ceil(this.initialAnimationPeriod * Math.sqrt(this.coolingFactor));\n }\n // Operations while tree is growing again \n if (this.isTreeGrowing) {\n if (this.growTreeIterations % 10 == 0) {\n if (this.prunedNodesAll.length > 0) {\n this.graphManager.updateBounds();\n this.updateGrid();\n this.growTree(this.prunedNodesAll);\n // Update nodes that gravity will be applied\n this.graphManager.resetAllNodesToApplyGravitation();\n var allNodes = new Set(this.getAllNodes());\n var intersection = this.nodesWithGravity.filter(function (x) {\n return allNodes.has(x);\n });\n this.graphManager.setAllNodesToApplyGravitation(intersection);\n\n this.graphManager.updateBounds();\n this.updateGrid();\n this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;\n } else {\n this.isTreeGrowing = false;\n this.isGrowthFinished = true;\n }\n }\n this.growTreeIterations++;\n }\n // Operations after growth is finished\n if (this.isGrowthFinished) {\n if (this.isConverged()) {\n return true;\n }\n if (this.afterGrowthIterations % 10 == 0) {\n this.graphManager.updateBounds();\n this.updateGrid();\n }\n this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL * ((100 - this.afterGrowthIterations) / 100);\n this.afterGrowthIterations++;\n }\n\n var gridUpdateAllowed = !this.isTreeGrowing && !this.isGrowthFinished;\n var forceToNodeSurroundingUpdate = this.growTreeIterations % 10 == 1 && this.isTreeGrowing || this.afterGrowthIterations % 10 == 1 && this.isGrowthFinished;\n\n this.totalDisplacement = 0;\n this.graphManager.updateBounds();\n this.calcSpringForces();\n this.calcRepulsionForces(gridUpdateAllowed, forceToNodeSurroundingUpdate);\n this.calcGravitationalForces();\n this.moveNodes();\n this.animate();\n\n return false; // Layout is not ended yet return false\n};\n\nCoSELayout.prototype.getPositionsData = function () {\n var allNodes = this.graphManager.getAllNodes();\n var pData = {};\n for (var i = 0; i < allNodes.length; i++) {\n var rect = allNodes[i].rect;\n var id = allNodes[i].id;\n pData[id] = {\n id: id,\n x: rect.getCenterX(),\n y: rect.getCenterY(),\n w: rect.width,\n h: rect.height\n };\n }\n\n return pData;\n};\n\nCoSELayout.prototype.runSpringEmbedder = function () {\n this.initialAnimationPeriod = 25;\n this.animationPeriod = this.initialAnimationPeriod;\n var layoutEnded = false;\n\n // If aminate option is 'during' signal that layout is supposed to start iterating\n if (FDLayoutConstants.ANIMATE === 'during') {\n this.emit('layoutstarted');\n } else {\n // If aminate option is 'during' tick() function will be called on index.js\n while (!layoutEnded) {\n layoutEnded = this.tick();\n }\n\n this.graphManager.updateBounds();\n }\n};\n\nCoSELayout.prototype.calculateNodesToApplyGravitationTo = function () {\n var nodeList = [];\n var graph;\n\n var graphs = this.graphManager.getGraphs();\n var size = graphs.length;\n var i;\n for (i = 0; i < size; i++) {\n graph = graphs[i];\n\n graph.updateConnected();\n\n if (!graph.isConnected) {\n nodeList = nodeList.concat(graph.getNodes());\n }\n }\n\n return nodeList;\n};\n\nCoSELayout.prototype.createBendpoints = function () {\n var edges = [];\n edges = edges.concat(this.graphManager.getAllEdges());\n var visited = new Set();\n var i;\n for (i = 0; i < edges.length; i++) {\n var edge = edges[i];\n\n if (!visited.has(edge)) {\n var source = edge.getSource();\n var target = edge.getTarget();\n\n if (source == target) {\n edge.getBendpoints().push(new PointD());\n edge.getBendpoints().push(new PointD());\n this.createDummyNodesForBendpoints(edge);\n visited.add(edge);\n } else {\n var edgeList = [];\n\n edgeList = edgeList.concat(source.getEdgeListToNode(target));\n edgeList = edgeList.concat(target.getEdgeListToNode(source));\n\n if (!visited.has(edgeList[0])) {\n if (edgeList.length > 1) {\n var k;\n for (k = 0; k < edgeList.length; k++) {\n var multiEdge = edgeList[k];\n multiEdge.getBendpoints().push(new PointD());\n this.createDummyNodesForBendpoints(multiEdge);\n }\n }\n edgeList.forEach(function (edge) {\n visited.add(edge);\n });\n }\n }\n }\n\n if (visited.size == edges.length) {\n break;\n }\n }\n};\n\nCoSELayout.prototype.positionNodesRadially = function (forest) {\n // We tile the trees to a grid row by row; first tree starts at (0,0)\n var currentStartingPoint = new Point(0, 0);\n var numberOfColumns = Math.ceil(Math.sqrt(forest.length));\n var height = 0;\n var currentY = 0;\n var currentX = 0;\n var point = new PointD(0, 0);\n\n for (var i = 0; i < forest.length; i++) {\n if (i % numberOfColumns == 0) {\n // Start of a new row, make the x coordinate 0, increment the\n // y coordinate with the max height of the previous row\n currentX = 0;\n currentY = height;\n\n if (i != 0) {\n currentY += CoSEConstants.DEFAULT_COMPONENT_SEPERATION;\n }\n\n height = 0;\n }\n\n var tree = forest[i];\n\n // Find the center of the tree\n var centerNode = Layout.findCenterOfTree(tree);\n\n // Set the staring point of the next tree\n currentStartingPoint.x = currentX;\n currentStartingPoint.y = currentY;\n\n // Do a radial layout starting with the center\n point = CoSELayout.radialLayout(tree, centerNode, currentStartingPoint);\n\n if (point.y > height) {\n height = Math.floor(point.y);\n }\n\n currentX = Math.floor(point.x + CoSEConstants.DEFAULT_COMPONENT_SEPERATION);\n }\n\n this.transform(new PointD(LayoutConstants.WORLD_CENTER_X - point.x / 2, LayoutConstants.WORLD_CENTER_Y - point.y / 2));\n};\n\nCoSELayout.radialLayout = function (tree, centerNode, startingPoint) {\n var radialSep = Math.max(this.maxDiagonalInTree(tree), CoSEConstants.DEFAULT_RADIAL_SEPARATION);\n CoSELayout.branchRadialLayout(centerNode, null, 0, 359, 0, radialSep);\n var bounds = LGraph.calculateBounds(tree);\n\n var transform = new Transform();\n transform.setDeviceOrgX(bounds.getMinX());\n transform.setDeviceOrgY(bounds.getMinY());\n transform.setWorldOrgX(startingPoint.x);\n transform.setWorldOrgY(startingPoint.y);\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n node.transform(transform);\n }\n\n var bottomRight = new PointD(bounds.getMaxX(), bounds.getMaxY());\n\n return transform.inverseTransformPoint(bottomRight);\n};\n\nCoSELayout.branchRadialLayout = function (node, parentOfNode, startAngle, endAngle, distance, radialSeparation) {\n // First, position this node by finding its angle.\n var halfInterval = (endAngle - startAngle + 1) / 2;\n\n if (halfInterval < 0) {\n halfInterval += 180;\n }\n\n var nodeAngle = (halfInterval + startAngle) % 360;\n var teta = nodeAngle * IGeometry.TWO_PI / 360;\n\n // Make polar to java cordinate conversion.\n var cos_teta = Math.cos(teta);\n var x_ = distance * Math.cos(teta);\n var y_ = distance * Math.sin(teta);\n\n node.setCenter(x_, y_);\n\n // Traverse all neighbors of this node and recursively call this\n // function.\n var neighborEdges = [];\n neighborEdges = neighborEdges.concat(node.getEdges());\n var childCount = neighborEdges.length;\n\n if (parentOfNode != null) {\n childCount--;\n }\n\n var branchCount = 0;\n\n var incEdgesCount = neighborEdges.length;\n var startIndex;\n\n var edges = node.getEdgesBetween(parentOfNode);\n\n // If there are multiple edges, prune them until there remains only one\n // edge.\n while (edges.length > 1) {\n //neighborEdges.remove(edges.remove(0));\n var temp = edges[0];\n edges.splice(0, 1);\n var index = neighborEdges.indexOf(temp);\n if (index >= 0) {\n neighborEdges.splice(index, 1);\n }\n incEdgesCount--;\n childCount--;\n }\n\n if (parentOfNode != null) {\n //assert edges.length == 1;\n startIndex = (neighborEdges.indexOf(edges[0]) + 1) % incEdgesCount;\n } else {\n startIndex = 0;\n }\n\n var stepAngle = Math.abs(endAngle - startAngle) / childCount;\n\n for (var i = startIndex; branchCount != childCount; i = ++i % incEdgesCount) {\n var currentNeighbor = neighborEdges[i].getOtherEnd(node);\n\n // Don't back traverse to root node in current tree.\n if (currentNeighbor == parentOfNode) {\n continue;\n }\n\n var childStartAngle = (startAngle + branchCount * stepAngle) % 360;\n var childEndAngle = (childStartAngle + stepAngle) % 360;\n\n CoSELayout.branchRadialLayout(currentNeighbor, node, childStartAngle, childEndAngle, distance + radialSeparation, radialSeparation);\n\n branchCount++;\n }\n};\n\nCoSELayout.maxDiagonalInTree = function (tree) {\n var maxDiagonal = Integer.MIN_VALUE;\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n var diagonal = node.getDiagonal();\n\n if (diagonal > maxDiagonal) {\n maxDiagonal = diagonal;\n }\n }\n\n return maxDiagonal;\n};\n\nCoSELayout.prototype.calcRepulsionRange = function () {\n // formula is 2 x (level + 1) x idealEdgeLength\n return 2 * (this.level + 1) * this.idealEdgeLength;\n};\n\n// Tiling methods\n\n// Group zero degree members whose parents are not to be tiled, create dummy parents where needed and fill memberGroups by their dummp parent id's\nCoSELayout.prototype.groupZeroDegreeMembers = function () {\n var self = this;\n // array of [parent_id x oneDegreeNode_id]\n var tempMemberGroups = {}; // A temporary map of parent node and its zero degree members\n this.memberGroups = {}; // A map of dummy parent node and its zero degree members whose parents are not to be tiled\n this.idToDummyNode = {}; // A map of id to dummy node \n\n var zeroDegree = []; // List of zero degree nodes whose parents are not to be tiled\n var allNodes = this.graphManager.getAllNodes();\n\n // Fill zero degree list\n for (var i = 0; i < allNodes.length; i++) {\n var node = allNodes[i];\n var parent = node.getParent();\n // If a node has zero degree and its parent is not to be tiled if exists add that node to zeroDegres list\n if (this.getNodeDegreeWithChildren(node) === 0 && (parent.id == undefined || !this.getToBeTiled(parent))) {\n zeroDegree.push(node);\n }\n }\n\n // Create a map of parent node and its zero degree members\n for (var i = 0; i < zeroDegree.length; i++) {\n var node = zeroDegree[i]; // Zero degree node itself\n var p_id = node.getParent().id; // Parent id\n\n if (typeof tempMemberGroups[p_id] === \"undefined\") tempMemberGroups[p_id] = [];\n\n tempMemberGroups[p_id] = tempMemberGroups[p_id].concat(node); // Push node to the list belongs to its parent in tempMemberGroups\n }\n\n // If there are at least two nodes at a level, create a dummy compound for them\n Object.keys(tempMemberGroups).forEach(function (p_id) {\n if (tempMemberGroups[p_id].length > 1) {\n var dummyCompoundId = \"DummyCompound_\" + p_id; // The id of dummy compound which will be created soon\n self.memberGroups[dummyCompoundId] = tempMemberGroups[p_id]; // Add dummy compound to memberGroups\n\n var parent = tempMemberGroups[p_id][0].getParent(); // The parent of zero degree nodes will be the parent of new dummy compound\n\n // Create a dummy compound with calculated id\n var dummyCompound = new CoSENode(self.graphManager);\n dummyCompound.id = dummyCompoundId;\n dummyCompound.paddingLeft = parent.paddingLeft || 0;\n dummyCompound.paddingRight = parent.paddingRight || 0;\n dummyCompound.paddingBottom = parent.paddingBottom || 0;\n dummyCompound.paddingTop = parent.paddingTop || 0;\n\n self.idToDummyNode[dummyCompoundId] = dummyCompound;\n\n var dummyParentGraph = self.getGraphManager().add(self.newGraph(), dummyCompound);\n var parentGraph = parent.getChild();\n\n // Add dummy compound to parent the graph\n parentGraph.add(dummyCompound);\n\n // For each zero degree node in this level remove it from its parent graph and add it to the graph of dummy parent\n for (var i = 0; i < tempMemberGroups[p_id].length; i++) {\n var node = tempMemberGroups[p_id][i];\n\n parentGraph.remove(node);\n dummyParentGraph.add(node);\n }\n }\n });\n};\n\nCoSELayout.prototype.clearCompounds = function () {\n var childGraphMap = {};\n var idToNode = {};\n\n // Get compound ordering by finding the inner one first\n this.performDFSOnCompounds();\n\n for (var i = 0; i < this.compoundOrder.length; i++) {\n\n idToNode[this.compoundOrder[i].id] = this.compoundOrder[i];\n childGraphMap[this.compoundOrder[i].id] = [].concat(this.compoundOrder[i].getChild().getNodes());\n\n // Remove children of compounds\n this.graphManager.remove(this.compoundOrder[i].getChild());\n this.compoundOrder[i].child = null;\n }\n\n this.graphManager.resetAllNodes();\n\n // Tile the removed children\n this.tileCompoundMembers(childGraphMap, idToNode);\n};\n\nCoSELayout.prototype.clearZeroDegreeMembers = function () {\n var self = this;\n var tiledZeroDegreePack = this.tiledZeroDegreePack = [];\n\n Object.keys(this.memberGroups).forEach(function (id) {\n var compoundNode = self.idToDummyNode[id]; // Get the dummy compound\n\n tiledZeroDegreePack[id] = self.tileNodes(self.memberGroups[id], compoundNode.paddingLeft + compoundNode.paddingRight);\n\n // Set the width and height of the dummy compound as calculated\n compoundNode.rect.width = tiledZeroDegreePack[id].width;\n compoundNode.rect.height = tiledZeroDegreePack[id].height;\n });\n};\n\nCoSELayout.prototype.repopulateCompounds = function () {\n for (var i = this.compoundOrder.length - 1; i >= 0; i--) {\n var lCompoundNode = this.compoundOrder[i];\n var id = lCompoundNode.id;\n var horizontalMargin = lCompoundNode.paddingLeft;\n var verticalMargin = lCompoundNode.paddingTop;\n\n this.adjustLocations(this.tiledMemberPack[id], lCompoundNode.rect.x, lCompoundNode.rect.y, horizontalMargin, verticalMargin);\n }\n};\n\nCoSELayout.prototype.repopulateZeroDegreeMembers = function () {\n var self = this;\n var tiledPack = this.tiledZeroDegreePack;\n\n Object.keys(tiledPack).forEach(function (id) {\n var compoundNode = self.idToDummyNode[id]; // Get the dummy compound by its id\n var horizontalMargin = compoundNode.paddingLeft;\n var verticalMargin = compoundNode.paddingTop;\n\n // Adjust the positions of nodes wrt its compound\n self.adjustLocations(tiledPack[id], compoundNode.rect.x, compoundNode.rect.y, horizontalMargin, verticalMargin);\n });\n};\n\nCoSELayout.prototype.getToBeTiled = function (node) {\n var id = node.id;\n //firstly check the previous results\n if (this.toBeTiled[id] != null) {\n return this.toBeTiled[id];\n }\n\n //only compound nodes are to be tiled\n var childGraph = node.getChild();\n if (childGraph == null) {\n this.toBeTiled[id] = false;\n return false;\n }\n\n var children = childGraph.getNodes(); // Get the children nodes\n\n //a compound node is not to be tiled if all of its compound children are not to be tiled\n for (var i = 0; i < children.length; i++) {\n var theChild = children[i];\n\n if (this.getNodeDegree(theChild) > 0) {\n this.toBeTiled[id] = false;\n return false;\n }\n\n //pass the children not having the compound structure\n if (theChild.getChild() == null) {\n this.toBeTiled[theChild.id] = false;\n continue;\n }\n\n if (!this.getToBeTiled(theChild)) {\n this.toBeTiled[id] = false;\n return false;\n }\n }\n this.toBeTiled[id] = true;\n return true;\n};\n\n// Get degree of a node depending of its edges and independent of its children\nCoSELayout.prototype.getNodeDegree = function (node) {\n var id = node.id;\n var edges = node.getEdges();\n var degree = 0;\n\n // For the edges connected\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[i];\n if (edge.getSource().id !== edge.getTarget().id) {\n degree = degree + 1;\n }\n }\n return degree;\n};\n\n// Get degree of a node with its children\nCoSELayout.prototype.getNodeDegreeWithChildren = function (node) {\n var degree = this.getNodeDegree(node);\n if (node.getChild() == null) {\n return degree;\n }\n var children = node.getChild().getNodes();\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n degree += this.getNodeDegreeWithChildren(child);\n }\n return degree;\n};\n\nCoSELayout.prototype.performDFSOnCompounds = function () {\n this.compoundOrder = [];\n this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes());\n};\n\nCoSELayout.prototype.fillCompexOrderByDFS = function (children) {\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (child.getChild() != null) {\n this.fillCompexOrderByDFS(child.getChild().getNodes());\n }\n if (this.getToBeTiled(child)) {\n this.compoundOrder.push(child);\n }\n }\n};\n\n/**\n* This method places each zero degree member wrt given (x,y) coordinates (top left).\n*/\nCoSELayout.prototype.adjustLocations = function (organization, x, y, compoundHorizontalMargin, compoundVerticalMargin) {\n x += compoundHorizontalMargin;\n y += compoundVerticalMargin;\n\n var left = x;\n\n for (var i = 0; i < organization.rows.length; i++) {\n var row = organization.rows[i];\n x = left;\n var maxHeight = 0;\n\n for (var j = 0; j < row.length; j++) {\n var lnode = row[j];\n\n lnode.rect.x = x; // + lnode.rect.width / 2;\n lnode.rect.y = y; // + lnode.rect.height / 2;\n\n x += lnode.rect.width + organization.horizontalPadding;\n\n if (lnode.rect.height > maxHeight) maxHeight = lnode.rect.height;\n }\n\n y += maxHeight + organization.verticalPadding;\n }\n};\n\nCoSELayout.prototype.tileCompoundMembers = function (childGraphMap, idToNode) {\n var self = this;\n this.tiledMemberPack = [];\n\n Object.keys(childGraphMap).forEach(function (id) {\n // Get the compound node\n var compoundNode = idToNode[id];\n\n self.tiledMemberPack[id] = self.tileNodes(childGraphMap[id], compoundNode.paddingLeft + compoundNode.paddingRight);\n\n compoundNode.rect.width = self.tiledMemberPack[id].width;\n compoundNode.rect.height = self.tiledMemberPack[id].height;\n });\n};\n\nCoSELayout.prototype.tileNodes = function (nodes, minWidth) {\n var verticalPadding = CoSEConstants.TILING_PADDING_VERTICAL;\n var horizontalPadding = CoSEConstants.TILING_PADDING_HORIZONTAL;\n var organization = {\n rows: [],\n rowWidth: [],\n rowHeight: [],\n width: 0,\n height: minWidth, // assume minHeight equals to minWidth\n verticalPadding: verticalPadding,\n horizontalPadding: horizontalPadding\n };\n\n // Sort the nodes in ascending order of their areas\n nodes.sort(function (n1, n2) {\n if (n1.rect.width * n1.rect.height > n2.rect.width * n2.rect.height) return -1;\n if (n1.rect.width * n1.rect.height < n2.rect.width * n2.rect.height) return 1;\n return 0;\n });\n\n // Create the organization -> tile members\n for (var i = 0; i < nodes.length; i++) {\n var lNode = nodes[i];\n\n if (organization.rows.length == 0) {\n this.insertNodeToRow(organization, lNode, 0, minWidth);\n } else if (this.canAddHorizontal(organization, lNode.rect.width, lNode.rect.height)) {\n this.insertNodeToRow(organization, lNode, this.getShortestRowIndex(organization), minWidth);\n } else {\n this.insertNodeToRow(organization, lNode, organization.rows.length, minWidth);\n }\n\n this.shiftToLastRow(organization);\n }\n\n return organization;\n};\n\nCoSELayout.prototype.insertNodeToRow = function (organization, node, rowIndex, minWidth) {\n var minCompoundSize = minWidth;\n\n // Add new row if needed\n if (rowIndex == organization.rows.length) {\n var secondDimension = [];\n\n organization.rows.push(secondDimension);\n organization.rowWidth.push(minCompoundSize);\n organization.rowHeight.push(0);\n }\n\n // Update row width\n var w = organization.rowWidth[rowIndex] + node.rect.width;\n\n if (organization.rows[rowIndex].length > 0) {\n w += organization.horizontalPadding;\n }\n\n organization.rowWidth[rowIndex] = w;\n // Update compound width\n if (organization.width < w) {\n organization.width = w;\n }\n\n // Update height\n var h = node.rect.height;\n if (rowIndex > 0) h += organization.verticalPadding;\n\n var extraHeight = 0;\n if (h > organization.rowHeight[rowIndex]) {\n extraHeight = organization.rowHeight[rowIndex];\n organization.rowHeight[rowIndex] = h;\n extraHeight = organization.rowHeight[rowIndex] - extraHeight;\n }\n\n organization.height += extraHeight;\n\n // Insert node\n organization.rows[rowIndex].push(node);\n};\n\n//Scans the rows of an organization and returns the one with the min width\nCoSELayout.prototype.getShortestRowIndex = function (organization) {\n var r = -1;\n var min = Number.MAX_VALUE;\n\n for (var i = 0; i < organization.rows.length; i++) {\n if (organization.rowWidth[i] < min) {\n r = i;\n min = organization.rowWidth[i];\n }\n }\n return r;\n};\n\n//Scans the rows of an organization and returns the one with the max width\nCoSELayout.prototype.getLongestRowIndex = function (organization) {\n var r = -1;\n var max = Number.MIN_VALUE;\n\n for (var i = 0; i < organization.rows.length; i++) {\n\n if (organization.rowWidth[i] > max) {\n r = i;\n max = organization.rowWidth[i];\n }\n }\n\n return r;\n};\n\n/**\n* This method checks whether adding extra width to the organization violates\n* the aspect ratio(1) or not.\n*/\nCoSELayout.prototype.canAddHorizontal = function (organization, extraWidth, extraHeight) {\n\n var sri = this.getShortestRowIndex(organization);\n\n if (sri < 0) {\n return true;\n }\n\n var min = organization.rowWidth[sri];\n\n if (min + organization.horizontalPadding + extraWidth <= organization.width) return true;\n\n var hDiff = 0;\n\n // Adding to an existing row\n if (organization.rowHeight[sri] < extraHeight) {\n if (sri > 0) hDiff = extraHeight + organization.verticalPadding - organization.rowHeight[sri];\n }\n\n var add_to_row_ratio;\n if (organization.width - min >= extraWidth + organization.horizontalPadding) {\n add_to_row_ratio = (organization.height + hDiff) / (min + extraWidth + organization.horizontalPadding);\n } else {\n add_to_row_ratio = (organization.height + hDiff) / organization.width;\n }\n\n // Adding a new row for this node\n hDiff = extraHeight + organization.verticalPadding;\n var add_new_row_ratio;\n if (organization.width < extraWidth) {\n add_new_row_ratio = (organization.height + hDiff) / extraWidth;\n } else {\n add_new_row_ratio = (organization.height + hDiff) / organization.width;\n }\n\n if (add_new_row_ratio < 1) add_new_row_ratio = 1 / add_new_row_ratio;\n\n if (add_to_row_ratio < 1) add_to_row_ratio = 1 / add_to_row_ratio;\n\n return add_to_row_ratio < add_new_row_ratio;\n};\n\n//If moving the last node from the longest row and adding it to the last\n//row makes the bounding box smaller, do it.\nCoSELayout.prototype.shiftToLastRow = function (organization) {\n var longest = this.getLongestRowIndex(organization);\n var last = organization.rowWidth.length - 1;\n var row = organization.rows[longest];\n var node = row[row.length - 1];\n\n var diff = node.width + organization.horizontalPadding;\n\n // Check if there is enough space on the last row\n if (organization.width - organization.rowWidth[last] > diff && longest != last) {\n // Remove the last element of the longest row\n row.splice(-1, 1);\n\n // Push it to the last row\n organization.rows[last].push(node);\n\n organization.rowWidth[longest] = organization.rowWidth[longest] - diff;\n organization.rowWidth[last] = organization.rowWidth[last] + diff;\n organization.width = organization.rowWidth[instance.getLongestRowIndex(organization)];\n\n // Update heights of the organization\n var maxHeight = Number.MIN_VALUE;\n for (var i = 0; i < row.length; i++) {\n if (row[i].height > maxHeight) maxHeight = row[i].height;\n }\n if (longest > 0) maxHeight += organization.verticalPadding;\n\n var prevTotal = organization.rowHeight[longest] + organization.rowHeight[last];\n\n organization.rowHeight[longest] = maxHeight;\n if (organization.rowHeight[last] < node.height + organization.verticalPadding) organization.rowHeight[last] = node.height + organization.verticalPadding;\n\n var finalTotal = organization.rowHeight[longest] + organization.rowHeight[last];\n organization.height += finalTotal - prevTotal;\n\n this.shiftToLastRow(organization);\n }\n};\n\nCoSELayout.prototype.tilingPreLayout = function () {\n if (CoSEConstants.TILE) {\n // Find zero degree nodes and create a compound for each level\n this.groupZeroDegreeMembers();\n // Tile and clear children of each compound\n this.clearCompounds();\n // Separately tile and clear zero degree nodes for each level\n this.clearZeroDegreeMembers();\n }\n};\n\nCoSELayout.prototype.tilingPostLayout = function () {\n if (CoSEConstants.TILE) {\n this.repopulateZeroDegreeMembers();\n this.repopulateCompounds();\n }\n};\n\n// -----------------------------------------------------------------------------\n// Section: Tree Reduction methods\n// -----------------------------------------------------------------------------\n// Reduce trees \nCoSELayout.prototype.reduceTrees = function () {\n var prunedNodesAll = [];\n var containsLeaf = true;\n var node;\n\n while (containsLeaf) {\n var allNodes = this.graphManager.getAllNodes();\n var prunedNodesInStepTemp = [];\n containsLeaf = false;\n\n for (var i = 0; i < allNodes.length; i++) {\n node = allNodes[i];\n if (node.getEdges().length == 1 && !node.getEdges()[0].isInterGraph && node.getChild() == null) {\n prunedNodesInStepTemp.push([node, node.getEdges()[0], node.getOwner()]);\n containsLeaf = true;\n }\n }\n if (containsLeaf == true) {\n var prunedNodesInStep = [];\n for (var j = 0; j < prunedNodesInStepTemp.length; j++) {\n if (prunedNodesInStepTemp[j][0].getEdges().length == 1) {\n prunedNodesInStep.push(prunedNodesInStepTemp[j]);\n prunedNodesInStepTemp[j][0].getOwner().remove(prunedNodesInStepTemp[j][0]);\n }\n }\n prunedNodesAll.push(prunedNodesInStep);\n this.graphManager.resetAllNodes();\n this.graphManager.resetAllEdges();\n }\n }\n this.prunedNodesAll = prunedNodesAll;\n};\n\n// Grow tree one step \nCoSELayout.prototype.growTree = function (prunedNodesAll) {\n var lengthOfPrunedNodesInStep = prunedNodesAll.length;\n var prunedNodesInStep = prunedNodesAll[lengthOfPrunedNodesInStep - 1];\n\n var nodeData;\n for (var i = 0; i < prunedNodesInStep.length; i++) {\n nodeData = prunedNodesInStep[i];\n\n this.findPlaceforPrunedNode(nodeData);\n\n nodeData[2].add(nodeData[0]);\n nodeData[2].add(nodeData[1], nodeData[1].source, nodeData[1].target);\n }\n\n prunedNodesAll.splice(prunedNodesAll.length - 1, 1);\n this.graphManager.resetAllNodes();\n this.graphManager.resetAllEdges();\n};\n\n// Find an appropriate position to replace pruned node, this method can be improved\nCoSELayout.prototype.findPlaceforPrunedNode = function (nodeData) {\n\n var gridForPrunedNode;\n var nodeToConnect;\n var prunedNode = nodeData[0];\n if (prunedNode == nodeData[1].source) {\n nodeToConnect = nodeData[1].target;\n } else {\n nodeToConnect = nodeData[1].source;\n }\n var startGridX = nodeToConnect.startX;\n var finishGridX = nodeToConnect.finishX;\n var startGridY = nodeToConnect.startY;\n var finishGridY = nodeToConnect.finishY;\n\n var upNodeCount = 0;\n var downNodeCount = 0;\n var rightNodeCount = 0;\n var leftNodeCount = 0;\n var controlRegions = [upNodeCount, rightNodeCount, downNodeCount, leftNodeCount];\n\n if (startGridY > 0) {\n for (var i = startGridX; i <= finishGridX; i++) {\n controlRegions[0] += this.grid[i][startGridY - 1].length + this.grid[i][startGridY].length - 1;\n }\n }\n if (finishGridX < this.grid.length - 1) {\n for (var i = startGridY; i <= finishGridY; i++) {\n controlRegions[1] += this.grid[finishGridX + 1][i].length + this.grid[finishGridX][i].length - 1;\n }\n }\n if (finishGridY < this.grid[0].length - 1) {\n for (var i = startGridX; i <= finishGridX; i++) {\n controlRegions[2] += this.grid[i][finishGridY + 1].length + this.grid[i][finishGridY].length - 1;\n }\n }\n if (startGridX > 0) {\n for (var i = startGridY; i <= finishGridY; i++) {\n controlRegions[3] += this.grid[startGridX - 1][i].length + this.grid[startGridX][i].length - 1;\n }\n }\n var min = Integer.MAX_VALUE;\n var minCount;\n var minIndex;\n for (var j = 0; j < controlRegions.length; j++) {\n if (controlRegions[j] < min) {\n min = controlRegions[j];\n minCount = 1;\n minIndex = j;\n } else if (controlRegions[j] == min) {\n minCount++;\n }\n }\n\n if (minCount == 3 && min == 0) {\n if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[2] == 0) {\n gridForPrunedNode = 1;\n } else if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[3] == 0) {\n gridForPrunedNode = 0;\n } else if (controlRegions[0] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {\n gridForPrunedNode = 3;\n } else if (controlRegions[1] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {\n gridForPrunedNode = 2;\n }\n } else if (minCount == 2 && min == 0) {\n var random = Math.floor(Math.random() * 2);\n if (controlRegions[0] == 0 && controlRegions[1] == 0) {\n ;\n if (random == 0) {\n gridForPrunedNode = 0;\n } else {\n gridForPrunedNode = 1;\n }\n } else if (controlRegions[0] == 0 && controlRegions[2] == 0) {\n if (random == 0) {\n gridForPrunedNode = 0;\n } else {\n gridForPrunedNode = 2;\n }\n } else if (controlRegions[0] == 0 && controlRegions[3] == 0) {\n if (random == 0) {\n gridForPrunedNode = 0;\n } else {\n gridForPrunedNode = 3;\n }\n } else if (controlRegions[1] == 0 && controlRegions[2] == 0) {\n if (random == 0) {\n gridForPrunedNode = 1;\n } else {\n gridForPrunedNode = 2;\n }\n } else if (controlRegions[1] == 0 && controlRegions[3] == 0) {\n if (random == 0) {\n gridForPrunedNode = 1;\n } else {\n gridForPrunedNode = 3;\n }\n } else {\n if (random == 0) {\n gridForPrunedNode = 2;\n } else {\n gridForPrunedNode = 3;\n }\n }\n } else if (minCount == 4 && min == 0) {\n var random = Math.floor(Math.random() * 4);\n gridForPrunedNode = random;\n } else {\n gridForPrunedNode = minIndex;\n }\n\n if (gridForPrunedNode == 0) {\n prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() - nodeToConnect.getHeight() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getHeight() / 2);\n } else if (gridForPrunedNode == 1) {\n prunedNode.setCenter(nodeToConnect.getCenterX() + nodeToConnect.getWidth() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getWidth() / 2, nodeToConnect.getCenterY());\n } else if (gridForPrunedNode == 2) {\n prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() + nodeToConnect.getHeight() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getHeight() / 2);\n } else {\n prunedNode.setCenter(nodeToConnect.getCenterX() - nodeToConnect.getWidth() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getWidth() / 2, nodeToConnect.getCenterY());\n }\n};\n\nmodule.exports = CoSELayout;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar coseBase = {};\n\ncoseBase.layoutBase = __webpack_require__(0);\ncoseBase.CoSEConstants = __webpack_require__(1);\ncoseBase.CoSEEdge = __webpack_require__(2);\ncoseBase.CoSEGraph = __webpack_require__(3);\ncoseBase.CoSEGraphManager = __webpack_require__(4);\ncoseBase.CoSELayout = __webpack_require__(6);\ncoseBase.CoSENode = __webpack_require__(5);\n\nmodule.exports = coseBase;\n\n/***/ })\n/******/ ]);\n});"],"names":["root","factory","module","require$$0","this","__WEBPACK_EXTERNAL_MODULE_0__","modules","installedModules","__webpack_require__","moduleId","value","exports","name","getter","object","property","FDLayoutConstants","CoSEConstants","prop","FDLayoutEdge","CoSEEdge","source","target","vEdge","LGraph","CoSEGraph","parent","graphMgr","vGraph","LGraphManager","CoSEGraphManager","layout","FDLayoutNode","IMath","CoSENode","gm","loc","size","vNode","dX","dY","nodes","node","i","pred1","next","processed","FDLayout","LayoutConstants","Point","PointD","Layout","Integer","IGeometry","Transform","CoSELayout","createBendsAsNeeded","allNodes","intersection","x","forest","gridUpdateAllowed","forceToNodeSurroundingUpdate","pData","rect","id","layoutEnded","nodeList","graph","graphs","edges","visited","edge","edgeList","k","multiEdge","currentStartingPoint","numberOfColumns","height","currentY","currentX","point","tree","centerNode","startingPoint","radialSep","bounds","transform","bottomRight","parentOfNode","startAngle","endAngle","distance","radialSeparation","halfInterval","nodeAngle","teta","x_","y_","neighborEdges","childCount","branchCount","incEdgesCount","startIndex","temp","index","stepAngle","currentNeighbor","childStartAngle","childEndAngle","maxDiagonal","diagonal","self","tempMemberGroups","zeroDegree","p_id","dummyCompoundId","dummyCompound","dummyParentGraph","parentGraph","childGraphMap","idToNode","tiledZeroDegreePack","compoundNode","lCompoundNode","horizontalMargin","verticalMargin","tiledPack","childGraph","children","theChild","degree","child","organization","y","compoundHorizontalMargin","compoundVerticalMargin","left","row","maxHeight","j","lnode","minWidth","verticalPadding","horizontalPadding","n1","n2","lNode","rowIndex","minCompoundSize","secondDimension","w","extraHeight","r","min","max","extraWidth","sri","hDiff","add_to_row_ratio","add_new_row_ratio","longest","last","diff","prevTotal","finalTotal","prunedNodesAll","containsLeaf","prunedNodesInStepTemp","prunedNodesInStep","lengthOfPrunedNodesInStep","nodeData","gridForPrunedNode","nodeToConnect","prunedNode","startGridX","finishGridX","startGridY","finishGridY","upNodeCount","downNodeCount","rightNodeCount","leftNodeCount","controlRegions","minCount","minIndex","random","coseBase"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,21 +1,217 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
import { __module as y } from "./visualization.es102.js";
|
|
2
|
+
var B = y.exports, b;
|
|
3
|
+
function D() {
|
|
4
|
+
return b ? y.exports : (b = 1, (function(w, C) {
|
|
5
|
+
(function(a, n) {
|
|
6
|
+
w.exports = n();
|
|
7
|
+
})(B, function() {
|
|
8
|
+
return (
|
|
9
|
+
/******/
|
|
10
|
+
(function(i) {
|
|
11
|
+
var a = {};
|
|
12
|
+
function n(e) {
|
|
13
|
+
if (a[e])
|
|
14
|
+
return a[e].exports;
|
|
15
|
+
var r = a[e] = {
|
|
16
|
+
/******/
|
|
17
|
+
i: e,
|
|
18
|
+
/******/
|
|
19
|
+
l: !1,
|
|
20
|
+
/******/
|
|
21
|
+
exports: {}
|
|
22
|
+
/******/
|
|
23
|
+
};
|
|
24
|
+
return i[e].call(r.exports, r, r.exports, n), r.l = !0, r.exports;
|
|
25
|
+
}
|
|
26
|
+
return n.m = i, n.c = a, n.i = function(e) {
|
|
27
|
+
return e;
|
|
28
|
+
}, n.d = function(e, r, t) {
|
|
29
|
+
n.o(e, r) || Object.defineProperty(e, r, {
|
|
30
|
+
/******/
|
|
31
|
+
configurable: !1,
|
|
32
|
+
/******/
|
|
33
|
+
enumerable: !0,
|
|
34
|
+
/******/
|
|
35
|
+
get: t
|
|
36
|
+
/******/
|
|
37
|
+
});
|
|
38
|
+
}, n.n = function(e) {
|
|
39
|
+
var r = e && e.__esModule ? (
|
|
40
|
+
/******/
|
|
41
|
+
function() {
|
|
42
|
+
return e.default;
|
|
43
|
+
}
|
|
44
|
+
) : (
|
|
45
|
+
/******/
|
|
46
|
+
function() {
|
|
47
|
+
return e;
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
return n.d(r, "a", r), r;
|
|
51
|
+
}, n.o = function(e, r) {
|
|
52
|
+
return Object.prototype.hasOwnProperty.call(e, r);
|
|
53
|
+
}, n.p = "", n(n.s = 7);
|
|
54
|
+
})([
|
|
55
|
+
/* 0 */
|
|
56
|
+
/***/
|
|
57
|
+
(function(i, a, n) {
|
|
58
|
+
var e = n(5), r = e.getBoundingBox;
|
|
59
|
+
function t(p, u) {
|
|
60
|
+
var s = {
|
|
61
|
+
getBoundingClientRect: function() {
|
|
62
|
+
return r(p, u);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
return s;
|
|
66
|
+
}
|
|
67
|
+
i.exports = { getRef: t };
|
|
68
|
+
}),
|
|
69
|
+
/* 1 */
|
|
70
|
+
/***/
|
|
71
|
+
(function(i, a, n) {
|
|
72
|
+
i.exports = Object.assign != null ? Object.assign.bind(Object) : function(e) {
|
|
73
|
+
for (var r = arguments.length, t = Array(r > 1 ? r - 1 : 0), p = 1; p < r; p++)
|
|
74
|
+
t[p - 1] = arguments[p];
|
|
75
|
+
return t.forEach(function(u) {
|
|
76
|
+
u != null && Object.keys(u).forEach(function(s) {
|
|
77
|
+
return e[s] = u[s];
|
|
78
|
+
});
|
|
79
|
+
}), e;
|
|
80
|
+
};
|
|
81
|
+
}),
|
|
82
|
+
/* 2 */
|
|
83
|
+
/***/
|
|
84
|
+
(function(i, a, n) {
|
|
85
|
+
var e = n(0), r = e.getRef, t = n(6), p = t.getContent;
|
|
86
|
+
function u(s, o) {
|
|
87
|
+
var d = r(s, o), c = p(s, o.content);
|
|
88
|
+
return s.popperFactory(d, c, o.popper);
|
|
89
|
+
}
|
|
90
|
+
i.exports = { getPopper: u };
|
|
91
|
+
}),
|
|
92
|
+
/* 3 */
|
|
93
|
+
/***/
|
|
94
|
+
(function(i, a, n) {
|
|
95
|
+
var e = n(1), r = n(2), t = r.getPopper, p = n(0), u = p.getRef;
|
|
96
|
+
function s(f) {
|
|
97
|
+
return h(this), t(this[0], d(this[0], f));
|
|
98
|
+
}
|
|
99
|
+
function o(f) {
|
|
100
|
+
return h(this), u(this[0], d(this[0], f));
|
|
101
|
+
}
|
|
102
|
+
function d(f, x) {
|
|
103
|
+
var g = function(v) {
|
|
104
|
+
return v.isNode() ? { w: v.renderedWidth(), h: v.renderedHeight() } : { w: 3, h: 3 };
|
|
105
|
+
}, l = function(v) {
|
|
106
|
+
return v.isNode() ? c(v, g) : P(v);
|
|
107
|
+
}, R = {}, m = f.cy(), O = { renderedDimensions: g, renderedPosition: l, popper: R, cy: m };
|
|
108
|
+
return e({}, O, x);
|
|
109
|
+
}
|
|
110
|
+
function c(f, x) {
|
|
111
|
+
var g = f.renderedPosition(), l = x(f), R = l.w / 2, m = l.h / 2;
|
|
112
|
+
return {
|
|
113
|
+
x: g.x - R,
|
|
114
|
+
y: g.y - m
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
function P(f) {
|
|
118
|
+
var x = f.midpoint(), g = f.cy().pan(), l = f.cy().zoom();
|
|
119
|
+
return {
|
|
120
|
+
x: x.x * l + g.x,
|
|
121
|
+
y: x.y * l + g.y
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
function h(f) {
|
|
125
|
+
f.length > 1 && (console.warn("Popper.js Extension should only be used on one element."), console.warn("Ignoring all subsequent elements"));
|
|
126
|
+
}
|
|
127
|
+
i.exports = { popper: s, popperRef: o };
|
|
128
|
+
}),
|
|
129
|
+
/* 4 */
|
|
130
|
+
/***/
|
|
131
|
+
(function(i, a, n) {
|
|
132
|
+
var e = n(1), r = n(2), t = r.getPopper, p = n(0), u = p.getRef;
|
|
133
|
+
function s(c) {
|
|
134
|
+
return t(this, d(this, c));
|
|
135
|
+
}
|
|
136
|
+
function o(c) {
|
|
137
|
+
return u(this, d(this, c));
|
|
138
|
+
}
|
|
139
|
+
function d(c, P) {
|
|
140
|
+
var h = {
|
|
141
|
+
boundingBox: {
|
|
142
|
+
top: 0,
|
|
143
|
+
left: 0,
|
|
144
|
+
right: 0,
|
|
145
|
+
bottom: 0,
|
|
146
|
+
w: 3,
|
|
147
|
+
h: 3
|
|
148
|
+
},
|
|
149
|
+
renderedDimensions: function() {
|
|
150
|
+
return { w: 3, h: 3 };
|
|
151
|
+
},
|
|
152
|
+
renderedPosition: function() {
|
|
153
|
+
return { x: 0, y: 0 };
|
|
154
|
+
},
|
|
155
|
+
popper: {},
|
|
156
|
+
cy: c
|
|
157
|
+
};
|
|
158
|
+
return e({}, h, P);
|
|
159
|
+
}
|
|
160
|
+
i.exports = { popper: s, popperRef: o };
|
|
161
|
+
}),
|
|
162
|
+
/* 5 */
|
|
163
|
+
/***/
|
|
164
|
+
(function(i, a, n) {
|
|
165
|
+
function e(r, t) {
|
|
166
|
+
var p = t.renderedPosition, u = t.cy, s = t.renderedDimensions, o = u.container().getBoundingClientRect(), d = s(r), c = p(r);
|
|
167
|
+
return {
|
|
168
|
+
top: c.y + o.top,
|
|
169
|
+
left: c.x + o.left,
|
|
170
|
+
right: c.x + d.w + o.left,
|
|
171
|
+
bottom: c.y + d.h + o.top,
|
|
172
|
+
width: d.w,
|
|
173
|
+
height: d.h
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
i.exports = { getBoundingBox: e };
|
|
177
|
+
}),
|
|
178
|
+
/* 6 */
|
|
179
|
+
/***/
|
|
180
|
+
(function(i, a, n) {
|
|
181
|
+
function e(r, t) {
|
|
182
|
+
var p = null;
|
|
183
|
+
if (typeof t == "function")
|
|
184
|
+
p = t(r);
|
|
185
|
+
else {
|
|
186
|
+
if (t instanceof HTMLElement)
|
|
187
|
+
return t;
|
|
188
|
+
throw new Error("Can not create popper from 'target' with unknown type");
|
|
189
|
+
}
|
|
190
|
+
if (p === null)
|
|
191
|
+
throw new Error("No 'target' specified to create popper");
|
|
192
|
+
return p;
|
|
193
|
+
}
|
|
194
|
+
i.exports = { getContent: e };
|
|
195
|
+
}),
|
|
196
|
+
/* 7 */
|
|
197
|
+
/***/
|
|
198
|
+
(function(i, a, n) {
|
|
199
|
+
var e = n(4), r = n(3), t = function(u) {
|
|
200
|
+
if (typeof u != "function")
|
|
201
|
+
throw new Error("Provide 'popperFactory' before registering the module");
|
|
202
|
+
return function(o) {
|
|
203
|
+
o && (o("core", "popperFactory", u), o("collection", "popperFactory", u), o("core", "popper", e.popper), o("collection", "popper", r.popper), o("core", "popperRef", e.popperRef), o("collection", "popperRef", r.popperRef));
|
|
204
|
+
};
|
|
205
|
+
};
|
|
206
|
+
i.exports = t;
|
|
207
|
+
})
|
|
208
|
+
/******/
|
|
209
|
+
])
|
|
210
|
+
);
|
|
211
|
+
});
|
|
212
|
+
})(y), y.exports);
|
|
213
|
+
}
|
|
18
214
|
export {
|
|
19
|
-
|
|
215
|
+
D as __require
|
|
20
216
|
};
|
|
21
217
|
//# sourceMappingURL=visualization.es101.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visualization.es101.js","sources":["../src/components/Heatmap/HeatmapSelectionPointers.tsx"],"sourcesContent":["import { SELECTION_COLOR } from \"./heatmapSelection\";\n\n/** How far a pointer reaches from the grid, and half its width. */\nconst POINTER_LENGTH = 6;\nconst POINTER_HALF_WIDTH = 4;\n\ninterface HeatmapSelectionPointersProps {\n axis: \"column\" | \"row\";\n /** The columns or rows holding the selection - see selectionMarks. */\n marked: Set<number>;\n /** The axis's scale, from a column or row index to its place along the grid. */\n scale: (value: number) => number;\n}\n\n/**\n * A pointer at the tick of each column or row holding the selection, pointing up at a column from\n * below the grid and right at a row from its left. Drawn in the axis's coordinates, so it scrolls\n * and exports with the axis.\n */\nconst HeatmapSelectionPointers = ({ axis, marked, scale }: HeatmapSelectionPointersProps) => (\n <g fill={SELECTION_COLOR} pointerEvents=\"none\">\n {[...marked].map((index) => {\n const at = scale(index + 0.5);\n return (\n <path\n key={index}\n d={\n axis === \"column\"\n ? `M${at},1 l${POINTER_HALF_WIDTH},${POINTER_LENGTH} h${-2 * POINTER_HALF_WIDTH} z`\n : `M-1,${at} l${-POINTER_LENGTH},${-POINTER_HALF_WIDTH} v${2 * POINTER_HALF_WIDTH} z`\n }\n />\n );\n })}\n </g>\n);\n\nexport default HeatmapSelectionPointers;\n"],"names":["POINTER_LENGTH","POINTER_HALF_WIDTH","HeatmapSelectionPointers","t0","$","_c","axis","marked","scale","t1","t2","SELECTION_COLOR","map","index","at","jsx"],"mappings":";;;AAGA,MAAMA,IAAiB,GACjBC,IAAqB,GAerBC,IAA2BC,CAAAA,MAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA,GAAC;AAAA,IAAAC,MAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAAC,OAAAA;AAAAA,EAAAA,IAAAL;AAAsD,MAAAM;AAAA,EAAAL,SAAAG,KAEnFE,IAAA,CAAA,GAAIF,CAAM,GAACH,OAAAG,GAAAH,OAAAK,KAAAA,IAAAL,EAAA,CAAA;AAAA,MAAAM;AAAA,SAAAN,EAAA,CAAA,MAAAE,KAAAF,SAAAI,KAAAJ,EAAA,CAAA,MAAAK,KADdC,6BAASC,MAAAA,GAA+B,eAAA,QACrCF,UAAAA,EAAWG,IAAKC,CAAAA,MAAA;AACf,UAAAC,IAAWN,EAAMK,IAAQ,GAAG;AAAE,WAE5B,gBAAAE,YAGI,GAAAT,MAAS,WAAT,IACQQ,CAAE,OAAOb,CAAkB,IAAID,CAAc,KAAK,KAAKC,CAAkB,OADjF,OAEWa,CAAE,KAAK,CAACd,CAAc,IAAI,CAACC,CAAkB,KAAK,IAAIA,CAAkB,KAAA,GAJhFY,CAIoF;AAAA,EAEzF,CAEL,EAAA,CACH,GAAIT,OAAAE,GAAAF,OAAAI,GAAAJ,OAAAK,GAAAL,OAAAM,KAAAA,IAAAN,EAAA,CAAA,GAdJM;AAcI;"}
|
|
1
|
+
{"version":3,"file":"visualization.es101.js","sources":["../../../node_modules/.pnpm/cytoscape-popper@4.0.1_cytoscape@3.33.1/node_modules/cytoscape-popper/cytoscape-popper.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cytoscapePopper\"] = factory();\n\telse\n\t\troot[\"cytoscapePopper\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 7);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _require = __webpack_require__(5),\n getBoundingBox = _require.getBoundingBox;\n\n// Create a popper virtual element (aka popper v1 reference object)\n// https://popper.js.org/docs/v2/virtual-elements/\n\n\nfunction getRef(target, opts) {\n\n //Define popper reference object and cy reference object\n var refObject = {\n getBoundingClientRect: function getBoundingClientRect() {\n return getBoundingBox(target, opts);\n }\n };\n\n return refObject;\n}\n\nmodule.exports = { getRef: getRef };\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Simple, internal Object.assign() polyfill for options objects etc.\n\nmodule.exports = Object.assign != null ? Object.assign.bind(Object) : function (tgt) {\n for (var _len = arguments.length, srcs = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n srcs[_key - 1] = arguments[_key];\n }\n\n srcs.forEach(function (src) {\n if (src !== null && src !== undefined) {\n Object.keys(src).forEach(function (k) {\n return tgt[k] = src[k];\n });\n }\n });\n\n return tgt;\n};\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _require = __webpack_require__(0),\n getRef = _require.getRef;\n\nvar _require2 = __webpack_require__(6),\n getContent = _require2.getContent;\n\n// Create a new popper object for a core or element target\n\n\nfunction getPopper(target, opts) {\n var refObject = getRef(target, opts);\n var content = getContent(target, opts.content);\n\n return target.popperFactory(refObject, content, opts.popper);\n}\n\nmodule.exports = { getPopper: getPopper };\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar assign = __webpack_require__(1);\n\nvar _require = __webpack_require__(2),\n getPopper = _require.getPopper;\n\nvar _require2 = __webpack_require__(0),\n getRef = _require2.getRef;\n\nfunction popper(opts) {\n checkForWarning(this);\n\n return getPopper(this[0], createOptionsObject(this[0], opts));\n}\n\nfunction popperRef(opts) {\n checkForWarning(this);\n\n return getRef(this[0], createOptionsObject(this[0], opts));\n}\n\nfunction createOptionsObject(target, opts) {\n var renderedDimensions = function renderedDimensions(el) {\n return el.isNode() ? { w: el.renderedWidth(), h: el.renderedHeight() } : { w: 3, h: 3 };\n };\n var renderedPosition = function renderedPosition(el) {\n return el.isNode() ? getRenderedCenter(el, renderedDimensions) : getRenderedMidpoint(el);\n };\n var popper = {};\n var cy = target.cy();\n\n var defaults = { renderedDimensions: renderedDimensions, renderedPosition: renderedPosition, popper: popper, cy: cy };\n\n return assign({}, defaults, opts);\n}\n\n//Get the rendered center\nfunction getRenderedCenter(target, renderedDimensions) {\n var pos = target.renderedPosition();\n var dimensions = renderedDimensions(target);\n var offsetX = dimensions.w / 2;\n var offsetY = dimensions.h / 2;\n\n return {\n x: pos.x - offsetX,\n y: pos.y - offsetY\n };\n}\n\n//Get the rendered position of the midpoint\nfunction getRenderedMidpoint(target) {\n var p = target.midpoint();\n var pan = target.cy().pan();\n var zoom = target.cy().zoom();\n\n return {\n x: p.x * zoom + pan.x,\n y: p.y * zoom + pan.y\n };\n}\n\n//Warn user about misuse of the plugin\nfunction checkForWarning(elements) {\n /* eslint-disable no-console */\n\n //Popper.js Should only be used on 1 element\n if (elements.length > 1) {\n console.warn(\"Popper.js Extension should only be used on one element.\");\n console.warn(\"Ignoring all subsequent elements\");\n }\n\n /* eslint-enable */\n}\n\nmodule.exports = { popper: popper, popperRef: popperRef };\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar assign = __webpack_require__(1);\n\nvar _require = __webpack_require__(2),\n getPopper = _require.getPopper;\n\nvar _require2 = __webpack_require__(0),\n getRef = _require2.getRef;\n\nfunction popper(opts) {\n return getPopper(this, createOptionsObject(this, opts));\n}\n\nfunction popperRef(opts) {\n return getRef(this, createOptionsObject(this, opts));\n}\n\n//Create a options object with required default values\nfunction createOptionsObject(target, opts) {\n var defaults = {\n boundingBox: {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n w: 3,\n h: 3\n },\n renderedDimensions: function renderedDimensions() {\n return { w: 3, h: 3 };\n },\n renderedPosition: function renderedPosition() {\n return { x: 0, y: 0 };\n },\n popper: {},\n cy: target\n };\n\n return assign({}, defaults, opts);\n}\n\nmodule.exports = { popper: popper, popperRef: popperRef };\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction getBoundingBox(target, opts) {\n var renderedPosition = opts.renderedPosition,\n cy = opts.cy,\n renderedDimensions = opts.renderedDimensions;\n\n var offset = cy.container().getBoundingClientRect();\n var dims = renderedDimensions(target);\n var pos = renderedPosition(target);\n\n return {\n top: pos.y + offset.top,\n left: pos.x + offset.left,\n right: pos.x + dims.w + offset.left,\n bottom: pos.y + dims.h + offset.top,\n width: dims.w,\n height: dims.h\n };\n}\n\nmodule.exports = { getBoundingBox: getBoundingBox };\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction getContent(target, content) {\n var contentObject = null;\n\n if (typeof content === \"function\") {\n //Execute function if user opted for a dyanamic target\n contentObject = content(target);\n } else if (content instanceof HTMLElement) {\n //Target option is an HTML element\n return content;\n } else {\n throw new Error(\"Can not create popper from 'target' with unknown type\");\n }\n\n // Check validity of parsed target\n if (contentObject === null) {\n throw new Error(\"No 'target' specified to create popper\");\n } else {\n return contentObject;\n }\n}\n\nmodule.exports = { getContent: getContent };\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar coreImpl = __webpack_require__(4);\nvar collectionImpl = __webpack_require__(3);\n\n// registers the extension on a cytoscape lib ref\nvar registerFactory = function registerFactory(popperFactory) {\n if (typeof popperFactory !== \"function\") {\n throw new Error('Provide \\'popperFactory\\' before registering the module');\n }\n\n return function register(cytoscape) {\n if (!cytoscape) {\n return;\n } // can't register if cytoscape unspecified\n\n // register with cytoscape.js\n cytoscape('core', 'popperFactory', popperFactory); // Cytoscape Core factory\n cytoscape('collection', 'popperFactory', popperFactory); //Cytoscape Collections factory\n cytoscape('core', 'popper', coreImpl.popper); //Cytoscape Core\n cytoscape('collection', 'popper', collectionImpl.popper); //Cytoscape Collections\n cytoscape('core', 'popperRef', coreImpl.popperRef); //Cytoscape Core for References\n cytoscape('collection', 'popperRef', collectionImpl.popperRef); //Cytoscape Collections for References\n };\n};\n\nmodule.exports = registerFactory;\n\n/***/ })\n/******/ ]);\n});"],"names":["root","factory","module","this","modules","installedModules","__webpack_require__","moduleId","value","exports","name","getter","object","property","_require","getBoundingBox","getRef","target","opts","refObject","tgt","_len","srcs","_key","src","k","_require2","getContent","getPopper","content","assign","popper","checkForWarning","createOptionsObject","popperRef","renderedDimensions","el","renderedPosition","getRenderedCenter","getRenderedMidpoint","cy","defaults","pos","dimensions","offsetX","offsetY","p","pan","zoom","elements","offset","dims","contentObject","coreImpl","collectionImpl","registerFactory","popperFactory","cytoscape"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,98 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
import { useRef as Y, useEffect as G, useCallback as p } from "react";
|
|
3
|
-
import { drawHeatmapOverview as H } from "./visualization.es100.js";
|
|
4
|
-
import { SELECTION_COLOR as J } from "./visualization.es99.js";
|
|
5
|
-
const f = (u, e, c) => Math.min(Math.max(u, e), c), j = 5, Q = 2, _ = ({
|
|
6
|
-
canvasCellParams: u,
|
|
7
|
-
xMax: e,
|
|
8
|
-
yMax: c,
|
|
9
|
-
viewportWidth: m,
|
|
10
|
-
viewportHeight: d,
|
|
11
|
-
scrollLeft: R,
|
|
12
|
-
scrollTop: P,
|
|
13
|
-
width: i,
|
|
14
|
-
height: a,
|
|
15
|
-
onNavigate: b,
|
|
16
|
-
onCanvasClick: g,
|
|
17
|
-
onReady: M,
|
|
18
|
-
paused: x = !1
|
|
19
|
-
}) => {
|
|
20
|
-
const D = Y(null), r = e > 0 ? i / e : 0, o = c > 0 ? a / c : 0, I = Y(M);
|
|
21
|
-
I.current = M, G(() => {
|
|
22
|
-
const t = D.current;
|
|
23
|
-
if (!t || x || r <= 0 || o <= 0) return;
|
|
24
|
-
const n = requestAnimationFrame(() => {
|
|
25
|
-
const s = t.getContext("2d");
|
|
26
|
-
s && (H(s, u), I.current?.());
|
|
27
|
-
});
|
|
28
|
-
return () => cancelAnimationFrame(n);
|
|
29
|
-
}, [u, e, c, r, o, x]);
|
|
30
|
-
const T = p((t, n) => {
|
|
31
|
-
b(f(t - m / 2, 0, Math.max(0, e - m)), f(n - d / 2, 0, Math.max(0, c - d)));
|
|
32
|
-
}, [b, m, d, e, c]), F = p((t) => {
|
|
33
|
-
if (g) {
|
|
34
|
-
g();
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
if (r <= 0 || o <= 0) return;
|
|
38
|
-
const n = t.currentTarget.getBoundingClientRect();
|
|
39
|
-
T((t.clientX - n.left) / r, (t.clientY - n.top) / o);
|
|
40
|
-
}, [g, T, r, o]), K = p((t) => {
|
|
41
|
-
t.stopPropagation(), t.currentTarget.setPointerCapture(t.pointerId);
|
|
42
|
-
}, []), U = p((t) => {
|
|
43
|
-
r <= 0 || o <= 0 || !t.currentTarget.hasPointerCapture(t.pointerId) || b(f(R + t.movementX / r, 0, Math.max(0, e - m)), f(P + t.movementY / o, 0, Math.max(0, c - d)));
|
|
44
|
-
}, [R, P, r, o, e, c, m, d, b]), $ = p((t) => {
|
|
45
|
-
t.currentTarget.releasePointerCapture(t.pointerId);
|
|
46
|
-
}, []), {
|
|
47
|
-
columns: h,
|
|
48
|
-
rows: E
|
|
49
|
-
} = u.selectionMarks, q = u.data.length, {
|
|
50
|
-
numRows: A
|
|
51
|
-
} = u, C = (t, n, s) => {
|
|
52
|
-
const L = t * s / n, k = s / n, z = Math.max(0, Q - k) / 2;
|
|
53
|
-
return [L - z, k + 2 * z];
|
|
54
|
-
}, O = f(R * r, 0, i), S = f(P * o, 0, a), y = Math.max(0, Math.min(m * r, i - O)), B = Math.max(0, Math.min(d * o, a - S));
|
|
55
|
-
return /* @__PURE__ */ X("div", { style: {
|
|
56
|
-
position: "relative",
|
|
57
|
-
width: i,
|
|
58
|
-
height: a
|
|
59
|
-
}, children: [
|
|
60
|
-
/* @__PURE__ */ l("canvas", { ref: D, width: i * (window.devicePixelRatio || 1), height: a * (window.devicePixelRatio || 1), style: {
|
|
61
|
-
width: i,
|
|
62
|
-
height: a,
|
|
63
|
-
display: "block",
|
|
64
|
-
cursor: "pointer",
|
|
65
|
-
border: "1px solid #d5d5d5",
|
|
66
|
-
boxSizing: "border-box"
|
|
67
|
-
}, onPointerDown: F }),
|
|
68
|
-
/* @__PURE__ */ l("div", { onPointerDown: K, onPointerMove: U, onPointerUp: $, style: {
|
|
69
|
-
position: "absolute",
|
|
70
|
-
left: O,
|
|
71
|
-
top: S,
|
|
72
|
-
width: y,
|
|
73
|
-
height: B,
|
|
74
|
-
border: "2px solid #0d0f98",
|
|
75
|
-
backgroundColor: "rgba(13, 15, 152, 0.15)",
|
|
76
|
-
cursor: "grab",
|
|
77
|
-
boxSizing: "border-box"
|
|
78
|
-
} }),
|
|
79
|
-
(h.size > 0 || E.size > 0) && /* @__PURE__ */ l("svg", { width: i, height: a, style: {
|
|
80
|
-
position: "absolute",
|
|
81
|
-
inset: 0,
|
|
82
|
-
pointerEvents: "none"
|
|
83
|
-
}, "aria-hidden": !0, children: /* @__PURE__ */ X("g", { fill: J, children: [
|
|
84
|
-
[...h].map((t) => {
|
|
85
|
-
const [n, s] = C(t, q, i);
|
|
86
|
-
return /* @__PURE__ */ l("rect", { x: n, y: 0, width: s, height: j }, `c${t}`);
|
|
87
|
-
}),
|
|
88
|
-
[...E].map((t) => {
|
|
89
|
-
const [n, s] = C(A - 1 - t, A, a);
|
|
90
|
-
return /* @__PURE__ */ l("rect", { x: 0, y: n, width: j, height: s }, `r${t}`);
|
|
91
|
-
})
|
|
92
|
-
] }) })
|
|
93
|
-
] });
|
|
94
|
-
};
|
|
1
|
+
var e = { exports: {} };
|
|
95
2
|
export {
|
|
96
|
-
|
|
3
|
+
e as __module
|
|
97
4
|
};
|
|
98
5
|
//# sourceMappingURL=visualization.es102.js.map
|