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

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 (1180) hide show
  1. package/dist/src/components/Heatmap/HeatmapCanvasCells.d.ts.map +1 -1
  2. package/dist/src/components/Heatmap/scrollable/HeatmapMiniMap.d.ts +4 -1
  3. package/dist/src/components/Heatmap/scrollable/HeatmapMiniMap.d.ts.map +1 -1
  4. package/dist/src/components/Heatmap/scrollable/HeatmapMiniMapPopup.d.ts +1 -1
  5. package/dist/src/components/Heatmap/scrollable/HeatmapMiniMapPopup.d.ts.map +1 -1
  6. package/dist/visualization.es10.js +11 -11
  7. package/dist/visualization.es100.js +148 -95
  8. package/dist/visualization.es100.js.map +1 -1
  9. package/dist/visualization.es101.js +82 -128
  10. package/dist/visualization.es101.js.map +1 -1
  11. package/dist/visualization.es102.js +36 -81
  12. package/dist/visualization.es102.js.map +1 -1
  13. package/dist/visualization.es103.js +45 -36
  14. package/dist/visualization.es103.js.map +1 -1
  15. package/dist/visualization.es104.js +73 -46
  16. package/dist/visualization.es104.js.map +1 -1
  17. package/dist/visualization.es105.js +30 -55
  18. package/dist/visualization.es105.js.map +1 -1
  19. package/dist/visualization.es106.js +13 -32
  20. package/dist/visualization.es106.js.map +1 -1
  21. package/dist/visualization.es107.js +26 -18
  22. package/dist/visualization.es107.js.map +1 -1
  23. package/dist/visualization.es108.js +70 -14
  24. package/dist/visualization.es108.js.map +1 -1
  25. package/dist/visualization.es109.js +222 -26
  26. package/dist/visualization.es109.js.map +1 -1
  27. package/dist/visualization.es11.js +10 -10
  28. package/dist/visualization.es110.js +2 -222
  29. package/dist/visualization.es110.js.map +1 -1
  30. package/dist/visualization.es111.js +557 -2
  31. package/dist/visualization.es111.js.map +1 -1
  32. package/dist/visualization.es112.js +153 -496
  33. package/dist/visualization.es112.js.map +1 -1
  34. package/dist/visualization.es113.js +2 -214
  35. package/dist/visualization.es113.js.map +1 -1
  36. package/dist/visualization.es114.js +4800 -2
  37. package/dist/visualization.es114.js.map +1 -1
  38. package/dist/visualization.es115.js +25 -4800
  39. package/dist/visualization.es115.js.map +1 -1
  40. package/dist/visualization.es116.js +45 -25
  41. package/dist/visualization.es116.js.map +1 -1
  42. package/dist/visualization.es117.js +143 -44
  43. package/dist/visualization.es117.js.map +1 -1
  44. package/dist/visualization.es118.js +141 -138
  45. package/dist/visualization.es118.js.map +1 -1
  46. package/dist/visualization.es119.js +56 -145
  47. package/dist/visualization.es119.js.map +1 -1
  48. package/dist/visualization.es12.js +2 -2
  49. package/dist/visualization.es120.js +30 -30
  50. package/dist/visualization.es120.js.map +1 -1
  51. package/dist/visualization.es121.js +18 -45
  52. package/dist/visualization.es121.js.map +1 -1
  53. package/dist/visualization.es122.js +14 -76
  54. package/dist/visualization.es122.js.map +1 -1
  55. package/dist/visualization.es123.js +25 -24
  56. package/dist/visualization.es123.js.map +1 -1
  57. package/dist/visualization.es124.js +29 -82
  58. package/dist/visualization.es124.js.map +1 -1
  59. package/dist/visualization.es125.js +44 -35
  60. package/dist/visualization.es125.js.map +1 -1
  61. package/dist/visualization.es126.js +76 -13
  62. package/dist/visualization.es126.js.map +1 -1
  63. package/dist/visualization.es127.js +24 -73
  64. package/dist/visualization.es127.js.map +1 -1
  65. package/dist/visualization.es128.js +84 -32
  66. package/dist/visualization.es128.js.map +1 -1
  67. package/dist/visualization.es129.js +35 -12
  68. package/dist/visualization.es129.js.map +1 -1
  69. package/dist/visualization.es13.js +7 -7
  70. package/dist/visualization.es130.js +84 -17
  71. package/dist/visualization.es130.js.map +1 -1
  72. package/dist/visualization.es131.js +5 -64
  73. package/dist/visualization.es131.js.map +1 -1
  74. package/dist/visualization.es132.js +90 -7
  75. package/dist/visualization.es132.js.map +1 -1
  76. package/dist/visualization.es133.js +13 -5
  77. package/dist/visualization.es133.js.map +1 -1
  78. package/dist/visualization.es134.js +5 -42
  79. package/dist/visualization.es134.js.map +1 -1
  80. package/dist/visualization.es135.js +12 -28
  81. package/dist/visualization.es135.js.map +1 -1
  82. package/dist/visualization.es136.js +7 -8
  83. package/dist/visualization.es136.js.map +1 -1
  84. package/dist/visualization.es137.js +13 -6
  85. package/dist/visualization.es137.js.map +1 -1
  86. package/dist/visualization.es138.js +4 -3
  87. package/dist/visualization.es138.js.map +1 -1
  88. package/dist/visualization.es139.js +6 -15
  89. package/dist/visualization.es139.js.map +1 -1
  90. package/dist/visualization.es140.js +59 -15
  91. package/dist/visualization.es140.js.map +1 -1
  92. package/dist/visualization.es141.js +37 -31
  93. package/dist/visualization.es141.js.map +1 -1
  94. package/dist/visualization.es142.js +35 -15
  95. package/dist/visualization.es142.js.map +1 -1
  96. package/dist/visualization.es143.js +82 -9
  97. package/dist/visualization.es143.js.map +1 -1
  98. package/dist/visualization.es144.js +28 -6
  99. package/dist/visualization.es144.js.map +1 -1
  100. package/dist/visualization.es145.js +3 -6
  101. package/dist/visualization.es145.js.map +1 -1
  102. package/dist/visualization.es146.js +70 -9
  103. package/dist/visualization.es146.js.map +1 -1
  104. package/dist/visualization.es147.js +15 -3
  105. package/dist/visualization.es147.js.map +1 -1
  106. package/dist/visualization.es148.js +11 -4
  107. package/dist/visualization.es148.js.map +1 -1
  108. package/dist/visualization.es149.js +5 -9
  109. package/dist/visualization.es149.js.map +1 -1
  110. package/dist/visualization.es15.js +8 -8
  111. package/dist/visualization.es150.js +30 -4
  112. package/dist/visualization.es150.js.map +1 -1
  113. package/dist/visualization.es151.js +6 -11
  114. package/dist/visualization.es151.js.map +1 -1
  115. package/dist/visualization.es152.js +6 -26
  116. package/dist/visualization.es152.js.map +1 -1
  117. package/dist/visualization.es153.js +3 -60
  118. package/dist/visualization.es153.js.map +1 -1
  119. package/dist/visualization.es154.js +16 -38
  120. package/dist/visualization.es154.js.map +1 -1
  121. package/dist/visualization.es155.js +16 -36
  122. package/dist/visualization.es155.js.map +1 -1
  123. package/dist/visualization.es156.js +31 -82
  124. package/dist/visualization.es156.js.map +1 -1
  125. package/dist/visualization.es157.js +14 -26
  126. package/dist/visualization.es157.js.map +1 -1
  127. package/dist/visualization.es158.js +9 -6
  128. package/dist/visualization.es158.js.map +1 -1
  129. package/dist/visualization.es159.js +6 -4
  130. package/dist/visualization.es159.js.map +1 -1
  131. package/dist/visualization.es160.js +6 -3
  132. package/dist/visualization.es160.js.map +1 -1
  133. package/dist/visualization.es161.js +9 -18
  134. package/dist/visualization.es161.js.map +1 -1
  135. package/dist/visualization.es162.js +4 -27
  136. package/dist/visualization.es162.js.map +1 -1
  137. package/dist/visualization.es163.js +5 -2
  138. package/dist/visualization.es163.js.map +1 -1
  139. package/dist/visualization.es164.js +8 -1605
  140. package/dist/visualization.es164.js.map +1 -1
  141. package/dist/visualization.es165.js +4 -84
  142. package/dist/visualization.es165.js.map +1 -1
  143. package/dist/visualization.es166.js +11 -88
  144. package/dist/visualization.es166.js.map +1 -1
  145. package/dist/visualization.es167.js +25 -11
  146. package/dist/visualization.es167.js.map +1 -1
  147. package/dist/visualization.es168.js +2 -6
  148. package/dist/visualization.es168.js.map +1 -1
  149. package/dist/visualization.es169.js +1605 -14
  150. package/dist/visualization.es169.js.map +1 -1
  151. package/dist/visualization.es170.js +75 -7
  152. package/dist/visualization.es170.js.map +1 -1
  153. package/dist/visualization.es171.js +2 -14
  154. package/dist/visualization.es171.js.map +1 -1
  155. package/dist/visualization.es172.js +482 -18
  156. package/dist/visualization.es172.js.map +1 -1
  157. package/dist/visualization.es173.js +2 -4
  158. package/dist/visualization.es173.js.map +1 -1
  159. package/dist/visualization.es174.js +63 -35
  160. package/dist/visualization.es174.js.map +1 -1
  161. package/dist/visualization.es175.js +61 -8
  162. package/dist/visualization.es175.js.map +1 -1
  163. package/dist/visualization.es176.js +123 -15
  164. package/dist/visualization.es176.js.map +1 -1
  165. package/dist/visualization.es177.js +8 -11
  166. package/dist/visualization.es177.js.map +1 -1
  167. package/dist/visualization.es178.js +15 -5
  168. package/dist/visualization.es178.js.map +1 -1
  169. package/dist/visualization.es179.js +11 -12
  170. package/dist/visualization.es179.js.map +1 -1
  171. package/dist/visualization.es18.js +1 -1
  172. package/dist/visualization.es180.js +5 -3
  173. package/dist/visualization.es180.js.map +1 -1
  174. package/dist/visualization.es181.js +12 -2
  175. package/dist/visualization.es181.js.map +1 -1
  176. package/dist/visualization.es182.js +4 -11
  177. package/dist/visualization.es182.js.map +1 -1
  178. package/dist/visualization.es183.js +2 -31
  179. package/dist/visualization.es183.js.map +1 -1
  180. package/dist/visualization.es184.js +10 -42
  181. package/dist/visualization.es184.js.map +1 -1
  182. package/dist/visualization.es185.js +29 -48
  183. package/dist/visualization.es185.js.map +1 -1
  184. package/dist/visualization.es186.js +43 -3
  185. package/dist/visualization.es186.js.map +1 -1
  186. package/dist/visualization.es187.js +50 -3
  187. package/dist/visualization.es187.js.map +1 -1
  188. package/dist/visualization.es188.js +3 -6
  189. package/dist/visualization.es188.js.map +1 -1
  190. package/dist/visualization.es189.js +3 -5
  191. package/dist/visualization.es189.js.map +1 -1
  192. package/dist/visualization.es190.js +5 -10
  193. package/dist/visualization.es190.js.map +1 -1
  194. package/dist/visualization.es191.js +4 -3
  195. package/dist/visualization.es191.js.map +1 -1
  196. package/dist/visualization.es192.js +9 -16
  197. package/dist/visualization.es192.js.map +1 -1
  198. package/dist/visualization.es193.js +3 -18
  199. package/dist/visualization.es193.js.map +1 -1
  200. package/dist/visualization.es194.js +17 -36
  201. package/dist/visualization.es194.js.map +1 -1
  202. package/dist/visualization.es195.js +19 -2
  203. package/dist/visualization.es195.js.map +1 -1
  204. package/dist/visualization.es196.js +37 -2
  205. package/dist/visualization.es196.js.map +1 -1
  206. package/dist/visualization.es197.js +2 -4
  207. package/dist/visualization.es197.js.map +1 -1
  208. package/dist/visualization.es198.js +2 -15
  209. package/dist/visualization.es198.js.map +1 -1
  210. package/dist/visualization.es199.js +4 -3
  211. package/dist/visualization.es199.js.map +1 -1
  212. package/dist/visualization.es2.js +8 -8
  213. package/dist/visualization.es20.js +145 -61
  214. package/dist/visualization.es20.js.map +1 -1
  215. package/dist/visualization.es200.js +15 -7
  216. package/dist/visualization.es200.js.map +1 -1
  217. package/dist/visualization.es201.js +1 -1
  218. package/dist/visualization.es201.js.map +1 -1
  219. package/dist/visualization.es202.js +7 -7
  220. package/dist/visualization.es202.js.map +1 -1
  221. package/dist/visualization.es203.js +3 -73
  222. package/dist/visualization.es203.js.map +1 -1
  223. package/dist/visualization.es204.js +6 -22
  224. package/dist/visualization.es204.js.map +1 -1
  225. package/dist/visualization.es205.js +15 -19
  226. package/dist/visualization.es205.js.map +1 -1
  227. package/dist/visualization.es206.js +3 -40
  228. package/dist/visualization.es206.js.map +1 -1
  229. package/dist/visualization.es207.js +35 -7
  230. package/dist/visualization.es207.js.map +1 -1
  231. package/dist/visualization.es208.js +63 -12
  232. package/dist/visualization.es208.js.map +1 -1
  233. package/dist/visualization.es209.js +7 -18
  234. package/dist/visualization.es209.js.map +1 -1
  235. package/dist/visualization.es21.js +66 -10
  236. package/dist/visualization.es21.js.map +1 -1
  237. package/dist/visualization.es210.js +40 -34
  238. package/dist/visualization.es210.js.map +1 -1
  239. package/dist/visualization.es211.js +18 -23
  240. package/dist/visualization.es211.js.map +1 -1
  241. package/dist/visualization.es212.js +27 -27
  242. package/dist/visualization.es212.js.map +1 -1
  243. package/dist/visualization.es213.js +3 -71
  244. package/dist/visualization.es213.js.map +1 -1
  245. package/dist/visualization.es214.js +8 -15
  246. package/dist/visualization.es214.js.map +1 -1
  247. package/dist/visualization.es215.js +5 -10
  248. package/dist/visualization.es215.js.map +1 -1
  249. package/dist/visualization.es216.js +8 -5
  250. package/dist/visualization.es216.js.map +1 -1
  251. package/dist/visualization.es217.js +9 -9
  252. package/dist/visualization.es217.js.map +1 -1
  253. package/dist/visualization.es218.js +6 -6
  254. package/dist/visualization.es218.js.map +1 -1
  255. package/dist/visualization.es219.js +6 -7
  256. package/dist/visualization.es219.js.map +1 -1
  257. package/dist/visualization.es22.js +39 -54
  258. package/dist/visualization.es22.js.map +1 -1
  259. package/dist/visualization.es220.js +5 -9
  260. package/dist/visualization.es220.js.map +1 -1
  261. package/dist/visualization.es221.js +14 -6
  262. package/dist/visualization.es221.js.map +1 -1
  263. package/dist/visualization.es222.js +5 -6
  264. package/dist/visualization.es222.js.map +1 -1
  265. package/dist/visualization.es223.js +3 -5
  266. package/dist/visualization.es223.js.map +1 -1
  267. package/dist/visualization.es224.js +6 -14
  268. package/dist/visualization.es224.js.map +1 -1
  269. package/dist/visualization.es225.js +6 -5
  270. package/dist/visualization.es225.js.map +1 -1
  271. package/dist/visualization.es226.js +9 -3
  272. package/dist/visualization.es226.js.map +1 -1
  273. package/dist/visualization.es227.js +32 -6
  274. package/dist/visualization.es227.js.map +1 -1
  275. package/dist/visualization.es228.js +114 -6
  276. package/dist/visualization.es228.js.map +1 -1
  277. package/dist/visualization.es229.js +3 -9
  278. package/dist/visualization.es229.js.map +1 -1
  279. package/dist/visualization.es23.js +78 -41
  280. package/dist/visualization.es23.js.map +1 -1
  281. package/dist/visualization.es230.js +4 -31
  282. package/dist/visualization.es230.js.map +1 -1
  283. package/dist/visualization.es231.js +31 -112
  284. package/dist/visualization.es231.js.map +1 -1
  285. package/dist/visualization.es232.js +15 -3
  286. package/dist/visualization.es232.js.map +1 -1
  287. package/dist/visualization.es233.js +7 -5
  288. package/dist/visualization.es233.js.map +1 -1
  289. package/dist/visualization.es234.js +10 -32
  290. package/dist/visualization.es234.js.map +1 -1
  291. package/dist/visualization.es235.js +17 -15
  292. package/dist/visualization.es235.js.map +1 -1
  293. package/dist/visualization.es236.js +72 -7
  294. package/dist/visualization.es236.js.map +1 -1
  295. package/dist/visualization.es237.js +21 -10
  296. package/dist/visualization.es237.js.map +1 -1
  297. package/dist/visualization.es238.js +22 -3
  298. package/dist/visualization.es238.js.map +1 -1
  299. package/dist/visualization.es239.js +40 -74
  300. package/dist/visualization.es239.js.map +1 -1
  301. package/dist/visualization.es24.js +45 -35
  302. package/dist/visualization.es24.js.map +1 -1
  303. package/dist/visualization.es240.js +8 -2
  304. package/dist/visualization.es240.js.map +1 -1
  305. package/dist/visualization.es241.js +12 -482
  306. package/dist/visualization.es241.js.map +1 -1
  307. package/dist/visualization.es242.js +18 -2
  308. package/dist/visualization.es242.js.map +1 -1
  309. package/dist/visualization.es243.js +35 -62
  310. package/dist/visualization.es243.js.map +1 -1
  311. package/dist/visualization.es244.js +22 -58
  312. package/dist/visualization.es244.js.map +1 -1
  313. package/dist/visualization.es245.js +26 -122
  314. package/dist/visualization.es245.js.map +1 -1
  315. package/dist/visualization.es246.js +33 -114
  316. package/dist/visualization.es246.js.map +1 -1
  317. package/dist/visualization.es247.js +2 -35
  318. package/dist/visualization.es247.js.map +1 -1
  319. package/dist/visualization.es248.js +124 -2
  320. package/dist/visualization.es248.js.map +1 -1
  321. package/dist/visualization.es249.js +24 -2
  322. package/dist/visualization.es249.js.map +1 -1
  323. package/dist/visualization.es25.js +55 -7
  324. package/dist/visualization.es25.js.map +1 -1
  325. package/dist/visualization.es250.js +53 -3
  326. package/dist/visualization.es250.js.map +1 -1
  327. package/dist/visualization.es251.js +20 -3
  328. package/dist/visualization.es251.js.map +1 -1
  329. package/dist/visualization.es252.js +3 -3
  330. package/dist/visualization.es252.js.map +1 -1
  331. package/dist/visualization.es253.js +3 -3
  332. package/dist/visualization.es253.js.map +1 -1
  333. package/dist/visualization.es254.js +3 -3
  334. package/dist/visualization.es254.js.map +1 -1
  335. package/dist/visualization.es255.js +3 -3
  336. package/dist/visualization.es255.js.map +1 -1
  337. package/dist/visualization.es256.js +3 -3
  338. package/dist/visualization.es256.js.map +1 -1
  339. package/dist/visualization.es257.js +3 -7
  340. package/dist/visualization.es257.js.map +1 -1
  341. package/dist/visualization.es258.js +3 -48
  342. package/dist/visualization.es258.js.map +1 -1
  343. package/dist/visualization.es259.js +7 -3
  344. package/dist/visualization.es259.js.map +1 -1
  345. package/dist/visualization.es26.js +7 -7
  346. package/dist/visualization.es26.js.map +1 -1
  347. package/dist/visualization.es260.js +47 -5
  348. package/dist/visualization.es260.js.map +1 -1
  349. package/dist/visualization.es261.js +3 -4
  350. package/dist/visualization.es261.js.map +1 -1
  351. package/dist/visualization.es262.js +6 -3
  352. package/dist/visualization.es262.js.map +1 -1
  353. package/dist/visualization.es263.js +4 -6
  354. package/dist/visualization.es263.js.map +1 -1
  355. package/dist/visualization.es264.js +3 -4
  356. package/dist/visualization.es264.js.map +1 -1
  357. package/dist/visualization.es265.js +6 -29
  358. package/dist/visualization.es265.js.map +1 -1
  359. package/dist/visualization.es266.js +4 -20
  360. package/dist/visualization.es266.js.map +1 -1
  361. package/dist/visualization.es267.js +2 -24
  362. package/dist/visualization.es267.js.map +1 -1
  363. package/dist/visualization.es268.js +53 -53
  364. package/dist/visualization.es268.js.map +1 -1
  365. package/dist/visualization.es269.js +31 -9
  366. package/dist/visualization.es269.js.map +1 -1
  367. package/dist/visualization.es27.js +5 -70
  368. package/dist/visualization.es27.js.map +1 -1
  369. package/dist/visualization.es270.js +33 -9
  370. package/dist/visualization.es270.js.map +1 -1
  371. package/dist/visualization.es271.js +12 -6
  372. package/dist/visualization.es271.js.map +1 -1
  373. package/dist/visualization.es272.js +7 -9
  374. package/dist/visualization.es272.js.map +1 -1
  375. package/dist/visualization.es273.js +34 -6
  376. package/dist/visualization.es273.js.map +1 -1
  377. package/dist/visualization.es274.js +3 -5
  378. package/dist/visualization.es274.js.map +1 -1
  379. package/dist/visualization.es275.js +3 -14
  380. package/dist/visualization.es275.js.map +1 -1
  381. package/dist/visualization.es276.js +6 -5
  382. package/dist/visualization.es276.js.map +1 -1
  383. package/dist/visualization.es277.js +12 -6
  384. package/dist/visualization.es277.js.map +1 -1
  385. package/dist/visualization.es278.js +2 -7
  386. package/dist/visualization.es278.js.map +1 -1
  387. package/dist/visualization.es279.js +3 -6
  388. package/dist/visualization.es279.js.map +1 -1
  389. package/dist/visualization.es28.js +7 -44
  390. package/dist/visualization.es28.js.map +1 -1
  391. package/dist/visualization.es280.js +3 -3
  392. package/dist/visualization.es280.js.map +1 -1
  393. package/dist/visualization.es281.js +10 -4
  394. package/dist/visualization.es281.js.map +1 -1
  395. package/dist/visualization.es282.js +24 -8
  396. package/dist/visualization.es282.js.map +1 -1
  397. package/dist/visualization.es283.js +5 -3
  398. package/dist/visualization.es283.js.map +1 -1
  399. package/dist/visualization.es284.js +32 -11
  400. package/dist/visualization.es284.js.map +1 -1
  401. package/dist/visualization.es285.js +3 -37
  402. package/dist/visualization.es285.js.map +1 -1
  403. package/dist/visualization.es286.js +10 -259
  404. package/dist/visualization.es286.js.map +1 -1
  405. package/dist/visualization.es287.js +35 -58
  406. package/dist/visualization.es287.js.map +1 -1
  407. package/dist/visualization.es288.js +260 -5
  408. package/dist/visualization.es288.js.map +1 -1
  409. package/dist/visualization.es289.js +57 -5
  410. package/dist/visualization.es289.js.map +1 -1
  411. package/dist/visualization.es29.js +47 -11
  412. package/dist/visualization.es29.js.map +1 -1
  413. package/dist/visualization.es290.js +5 -140
  414. package/dist/visualization.es290.js.map +1 -1
  415. package/dist/visualization.es291.js +21 -5
  416. package/dist/visualization.es291.js.map +1 -1
  417. package/dist/visualization.es292.js +37 -21
  418. package/dist/visualization.es292.js.map +1 -1
  419. package/dist/visualization.es293.js +27 -30
  420. package/dist/visualization.es293.js.map +1 -1
  421. package/dist/visualization.es294.js +14 -34
  422. package/dist/visualization.es294.js.map +1 -1
  423. package/dist/visualization.es295.js +15 -11
  424. package/dist/visualization.es295.js.map +1 -1
  425. package/dist/visualization.es296.js +6 -16
  426. package/dist/visualization.es296.js.map +1 -1
  427. package/dist/visualization.es297.js +7 -8
  428. package/dist/visualization.es297.js.map +1 -1
  429. package/dist/visualization.es298.js +138 -107
  430. package/dist/visualization.es298.js.map +1 -1
  431. package/dist/visualization.es299.js +5 -12
  432. package/dist/visualization.es299.js.map +1 -1
  433. package/dist/visualization.es3.js +12 -12
  434. package/dist/visualization.es30.js +32 -53
  435. package/dist/visualization.es30.js.map +1 -1
  436. package/dist/visualization.es300.js +88 -120
  437. package/dist/visualization.es300.js.map +1 -1
  438. package/dist/visualization.es301.js +12 -5
  439. package/dist/visualization.es301.js.map +1 -1
  440. package/dist/visualization.es302.js +131 -61
  441. package/dist/visualization.es302.js.map +1 -1
  442. package/dist/visualization.es303.js +5 -35
  443. package/dist/visualization.es303.js.map +1 -1
  444. package/dist/visualization.es304.js +70 -19
  445. package/dist/visualization.es304.js.map +1 -1
  446. package/dist/visualization.es305.js +35 -3
  447. package/dist/visualization.es305.js.map +1 -1
  448. package/dist/visualization.es306.js +20 -24
  449. package/dist/visualization.es306.js.map +1 -1
  450. package/dist/visualization.es307.js +3 -30
  451. package/dist/visualization.es307.js.map +1 -1
  452. package/dist/visualization.es308.js +25 -2
  453. package/dist/visualization.es308.js.map +1 -1
  454. package/dist/visualization.es309.js +31 -2
  455. package/dist/visualization.es309.js.map +1 -1
  456. package/dist/visualization.es31.js +33 -146
  457. package/dist/visualization.es31.js.map +1 -1
  458. package/dist/visualization.es310.js +2 -6
  459. package/dist/visualization.es310.js.map +1 -1
  460. package/dist/visualization.es311.js +2 -15
  461. package/dist/visualization.es311.js.map +1 -1
  462. package/dist/visualization.es312.js +5 -34
  463. package/dist/visualization.es312.js.map +1 -1
  464. package/dist/visualization.es313.js +13 -26
  465. package/dist/visualization.es313.js.map +1 -1
  466. package/dist/visualization.es314.js +34 -10
  467. package/dist/visualization.es314.js.map +1 -1
  468. package/dist/visualization.es315.js +27 -6
  469. package/dist/visualization.es315.js.map +1 -1
  470. package/dist/visualization.es316.js +10 -13
  471. package/dist/visualization.es316.js.map +1 -1
  472. package/dist/visualization.es317.js +7 -12
  473. package/dist/visualization.es317.js.map +1 -1
  474. package/dist/visualization.es318.js +14 -2
  475. package/dist/visualization.es318.js.map +1 -1
  476. package/dist/visualization.es319.js +12 -3
  477. package/dist/visualization.es319.js.map +1 -1
  478. package/dist/visualization.es32.js +21 -111
  479. package/dist/visualization.es32.js.map +1 -1
  480. package/dist/visualization.es320.js +2 -2
  481. package/dist/visualization.es320.js.map +1 -1
  482. package/dist/visualization.es321.js +3 -104
  483. package/dist/visualization.es321.js.map +1 -1
  484. package/dist/visualization.es322.js +2 -5
  485. package/dist/visualization.es322.js.map +1 -1
  486. package/dist/visualization.es323.js +104 -3
  487. package/dist/visualization.es323.js.map +1 -1
  488. package/dist/visualization.es324.js +4 -18
  489. package/dist/visualization.es324.js.map +1 -1
  490. package/dist/visualization.es325.js +3 -6
  491. package/dist/visualization.es325.js.map +1 -1
  492. package/dist/visualization.es326.js +18 -14
  493. package/dist/visualization.es326.js.map +1 -1
  494. package/dist/visualization.es327.js +5 -4
  495. package/dist/visualization.es327.js.map +1 -1
  496. package/dist/visualization.es328.js +13 -27
  497. package/dist/visualization.es328.js.map +1 -1
  498. package/dist/visualization.es329.js +4 -6
  499. package/dist/visualization.es329.js.map +1 -1
  500. package/dist/visualization.es33.js +12 -7
  501. package/dist/visualization.es33.js.map +1 -1
  502. package/dist/visualization.es330.js +29 -2
  503. package/dist/visualization.es330.js.map +1 -1
  504. package/dist/visualization.es331.js +7 -20
  505. package/dist/visualization.es331.js.map +1 -1
  506. package/dist/visualization.es332.js +2 -21
  507. package/dist/visualization.es332.js.map +1 -1
  508. package/dist/visualization.es333.js +20 -6
  509. package/dist/visualization.es333.js.map +1 -1
  510. package/dist/visualization.es334.js +21 -8
  511. package/dist/visualization.es334.js.map +1 -1
  512. package/dist/visualization.es335.js +5 -18
  513. package/dist/visualization.es335.js.map +1 -1
  514. package/dist/visualization.es336.js +7 -43
  515. package/dist/visualization.es336.js.map +1 -1
  516. package/dist/visualization.es337.js +19 -7
  517. package/dist/visualization.es337.js.map +1 -1
  518. package/dist/visualization.es338.js +43 -19
  519. package/dist/visualization.es338.js.map +1 -1
  520. package/dist/visualization.es339.js +7 -54
  521. package/dist/visualization.es339.js.map +1 -1
  522. package/dist/visualization.es34.js +57 -20
  523. package/dist/visualization.es34.js.map +1 -1
  524. package/dist/visualization.es340.js +19 -26
  525. package/dist/visualization.es340.js.map +1 -1
  526. package/dist/visualization.es341.js +54 -11
  527. package/dist/visualization.es341.js.map +1 -1
  528. package/dist/visualization.es342.js +25 -17
  529. package/dist/visualization.es342.js.map +1 -1
  530. package/dist/visualization.es343.js +11 -12
  531. package/dist/visualization.es343.js.map +1 -1
  532. package/dist/visualization.es344.js +18 -4
  533. package/dist/visualization.es344.js.map +1 -1
  534. package/dist/visualization.es345.js +12 -4
  535. package/dist/visualization.es345.js.map +1 -1
  536. package/dist/visualization.es346.js +4 -3
  537. package/dist/visualization.es346.js.map +1 -1
  538. package/dist/visualization.es347.js +4 -176
  539. package/dist/visualization.es347.js.map +1 -1
  540. package/dist/visualization.es348.js +3 -39
  541. package/dist/visualization.es348.js.map +1 -1
  542. package/dist/visualization.es349.js +175 -5
  543. package/dist/visualization.es349.js.map +1 -1
  544. package/dist/visualization.es35.js +53 -32
  545. package/dist/visualization.es35.js.map +1 -1
  546. package/dist/visualization.es350.js +39 -3
  547. package/dist/visualization.es350.js.map +1 -1
  548. package/dist/visualization.es351.js +6 -2
  549. package/dist/visualization.es351.js.map +1 -1
  550. package/dist/visualization.es352.js +4 -30
  551. package/dist/visualization.es352.js.map +1 -1
  552. package/dist/visualization.es353.js +2 -8
  553. package/dist/visualization.es353.js.map +1 -1
  554. package/dist/visualization.es354.js +30 -11
  555. package/dist/visualization.es354.js.map +1 -1
  556. package/dist/visualization.es355.js +8 -4
  557. package/dist/visualization.es355.js.map +1 -1
  558. package/dist/visualization.es356.js +10 -65
  559. package/dist/visualization.es356.js.map +1 -1
  560. package/dist/visualization.es357.js +4 -7
  561. package/dist/visualization.es357.js.map +1 -1
  562. package/dist/visualization.es358.js +65 -4
  563. package/dist/visualization.es358.js.map +1 -1
  564. package/dist/visualization.es359.js +7 -14
  565. package/dist/visualization.es359.js.map +1 -1
  566. package/dist/visualization.es36.js +110 -51
  567. package/dist/visualization.es36.js.map +1 -1
  568. package/dist/visualization.es360.js +4 -34
  569. package/dist/visualization.es360.js.map +1 -1
  570. package/dist/visualization.es361.js +13 -4
  571. package/dist/visualization.es361.js.map +1 -1
  572. package/dist/visualization.es362.js +34 -9
  573. package/dist/visualization.es362.js.map +1 -1
  574. package/dist/visualization.es363.js +5 -2
  575. package/dist/visualization.es363.js.map +1 -1
  576. package/dist/visualization.es364.js +10 -5
  577. package/dist/visualization.es364.js.map +1 -1
  578. package/dist/visualization.es365.js +2 -2
  579. package/dist/visualization.es365.js.map +1 -1
  580. package/dist/visualization.es366.js +5 -10
  581. package/dist/visualization.es366.js.map +1 -1
  582. package/dist/visualization.es367.js +2 -10
  583. package/dist/visualization.es367.js.map +1 -1
  584. package/dist/visualization.es368.js +10 -13
  585. package/dist/visualization.es368.js.map +1 -1
  586. package/dist/visualization.es369.js +10 -2
  587. package/dist/visualization.es369.js.map +1 -1
  588. package/dist/visualization.es37.js +7 -54
  589. package/dist/visualization.es37.js.map +1 -1
  590. package/dist/visualization.es370.js +13 -10
  591. package/dist/visualization.es370.js.map +1 -1
  592. package/dist/visualization.es371.js +2 -8
  593. package/dist/visualization.es371.js.map +1 -1
  594. package/dist/visualization.es372.js +10 -6
  595. package/dist/visualization.es372.js.map +1 -1
  596. package/dist/visualization.es373.js +7 -24
  597. package/dist/visualization.es373.js.map +1 -1
  598. package/dist/visualization.es374.js +6 -19
  599. package/dist/visualization.es374.js.map +1 -1
  600. package/dist/visualization.es375.js +20 -36
  601. package/dist/visualization.es375.js.map +1 -1
  602. package/dist/visualization.es376.js +19 -3
  603. package/dist/visualization.es376.js.map +1 -1
  604. package/dist/visualization.es377.js +40 -8
  605. package/dist/visualization.es377.js.map +1 -1
  606. package/dist/visualization.es378.js +3 -9
  607. package/dist/visualization.es378.js.map +1 -1
  608. package/dist/visualization.es379.js +8 -35
  609. package/dist/visualization.es379.js.map +1 -1
  610. package/dist/visualization.es38.js +7 -42
  611. package/dist/visualization.es38.js.map +1 -1
  612. package/dist/visualization.es380.js +8 -9
  613. package/dist/visualization.es380.js.map +1 -1
  614. package/dist/visualization.es381.js +32 -28
  615. package/dist/visualization.es381.js.map +1 -1
  616. package/dist/visualization.es382.js +9 -4
  617. package/dist/visualization.es382.js.map +1 -1
  618. package/dist/visualization.es383.js +32 -2
  619. package/dist/visualization.es383.js.map +1 -1
  620. package/dist/visualization.es384.js +4 -15
  621. package/dist/visualization.es384.js.map +1 -1
  622. package/dist/visualization.es385.js +2 -25
  623. package/dist/visualization.es385.js.map +1 -1
  624. package/dist/visualization.es386.js +16 -2
  625. package/dist/visualization.es386.js.map +1 -1
  626. package/dist/visualization.es387.js +22 -60
  627. package/dist/visualization.es387.js.map +1 -1
  628. package/dist/visualization.es388.js +2 -2
  629. package/dist/visualization.es388.js.map +1 -1
  630. package/dist/visualization.es389.js +63 -2
  631. package/dist/visualization.es389.js.map +1 -1
  632. package/dist/visualization.es39.js +33 -5
  633. package/dist/visualization.es39.js.map +1 -1
  634. package/dist/visualization.es390.js +2 -6
  635. package/dist/visualization.es390.js.map +1 -1
  636. package/dist/visualization.es391.js +2 -37
  637. package/dist/visualization.es391.js.map +1 -1
  638. package/dist/visualization.es392.js +5 -20
  639. package/dist/visualization.es392.js.map +1 -1
  640. package/dist/visualization.es393.js +36 -3
  641. package/dist/visualization.es393.js.map +1 -1
  642. package/dist/visualization.es394.js +20 -4
  643. package/dist/visualization.es394.js.map +1 -1
  644. package/dist/visualization.es395.js +3 -4
  645. package/dist/visualization.es395.js.map +1 -1
  646. package/dist/visualization.es396.js +4 -48
  647. package/dist/visualization.es396.js.map +1 -1
  648. package/dist/visualization.es397.js +4 -26
  649. package/dist/visualization.es397.js.map +1 -1
  650. package/dist/visualization.es398.js +46 -14
  651. package/dist/visualization.es398.js.map +1 -1
  652. package/dist/visualization.es399.js +26 -9
  653. package/dist/visualization.es399.js.map +1 -1
  654. package/dist/visualization.es4.js +6 -6
  655. package/dist/visualization.es40.js +32 -5
  656. package/dist/visualization.es40.js.map +1 -1
  657. package/dist/visualization.es400.js +15 -18
  658. package/dist/visualization.es400.js.map +1 -1
  659. package/dist/visualization.es401.js +9 -13
  660. package/dist/visualization.es401.js.map +1 -1
  661. package/dist/visualization.es402.js +19 -3
  662. package/dist/visualization.es402.js.map +1 -1
  663. package/dist/visualization.es403.js +13 -12
  664. package/dist/visualization.es403.js.map +1 -1
  665. package/dist/visualization.es404.js +3 -48
  666. package/dist/visualization.es404.js.map +1 -1
  667. package/dist/visualization.es405.js +13 -6
  668. package/dist/visualization.es405.js.map +1 -1
  669. package/dist/visualization.es406.js +48 -12
  670. package/dist/visualization.es406.js.map +1 -1
  671. package/dist/visualization.es407.js +6 -2
  672. package/dist/visualization.es407.js.map +1 -1
  673. package/dist/visualization.es408.js +12 -6
  674. package/dist/visualization.es408.js.map +1 -1
  675. package/dist/visualization.es409.js +2 -210
  676. package/dist/visualization.es409.js.map +1 -1
  677. package/dist/visualization.es41.js +169 -18
  678. package/dist/visualization.es41.js.map +1 -1
  679. package/dist/visualization.es410.js +6 -26
  680. package/dist/visualization.es410.js.map +1 -1
  681. package/dist/visualization.es411.js +209 -3
  682. package/dist/visualization.es411.js.map +1 -1
  683. package/dist/visualization.es412.js +27 -16
  684. package/dist/visualization.es412.js.map +1 -1
  685. package/dist/visualization.es413.js +4 -15
  686. package/dist/visualization.es413.js.map +1 -1
  687. package/dist/visualization.es414.js +15 -14
  688. package/dist/visualization.es414.js.map +1 -1
  689. package/dist/visualization.es415.js +15 -2
  690. package/dist/visualization.es415.js.map +1 -1
  691. package/dist/visualization.es416.js +15 -2
  692. package/dist/visualization.es416.js.map +1 -1
  693. package/dist/visualization.es417.js +2 -2
  694. package/dist/visualization.es417.js.map +1 -1
  695. package/dist/visualization.es418.js +2 -5
  696. package/dist/visualization.es418.js.map +1 -1
  697. package/dist/visualization.es419.js +2 -2
  698. package/dist/visualization.es419.js.map +1 -1
  699. package/dist/visualization.es42.js +64 -4
  700. package/dist/visualization.es42.js.map +1 -1
  701. package/dist/visualization.es420.js +5 -25
  702. package/dist/visualization.es420.js.map +1 -1
  703. package/dist/visualization.es421.js +2 -22
  704. package/dist/visualization.es421.js.map +1 -1
  705. package/dist/visualization.es422.js +25 -9
  706. package/dist/visualization.es422.js.map +1 -1
  707. package/dist/visualization.es423.js +21 -67
  708. package/dist/visualization.es423.js.map +1 -1
  709. package/dist/visualization.es424.js +8 -5
  710. package/dist/visualization.es424.js.map +1 -1
  711. package/dist/visualization.es425.js +67 -28
  712. package/dist/visualization.es425.js.map +1 -1
  713. package/dist/visualization.es426.js +6 -10
  714. package/dist/visualization.es426.js.map +1 -1
  715. package/dist/visualization.es427.js +29 -6
  716. package/dist/visualization.es427.js.map +1 -1
  717. package/dist/visualization.es428.js +10 -2
  718. package/dist/visualization.es428.js.map +1 -1
  719. package/dist/visualization.es429.js +6 -5
  720. package/dist/visualization.es429.js.map +1 -1
  721. package/dist/visualization.es43.js +175 -27
  722. package/dist/visualization.es43.js.map +1 -1
  723. package/dist/visualization.es430.js +2 -26
  724. package/dist/visualization.es430.js.map +1 -1
  725. package/dist/visualization.es431.js +4 -10
  726. package/dist/visualization.es431.js.map +1 -1
  727. package/dist/visualization.es432.js +23 -24
  728. package/dist/visualization.es432.js.map +1 -1
  729. package/dist/visualization.es433.js +10 -9
  730. package/dist/visualization.es433.js.map +1 -1
  731. package/dist/visualization.es434.js +26 -10
  732. package/dist/visualization.es434.js.map +1 -1
  733. package/dist/visualization.es435.js +10 -2
  734. package/dist/visualization.es435.js.map +1 -1
  735. package/dist/visualization.es436.js +11 -16
  736. package/dist/visualization.es436.js.map +1 -1
  737. package/dist/visualization.es437.js +2 -30
  738. package/dist/visualization.es437.js.map +1 -1
  739. package/dist/visualization.es438.js +16 -26
  740. package/dist/visualization.es438.js.map +1 -1
  741. package/dist/visualization.es439.js +30 -2
  742. package/dist/visualization.es439.js.map +1 -1
  743. package/dist/visualization.es44.js +74 -31
  744. package/dist/visualization.es44.js.map +1 -1
  745. package/dist/visualization.es440.js +26 -9
  746. package/dist/visualization.es440.js.map +1 -1
  747. package/dist/visualization.es441.js +2 -13
  748. package/dist/visualization.es441.js.map +1 -1
  749. package/dist/visualization.es442.js +8 -22
  750. package/dist/visualization.es442.js.map +1 -1
  751. package/dist/visualization.es443.js +12 -12
  752. package/dist/visualization.es443.js.map +1 -1
  753. package/dist/visualization.es444.js +23 -3
  754. package/dist/visualization.es444.js.map +1 -1
  755. package/dist/visualization.es445.js +13 -2
  756. package/dist/visualization.es445.js.map +1 -1
  757. package/dist/visualization.es446.js +3 -18
  758. package/dist/visualization.es446.js.map +1 -1
  759. package/dist/visualization.es447.js +2 -4
  760. package/dist/visualization.es447.js.map +1 -1
  761. package/dist/visualization.es448.js +17 -11
  762. package/dist/visualization.es448.js.map +1 -1
  763. package/dist/visualization.es449.js +4 -11
  764. package/dist/visualization.es449.js.map +1 -1
  765. package/dist/visualization.es45.js +113 -5
  766. package/dist/visualization.es45.js.map +1 -1
  767. package/dist/visualization.es450.js +11 -6
  768. package/dist/visualization.es450.js.map +1 -1
  769. package/dist/visualization.es451.js +11 -19
  770. package/dist/visualization.es451.js.map +1 -1
  771. package/dist/visualization.es452.js +6 -22
  772. package/dist/visualization.es452.js.map +1 -1
  773. package/dist/visualization.es453.js +19 -12
  774. package/dist/visualization.es453.js.map +1 -1
  775. package/dist/visualization.es454.js +22 -50
  776. package/dist/visualization.es454.js.map +1 -1
  777. package/dist/visualization.es455.js +9 -15
  778. package/dist/visualization.es455.js.map +1 -1
  779. package/dist/visualization.es456.js +50 -35
  780. package/dist/visualization.es456.js.map +1 -1
  781. package/dist/visualization.es457.js +14 -19
  782. package/dist/visualization.es457.js.map +1 -1
  783. package/dist/visualization.es458.js +28 -24
  784. package/dist/visualization.es458.js.map +1 -1
  785. package/dist/visualization.es459.js +22 -3
  786. package/dist/visualization.es459.js.map +1 -1
  787. package/dist/visualization.es46.js +18701 -31
  788. package/dist/visualization.es46.js.map +1 -1
  789. package/dist/visualization.es460.js +32 -19
  790. package/dist/visualization.es460.js.map +1 -1
  791. package/dist/visualization.es461.js +4 -14
  792. package/dist/visualization.es461.js.map +1 -1
  793. package/dist/visualization.es462.js +18 -10
  794. package/dist/visualization.es462.js.map +1 -1
  795. package/dist/visualization.es463.js +13 -29
  796. package/dist/visualization.es463.js.map +1 -1
  797. package/dist/visualization.es464.js +11 -6
  798. package/dist/visualization.es464.js.map +1 -1
  799. package/dist/visualization.es465.js +29 -7
  800. package/dist/visualization.es465.js.map +1 -1
  801. package/dist/visualization.es466.js +6 -2
  802. package/dist/visualization.es466.js.map +1 -1
  803. package/dist/visualization.es467.js +7 -16
  804. package/dist/visualization.es467.js.map +1 -1
  805. package/dist/visualization.es468.js +2 -9
  806. package/dist/visualization.es468.js.map +1 -1
  807. package/dist/visualization.es469.js +16 -9
  808. package/dist/visualization.es469.js.map +1 -1
  809. package/dist/visualization.es47.js +5 -169
  810. package/dist/visualization.es47.js.map +1 -1
  811. package/dist/visualization.es470.js +7 -614
  812. package/dist/visualization.es470.js.map +1 -1
  813. package/dist/visualization.es471.js +9 -50
  814. package/dist/visualization.es471.js.map +1 -1
  815. package/dist/visualization.es472.js +616 -13
  816. package/dist/visualization.es472.js.map +1 -1
  817. package/dist/visualization.es473.js +51 -11
  818. package/dist/visualization.es473.js.map +1 -1
  819. package/dist/visualization.es474.js +12 -22
  820. package/dist/visualization.es474.js.map +1 -1
  821. package/dist/visualization.es475.js +11 -35
  822. package/dist/visualization.es475.js.map +1 -1
  823. package/dist/visualization.es476.js +23 -13
  824. package/dist/visualization.es476.js.map +1 -1
  825. package/dist/visualization.es477.js +33 -17
  826. package/dist/visualization.es477.js.map +1 -1
  827. package/dist/visualization.es478.js +12 -25
  828. package/dist/visualization.es478.js.map +1 -1
  829. package/dist/visualization.es479.js +15 -22
  830. package/dist/visualization.es479.js.map +1 -1
  831. package/dist/visualization.es48.js +5 -65
  832. package/dist/visualization.es48.js.map +1 -1
  833. package/dist/visualization.es480.js +29 -31
  834. package/dist/visualization.es480.js.map +1 -1
  835. package/dist/visualization.es481.js +53 -15
  836. package/dist/visualization.es481.js.map +1 -1
  837. package/dist/visualization.es482.js +14 -36
  838. package/dist/visualization.es482.js.map +1 -1
  839. package/dist/visualization.es483.js +20 -52
  840. package/dist/visualization.es483.js.map +1 -1
  841. package/dist/visualization.es484.js +26 -3
  842. package/dist/visualization.es484.js.map +1 -1
  843. package/dist/visualization.es485.js +43 -3
  844. package/dist/visualization.es485.js.map +1 -1
  845. package/dist/visualization.es486.js +4 -7
  846. package/dist/visualization.es486.js.map +1 -1
  847. package/dist/visualization.es487.js +3 -16
  848. package/dist/visualization.es487.js.map +1 -1
  849. package/dist/visualization.es488.js +7 -2
  850. package/dist/visualization.es488.js.map +1 -1
  851. package/dist/visualization.es489.js +16 -2
  852. package/dist/visualization.es489.js.map +1 -1
  853. package/dist/visualization.es49.js +59 -174
  854. package/dist/visualization.es49.js.map +1 -1
  855. package/dist/visualization.es490.js +2 -2
  856. package/dist/visualization.es490.js.map +1 -1
  857. package/dist/visualization.es491.js +2 -54
  858. package/dist/visualization.es491.js.map +1 -1
  859. package/dist/visualization.es492.js +2 -32
  860. package/dist/visualization.es492.js.map +1 -1
  861. package/dist/visualization.es493.js +9 -33
  862. package/dist/visualization.es493.js.map +1 -1
  863. package/dist/visualization.es494.js +9 -12
  864. package/dist/visualization.es494.js.map +1 -1
  865. package/dist/visualization.es495.js +7 -7
  866. package/dist/visualization.es495.js.map +1 -1
  867. package/dist/visualization.es496.js +8 -34
  868. package/dist/visualization.es496.js.map +1 -1
  869. package/dist/visualization.es497.js +6 -3
  870. package/dist/visualization.es497.js.map +1 -1
  871. package/dist/visualization.es498.js +5 -3
  872. package/dist/visualization.es498.js.map +1 -1
  873. package/dist/visualization.es499.js +14 -6
  874. package/dist/visualization.es499.js.map +1 -1
  875. package/dist/visualization.es5.js +6 -6
  876. package/dist/visualization.es50.js +810 -73
  877. package/dist/visualization.es50.js.map +1 -1
  878. package/dist/visualization.es500.js +5 -12
  879. package/dist/visualization.es500.js.map +1 -1
  880. package/dist/visualization.es501.js +7 -2
  881. package/dist/visualization.es501.js.map +1 -1
  882. package/dist/visualization.es502.js +5 -2
  883. package/dist/visualization.es502.js.map +1 -1
  884. package/dist/visualization.es503.js +6 -3
  885. package/dist/visualization.es503.js.map +1 -1
  886. package/dist/visualization.es504.js +3 -10
  887. package/dist/visualization.es504.js.map +1 -1
  888. package/dist/visualization.es505.js +4 -25
  889. package/dist/visualization.es505.js.map +1 -1
  890. package/dist/visualization.es506.js +9 -4
  891. package/dist/visualization.es506.js.map +1 -1
  892. package/dist/visualization.es507.js +29 -32
  893. package/dist/visualization.es507.js.map +1 -1
  894. package/dist/visualization.es508.js +54 -230
  895. package/dist/visualization.es508.js.map +1 -1
  896. package/dist/visualization.es509.js +203 -958
  897. package/dist/visualization.es509.js.map +1 -1
  898. package/dist/visualization.es510.js +978 -47
  899. package/dist/visualization.es510.js.map +1 -1
  900. package/dist/visualization.es513.js +3 -3
  901. package/dist/visualization.es515.js +1 -1
  902. package/dist/visualization.es516.js +3 -3
  903. package/dist/visualization.es52.js +130 -33
  904. package/dist/visualization.es52.js.map +1 -1
  905. package/dist/visualization.es520.js +1 -1
  906. package/dist/visualization.es521.js +1 -1
  907. package/dist/visualization.es522.js +1 -1
  908. package/dist/visualization.es523.js +6 -6
  909. package/dist/visualization.es524.js +1 -1
  910. package/dist/visualization.es525.js +6 -6
  911. package/dist/visualization.es526.js +8 -8
  912. package/dist/visualization.es527.js +6 -6
  913. package/dist/visualization.es528.js +1 -1
  914. package/dist/visualization.es529.js +32 -32
  915. package/dist/visualization.es529.js.map +1 -1
  916. package/dist/visualization.es53.js +43 -7
  917. package/dist/visualization.es53.js.map +1 -1
  918. package/dist/visualization.es530.js +30 -25
  919. package/dist/visualization.es530.js.map +1 -1
  920. package/dist/visualization.es531.js +33 -45
  921. package/dist/visualization.es531.js.map +1 -1
  922. package/dist/visualization.es532.js +24 -8
  923. package/dist/visualization.es532.js.map +1 -1
  924. package/dist/visualization.es533.js +46 -15
  925. package/dist/visualization.es533.js.map +1 -1
  926. package/dist/visualization.es534.js +9 -16
  927. package/dist/visualization.es534.js.map +1 -1
  928. package/dist/visualization.es535.js +14 -15
  929. package/dist/visualization.es535.js.map +1 -1
  930. package/dist/visualization.es536.js +15 -23
  931. package/dist/visualization.es536.js.map +1 -1
  932. package/dist/visualization.es537.js +16 -6
  933. package/dist/visualization.es537.js.map +1 -1
  934. package/dist/visualization.es538.js +24 -34
  935. package/dist/visualization.es538.js.map +1 -1
  936. package/dist/visualization.es539.js +5 -29
  937. package/dist/visualization.es539.js.map +1 -1
  938. package/dist/visualization.es54.js +35 -7
  939. package/dist/visualization.es54.js.map +1 -1
  940. package/dist/visualization.es540.js +28 -11
  941. package/dist/visualization.es540.js.map +1 -1
  942. package/dist/visualization.es541.js +10 -13
  943. package/dist/visualization.es541.js.map +1 -1
  944. package/dist/visualization.es542.js +14 -8
  945. package/dist/visualization.es542.js.map +1 -1
  946. package/dist/visualization.es543.js +6 -6
  947. package/dist/visualization.es543.js.map +1 -1
  948. package/dist/visualization.es544.js +8 -20
  949. package/dist/visualization.es544.js.map +1 -1
  950. package/dist/visualization.es545.js +18 -61
  951. package/dist/visualization.es545.js.map +1 -1
  952. package/dist/visualization.es546.js +63 -28
  953. package/dist/visualization.es546.js.map +1 -1
  954. package/dist/visualization.es547.js +1 -1
  955. package/dist/visualization.es55.js +67 -32
  956. package/dist/visualization.es55.js.map +1 -1
  957. package/dist/visualization.es551.js +19 -19
  958. package/dist/visualization.es553.js +7 -7
  959. package/dist/visualization.es554.js +9 -3
  960. package/dist/visualization.es554.js.map +1 -1
  961. package/dist/visualization.es555.js +51 -3
  962. package/dist/visualization.es555.js.map +1 -1
  963. package/dist/visualization.es556.js +7 -15
  964. package/dist/visualization.es556.js.map +1 -1
  965. package/dist/visualization.es557.js +4 -3
  966. package/dist/visualization.es557.js.map +1 -1
  967. package/dist/visualization.es558.js +3 -9
  968. package/dist/visualization.es558.js.map +1 -1
  969. package/dist/visualization.es559.js +3 -4
  970. package/dist/visualization.es559.js.map +1 -1
  971. package/dist/visualization.es56.js +42 -33
  972. package/dist/visualization.es56.js.map +1 -1
  973. package/dist/visualization.es560.js +4 -6
  974. package/dist/visualization.es560.js.map +1 -1
  975. package/dist/visualization.es561.js +3 -9
  976. package/dist/visualization.es561.js.map +1 -1
  977. package/dist/visualization.es562.js +11 -7
  978. package/dist/visualization.es562.js.map +1 -1
  979. package/dist/visualization.es563.js +9 -4
  980. package/dist/visualization.es563.js.map +1 -1
  981. package/dist/visualization.es564.js +30 -3
  982. package/dist/visualization.es564.js.map +1 -1
  983. package/dist/visualization.es565.js +25 -4
  984. package/dist/visualization.es565.js.map +1 -1
  985. package/dist/visualization.es566.js +3 -11
  986. package/dist/visualization.es566.js.map +1 -1
  987. package/dist/visualization.es567.js +3 -9
  988. package/dist/visualization.es567.js.map +1 -1
  989. package/dist/visualization.es568.js +9 -30
  990. package/dist/visualization.es568.js.map +1 -1
  991. package/dist/visualization.es569.js +8 -24
  992. package/dist/visualization.es569.js.map +1 -1
  993. package/dist/visualization.es57.js +12 -29
  994. package/dist/visualization.es57.js.map +1 -1
  995. package/dist/visualization.es570.js +14 -50
  996. package/dist/visualization.es570.js.map +1 -1
  997. package/dist/visualization.es571.js +4 -3
  998. package/dist/visualization.es571.js.map +1 -1
  999. package/dist/visualization.es572.js +5 -8
  1000. package/dist/visualization.es572.js.map +1 -1
  1001. package/dist/visualization.es573.js +3 -3
  1002. package/dist/visualization.es574.js +3 -3
  1003. package/dist/visualization.es575.js +2 -2
  1004. package/dist/visualization.es576.js +1 -1
  1005. package/dist/visualization.es577.js +1 -1
  1006. package/dist/visualization.es578.js +2 -2
  1007. package/dist/visualization.es579.js +1 -1
  1008. package/dist/visualization.es58.js +34 -64
  1009. package/dist/visualization.es58.js.map +1 -1
  1010. package/dist/visualization.es581.js +7 -7
  1011. package/dist/visualization.es583.js +32 -9
  1012. package/dist/visualization.es583.js.map +1 -1
  1013. package/dist/visualization.es584.js +7 -9
  1014. package/dist/visualization.es584.js.map +1 -1
  1015. package/dist/visualization.es585.js +7 -18
  1016. package/dist/visualization.es585.js.map +1 -1
  1017. package/dist/visualization.es586.js +13 -7
  1018. package/dist/visualization.es586.js.map +1 -1
  1019. package/dist/visualization.es587.js +72 -7
  1020. package/dist/visualization.es587.js.map +1 -1
  1021. package/dist/visualization.es588.js +29 -32
  1022. package/dist/visualization.es588.js.map +1 -1
  1023. package/dist/visualization.es589.js +5 -13
  1024. package/dist/visualization.es589.js.map +1 -1
  1025. package/dist/visualization.es59.js +10 -61
  1026. package/dist/visualization.es59.js.map +1 -1
  1027. package/dist/visualization.es590.js +26 -73
  1028. package/dist/visualization.es590.js.map +1 -1
  1029. package/dist/visualization.es591.js +11 -29
  1030. package/dist/visualization.es591.js.map +1 -1
  1031. package/dist/visualization.es592.js +4 -5
  1032. package/dist/visualization.es592.js.map +1 -1
  1033. package/dist/visualization.es593.js +4 -25
  1034. package/dist/visualization.es593.js.map +1 -1
  1035. package/dist/visualization.es594.js +4 -11
  1036. package/dist/visualization.es594.js.map +1 -1
  1037. package/dist/visualization.es595.js +13 -5
  1038. package/dist/visualization.es595.js.map +1 -1
  1039. package/dist/visualization.es596.js +17 -4
  1040. package/dist/visualization.es596.js.map +1 -1
  1041. package/dist/visualization.es597.js +13 -4
  1042. package/dist/visualization.es597.js.map +1 -1
  1043. package/dist/visualization.es598.js +13 -12
  1044. package/dist/visualization.es598.js.map +1 -1
  1045. package/dist/visualization.es599.js +8 -17
  1046. package/dist/visualization.es599.js.map +1 -1
  1047. package/dist/visualization.es6.js +15 -15
  1048. package/dist/visualization.es60.js +54 -3
  1049. package/dist/visualization.es60.js.map +1 -1
  1050. package/dist/visualization.es600.js +11 -12
  1051. package/dist/visualization.es600.js.map +1 -1
  1052. package/dist/visualization.es601.js +24 -13
  1053. package/dist/visualization.es601.js.map +1 -1
  1054. package/dist/visualization.es602.js +19 -8
  1055. package/dist/visualization.es602.js.map +1 -1
  1056. package/dist/visualization.es603.js +7 -13
  1057. package/dist/visualization.es603.js.map +1 -1
  1058. package/dist/visualization.es604.js +6 -25
  1059. package/dist/visualization.es604.js.map +1 -1
  1060. package/dist/visualization.es605.js +3 -19
  1061. package/dist/visualization.es605.js.map +1 -1
  1062. package/dist/visualization.es606.js +65 -7
  1063. package/dist/visualization.es606.js.map +1 -1
  1064. package/dist/visualization.es607.js +33 -6
  1065. package/dist/visualization.es607.js.map +1 -1
  1066. package/dist/visualization.es608.js +4 -3
  1067. package/dist/visualization.es608.js.map +1 -1
  1068. package/dist/visualization.es609.js +6 -62
  1069. package/dist/visualization.es609.js.map +1 -1
  1070. package/dist/visualization.es61.js +51 -46
  1071. package/dist/visualization.es61.js.map +1 -1
  1072. package/dist/visualization.es610.js +6 -32
  1073. package/dist/visualization.es610.js.map +1 -1
  1074. package/dist/visualization.es611.js +290 -4
  1075. package/dist/visualization.es611.js.map +1 -1
  1076. package/dist/visualization.es612.js +16 -6
  1077. package/dist/visualization.es612.js.map +1 -1
  1078. package/dist/visualization.es613.js +13 -5
  1079. package/dist/visualization.es613.js.map +1 -1
  1080. package/dist/visualization.es614.js +9 -18
  1081. package/dist/visualization.es614.js.map +1 -1
  1082. package/dist/visualization.es615.js +8 -13
  1083. package/dist/visualization.es615.js.map +1 -1
  1084. package/dist/visualization.es616.js +17 -289
  1085. package/dist/visualization.es616.js.map +1 -1
  1086. package/dist/visualization.es617.js +3 -3
  1087. package/dist/visualization.es617.js.map +1 -1
  1088. package/dist/visualization.es618.js +5 -11
  1089. package/dist/visualization.es618.js.map +1 -1
  1090. package/dist/visualization.es619.js +5 -3
  1091. package/dist/visualization.es619.js.map +1 -1
  1092. package/dist/visualization.es62.js +54 -3
  1093. package/dist/visualization.es62.js.map +1 -1
  1094. package/dist/visualization.es620.js +13 -5
  1095. package/dist/visualization.es620.js.map +1 -1
  1096. package/dist/visualization.es621.js +116 -4
  1097. package/dist/visualization.es621.js.map +1 -1
  1098. package/dist/visualization.es622.js +3 -13
  1099. package/dist/visualization.es622.js.map +1 -1
  1100. package/dist/visualization.es623.js +11 -117
  1101. package/dist/visualization.es623.js.map +1 -1
  1102. package/dist/visualization.es624.js +1 -1
  1103. package/dist/visualization.es63.js +40 -279
  1104. package/dist/visualization.es63.js.map +1 -1
  1105. package/dist/visualization.es634.js +1 -1
  1106. package/dist/visualization.es636.js +1 -1
  1107. package/dist/visualization.es637.js +1 -1
  1108. package/dist/visualization.es64.js +5 -18
  1109. package/dist/visualization.es64.js.map +1 -1
  1110. package/dist/visualization.es65.js +4 -18701
  1111. package/dist/visualization.es65.js.map +1 -1
  1112. package/dist/visualization.es66.js +18 -5
  1113. package/dist/visualization.es66.js.map +1 -1
  1114. package/dist/visualization.es67.js +5 -5
  1115. package/dist/visualization.es67.js.map +1 -1
  1116. package/dist/visualization.es68.js +24 -57
  1117. package/dist/visualization.es68.js.map +1 -1
  1118. package/dist/visualization.es69.js +31 -811
  1119. package/dist/visualization.es69.js.map +1 -1
  1120. package/dist/visualization.es7.js +11 -11
  1121. package/dist/visualization.es70.js +11 -0
  1122. package/dist/visualization.es70.js.map +1 -0
  1123. package/dist/visualization.es71.js +8 -131
  1124. package/dist/visualization.es71.js.map +1 -1
  1125. package/dist/visualization.es72.js +27 -64
  1126. package/dist/visualization.es72.js.map +1 -1
  1127. package/dist/visualization.es73.js +64 -265
  1128. package/dist/visualization.es73.js.map +1 -1
  1129. package/dist/visualization.es74.js +61 -102
  1130. package/dist/visualization.es74.js.map +1 -1
  1131. package/dist/visualization.es75.js +4 -27
  1132. package/dist/visualization.es75.js.map +1 -1
  1133. package/dist/visualization.es76.js +46 -22
  1134. package/dist/visualization.es76.js.map +1 -1
  1135. package/dist/visualization.es77.js +4 -18
  1136. package/dist/visualization.es77.js.map +1 -1
  1137. package/dist/visualization.es78.js +280 -19
  1138. package/dist/visualization.es78.js.map +1 -1
  1139. package/dist/visualization.es79.js +19 -74
  1140. package/dist/visualization.es79.js.map +1 -1
  1141. package/dist/visualization.es8.js +13 -13
  1142. package/dist/visualization.es80.js +63 -78
  1143. package/dist/visualization.es80.js.map +1 -1
  1144. package/dist/visualization.es81.js +264 -65
  1145. package/dist/visualization.es81.js.map +1 -1
  1146. package/dist/visualization.es82.js +101 -38
  1147. package/dist/visualization.es82.js.map +1 -1
  1148. package/dist/visualization.es83.js +26 -80
  1149. package/dist/visualization.es83.js.map +1 -1
  1150. package/dist/visualization.es84.js +23 -46
  1151. package/dist/visualization.es84.js.map +1 -1
  1152. package/dist/visualization.es85.js +18 -56
  1153. package/dist/visualization.es85.js.map +1 -1
  1154. package/dist/visualization.es86.js +20 -6
  1155. package/dist/visualization.es86.js.map +1 -1
  1156. package/dist/visualization.es87.js +74 -13
  1157. package/dist/visualization.es87.js.map +1 -1
  1158. package/dist/visualization.es88.js +78 -55
  1159. package/dist/visualization.es88.js.map +1 -1
  1160. package/dist/visualization.es89.js +63 -112
  1161. package/dist/visualization.es89.js.map +1 -1
  1162. package/dist/visualization.es9.js +1 -1
  1163. package/dist/visualization.es90.js +2 -2
  1164. package/dist/visualization.es91.js +2 -2
  1165. package/dist/visualization.es92.js +1 -1
  1166. package/dist/visualization.es93.js +1 -1
  1167. package/dist/visualization.es94.js +1 -1
  1168. package/dist/visualization.es95.js +13 -26
  1169. package/dist/visualization.es95.js.map +1 -1
  1170. package/dist/visualization.es96.js +45 -70
  1171. package/dist/visualization.es96.js.map +1 -1
  1172. package/dist/visualization.es97.js +22 -45
  1173. package/dist/visualization.es97.js.map +1 -1
  1174. package/dist/visualization.es98.js +60 -22
  1175. package/dist/visualization.es98.js.map +1 -1
  1176. package/dist/visualization.es99.js +80 -60
  1177. package/dist/visualization.es99.js.map +1 -1
  1178. package/package.json +1 -1
  1179. package/dist/visualization.es51.js +0 -51
  1180. package/dist/visualization.es51.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"visualization.es101.js","sources":["../src/components/Heatmap/scrollable/HeatmapMiniMapPopup.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef, useState, type RefObject } from \"react\";\nimport HeatmapMiniMap, { type HeatmapMiniMapProps } from \"./HeatmapMiniMap\";\n\n// The expanded minimap opens as a viewport-fixed modal sized off the screen, not the plot's own\n// (often much smaller) container - nearly the whole screen, but leaving a visible backdrop margin\n// so it still reads as a popup rather than a page navigation.\nconst MINI_MAP_POPUP_WIDTH_VW = 94;\nconst MINI_MAP_POPUP_HEIGHT_VH = 90;\nconst MINI_MAP_POPUP_PADDING = 16;\n\ntype MiniMapPassThroughProps = Omit<HeatmapMiniMapProps, \"width\" | \"height\" | \"onCanvasClick\">;\n\nexport interface HeatmapMiniMapPopupProps extends MiniMapPassThroughProps {\n onClose: () => void;\n /** The inline minimap's own container - counts as \"inside\" for the outside-click check below. */\n containerRef: RefObject<HTMLDivElement | null>;\n}\n\nconst HeatmapMiniMapPopup = ({ onClose, containerRef, ...miniMapProps }: HeatmapMiniMapPopupProps) => {\n // The popup itself lives outside containerRef in the tree (it's positioned relative to the\n // plot's outer container, not the small inline minimap) - both refs count as \"inside\" here.\n const popupRef = useRef<HTMLDivElement | null>(null);\n useEffect(() => {\n const handlePointerDown = (event: PointerEvent) => {\n const target = event.target as Node;\n if (containerRef.current?.contains(target) || popupRef.current?.contains(target)) return;\n onClose();\n };\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") onClose();\n };\n document.addEventListener(\"pointerdown\", handlePointerDown);\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n document.removeEventListener(\"pointerdown\", handlePointerDown);\n document.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [containerRef, onClose]);\n\n // The expanded minimap's canvas needs real pixel dimensions (for dpr scaling), but the popup\n // itself is sized by CSS (vw/vh) against the viewport, which can change as the window resizes\n // while the popup is open - ResizeObserver on the flex-filled area inside it is what actually\n // measures that, rather than computing it from window.innerWidth/innerHeight up front.\n const [size, setSize] = useState<{ width: number; height: number } | null>(null);\n const observerRef = useRef<ResizeObserver | null>(null);\n const areaRef = useCallback((node: HTMLDivElement | null) => {\n observerRef.current?.disconnect();\n observerRef.current = null;\n if (!node) {\n setSize(null);\n return;\n }\n const observer = new ResizeObserver(([entry]) => {\n if (!entry) return;\n const { width, height } = entry.contentRect;\n setSize({ width: Math.floor(width), height: Math.floor(height) });\n });\n observer.observe(node);\n observerRef.current = observer;\n }, []);\n\n return (\n <div style={{ position: \"fixed\", inset: 0, zIndex: 1000, background: \"rgba(0,0,0,0.45)\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\n <div\n ref={popupRef}\n style={{\n position: \"relative\",\n width: `${MINI_MAP_POPUP_WIDTH_VW}vw`,\n height: `${MINI_MAP_POPUP_HEIGHT_VH}vh`,\n boxSizing: \"border-box\",\n display: \"flex\",\n flexDirection: \"column\",\n background: \"#fff\",\n border: \"1px solid #d5d5d5\",\n borderRadius: 8,\n boxShadow: \"0 8px 32px rgba(0,0,0,0.25)\",\n overflow: \"hidden\",\n }}\n >\n {/* A proper title bar, not just a close button floating in extra top padding - its\n horizontal padding matches the body's below so the panel reads as evenly framed. */}\n <div\n style={{\n flexShrink: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: `10px ${MINI_MAP_POPUP_PADDING}px`,\n background: \"#f7f7f8\",\n borderBottom: \"1px solid #e5e5e5\",\n }}\n >\n <span style={{ fontSize: 14, fontWeight: 600, color: \"#333\" }}>Minimap</span>\n <button\n type=\"button\"\n aria-label=\"Close expanded minimap\"\n onClick={onClose}\n style={{\n width: 26,\n height: 26,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: 0,\n border: \"none\",\n borderRadius: \"50%\",\n background: \"#fff\",\n color: \"#555\",\n fontSize: 16,\n lineHeight: 1,\n cursor: \"pointer\",\n }}\n >\n ×\n </button>\n </div>\n <div style={{ flex: 1, minHeight: 0, display: \"flex\", padding: MINI_MAP_POPUP_PADDING }}>\n <div ref={areaRef} style={{ flex: 1, minHeight: 0, position: \"relative\" }}>\n {size && size.width > 0 && size.height > 0 && (\n <HeatmapMiniMap {...miniMapProps} width={size.width} height={size.height} />\n )}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default HeatmapMiniMapPopup;\n"],"names":["MINI_MAP_POPUP_WIDTH_VW","MINI_MAP_POPUP_HEIGHT_VH","MINI_MAP_POPUP_PADDING","HeatmapMiniMapPopup","t0","$","_c","containerRef","miniMapProps","onClose","popupRef","useRef","t1","t2","handlePointerDown","event","target","current","contains","handleKeyDown","event_0","key","document","addEventListener","removeEventListener","useEffect","size","setSize","useState","observerRef","t3","Symbol","for","node","disconnect","observer","ResizeObserver","t4","entry","width","height","contentRect","Math","floor","observe","areaRef","position","inset","zIndex","background","display","alignItems","justifyContent","t5","t6","t7","boxSizing","flexDirection","border","borderRadius","boxShadow","overflow","flexShrink","padding","borderBottom","jsx","fontSize","fontWeight","color","t8","lineHeight","cursor","t9","t10","flex","minHeight","t11","t12","HeatmapMiniMap","t13","t14"],"mappings":"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"}
1
+ {"version":3,"file":"visualization.es101.js","sources":["../src/components/Heatmap/hooks/useHeatmapCanvasGrid.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport type { HeatmapCellId } from \"../types\";\nimport type { AnyBin } from \"../HeatmapCells\";\nimport type { PlotTooltipHandle } from \"../../../tooltip\";\nimport { drawHeatmapCells, getVisibleRange, hitTestCell, buildBin, type CanvasCellParams } from \"../HeatmapCanvasCells\";\n\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;\n\nexport interface UseHeatmapCanvasGridArgs {\n canvasCellParams: CanvasCellParams;\n viewportWidth: number;\n viewportHeight: number;\n xTickValues: number[];\n yTickValues: number[];\n isScrollable: boolean;\n onClick?: (bin: AnyBin) => void;\n}\n\nexport function useHeatmapCanvasGrid({\n canvasCellParams, viewportWidth, viewportHeight, xTickValues, yTickValues, isScrollable, onClick,\n}: UseHeatmapCanvasGridArgs) {\n // mainPaneRef is the only pane with a real native scrollbar - the cell canvas and the\n // row/column tick-label panes all track its scroll position by reading it directly here\n // (rAF-throttled), rather than being natively scrolled themselves: the canvas repaints\n // imperatively (drawCanvas), and the tick label panes shift via a transform driven by\n // axisScrollPos state - 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 hoveredCellRef = useRef<HeatmapCellId | null>(null);\n const canvasTooltipRef = useRef<PlotTooltipHandle<AnyBin>>(null);\n const drawRafRef = useRef<number | null>(null);\n\n useEffect(() => () => {\n if (drawRafRef.current != null) cancelAnimationFrame(drawRafRef.current);\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 setMainPaneNode = useCallback((node: HTMLDivElement | null) => {\n mainPaneRef.current = node;\n if (node) setAxisScrollPos({ left: node.scrollLeft, top: node.scrollTop });\n }, []);\n\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 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 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 return {\n canvasRef, mainPaneRef, canvasTooltipRef, setMainPaneNode, handleGridScroll, axisScrollPos,\n visibleXTickValues, visibleYTickValues,\n canvasHandlers: {\n onMouseMove: handleCanvasMouseMove,\n onMouseLeave: handleCanvasMouseLeave,\n onClick: handleCanvasClick,\n },\n };\n}\n"],"names":["GRID_OVERSCAN_CELLS","useHeatmapCanvasGrid","canvasCellParams","viewportWidth","viewportHeight","xTickValues","yTickValues","isScrollable","onClick","mainPaneRef","useRef","canvasRef","hoveredCellRef","canvasTooltipRef","drawRafRef","useEffect","current","cancelAnimationFrame","drawCanvas","useCallback","canvas","main","ctx","getContext","dpr","window","devicePixelRatio","setTransform","clearRect","range","getVisibleRange","scrollLeft","scrollTop","translate","drawHeatmapCells","axisScrollPos","setAxisScrollPos","useState","left","top","setMainPaneNode","node","axisVisibleRange","useMemo","visibleXTickValues","slice","colStart","colEnd","visibleYTickValues","rowStart","rowEnd","handleGridScroll","requestAnimationFrame","handleCanvasMouseMove","event","contentX","nativeEvent","offsetX","contentY","offsetY","cell","hitTestCell","currentTarget","style","cursor","prev","row","column","bin","buildBin","show","hide","handleCanvasMouseLeave","handleCanvasClick","canvasHandlers","onMouseMove","onMouseLeave"],"mappings":"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"}
@@ -1,86 +1,41 @@
1
- import { useRef as T, useEffect as Y, useCallback as f, useState as y, useMemo as m } from "react";
2
- import { getVisibleRange as v, drawHeatmapCells as B, hitTestCell as w, buildBin as A } from "./visualization.es246.js";
3
- const g = 4;
4
- function O({
5
- canvasCellParams: e,
6
- viewportWidth: i,
7
- viewportHeight: a,
8
- xTickValues: b,
9
- yTickValues: M,
10
- isScrollable: G,
11
- onClick: S
12
- }) {
13
- const l = T(null), _ = T(null), d = T(null), L = T(null), R = T(null);
14
- Y(() => () => {
15
- R.current != null && cancelAnimationFrame(R.current);
16
- }, []);
17
- const c = f(() => {
18
- const t = _.current, n = l.current;
19
- if (!t || !n) return;
20
- const r = t.getContext("2d");
21
- if (!r) return;
22
- const u = window.devicePixelRatio || 1;
23
- r.setTransform(u, 0, 0, u, 0, 0), r.clearRect(0, 0, i, a);
24
- const o = v(e, n.scrollLeft, n.scrollTop, i, a, g);
25
- r.translate(-n.scrollLeft, -n.scrollTop), B(r, e, o, d.current);
26
- }, [e, i, a]);
27
- Y(() => {
28
- c();
29
- }, [G, c]);
30
- const [p, x] = y({
31
- left: 0,
32
- top: 0
33
- }), V = f((t) => {
34
- l.current = t, t && x({
35
- left: t.scrollLeft,
36
- top: t.scrollTop
37
- });
38
- }, []), s = m(() => v(e, p.left, p.top, i, a, g), [e, p.left, p.top, i, a]), C = m(() => b.slice(s.colStart, s.colEnd + 1), [b, s.colStart, s.colEnd]), F = m(() => M.slice(s.rowStart, s.rowEnd + 1), [M, s.rowStart, s.rowEnd]), N = f(() => {
39
- const t = l.current;
40
- t && R.current == null && (R.current = requestAnimationFrame(() => {
41
- R.current = null, c(), x({
42
- left: t.scrollLeft,
43
- top: t.scrollTop
44
- });
45
- }));
46
- }, [c]), h = f((t) => {
47
- const n = l.current;
48
- if (!n) return;
49
- const r = t.nativeEvent.offsetX + n.scrollLeft, u = t.nativeEvent.offsetY + n.scrollTop, o = w(e, r, u);
50
- t.currentTarget.style.cursor = o ? "pointer" : "default";
51
- const E = d.current;
52
- if ((E?.row !== o?.row || E?.column !== o?.column) && (d.current = o, c()), o) {
53
- const X = A(e, o);
54
- X && L.current?.show(X, t);
55
- } else
56
- L.current?.hide();
57
- }, [e, c]), k = f((t) => {
58
- t.currentTarget.style.cursor = "default", d.current && (d.current = null, c()), L.current?.hide();
59
- }, [c]), q = f((t) => {
60
- const n = l.current;
61
- if (!n || !S) return;
62
- const r = t.nativeEvent.offsetX + n.scrollLeft, u = t.nativeEvent.offsetY + n.scrollTop, o = w(e, r, u);
63
- if (!o) return;
64
- const E = A(e, o);
65
- E && S(E);
66
- }, [e, S]);
67
- return {
68
- canvasRef: _,
1
+ import { c as _ } from "react/compiler-runtime";
2
+ import { useRef as v, useEffect as w } from "react";
3
+ import { cellKey as S } from "./visualization.es97.js";
4
+ function I(i, e, l, t) {
5
+ return t - l > e || l < i ? l : t > i + e ? t - e : i;
6
+ }
7
+ function O(i) {
8
+ const e = _(14), {
69
9
  mainPaneRef: l,
70
- canvasTooltipRef: L,
71
- setMainPaneNode: V,
72
- handleGridScroll: N,
73
- axisScrollPos: p,
74
- visibleXTickValues: C,
75
- visibleYTickValues: F,
76
- canvasHandlers: {
77
- onMouseMove: h,
78
- onMouseLeave: k,
79
- onClick: q
80
- }
81
- };
10
+ selectedCells: t,
11
+ scrollToSelection: n,
12
+ isScrollable: c,
13
+ binWidth: o,
14
+ viewportWidth: s
15
+ } = i;
16
+ let r;
17
+ e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (r = /* @__PURE__ */ new Set(), e[0] = r) : r = e[0];
18
+ const y = v(r);
19
+ let m;
20
+ e[1] !== o || e[2] !== c || e[3] !== l || e[4] !== n || e[5] !== t || e[6] !== s ? (m = () => {
21
+ const g = y.current, C = t ?? [], L = C.filter((f) => !g.has(S(f)));
22
+ y.current = new Set(C.map(S));
23
+ const a = l.current;
24
+ if (!n || !c || !a || L.length === 0)
25
+ return;
26
+ let h = 1 / 0, p = -1 / 0;
27
+ for (const f of L)
28
+ f.column < h && (h = f.column), f.column > p && (p = f.column);
29
+ const K = h * o, T = (p + 1) * o, R = I(a.scrollLeft, s, K, T);
30
+ R !== a.scrollLeft && a.scrollTo({
31
+ left: R,
32
+ behavior: "smooth"
33
+ });
34
+ }, e[1] = o, e[2] = c, e[3] = l, e[4] = n, e[5] = t, e[6] = s, e[7] = m) : m = e[7];
35
+ let u;
36
+ e[8] !== o || e[9] !== c || e[10] !== n || e[11] !== t || e[12] !== s ? (u = [t, n, c, o, s], e[8] = o, e[9] = c, e[10] = n, e[11] = t, e[12] = s, e[13] = u) : u = e[13], w(m, u);
82
37
  }
83
38
  export {
84
- O as useHeatmapCanvasGrid
39
+ O as useScrollToSelection
85
40
  };
86
41
  //# sourceMappingURL=visualization.es102.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"visualization.es102.js","sources":["../src/components/Heatmap/hooks/useHeatmapCanvasGrid.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport type { HeatmapCellId } from \"../types\";\nimport type { AnyBin } from \"../HeatmapCells\";\nimport type { PlotTooltipHandle } from \"../../../tooltip\";\nimport { drawHeatmapCells, getVisibleRange, hitTestCell, buildBin, type CanvasCellParams } from \"../HeatmapCanvasCells\";\n\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;\n\nexport interface UseHeatmapCanvasGridArgs {\n canvasCellParams: CanvasCellParams;\n viewportWidth: number;\n viewportHeight: number;\n xTickValues: number[];\n yTickValues: number[];\n isScrollable: boolean;\n onClick?: (bin: AnyBin) => void;\n}\n\nexport function useHeatmapCanvasGrid({\n canvasCellParams, viewportWidth, viewportHeight, xTickValues, yTickValues, isScrollable, onClick,\n}: UseHeatmapCanvasGridArgs) {\n // mainPaneRef is the only pane with a real native scrollbar - the cell canvas and the\n // row/column tick-label panes all track its scroll position by reading it directly here\n // (rAF-throttled), rather than being natively scrolled themselves: the canvas repaints\n // imperatively (drawCanvas), and the tick label panes shift via a transform driven by\n // axisScrollPos state - 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 hoveredCellRef = useRef<HeatmapCellId | null>(null);\n const canvasTooltipRef = useRef<PlotTooltipHandle<AnyBin>>(null);\n const drawRafRef = useRef<number | null>(null);\n\n useEffect(() => () => {\n if (drawRafRef.current != null) cancelAnimationFrame(drawRafRef.current);\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 setMainPaneNode = useCallback((node: HTMLDivElement | null) => {\n mainPaneRef.current = node;\n if (node) setAxisScrollPos({ left: node.scrollLeft, top: node.scrollTop });\n }, []);\n\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 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 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 return {\n canvasRef, mainPaneRef, canvasTooltipRef, setMainPaneNode, handleGridScroll, axisScrollPos,\n visibleXTickValues, visibleYTickValues,\n canvasHandlers: {\n onMouseMove: handleCanvasMouseMove,\n onMouseLeave: handleCanvasMouseLeave,\n onClick: handleCanvasClick,\n },\n };\n}\n"],"names":["GRID_OVERSCAN_CELLS","useHeatmapCanvasGrid","canvasCellParams","viewportWidth","viewportHeight","xTickValues","yTickValues","isScrollable","onClick","mainPaneRef","useRef","canvasRef","hoveredCellRef","canvasTooltipRef","drawRafRef","useEffect","current","cancelAnimationFrame","drawCanvas","useCallback","canvas","main","ctx","getContext","dpr","window","devicePixelRatio","setTransform","clearRect","range","getVisibleRange","scrollLeft","scrollTop","translate","drawHeatmapCells","axisScrollPos","setAxisScrollPos","useState","left","top","setMainPaneNode","node","axisVisibleRange","useMemo","visibleXTickValues","slice","colStart","colEnd","visibleYTickValues","rowStart","rowEnd","handleGridScroll","requestAnimationFrame","handleCanvasMouseMove","event","contentX","nativeEvent","offsetX","contentY","offsetY","cell","hitTestCell","currentTarget","style","cursor","prev","row","column","bin","buildBin","show","hide","handleCanvasMouseLeave","handleCanvasClick","canvasHandlers","onMouseMove","onMouseLeave"],"mappings":"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"}
1
+ {"version":3,"file":"visualization.es102.js","sources":["../src/components/Heatmap/hooks/useScrollToSelection.ts"],"sourcesContent":["import { useEffect, useRef, type RefObject } from \"react\";\nimport type { HeatmapCellId } from \"../types\";\nimport { cellKey } from \"../heatmapCellAppearance\";\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\nexport interface UseScrollToSelectionArgs {\n mainPaneRef: RefObject<HTMLDivElement | null>;\n selectedCells?: HeatmapCellId[];\n scrollToSelection?: boolean;\n isScrollable: boolean;\n binWidth: number;\n viewportWidth: number;\n}\n\n// Auto-scrolls to reveal newly-selected cells\nexport function useScrollToSelection({\n mainPaneRef, selectedCells, scrollToSelection, isScrollable, binWidth, viewportWidth,\n}: UseScrollToSelectionArgs) {\n const previousSelectionKeysRef = useRef<Set<string>>(new Set());\n\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;\n for (const cell of newCells) {\n if (cell.column < minCol) minCol = cell.column;\n if (cell.column > maxCol) maxCol = cell.column;\n }\n\n const boxLeft = minCol * binWidth;\n const boxRight = (maxCol + 1) * binWidth;\n\n const targetLeft = nearestScrollOffset(main.scrollLeft, viewportWidth, boxLeft, boxRight);\n if (targetLeft !== main.scrollLeft) {\n main.scrollTo({ left: targetLeft, behavior: \"smooth\" });\n }\n }, [selectedCells, scrollToSelection, isScrollable, binWidth, viewportWidth]);\n}\n"],"names":["nearestScrollOffset","current","viewportSize","boxStart","boxEnd","useScrollToSelection","t0","$","_c","mainPaneRef","selectedCells","scrollToSelection","isScrollable","binWidth","viewportWidth","t1","Symbol","for","Set","previousSelectionKeysRef","useRef","t2","previousKeys","cells","newCells","filter","cell","has","cellKey","map","main","length","minCol","Infinity","maxCol","cell_0","column","boxLeft","boxRight","targetLeft","scrollLeft","scrollTo","left","behavior","t3","useEffect"],"mappings":";;;AAQA,SAASA,EAAoBC,GAAiBC,GAAsBC,GAAkBC,GAAwB;AAE5G,SADIA,IAASD,IAAWD,KACpBC,IAAWF,IAAgBE,IAC3BC,IAASH,IAAUC,IAAqBE,IAASF,IAC9CD;AACT;AAYO,SAAAI,EAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAA8B;AAAA,IAAAC,aAAAA;AAAAA,IAAAC,eAAAA;AAAAA,IAAAC,mBAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAC,eAAAA;AAAAA,EAAAA,IAAAR;AAEV,MAAAS;AAAA,EAAAR,EAAA,CAAA,MAAAS,uBAAAC,IAAA,2BAAA,KAC4BF,wBAAIG,IAAAA,GAAKX,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAA9D,QAAAY,IAAiCC,EAAoBL,CAAS;AAAE,MAAAM;AAAA,EAAAd,SAAAM,KAAAN,EAAA,CAAA,MAAAK,KAAAL,EAAA,CAAA,MAAAE,KAAAF,EAAA,CAAA,MAAAI,KAAAJ,SAAAG,KAAAH,EAAA,CAAA,MAAAO,KAEtDO,IAAAA,MAAA;AACR,UAAAC,IAAqBH,EAAwBlB,SAC7CsB,IAAcb,KAAA,CAAA,GACdc,IAAiBD,EAAKE,OAAQC,CAAAA,MAAU,CAACJ,EAAYK,IAAKC,EAAQF,CAAI,CAAC,CAAC;AACxEP,IAAAA,EAAwBlB,UAAW,IAAIiB,IAAIK,EAAKM,IAAKD,CAAO,CAAC;AAE7D,UAAAE,IAAarB,EAAWR;AACxB,QAAI,CAACU,KAAD,CAAuBC,KAAvB,CAAwCkB,KAAQN,EAAQO,WAAY;AAAC;AAEzE,QAAAC,IAAaC,OAAbC,IAAgC;AAChC,eAAKC,KAAcX;AACjB,MAAIE,EAAIU,SAAUJ,MAAQA,IAASN,EAAIU,SACnCV,EAAIU,SAAUF,MAAQA,IAASR,EAAIU;AAGzC,UAAAC,IAAgBL,IAASnB,GACzByB,KAAkBJ,IAAS,KAAKrB,GAEhC0B,IAAmBvC,EAAoB8B,EAAIU,YAAa1B,GAAeuB,GAASC,CAAQ;AACxF,IAAIC,MAAeT,EAAIU,cACrBV,EAAIW,SAAU;AAAA,MAAAC,MAAQH;AAAAA,MAAUI,UAAY;AAAA,IAAA,CAAU;AAAA,EACvD,GACFpC,OAAAM,GAAAN,OAAAK,GAAAL,OAAAE,GAAAF,OAAAI,GAAAJ,OAAAG,GAAAH,OAAAO,GAAAP,OAAAc,KAAAA,IAAAd,EAAA,CAAA;AAAA,MAAAqC;AAAA,EAAArC,EAAA,CAAA,MAAAM,KAAAN,EAAA,CAAA,MAAAK,KAAAL,EAAA,EAAA,MAAAI,KAAAJ,EAAA,EAAA,MAAAG,KAAAH,UAAAO,KAAE8B,IAAA,CAAClC,GAAeC,GAAmBC,GAAcC,GAAUC,CAAa,GAACP,OAAAM,GAAAN,OAAAK,GAAAL,QAAAI,GAAAJ,QAAAG,GAAAH,QAAAO,GAAAP,QAAAqC,KAAAA,IAAArC,EAAA,EAAA,GAtB5EsC,EAAUxB,GAsBPuB,CAAyE;AAAC;"}
@@ -1,41 +1,50 @@
1
- import { c as _ } from "react/compiler-runtime";
2
- import { useRef as v, useEffect as w } from "react";
3
- import { cellKey as S } from "./visualization.es98.js";
4
- function I(i, e, l, t) {
5
- return t - l > e || l < i ? l : t > i + e ? t - e : i;
6
- }
7
- function O(i) {
8
- const e = _(14), {
9
- mainPaneRef: l,
10
- selectedCells: t,
11
- scrollToSelection: n,
12
- isScrollable: c,
13
- binWidth: o,
14
- viewportWidth: s
15
- } = i;
1
+ import { jsx as $ } from "react/jsx-runtime";
2
+ import { c as A } from "react/compiler-runtime";
3
+ import { memo as H } from "react";
4
+ import { getAnimationProps as I } from "./visualization.es20.js";
5
+ import { motion as M } from "./visualization.es27.js";
6
+ const S = "visx-heatmap-cell", d = "visx-heatmap-cell-shape", z = `
7
+ .${S} { cursor: pointer; }
8
+ .${d} { transition: stroke-width 0.2s; pointer-events: all; }
9
+ .${S}:hover .${d} { stroke-width: 2; }
10
+ `, N = (o, t) => o.row !== t.row || o.column !== t.column || o.count !== t.count || o.gap !== t.gap || o.color !== t.color || o.opacity !== t.opacity || o.bin !== t.bin || o.datum !== t.datum ? !1 : "x" in o ? "x" in t && o.x === t.x && o.y === t.y && o.width === t.width && o.height === t.height : "cy" in t && o.cy === t.cy && o.r === t.r && o.radius === t.radius, O = (o, t) => o.fill === t.fill && o.fillOpacity === t.fillOpacity && o.isRect === t.isRect && o.binWidth === t.binWidth && o.colIndex === t.colIndex && o.animationType === t.animationType && o.tooltipRef === t.tooltipRef && o.onClick === t.onClick && N(o.bin, t.bin), B = H(function(t) {
11
+ const i = A(27), {
12
+ bin: e,
13
+ isRect: E,
14
+ binWidth: a,
15
+ fill: m,
16
+ fillOpacity: y,
17
+ colIndex: C,
18
+ animationType: P,
19
+ tooltipRef: l,
20
+ onClick: g
21
+ } = t, w = E && "width" in e && "height" in e && "x" in e && "y" in e, x = !E && "cy" in e && "r" in e;
22
+ let h;
23
+ i[0] !== m || i[1] !== y ? (h = {
24
+ fill: m,
25
+ fillOpacity: y,
26
+ stroke: m,
27
+ strokeWidth: 0
28
+ }, i[0] = m, i[1] = y, i[2] = h) : h = i[2];
29
+ const p = h, k = P ? M.g : "g", L = P;
30
+ let f;
31
+ i[3] !== C || i[4] !== L ? (f = I(L, C), i[3] = C, i[4] = L, i[5] = f) : f = i[5];
32
+ const R = f;
33
+ let c;
34
+ i[6] !== e || i[7] !== l ? (c = (W) => l.current?.show(e, W), i[6] = e, i[7] = l, i[8] = c) : c = i[8];
35
+ let n;
36
+ i[9] !== l ? (n = () => l.current?.hide(), i[9] = l, i[10] = n) : n = i[10];
37
+ let s;
38
+ i[11] !== e || i[12] !== g ? (s = () => g?.(e), i[11] = e, i[12] = g, i[13] = s) : s = i[13];
16
39
  let r;
17
- e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (r = /* @__PURE__ */ new Set(), e[0] = r) : r = e[0];
18
- const y = v(r);
19
- let m;
20
- e[1] !== o || e[2] !== c || e[3] !== l || e[4] !== n || e[5] !== t || e[6] !== s ? (m = () => {
21
- const g = y.current, C = t ?? [], L = C.filter((f) => !g.has(S(f)));
22
- y.current = new Set(C.map(S));
23
- const a = l.current;
24
- if (!n || !c || !a || L.length === 0)
25
- return;
26
- let h = 1 / 0, p = -1 / 0;
27
- for (const f of L)
28
- f.column < h && (h = f.column), f.column > p && (p = f.column);
29
- const K = h * o, T = (p + 1) * o, R = I(a.scrollLeft, s, K, T);
30
- R !== a.scrollLeft && a.scrollTo({
31
- left: R,
32
- behavior: "smooth"
33
- });
34
- }, e[1] = o, e[2] = c, e[3] = l, e[4] = n, e[5] = t, e[6] = s, e[7] = m) : m = e[7];
40
+ i[14] !== e || i[15] !== a || i[16] !== x || i[17] !== w || i[18] !== p ? (r = w ? /* @__PURE__ */ $("rect", { className: `visx-heatmap-rect ${d}`, width: e.width, height: e.height, x: e.x, y: e.y, ...p }) : x ? /* @__PURE__ */ $("circle", { className: `visx-heatmap-circle ${d}`, cx: e.column * a + a / 2, cy: e.cy, r: e.r, ...p }) : null, i[14] = e, i[15] = a, i[16] = x, i[17] = w, i[18] = p, i[19] = r) : r = i[19];
35
41
  let u;
36
- e[8] !== o || e[9] !== c || e[10] !== n || e[11] !== t || e[12] !== s ? (u = [t, n, c, o, s], e[8] = o, e[9] = c, e[10] = n, e[11] = t, e[12] = s, e[13] = u) : u = e[13], w(m, u);
37
- }
42
+ return i[20] !== k || i[21] !== R || i[22] !== c || i[23] !== n || i[24] !== s || i[25] !== r ? (u = /* @__PURE__ */ $(k, { ...R, className: S, onMouseMove: c, onMouseLeave: n, onClick: s, children: r }), i[20] = k, i[21] = R, i[22] = c, i[23] = n, i[24] = s, i[25] = r, i[26] = u) : u = i[26], u;
43
+ }, O);
38
44
  export {
39
- O as useScrollToSelection
45
+ S as CELL_CLASS,
46
+ d as CELL_SHAPE_CLASS,
47
+ B as default,
48
+ z as heatmapCellStyles
40
49
  };
41
50
  //# sourceMappingURL=visualization.es103.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"visualization.es103.js","sources":["../src/components/Heatmap/hooks/useScrollToSelection.ts"],"sourcesContent":["import { useEffect, useRef, type RefObject } from \"react\";\nimport type { HeatmapCellId } from \"../types\";\nimport { cellKey } from \"../heatmapCellAppearance\";\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\nexport interface UseScrollToSelectionArgs {\n mainPaneRef: RefObject<HTMLDivElement | null>;\n selectedCells?: HeatmapCellId[];\n scrollToSelection?: boolean;\n isScrollable: boolean;\n binWidth: number;\n viewportWidth: number;\n}\n\n// Auto-scrolls to reveal newly-selected cells\nexport function useScrollToSelection({\n mainPaneRef, selectedCells, scrollToSelection, isScrollable, binWidth, viewportWidth,\n}: UseScrollToSelectionArgs) {\n const previousSelectionKeysRef = useRef<Set<string>>(new Set());\n\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;\n for (const cell of newCells) {\n if (cell.column < minCol) minCol = cell.column;\n if (cell.column > maxCol) maxCol = cell.column;\n }\n\n const boxLeft = minCol * binWidth;\n const boxRight = (maxCol + 1) * binWidth;\n\n const targetLeft = nearestScrollOffset(main.scrollLeft, viewportWidth, boxLeft, boxRight);\n if (targetLeft !== main.scrollLeft) {\n main.scrollTo({ left: targetLeft, behavior: \"smooth\" });\n }\n }, [selectedCells, scrollToSelection, isScrollable, binWidth, viewportWidth]);\n}\n"],"names":["nearestScrollOffset","current","viewportSize","boxStart","boxEnd","useScrollToSelection","t0","$","_c","mainPaneRef","selectedCells","scrollToSelection","isScrollable","binWidth","viewportWidth","t1","Symbol","for","Set","previousSelectionKeysRef","useRef","t2","previousKeys","cells","newCells","filter","cell","has","cellKey","map","main","length","minCol","Infinity","maxCol","cell_0","column","boxLeft","boxRight","targetLeft","scrollLeft","scrollTo","left","behavior","t3","useEffect"],"mappings":";;;AAQA,SAASA,EAAoBC,GAAiBC,GAAsBC,GAAkBC,GAAwB;AAE5G,SADIA,IAASD,IAAWD,KACpBC,IAAWF,IAAgBE,IAC3BC,IAASH,IAAUC,IAAqBE,IAASF,IAC9CD;AACT;AAYO,SAAAI,EAAAC,GAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAA8B;AAAA,IAAAC,aAAAA;AAAAA,IAAAC,eAAAA;AAAAA,IAAAC,mBAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAC,eAAAA;AAAAA,EAAAA,IAAAR;AAEV,MAAAS;AAAA,EAAAR,EAAA,CAAA,MAAAS,uBAAAC,IAAA,2BAAA,KAC4BF,wBAAIG,IAAAA,GAAKX,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAA9D,QAAAY,IAAiCC,EAAoBL,CAAS;AAAE,MAAAM;AAAA,EAAAd,SAAAM,KAAAN,EAAA,CAAA,MAAAK,KAAAL,EAAA,CAAA,MAAAE,KAAAF,EAAA,CAAA,MAAAI,KAAAJ,SAAAG,KAAAH,EAAA,CAAA,MAAAO,KAEtDO,IAAAA,MAAA;AACR,UAAAC,IAAqBH,EAAwBlB,SAC7CsB,IAAcb,KAAA,CAAA,GACdc,IAAiBD,EAAKE,OAAQC,CAAAA,MAAU,CAACJ,EAAYK,IAAKC,EAAQF,CAAI,CAAC,CAAC;AACxEP,IAAAA,EAAwBlB,UAAW,IAAIiB,IAAIK,EAAKM,IAAKD,CAAO,CAAC;AAE7D,UAAAE,IAAarB,EAAWR;AACxB,QAAI,CAACU,KAAD,CAAuBC,KAAvB,CAAwCkB,KAAQN,EAAQO,WAAY;AAAC;AAEzE,QAAAC,IAAaC,OAAbC,IAAgC;AAChC,eAAKC,KAAcX;AACjB,MAAIE,EAAIU,SAAUJ,MAAQA,IAASN,EAAIU,SACnCV,EAAIU,SAAUF,MAAQA,IAASR,EAAIU;AAGzC,UAAAC,IAAgBL,IAASnB,GACzByB,KAAkBJ,IAAS,KAAKrB,GAEhC0B,IAAmBvC,EAAoB8B,EAAIU,YAAa1B,GAAeuB,GAASC,CAAQ;AACxF,IAAIC,MAAeT,EAAIU,cACrBV,EAAIW,SAAU;AAAA,MAAAC,MAAQH;AAAAA,MAAUI,UAAY;AAAA,IAAA,CAAU;AAAA,EACvD,GACFpC,OAAAM,GAAAN,OAAAK,GAAAL,OAAAE,GAAAF,OAAAI,GAAAJ,OAAAG,GAAAH,OAAAO,GAAAP,OAAAc,KAAAA,IAAAd,EAAA,CAAA;AAAA,MAAAqC;AAAA,EAAArC,EAAA,CAAA,MAAAM,KAAAN,EAAA,CAAA,MAAAK,KAAAL,EAAA,EAAA,MAAAI,KAAAJ,EAAA,EAAA,MAAAG,KAAAH,UAAAO,KAAE8B,IAAA,CAAClC,GAAeC,GAAmBC,GAAcC,GAAUC,CAAa,GAACP,OAAAM,GAAAN,OAAAK,GAAAL,QAAAI,GAAAJ,QAAAG,GAAAH,QAAAO,GAAAP,QAAAqC,KAAAA,IAAArC,EAAA,EAAA,GAtB5EsC,EAAUxB,GAsBPuB,CAAyE;AAAC;"}
1
+ {"version":3,"file":"visualization.es103.js","sources":["../src/components/Heatmap/HeatmapCell.tsx"],"sourcesContent":["import { memo, MouseEvent } from \"react\";\nimport { motion } from \"framer-motion\";\nimport { getAnimationProps } from \"../../utility\";\nimport type { AnimationType } from \"../../utility\";\nimport type { AnyBin } from \"./HeatmapCells\";\nimport type { PlotTooltipRef } from \"../../tooltip\";\n\n/** Class on the <g> wrapping each cell. The hover rule keys off this. */\nexport const CELL_CLASS = \"visx-heatmap-cell\";\n/** Class on the <rect>/<circle> inside each cell. */\nexport const CELL_SHAPE_CLASS = \"visx-heatmap-cell-shape\";\n\n/**\n * Hover styling is plain CSS rather than React state: `:hover` costs no render at all, while\n * tracking hover in state re-renders on every cell the pointer crosses. Rendered once per chart\n * by Heatmap, inside the <svg> so it survives the SVG/PNG download serialization.\n *\n * The stroke is always painted in the cell's own fill color, so hovering only has to give it a\n * width. `strokeWidth={0}` below is a presentation attribute, which loses to any CSS rule - so\n * the hover rule wins without needing !important.\n *\n * `pointer-events: all` because cells with a null count render with fill=\"none\", and SVG's\n * default (visiblePainted) only treats painted area as a hit target - without this the pointer\n * falls through such a cell to the <svg> and it can never show its \"no data\" tooltip.\n */\nexport const heatmapCellStyles = `\n.${CELL_CLASS} { cursor: pointer; }\n.${CELL_SHAPE_CLASS} { transition: stroke-width 0.2s; pointer-events: all; }\n.${CELL_CLASS}:hover .${CELL_SHAPE_CLASS} { stroke-width: 2; }\n`;\n\nexport interface HeatmapCellProps {\n bin: AnyBin;\n isRect: boolean;\n binWidth: number;\n fill: string;\n fillOpacity: number;\n colIndex: number;\n animationType?: AnimationType;\n /** Stable for the life of the plot, so it never invalidates this cell's memoization. */\n tooltipRef: PlotTooltipRef<AnyBin>;\n onClick?: (bin: AnyBin) => void;\n}\n\n/**\n * visx rebuilds every bin object inside its own render, so `bin` always arrives with a fresh\n * identity and memo's default shallow compare can never bail out. Comparing the bin's fields\n * instead lets untouched cells skip re-rendering, which is what makes selection changes cheap:\n * only the cells whose appearance actually changed re-render, rather than the whole grid.\n *\n * `bin.bin` and `bin.datum` are the caller's own row/column data, which do keep identity, so a\n * reference check on those covers data and metadata changes.\n */\nconst binsEqual = (a: AnyBin, b: AnyBin): boolean => {\n if (\n a.row !== b.row ||\n a.column !== b.column ||\n a.count !== b.count ||\n a.gap !== b.gap ||\n a.color !== b.color ||\n a.opacity !== b.opacity ||\n a.bin !== b.bin ||\n a.datum !== b.datum\n ) {\n return false;\n }\n // Rect and circle cells carry different geometry fields\n if (\"x\" in a) {\n return \"x\" in b && a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n }\n return \"cy\" in b && a.cy === b.cy && a.r === b.r && a.radius === b.radius;\n};\n\n/**\n * Must compare every prop in HeatmapCellProps - one left out here would silently stop updating.\n */\nconst cellPropsEqual = (prev: HeatmapCellProps, next: HeatmapCellProps): boolean =>\n prev.fill === next.fill &&\n prev.fillOpacity === next.fillOpacity &&\n prev.isRect === next.isRect &&\n prev.binWidth === next.binWidth &&\n prev.colIndex === next.colIndex &&\n prev.animationType === next.animationType &&\n prev.tooltipRef === next.tooltipRef &&\n prev.onClick === next.onClick &&\n binsEqual(prev.bin, next.bin);\n\nconst HeatmapCell = memo(function HeatmapCell({\n bin, isRect, binWidth, fill, fillOpacity, colIndex,\n animationType, tooltipRef, onClick,\n}: HeatmapCellProps) {\n const isRectCell = isRect && \"width\" in bin && \"height\" in bin && \"x\" in bin && \"y\" in bin;\n const isCircleCell = !isRect && \"cy\" in bin && \"r\" in bin;\n\n const sharedProps = { fill, fillOpacity, stroke: fill, strokeWidth: 0 };\n\n const Wrapper = animationType ? motion.g : \"g\";\n const animProps = getAnimationProps(animationType as AnimationType, colIndex);\n\n return (\n <Wrapper\n {...animProps}\n className={CELL_CLASS}\n onMouseMove={(event: MouseEvent<SVGElement>) => tooltipRef.current?.show(bin, event)}\n onMouseLeave={() => tooltipRef.current?.hide()}\n onClick={() => onClick?.(bin)}\n >\n {isRectCell ? (\n <rect\n className={`visx-heatmap-rect ${CELL_SHAPE_CLASS}`}\n width={bin.width}\n height={bin.height}\n x={bin.x}\n y={bin.y}\n {...sharedProps}\n />\n ) : isCircleCell ? (\n <circle\n className={`visx-heatmap-circle ${CELL_SHAPE_CLASS}`}\n cx={bin.column * binWidth + binWidth / 2}\n cy={bin.cy}\n r={bin.r}\n {...sharedProps}\n />\n ) : null}\n </Wrapper>\n );\n}, cellPropsEqual);\n\nexport default HeatmapCell;\n"],"names":["CELL_CLASS","CELL_SHAPE_CLASS","heatmapCellStyles","binsEqual","a","b","row","column","count","gap","color","opacity","bin","datum","x","y","width","height","cy","r","radius","cellPropsEqual","prev","next","fill","fillOpacity","isRect","binWidth","colIndex","animationType","tooltipRef","onClick","HeatmapCell","memo","t0","$","_c","isRectCell","isCircleCell","t1","stroke","strokeWidth","sharedProps","Wrapper","motion","g","t2","t3","getAnimationProps","animProps","t4","event","current","show","t5","hide","t6","t7","jsx","t8"],"mappings":"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"}
@@ -1,50 +1,77 @@
1
- import { jsx as $ } from "react/jsx-runtime";
2
- import { c as A } from "react/compiler-runtime";
3
- import { memo as H } from "react";
4
- import { getAnimationProps as I } from "./visualization.es31.js";
5
- import { motion as M } from "./visualization.es45.js";
6
- const S = "visx-heatmap-cell", d = "visx-heatmap-cell-shape", z = `
7
- .${S} { cursor: pointer; }
8
- .${d} { transition: stroke-width 0.2s; pointer-events: all; }
9
- .${S}:hover .${d} { stroke-width: 2; }
10
- `, N = (o, t) => o.row !== t.row || o.column !== t.column || o.count !== t.count || o.gap !== t.gap || o.color !== t.color || o.opacity !== t.opacity || o.bin !== t.bin || o.datum !== t.datum ? !1 : "x" in o ? "x" in t && o.x === t.x && o.y === t.y && o.width === t.width && o.height === t.height : "cy" in t && o.cy === t.cy && o.r === t.r && o.radius === t.radius, O = (o, t) => o.fill === t.fill && o.fillOpacity === t.fillOpacity && o.isRect === t.isRect && o.binWidth === t.binWidth && o.colIndex === t.colIndex && o.animationType === t.animationType && o.tooltipRef === t.tooltipRef && o.onClick === t.onClick && N(o.bin, t.bin), B = H(function(t) {
11
- const i = A(27), {
12
- bin: e,
13
- isRect: E,
14
- binWidth: a,
15
- fill: m,
16
- fillOpacity: y,
17
- colIndex: C,
18
- animationType: P,
19
- tooltipRef: l,
20
- onClick: g
21
- } = t, w = E && "width" in e && "height" in e && "x" in e && "y" in e, x = !E && "cy" in e && "r" in e;
22
- let h;
23
- i[0] !== m || i[1] !== y ? (h = {
24
- fill: m,
25
- fillOpacity: y,
26
- stroke: m,
27
- strokeWidth: 0
28
- }, i[0] = m, i[1] = y, i[2] = h) : h = i[2];
29
- const p = h, k = P ? M.g : "g", L = P;
30
- let f;
31
- i[3] !== C || i[4] !== L ? (f = I(L, C), i[3] = C, i[4] = L, i[5] = f) : f = i[5];
32
- const R = f;
33
- let c;
34
- i[6] !== e || i[7] !== l ? (c = (W) => l.current?.show(e, W), i[6] = e, i[7] = l, i[8] = c) : c = i[8];
35
- let n;
36
- i[9] !== l ? (n = () => l.current?.hide(), i[9] = l, i[10] = n) : n = i[10];
37
- let s;
38
- i[11] !== e || i[12] !== g ? (s = () => g?.(e), i[11] = e, i[12] = g, i[13] = s) : s = i[13];
39
- let r;
40
- i[14] !== e || i[15] !== a || i[16] !== x || i[17] !== w || i[18] !== p ? (r = w ? /* @__PURE__ */ $("rect", { className: `visx-heatmap-rect ${d}`, width: e.width, height: e.height, x: e.x, y: e.y, ...p }) : x ? /* @__PURE__ */ $("circle", { className: `visx-heatmap-circle ${d}`, cx: e.column * a + a / 2, cy: e.cy, r: e.r, ...p }) : null, i[14] = e, i[15] = a, i[16] = x, i[17] = w, i[18] = p, i[19] = r) : r = i[19];
1
+ import { jsx as A, jsxs as F } from "react/jsx-runtime";
2
+ import { c as H } from "react/compiler-runtime";
3
+ import B from "./visualization.es150.js";
4
+ import I from "./visualization.es32.js";
5
+ const R = (E) => {
6
+ const e = H(75), {
7
+ crossProps: f,
8
+ left: G,
9
+ top: L,
10
+ median: l,
11
+ firstQuartile: n,
12
+ thirdQuartile: c,
13
+ valueScale: t,
14
+ medianWidth: s,
15
+ tooltipData: w,
16
+ handleMouseMove: a,
17
+ handleCrossClick: d,
18
+ disableViolinPlot: i,
19
+ tooltip: r,
20
+ horizontal: o
21
+ } = E;
22
+ let m;
23
+ e[0] !== o || e[1] !== c || e[2] !== t ? (m = o ? t(c) : 0, e[0] = o, e[1] = c, e[2] = t, e[3] = m) : m = e[3];
24
+ let k;
25
+ e[4] !== o || e[5] !== c || e[6] !== t ? (k = o ? 0 : t(c), e[4] = o, e[5] = c, e[6] = t, e[7] = k) : k = e[7];
26
+ let p;
27
+ e[8] !== m || e[9] !== k ? (p = {
28
+ x: m,
29
+ y: k
30
+ }, e[8] = m, e[9] = k, e[10] = p) : p = e[10];
41
31
  let u;
42
- return i[20] !== k || i[21] !== R || i[22] !== c || i[23] !== n || i[24] !== s || i[25] !== r ? (u = /* @__PURE__ */ $(k, { ...R, className: S, onMouseMove: c, onMouseLeave: n, onClick: s, children: r }), i[20] = k, i[21] = R, i[22] = c, i[23] = n, i[24] = s, i[25] = r, i[26] = u) : u = i[26], u;
43
- }, O);
32
+ e[11] !== n || e[12] !== o || e[13] !== t ? (u = o ? t(n) : 0, e[11] = n, e[12] = o, e[13] = t, e[14] = u) : u = e[14];
33
+ let h;
34
+ e[15] !== n || e[16] !== o || e[17] !== t ? (h = o ? 0 : t(n), e[15] = n, e[16] = o, e[17] = t, e[18] = h) : h = e[18];
35
+ let x;
36
+ e[19] !== u || e[20] !== h ? (x = {
37
+ x: u,
38
+ y: h
39
+ }, e[19] = u, e[20] = h, e[21] = x) : x = e[21];
40
+ const S = f?.color ?? "#000000", V = w === r && i ? (f?.stroke ?? 1) + 1 : f?.stroke ?? 1;
41
+ let v;
42
+ e[22] !== i || e[23] !== a || e[24] !== r ? (v = i ? (q) => a(q, r) : void 0, e[22] = i, e[23] = a, e[24] = r, e[25] = v) : v = e[25];
43
+ let C;
44
+ e[26] !== d || e[27] !== p || e[28] !== x || e[29] !== S || e[30] !== V || e[31] !== v ? (C = /* @__PURE__ */ A(B, { from: p, to: x, stroke: S, strokeWidth: V, onMouseMove: v, onClick: d }), e[26] = d, e[27] = p, e[28] = x, e[29] = S, e[30] = V, e[31] = v, e[32] = C) : C = e[32];
45
+ let M;
46
+ e[33] !== o || e[34] !== l || e[35] !== s || e[36] !== t ? (M = o ? t(l) : -s / 2, e[33] = o, e[34] = l, e[35] = s, e[36] = t, e[37] = M) : M = e[37];
47
+ let y;
48
+ e[38] !== o || e[39] !== l || e[40] !== s || e[41] !== t ? (y = o ? -s / 2 : t(l), e[38] = o, e[39] = l, e[40] = s, e[41] = t, e[42] = y) : y = e[42];
49
+ let P;
50
+ e[43] !== M || e[44] !== y ? (P = {
51
+ x: M,
52
+ y
53
+ }, e[43] = M, e[44] = y, e[45] = P) : P = e[45];
54
+ let W;
55
+ e[46] !== o || e[47] !== l || e[48] !== s || e[49] !== t ? (W = o ? t(l) : s / 2, e[46] = o, e[47] = l, e[48] = s, e[49] = t, e[50] = W) : W = e[50];
56
+ let j;
57
+ e[51] !== o || e[52] !== l || e[53] !== s || e[54] !== t ? (j = o ? s / 2 : t(l), e[51] = o, e[52] = l, e[53] = s, e[54] = t, e[55] = j) : j = e[55];
58
+ let Q;
59
+ e[56] !== W || e[57] !== j ? (Q = {
60
+ x: W,
61
+ y: j
62
+ }, e[56] = W, e[57] = j, e[58] = Q) : Q = e[58];
63
+ const $ = f?.medianColor ?? f?.color ?? "#000000", g = w === r && i ? (f?.stroke ?? 1) + 1 : f?.stroke ?? 1;
64
+ let b;
65
+ e[59] !== i || e[60] !== a || e[61] !== r ? (b = i ? (q) => a(q, r) : void 0, e[59] = i, e[60] = a, e[61] = r, e[62] = b) : b = e[62];
66
+ let z;
67
+ e[63] !== d || e[64] !== P || e[65] !== Q || e[66] !== $ || e[67] !== g || e[68] !== b ? (z = /* @__PURE__ */ A(B, { from: P, to: Q, stroke: $, strokeWidth: g, onMouseMove: b, onClick: d }), e[63] = d, e[64] = P, e[65] = Q, e[66] = $, e[67] = g, e[68] = b, e[69] = z) : z = e[69];
68
+ let D;
69
+ return e[70] !== G || e[71] !== C || e[72] !== z || e[73] !== L ? (D = /* @__PURE__ */ F(I, { left: G, top: L, children: [
70
+ C,
71
+ z
72
+ ] }), e[70] = G, e[71] = C, e[72] = z, e[73] = L, e[74] = D) : D = e[74], D;
73
+ };
44
74
  export {
45
- S as CELL_CLASS,
46
- d as CELL_SHAPE_CLASS,
47
- B as default,
48
- z as heatmapCellStyles
75
+ R as default
49
76
  };
50
77
  //# sourceMappingURL=visualization.es104.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"visualization.es104.js","sources":["../src/components/Heatmap/HeatmapCell.tsx"],"sourcesContent":["import { memo, MouseEvent } from \"react\";\nimport { motion } from \"framer-motion\";\nimport { getAnimationProps } from \"../../utility\";\nimport type { AnimationType } from \"../../utility\";\nimport type { AnyBin } from \"./HeatmapCells\";\nimport type { PlotTooltipRef } from \"../../tooltip\";\n\n/** Class on the <g> wrapping each cell. The hover rule keys off this. */\nexport const CELL_CLASS = \"visx-heatmap-cell\";\n/** Class on the <rect>/<circle> inside each cell. */\nexport const CELL_SHAPE_CLASS = \"visx-heatmap-cell-shape\";\n\n/**\n * Hover styling is plain CSS rather than React state: `:hover` costs no render at all, while\n * tracking hover in state re-renders on every cell the pointer crosses. Rendered once per chart\n * by Heatmap, inside the <svg> so it survives the SVG/PNG download serialization.\n *\n * The stroke is always painted in the cell's own fill color, so hovering only has to give it a\n * width. `strokeWidth={0}` below is a presentation attribute, which loses to any CSS rule - so\n * the hover rule wins without needing !important.\n *\n * `pointer-events: all` because cells with a null count render with fill=\"none\", and SVG's\n * default (visiblePainted) only treats painted area as a hit target - without this the pointer\n * falls through such a cell to the <svg> and it can never show its \"no data\" tooltip.\n */\nexport const heatmapCellStyles = `\n.${CELL_CLASS} { cursor: pointer; }\n.${CELL_SHAPE_CLASS} { transition: stroke-width 0.2s; pointer-events: all; }\n.${CELL_CLASS}:hover .${CELL_SHAPE_CLASS} { stroke-width: 2; }\n`;\n\nexport interface HeatmapCellProps {\n bin: AnyBin;\n isRect: boolean;\n binWidth: number;\n fill: string;\n fillOpacity: number;\n colIndex: number;\n animationType?: AnimationType;\n /** Stable for the life of the plot, so it never invalidates this cell's memoization. */\n tooltipRef: PlotTooltipRef<AnyBin>;\n onClick?: (bin: AnyBin) => void;\n}\n\n/**\n * visx rebuilds every bin object inside its own render, so `bin` always arrives with a fresh\n * identity and memo's default shallow compare can never bail out. Comparing the bin's fields\n * instead lets untouched cells skip re-rendering, which is what makes selection changes cheap:\n * only the cells whose appearance actually changed re-render, rather than the whole grid.\n *\n * `bin.bin` and `bin.datum` are the caller's own row/column data, which do keep identity, so a\n * reference check on those covers data and metadata changes.\n */\nconst binsEqual = (a: AnyBin, b: AnyBin): boolean => {\n if (\n a.row !== b.row ||\n a.column !== b.column ||\n a.count !== b.count ||\n a.gap !== b.gap ||\n a.color !== b.color ||\n a.opacity !== b.opacity ||\n a.bin !== b.bin ||\n a.datum !== b.datum\n ) {\n return false;\n }\n // Rect and circle cells carry different geometry fields\n if (\"x\" in a) {\n return \"x\" in b && a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n }\n return \"cy\" in b && a.cy === b.cy && a.r === b.r && a.radius === b.radius;\n};\n\n/**\n * Must compare every prop in HeatmapCellProps - one left out here would silently stop updating.\n */\nconst cellPropsEqual = (prev: HeatmapCellProps, next: HeatmapCellProps): boolean =>\n prev.fill === next.fill &&\n prev.fillOpacity === next.fillOpacity &&\n prev.isRect === next.isRect &&\n prev.binWidth === next.binWidth &&\n prev.colIndex === next.colIndex &&\n prev.animationType === next.animationType &&\n prev.tooltipRef === next.tooltipRef &&\n prev.onClick === next.onClick &&\n binsEqual(prev.bin, next.bin);\n\nconst HeatmapCell = memo(function HeatmapCell({\n bin, isRect, binWidth, fill, fillOpacity, colIndex,\n animationType, tooltipRef, onClick,\n}: HeatmapCellProps) {\n const isRectCell = isRect && \"width\" in bin && \"height\" in bin && \"x\" in bin && \"y\" in bin;\n const isCircleCell = !isRect && \"cy\" in bin && \"r\" in bin;\n\n const sharedProps = { fill, fillOpacity, stroke: fill, strokeWidth: 0 };\n\n const Wrapper = animationType ? motion.g : \"g\";\n const animProps = getAnimationProps(animationType as AnimationType, colIndex);\n\n return (\n <Wrapper\n {...animProps}\n className={CELL_CLASS}\n onMouseMove={(event: MouseEvent<SVGElement>) => tooltipRef.current?.show(bin, event)}\n onMouseLeave={() => tooltipRef.current?.hide()}\n onClick={() => onClick?.(bin)}\n >\n {isRectCell ? (\n <rect\n className={`visx-heatmap-rect ${CELL_SHAPE_CLASS}`}\n width={bin.width}\n height={bin.height}\n x={bin.x}\n y={bin.y}\n {...sharedProps}\n />\n ) : isCircleCell ? (\n <circle\n className={`visx-heatmap-circle ${CELL_SHAPE_CLASS}`}\n cx={bin.column * binWidth + binWidth / 2}\n cy={bin.cy}\n r={bin.r}\n {...sharedProps}\n />\n ) : null}\n </Wrapper>\n );\n}, cellPropsEqual);\n\nexport default HeatmapCell;\n"],"names":["CELL_CLASS","CELL_SHAPE_CLASS","heatmapCellStyles","binsEqual","a","b","row","column","count","gap","color","opacity","bin","datum","x","y","width","height","cy","r","radius","cellPropsEqual","prev","next","fill","fillOpacity","isRect","binWidth","colIndex","animationType","tooltipRef","onClick","HeatmapCell","memo","t0","$","_c","isRectCell","isCircleCell","t1","stroke","strokeWidth","sharedProps","Wrapper","motion","g","t2","t3","getAnimationProps","animProps","t4","event","current","show","t5","hide","t6","t7","jsx","t8"],"mappings":"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"}
1
+ {"version":3,"file":"visualization.es104.js","sources":["../src/components/ViolinPlot/crossPlot.tsx"],"sourcesContent":["import { CrossPlotProps } from \"./types\";\nimport { Group } from \"@visx/group\";\nimport { Line } from '@visx/shape';\n\n\nconst CrossPlot = <T,>({ crossProps, left, top, median, firstQuartile, thirdQuartile, valueScale, medianWidth, tooltipData, handleMouseMove, handleCrossClick, disableViolinPlot, tooltip, horizontal }: CrossPlotProps<T>) => {\n\n return (\n <Group left={left} top={top}>\n {/* Vertical line from min to max */}\n <Line\n from={{ x: horizontal ? valueScale(thirdQuartile) : 0, y: horizontal ? 0 : valueScale(thirdQuartile) }}\n to={{ x: horizontal ? valueScale(firstQuartile): 0, y: horizontal ? 0: valueScale(firstQuartile) }}\n stroke={crossProps?.color ?? \"#000000\"}\n strokeWidth={\n tooltipData === tooltip && disableViolinPlot\n ? (crossProps?.stroke ?? 1) + 1\n : crossProps?.stroke ?? 1\n }\n onMouseMove={disableViolinPlot ? (e) => handleMouseMove(e, tooltip) : undefined}\n onClick={handleCrossClick}\n />\n {/* Horizontal line at median */}\n <Line\n from={{ x: horizontal ? valueScale(median) : -medianWidth / 2, y: horizontal ? -medianWidth / 2 : valueScale(median) }}\n to={{ x: horizontal ? valueScale(median) : medianWidth / 2, y: horizontal ? medianWidth / 2 : valueScale(median) }}\n stroke={crossProps?.medianColor ?? crossProps?.color ?? \"#000000\"}\n strokeWidth={\n tooltipData === tooltip && disableViolinPlot\n ? (crossProps?.stroke ?? 1) + 1\n : crossProps?.stroke ?? 1\n }\n onMouseMove={disableViolinPlot ? (e) => handleMouseMove(e, tooltip) : undefined}\n onClick={handleCrossClick}\n />\n </Group>\n );\n};\n\nexport default CrossPlot;\n"],"names":["CrossPlot","t0","$","_c","crossProps","left","top","median","firstQuartile","thirdQuartile","valueScale","medianWidth","tooltipData","handleMouseMove","handleCrossClick","disableViolinPlot","tooltip","horizontal","t1","t2","t3","x","y","t4","t5","t6","t7","color","t8","stroke","t9","e","undefined","t10","Line","t11","t12","t13","t14","t15","t16","t17","medianColor","t18","t19","e_0","t20","t21","jsxs","Group"],"mappings":"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"}