@weng-lab/visualization 2.4.0-beta.6 → 2.4.0-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1286) hide show
  1. package/dist/src/components/Heatmap/Heatmap.d.ts +1 -1
  2. package/dist/src/components/Heatmap/Heatmap.d.ts.map +1 -1
  3. package/dist/src/components/Heatmap/HeatmapCells.d.ts +5 -0
  4. package/dist/src/components/Heatmap/HeatmapCells.d.ts.map +1 -1
  5. package/dist/src/components/Heatmap/HeatmapStaticSvg.d.ts +33 -0
  6. package/dist/src/components/Heatmap/HeatmapStaticSvg.d.ts.map +1 -0
  7. package/dist/src/components/Heatmap/heatmapAxisProps.d.ts +37 -0
  8. package/dist/src/components/Heatmap/heatmapAxisProps.d.ts.map +1 -0
  9. package/dist/src/components/Heatmap/heatmapCellAppearance.d.ts +1 -1
  10. package/dist/src/components/Heatmap/heatmapCellAppearance.d.ts.map +1 -1
  11. package/dist/src/components/Heatmap/heatmapLayout.d.ts +71 -0
  12. package/dist/src/components/Heatmap/heatmapLayout.d.ts.map +1 -0
  13. package/dist/src/components/Heatmap/hooks/useHeatmapCanvasGrid.d.ts +31 -0
  14. package/dist/src/components/Heatmap/hooks/useHeatmapCanvasGrid.d.ts.map +1 -0
  15. package/dist/src/components/Heatmap/hooks/useScrollToSelection.d.ts +12 -0
  16. package/dist/src/components/Heatmap/hooks/useScrollToSelection.d.ts.map +1 -0
  17. package/dist/src/components/Heatmap/{HeatmapMiniMap.d.ts → scrollable/HeatmapMiniMap.d.ts} +3 -3
  18. package/dist/src/components/Heatmap/scrollable/HeatmapMiniMap.d.ts.map +1 -0
  19. package/dist/src/components/Heatmap/scrollable/HeatmapMiniMapPopup.d.ts +11 -0
  20. package/dist/src/components/Heatmap/scrollable/HeatmapMiniMapPopup.d.ts.map +1 -0
  21. package/dist/src/components/Heatmap/scrollable/HeatmapScrollableGrid.d.ts +28 -0
  22. package/dist/src/components/Heatmap/scrollable/HeatmapScrollableGrid.d.ts.map +1 -0
  23. package/dist/src/components/Heatmap/scrollable/heatmapExport.d.ts +30 -0
  24. package/dist/src/components/Heatmap/scrollable/heatmapExport.d.ts.map +1 -0
  25. package/dist/src/components/Heatmap/types.d.ts +4 -0
  26. package/dist/src/components/Heatmap/types.d.ts.map +1 -1
  27. package/dist/src/components/ScatterPlot/PlotZoom.d.ts +0 -12
  28. package/dist/src/components/ScatterPlot/PlotZoom.d.ts.map +1 -1
  29. package/dist/src/components/ScatterPlot/hooks/useCrosshair.d.ts.map +1 -1
  30. package/dist/src/components/ScatterPlot/hooks/useHoverTooltip.d.ts.map +1 -1
  31. package/dist/visualization.es10.js +11 -11
  32. package/dist/visualization.es100.js +102 -25
  33. package/dist/visualization.es100.js.map +1 -1
  34. package/dist/visualization.es101.js +129 -70
  35. package/dist/visualization.es101.js.map +1 -1
  36. package/dist/visualization.es102.js +83 -32
  37. package/dist/visualization.es102.js.map +1 -1
  38. package/dist/visualization.es103.js +37 -44
  39. package/dist/visualization.es103.js.map +1 -1
  40. package/dist/visualization.es104.js +46 -75
  41. package/dist/visualization.es104.js.map +1 -1
  42. package/dist/visualization.es105.js +56 -23
  43. package/dist/visualization.es105.js.map +1 -1
  44. package/dist/visualization.es106.js +31 -84
  45. package/dist/visualization.es106.js.map +1 -1
  46. package/dist/visualization.es107.js +18 -36
  47. package/dist/visualization.es107.js.map +1 -1
  48. package/dist/visualization.es108.js +14 -64
  49. package/dist/visualization.es108.js.map +1 -1
  50. package/dist/visualization.es109.js +26 -61
  51. package/dist/visualization.es109.js.map +1 -1
  52. package/dist/visualization.es11.js +10 -10
  53. package/dist/visualization.es112.js +2 -2
  54. package/dist/visualization.es116.js +9 -9
  55. package/dist/visualization.es117.js +2 -2
  56. package/dist/visualization.es12.js +2 -2
  57. package/dist/visualization.es120.js +30 -56
  58. package/dist/visualization.es120.js.map +1 -1
  59. package/dist/visualization.es121.js +45 -32
  60. package/dist/visualization.es121.js.map +1 -1
  61. package/dist/visualization.es122.js +76 -18
  62. package/dist/visualization.es122.js.map +1 -1
  63. package/dist/visualization.es123.js +25 -14
  64. package/dist/visualization.es123.js.map +1 -1
  65. package/dist/visualization.es124.js +84 -25
  66. package/dist/visualization.es124.js.map +1 -1
  67. package/dist/visualization.es125.js +35 -63
  68. package/dist/visualization.es125.js.map +1 -1
  69. package/dist/visualization.es126.js +13 -7
  70. package/dist/visualization.es126.js.map +1 -1
  71. package/dist/visualization.es127.js +74 -5
  72. package/dist/visualization.es127.js.map +1 -1
  73. package/dist/visualization.es128.js +31 -41
  74. package/dist/visualization.es128.js.map +1 -1
  75. package/dist/visualization.es129.js +11 -18
  76. package/dist/visualization.es129.js.map +1 -1
  77. package/dist/visualization.es13.js +7 -7
  78. package/dist/visualization.es130.js +17 -27
  79. package/dist/visualization.es130.js.map +1 -1
  80. package/dist/visualization.es131.js +62 -59
  81. package/dist/visualization.es131.js.map +1 -1
  82. package/dist/visualization.es132.js +7 -39
  83. package/dist/visualization.es132.js.map +1 -1
  84. package/dist/visualization.es133.js +5 -37
  85. package/dist/visualization.es133.js.map +1 -1
  86. package/dist/visualization.es134.js +42 -83
  87. package/dist/visualization.es134.js.map +1 -1
  88. package/dist/visualization.es135.js +30 -28
  89. package/dist/visualization.es135.js.map +1 -1
  90. package/dist/visualization.es136.js +7 -7
  91. package/dist/visualization.es136.js.map +1 -1
  92. package/dist/visualization.es137.js +6 -4
  93. package/dist/visualization.es137.js.map +1 -1
  94. package/dist/visualization.es138.js +3 -3
  95. package/dist/visualization.es138.js.map +1 -1
  96. package/dist/visualization.es139.js +16 -30
  97. package/dist/visualization.es139.js.map +1 -1
  98. package/dist/visualization.es140.js +16 -7
  99. package/dist/visualization.es140.js.map +1 -1
  100. package/dist/visualization.es141.js +32 -6
  101. package/dist/visualization.es141.js.map +1 -1
  102. package/dist/visualization.es142.js +16 -3
  103. package/dist/visualization.es142.js.map +1 -1
  104. package/dist/visualization.es143.js +10 -16
  105. package/dist/visualization.es143.js.map +1 -1
  106. package/dist/visualization.es144.js +6 -16
  107. package/dist/visualization.es144.js.map +1 -1
  108. package/dist/visualization.es145.js +6 -32
  109. package/dist/visualization.es145.js.map +1 -1
  110. package/dist/visualization.es146.js +8 -14
  111. package/dist/visualization.es146.js.map +1 -1
  112. package/dist/visualization.es147.js +4 -10
  113. package/dist/visualization.es147.js.map +1 -1
  114. package/dist/visualization.es148.js +4 -6
  115. package/dist/visualization.es148.js.map +1 -1
  116. package/dist/visualization.es149.js +8 -6
  117. package/dist/visualization.es149.js.map +1 -1
  118. package/dist/visualization.es15.js +8 -8
  119. package/dist/visualization.es150.js +4 -10
  120. package/dist/visualization.es150.js.map +1 -1
  121. package/dist/visualization.es151.js +12 -4
  122. package/dist/visualization.es151.js.map +1 -1
  123. package/dist/visualization.es152.js +26 -4
  124. package/dist/visualization.es152.js.map +1 -1
  125. package/dist/visualization.es153.js +60 -8
  126. package/dist/visualization.es153.js.map +1 -1
  127. package/dist/visualization.es154.js +38 -4
  128. package/dist/visualization.es154.js.map +1 -1
  129. package/dist/visualization.es155.js +35 -11
  130. package/dist/visualization.es155.js.map +1 -1
  131. package/dist/visualization.es156.js +82 -25
  132. package/dist/visualization.es156.js.map +1 -1
  133. package/dist/visualization.es157.js +27 -70
  134. package/dist/visualization.es157.js.map +1 -1
  135. package/dist/visualization.es158.js +6 -15
  136. package/dist/visualization.es158.js.map +1 -1
  137. package/dist/visualization.es159.js +4 -11
  138. package/dist/visualization.es159.js.map +1 -1
  139. package/dist/visualization.es160.js +4 -5
  140. package/dist/visualization.es160.js.map +1 -1
  141. package/dist/visualization.es161.js +20 -2
  142. package/dist/visualization.es161.js.map +1 -1
  143. package/dist/visualization.es162.js +27 -1605
  144. package/dist/visualization.es162.js.map +1 -1
  145. package/dist/visualization.es163.js +2 -75
  146. package/dist/visualization.es163.js.map +1 -1
  147. package/dist/visualization.es164.js +1606 -2
  148. package/dist/visualization.es164.js.map +1 -1
  149. package/dist/visualization.es165.js +84 -482
  150. package/dist/visualization.es165.js.map +1 -1
  151. package/dist/visualization.es166.js +90 -2
  152. package/dist/visualization.es166.js.map +1 -1
  153. package/dist/visualization.es167.js +12 -18
  154. package/dist/visualization.es167.js.map +1 -1
  155. package/dist/visualization.es168.js +5 -3
  156. package/dist/visualization.es168.js.map +1 -1
  157. package/dist/visualization.es169.js +14 -35
  158. package/dist/visualization.es169.js.map +1 -1
  159. package/dist/visualization.es170.js +7 -85
  160. package/dist/visualization.es170.js.map +1 -1
  161. package/dist/visualization.es171.js +13 -89
  162. package/dist/visualization.es171.js.map +1 -1
  163. package/dist/visualization.es172.js +18 -12
  164. package/dist/visualization.es172.js.map +1 -1
  165. package/dist/visualization.es173.js +3 -5
  166. package/dist/visualization.es173.js.map +1 -1
  167. package/dist/visualization.es174.js +35 -14
  168. package/dist/visualization.es174.js.map +1 -1
  169. package/dist/visualization.es175.js +8 -7
  170. package/dist/visualization.es175.js.map +1 -1
  171. package/dist/visualization.es176.js +15 -13
  172. package/dist/visualization.es176.js.map +1 -1
  173. package/dist/visualization.es177.js +11 -8
  174. package/dist/visualization.es177.js.map +1 -1
  175. package/dist/visualization.es178.js +5 -15
  176. package/dist/visualization.es178.js.map +1 -1
  177. package/dist/visualization.es179.js +12 -11
  178. package/dist/visualization.es179.js.map +1 -1
  179. package/dist/visualization.es18.js +1 -1
  180. package/dist/visualization.es180.js +3 -5
  181. package/dist/visualization.es180.js.map +1 -1
  182. package/dist/visualization.es181.js +2 -12
  183. package/dist/visualization.es181.js.map +1 -1
  184. package/dist/visualization.es182.js +11 -4
  185. package/dist/visualization.es182.js.map +1 -1
  186. package/dist/visualization.es183.js +31 -2
  187. package/dist/visualization.es183.js.map +1 -1
  188. package/dist/visualization.es184.js +42 -10
  189. package/dist/visualization.es184.js.map +1 -1
  190. package/dist/visualization.es185.js +48 -29
  191. package/dist/visualization.es185.js.map +1 -1
  192. package/dist/visualization.es186.js +3 -43
  193. package/dist/visualization.es186.js.map +1 -1
  194. package/dist/visualization.es187.js +3 -50
  195. package/dist/visualization.es187.js.map +1 -1
  196. package/dist/visualization.es188.js +6 -3
  197. package/dist/visualization.es188.js.map +1 -1
  198. package/dist/visualization.es189.js +5 -3
  199. package/dist/visualization.es189.js.map +1 -1
  200. package/dist/visualization.es190.js +10 -5
  201. package/dist/visualization.es190.js.map +1 -1
  202. package/dist/visualization.es191.js +3 -4
  203. package/dist/visualization.es191.js.map +1 -1
  204. package/dist/visualization.es192.js +16 -9
  205. package/dist/visualization.es192.js.map +1 -1
  206. package/dist/visualization.es193.js +18 -3
  207. package/dist/visualization.es193.js.map +1 -1
  208. package/dist/visualization.es194.js +36 -17
  209. package/dist/visualization.es194.js.map +1 -1
  210. package/dist/visualization.es195.js +2 -19
  211. package/dist/visualization.es195.js.map +1 -1
  212. package/dist/visualization.es196.js +2 -37
  213. package/dist/visualization.es196.js.map +1 -1
  214. package/dist/visualization.es197.js +4 -2
  215. package/dist/visualization.es197.js.map +1 -1
  216. package/dist/visualization.es198.js +15 -2
  217. package/dist/visualization.es198.js.map +1 -1
  218. package/dist/visualization.es199.js +3 -4
  219. package/dist/visualization.es199.js.map +1 -1
  220. package/dist/visualization.es2.js +8 -8
  221. package/dist/visualization.es20.js +59 -39
  222. package/dist/visualization.es20.js.map +1 -1
  223. package/dist/visualization.es200.js +7 -15
  224. package/dist/visualization.es200.js.map +1 -1
  225. package/dist/visualization.es201.js +1 -1
  226. package/dist/visualization.es201.js.map +1 -1
  227. package/dist/visualization.es202.js +7 -7
  228. package/dist/visualization.es202.js.map +1 -1
  229. package/dist/visualization.es203.js +73 -3
  230. package/dist/visualization.es203.js.map +1 -1
  231. package/dist/visualization.es204.js +22 -6
  232. package/dist/visualization.es204.js.map +1 -1
  233. package/dist/visualization.es205.js +22 -3
  234. package/dist/visualization.es205.js.map +1 -1
  235. package/dist/visualization.es206.js +40 -17
  236. package/dist/visualization.es206.js.map +1 -1
  237. package/dist/visualization.es207.js +6 -8
  238. package/dist/visualization.es207.js.map +1 -1
  239. package/dist/visualization.es208.js +12 -6
  240. package/dist/visualization.es208.js.map +1 -1
  241. package/dist/visualization.es209.js +16 -6
  242. package/dist/visualization.es209.js.map +1 -1
  243. package/dist/visualization.es21.js +10 -35
  244. package/dist/visualization.es21.js.map +1 -1
  245. package/dist/visualization.es210.js +36 -9
  246. package/dist/visualization.es210.js.map +1 -1
  247. package/dist/visualization.es211.js +24 -6
  248. package/dist/visualization.es211.js.map +1 -1
  249. package/dist/visualization.es212.js +26 -5
  250. package/dist/visualization.es212.js.map +1 -1
  251. package/dist/visualization.es213.js +71 -5
  252. package/dist/visualization.es213.js.map +1 -1
  253. package/dist/visualization.es214.js +16 -14
  254. package/dist/visualization.es214.js.map +1 -1
  255. package/dist/visualization.es215.js +11 -5
  256. package/dist/visualization.es215.js.map +1 -1
  257. package/dist/visualization.es216.js +5 -4
  258. package/dist/visualization.es216.js.map +1 -1
  259. package/dist/visualization.es217.js +9 -6
  260. package/dist/visualization.es217.js.map +1 -1
  261. package/dist/visualization.es218.js +6 -6
  262. package/dist/visualization.es218.js.map +1 -1
  263. package/dist/visualization.es219.js +7 -9
  264. package/dist/visualization.es219.js.map +1 -1
  265. package/dist/visualization.es22.js +54 -7
  266. package/dist/visualization.es22.js.map +1 -1
  267. package/dist/visualization.es220.js +9 -3
  268. package/dist/visualization.es220.js.map +1 -1
  269. package/dist/visualization.es221.js +6 -5
  270. package/dist/visualization.es221.js.map +1 -1
  271. package/dist/visualization.es222.js +6 -33
  272. package/dist/visualization.es222.js.map +1 -1
  273. package/dist/visualization.es223.js +5 -15
  274. package/dist/visualization.es223.js.map +1 -1
  275. package/dist/visualization.es224.js +13 -6
  276. package/dist/visualization.es224.js.map +1 -1
  277. package/dist/visualization.es225.js +5 -11
  278. package/dist/visualization.es225.js.map +1 -1
  279. package/dist/visualization.es226.js +3 -32
  280. package/dist/visualization.es226.js.map +1 -1
  281. package/dist/visualization.es227.js +6 -114
  282. package/dist/visualization.es227.js.map +1 -1
  283. package/dist/visualization.es228.js +6 -72
  284. package/dist/visualization.es228.js.map +1 -1
  285. package/dist/visualization.es229.js +9 -22
  286. package/dist/visualization.es229.js.map +1 -1
  287. package/dist/visualization.es23.js +43 -7
  288. package/dist/visualization.es23.js.map +1 -1
  289. package/dist/visualization.es230.js +32 -22
  290. package/dist/visualization.es230.js.map +1 -1
  291. package/dist/visualization.es231.js +112 -38
  292. package/dist/visualization.es231.js.map +1 -1
  293. package/dist/visualization.es232.js +3 -7
  294. package/dist/visualization.es232.js.map +1 -1
  295. package/dist/visualization.es233.js +5 -12
  296. package/dist/visualization.es233.js.map +1 -1
  297. package/dist/visualization.es234.js +32 -16
  298. package/dist/visualization.es234.js.map +1 -1
  299. package/dist/visualization.es235.js +15 -36
  300. package/dist/visualization.es235.js.map +1 -1
  301. package/dist/visualization.es236.js +7 -24
  302. package/dist/visualization.es236.js.map +1 -1
  303. package/dist/visualization.es237.js +10 -26
  304. package/dist/visualization.es237.js.map +1 -1
  305. package/dist/visualization.es238.js +3 -123
  306. package/dist/visualization.es238.js.map +1 -1
  307. package/dist/visualization.es239.js +75 -2
  308. package/dist/visualization.es239.js.map +1 -1
  309. package/dist/visualization.es24.js +33 -67
  310. package/dist/visualization.es24.js.map +1 -1
  311. package/dist/visualization.es240.js +2 -35
  312. package/dist/visualization.es240.js.map +1 -1
  313. package/dist/visualization.es241.js +483 -2
  314. package/dist/visualization.es241.js.map +1 -1
  315. package/dist/visualization.es242.js +2 -30
  316. package/dist/visualization.es242.js.map +1 -1
  317. package/dist/visualization.es243.js +63 -20
  318. package/dist/visualization.es243.js.map +1 -1
  319. package/dist/visualization.es244.js +60 -3
  320. package/dist/visualization.es244.js.map +1 -1
  321. package/dist/visualization.es245.js +123 -3
  322. package/dist/visualization.es245.js.map +1 -1
  323. package/dist/visualization.es246.js +115 -3
  324. package/dist/visualization.es246.js.map +1 -1
  325. package/dist/visualization.es247.js +34 -3
  326. package/dist/visualization.es247.js.map +1 -1
  327. package/dist/visualization.es248.js +2 -4
  328. package/dist/visualization.es248.js.map +1 -1
  329. package/dist/visualization.es249.js +2 -4
  330. package/dist/visualization.es249.js.map +1 -1
  331. package/dist/visualization.es25.js +8 -44
  332. package/dist/visualization.es25.js.map +1 -1
  333. package/dist/visualization.es250.js +3 -3
  334. package/dist/visualization.es250.js.map +1 -1
  335. package/dist/visualization.es251.js +3 -7
  336. package/dist/visualization.es251.js.map +1 -1
  337. package/dist/visualization.es252.js +3 -48
  338. package/dist/visualization.es252.js.map +1 -1
  339. package/dist/visualization.es253.js +3 -3
  340. package/dist/visualization.es253.js.map +1 -1
  341. package/dist/visualization.es254.js +3 -6
  342. package/dist/visualization.es254.js.map +1 -1
  343. package/dist/visualization.es255.js +3 -4
  344. package/dist/visualization.es255.js.map +1 -1
  345. package/dist/visualization.es256.js +3 -3
  346. package/dist/visualization.es256.js.map +1 -1
  347. package/dist/visualization.es257.js +6 -5
  348. package/dist/visualization.es257.js.map +1 -1
  349. package/dist/visualization.es258.js +48 -4
  350. package/dist/visualization.es258.js.map +1 -1
  351. package/dist/visualization.es259.js +3 -53
  352. package/dist/visualization.es259.js.map +1 -1
  353. package/dist/visualization.es26.js +7 -11
  354. package/dist/visualization.es26.js.map +1 -1
  355. package/dist/visualization.es260.js +5 -30
  356. package/dist/visualization.es260.js.map +1 -1
  357. package/dist/visualization.es261.js +4 -33
  358. package/dist/visualization.es261.js.map +1 -1
  359. package/dist/visualization.es262.js +3 -12
  360. package/dist/visualization.es262.js.map +1 -1
  361. package/dist/visualization.es263.js +6 -9
  362. package/dist/visualization.es263.js.map +1 -1
  363. package/dist/visualization.es264.js +4 -9
  364. package/dist/visualization.es264.js.map +1 -1
  365. package/dist/visualization.es265.js +29 -6
  366. package/dist/visualization.es265.js.map +1 -1
  367. package/dist/visualization.es266.js +20 -8
  368. package/dist/visualization.es266.js.map +1 -1
  369. package/dist/visualization.es267.js +23 -6
  370. package/dist/visualization.es267.js.map +1 -1
  371. package/dist/visualization.es268.js +52 -4
  372. package/dist/visualization.es268.js.map +1 -1
  373. package/dist/visualization.es269.js +8 -13
  374. package/dist/visualization.es269.js.map +1 -1
  375. package/dist/visualization.es27.js +67 -64
  376. package/dist/visualization.es27.js.map +1 -1
  377. package/dist/visualization.es270.js +9 -5
  378. package/dist/visualization.es270.js.map +1 -1
  379. package/dist/visualization.es271.js +6 -6
  380. package/dist/visualization.es271.js.map +1 -1
  381. package/dist/visualization.es272.js +8 -6
  382. package/dist/visualization.es272.js.map +1 -1
  383. package/dist/visualization.es273.js +6 -6
  384. package/dist/visualization.es273.js.map +1 -1
  385. package/dist/visualization.es274.js +5 -3
  386. package/dist/visualization.es274.js.map +1 -1
  387. package/dist/visualization.es275.js +14 -4
  388. package/dist/visualization.es275.js.map +1 -1
  389. package/dist/visualization.es276.js +4 -8
  390. package/dist/visualization.es276.js.map +1 -1
  391. package/dist/visualization.es277.js +7 -7
  392. package/dist/visualization.es277.js.map +1 -1
  393. package/dist/visualization.es278.js +6 -34
  394. package/dist/visualization.es278.js.map +1 -1
  395. package/dist/visualization.es279.js +6 -3
  396. package/dist/visualization.es279.js.map +1 -1
  397. package/dist/visualization.es28.js +44 -113
  398. package/dist/visualization.es28.js.map +1 -1
  399. package/dist/visualization.es280.js +3 -3
  400. package/dist/visualization.es280.js.map +1 -1
  401. package/dist/visualization.es281.js +4 -6
  402. package/dist/visualization.es281.js.map +1 -1
  403. package/dist/visualization.es282.js +9 -12
  404. package/dist/visualization.es282.js.map +1 -1
  405. package/dist/visualization.es283.js +3 -2
  406. package/dist/visualization.es283.js.map +1 -1
  407. package/dist/visualization.es284.js +11 -3
  408. package/dist/visualization.es284.js.map +1 -1
  409. package/dist/visualization.es285.js +36 -3
  410. package/dist/visualization.es285.js.map +1 -1
  411. package/dist/visualization.es286.js +259 -9
  412. package/dist/visualization.es286.js.map +1 -1
  413. package/dist/visualization.es287.js +56 -22
  414. package/dist/visualization.es287.js.map +1 -1
  415. package/dist/visualization.es288.js +5 -4
  416. package/dist/visualization.es288.js.map +1 -1
  417. package/dist/visualization.es289.js +5 -30
  418. package/dist/visualization.es289.js.map +1 -1
  419. package/dist/visualization.es29.js +11 -147
  420. package/dist/visualization.es29.js.map +1 -1
  421. package/dist/visualization.es290.js +138 -21
  422. package/dist/visualization.es290.js.map +1 -1
  423. package/dist/visualization.es291.js +5 -53
  424. package/dist/visualization.es291.js.map +1 -1
  425. package/dist/visualization.es292.js +22 -3
  426. package/dist/visualization.es292.js.map +1 -1
  427. package/dist/visualization.es293.js +37 -11
  428. package/dist/visualization.es293.js.map +1 -1
  429. package/dist/visualization.es294.js +33 -35
  430. package/dist/visualization.es294.js.map +1 -1
  431. package/dist/visualization.es295.js +14 -260
  432. package/dist/visualization.es295.js.map +1 -1
  433. package/dist/visualization.es296.js +18 -59
  434. package/dist/visualization.es296.js.map +1 -1
  435. package/dist/visualization.es297.js +9 -6
  436. package/dist/visualization.es297.js.map +1 -1
  437. package/dist/visualization.es298.js +109 -21
  438. package/dist/visualization.es298.js.map +1 -1
  439. package/dist/visualization.es299.js +12 -37
  440. package/dist/visualization.es299.js.map +1 -1
  441. package/dist/visualization.es3.js +12 -12
  442. package/dist/visualization.es30.js +53 -46
  443. package/dist/visualization.es30.js.map +1 -1
  444. package/dist/visualization.es300.js +136 -29
  445. package/dist/visualization.es300.js.map +1 -1
  446. package/dist/visualization.es301.js +6 -15
  447. package/dist/visualization.es301.js.map +1 -1
  448. package/dist/visualization.es302.js +71 -18
  449. package/dist/visualization.es302.js.map +1 -1
  450. package/dist/visualization.es303.js +35 -8
  451. package/dist/visualization.es303.js.map +1 -1
  452. package/dist/visualization.es304.js +20 -7
  453. package/dist/visualization.es304.js.map +1 -1
  454. package/dist/visualization.es305.js +3 -140
  455. package/dist/visualization.es305.js.map +1 -1
  456. package/dist/visualization.es306.js +24 -5
  457. package/dist/visualization.es306.js.map +1 -1
  458. package/dist/visualization.es307.js +30 -109
  459. package/dist/visualization.es307.js.map +1 -1
  460. package/dist/visualization.es308.js +2 -13
  461. package/dist/visualization.es308.js.map +1 -1
  462. package/dist/visualization.es309.js +2 -142
  463. package/dist/visualization.es309.js.map +1 -1
  464. package/dist/visualization.es31.js +146 -19
  465. package/dist/visualization.es31.js.map +1 -1
  466. package/dist/visualization.es310.js +5 -5
  467. package/dist/visualization.es310.js.map +1 -1
  468. package/dist/visualization.es311.js +15 -72
  469. package/dist/visualization.es311.js.map +1 -1
  470. package/dist/visualization.es312.js +33 -34
  471. package/dist/visualization.es312.js.map +1 -1
  472. package/dist/visualization.es313.js +26 -19
  473. package/dist/visualization.es313.js.map +1 -1
  474. package/dist/visualization.es314.js +10 -3
  475. package/dist/visualization.es314.js.map +1 -1
  476. package/dist/visualization.es315.js +6 -24
  477. package/dist/visualization.es315.js.map +1 -1
  478. package/dist/visualization.es316.js +13 -30
  479. package/dist/visualization.es316.js.map +1 -1
  480. package/dist/visualization.es317.js +12 -2
  481. package/dist/visualization.es317.js.map +1 -1
  482. package/dist/visualization.es318.js +2 -2
  483. package/dist/visualization.es318.js.map +1 -1
  484. package/dist/visualization.es319.js +3 -6
  485. package/dist/visualization.es319.js.map +1 -1
  486. package/dist/visualization.es32.js +111 -5
  487. package/dist/visualization.es32.js.map +1 -1
  488. package/dist/visualization.es320.js +2 -15
  489. package/dist/visualization.es320.js.map +1 -1
  490. package/dist/visualization.es321.js +102 -33
  491. package/dist/visualization.es321.js.map +1 -1
  492. package/dist/visualization.es322.js +4 -27
  493. package/dist/visualization.es322.js.map +1 -1
  494. package/dist/visualization.es323.js +3 -11
  495. package/dist/visualization.es323.js.map +1 -1
  496. package/dist/visualization.es324.js +18 -6
  497. package/dist/visualization.es324.js.map +1 -1
  498. package/dist/visualization.es325.js +5 -13
  499. package/dist/visualization.es325.js.map +1 -1
  500. package/dist/visualization.es326.js +14 -11
  501. package/dist/visualization.es326.js.map +1 -1
  502. package/dist/visualization.es327.js +5 -2
  503. package/dist/visualization.es327.js.map +1 -1
  504. package/dist/visualization.es328.js +29 -3
  505. package/dist/visualization.es328.js.map +1 -1
  506. package/dist/visualization.es329.js +7 -2
  507. package/dist/visualization.es329.js.map +1 -1
  508. package/dist/visualization.es33.js +7 -33
  509. package/dist/visualization.es33.js.map +1 -1
  510. package/dist/visualization.es330.js +2 -104
  511. package/dist/visualization.es330.js.map +1 -1
  512. package/dist/visualization.es331.js +20 -5
  513. package/dist/visualization.es331.js.map +1 -1
  514. package/dist/visualization.es332.js +21 -3
  515. package/dist/visualization.es332.js.map +1 -1
  516. package/dist/visualization.es333.js +5 -18
  517. package/dist/visualization.es333.js.map +1 -1
  518. package/dist/visualization.es334.js +7 -5
  519. package/dist/visualization.es334.js.map +1 -1
  520. package/dist/visualization.es335.js +18 -14
  521. package/dist/visualization.es335.js.map +1 -1
  522. package/dist/visualization.es336.js +44 -5
  523. package/dist/visualization.es336.js.map +1 -1
  524. package/dist/visualization.es337.js +7 -29
  525. package/dist/visualization.es337.js.map +1 -1
  526. package/dist/visualization.es338.js +19 -6
  527. package/dist/visualization.es338.js.map +1 -1
  528. package/dist/visualization.es339.js +54 -2
  529. package/dist/visualization.es339.js.map +1 -1
  530. package/dist/visualization.es34.js +17 -31
  531. package/dist/visualization.es34.js.map +1 -1
  532. package/dist/visualization.es340.js +27 -20
  533. package/dist/visualization.es340.js.map +1 -1
  534. package/dist/visualization.es341.js +11 -21
  535. package/dist/visualization.es341.js.map +1 -1
  536. package/dist/visualization.es342.js +18 -5
  537. package/dist/visualization.es342.js.map +1 -1
  538. package/dist/visualization.es343.js +10 -6
  539. package/dist/visualization.es343.js.map +1 -1
  540. package/dist/visualization.es344.js +4 -18
  541. package/dist/visualization.es344.js.map +1 -1
  542. package/dist/visualization.es345.js +4 -44
  543. package/dist/visualization.es345.js.map +1 -1
  544. package/dist/visualization.es346.js +4 -7
  545. package/dist/visualization.es346.js.map +1 -1
  546. package/dist/visualization.es347.js +174 -18
  547. package/dist/visualization.es347.js.map +1 -1
  548. package/dist/visualization.es348.js +37 -51
  549. package/dist/visualization.es348.js.map +1 -1
  550. package/dist/visualization.es349.js +5 -26
  551. package/dist/visualization.es349.js.map +1 -1
  552. package/dist/visualization.es35.js +32 -53
  553. package/dist/visualization.es35.js.map +1 -1
  554. package/dist/visualization.es350.js +4 -11
  555. package/dist/visualization.es350.js.map +1 -1
  556. package/dist/visualization.es351.js +2 -19
  557. package/dist/visualization.es351.js.map +1 -1
  558. package/dist/visualization.es352.js +30 -12
  559. package/dist/visualization.es352.js.map +1 -1
  560. package/dist/visualization.es353.js +8 -5
  561. package/dist/visualization.es353.js.map +1 -1
  562. package/dist/visualization.es354.js +11 -4
  563. package/dist/visualization.es354.js.map +1 -1
  564. package/dist/visualization.es355.js +3 -3
  565. package/dist/visualization.es355.js.map +1 -1
  566. package/dist/visualization.es356.js +62 -172
  567. package/dist/visualization.es356.js.map +1 -1
  568. package/dist/visualization.es357.js +7 -40
  569. package/dist/visualization.es357.js.map +1 -1
  570. package/dist/visualization.es358.js +4 -5
  571. package/dist/visualization.es358.js.map +1 -1
  572. package/dist/visualization.es359.js +13 -3
  573. package/dist/visualization.es359.js.map +1 -1
  574. package/dist/visualization.es36.js +51 -110
  575. package/dist/visualization.es36.js.map +1 -1
  576. package/dist/visualization.es360.js +35 -2
  577. package/dist/visualization.es360.js.map +1 -1
  578. package/dist/visualization.es361.js +5 -30
  579. package/dist/visualization.es361.js.map +1 -1
  580. package/dist/visualization.es362.js +10 -8
  581. package/dist/visualization.es362.js.map +1 -1
  582. package/dist/visualization.es363.js +2 -11
  583. package/dist/visualization.es363.js.map +1 -1
  584. package/dist/visualization.es364.js +5 -4
  585. package/dist/visualization.es364.js.map +1 -1
  586. package/dist/visualization.es365.js +2 -66
  587. package/dist/visualization.es365.js.map +1 -1
  588. package/dist/visualization.es366.js +10 -7
  589. package/dist/visualization.es366.js.map +1 -1
  590. package/dist/visualization.es367.js +10 -5
  591. package/dist/visualization.es367.js.map +1 -1
  592. package/dist/visualization.es368.js +13 -14
  593. package/dist/visualization.es368.js.map +1 -1
  594. package/dist/visualization.es369.js +2 -35
  595. package/dist/visualization.es369.js.map +1 -1
  596. package/dist/visualization.es37.js +54 -7
  597. package/dist/visualization.es37.js.map +1 -1
  598. package/dist/visualization.es370.js +10 -5
  599. package/dist/visualization.es370.js.map +1 -1
  600. package/dist/visualization.es371.js +7 -9
  601. package/dist/visualization.es371.js.map +1 -1
  602. package/dist/visualization.es372.js +6 -2
  603. package/dist/visualization.es372.js.map +1 -1
  604. package/dist/visualization.es373.js +25 -5
  605. package/dist/visualization.es373.js.map +1 -1
  606. package/dist/visualization.es374.js +19 -2
  607. package/dist/visualization.es374.js.map +1 -1
  608. package/dist/visualization.es375.js +40 -9
  609. package/dist/visualization.es375.js.map +1 -1
  610. package/dist/visualization.es376.js +3 -10
  611. package/dist/visualization.es376.js.map +1 -1
  612. package/dist/visualization.es377.js +8 -12
  613. package/dist/visualization.es377.js.map +1 -1
  614. package/dist/visualization.es378.js +9 -2
  615. package/dist/visualization.es378.js.map +1 -1
  616. package/dist/visualization.es379.js +36 -10
  617. package/dist/visualization.es379.js.map +1 -1
  618. package/dist/visualization.es38.js +40 -31
  619. package/dist/visualization.es38.js.map +1 -1
  620. package/dist/visualization.es380.js +9 -7
  621. package/dist/visualization.es380.js.map +1 -1
  622. package/dist/visualization.es381.js +31 -5
  623. package/dist/visualization.es381.js.map +1 -1
  624. package/dist/visualization.es382.js +4 -24
  625. package/dist/visualization.es382.js.map +1 -1
  626. package/dist/visualization.es383.js +2 -19
  627. package/dist/visualization.es383.js.map +1 -1
  628. package/dist/visualization.es384.js +15 -40
  629. package/dist/visualization.es384.js.map +1 -1
  630. package/dist/visualization.es385.js +25 -3
  631. package/dist/visualization.es385.js.map +1 -1
  632. package/dist/visualization.es386.js +2 -9
  633. package/dist/visualization.es386.js.map +1 -1
  634. package/dist/visualization.es387.js +62 -8
  635. package/dist/visualization.es387.js.map +1 -1
  636. package/dist/visualization.es388.js +2 -36
  637. package/dist/visualization.es388.js.map +1 -1
  638. package/dist/visualization.es389.js +2 -10
  639. package/dist/visualization.es389.js.map +1 -1
  640. package/dist/visualization.es39.js +6 -52
  641. package/dist/visualization.es39.js.map +1 -1
  642. package/dist/visualization.es390.js +5 -31
  643. package/dist/visualization.es390.js.map +1 -1
  644. package/dist/visualization.es391.js +36 -4
  645. package/dist/visualization.es391.js.map +1 -1
  646. package/dist/visualization.es392.js +21 -2
  647. package/dist/visualization.es392.js.map +1 -1
  648. package/dist/visualization.es393.js +3 -15
  649. package/dist/visualization.es393.js.map +1 -1
  650. package/dist/visualization.es394.js +4 -24
  651. package/dist/visualization.es394.js.map +1 -1
  652. package/dist/visualization.es395.js +5 -2
  653. package/dist/visualization.es395.js.map +1 -1
  654. package/dist/visualization.es396.js +45 -59
  655. package/dist/visualization.es396.js.map +1 -1
  656. package/dist/visualization.es397.js +27 -2
  657. package/dist/visualization.es397.js.map +1 -1
  658. package/dist/visualization.es398.js +17 -2
  659. package/dist/visualization.es398.js.map +1 -1
  660. package/dist/visualization.es399.js +10 -6
  661. package/dist/visualization.es399.js.map +1 -1
  662. package/dist/visualization.es4.js +6 -6
  663. package/dist/visualization.es40.js +4 -54
  664. package/dist/visualization.es40.js.map +1 -1
  665. package/dist/visualization.es400.js +17 -34
  666. package/dist/visualization.es400.js.map +1 -1
  667. package/dist/visualization.es401.js +14 -21
  668. package/dist/visualization.es401.js.map +1 -1
  669. package/dist/visualization.es402.js +3 -3
  670. package/dist/visualization.es402.js.map +1 -1
  671. package/dist/visualization.es403.js +13 -5
  672. package/dist/visualization.es403.js.map +1 -1
  673. package/dist/visualization.es404.js +48 -4
  674. package/dist/visualization.es404.js.map +1 -1
  675. package/dist/visualization.es405.js +5 -48
  676. package/dist/visualization.es405.js.map +1 -1
  677. package/dist/visualization.es406.js +12 -26
  678. package/dist/visualization.es406.js.map +1 -1
  679. package/dist/visualization.es407.js +2 -17
  680. package/dist/visualization.es407.js.map +1 -1
  681. package/dist/visualization.es408.js +7 -10
  682. package/dist/visualization.es408.js.map +1 -1
  683. package/dist/visualization.es409.js +208 -18
  684. package/dist/visualization.es409.js.map +1 -1
  685. package/dist/visualization.es41.js +18 -43
  686. package/dist/visualization.es41.js.map +1 -1
  687. package/dist/visualization.es410.js +27 -14
  688. package/dist/visualization.es410.js.map +1 -1
  689. package/dist/visualization.es411.js +3 -3
  690. package/dist/visualization.es411.js.map +1 -1
  691. package/dist/visualization.es412.js +15 -12
  692. package/dist/visualization.es412.js.map +1 -1
  693. package/dist/visualization.es413.js +14 -48
  694. package/dist/visualization.es413.js.map +1 -1
  695. package/dist/visualization.es414.js +15 -6
  696. package/dist/visualization.es414.js.map +1 -1
  697. package/dist/visualization.es415.js +2 -13
  698. package/dist/visualization.es415.js.map +1 -1
  699. package/dist/visualization.es416.js +2 -2
  700. package/dist/visualization.es416.js.map +1 -1
  701. package/dist/visualization.es417.js +2 -7
  702. package/dist/visualization.es417.js.map +1 -1
  703. package/dist/visualization.es418.js +5 -210
  704. package/dist/visualization.es418.js.map +1 -1
  705. package/dist/visualization.es419.js +2 -27
  706. package/dist/visualization.es419.js.map +1 -1
  707. package/dist/visualization.es42.js +4 -5
  708. package/dist/visualization.es42.js.map +1 -1
  709. package/dist/visualization.es420.js +25 -4
  710. package/dist/visualization.es420.js.map +1 -1
  711. package/dist/visualization.es421.js +21 -15
  712. package/dist/visualization.es421.js.map +1 -1
  713. package/dist/visualization.es422.js +8 -14
  714. package/dist/visualization.es422.js.map +1 -1
  715. package/dist/visualization.es423.js +67 -14
  716. package/dist/visualization.es423.js.map +1 -1
  717. package/dist/visualization.es424.js +6 -2
  718. package/dist/visualization.es424.js.map +1 -1
  719. package/dist/visualization.es425.js +29 -2
  720. package/dist/visualization.es425.js.map +1 -1
  721. package/dist/visualization.es426.js +10 -2
  722. package/dist/visualization.es426.js.map +1 -1
  723. package/dist/visualization.es427.js +6 -5
  724. package/dist/visualization.es427.js.map +1 -1
  725. package/dist/visualization.es428.js +2 -2
  726. package/dist/visualization.es428.js.map +1 -1
  727. package/dist/visualization.es429.js +5 -25
  728. package/dist/visualization.es429.js.map +1 -1
  729. package/dist/visualization.es43.js +26 -4
  730. package/dist/visualization.es43.js.map +1 -1
  731. package/dist/visualization.es430.js +25 -21
  732. package/dist/visualization.es430.js.map +1 -1
  733. package/dist/visualization.es431.js +11 -9
  734. package/dist/visualization.es431.js.map +1 -1
  735. package/dist/visualization.es432.js +27 -68
  736. package/dist/visualization.es432.js.map +1 -1
  737. package/dist/visualization.es433.js +10 -6
  738. package/dist/visualization.es433.js.map +1 -1
  739. package/dist/visualization.es434.js +11 -29
  740. package/dist/visualization.es434.js.map +1 -1
  741. package/dist/visualization.es435.js +2 -10
  742. package/dist/visualization.es435.js.map +1 -1
  743. package/dist/visualization.es436.js +16 -6
  744. package/dist/visualization.es436.js.map +1 -1
  745. package/dist/visualization.es437.js +30 -2
  746. package/dist/visualization.es437.js.map +1 -1
  747. package/dist/visualization.es438.js +26 -5
  748. package/dist/visualization.es438.js.map +1 -1
  749. package/dist/visualization.es439.js +2 -26
  750. package/dist/visualization.es439.js.map +1 -1
  751. package/dist/visualization.es44.js +29 -16
  752. package/dist/visualization.es44.js.map +1 -1
  753. package/dist/visualization.es440.js +8 -10
  754. package/dist/visualization.es440.js.map +1 -1
  755. package/dist/visualization.es441.js +11 -25
  756. package/dist/visualization.es441.js.map +1 -1
  757. package/dist/visualization.es442.js +22 -9
  758. package/dist/visualization.es442.js.map +1 -1
  759. package/dist/visualization.es443.js +12 -10
  760. package/dist/visualization.es443.js.map +1 -1
  761. package/dist/visualization.es444.js +3 -2
  762. package/dist/visualization.es444.js.map +1 -1
  763. package/dist/visualization.es445.js +2 -16
  764. package/dist/visualization.es445.js.map +1 -1
  765. package/dist/visualization.es446.js +15 -27
  766. package/dist/visualization.es446.js.map +1 -1
  767. package/dist/visualization.es447.js +4 -26
  768. package/dist/visualization.es447.js.map +1 -1
  769. package/dist/visualization.es448.js +12 -2
  770. package/dist/visualization.es448.js.map +1 -1
  771. package/dist/visualization.es449.js +11 -9
  772. package/dist/visualization.es449.js.map +1 -1
  773. package/dist/visualization.es45.js +5 -5
  774. package/dist/visualization.es45.js.map +1 -1
  775. package/dist/visualization.es450.js +6 -12
  776. package/dist/visualization.es450.js.map +1 -1
  777. package/dist/visualization.es451.js +19 -23
  778. package/dist/visualization.es451.js.map +1 -1
  779. package/dist/visualization.es452.js +22 -12
  780. package/dist/visualization.es452.js.map +1 -1
  781. package/dist/visualization.es453.js +12 -3
  782. package/dist/visualization.es453.js.map +1 -1
  783. package/dist/visualization.es454.js +51 -2
  784. package/dist/visualization.es454.js.map +1 -1
  785. package/dist/visualization.es455.js +16 -16
  786. package/dist/visualization.es455.js.map +1 -1
  787. package/dist/visualization.es456.js +35 -3
  788. package/dist/visualization.es456.js.map +1 -1
  789. package/dist/visualization.es457.js +22 -11
  790. package/dist/visualization.es457.js.map +1 -1
  791. package/dist/visualization.es458.js +32 -11
  792. package/dist/visualization.es458.js.map +1 -1
  793. package/dist/visualization.es459.js +3 -6
  794. package/dist/visualization.es459.js.map +1 -1
  795. package/dist/visualization.es46.js +32 -27
  796. package/dist/visualization.es46.js.map +1 -1
  797. package/dist/visualization.es460.js +18 -18
  798. package/dist/visualization.es460.js.map +1 -1
  799. package/dist/visualization.es461.js +14 -23
  800. package/dist/visualization.es461.js.map +1 -1
  801. package/dist/visualization.es462.js +10 -11
  802. package/dist/visualization.es462.js.map +1 -1
  803. package/dist/visualization.es463.js +26 -47
  804. package/dist/visualization.es463.js.map +1 -1
  805. package/dist/visualization.es464.js +6 -18
  806. package/dist/visualization.es464.js.map +1 -1
  807. package/dist/visualization.es465.js +7 -35
  808. package/dist/visualization.es465.js.map +1 -1
  809. package/dist/visualization.es466.js +2 -23
  810. package/dist/visualization.es466.js.map +1 -1
  811. package/dist/visualization.es467.js +16 -31
  812. package/dist/visualization.es467.js.map +1 -1
  813. package/dist/visualization.es468.js +8 -3
  814. package/dist/visualization.es468.js.map +1 -1
  815. package/dist/visualization.es469.js +9 -18
  816. package/dist/visualization.es469.js.map +1 -1
  817. package/dist/visualization.es47.js +169 -31
  818. package/dist/visualization.es47.js.map +1 -1
  819. package/dist/visualization.es470.js +615 -13
  820. package/dist/visualization.es470.js.map +1 -1
  821. package/dist/visualization.es471.js +50 -10
  822. package/dist/visualization.es471.js.map +1 -1
  823. package/dist/visualization.es472.js +13 -30
  824. package/dist/visualization.es472.js.map +1 -1
  825. package/dist/visualization.es473.js +11 -6
  826. package/dist/visualization.es473.js.map +1 -1
  827. package/dist/visualization.es474.js +23 -8
  828. package/dist/visualization.es474.js.map +1 -1
  829. package/dist/visualization.es475.js +35 -2
  830. package/dist/visualization.es475.js.map +1 -1
  831. package/dist/visualization.es476.js +12 -16
  832. package/dist/visualization.es476.js.map +1 -1
  833. package/dist/visualization.es477.js +17 -7
  834. package/dist/visualization.es477.js.map +1 -1
  835. package/dist/visualization.es478.js +25 -9
  836. package/dist/visualization.es478.js.map +1 -1
  837. package/dist/visualization.es479.js +23 -612
  838. package/dist/visualization.es479.js.map +1 -1
  839. package/dist/visualization.es48.js +63 -38
  840. package/dist/visualization.es48.js.map +1 -1
  841. package/dist/visualization.es480.js +40 -48
  842. package/dist/visualization.es480.js.map +1 -1
  843. package/dist/visualization.es481.js +20 -13
  844. package/dist/visualization.es481.js.map +1 -1
  845. package/dist/visualization.es482.js +41 -11
  846. package/dist/visualization.es482.js.map +1 -1
  847. package/dist/visualization.es483.js +58 -23
  848. package/dist/visualization.es483.js.map +1 -1
  849. package/dist/visualization.es484.js +3 -34
  850. package/dist/visualization.es484.js.map +1 -1
  851. package/dist/visualization.es485.js +3 -13
  852. package/dist/visualization.es485.js.map +1 -1
  853. package/dist/visualization.es486.js +7 -19
  854. package/dist/visualization.es486.js.map +1 -1
  855. package/dist/visualization.es487.js +15 -25
  856. package/dist/visualization.es487.js.map +1 -1
  857. package/dist/visualization.es488.js +2 -27
  858. package/dist/visualization.es488.js.map +1 -1
  859. package/dist/visualization.es489.js +2 -43
  860. package/dist/visualization.es489.js.map +1 -1
  861. package/dist/visualization.es49.js +172 -78
  862. package/dist/visualization.es49.js.map +1 -1
  863. package/dist/visualization.es490.js +2 -20
  864. package/dist/visualization.es490.js.map +1 -1
  865. package/dist/visualization.es491.js +50 -37
  866. package/dist/visualization.es491.js.map +1 -1
  867. package/dist/visualization.es492.js +28 -54
  868. package/dist/visualization.es492.js.map +1 -1
  869. package/dist/visualization.es493.js +33 -3
  870. package/dist/visualization.es493.js.map +1 -1
  871. package/dist/visualization.es494.js +13 -3
  872. package/dist/visualization.es494.js.map +1 -1
  873. package/dist/visualization.es495.js +7 -7
  874. package/dist/visualization.es495.js.map +1 -1
  875. package/dist/visualization.es496.js +33 -14
  876. package/dist/visualization.es496.js.map +1 -1
  877. package/dist/visualization.es497.js +4 -2
  878. package/dist/visualization.es497.js.map +1 -1
  879. package/dist/visualization.es498.js +4 -2
  880. package/dist/visualization.es498.js.map +1 -1
  881. package/dist/visualization.es499.js +7 -2
  882. package/dist/visualization.es499.js.map +1 -1
  883. package/dist/visualization.es5.js +113 -310
  884. package/dist/visualization.es5.js.map +1 -1
  885. package/dist/visualization.es50.js +74 -46
  886. package/dist/visualization.es50.js.map +1 -1
  887. package/dist/visualization.es500.js +12 -61
  888. package/dist/visualization.es500.js.map +1 -1
  889. package/dist/visualization.es501.js +2 -238
  890. package/dist/visualization.es501.js.map +1 -1
  891. package/dist/visualization.es502.js +3 -992
  892. package/dist/visualization.es502.js.map +1 -1
  893. package/dist/visualization.es503.js +4 -29
  894. package/dist/visualization.es503.js.map +1 -1
  895. package/dist/visualization.es504.js +10 -119
  896. package/dist/visualization.es504.js.map +1 -1
  897. package/dist/visualization.es505.js +24 -28
  898. package/dist/visualization.es505.js.map +1 -1
  899. package/dist/visualization.es506.js +2 -8
  900. package/dist/visualization.es506.js.map +1 -1
  901. package/dist/visualization.es507.js +32 -13
  902. package/dist/visualization.es507.js.map +1 -1
  903. package/dist/visualization.es508.js +237 -32
  904. package/dist/visualization.es508.js.map +1 -1
  905. package/dist/visualization.es509.js +988 -24
  906. package/dist/visualization.es509.js.map +1 -1
  907. package/dist/visualization.es51.js +47 -55
  908. package/dist/visualization.es51.js.map +1 -1
  909. package/dist/visualization.es510.js +60 -9
  910. package/dist/visualization.es510.js.map +1 -1
  911. package/dist/visualization.es511.js +29 -13
  912. package/dist/visualization.es511.js.map +1 -1
  913. package/dist/visualization.es512.js +118 -16
  914. package/dist/visualization.es512.js.map +1 -1
  915. package/dist/visualization.es513.js +28 -22
  916. package/dist/visualization.es513.js.map +1 -1
  917. package/dist/visualization.es514.js +10 -16
  918. package/dist/visualization.es514.js.map +1 -1
  919. package/dist/visualization.es515.js +13 -96
  920. package/dist/visualization.es515.js.map +1 -1
  921. package/dist/visualization.es516.js +31 -27
  922. package/dist/visualization.es516.js.map +1 -1
  923. package/dist/visualization.es517.js +26 -69
  924. package/dist/visualization.es517.js.map +1 -1
  925. package/dist/visualization.es518.js +9 -50
  926. package/dist/visualization.es518.js.map +1 -1
  927. package/dist/visualization.es519.js +12 -34
  928. package/dist/visualization.es519.js.map +1 -1
  929. package/dist/visualization.es52.js +33 -6
  930. package/dist/visualization.es52.js.map +1 -1
  931. package/dist/visualization.es520.js +15 -39
  932. package/dist/visualization.es520.js.map +1 -1
  933. package/dist/visualization.es521.js +23 -33
  934. package/dist/visualization.es521.js.map +1 -1
  935. package/dist/visualization.es522.js +16 -29
  936. package/dist/visualization.es522.js.map +1 -1
  937. package/dist/visualization.es523.js +94 -31
  938. package/dist/visualization.es523.js.map +1 -1
  939. package/dist/visualization.es524.js +29 -25
  940. package/dist/visualization.es524.js.map +1 -1
  941. package/dist/visualization.es525.js +70 -44
  942. package/dist/visualization.es525.js.map +1 -1
  943. package/dist/visualization.es526.js +52 -9
  944. package/dist/visualization.es526.js.map +1 -1
  945. package/dist/visualization.es527.js +35 -15
  946. package/dist/visualization.es527.js.map +1 -1
  947. package/dist/visualization.es528.js +42 -16
  948. package/dist/visualization.es528.js.map +1 -1
  949. package/dist/visualization.es529.js +34 -16
  950. package/dist/visualization.es529.js.map +1 -1
  951. package/dist/visualization.es53.js +7 -12
  952. package/dist/visualization.es53.js.map +1 -1
  953. package/dist/visualization.es530.js +24 -23
  954. package/dist/visualization.es530.js.map +1 -1
  955. package/dist/visualization.es531.js +45 -5
  956. package/dist/visualization.es531.js.map +1 -1
  957. package/dist/visualization.es532.js +9 -11
  958. package/dist/visualization.es532.js.map +1 -1
  959. package/dist/visualization.es533.js +15 -14
  960. package/dist/visualization.es533.js.map +1 -1
  961. package/dist/visualization.es534.js +16 -8
  962. package/dist/visualization.es534.js.map +1 -1
  963. package/dist/visualization.es535.js +16 -8
  964. package/dist/visualization.es535.js.map +1 -1
  965. package/dist/visualization.es536.js +24 -20
  966. package/dist/visualization.es536.js.map +1 -1
  967. package/dist/visualization.es537.js +5 -62
  968. package/dist/visualization.es537.js.map +1 -1
  969. package/dist/visualization.es538.js +34 -28
  970. package/dist/visualization.es538.js.map +1 -1
  971. package/dist/visualization.es539.js +30 -5
  972. package/dist/visualization.es539.js.map +1 -1
  973. package/dist/visualization.es54.js +7 -57
  974. package/dist/visualization.es54.js.map +1 -1
  975. package/dist/visualization.es540.js +10 -3
  976. package/dist/visualization.es540.js.map +1 -1
  977. package/dist/visualization.es541.js +14 -2
  978. package/dist/visualization.es541.js.map +1 -1
  979. package/dist/visualization.es542.js +8 -19
  980. package/dist/visualization.es542.js.map +1 -1
  981. package/dist/visualization.es543.js +8 -282
  982. package/dist/visualization.es543.js.map +1 -1
  983. package/dist/visualization.es544.js +20 -2
  984. package/dist/visualization.es544.js.map +1 -1
  985. package/dist/visualization.es545.js +60 -125
  986. package/dist/visualization.es545.js.map +1 -1
  987. package/dist/visualization.es546.js +28 -4
  988. package/dist/visualization.es546.js.map +1 -1
  989. package/dist/visualization.es547.js +5 -4
  990. package/dist/visualization.es547.js.map +1 -1
  991. package/dist/visualization.es548.js +3 -15
  992. package/dist/visualization.es548.js.map +1 -1
  993. package/dist/visualization.es549.js +2 -4
  994. package/dist/visualization.es549.js.map +1 -1
  995. package/dist/visualization.es55.js +34 -65
  996. package/dist/visualization.es55.js.map +1 -1
  997. package/dist/visualization.es550.js +17 -8
  998. package/dist/visualization.es550.js.map +1 -1
  999. package/dist/visualization.es551.js +281 -4
  1000. package/dist/visualization.es551.js.map +1 -1
  1001. package/dist/visualization.es552.js +2 -6
  1002. package/dist/visualization.es552.js.map +1 -1
  1003. package/dist/visualization.es553.js +126 -8
  1004. package/dist/visualization.es553.js.map +1 -1
  1005. package/dist/visualization.es554.js +3 -7
  1006. package/dist/visualization.es554.js.map +1 -1
  1007. package/dist/visualization.es555.js +3 -4
  1008. package/dist/visualization.es555.js.map +1 -1
  1009. package/dist/visualization.es556.js +15 -3
  1010. package/dist/visualization.es556.js.map +1 -1
  1011. package/dist/visualization.es557.js +4 -4
  1012. package/dist/visualization.es557.js.map +1 -1
  1013. package/dist/visualization.es558.js +9 -11
  1014. package/dist/visualization.es558.js.map +1 -1
  1015. package/dist/visualization.es559.js +4 -9
  1016. package/dist/visualization.es559.js.map +1 -1
  1017. package/dist/visualization.es56.js +34 -265
  1018. package/dist/visualization.es56.js.map +1 -1
  1019. package/dist/visualization.es560.js +5 -30
  1020. package/dist/visualization.es560.js.map +1 -1
  1021. package/dist/visualization.es561.js +9 -24
  1022. package/dist/visualization.es561.js.map +1 -1
  1023. package/dist/visualization.es562.js +7 -51
  1024. package/dist/visualization.es562.js.map +1 -1
  1025. package/dist/visualization.es563.js +4 -3
  1026. package/dist/visualization.es563.js.map +1 -1
  1027. package/dist/visualization.es564.js +3 -8
  1028. package/dist/visualization.es564.js.map +1 -1
  1029. package/dist/visualization.es565.js +4 -21
  1030. package/dist/visualization.es565.js.map +1 -1
  1031. package/dist/visualization.es566.js +11 -7
  1032. package/dist/visualization.es566.js.map +1 -1
  1033. package/dist/visualization.es567.js +9 -6
  1034. package/dist/visualization.es567.js.map +1 -1
  1035. package/dist/visualization.es568.js +30 -5
  1036. package/dist/visualization.es568.js.map +1 -1
  1037. package/dist/visualization.es569.js +24 -7
  1038. package/dist/visualization.es569.js.map +1 -1
  1039. package/dist/visualization.es57.js +26 -100
  1040. package/dist/visualization.es57.js.map +1 -1
  1041. package/dist/visualization.es570.js +51 -15
  1042. package/dist/visualization.es570.js.map +1 -1
  1043. package/dist/visualization.es571.js +3 -4
  1044. package/dist/visualization.es571.js.map +1 -1
  1045. package/dist/visualization.es572.js +8 -6
  1046. package/dist/visualization.es572.js.map +1 -1
  1047. package/dist/visualization.es573.js +20 -34
  1048. package/dist/visualization.es573.js.map +1 -1
  1049. package/dist/visualization.es574.js +7 -8
  1050. package/dist/visualization.es574.js.map +1 -1
  1051. package/dist/visualization.es575.js +6 -9
  1052. package/dist/visualization.es575.js.map +1 -1
  1053. package/dist/visualization.es576.js +5 -9
  1054. package/dist/visualization.es576.js.map +1 -1
  1055. package/dist/visualization.es577.js +7 -18
  1056. package/dist/visualization.es577.js.map +1 -1
  1057. package/dist/visualization.es578.js +15 -7
  1058. package/dist/visualization.es578.js.map +1 -1
  1059. package/dist/visualization.es579.js +4 -7
  1060. package/dist/visualization.es579.js.map +1 -1
  1061. package/dist/visualization.es58.js +65 -28
  1062. package/dist/visualization.es58.js.map +1 -1
  1063. package/dist/visualization.es580.js +6 -32
  1064. package/dist/visualization.es580.js.map +1 -1
  1065. package/dist/visualization.es581.js +34 -13
  1066. package/dist/visualization.es581.js.map +1 -1
  1067. package/dist/visualization.es582.js +8 -72
  1068. package/dist/visualization.es582.js.map +1 -1
  1069. package/dist/visualization.es583.js +9 -29
  1070. package/dist/visualization.es583.js.map +1 -1
  1071. package/dist/visualization.es584.js +9 -5
  1072. package/dist/visualization.es584.js.map +1 -1
  1073. package/dist/visualization.es585.js +17 -24
  1074. package/dist/visualization.es585.js.map +1 -1
  1075. package/dist/visualization.es586.js +7 -11
  1076. package/dist/visualization.es586.js.map +1 -1
  1077. package/dist/visualization.es587.js +7 -4
  1078. package/dist/visualization.es587.js.map +1 -1
  1079. package/dist/visualization.es588.js +32 -4
  1080. package/dist/visualization.es588.js.map +1 -1
  1081. package/dist/visualization.es589.js +13 -4
  1082. package/dist/visualization.es589.js.map +1 -1
  1083. package/dist/visualization.es59.js +61 -22
  1084. package/dist/visualization.es59.js.map +1 -1
  1085. package/dist/visualization.es590.js +72 -12
  1086. package/dist/visualization.es590.js.map +1 -1
  1087. package/dist/visualization.es591.js +28 -16
  1088. package/dist/visualization.es591.js.map +1 -1
  1089. package/dist/visualization.es592.js +5 -13
  1090. package/dist/visualization.es592.js.map +1 -1
  1091. package/dist/visualization.es593.js +25 -13
  1092. package/dist/visualization.es593.js.map +1 -1
  1093. package/dist/visualization.es594.js +11 -8
  1094. package/dist/visualization.es594.js.map +1 -1
  1095. package/dist/visualization.es595.js +4 -12
  1096. package/dist/visualization.es595.js.map +1 -1
  1097. package/dist/visualization.es596.js +4 -24
  1098. package/dist/visualization.es596.js.map +1 -1
  1099. package/dist/visualization.es597.js +4 -19
  1100. package/dist/visualization.es597.js.map +1 -1
  1101. package/dist/visualization.es598.js +13 -7
  1102. package/dist/visualization.es598.js.map +1 -1
  1103. package/dist/visualization.es599.js +18 -6
  1104. package/dist/visualization.es599.js.map +1 -1
  1105. package/dist/visualization.es6.js +15 -15
  1106. package/dist/visualization.es60.js +4 -18
  1107. package/dist/visualization.es60.js.map +1 -1
  1108. package/dist/visualization.es600.js +13 -3
  1109. package/dist/visualization.es600.js.map +1 -1
  1110. package/dist/visualization.es601.js +12 -63
  1111. package/dist/visualization.es601.js.map +1 -1
  1112. package/dist/visualization.es602.js +8 -32
  1113. package/dist/visualization.es602.js.map +1 -1
  1114. package/dist/visualization.es603.js +12 -4
  1115. package/dist/visualization.es603.js.map +1 -1
  1116. package/dist/visualization.es604.js +24 -8
  1117. package/dist/visualization.es604.js.map +1 -1
  1118. package/dist/visualization.es605.js +19 -6
  1119. package/dist/visualization.es605.js.map +1 -1
  1120. package/dist/visualization.es606.js +7 -291
  1121. package/dist/visualization.es606.js.map +1 -1
  1122. package/dist/visualization.es607.js +6 -19
  1123. package/dist/visualization.es607.js.map +1 -1
  1124. package/dist/visualization.es608.js +3 -14
  1125. package/dist/visualization.es608.js.map +1 -1
  1126. package/dist/visualization.es609.js +64 -3
  1127. package/dist/visualization.es609.js.map +1 -1
  1128. package/dist/visualization.es61.js +46 -20
  1129. package/dist/visualization.es61.js.map +1 -1
  1130. package/dist/visualization.es610.js +31 -10
  1131. package/dist/visualization.es610.js.map +1 -1
  1132. package/dist/visualization.es611.js +4 -5
  1133. package/dist/visualization.es611.js.map +1 -1
  1134. package/dist/visualization.es612.js +8 -3
  1135. package/dist/visualization.es612.js.map +1 -1
  1136. package/dist/visualization.es613.js +5 -4
  1137. package/dist/visualization.es613.js.map +1 -1
  1138. package/dist/visualization.es614.js +18 -13
  1139. package/dist/visualization.es614.js.map +1 -1
  1140. package/dist/visualization.es615.js +13 -116
  1141. package/dist/visualization.es615.js.map +1 -1
  1142. package/dist/visualization.es616.js +285 -60
  1143. package/dist/visualization.es616.js.map +1 -1
  1144. package/dist/visualization.es617.js +3 -4
  1145. package/dist/visualization.es617.js.map +1 -1
  1146. package/dist/visualization.es618.js +11 -7
  1147. package/dist/visualization.es618.js.map +1 -1
  1148. package/dist/visualization.es619.js +3 -7
  1149. package/dist/visualization.es619.js.map +1 -1
  1150. package/dist/visualization.es62.js +4 -70
  1151. package/dist/visualization.es62.js.map +1 -1
  1152. package/dist/visualization.es620.js +5 -16
  1153. package/dist/visualization.es620.js.map +1 -1
  1154. package/dist/visualization.es621.js +6 -19
  1155. package/dist/visualization.es621.js.map +1 -1
  1156. package/dist/visualization.es622.js +13 -9
  1157. package/dist/visualization.es622.js.map +1 -1
  1158. package/dist/visualization.es623.js +117 -3
  1159. package/dist/visualization.es623.js.map +1 -1
  1160. package/dist/visualization.es624.js +64 -27
  1161. package/dist/visualization.es624.js.map +1 -1
  1162. package/dist/visualization.es625.js +5 -6
  1163. package/dist/visualization.es625.js.map +1 -1
  1164. package/dist/visualization.es626.js +6 -9
  1165. package/dist/visualization.es626.js.map +1 -1
  1166. package/dist/visualization.es627.js +6 -5
  1167. package/dist/visualization.es627.js.map +1 -1
  1168. package/dist/visualization.es628.js +16 -11
  1169. package/dist/visualization.es628.js.map +1 -1
  1170. package/dist/visualization.es629.js +19 -22
  1171. package/dist/visualization.es629.js.map +1 -1
  1172. package/dist/visualization.es63.js +278 -75
  1173. package/dist/visualization.es63.js.map +1 -1
  1174. package/dist/visualization.es630.js +10 -2
  1175. package/dist/visualization.es630.js.map +1 -1
  1176. package/dist/visualization.es631.js +3 -12
  1177. package/dist/visualization.es631.js.map +1 -1
  1178. package/dist/visualization.es632.js +27 -301
  1179. package/dist/visualization.es632.js.map +1 -1
  1180. package/dist/visualization.es633.js +6 -27
  1181. package/dist/visualization.es633.js.map +1 -1
  1182. package/dist/visualization.es634.js +10 -77
  1183. package/dist/visualization.es634.js.map +1 -1
  1184. package/dist/visualization.es635.js +6 -34
  1185. package/dist/visualization.es635.js.map +1 -1
  1186. package/dist/visualization.es636.js +11 -12
  1187. package/dist/visualization.es636.js.map +1 -1
  1188. package/dist/visualization.es637.js +21 -7
  1189. package/dist/visualization.es637.js.map +1 -1
  1190. package/dist/visualization.es638.js +2 -10
  1191. package/dist/visualization.es638.js.map +1 -1
  1192. package/dist/visualization.es639.js +13 -3
  1193. package/dist/visualization.es639.js.map +1 -1
  1194. package/dist/visualization.es64.js +18 -10
  1195. package/dist/visualization.es64.js.map +1 -1
  1196. package/dist/visualization.es640.js +306 -0
  1197. package/dist/visualization.es640.js.map +1 -0
  1198. package/dist/visualization.es641.js +30 -0
  1199. package/dist/visualization.es641.js.map +1 -0
  1200. package/dist/visualization.es642.js +81 -0
  1201. package/dist/visualization.es642.js.map +1 -0
  1202. package/dist/visualization.es643.js +38 -0
  1203. package/dist/visualization.es643.js.map +1 -0
  1204. package/dist/visualization.es644.js +16 -0
  1205. package/dist/visualization.es644.js.map +1 -0
  1206. package/dist/visualization.es645.js +11 -0
  1207. package/dist/visualization.es645.js.map +1 -0
  1208. package/dist/visualization.es646.js +13 -0
  1209. package/dist/visualization.es646.js.map +1 -0
  1210. package/dist/visualization.es647.js +6 -0
  1211. package/dist/visualization.es647.js.map +1 -0
  1212. package/dist/visualization.es65.js +18700 -56
  1213. package/dist/visualization.es65.js.map +1 -1
  1214. package/dist/visualization.es66.js +5 -47
  1215. package/dist/visualization.es66.js.map +1 -1
  1216. package/dist/visualization.es67.js +5 -45
  1217. package/dist/visualization.es67.js.map +1 -1
  1218. package/dist/visualization.es68.js +58 -19
  1219. package/dist/visualization.es68.js.map +1 -1
  1220. package/dist/visualization.es69.js +801 -106
  1221. package/dist/visualization.es69.js.map +1 -1
  1222. package/dist/visualization.es7.js +11 -11
  1223. package/dist/visualization.es71.js +130 -34
  1224. package/dist/visualization.es71.js.map +1 -1
  1225. package/dist/visualization.es72.js +65 -54
  1226. package/dist/visualization.es72.js.map +1 -1
  1227. package/dist/visualization.es73.js +259 -18695
  1228. package/dist/visualization.es73.js.map +1 -1
  1229. package/dist/visualization.es74.js +103 -5
  1230. package/dist/visualization.es74.js.map +1 -1
  1231. package/dist/visualization.es75.js +27 -5
  1232. package/dist/visualization.es75.js.map +1 -1
  1233. package/dist/visualization.es76.js +22 -59
  1234. package/dist/visualization.es76.js.map +1 -1
  1235. package/dist/visualization.es77.js +17 -810
  1236. package/dist/visualization.es77.js.map +1 -1
  1237. package/dist/visualization.es78.js +24 -0
  1238. package/dist/visualization.es78.js.map +1 -0
  1239. package/dist/visualization.es79.js +72 -129
  1240. package/dist/visualization.es79.js.map +1 -1
  1241. package/dist/visualization.es8.js +13 -13
  1242. package/dist/visualization.es80.js +81 -29
  1243. package/dist/visualization.es80.js.map +1 -1
  1244. package/dist/visualization.es81.js +66 -64
  1245. package/dist/visualization.es81.js.map +1 -1
  1246. package/dist/visualization.es82.js +38 -60
  1247. package/dist/visualization.es82.js.map +1 -1
  1248. package/dist/visualization.es83.js +80 -3
  1249. package/dist/visualization.es83.js.map +1 -1
  1250. package/dist/visualization.es84.js +46 -47
  1251. package/dist/visualization.es84.js.map +1 -1
  1252. package/dist/visualization.es85.js +55 -3
  1253. package/dist/visualization.es85.js.map +1 -1
  1254. package/dist/visualization.es86.js +6 -281
  1255. package/dist/visualization.es86.js.map +1 -1
  1256. package/dist/visualization.es87.js +11 -17
  1257. package/dist/visualization.es87.js.map +1 -1
  1258. package/dist/visualization.es88.js +56 -62
  1259. package/dist/visualization.es88.js.map +1 -1
  1260. package/dist/visualization.es89.js +113 -8
  1261. package/dist/visualization.es89.js.map +1 -1
  1262. package/dist/visualization.es9.js +1 -1
  1263. package/dist/visualization.es90.js +5 -8
  1264. package/dist/visualization.es90.js.map +1 -1
  1265. package/dist/visualization.es91.js +5 -13
  1266. package/dist/visualization.es91.js.map +1 -1
  1267. package/dist/visualization.es92.js +5 -74
  1268. package/dist/visualization.es92.js.map +1 -1
  1269. package/dist/visualization.es93.js +14 -32
  1270. package/dist/visualization.es93.js.map +1 -1
  1271. package/dist/visualization.es94.js +14 -12
  1272. package/dist/visualization.es94.js.map +1 -1
  1273. package/dist/visualization.es95.js +26 -5
  1274. package/dist/visualization.es95.js.map +1 -1
  1275. package/dist/visualization.es96.js +70 -5
  1276. package/dist/visualization.es96.js.map +1 -1
  1277. package/dist/visualization.es97.js +45 -5
  1278. package/dist/visualization.es97.js.map +1 -1
  1279. package/dist/visualization.es98.js +20 -13
  1280. package/dist/visualization.es98.js.map +1 -1
  1281. package/dist/visualization.es99.js +60 -15
  1282. package/dist/visualization.es99.js.map +1 -1
  1283. package/package.json +1 -1
  1284. package/dist/src/components/Heatmap/HeatmapMiniMap.d.ts.map +0 -1
  1285. package/dist/visualization.es70.js +0 -101
  1286. package/dist/visualization.es70.js.map +0 -1
@@ -1,319 +1,122 @@
1
- import { jsx as o, jsxs as G, Fragment as Ve } from "react/jsx-runtime";
2
- import { useRef as M, useEffect as St, useMemo as f, useCallback as D, useState as Ne, useId as Fe, useImperativeHandle as He } from "react";
3
- import { createRoot as Ge } from "react-dom/client";
4
- import { flushSync as De } from "react-dom";
5
- import { measureTextWidth as jt, downloadSVGAsPNG as qt, downloadAsSVG as Qt } from "./visualization.es29.js";
6
- import Ut from "./visualization.es65.js";
7
- import { heatmapCellStyles as We } from "./visualization.es66.js";
8
- import Zt, { getHeatmapLegendWidth as Xe } from "./visualization.es67.js";
9
- import { getHeatmapColorScale as ze, cellKey as At, DEFAULT_DESELECTED_COLOR as Ye } from "./visualization.es68.js";
10
- import { getVisibleRange as Jt, drawHeatmapCells as Be, hitTestCell as te, buildBin as ee } from "./visualization.es69.js";
11
- import Ke from "./visualization.es70.js";
12
- import { useResponsiveParentSize as Oe } from "./visualization.es18.js";
13
- import oe from "./visualization.es22.js";
14
- import { ResponsiveContainer as je } from "./visualization.es14.js";
15
- import Ct from "./visualization.es34.js";
16
- import qe from "./visualization.es12.js";
17
- import bt from "./visualization.es33.js";
18
- const kt = "http://www.w3.org/2000/svg", U = 16, ct = 12, ne = 40, ie = 70, Rt = 12, re = "sans-serif", le = 1.15, se = 4, ce = 50, ae = 10, fe = (n) => n.rows;
19
- function he(n, g, A, w) {
20
- return w - A > g || A < n ? A : w > n + g ? w - g : n;
21
- }
22
- function _t(n, g) {
23
- return n.reduce((A, w) => {
24
- const Z = g(w);
25
- return Z == null ? A : Math.max(A, Z);
26
- }, 0);
27
- }
28
- const uo = ({
29
- data: n,
30
- onClick: g,
31
- ref: A,
32
- downloadFileName: w,
33
- colors: Z,
34
- xLabel: J,
35
- yLabel: tt,
36
- tooltipBody: at,
37
- margin: me,
38
- gap: et = 2,
39
- isRect: ot = !0,
40
- animationType: Et,
41
- showLegend: K = !0,
42
- width: de,
43
- height: ue,
44
- xLabelOrientation: C = "vertical",
45
- selectedCells: L,
46
- deselectedColor: ft,
47
- cellWidth: Pt,
48
- cellHeight: Mt,
49
- scrollToSelection: Lt,
50
- showMiniMap: It = !1
51
- }) => {
1
+ import { jsx as K } from "react/jsx-runtime";
2
+ import { c as re } from "react/compiler-runtime";
3
+ import { useRef as te, useImperativeHandle as ce } from "react";
4
+ import { downloadSVGAsPNG as oe, downloadAsSVG as le } from "./visualization.es31.js";
5
+ import { makeTickFormat as ie, getXAxisTickLabelProps as me } from "./visualization.es46.js";
6
+ import { useHeatmapLayout as pe } from "./visualization.es47.js";
7
+ import { withOffscreenExportSVG as ne } from "./visualization.es48.js";
8
+ import de from "./visualization.es49.js";
9
+ import fe from "./visualization.es50.js";
10
+ import { useResponsiveParentSize as ue } from "./visualization.es18.js";
11
+ import { ResponsiveContainer as ge } from "./visualization.es14.js";
12
+ const He = (se) => {
13
+ const e = re(71), {
14
+ data: t,
15
+ onClick: c,
16
+ ref: ae,
17
+ downloadFileName: v,
18
+ colors: O,
19
+ colorDomain: V,
20
+ xLabel: m,
21
+ yLabel: p,
22
+ tooltipBody: L,
23
+ margin: E,
24
+ gap: Q,
25
+ isRect: U,
26
+ animationType: w,
27
+ showLegend: Y,
28
+ width: W,
29
+ height: j,
30
+ xLabelOrientation: Z,
31
+ selectedCells: o,
32
+ deselectedColor: n,
33
+ cellWidth: k,
34
+ cellHeight: y,
35
+ scrollToSelection: z,
36
+ showMiniMap: _
37
+ } = se, s = Q === void 0 ? 2 : Q, a = U === void 0 ? !0 : U, l = Y === void 0 ? !0 : Y, x = Z === void 0 ? "vertical" : Z, S = _ === void 0 ? !1 : _;
38
+ let G;
39
+ e[0] !== j || e[1] !== W ? (G = {
40
+ width: W,
41
+ height: j
42
+ }, e[0] = j, e[1] = W, e[2] = G) : G = e[2];
52
43
  const {
53
- parentRef: pe,
54
- containerStyle: ge,
55
- width: ht,
56
- height: mt
57
- } = Oe({
58
- width: de,
59
- height: ue
60
- }), O = M(null), u = Pt != null && Mt != null, I = M(null), $t = M(null), dt = M(null), j = M(null), nt = M(null), q = M(null), Vt = M(/* @__PURE__ */ new Set());
61
- St(() => () => {
62
- q.current != null && cancelAnimationFrame(q.current);
63
- }, []);
64
- const ut = f(() => n.map((t) => t.columnName), [n]), pt = f(() => n[0]?.rows.map((t) => t.rowName) ?? [], [n]), R = f(() => _t(n, (t) => _t(fe(t), (e) => e.count)), [n]), T = f(() => _t(n, (t) => fe(t).length), [n]), ve = f(() => ut.reduce((t, e) => Math.max(t, jt(e, Rt, re)), 0) * le, [ut]), Nt = f(() => pt.reduce((t, e) => Math.max(t, jt(e, Rt, re)), 0) * le, [pt]), xe = C === "horizontal" ? 0 : C === "vertical" ? -90 : C === "leftDiagonal" ? -45 : 45, we = C === "horizontal" ? "middle" : C === "rightDiagonal" ? "start" : "end", Ft = ve, gt = C === "horizontal" ? 12 : C === "vertical" ? Ft : Ft * Math.SQRT1_2, vt = C === "leftDiagonal" ? gt : 0, Ht = Z.join("\0"), W = f(() => Ht.split("\0"), [Ht]), it = f(() => Xe(0, R), [R]), Te = K ? it + U : 10, ye = 20, Se = gt + ct + ie, r = me ?? {
65
- top: ye,
66
- left: Nt + ct + ne,
67
- right: Te,
68
- bottom: Se + Rt
69
- }, Ae = u && It ? ce : 0, Gt = Math.max(0, ht - r.left - r.right), Dt = Math.max(0, mt - r.bottom - r.top - Ae), d = u ? n.length * Pt : Gt, s = u ? T * Mt : Dt, c = u ? Math.min(d, Gt) : d, l = u ? Math.min(s, Dt) : s, y = ne, _ = Math.max(0, r.left - y), X = ie, $ = Math.max(0, r.bottom - X), V = d / n.length, N = s / T, F = f(() => oe({
70
- domain: [0, n.length],
71
- range: [0, d]
72
- }), [n.length, d]), Q = f(() => oe({
73
- domain: [0, T],
74
- range: [s, 0]
75
- }), [T, s]), rt = D((t) => Q(t + 1), [Q]), lt = f(() => n.map((t, e) => e + 0.5), [n]), st = f(() => n[0]?.rows.map((t, e) => e + 0.5) ?? [], [n]), Wt = ft ?? Ye, Xt = f(() => ze(W, R), [W, R]), zt = f(() => L?.length ? new Set(L.map(At)) : null, [L]), p = f(() => ({
76
- data: n,
77
- numRows: T,
78
- xScale: F,
79
- cellYScale: rt,
80
- colorScale: Xt,
81
- gap: et,
82
- isRect: ot,
83
- binWidth: V,
84
- binHeight: N,
85
- yMax: s,
86
- selectedKeys: zt,
87
- deselectedColor: Wt
88
- }), [n, T, F, rt, Xt, et, ot, V, N, s, zt, Wt]), E = D(() => {
89
- const t = $t.current, e = I.current;
90
- if (!t || !e) return;
91
- const i = t.getContext("2d");
92
- if (!i) return;
93
- const h = window.devicePixelRatio || 1;
94
- i.setTransform(h, 0, 0, h, 0, 0), i.clearRect(0, 0, c, l);
95
- const a = Jt(p, e.scrollLeft, e.scrollTop, c, l, se);
96
- i.translate(-e.scrollLeft, -e.scrollTop), Be(i, p, a, j.current);
97
- }, [p, c, l]);
98
- St(() => {
99
- u && E();
100
- }, [u, E]);
101
- const [b, Ce] = Ne({
102
- left: 0,
103
- top: 0
104
- }), Yt = Fe(), Bt = Math.max(0, vt - b.left), P = f(() => Jt(p, b.left, b.top, c, l, se), [p, b.left, b.top, c, l]), be = f(() => lt.slice(P.colStart, P.colEnd + 1), [lt, P.colStart, P.colEnd]), ke = f(() => st.slice(P.rowStart, P.rowEnd + 1), [st, P.rowStart, P.rowEnd]);
105
- St(() => {
106
- const t = Vt.current, e = L ?? [], i = e.filter((S) => !t.has(At(S)));
107
- Vt.current = new Set(e.map(At));
108
- const h = I.current;
109
- if (!Lt || !u || !h || i.length === 0) return;
110
- let a = 1 / 0, v = -1 / 0, k = 1 / 0, z = -1 / 0;
111
- for (const S of i)
112
- S.column < a && (a = S.column), S.column > v && (v = S.column), S.row < k && (k = S.row), S.row > z && (z = S.row);
113
- const x = a * V, Y = (v + 1) * V, B = s - (z + 1) * N, H = s - k * N, m = he(h.scrollLeft, c, x, Y), Ot = he(h.scrollTop, l, B, H);
114
- (m !== h.scrollLeft || Ot !== h.scrollTop) && h.scrollTo({
115
- left: m,
116
- top: Ot,
117
- behavior: "smooth"
118
- });
119
- }, [L, Lt, u, V, N, s, c, l]);
120
- const Re = D(() => {
121
- const t = I.current;
122
- t && q.current == null && (q.current = requestAnimationFrame(() => {
123
- q.current = null, E(), Ce({
124
- left: t.scrollLeft,
125
- top: t.scrollTop
126
- });
127
- }));
128
- }, [E]), _e = D((t, e) => {
129
- I.current?.scrollTo({
130
- left: t,
131
- top: e
132
- });
133
- }, []), Ee = D((t) => {
134
- const e = I.current;
135
- if (!e) return;
136
- const i = t.nativeEvent.offsetX + e.scrollLeft, h = t.nativeEvent.offsetY + e.scrollTop, a = te(p, i, h);
137
- t.currentTarget.style.cursor = a ? "pointer" : "default";
138
- const v = j.current;
139
- if ((v?.row !== a?.row || v?.column !== a?.column) && (j.current = a, E()), a) {
140
- const k = ee(p, a);
141
- k && nt.current?.show(k, t);
142
- } else
143
- nt.current?.hide();
144
- }, [p, E]), Pe = D((t) => {
145
- t.currentTarget.style.cursor = "default", j.current && (j.current = null, E()), nt.current?.hide();
146
- }, [E]), Me = D((t) => {
147
- const e = I.current;
148
- if (!e || !g) return;
149
- const i = t.nativeEvent.offsetX + e.scrollLeft, h = t.nativeEvent.offsetY + e.scrollTop, a = te(p, i, h);
150
- if (!a) return;
151
- const v = ee(p, a);
152
- v && g(v);
153
- }, [p, g]), Le = () => {
154
- const t = document.createElementNS(kt, "svg");
155
- t.setAttribute("width", String(r.left + d + r.right)), t.setAttribute("height", String(r.top + s + r.bottom));
156
- const e = (x, Y, B) => {
157
- const H = document.createElementNS(kt, "g");
158
- H.setAttribute("transform", `translate(${Y},${B})`), x.childNodes.forEach((m) => H.appendChild(m.cloneNode(!0))), t.appendChild(H);
159
- };
160
- let i = null, h = null, a = null;
161
- const v = document.createElement("div"), k = Ge(v);
162
- De(() => {
163
- k.render(/* @__PURE__ */ G(Ve, { children: [
164
- /* @__PURE__ */ o("svg", { width: d, height: s, ref: (x) => {
165
- i = x;
166
- }, children: /* @__PURE__ */ o(Ut, { data: n, xScale: F, yScale: rt, colors: W, maxValue: R, gap: et, isRect: ot, binWidth: V, binHeight: N, animationType: Et, onClick: g, selectedCells: L, deselectedColor: ft }) }),
167
- /* @__PURE__ */ o("svg", { width: _, height: s, ref: (x) => {
168
- h = x;
169
- }, children: /* @__PURE__ */ o("g", { transform: `translate(${_},0)`, children: /* @__PURE__ */ o(Ct, { scale: Q, numTicks: T, tickValues: st, tickFormat: Tt, tickLabelProps: yt }) }) }),
170
- /* @__PURE__ */ o("svg", { width: d, height: $, ref: (x) => {
171
- a = x;
172
- }, children: /* @__PURE__ */ o(bt, { top: 0, scale: F, numTicks: n.length, tickFormat: xt, tickValues: lt, tickLabelProps: wt }) })
173
- ] }));
174
- }), i && e(i, r.left, r.top), h && e(h, y, r.top), a && e(a, r.left, r.top + s), k.unmount(), K && dt.current && e(dt.current, r.left + d + U, r.top);
175
- const z = (x, Y, B, H) => {
176
- const m = document.createElementNS(kt, "text");
177
- m.setAttribute("x", String(Y)), m.setAttribute("y", String(B)), H && m.setAttribute("transform", `rotate(-90, ${Y}, ${B})`), m.setAttribute("text-anchor", "middle"), m.setAttribute("dominant-baseline", "middle"), m.setAttribute("font-size", "14"), m.setAttribute("font-family", "sans-serif"), m.textContent = x, t.appendChild(m);
178
- };
179
- return tt && z(tt, y / 2, r.top + s / 2, !0), J && z(J, r.left + d / 2, r.top + s + $ + X / 2, !1), t;
180
- }, Kt = (t) => {
181
- const e = Le();
182
- if (!e) return;
183
- const i = document.createElement("div");
184
- i.style.position = "absolute", i.style.top = "0", i.style.left = "-99999px", i.appendChild(e), document.body.appendChild(i), t(e, () => {
185
- i.parentNode && document.body.removeChild(i);
186
- });
187
- };
188
- He(A, () => ({
44
+ parentRef: B,
45
+ containerStyle: D,
46
+ width: d,
47
+ height: f
48
+ } = ue(G), b = te(null), ee = te(null), i = k != null && y != null;
49
+ let H;
50
+ e[3] !== y || e[4] !== k || e[5] !== V || e[6] !== O || e[7] !== t || e[8] !== n || e[9] !== s || e[10] !== a || e[11] !== i || e[12] !== E || e[13] !== f || e[14] !== d || e[15] !== o || e[16] !== l || e[17] !== S || e[18] !== x ? (H = {
51
+ data: t,
52
+ colorDomain: V,
53
+ colors: O,
54
+ xLabelOrientation: x,
55
+ margin: E,
56
+ showLegend: l,
57
+ isScrollable: i,
58
+ cellWidth: k,
59
+ cellHeight: y,
60
+ parentWidth: d,
61
+ parentHeight: f,
62
+ showMiniMap: S,
63
+ gap: s,
64
+ isRect: a,
65
+ selectedCells: o,
66
+ deselectedColor: n
67
+ }, e[3] = y, e[4] = k, e[5] = V, e[6] = O, e[7] = t, e[8] = n, e[9] = s, e[10] = a, e[11] = i, e[12] = E, e[13] = f, e[14] = d, e[15] = o, e[16] = l, e[17] = S, e[18] = x, e[19] = H) : H = e[19];
68
+ const r = pe(H), {
69
+ allColNames: I,
70
+ allRowNames: X,
71
+ numRows: $
72
+ } = r;
73
+ let T;
74
+ e[20] !== I ? (T = ie(I), e[20] = I, e[21] = T) : T = e[21];
75
+ const u = T;
76
+ let A;
77
+ e[22] !== X ? (A = ie(X), e[22] = X, e[23] = A) : A = e[23];
78
+ const g = A;
79
+ let C;
80
+ e[24] !== x ? (C = me(x), e[24] = x, e[25] = C) : C = e[25];
81
+ const h = C;
82
+ let N;
83
+ e[26] !== w || e[27] !== t || e[28] !== n || e[29] !== s || e[30] !== a || e[31] !== r || e[32] !== c || e[33] !== o || e[34] !== l || e[35] !== u || e[36] !== h || e[37] !== m || e[38] !== g || e[39] !== p ? (N = () => ({
84
+ layout: r,
85
+ data: t,
86
+ gap: s,
87
+ isRect: a,
88
+ animationType: w,
89
+ onClick: c,
90
+ selectedCells: o,
91
+ deselectedColor: n,
92
+ xLabel: m,
93
+ yLabel: p,
94
+ showLegend: l,
95
+ legendSvg: ee.current,
96
+ xAxisTickFormat: u,
97
+ yAxisTickFormat: g,
98
+ xAxisTickLabelProps: h
99
+ }), e[26] = w, e[27] = t, e[28] = n, e[29] = s, e[30] = a, e[31] = r, e[32] = c, e[33] = o, e[34] = l, e[35] = u, e[36] = h, e[37] = m, e[38] = g, e[39] = p, e[40] = N) : N = e[40];
100
+ const P = N;
101
+ let F;
102
+ e[41] !== P || e[42] !== v || e[43] !== i ? (F = () => ({
189
103
  downloadSVG: () => {
190
- u ? Kt((t, e) => {
191
- Qt(t, w ?? "heatmap.svg"), e();
192
- }) : O.current && Qt(O.current, w ?? "heatmap.svg");
104
+ i ? ne(P(), (q, J) => {
105
+ le(q, v ?? "heatmap.svg"), J();
106
+ }) : b.current && le(b.current, v ?? "heatmap.svg");
193
107
  },
194
108
  downloadPNG: () => {
195
- u ? Kt((t, e) => {
196
- qt(t, w ?? "heatmap.png", void 0, e);
197
- }) : O.current && qt(O.current, w ?? "heatmap.png");
109
+ i ? ne(P(), (q, J) => {
110
+ oe(q, v ?? "heatmap.png", void 0, J);
111
+ }) : b.current && oe(b.current, v ?? "heatmap.png");
198
112
  }
199
- }));
200
- const xt = (t) => ut[Math.floor(+t)] ?? "", wt = () => ({
201
- fontSize: 12,
202
- fontFamily: "sans-serif",
203
- textAnchor: we,
204
- angle: xe,
205
- dy: C === "horizontal" ? "0.71em" : "0.25em"
206
- }), Ie = {
207
- fontSize: 14,
208
- fontFamily: "sans-serif",
209
- textAnchor: "middle",
210
- dy: "-0.5em"
211
- }, Tt = (t) => pt[Math.floor(+t)] ?? "", yt = () => ({
212
- fontSize: 12,
213
- fontFamily: "sans-serif",
214
- textAnchor: "end",
215
- dx: "-0.25em",
216
- dy: "0.25em"
217
- }), $e = {
218
- fontSize: 14,
219
- fontFamily: "sans-serif",
220
- textAnchor: "middle"
221
- };
222
- return /* @__PURE__ */ o(je, { parentRef: pe, containerStyle: ge, children: !ht || !mt || n.length === 0 || T === 0 ? null : u ? /* @__PURE__ */ G("div", { style: {
223
- display: "flex",
224
- flexDirection: "column"
225
- }, children: [
226
- It && /* @__PURE__ */ o("div", { style: {
227
- marginLeft: y + _
228
- }, children: /* @__PURE__ */ o(Ke, { canvasCellParams: p, xMax: d, yMax: s, viewportWidth: c, viewportHeight: l, scrollLeft: b.left, scrollTop: b.top, width: c, height: ce, onNavigate: _e }) }),
229
- /* @__PURE__ */ G("div", { style: {
230
- display: "grid",
231
- gridTemplateColumns: K ? `${y}px ${_}px ${c}px ${U + it}px` : `${y}px ${_}px ${c}px`,
232
- gridTemplateRows: `${r.top}px ${l}px ${$}px ${X}px`
233
- }, children: [
234
- /* @__PURE__ */ o("div", { style: {
235
- gridColumn: 1,
236
- gridRow: 2,
237
- width: y,
238
- height: l,
239
- display: "flex",
240
- alignItems: "center",
241
- justifyContent: "center"
242
- }, children: /* @__PURE__ */ o("svg", { width: y, height: l, children: /* @__PURE__ */ o("text", { x: y / 2, y: l / 2, transform: `rotate(-90, ${y / 2}, ${l / 2})`, textAnchor: "middle", dominantBaseline: "middle", fontSize: 14, fontFamily: "sans-serif", children: tt ?? "" }) }) }),
243
- /* @__PURE__ */ o("div", { style: {
244
- gridColumn: 2,
245
- gridRow: 2,
246
- width: _,
247
- height: l,
248
- overflow: "hidden"
249
- }, children: /* @__PURE__ */ o("svg", { width: _, height: l, children: /* @__PURE__ */ o("g", { transform: `translate(${_},${-b.top})`, children: /* @__PURE__ */ o(Ct, { scale: Q, numTicks: T, tickValues: ke, tickFormat: Tt, tickLabelProps: yt }) }) }) }),
250
- /* @__PURE__ */ o("div", { ref: I, onScroll: Re, style: {
251
- gridColumn: 3,
252
- gridRow: 2,
253
- width: c,
254
- height: l,
255
- overflow: "auto",
256
- overscrollBehavior: "contain",
257
- position: "relative"
258
- }, children: /* @__PURE__ */ o("div", { style: {
259
- width: d,
260
- height: s,
261
- position: "relative"
262
- }, children: /* @__PURE__ */ o("canvas", { ref: $t, width: c * (window.devicePixelRatio || 1), height: l * (window.devicePixelRatio || 1), style: {
263
- width: c,
264
- height: l,
265
- position: "sticky",
266
- top: 0,
267
- left: 0,
268
- display: "block",
269
- cursor: "default"
270
- }, onMouseMove: Ee, onMouseLeave: Pe, onClick: Me }) }) }),
271
- at && /* @__PURE__ */ o(qe, { ref: nt, children: at }),
272
- /* @__PURE__ */ o("div", { style: {
273
- gridColumn: 3,
274
- gridRow: 3,
275
- width: c,
276
- height: $,
277
- overflow: "visible"
278
- }, children: /* @__PURE__ */ G("svg", { width: c, height: $, style: {
279
- overflow: "visible"
280
- }, children: [
281
- vt > 0 && /* @__PURE__ */ o("defs", { children: /* @__PURE__ */ G("clipPath", { id: Yt, children: [
282
- /* @__PURE__ */ o("rect", { x: 0, y: 0, width: c, height: $ }),
283
- /* @__PURE__ */ o("rect", { x: -Bt, y: ae, width: Bt, height: Math.max(0, $ - ae) })
284
- ] }) }),
285
- /* @__PURE__ */ o("g", { clipPath: vt > 0 ? `url(#${Yt})` : void 0, children: /* @__PURE__ */ o("g", { transform: `translate(${-b.left},0)`, children: /* @__PURE__ */ o(bt, { top: 0, scale: F, numTicks: n.length, tickFormat: xt, tickValues: be, tickLabelProps: wt }) }) })
286
- ] }) }),
287
- /* @__PURE__ */ o("div", { style: {
288
- gridColumn: 3,
289
- gridRow: 4,
290
- width: c,
291
- height: X,
292
- display: "flex",
293
- alignItems: "center",
294
- justifyContent: "center"
295
- }, children: /* @__PURE__ */ o("svg", { width: c, height: X, children: /* @__PURE__ */ o("text", { x: c / 2, y: X / 2, textAnchor: "middle", dominantBaseline: "middle", fontSize: 14, fontFamily: "sans-serif", children: J ?? "" }) }) }),
296
- K && /* @__PURE__ */ o("div", { style: {
297
- gridColumn: 4,
298
- gridRow: 2,
299
- width: it,
300
- marginLeft: U,
301
- height: l
302
- }, children: /* @__PURE__ */ o("svg", { width: it, height: l, ref: dt, style: {
303
- overflow: "visible"
304
- }, children: /* @__PURE__ */ o(Zt, { colors: W, minValue: 0, maxValue: R, height: l }) }) })
305
- ] })
306
- ] }) : /* @__PURE__ */ G("svg", { width: ht, height: mt, ref: O, children: [
307
- /* @__PURE__ */ o("style", { children: We }),
308
- /* @__PURE__ */ G("g", { transform: `translate(${r.left},${r.top})`, children: [
309
- /* @__PURE__ */ o(Ut, { data: n, xScale: F, yScale: rt, colors: W, maxValue: R, gap: et, isRect: ot, binWidth: V, binHeight: N, animationType: Et, tooltipBody: at, onClick: g, selectedCells: L, deselectedColor: ft }),
310
- /* @__PURE__ */ o(bt, { top: s, scale: F, numTicks: n.length, tickFormat: xt, tickValues: lt, tickLabelProps: wt, label: J ?? "", labelOffset: gt + ct, labelProps: Ie }),
311
- /* @__PURE__ */ o(Ct, { scale: Q, numTicks: T, tickValues: st, tickFormat: Tt, tickLabelProps: yt, label: tt ?? "", labelOffset: Nt + ct, labelProps: $e }),
312
- K && /* @__PURE__ */ o("g", { transform: `translate(${d + U}, 0)`, children: /* @__PURE__ */ o(Zt, { colors: W, minValue: 0, maxValue: R, height: s }) })
313
- ] })
314
- ] }) });
113
+ }), e[41] = P, e[42] = v, e[43] = i, e[44] = F) : F = e[44], ce(ae, F);
114
+ let R;
115
+ e[45] !== w || e[46] !== t || e[47] !== n || e[48] !== s || e[49] !== a || e[50] !== i || e[51] !== r || e[52] !== $ || e[53] !== c || e[54] !== f || e[55] !== d || e[56] !== z || e[57] !== o || e[58] !== l || e[59] !== S || e[60] !== L || e[61] !== u || e[62] !== h || e[63] !== m || e[64] !== g || e[65] !== p ? (R = !d || !f || t.length === 0 || $ === 0 ? null : i ? /* @__PURE__ */ K(de, { legendSvgRef: ee, layout: r, data: t, showMiniMap: S, showLegend: l, xLabel: m, yLabel: p, tooltipBody: L, onClick: c, selectedCells: o, scrollToSelection: z, xAxisTickFormat: u, yAxisTickFormat: g, xAxisTickLabelProps: h }) : /* @__PURE__ */ K(fe, { svgRef: b, layout: r, parentWidth: d, parentHeight: f, data: t, gap: s, isRect: a, animationType: w, tooltipBody: L, onClick: c, selectedCells: o, deselectedColor: n, xLabel: m, yLabel: p, showLegend: l, xAxisTickFormat: u, yAxisTickFormat: g, xAxisTickLabelProps: h }), e[45] = w, e[46] = t, e[47] = n, e[48] = s, e[49] = a, e[50] = i, e[51] = r, e[52] = $, e[53] = c, e[54] = f, e[55] = d, e[56] = z, e[57] = o, e[58] = l, e[59] = S, e[60] = L, e[61] = u, e[62] = h, e[63] = m, e[64] = g, e[65] = p, e[66] = R) : R = e[66];
116
+ let M;
117
+ return e[67] !== D || e[68] !== B || e[69] !== R ? (M = /* @__PURE__ */ K(ge, { parentRef: B, containerStyle: D, children: R }), e[67] = D, e[68] = B, e[69] = R, e[70] = M) : M = e[70], M;
315
118
  };
316
119
  export {
317
- uo as default
120
+ He as default
318
121
  };
319
122
  //# sourceMappingURL=visualization.es5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"visualization.es5.js","sources":["../src/components/Heatmap/Heatmap.tsx"],"sourcesContent":["import { scaleLinear } from \"@visx/scale\";\nimport type { HeatmapProps, ColumnDatum, HeatmapCellId } from \"./types\";\nimport { useImperativeHandle, useRef, useMemo, useCallback, useEffect, useState, useId } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { flushSync } from \"react-dom\";\nimport { downloadAsSVG, downloadSVGAsPNG, measureTextWidth } from \"../../utility\";\nimport { ResponsiveContainer, useResponsiveParentSize } from \"../../responsive\";\nimport { AxisLeft, AxisBottom } from \"@visx/axis\";\nimport HeatmapCells, { type AnyBin } from \"./HeatmapCells\";\nimport { heatmapCellStyles } from \"./HeatmapCell\";\nimport HeatmapLegend, { getHeatmapLegendWidth } from \"./HeatmapLegend\";\nimport { DEFAULT_DESELECTED_COLOR, cellKey, getHeatmapColorScale } from \"./heatmapCellAppearance\";\nimport { drawHeatmapCells, getVisibleRange, hitTestCell, buildBin, type CanvasCellParams } from \"./HeatmapCanvasCells\";\nimport HeatmapMiniMap from \"./HeatmapMiniMap\";\nimport { PlotTooltip, type PlotTooltipHandle } from \"../../tooltip\";\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nconst LEGEND_GAP = 16;\n// Extra breathing room between the tick labels and the axis title, beyond the space\n// reserved for the tick labels themselves.\nconst AXIS_LABEL_GAP = 12;\n// Space reserved for the axis title itself (the \"X-Axis Label\" / \"Y-Axis Label\" text), beyond\n// the tick labels. In scrollable mode this is carved out into its own always-visible pane so\n// the title can't be scrolled out of view - see yTitleWidth/xTitleHeight below.\nconst Y_AXIS_TITLE_SPACE = 40;\nconst X_AXIS_TITLE_SPACE = 70;\nconst TICK_FONT_SIZE = 12;\nconst TICK_FONT_FAMILY = \"sans-serif\";\n// Canvas's measureText and the browser's actual SVG text layout don't agree to the sub-pixel,\n// and the gap widens with string length - pad generously so long tick labels aren't clipped.\nconst TICK_LABEL_WIDTH_SAFETY_FACTOR = 1.15;\n// Extra rows/columns painted/rendered just beyond the visible viewport in scrollable mode, so a\n// cell or tick label is already there before it scrolls into view rather than popping in late.\nconst GRID_OVERSCAN_CELLS = 4;\nconst MINI_MAP_HEIGHT = 50;\nconst X_AXIS_OVERHANG_CLIP_HEIGHT = 10;\nconst getBins = (d: ColumnDatum) => d.rows;\n\n// Minimal scroll offset (along one axis) that brings [boxStart, boxEnd) fully into\n// [current, current+viewportSize) - unchanged if it's already fully visible, and aligned to\n// boxStart if the box itself is bigger than the viewport (can't fit all of it either way).\n// Mirrors Element.scrollIntoView({ block: \"nearest\" })'s semantics.\nfunction nearestScrollOffset(current: number, viewportSize: number, boxStart: number, boxEnd: number): number {\n if (boxEnd - boxStart > viewportSize) return boxStart;\n if (boxStart < current) return boxStart;\n if (boxEnd > current + viewportSize) return boxEnd - viewportSize;\n return current;\n}\n\nfunction maxOf<Datum>(data: Datum[], value: (d: Datum) => number | null): number {\n // Null counts are gaps in the data and don't participate in the max. reduce rather than\n // Math.max(...spread): returns 0 (not -Infinity) for empty/all-null input, with no\n // argument-count ceiling.\n return data.reduce((max, datum) => {\n const datumValue = value(datum);\n return datumValue == null ? max : Math.max(max, datumValue);\n }, 0);\n}\n\nconst Heatmap = ({\n data,\n onClick,\n ref,\n downloadFileName,\n colors,\n xLabel,\n yLabel,\n tooltipBody,\n margin,\n gap = 2,\n isRect = true,\n animationType,\n showLegend = true,\n width,\n height,\n xLabelOrientation = \"vertical\",\n selectedCells,\n deselectedColor,\n cellWidth,\n cellHeight,\n scrollToSelection,\n showMiniMap = false,\n}: HeatmapProps) => {\n const { parentRef, containerStyle, width: parentWidth, height: parentHeight } = useResponsiveParentSize({ width, height });\n const svgRef = useRef<SVGSVGElement | null>(null);\n const isScrollable = cellWidth != null && cellHeight != null;\n\n // Frozen-pane refs: only used when isScrollable. mainPaneRef is the only pane with a real\n // native scrollbar - the cell canvas and the row/column tick-label panes all track its scroll\n // position by reading it directly in handleGridScroll (rAF-throttled), rather than being\n // natively scrolled themselves: the canvas repaints imperatively (drawCanvas), and the tick\n // label SVGs are viewport-sized and shift via a transform driven by axisScrollPos state (see\n // below) - both cheaper than the pane actually scrolling 15,000px+ of real content.\n const mainPaneRef = useRef<HTMLDivElement | null>(null);\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n const legendSvgRef = useRef<SVGSVGElement | null>(null);\n const hoveredCellRef = useRef<HeatmapCellId | null>(null);\n const canvasTooltipRef = useRef<PlotTooltipHandle<AnyBin>>(null);\n const drawRafRef = useRef<number | null>(null);\n \n const previousSelectionKeysRef = useRef<Set<string>>(new Set());\n\n useEffect(() => () => {\n if (drawRafRef.current != null) cancelAnimationFrame(drawRafRef.current);\n }, []);\n\n const allColNames = useMemo(() => data.map((d) => d.columnName), [data]);\n const allRowNames = useMemo(() => data[0]?.rows.map((r) => r.rowName) ?? [], [data]);\n const maxValue = useMemo(() => maxOf(data, (d) => maxOf(getBins(d), (r) => r.count)), [data]);\n const numRows = useMemo(() => maxOf(data, (d) => getBins(d).length), [data]);\n\n // Measured (not estimated) pixel width of the longest label, so any label - short or long,\n // narrow or wide characters - gets exactly the room it needs rather than a per-character guess.\n const maxColNameWidth = useMemo(\n () => allColNames.reduce((m, name) => Math.max(m, measureTextWidth(name, TICK_FONT_SIZE, TICK_FONT_FAMILY)), 0) * TICK_LABEL_WIDTH_SAFETY_FACTOR,\n [allColNames]\n );\n const maxRowNameWidth = useMemo(\n () => allRowNames.reduce((m, name) => Math.max(m, measureTextWidth(name, TICK_FONT_SIZE, TICK_FONT_FAMILY)), 0) * TICK_LABEL_WIDTH_SAFETY_FACTOR,\n [allRowNames]\n );\n\n const xTickAngle = xLabelOrientation === \"horizontal\" ? 0 : xLabelOrientation === \"vertical\" ? -90 : xLabelOrientation === \"leftDiagonal\" ? -45 : 45;\n const xTickTextAnchor: \"middle\" | \"start\" | \"end\" = xLabelOrientation === \"horizontal\" ? \"middle\" : xLabelOrientation === \"rightDiagonal\" ? \"start\" : \"end\";\n const rotatedColNameSpace = maxColNameWidth;\n const colLabelHeight = xLabelOrientation === \"horizontal\" ? 12 : xLabelOrientation === \"vertical\" ? rotatedColNameSpace : rotatedColNameSpace * Math.SQRT1_2;\n\n const xTickLeftOverhangMax = xLabelOrientation === \"leftDiagonal\" ? colLabelHeight : 0;\n\n const colorsKey = colors.join(\"\\u0000\");\n const stableColors = useMemo(\n () => colorsKey.split(\"\\u0000\") as [string, string, ...string[]],\n [colorsKey]\n );\n\n const legendWidth = useMemo(() => getHeatmapLegendWidth(0, maxValue), [maxValue]);\n const defaultRight = showLegend ? legendWidth + LEGEND_GAP : 10;\n const defaultTop = 20;\n const labelBottomSpace = colLabelHeight + AXIS_LABEL_GAP + X_AXIS_TITLE_SPACE;\n const marg = margin ?? {\n top: defaultTop,\n left: maxRowNameWidth + AXIS_LABEL_GAP + Y_AXIS_TITLE_SPACE,\n right: defaultRight,\n bottom: labelBottomSpace + TICK_FONT_SIZE,\n };\n\n const miniMapSpace = isScrollable && showMiniMap ? MINI_MAP_HEIGHT : 0;\n const availableWidth = Math.max(0, parentWidth - marg.left - marg.right);\n const availableHeight = Math.max(0, parentHeight - marg.bottom - marg.top - miniMapSpace);\n\n const xMax = isScrollable ? data.length * (cellWidth as number) : availableWidth;\n const yMax = isScrollable ? numRows * (cellHeight as number) : availableHeight;\n const viewportWidth = isScrollable ? Math.min(xMax, availableWidth) : xMax;\n const viewportHeight = isScrollable ? Math.min(yMax, availableHeight) : yMax;\n\n const yTitleWidth = Y_AXIS_TITLE_SPACE;\n const yTickLabelWidth = Math.max(0, marg.left - yTitleWidth);\n const xTitleHeight = X_AXIS_TITLE_SPACE;\n const xTickLabelHeight = Math.max(0, marg.bottom - xTitleHeight);\n\n const binWidth = xMax / data.length;\n const binHeight = yMax / numRows;\n\n const xScale = useMemo(\n () => scaleLinear<number>({ domain: [0, data.length], range: [0, xMax] }),\n [data.length, xMax]\n );\n const yScale = useMemo(\n () => scaleLinear<number>({ domain: [0, numRows], range: [yMax, 0] }),\n [numRows, yMax]\n );\n const cellYScale = useCallback((row: number) => yScale(row + 1), [yScale]);\n\n const xTickValues = useMemo(() => data.map((_, i) => i + 0.5), [data]);\n const yTickValues = useMemo(() => data[0]?.rows.map((_, i) => i + 0.5) ?? [], [data]);\n\n const resolvedDeselectedColor = deselectedColor ?? DEFAULT_DESELECTED_COLOR;\n const colorScale = useMemo(\n () => getHeatmapColorScale(stableColors, maxValue),\n [stableColors, maxValue]\n );\n const selectedKeys = useMemo(\n () => (selectedCells?.length ? new Set(selectedCells.map(cellKey)) : null),\n [selectedCells]\n );\n\n // Everything the canvas draw loop and hit-testing need to place/color a cell. Only changes when\n // a prop that actually affects appearance/geometry changes - never on scroll or hover, so\n // drawCanvas (and, through it, handleGridScroll) keeps a stable identity across scroll events.\n const canvasCellParams: CanvasCellParams = useMemo(\n () => ({\n data, numRows, xScale, cellYScale, colorScale, gap, isRect, binWidth, binHeight,\n yMax, selectedKeys, deselectedColor: resolvedDeselectedColor,\n }),\n [data, numRows, xScale, cellYScale, colorScale, gap, isRect, binWidth, binHeight, yMax, selectedKeys, resolvedDeselectedColor]\n );\n\n // Imperative canvas paint - deliberately never routed through React state. Driven both by prop\n // changes (the effect below) and by native scroll events (handleGridScroll), and it's the\n // scroll case that matters: an earlier attempt at this drove the redraw through a React state\n // update on every scroll frame, which forced React to reconcile on every frame and made\n // scrolling *slower* than the plain (if huge) static SVG it replaced. Reading scroll position\n // directly off the DOM and painting immediately keeps scrolling itself entirely on the\n // browser's native, free compositor path - React is never involved.\n const drawCanvas = useCallback(() => {\n const canvas = canvasRef.current;\n const main = mainPaneRef.current;\n if (!canvas || !main) return;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return;\n const dpr = window.devicePixelRatio || 1;\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n ctx.clearRect(0, 0, viewportWidth, viewportHeight);\n const range = getVisibleRange(canvasCellParams, main.scrollLeft, main.scrollTop, viewportWidth, viewportHeight, GRID_OVERSCAN_CELLS);\n ctx.translate(-main.scrollLeft, -main.scrollTop);\n drawHeatmapCells(ctx, canvasCellParams, range, hoveredCellRef.current);\n }, [canvasCellParams, viewportWidth, viewportHeight]);\n\n useEffect(() => {\n if (isScrollable) drawCanvas();\n }, [isScrollable, drawCanvas]);\n\n const [axisScrollPos, setAxisScrollPos] = useState({ left: 0, top: 0 });\n const xTickClipId = useId();\n // Shrinks to 0 as soon as scrolling moves away from the start, so the reveal only ever applies\n // to column 0's genuine edge case (nothing real to its left) and doesn't linger over the y-axis\n // pane at other scroll positions, where a real, adjacent column - not empty space - would\n // otherwise show through.\n const xTickLeftOverhang = Math.max(0, xTickLeftOverhangMax - axisScrollPos.left);\n const axisVisibleRange = useMemo(\n () => getVisibleRange(canvasCellParams, axisScrollPos.left, axisScrollPos.top, viewportWidth, viewportHeight, GRID_OVERSCAN_CELLS),\n [canvasCellParams, axisScrollPos.left, axisScrollPos.top, viewportWidth, viewportHeight]\n );\n const visibleXTickValues = useMemo(\n () => xTickValues.slice(axisVisibleRange.colStart, axisVisibleRange.colEnd + 1),\n [xTickValues, axisVisibleRange.colStart, axisVisibleRange.colEnd]\n );\n const visibleYTickValues = useMemo(\n () => yTickValues.slice(axisVisibleRange.rowStart, axisVisibleRange.rowEnd + 1),\n [yTickValues, axisVisibleRange.rowStart, axisVisibleRange.rowEnd]\n );\n\n // Auto-scrolls to reveal newly-selected cells \n useEffect(() => {\n const previousKeys = previousSelectionKeysRef.current;\n const cells = selectedCells ?? [];\n const newCells = cells.filter((cell) => !previousKeys.has(cellKey(cell)));\n previousSelectionKeysRef.current = new Set(cells.map(cellKey));\n\n const main = mainPaneRef.current;\n if (!scrollToSelection || !isScrollable || !main || newCells.length === 0) return;\n\n let minCol = Infinity, maxCol = -Infinity, minRow = Infinity, maxRow = -Infinity;\n for (const cell of newCells) {\n if (cell.column < minCol) minCol = cell.column;\n if (cell.column > maxCol) maxCol = cell.column;\n if (cell.row < minRow) minRow = cell.row;\n if (cell.row > maxRow) maxRow = cell.row;\n }\n\n const boxLeft = minCol * binWidth;\n const boxRight = (maxCol + 1) * binWidth;\n const boxTop = yMax - (maxRow + 1) * binHeight;\n const boxBottom = yMax - minRow * binHeight;\n\n const targetLeft = nearestScrollOffset(main.scrollLeft, viewportWidth, boxLeft, boxRight);\n const targetTop = nearestScrollOffset(main.scrollTop, viewportHeight, boxTop, boxBottom);\n if (targetLeft !== main.scrollLeft || targetTop !== main.scrollTop) {\n main.scrollTo({ left: targetLeft, top: targetTop, behavior: \"smooth\" });\n }\n }, [selectedCells, scrollToSelection, isScrollable, binWidth, binHeight, yMax, viewportWidth, viewportHeight]);\n\n const handleGridScroll = useCallback(() => {\n const main = mainPaneRef.current;\n if (!main) return;\n if (drawRafRef.current != null) return;\n drawRafRef.current = requestAnimationFrame(() => {\n drawRafRef.current = null;\n drawCanvas();\n setAxisScrollPos({ left: main.scrollLeft, top: main.scrollTop });\n });\n }, [drawCanvas]);\n\n // Drives the minimap: scrollTo dispatches a native scroll event on mainPaneRef, which\n // handleGridScroll picks up the same way it would a manual scroll (repainting the canvas and\n // updating axisScrollPos, which also moves the minimap's own viewport rectangle).\n const handleMiniMapNavigate = useCallback((left: number, top: number) => {\n mainPaneRef.current?.scrollTo({ left, top });\n }, []);\n\n const handleCanvasMouseMove = useCallback((event: React.MouseEvent<HTMLCanvasElement>) => {\n const main = mainPaneRef.current;\n if (!main) return;\n const contentX = event.nativeEvent.offsetX + main.scrollLeft;\n const contentY = event.nativeEvent.offsetY + main.scrollTop;\n const cell = hitTestCell(canvasCellParams, contentX, contentY);\n // Matches the SVG path's heatmapCellStyles (`.visx-heatmap-cell { cursor: pointer }`):\n // pointer over any real cell - including a null-count one, which still hit-tests true here,\n // same as it still being a hit target there via `pointer-events: all` - not just where\n // onClick is wired up, so hover-only tooltips still get the affordance.\n event.currentTarget.style.cursor = cell ? \"pointer\" : \"default\";\n const prev = hoveredCellRef.current;\n if (prev?.row !== cell?.row || prev?.column !== cell?.column) {\n hoveredCellRef.current = cell;\n drawCanvas();\n }\n if (cell) {\n const bin = buildBin(canvasCellParams, cell);\n if (bin) canvasTooltipRef.current?.show(bin, event);\n } else {\n canvasTooltipRef.current?.hide();\n }\n }, [canvasCellParams, drawCanvas]);\n\n const handleCanvasMouseLeave = useCallback((event: React.MouseEvent<HTMLCanvasElement>) => {\n event.currentTarget.style.cursor = \"default\";\n if (hoveredCellRef.current) {\n hoveredCellRef.current = null;\n drawCanvas();\n }\n canvasTooltipRef.current?.hide();\n }, [drawCanvas]);\n\n const handleCanvasClick = useCallback((event: React.MouseEvent<HTMLCanvasElement>) => {\n const main = mainPaneRef.current;\n if (!main || !onClick) return;\n const contentX = event.nativeEvent.offsetX + main.scrollLeft;\n const contentY = event.nativeEvent.offsetY + main.scrollTop;\n const cell = hitTestCell(canvasCellParams, contentX, contentY);\n if (!cell) return;\n const bin = buildBin(canvasCellParams, cell);\n if (bin) onClick(bin);\n }, [canvasCellParams, onClick]);\n\n // Builds a standalone, off-DOM <svg> at full content size for export. Both the on-screen cell\n // layer (a canvas painting only the current scroll viewport) and the on-screen row/column axis\n // panes (SVGs now windowed to the visible tick range, see axisVisibleRange above) only ever\n // hold a slice of the full grid - neither can just be cloned for export without capturing an\n // incomplete/mispositioned snapshot. So all three (cells, row axis, column axis) are instead\n // rendered fresh here in one detached tree - synchronously, full grid, no windowing - purely to\n // snapshot into the export SVG below.\n const buildScrollableExportSVG = (): SVGSVGElement | null => {\n const exportSvg = document.createElementNS(SVG_NS, \"svg\") as SVGSVGElement;\n exportSvg.setAttribute(\"width\", String(marg.left + xMax + marg.right));\n exportSvg.setAttribute(\"height\", String(marg.top + yMax + marg.bottom));\n\n const appendClone = (source: SVGSVGElement, x: number, y: number) => {\n const group = document.createElementNS(SVG_NS, \"g\");\n group.setAttribute(\"transform\", `translate(${x},${y})`);\n source.childNodes.forEach((node) => group.appendChild(node.cloneNode(true)));\n exportSvg.appendChild(group);\n };\n\n let fullCells: SVGSVGElement | null = null;\n let fullRowAxis: SVGSVGElement | null = null;\n let fullColAxis: SVGSVGElement | null = null;\n const exportContainer = document.createElement(\"div\");\n const exportRoot = createRoot(exportContainer);\n flushSync(() => {\n exportRoot.render(\n <>\n <svg width={xMax} height={yMax} ref={(el) => { fullCells = el; }}>\n <HeatmapCells\n data={data}\n xScale={xScale}\n yScale={cellYScale}\n colors={stableColors}\n maxValue={maxValue}\n gap={gap}\n isRect={isRect}\n binWidth={binWidth}\n binHeight={binHeight}\n animationType={animationType}\n onClick={onClick}\n selectedCells={selectedCells}\n deselectedColor={deselectedColor}\n />\n </svg>\n <svg width={yTickLabelWidth} height={yMax} ref={(el) => { fullRowAxis = el; }}>\n <g transform={`translate(${yTickLabelWidth},0)`}>\n <AxisLeft\n scale={yScale}\n numTicks={numRows}\n tickValues={yTickValues}\n tickFormat={yAxisTickFormat}\n tickLabelProps={yAxisTickLabelProps}\n />\n </g>\n </svg>\n <svg width={xMax} height={xTickLabelHeight} ref={(el) => { fullColAxis = el; }}>\n <AxisBottom\n top={0}\n scale={xScale}\n numTicks={data.length}\n tickFormat={xAxisTickFormat}\n tickValues={xTickValues}\n tickLabelProps={xAxisTickLabelProps}\n />\n </svg>\n </>\n );\n });\n if (fullCells) appendClone(fullCells, marg.left, marg.top);\n if (fullRowAxis) appendClone(fullRowAxis, yTitleWidth, marg.top);\n if (fullColAxis) appendClone(fullColAxis, marg.left, marg.top + yMax);\n exportRoot.unmount();\n\n if (showLegend && legendSvgRef.current) {\n appendClone(legendSvgRef.current, marg.left + xMax + LEGEND_GAP, marg.top);\n }\n\n // The axis titles live in their own always-visible panes on screen (so scrolling can't\n // carry them out of view) rather than as visx's built-in centered-on-the-full-axis label,\n // so they're added here directly instead of being cloned from a live pane.\n const appendTitle = (text: string, x: number, y: number, rotate: boolean) => {\n const titleEl = document.createElementNS(SVG_NS, \"text\");\n titleEl.setAttribute(\"x\", String(x));\n titleEl.setAttribute(\"y\", String(y));\n if (rotate) titleEl.setAttribute(\"transform\", `rotate(-90, ${x}, ${y})`);\n titleEl.setAttribute(\"text-anchor\", \"middle\");\n titleEl.setAttribute(\"dominant-baseline\", \"middle\");\n titleEl.setAttribute(\"font-size\", \"14\");\n titleEl.setAttribute(\"font-family\", \"sans-serif\");\n titleEl.textContent = text;\n exportSvg.appendChild(titleEl);\n };\n if (yLabel) appendTitle(yLabel, yTitleWidth / 2, marg.top + yMax / 2, true);\n if (xLabel) appendTitle(xLabel, marg.left + xMax / 2, marg.top + yMax + xTickLabelHeight + xTitleHeight / 2, false);\n\n return exportSvg;\n };\n\n // downloadSVGAsPNG reads the element's layout box asynchronously (after its image loads), so\n // an off-DOM export node has to stay attached (off-screen) until onComplete fires. The\n // off-screen positioning goes on a wrapper div, never on the <svg> itself - that svg is what\n // gets serialized and downloaded, so any inline style set directly on it (e.g. `left:\n // -99999px`) would be baked into the exported file, rendering everything pushed off-canvas\n // and out of view - the exact \"blank image\" bug this replaced.\n const withOffscreenExportSVG = (run: (svg: SVGSVGElement, onDone: () => void) => void) => {\n const svg = buildScrollableExportSVG();\n if (!svg) return;\n const wrapper = document.createElement(\"div\");\n wrapper.style.position = \"absolute\";\n wrapper.style.top = \"0\";\n wrapper.style.left = \"-99999px\";\n wrapper.appendChild(svg);\n document.body.appendChild(wrapper);\n run(svg, () => {\n if (wrapper.parentNode) document.body.removeChild(wrapper);\n });\n };\n\n useImperativeHandle(ref, () => ({\n downloadSVG: () => {\n if (isScrollable) {\n withOffscreenExportSVG((svg, onDone) => {\n downloadAsSVG(svg, downloadFileName ?? \"heatmap.svg\");\n onDone();\n });\n } else if (svgRef.current) {\n downloadAsSVG(svgRef.current, downloadFileName ?? \"heatmap.svg\");\n }\n },\n downloadPNG: () => {\n if (isScrollable) {\n withOffscreenExportSVG((svg, onDone) => {\n downloadSVGAsPNG(svg, downloadFileName ?? \"heatmap.png\", undefined, onDone);\n });\n } else if (svgRef.current) {\n downloadSVGAsPNG(svgRef.current, downloadFileName ?? \"heatmap.png\");\n }\n },\n }));\n // No deps array: buildScrollableExportSVG (and the plain closures above) now render the cells\n // and both axes fresh on every export (see its comment), reading a long list of render-scoped\n // values - hand-maintaining an exhaustive deps list for that is exactly the kind of duplicated\n // upkeep this refactor was trying to reduce elsewhere, and risks a stale export if one is ever\n // missed. Recomputing this handle (two small closures) on every render is negligible cost.\n\n const xAxisTickFormat = (d: number | { valueOf(): number }) => allColNames[Math.floor(+d)] ?? \"\";\n const xAxisTickLabelProps = () => ({\n fontSize: 12,\n fontFamily: \"sans-serif\",\n textAnchor: xTickTextAnchor,\n angle: xTickAngle,\n dy: xLabelOrientation === \"horizontal\" ? \"0.71em\" : \"0.25em\",\n });\n const xAxisLabelProps = {\n fontSize: 14,\n fontFamily: \"sans-serif\",\n textAnchor: \"middle\" as const,\n dy: \"-0.5em\",\n };\n const yAxisTickFormat = (d: number | { valueOf(): number }) => allRowNames[Math.floor(+d)] ?? \"\";\n const yAxisTickLabelProps = () => ({\n fontSize: 12,\n fontFamily: \"sans-serif\",\n textAnchor: \"end\" as const,\n dx: \"-0.25em\",\n dy: \"0.25em\",\n });\n const yAxisLabelProps = {\n fontSize: 14,\n fontFamily: \"sans-serif\",\n textAnchor: \"middle\" as const,\n };\n\n return (\n <ResponsiveContainer parentRef={parentRef} containerStyle={containerStyle}>\n {!parentWidth || !parentHeight || data.length === 0 || numRows === 0 ? null : isScrollable ? (\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n {showMiniMap && (\n <div style={{ marginLeft: yTitleWidth + yTickLabelWidth }}>\n <HeatmapMiniMap\n canvasCellParams={canvasCellParams}\n xMax={xMax}\n yMax={yMax}\n viewportWidth={viewportWidth}\n viewportHeight={viewportHeight}\n scrollLeft={axisScrollPos.left}\n scrollTop={axisScrollPos.top}\n width={viewportWidth}\n height={MINI_MAP_HEIGHT}\n onNavigate={handleMiniMapNavigate}\n />\n </div>\n )}\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: showLegend\n ? `${yTitleWidth}px ${yTickLabelWidth}px ${viewportWidth}px ${LEGEND_GAP + legendWidth}px`\n : `${yTitleWidth}px ${yTickLabelWidth}px ${viewportWidth}px`,\n gridTemplateRows: `${marg.top}px ${viewportHeight}px ${xTickLabelHeight}px ${xTitleHeight}px`,\n }}\n >\n <div style={{ gridColumn: 1, gridRow: 2, width: yTitleWidth, height: viewportHeight, display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\n <svg width={yTitleWidth} height={viewportHeight}>\n <text\n x={yTitleWidth / 2}\n y={viewportHeight / 2}\n transform={`rotate(-90, ${yTitleWidth / 2}, ${viewportHeight / 2})`}\n textAnchor=\"middle\"\n dominantBaseline=\"middle\"\n fontSize={14}\n fontFamily=\"sans-serif\"\n >\n {yLabel ?? \"\"}\n </text>\n </svg>\n </div>\n <div style={{ gridColumn: 2, gridRow: 2, width: yTickLabelWidth, height: viewportHeight, overflow: \"hidden\" }}>\n <svg width={yTickLabelWidth} height={viewportHeight}>\n <g transform={`translate(${yTickLabelWidth},${-axisScrollPos.top})`}>\n <AxisLeft\n scale={yScale}\n numTicks={numRows}\n tickValues={visibleYTickValues}\n tickFormat={yAxisTickFormat}\n tickLabelProps={yAxisTickLabelProps}\n />\n </g>\n </svg>\n </div>\n <div\n ref={mainPaneRef}\n onScroll={handleGridScroll}\n style={{ gridColumn: 3, gridRow: 2, width: viewportWidth, height: viewportHeight, overflow: \"auto\", overscrollBehavior: \"contain\", position: \"relative\" }}\n >\n <div style={{ width: xMax, height: yMax, position: \"relative\" }}>\n <canvas\n ref={canvasRef}\n width={viewportWidth * (window.devicePixelRatio || 1)}\n height={viewportHeight * (window.devicePixelRatio || 1)}\n style={{\n width: viewportWidth,\n height: viewportHeight,\n position: \"sticky\",\n top: 0,\n left: 0,\n display: \"block\",\n cursor: \"default\",\n }}\n onMouseMove={handleCanvasMouseMove}\n onMouseLeave={handleCanvasMouseLeave}\n onClick={handleCanvasClick}\n />\n </div>\n </div>\n {tooltipBody && <PlotTooltip ref={canvasTooltipRef}>{tooltipBody}</PlotTooltip>}\n <div style={{ gridColumn: 3, gridRow: 3, width: viewportWidth, height: xTickLabelHeight, overflow: \"visible\" }}>\n <svg width={viewportWidth} height={xTickLabelHeight} style={{ overflow: \"visible\" }}>\n {xTickLeftOverhangMax > 0 && (\n <defs>\n <clipPath id={xTickClipId}>\n {/* The pane itself, always fully visible. */}\n <rect x={0} y={0} width={viewportWidth} height={xTickLabelHeight} />\n {/* The leftDiagonal overhang reach (shrinks to 0 as axisScrollPos.left grows\n - see xTickLeftOverhang) - full height except a thin strip at the top,\n where the axis's own tick-line stub would otherwise show through\n underneath the y-axis pane. Leaving that strip out of the clip hides just\n the stub; the label text, which sits lower, is unaffected. */}\n <rect\n x={-xTickLeftOverhang}\n y={X_AXIS_OVERHANG_CLIP_HEIGHT}\n width={xTickLeftOverhang}\n height={Math.max(0, xTickLabelHeight - X_AXIS_OVERHANG_CLIP_HEIGHT)}\n />\n </clipPath>\n </defs>\n )}\n <g clipPath={xTickLeftOverhangMax > 0 ? `url(#${xTickClipId})` : undefined}>\n <g transform={`translate(${-axisScrollPos.left},0)`}>\n <AxisBottom\n top={0}\n scale={xScale}\n numTicks={data.length}\n tickFormat={xAxisTickFormat}\n tickValues={visibleXTickValues}\n tickLabelProps={xAxisTickLabelProps}\n />\n </g>\n </g>\n </svg>\n </div>\n {/* X-axis title: fixed in place (not scroll-synced) so it's always visible, centered on\n the visible viewport rather than the full data range */}\n <div style={{ gridColumn: 3, gridRow: 4, width: viewportWidth, height: xTitleHeight, display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\n <svg width={viewportWidth} height={xTitleHeight}>\n <text\n x={viewportWidth / 2}\n y={xTitleHeight / 2}\n textAnchor=\"middle\"\n dominantBaseline=\"middle\"\n fontSize={14}\n fontFamily=\"sans-serif\"\n >\n {xLabel ?? \"\"}\n </text>\n </svg>\n </div>\n {showLegend && (\n <div style={{ gridColumn: 4, gridRow: 2, width: legendWidth, marginLeft: LEGEND_GAP, height: viewportHeight }}>\n <svg width={legendWidth} height={viewportHeight} ref={legendSvgRef} style={{ overflow: \"visible\" }}>\n <HeatmapLegend\n colors={stableColors}\n minValue={0}\n maxValue={maxValue}\n height={viewportHeight}\n />\n </svg>\n </div>\n )}\n </div>\n </div>\n ) : (\n <svg width={parentWidth} height={parentHeight} ref={svgRef}>\n {/* Inside the <svg> so cell hover styling survives the SVG/PNG download serialization */}\n <style>{heatmapCellStyles}</style>\n <g transform={`translate(${marg.left},${marg.top})`}>\n <HeatmapCells\n data={data}\n xScale={xScale}\n yScale={cellYScale}\n colors={stableColors}\n maxValue={maxValue}\n gap={gap}\n isRect={isRect}\n binWidth={binWidth}\n binHeight={binHeight}\n animationType={animationType}\n tooltipBody={tooltipBody}\n onClick={onClick}\n selectedCells={selectedCells}\n deselectedColor={deselectedColor}\n />\n <AxisBottom\n top={yMax}\n scale={xScale}\n numTicks={data.length}\n tickFormat={xAxisTickFormat}\n tickValues={xTickValues}\n tickLabelProps={xAxisTickLabelProps}\n label={xLabel ?? \"\"}\n labelOffset={colLabelHeight + AXIS_LABEL_GAP}\n labelProps={xAxisLabelProps}\n />\n <AxisLeft\n scale={yScale}\n numTicks={numRows}\n tickValues={yTickValues}\n tickFormat={yAxisTickFormat}\n tickLabelProps={yAxisTickLabelProps}\n label={yLabel ?? \"\"}\n labelOffset={maxRowNameWidth + AXIS_LABEL_GAP}\n labelProps={yAxisLabelProps}\n />\n {showLegend && (\n <g transform={`translate(${xMax + LEGEND_GAP}, 0)`}>\n <HeatmapLegend\n colors={stableColors}\n minValue={0}\n maxValue={maxValue}\n height={yMax}\n />\n </g>\n )}\n </g>\n </svg>\n )}\n </ResponsiveContainer>\n );\n};\n\nexport default Heatmap;\n"],"names":["SVG_NS","LEGEND_GAP","AXIS_LABEL_GAP","Y_AXIS_TITLE_SPACE","X_AXIS_TITLE_SPACE","TICK_FONT_SIZE","TICK_FONT_FAMILY","TICK_LABEL_WIDTH_SAFETY_FACTOR","GRID_OVERSCAN_CELLS","MINI_MAP_HEIGHT","X_AXIS_OVERHANG_CLIP_HEIGHT","getBins","d","rows","nearestScrollOffset","current","viewportSize","boxStart","boxEnd","maxOf","data","value","reduce","max","datum","datumValue","Math","Heatmap","onClick","ref","downloadFileName","colors","xLabel","yLabel","tooltipBody","margin","gap","isRect","animationType","showLegend","width","height","xLabelOrientation","selectedCells","deselectedColor","cellWidth","cellHeight","scrollToSelection","showMiniMap","parentRef","containerStyle","parentWidth","parentHeight","useResponsiveParentSize","svgRef","useRef","isScrollable","mainPaneRef","canvasRef","legendSvgRef","hoveredCellRef","canvasTooltipRef","drawRafRef","previousSelectionKeysRef","Set","useEffect","cancelAnimationFrame","allColNames","useMemo","map","columnName","allRowNames","r","rowName","maxValue","count","numRows","length","maxColNameWidth","m","name","measureTextWidth","maxRowNameWidth","xTickAngle","xTickTextAnchor","rotatedColNameSpace","colLabelHeight","SQRT1_2","xTickLeftOverhangMax","colorsKey","join","stableColors","split","legendWidth","getHeatmapLegendWidth","defaultRight","defaultTop","labelBottomSpace","marg","top","left","right","bottom","miniMapSpace","availableWidth","availableHeight","xMax","yMax","viewportWidth","min","viewportHeight","yTitleWidth","yTickLabelWidth","xTitleHeight","xTickLabelHeight","binWidth","binHeight","xScale","scaleLinear","domain","range","yScale","cellYScale","useCallback","row","xTickValues","_","i","yTickValues","resolvedDeselectedColor","DEFAULT_DESELECTED_COLOR","colorScale","getHeatmapColorScale","selectedKeys","cellKey","canvasCellParams","drawCanvas","canvas","main","ctx","getContext","dpr","window","devicePixelRatio","setTransform","clearRect","getVisibleRange","scrollLeft","scrollTop","translate","drawHeatmapCells","axisScrollPos","setAxisScrollPos","useState","xTickClipId","useId","xTickLeftOverhang","axisVisibleRange","visibleXTickValues","slice","colStart","colEnd","visibleYTickValues","rowStart","rowEnd","previousKeys","cells","newCells","filter","cell","has","minCol","Infinity","maxCol","minRow","maxRow","column","boxLeft","boxRight","boxTop","boxBottom","targetLeft","targetTop","scrollTo","behavior","handleGridScroll","requestAnimationFrame","handleMiniMapNavigate","handleCanvasMouseMove","event","contentX","nativeEvent","offsetX","contentY","offsetY","hitTestCell","currentTarget","style","cursor","prev","bin","buildBin","show","hide","handleCanvasMouseLeave","handleCanvasClick","buildScrollableExportSVG","exportSvg","document","createElementNS","setAttribute","String","appendClone","source","x","y","group","childNodes","forEach","node","appendChild","cloneNode","fullCells","fullRowAxis","fullColAxis","exportContainer","createElement","exportRoot","createRoot","flushSync","render","jsxs","Fragment","jsx","el","HeatmapCells","AxisLeft","yAxisTickFormat","yAxisTickLabelProps","AxisBottom","xAxisTickFormat","xAxisTickLabelProps","unmount","appendTitle","text","rotate","titleEl","textContent","withOffscreenExportSVG","run","svg","wrapper","position","body","parentNode","removeChild","useImperativeHandle","downloadSVG","onDone","downloadAsSVG","downloadPNG","downloadSVGAsPNG","undefined","floor","fontSize","fontFamily","textAnchor","angle","dy","xAxisLabelProps","dx","yAxisLabelProps","ResponsiveContainer","display","flexDirection","marginLeft","HeatmapMiniMap","gridTemplateColumns","gridTemplateRows","gridColumn","gridRow","alignItems","justifyContent","overflow","overscrollBehavior","PlotTooltip","HeatmapLegend","heatmapCellStyles"],"mappings":"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"}
1
+ {"version":3,"file":"visualization.es5.js","sources":["../src/components/Heatmap/Heatmap.tsx"],"sourcesContent":["import type { HeatmapProps } from \"./types\";\nimport { useImperativeHandle, useRef, useMemo } from \"react\";\nimport { downloadAsSVG, downloadSVGAsPNG } from \"../../utility\";\nimport { ResponsiveContainer, useResponsiveParentSize } from \"../../responsive\";\nimport { makeTickFormat, getXAxisTickLabelProps } from \"./heatmapAxisProps\";\nimport { useHeatmapLayout } from \"./heatmapLayout\";\nimport { withOffscreenExportSVG } from \"./scrollable/heatmapExport\";\nimport HeatmapScrollableGrid from \"./scrollable/HeatmapScrollableGrid\";\nimport HeatmapStaticSvg from \"./HeatmapStaticSvg\";\n\nconst Heatmap = ({\n data,\n onClick,\n ref,\n downloadFileName,\n colors,\n colorDomain,\n xLabel,\n yLabel,\n tooltipBody,\n margin,\n gap = 2,\n isRect = true,\n animationType,\n showLegend = true,\n width,\n height,\n xLabelOrientation = \"vertical\",\n selectedCells,\n deselectedColor,\n cellWidth,\n cellHeight,\n scrollToSelection,\n showMiniMap = false,\n}: HeatmapProps) => {\n const { parentRef, containerStyle, width: parentWidth, height: parentHeight } = useResponsiveParentSize({ width, height });\n const svgRef = useRef<SVGSVGElement | null>(null);\n const legendSvgRef = useRef<SVGSVGElement | null>(null);\n const isScrollable = cellWidth != null && cellHeight != null;\n\n const layout = useHeatmapLayout({\n data, colorDomain, colors, xLabelOrientation, margin, showLegend, isScrollable,\n cellWidth, cellHeight, parentWidth, parentHeight, showMiniMap, gap, isRect,\n selectedCells, deselectedColor,\n });\n const { allColNames, allRowNames, numRows } = layout;\n\n const xAxisTickFormat = useMemo(() => makeTickFormat(allColNames), [allColNames]);\n const yAxisTickFormat = useMemo(() => makeTickFormat(allRowNames), [allRowNames]);\n const xAxisTickLabelProps = useMemo(() => getXAxisTickLabelProps(xLabelOrientation), [xLabelOrientation]);\n\n const buildExportOptions = () => ({\n layout, data, gap, isRect, animationType, onClick, selectedCells, deselectedColor,\n xLabel, yLabel, showLegend, legendSvg: legendSvgRef.current,\n xAxisTickFormat, yAxisTickFormat, xAxisTickLabelProps,\n });\n\n useImperativeHandle(ref, () => ({\n downloadSVG: () => {\n if (isScrollable) {\n withOffscreenExportSVG(buildExportOptions(), (svg, onDone) => {\n downloadAsSVG(svg, downloadFileName ?? \"heatmap.svg\");\n onDone();\n });\n } else if (svgRef.current) {\n downloadAsSVG(svgRef.current, downloadFileName ?? \"heatmap.svg\");\n }\n },\n downloadPNG: () => {\n if (isScrollable) {\n withOffscreenExportSVG(buildExportOptions(), (svg, onDone) => {\n downloadSVGAsPNG(svg, downloadFileName ?? \"heatmap.png\", undefined, onDone);\n });\n } else if (svgRef.current) {\n downloadSVGAsPNG(svgRef.current, downloadFileName ?? \"heatmap.png\");\n }\n },\n }));\n // No deps array: buildScrollableExportSVG (and the plain closures above) now render the cells\n // and both axes fresh on every export (see its comment), reading a long list of render-scoped\n // values - hand-maintaining an exhaustive deps list for that is exactly the kind of duplicated\n // upkeep this refactor was trying to reduce elsewhere, and risks a stale export if one is ever\n // missed. Recomputing this handle (two small closures) on every render is negligible cost.\n\n return (\n <ResponsiveContainer parentRef={parentRef} containerStyle={containerStyle}>\n {!parentWidth || !parentHeight || data.length === 0 || numRows === 0 ? null : isScrollable ? (\n <HeatmapScrollableGrid\n legendSvgRef={legendSvgRef}\n layout={layout}\n data={data}\n showMiniMap={showMiniMap}\n showLegend={showLegend}\n xLabel={xLabel}\n yLabel={yLabel}\n tooltipBody={tooltipBody}\n onClick={onClick}\n selectedCells={selectedCells}\n scrollToSelection={scrollToSelection}\n xAxisTickFormat={xAxisTickFormat}\n yAxisTickFormat={yAxisTickFormat}\n xAxisTickLabelProps={xAxisTickLabelProps}\n />\n ) : (\n <HeatmapStaticSvg\n svgRef={svgRef}\n layout={layout}\n parentWidth={parentWidth}\n parentHeight={parentHeight}\n data={data}\n gap={gap}\n isRect={isRect}\n animationType={animationType}\n tooltipBody={tooltipBody}\n onClick={onClick}\n selectedCells={selectedCells}\n deselectedColor={deselectedColor}\n xLabel={xLabel}\n yLabel={yLabel}\n showLegend={showLegend}\n xAxisTickFormat={xAxisTickFormat}\n yAxisTickFormat={yAxisTickFormat}\n xAxisTickLabelProps={xAxisTickLabelProps}\n />\n )}\n </ResponsiveContainer>\n );\n};\n\nexport default Heatmap;\n"],"names":["Heatmap","t0","$","_c","data","onClick","ref","downloadFileName","colors","colorDomain","xLabel","yLabel","tooltipBody","margin","gap","t1","isRect","t2","animationType","showLegend","t3","width","height","xLabelOrientation","t4","selectedCells","deselectedColor","cellWidth","cellHeight","scrollToSelection","showMiniMap","t5","undefined","t6","parentRef","containerStyle","parentWidth","parentHeight","useResponsiveParentSize","svgRef","useRef","legendSvgRef","isScrollable","t7","layout","useHeatmapLayout","allColNames","allRowNames","numRows","t8","makeTickFormat","xAxisTickFormat","t9","yAxisTickFormat","t10","getXAxisTickLabelProps","xAxisTickLabelProps","t11","legendSvg","current","buildExportOptions","t12","downloadSVG","withOffscreenExportSVG","svg","onDone","downloadAsSVG","downloadPNG","svg_0","onDone_0","downloadSVGAsPNG","useImperativeHandle","t13","length","jsx","HeatmapScrollableGrid","HeatmapStaticSvg","t14","ResponsiveContainer"],"mappings":"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"}