@weng-lab/visualization 2.4.1 → 2.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1166) hide show
  1. package/dist/src/components/Heatmap/Heatmap.d.ts.map +1 -1
  2. package/dist/src/components/Heatmap/scrollable/heatmapExport.d.ts +5 -10
  3. package/dist/src/components/Heatmap/scrollable/heatmapExport.d.ts.map +1 -1
  4. package/dist/src/components/Histogram/Histogram.d.ts.map +1 -1
  5. package/dist/src/utility.d.ts +8 -2
  6. package/dist/src/utility.d.ts.map +1 -1
  7. package/dist/visualization.es10.js +11 -11
  8. package/dist/visualization.es100.js +2 -156
  9. package/dist/visualization.es100.js.map +1 -1
  10. package/dist/visualization.es101.js +4795 -78
  11. package/dist/visualization.es101.js.map +1 -1
  12. package/dist/visualization.es102.js +25 -38
  13. package/dist/visualization.es102.js.map +1 -1
  14. package/dist/visualization.es103.js +45 -47
  15. package/dist/visualization.es103.js.map +1 -1
  16. package/dist/visualization.es104.js +141 -71
  17. package/dist/visualization.es104.js.map +1 -1
  18. package/dist/visualization.es105.js +144 -30
  19. package/dist/visualization.es105.js.map +1 -1
  20. package/dist/visualization.es106.js +9 -9
  21. package/dist/visualization.es106.js.map +1 -1
  22. package/dist/visualization.es107.js +73 -25
  23. package/dist/visualization.es107.js.map +1 -1
  24. package/dist/visualization.es108.js +31 -68
  25. package/dist/visualization.es108.js.map +1 -1
  26. package/dist/visualization.es109.js +12 -221
  27. package/dist/visualization.es109.js.map +1 -1
  28. package/dist/visualization.es11.js +10 -10
  29. package/dist/visualization.es110.js +26 -2
  30. package/dist/visualization.es110.js.map +1 -1
  31. package/dist/visualization.es111.js +69 -556
  32. package/dist/visualization.es111.js.map +1 -1
  33. package/dist/visualization.es112.js +58 -214
  34. package/dist/visualization.es112.js.map +1 -1
  35. package/dist/visualization.es113.js +32 -2
  36. package/dist/visualization.es113.js.map +1 -1
  37. package/dist/visualization.es114.js +18 -4800
  38. package/dist/visualization.es114.js.map +1 -1
  39. package/dist/visualization.es115.js +13 -24
  40. package/dist/visualization.es115.js.map +1 -1
  41. package/dist/visualization.es116.js +26 -45
  42. package/dist/visualization.es116.js.map +1 -1
  43. package/dist/visualization.es117.js +29 -141
  44. package/dist/visualization.es117.js.map +1 -1
  45. package/dist/visualization.es118.js +41 -143
  46. package/dist/visualization.es118.js.map +1 -1
  47. package/dist/visualization.es119.js +67 -49
  48. package/dist/visualization.es119.js.map +1 -1
  49. package/dist/visualization.es12.js +2 -2
  50. package/dist/visualization.es120.js +24 -31
  51. package/dist/visualization.es120.js.map +1 -1
  52. package/dist/visualization.es121.js +85 -18
  53. package/dist/visualization.es121.js.map +1 -1
  54. package/dist/visualization.es122.js +36 -14
  55. package/dist/visualization.es122.js.map +1 -1
  56. package/dist/visualization.es123.js +45 -26
  57. package/dist/visualization.es123.js.map +1 -1
  58. package/dist/visualization.es124.js +22 -32
  59. package/dist/visualization.es124.js.map +1 -1
  60. package/dist/visualization.es125.js +123 -44
  61. package/dist/visualization.es125.js.map +1 -1
  62. package/dist/visualization.es126.js +79 -75
  63. package/dist/visualization.es126.js.map +1 -1
  64. package/dist/visualization.es127.js +154 -23
  65. package/dist/visualization.es127.js.map +1 -1
  66. package/dist/visualization.es128.js +81 -83
  67. package/dist/visualization.es128.js.map +1 -1
  68. package/dist/visualization.es129.js +37 -35
  69. package/dist/visualization.es129.js.map +1 -1
  70. package/dist/visualization.es13.js +7 -7
  71. package/dist/visualization.es130.js +60 -85
  72. package/dist/visualization.es130.js.map +1 -1
  73. package/dist/visualization.es131.js +47 -5
  74. package/dist/visualization.es131.js.map +1 -1
  75. package/dist/visualization.es132.js +63 -89
  76. package/dist/visualization.es132.js.map +1 -1
  77. package/dist/visualization.es133.js +7 -13
  78. package/dist/visualization.es133.js.map +1 -1
  79. package/dist/visualization.es134.js +5 -6
  80. package/dist/visualization.es134.js.map +1 -1
  81. package/dist/visualization.es135.js +42 -14
  82. package/dist/visualization.es135.js.map +1 -1
  83. package/dist/visualization.es136.js +2 -7
  84. package/dist/visualization.es136.js.map +1 -1
  85. package/dist/visualization.es137.js +1605 -13
  86. package/dist/visualization.es137.js.map +1 -1
  87. package/dist/visualization.es138.js +19 -4
  88. package/dist/visualization.es138.js.map +1 -1
  89. package/dist/visualization.es139.js +27 -7
  90. package/dist/visualization.es139.js.map +1 -1
  91. package/dist/visualization.es140.js +14 -14
  92. package/dist/visualization.es141.js +1 -1
  93. package/dist/visualization.es142.js +1 -1
  94. package/dist/visualization.es143.js +1 -1
  95. package/dist/visualization.es144.js +1 -1
  96. package/dist/visualization.es145.js +7 -3
  97. package/dist/visualization.es145.js.map +1 -1
  98. package/dist/visualization.es146.js +4 -71
  99. package/dist/visualization.es146.js.map +1 -1
  100. package/dist/visualization.es147.js +3 -16
  101. package/dist/visualization.es147.js.map +1 -1
  102. package/dist/visualization.es148.js +30 -11
  103. package/dist/visualization.es148.js.map +1 -1
  104. package/dist/visualization.es149.js +8 -5
  105. package/dist/visualization.es149.js.map +1 -1
  106. package/dist/visualization.es15.js +8 -8
  107. package/dist/visualization.es150.js +6 -30
  108. package/dist/visualization.es150.js.map +1 -1
  109. package/dist/visualization.es151.js +3 -7
  110. package/dist/visualization.es151.js.map +1 -1
  111. package/dist/visualization.es152.js +16 -6
  112. package/dist/visualization.es152.js.map +1 -1
  113. package/dist/visualization.es153.js +16 -3
  114. package/dist/visualization.es153.js.map +1 -1
  115. package/dist/visualization.es154.js +32 -16
  116. package/dist/visualization.es154.js.map +1 -1
  117. package/dist/visualization.es155.js +16 -16
  118. package/dist/visualization.es155.js.map +1 -1
  119. package/dist/visualization.es156.js +9 -31
  120. package/dist/visualization.es156.js.map +1 -1
  121. package/dist/visualization.es157.js +6 -16
  122. package/dist/visualization.es157.js.map +1 -1
  123. package/dist/visualization.es158.js +6 -10
  124. package/dist/visualization.es158.js.map +1 -1
  125. package/dist/visualization.es159.js +10 -6
  126. package/dist/visualization.es159.js.map +1 -1
  127. package/dist/visualization.es160.js +4 -6
  128. package/dist/visualization.es160.js.map +1 -1
  129. package/dist/visualization.es161.js +4 -10
  130. package/dist/visualization.es161.js.map +1 -1
  131. package/dist/visualization.es162.js +8 -4
  132. package/dist/visualization.es162.js.map +1 -1
  133. package/dist/visualization.es163.js +3 -3
  134. package/dist/visualization.es163.js.map +1 -1
  135. package/dist/visualization.es164.js +12 -8
  136. package/dist/visualization.es164.js.map +1 -1
  137. package/dist/visualization.es165.js +26 -4
  138. package/dist/visualization.es165.js.map +1 -1
  139. package/dist/visualization.es166.js +83 -11
  140. package/dist/visualization.es166.js.map +1 -1
  141. package/dist/visualization.es167.js +89 -26
  142. package/dist/visualization.es167.js.map +1 -1
  143. package/dist/visualization.es168.js +13 -2
  144. package/dist/visualization.es168.js.map +1 -1
  145. package/dist/visualization.es169.js +5 -1605
  146. package/dist/visualization.es169.js.map +1 -1
  147. package/dist/visualization.es170.js +14 -74
  148. package/dist/visualization.es170.js.map +1 -1
  149. package/dist/visualization.es171.js +7 -2
  150. package/dist/visualization.es171.js.map +1 -1
  151. package/dist/visualization.es172.js +13 -482
  152. package/dist/visualization.es172.js.map +1 -1
  153. package/dist/visualization.es173.js +4 -2
  154. package/dist/visualization.es173.js.map +1 -1
  155. package/dist/visualization.es174.js +17 -63
  156. package/dist/visualization.es174.js.map +1 -1
  157. package/dist/visualization.es175.js +70 -59
  158. package/dist/visualization.es175.js.map +1 -1
  159. package/dist/visualization.es176.js +15 -122
  160. package/dist/visualization.es176.js.map +1 -1
  161. package/dist/visualization.es177.js +12 -8
  162. package/dist/visualization.es177.js.map +1 -1
  163. package/dist/visualization.es178.js +5 -16
  164. package/dist/visualization.es178.js.map +1 -1
  165. package/dist/visualization.es179.js +8 -11
  166. package/dist/visualization.es179.js.map +1 -1
  167. package/dist/visualization.es18.js +1 -1
  168. package/dist/visualization.es180.js +15 -5
  169. package/dist/visualization.es180.js.map +1 -1
  170. package/dist/visualization.es181.js +11 -12
  171. package/dist/visualization.es181.js.map +1 -1
  172. package/dist/visualization.es182.js +5 -3
  173. package/dist/visualization.es182.js.map +1 -1
  174. package/dist/visualization.es183.js +12 -2
  175. package/dist/visualization.es183.js.map +1 -1
  176. package/dist/visualization.es184.js +4 -11
  177. package/dist/visualization.es184.js.map +1 -1
  178. package/dist/visualization.es185.js +2 -31
  179. package/dist/visualization.es185.js.map +1 -1
  180. package/dist/visualization.es186.js +10 -42
  181. package/dist/visualization.es186.js.map +1 -1
  182. package/dist/visualization.es187.js +29 -48
  183. package/dist/visualization.es187.js.map +1 -1
  184. package/dist/visualization.es188.js +43 -3
  185. package/dist/visualization.es188.js.map +1 -1
  186. package/dist/visualization.es189.js +50 -3
  187. package/dist/visualization.es189.js.map +1 -1
  188. package/dist/visualization.es190.js +3 -6
  189. package/dist/visualization.es190.js.map +1 -1
  190. package/dist/visualization.es191.js +3 -5
  191. package/dist/visualization.es191.js.map +1 -1
  192. package/dist/visualization.es192.js +5 -10
  193. package/dist/visualization.es192.js.map +1 -1
  194. package/dist/visualization.es193.js +4 -3
  195. package/dist/visualization.es193.js.map +1 -1
  196. package/dist/visualization.es194.js +9 -16
  197. package/dist/visualization.es194.js.map +1 -1
  198. package/dist/visualization.es195.js +3 -18
  199. package/dist/visualization.es195.js.map +1 -1
  200. package/dist/visualization.es196.js +17 -36
  201. package/dist/visualization.es196.js.map +1 -1
  202. package/dist/visualization.es197.js +19 -2
  203. package/dist/visualization.es197.js.map +1 -1
  204. package/dist/visualization.es198.js +37 -2
  205. package/dist/visualization.es198.js.map +1 -1
  206. package/dist/visualization.es199.js +2 -4
  207. package/dist/visualization.es199.js.map +1 -1
  208. package/dist/visualization.es2.js +8 -8
  209. package/dist/visualization.es20.js +43 -147
  210. package/dist/visualization.es20.js.map +1 -1
  211. package/dist/visualization.es200.js +2 -15
  212. package/dist/visualization.es200.js.map +1 -1
  213. package/dist/visualization.es201.js +4 -3
  214. package/dist/visualization.es201.js.map +1 -1
  215. package/dist/visualization.es202.js +15 -7
  216. package/dist/visualization.es202.js.map +1 -1
  217. package/dist/visualization.es203.js +1 -1
  218. package/dist/visualization.es203.js.map +1 -1
  219. package/dist/visualization.es204.js +7 -7
  220. package/dist/visualization.es204.js.map +1 -1
  221. package/dist/visualization.es205.js +3 -19
  222. package/dist/visualization.es205.js.map +1 -1
  223. package/dist/visualization.es206.js +6 -3
  224. package/dist/visualization.es206.js.map +1 -1
  225. package/dist/visualization.es207.js +18 -35
  226. package/dist/visualization.es207.js.map +1 -1
  227. package/dist/visualization.es208.js +3 -63
  228. package/dist/visualization.es208.js.map +1 -1
  229. package/dist/visualization.es209.js +36 -7
  230. package/dist/visualization.es209.js.map +1 -1
  231. package/dist/visualization.es21.js +31 -62
  232. package/dist/visualization.es21.js.map +1 -1
  233. package/dist/visualization.es210.js +9 -42
  234. package/dist/visualization.es210.js.map +1 -1
  235. package/dist/visualization.es211.js +6 -19
  236. package/dist/visualization.es211.js.map +1 -1
  237. package/dist/visualization.es212.js +7 -27
  238. package/dist/visualization.es212.js.map +1 -1
  239. package/dist/visualization.es213.js +9 -3
  240. package/dist/visualization.es213.js.map +1 -1
  241. package/dist/visualization.es214.js +6 -9
  242. package/dist/visualization.es214.js.map +1 -1
  243. package/dist/visualization.es215.js +6 -6
  244. package/dist/visualization.es215.js.map +1 -1
  245. package/dist/visualization.es216.js +5 -7
  246. package/dist/visualization.es216.js.map +1 -1
  247. package/dist/visualization.es217.js +13 -8
  248. package/dist/visualization.es217.js.map +1 -1
  249. package/dist/visualization.es218.js +5 -6
  250. package/dist/visualization.es218.js.map +1 -1
  251. package/dist/visualization.es219.js +3 -6
  252. package/dist/visualization.es219.js.map +1 -1
  253. package/dist/visualization.es22.js +7 -39
  254. package/dist/visualization.es22.js.map +1 -1
  255. package/dist/visualization.es220.js +6 -5
  256. package/dist/visualization.es220.js.map +1 -1
  257. package/dist/visualization.es221.js +6 -14
  258. package/dist/visualization.es221.js.map +1 -1
  259. package/dist/visualization.es222.js +9 -5
  260. package/dist/visualization.es222.js.map +1 -1
  261. package/dist/visualization.es223.js +32 -3
  262. package/dist/visualization.es223.js.map +1 -1
  263. package/dist/visualization.es224.js +114 -6
  264. package/dist/visualization.es224.js.map +1 -1
  265. package/dist/visualization.es225.js +3 -6
  266. package/dist/visualization.es225.js.map +1 -1
  267. package/dist/visualization.es226.js +5 -9
  268. package/dist/visualization.es226.js.map +1 -1
  269. package/dist/visualization.es227.js +32 -31
  270. package/dist/visualization.es227.js.map +1 -1
  271. package/dist/visualization.es228.js +14 -113
  272. package/dist/visualization.es228.js.map +1 -1
  273. package/dist/visualization.es229.js +7 -3
  274. package/dist/visualization.es229.js.map +1 -1
  275. package/dist/visualization.es23.js +7 -80
  276. package/dist/visualization.es23.js.map +1 -1
  277. package/dist/visualization.es230.js +11 -5
  278. package/dist/visualization.es230.js.map +1 -1
  279. package/dist/visualization.es231.js +74 -33
  280. package/dist/visualization.es231.js.map +1 -1
  281. package/dist/visualization.es232.js +2 -16
  282. package/dist/visualization.es232.js.map +1 -1
  283. package/dist/visualization.es233.js +482 -7
  284. package/dist/visualization.es233.js.map +1 -1
  285. package/dist/visualization.es234.js +2 -12
  286. package/dist/visualization.es234.js.map +1 -1
  287. package/dist/visualization.es235.js +123 -17
  288. package/dist/visualization.es235.js.map +1 -1
  289. package/dist/visualization.es236.js +60 -69
  290. package/dist/visualization.es236.js.map +1 -1
  291. package/dist/visualization.es237.js +57 -19
  292. package/dist/visualization.es237.js.map +1 -1
  293. package/dist/visualization.es238.js +2 -23
  294. package/dist/visualization.es238.js.map +1 -1
  295. package/dist/visualization.es239.js +68 -36
  296. package/dist/visualization.es239.js.map +1 -1
  297. package/dist/visualization.es24.js +68 -44
  298. package/dist/visualization.es24.js.map +1 -1
  299. package/dist/visualization.es240.js +22 -7
  300. package/dist/visualization.es240.js.map +1 -1
  301. package/dist/visualization.es241.js +20 -10
  302. package/dist/visualization.es241.js.map +1 -1
  303. package/dist/visualization.es242.js +37 -14
  304. package/dist/visualization.es242.js.map +1 -1
  305. package/dist/visualization.es243.js +7 -36
  306. package/dist/visualization.es243.js.map +1 -1
  307. package/dist/visualization.es244.js +10 -22
  308. package/dist/visualization.es244.js.map +1 -1
  309. package/dist/visualization.es245.js +15 -25
  310. package/dist/visualization.es245.js.map +1 -1
  311. package/dist/visualization.es246.js +36 -34
  312. package/dist/visualization.es246.js.map +1 -1
  313. package/dist/visualization.es247.js +25 -2
  314. package/dist/visualization.es247.js.map +1 -1
  315. package/dist/visualization.es248.js +26 -122
  316. package/dist/visualization.es248.js.map +1 -1
  317. package/dist/visualization.es249.js +34 -23
  318. package/dist/visualization.es249.js.map +1 -1
  319. package/dist/visualization.es25.js +44 -56
  320. package/dist/visualization.es25.js.map +1 -1
  321. package/dist/visualization.es250.js +2 -54
  322. package/dist/visualization.es250.js.map +1 -1
  323. package/dist/visualization.es251.js +27 -18
  324. package/dist/visualization.es251.js.map +1 -1
  325. package/dist/visualization.es252.js +20 -3
  326. package/dist/visualization.es252.js.map +1 -1
  327. package/dist/visualization.es253.js +3 -3
  328. package/dist/visualization.es253.js.map +1 -1
  329. package/dist/visualization.es254.js +3 -3
  330. package/dist/visualization.es254.js.map +1 -1
  331. package/dist/visualization.es255.js +3 -3
  332. package/dist/visualization.es255.js.map +1 -1
  333. package/dist/visualization.es256.js +3 -3
  334. package/dist/visualization.es256.js.map +1 -1
  335. package/dist/visualization.es257.js +3 -3
  336. package/dist/visualization.es257.js.map +1 -1
  337. package/dist/visualization.es258.js +3 -3
  338. package/dist/visualization.es258.js.map +1 -1
  339. package/dist/visualization.es259.js +2 -6
  340. package/dist/visualization.es259.js.map +1 -1
  341. package/dist/visualization.es26.js +11 -7
  342. package/dist/visualization.es26.js.map +1 -1
  343. package/dist/visualization.es260.js +6 -47
  344. package/dist/visualization.es260.js.map +1 -1
  345. package/dist/visualization.es261.js +48 -3
  346. package/dist/visualization.es261.js.map +1 -1
  347. package/dist/visualization.es262.js +2 -5
  348. package/dist/visualization.es262.js.map +1 -1
  349. package/dist/visualization.es263.js +6 -4
  350. package/dist/visualization.es263.js.map +1 -1
  351. package/dist/visualization.es264.js +4 -3
  352. package/dist/visualization.es264.js.map +1 -1
  353. package/dist/visualization.es265.js +3 -6
  354. package/dist/visualization.es265.js.map +1 -1
  355. package/dist/visualization.es266.js +6 -4
  356. package/dist/visualization.es266.js.map +1 -1
  357. package/dist/visualization.es267.js +5 -2
  358. package/dist/visualization.es267.js.map +1 -1
  359. package/dist/visualization.es268.js +23 -53
  360. package/dist/visualization.es268.js.map +1 -1
  361. package/dist/visualization.es269.js +53 -31
  362. package/dist/visualization.es269.js.map +1 -1
  363. package/dist/visualization.es27.js +55 -5
  364. package/dist/visualization.es27.js.map +1 -1
  365. package/dist/visualization.es270.js +51 -31
  366. package/dist/visualization.es270.js.map +1 -1
  367. package/dist/visualization.es271.js +31 -12
  368. package/dist/visualization.es271.js.map +1 -1
  369. package/dist/visualization.es272.js +34 -7
  370. package/dist/visualization.es272.js.map +1 -1
  371. package/dist/visualization.es273.js +12 -34
  372. package/dist/visualization.es273.js.map +1 -1
  373. package/dist/visualization.es274.js +29 -4
  374. package/dist/visualization.es274.js.map +1 -1
  375. package/dist/visualization.es275.js +119 -3
  376. package/dist/visualization.es275.js.map +1 -1
  377. package/dist/visualization.es276.js +29 -6
  378. package/dist/visualization.es276.js.map +1 -1
  379. package/dist/visualization.es277.js +10 -12
  380. package/dist/visualization.es277.js.map +1 -1
  381. package/dist/visualization.es278.js +14 -2
  382. package/dist/visualization.es278.js.map +1 -1
  383. package/dist/visualization.es279.js +32 -3
  384. package/dist/visualization.es279.js.map +1 -1
  385. package/dist/visualization.es28.js +147 -6
  386. package/dist/visualization.es28.js.map +1 -1
  387. package/dist/visualization.es280.js +28 -3
  388. package/dist/visualization.es280.js.map +1 -1
  389. package/dist/visualization.es281.js +10 -10
  390. package/dist/visualization.es281.js.map +1 -1
  391. package/dist/visualization.es282.js +12 -25
  392. package/dist/visualization.es282.js.map +1 -1
  393. package/dist/visualization.es283.js +17 -4
  394. package/dist/visualization.es283.js.map +1 -1
  395. package/dist/visualization.es284.js +23 -32
  396. package/dist/visualization.es284.js.map +1 -1
  397. package/dist/visualization.es285.js +17 -3
  398. package/dist/visualization.es285.js.map +1 -1
  399. package/dist/visualization.es286.js +96 -11
  400. package/dist/visualization.es286.js.map +1 -1
  401. package/dist/visualization.es287.js +27 -35
  402. package/dist/visualization.es287.js.map +1 -1
  403. package/dist/visualization.es288.js +67 -256
  404. package/dist/visualization.es288.js.map +1 -1
  405. package/dist/visualization.es289.js +49 -57
  406. package/dist/visualization.es289.js.map +1 -1
  407. package/dist/visualization.es29.js +110 -47
  408. package/dist/visualization.es29.js.map +1 -1
  409. package/dist/visualization.es290.js +34 -5
  410. package/dist/visualization.es290.js.map +1 -1
  411. package/dist/visualization.es291.js +41 -21
  412. package/dist/visualization.es291.js.map +1 -1
  413. package/dist/visualization.es292.js +3 -38
  414. package/dist/visualization.es292.js.map +1 -1
  415. package/dist/visualization.es293.js +11 -34
  416. package/dist/visualization.es293.js.map +1 -1
  417. package/dist/visualization.es294.js +36 -14
  418. package/dist/visualization.es294.js.map +1 -1
  419. package/dist/visualization.es295.js +260 -18
  420. package/dist/visualization.es295.js.map +1 -1
  421. package/dist/visualization.es296.js +59 -8
  422. package/dist/visualization.es296.js.map +1 -1
  423. package/dist/visualization.es297.js +5 -7
  424. package/dist/visualization.es297.js.map +1 -1
  425. package/dist/visualization.es298.js +21 -140
  426. package/dist/visualization.es298.js.map +1 -1
  427. package/dist/visualization.es299.js +37 -5
  428. package/dist/visualization.es299.js.map +1 -1
  429. package/dist/visualization.es3.js +12 -12
  430. package/dist/visualization.es30.js +7 -33
  431. package/dist/visualization.es30.js.map +1 -1
  432. package/dist/visualization.es300.js +29 -104
  433. package/dist/visualization.es300.js.map +1 -1
  434. package/dist/visualization.es301.js +13 -11
  435. package/dist/visualization.es301.js.map +1 -1
  436. package/dist/visualization.es302.js +18 -141
  437. package/dist/visualization.es302.js.map +1 -1
  438. package/dist/visualization.es303.js +9 -6
  439. package/dist/visualization.es303.js.map +1 -1
  440. package/dist/visualization.es304.js +5 -69
  441. package/dist/visualization.es304.js.map +1 -1
  442. package/dist/visualization.es305.js +137 -32
  443. package/dist/visualization.es305.js.map +1 -1
  444. package/dist/visualization.es306.js +5 -20
  445. package/dist/visualization.es306.js.map +1 -1
  446. package/dist/visualization.es307.js +109 -3
  447. package/dist/visualization.es307.js.map +1 -1
  448. package/dist/visualization.es308.js +12 -24
  449. package/dist/visualization.es308.js.map +1 -1
  450. package/dist/visualization.es309.js +139 -28
  451. package/dist/visualization.es309.js.map +1 -1
  452. package/dist/visualization.es31.js +17 -31
  453. package/dist/visualization.es31.js.map +1 -1
  454. package/dist/visualization.es310.js +6 -2
  455. package/dist/visualization.es310.js.map +1 -1
  456. package/dist/visualization.es311.js +72 -2
  457. package/dist/visualization.es311.js.map +1 -1
  458. package/dist/visualization.es312.js +35 -5
  459. package/dist/visualization.es312.js.map +1 -1
  460. package/dist/visualization.es313.js +21 -15
  461. package/dist/visualization.es313.js.map +1 -1
  462. package/dist/visualization.es314.js +3 -34
  463. package/dist/visualization.es314.js.map +1 -1
  464. package/dist/visualization.es315.js +24 -27
  465. package/dist/visualization.es315.js.map +1 -1
  466. package/dist/visualization.es316.js +30 -10
  467. package/dist/visualization.es316.js.map +1 -1
  468. package/dist/visualization.es317.js +2 -7
  469. package/dist/visualization.es317.js.map +1 -1
  470. package/dist/visualization.es318.js +2 -14
  471. package/dist/visualization.es318.js.map +1 -1
  472. package/dist/visualization.es319.js +6 -12
  473. package/dist/visualization.es319.js.map +1 -1
  474. package/dist/visualization.es32.js +31 -18
  475. package/dist/visualization.es32.js.map +1 -1
  476. package/dist/visualization.es320.js +15 -2
  477. package/dist/visualization.es320.js.map +1 -1
  478. package/dist/visualization.es321.js +35 -3
  479. package/dist/visualization.es321.js.map +1 -1
  480. package/dist/visualization.es322.js +28 -2
  481. package/dist/visualization.es322.js.map +1 -1
  482. package/dist/visualization.es323.js +10 -103
  483. package/dist/visualization.es323.js.map +1 -1
  484. package/dist/visualization.es324.js +6 -4
  485. package/dist/visualization.es324.js.map +1 -1
  486. package/dist/visualization.es325.js +14 -3
  487. package/dist/visualization.es325.js.map +1 -1
  488. package/dist/visualization.es326.js +12 -19
  489. package/dist/visualization.es326.js.map +1 -1
  490. package/dist/visualization.es327.js +2 -6
  491. package/dist/visualization.es327.js.map +1 -1
  492. package/dist/visualization.es328.js +3 -15
  493. package/dist/visualization.es328.js.map +1 -1
  494. package/dist/visualization.es329.js +2 -5
  495. package/dist/visualization.es329.js.map +1 -1
  496. package/dist/visualization.es33.js +18701 -12
  497. package/dist/visualization.es33.js.map +1 -1
  498. package/dist/visualization.es330.js +103 -28
  499. package/dist/visualization.es330.js.map +1 -1
  500. package/dist/visualization.es331.js +4 -6
  501. package/dist/visualization.es331.js.map +1 -1
  502. package/dist/visualization.es332.js +3 -2
  503. package/dist/visualization.es332.js.map +1 -1
  504. package/dist/visualization.es333.js +19 -20
  505. package/dist/visualization.es333.js.map +1 -1
  506. package/dist/visualization.es334.js +6 -21
  507. package/dist/visualization.es334.js.map +1 -1
  508. package/dist/visualization.es335.js +14 -5
  509. package/dist/visualization.es335.js.map +1 -1
  510. package/dist/visualization.es336.js +4 -7
  511. package/dist/visualization.es336.js.map +1 -1
  512. package/dist/visualization.es337.js +28 -18
  513. package/dist/visualization.es337.js.map +1 -1
  514. package/dist/visualization.es338.js +7 -44
  515. package/dist/visualization.es338.js.map +1 -1
  516. package/dist/visualization.es339.js +2 -7
  517. package/dist/visualization.es339.js.map +1 -1
  518. package/dist/visualization.es34.js +5 -58
  519. package/dist/visualization.es34.js.map +1 -1
  520. package/dist/visualization.es340.js +20 -20
  521. package/dist/visualization.es340.js.map +1 -1
  522. package/dist/visualization.es341.js +21 -54
  523. package/dist/visualization.es341.js.map +1 -1
  524. package/dist/visualization.es342.js +5 -26
  525. package/dist/visualization.es342.js.map +1 -1
  526. package/dist/visualization.es343.js +8 -11
  527. package/dist/visualization.es343.js.map +1 -1
  528. package/dist/visualization.es344.js +18 -18
  529. package/dist/visualization.es344.js.map +1 -1
  530. package/dist/visualization.es345.js +43 -11
  531. package/dist/visualization.es345.js.map +1 -1
  532. package/dist/visualization.es346.js +7 -5
  533. package/dist/visualization.es346.js.map +1 -1
  534. package/dist/visualization.es347.js +20 -4
  535. package/dist/visualization.es347.js.map +1 -1
  536. package/dist/visualization.es348.js +53 -3
  537. package/dist/visualization.es348.js.map +1 -1
  538. package/dist/visualization.es349.js +25 -174
  539. package/dist/visualization.es349.js.map +1 -1
  540. package/dist/visualization.es35.js +5 -55
  541. package/dist/visualization.es35.js.map +1 -1
  542. package/dist/visualization.es350.js +11 -40
  543. package/dist/visualization.es350.js.map +1 -1
  544. package/dist/visualization.es351.js +18 -5
  545. package/dist/visualization.es351.js.map +1 -1
  546. package/dist/visualization.es352.js +11 -3
  547. package/dist/visualization.es352.js.map +1 -1
  548. package/dist/visualization.es353.js +5 -2
  549. package/dist/visualization.es353.js.map +1 -1
  550. package/dist/visualization.es354.js +4 -30
  551. package/dist/visualization.es354.js.map +1 -1
  552. package/dist/visualization.es355.js +4 -8
  553. package/dist/visualization.es355.js.map +1 -1
  554. package/dist/visualization.es356.js +174 -9
  555. package/dist/visualization.es356.js.map +1 -1
  556. package/dist/visualization.es357.js +39 -3
  557. package/dist/visualization.es357.js.map +1 -1
  558. package/dist/visualization.es358.js +5 -65
  559. package/dist/visualization.es358.js.map +1 -1
  560. package/dist/visualization.es359.js +4 -7
  561. package/dist/visualization.es359.js.map +1 -1
  562. package/dist/visualization.es36.js +60 -111
  563. package/dist/visualization.es36.js.map +1 -1
  564. package/dist/visualization.es360.js +2 -5
  565. package/dist/visualization.es360.js.map +1 -1
  566. package/dist/visualization.es361.js +30 -14
  567. package/dist/visualization.es361.js.map +1 -1
  568. package/dist/visualization.es362.js +7 -34
  569. package/dist/visualization.es362.js.map +1 -1
  570. package/dist/visualization.es363.js +10 -4
  571. package/dist/visualization.es363.js.map +1 -1
  572. package/dist/visualization.es364.js +3 -9
  573. package/dist/visualization.es364.js.map +1 -1
  574. package/dist/visualization.es365.js +66 -2
  575. package/dist/visualization.es365.js.map +1 -1
  576. package/dist/visualization.es366.js +7 -5
  577. package/dist/visualization.es366.js.map +1 -1
  578. package/dist/visualization.es367.js +5 -2
  579. package/dist/visualization.es367.js.map +1 -1
  580. package/dist/visualization.es368.js +13 -9
  581. package/dist/visualization.es368.js.map +1 -1
  582. package/dist/visualization.es369.js +35 -10
  583. package/dist/visualization.es369.js.map +1 -1
  584. package/dist/visualization.es37.js +810 -7
  585. package/dist/visualization.es37.js.map +1 -1
  586. package/dist/visualization.es370.js +5 -13
  587. package/dist/visualization.es370.js.map +1 -1
  588. package/dist/visualization.es371.js +10 -2
  589. package/dist/visualization.es371.js.map +1 -1
  590. package/dist/visualization.es372.js +2 -10
  591. package/dist/visualization.es372.js.map +1 -1
  592. package/dist/visualization.es373.js +5 -8
  593. package/dist/visualization.es373.js.map +1 -1
  594. package/dist/visualization.es374.js +2 -6
  595. package/dist/visualization.es374.js.map +1 -1
  596. package/dist/visualization.es375.js +9 -24
  597. package/dist/visualization.es375.js.map +1 -1
  598. package/dist/visualization.es376.js +10 -19
  599. package/dist/visualization.es376.js.map +1 -1
  600. package/dist/visualization.es377.js +13 -41
  601. package/dist/visualization.es377.js.map +1 -1
  602. package/dist/visualization.es378.js +2 -3
  603. package/dist/visualization.es378.js.map +1 -1
  604. package/dist/visualization.es379.js +10 -9
  605. package/dist/visualization.es379.js.map +1 -1
  606. package/dist/visualization.es380.js +6 -7
  607. package/dist/visualization.es380.js.map +1 -1
  608. package/dist/visualization.es381.js +5 -35
  609. package/dist/visualization.es381.js.map +1 -1
  610. package/dist/visualization.es382.js +23 -8
  611. package/dist/visualization.es382.js.map +1 -1
  612. package/dist/visualization.es383.js +19 -32
  613. package/dist/visualization.es383.js.map +1 -1
  614. package/dist/visualization.es384.js +40 -4
  615. package/dist/visualization.es384.js.map +1 -1
  616. package/dist/visualization.es385.js +3 -2
  617. package/dist/visualization.es385.js.map +1 -1
  618. package/dist/visualization.es386.js +8 -15
  619. package/dist/visualization.es386.js.map +1 -1
  620. package/dist/visualization.es387.js +8 -24
  621. package/dist/visualization.es387.js.map +1 -1
  622. package/dist/visualization.es388.js +36 -2
  623. package/dist/visualization.es388.js.map +1 -1
  624. package/dist/visualization.es389.js +9 -62
  625. package/dist/visualization.es389.js.map +1 -1
  626. package/dist/visualization.es39.js +130 -33
  627. package/dist/visualization.es39.js.map +1 -1
  628. package/dist/visualization.es390.js +32 -2
  629. package/dist/visualization.es390.js.map +1 -1
  630. package/dist/visualization.es391.js +5 -2
  631. package/dist/visualization.es391.js.map +1 -1
  632. package/dist/visualization.es392.js +2 -6
  633. package/dist/visualization.es392.js.map +1 -1
  634. package/dist/visualization.es393.js +14 -35
  635. package/dist/visualization.es393.js.map +1 -1
  636. package/dist/visualization.es394.js +23 -19
  637. package/dist/visualization.es394.js.map +1 -1
  638. package/dist/visualization.es395.js +2 -4
  639. package/dist/visualization.es395.js.map +1 -1
  640. package/dist/visualization.es396.js +62 -4
  641. package/dist/visualization.es396.js.map +1 -1
  642. package/dist/visualization.es397.js +2 -5
  643. package/dist/visualization.es397.js.map +1 -1
  644. package/dist/visualization.es398.js +2 -49
  645. package/dist/visualization.es398.js.map +1 -1
  646. package/dist/visualization.es399.js +5 -26
  647. package/dist/visualization.es399.js.map +1 -1
  648. package/dist/visualization.es4.js +6 -6
  649. package/dist/visualization.es40.js +63 -31
  650. package/dist/visualization.es40.js.map +1 -1
  651. package/dist/visualization.es400.js +35 -15
  652. package/dist/visualization.es400.js.map +1 -1
  653. package/dist/visualization.es401.js +21 -10
  654. package/dist/visualization.es401.js.map +1 -1
  655. package/dist/visualization.es402.js +3 -19
  656. package/dist/visualization.es402.js.map +1 -1
  657. package/dist/visualization.es403.js +5 -14
  658. package/dist/visualization.es403.js.map +1 -1
  659. package/dist/visualization.es404.js +4 -3
  660. package/dist/visualization.es404.js.map +1 -1
  661. package/dist/visualization.es405.js +47 -11
  662. package/dist/visualization.es405.js.map +1 -1
  663. package/dist/visualization.es406.js +25 -47
  664. package/dist/visualization.es406.js.map +1 -1
  665. package/dist/visualization.es407.js +16 -5
  666. package/dist/visualization.es407.js.map +1 -1
  667. package/dist/visualization.es408.js +10 -13
  668. package/dist/visualization.es408.js.map +1 -1
  669. package/dist/visualization.es409.js +20 -2
  670. package/dist/visualization.es409.js.map +1 -1
  671. package/dist/visualization.es41.js +62 -164
  672. package/dist/visualization.es41.js.map +1 -1
  673. package/dist/visualization.es410.js +14 -7
  674. package/dist/visualization.es410.js.map +1 -1
  675. package/dist/visualization.es411.js +3 -209
  676. package/dist/visualization.es411.js.map +1 -1
  677. package/dist/visualization.es412.js +12 -26
  678. package/dist/visualization.es412.js.map +1 -1
  679. package/dist/visualization.es413.js +48 -3
  680. package/dist/visualization.es413.js.map +1 -1
  681. package/dist/visualization.es414.js +6 -16
  682. package/dist/visualization.es414.js.map +1 -1
  683. package/dist/visualization.es415.js +13 -15
  684. package/dist/visualization.es415.js.map +1 -1
  685. package/dist/visualization.es416.js +2 -15
  686. package/dist/visualization.es416.js.map +1 -1
  687. package/dist/visualization.es417.js +7 -2
  688. package/dist/visualization.es417.js.map +1 -1
  689. package/dist/visualization.es418.js +210 -2
  690. package/dist/visualization.es418.js.map +1 -1
  691. package/dist/visualization.es419.js +27 -2
  692. package/dist/visualization.es419.js.map +1 -1
  693. package/dist/visualization.es42.js +112 -64
  694. package/dist/visualization.es42.js.map +1 -1
  695. package/dist/visualization.es420.js +4 -5
  696. package/dist/visualization.es420.js.map +1 -1
  697. package/dist/visualization.es421.js +16 -2
  698. package/dist/visualization.es421.js.map +1 -1
  699. package/dist/visualization.es422.js +15 -25
  700. package/dist/visualization.es422.js.map +1 -1
  701. package/dist/visualization.es423.js +14 -21
  702. package/dist/visualization.es423.js.map +1 -1
  703. package/dist/visualization.es424.js +2 -9
  704. package/dist/visualization.es424.js.map +1 -1
  705. package/dist/visualization.es425.js +2 -68
  706. package/dist/visualization.es425.js.map +1 -1
  707. package/dist/visualization.es426.js +2 -6
  708. package/dist/visualization.es426.js.map +1 -1
  709. package/dist/visualization.es427.js +4 -28
  710. package/dist/visualization.es427.js.map +1 -1
  711. package/dist/visualization.es428.js +2 -10
  712. package/dist/visualization.es428.js.map +1 -1
  713. package/dist/visualization.es429.js +25 -6
  714. package/dist/visualization.es429.js.map +1 -1
  715. package/dist/visualization.es43.js +46 -173
  716. package/dist/visualization.es43.js.map +1 -1
  717. package/dist/visualization.es430.js +22 -2
  718. package/dist/visualization.es430.js.map +1 -1
  719. package/dist/visualization.es431.js +9 -5
  720. package/dist/visualization.es431.js.map +1 -1
  721. package/dist/visualization.es432.js +68 -26
  722. package/dist/visualization.es432.js.map +1 -1
  723. package/dist/visualization.es433.js +6 -11
  724. package/dist/visualization.es433.js.map +1 -1
  725. package/dist/visualization.es434.js +29 -27
  726. package/dist/visualization.es434.js.map +1 -1
  727. package/dist/visualization.es435.js +9 -9
  728. package/dist/visualization.es435.js.map +1 -1
  729. package/dist/visualization.es436.js +6 -11
  730. package/dist/visualization.es436.js.map +1 -1
  731. package/dist/visualization.es437.js +2 -2
  732. package/dist/visualization.es437.js.map +1 -1
  733. package/dist/visualization.es438.js +5 -16
  734. package/dist/visualization.es438.js.map +1 -1
  735. package/dist/visualization.es439.js +24 -28
  736. package/dist/visualization.es439.js.map +1 -1
  737. package/dist/visualization.es44.js +5 -74
  738. package/dist/visualization.es44.js.map +1 -1
  739. package/dist/visualization.es440.js +11 -26
  740. package/dist/visualization.es440.js.map +1 -1
  741. package/dist/visualization.es441.js +27 -2
  742. package/dist/visualization.es441.js.map +1 -1
  743. package/dist/visualization.es442.js +9 -8
  744. package/dist/visualization.es442.js.map +1 -1
  745. package/dist/visualization.es443.js +10 -12
  746. package/dist/visualization.es443.js.map +1 -1
  747. package/dist/visualization.es444.js +2 -23
  748. package/dist/visualization.es444.js.map +1 -1
  749. package/dist/visualization.es445.js +16 -13
  750. package/dist/visualization.es445.js.map +1 -1
  751. package/dist/visualization.es446.js +30 -3
  752. package/dist/visualization.es446.js.map +1 -1
  753. package/dist/visualization.es447.js +26 -2
  754. package/dist/visualization.es447.js.map +1 -1
  755. package/dist/visualization.es448.js +2 -18
  756. package/dist/visualization.es448.js.map +1 -1
  757. package/dist/visualization.es449.js +8 -3
  758. package/dist/visualization.es449.js.map +1 -1
  759. package/dist/visualization.es45.js +33 -112
  760. package/dist/visualization.es45.js.map +1 -1
  761. package/dist/visualization.es450.js +12 -11
  762. package/dist/visualization.es450.js.map +1 -1
  763. package/dist/visualization.es451.js +23 -11
  764. package/dist/visualization.es451.js.map +1 -1
  765. package/dist/visualization.es452.js +12 -6
  766. package/dist/visualization.es452.js.map +1 -1
  767. package/dist/visualization.es453.js +3 -19
  768. package/dist/visualization.es453.js.map +1 -1
  769. package/dist/visualization.es454.js +2 -23
  770. package/dist/visualization.es454.js.map +1 -1
  771. package/dist/visualization.es455.js +17 -11
  772. package/dist/visualization.es455.js.map +1 -1
  773. package/dist/visualization.es456.js +3 -50
  774. package/dist/visualization.es456.js.map +1 -1
  775. package/dist/visualization.es457.js +11 -17
  776. package/dist/visualization.es457.js.map +1 -1
  777. package/dist/visualization.es458.js +11 -36
  778. package/dist/visualization.es458.js.map +1 -1
  779. package/dist/visualization.es459.js +6 -22
  780. package/dist/visualization.es459.js.map +1 -1
  781. package/dist/visualization.es46.js +33 -18700
  782. package/dist/visualization.es46.js.map +1 -1
  783. package/dist/visualization.es460.js +19 -32
  784. package/dist/visualization.es460.js.map +1 -1
  785. package/dist/visualization.es461.js +22 -3
  786. package/dist/visualization.es461.js.map +1 -1
  787. package/dist/visualization.es462.js +11 -18
  788. package/dist/visualization.es462.js.map +1 -1
  789. package/dist/visualization.es463.js +50 -13
  790. package/dist/visualization.es463.js.map +1 -1
  791. package/dist/visualization.es464.js +17 -10
  792. package/dist/visualization.es464.js.map +1 -1
  793. package/dist/visualization.es465.js +35 -29
  794. package/dist/visualization.es465.js.map +1 -1
  795. package/dist/visualization.es466.js +23 -6
  796. package/dist/visualization.es466.js.map +1 -1
  797. package/dist/visualization.es467.js +31 -7
  798. package/dist/visualization.es467.js.map +1 -1
  799. package/dist/visualization.es468.js +4 -2
  800. package/dist/visualization.es468.js.map +1 -1
  801. package/dist/visualization.es469.js +18 -16
  802. package/dist/visualization.es469.js.map +1 -1
  803. package/dist/visualization.es47.js +52 -5
  804. package/dist/visualization.es47.js.map +1 -1
  805. package/dist/visualization.es470.js +14 -9
  806. package/dist/visualization.es470.js.map +1 -1
  807. package/dist/visualization.es471.js +10 -9
  808. package/dist/visualization.es471.js.map +1 -1
  809. package/dist/visualization.es472.js +26 -612
  810. package/dist/visualization.es472.js.map +1 -1
  811. package/dist/visualization.es473.js +6 -51
  812. package/dist/visualization.es473.js.map +1 -1
  813. package/dist/visualization.es474.js +8 -13
  814. package/dist/visualization.es474.js.map +1 -1
  815. package/dist/visualization.es475.js +2 -11
  816. package/dist/visualization.es475.js.map +1 -1
  817. package/dist/visualization.es476.js +17 -23
  818. package/dist/visualization.es476.js.map +1 -1
  819. package/dist/visualization.es477.js +8 -34
  820. package/dist/visualization.es477.js.map +1 -1
  821. package/dist/visualization.es478.js +9 -12
  822. package/dist/visualization.es478.js.map +1 -1
  823. package/dist/visualization.es479.js +613 -17
  824. package/dist/visualization.es479.js.map +1 -1
  825. package/dist/visualization.es48.js +55 -5
  826. package/dist/visualization.es48.js.map +1 -1
  827. package/dist/visualization.es480.js +43 -33
  828. package/dist/visualization.es480.js.map +1 -1
  829. package/dist/visualization.es481.js +11 -56
  830. package/dist/visualization.es481.js.map +1 -1
  831. package/dist/visualization.es482.js +11 -19
  832. package/dist/visualization.es482.js.map +1 -1
  833. package/dist/visualization.es483.js +22 -25
  834. package/dist/visualization.es483.js.map +1 -1
  835. package/dist/visualization.es484.js +33 -25
  836. package/dist/visualization.es484.js.map +1 -1
  837. package/dist/visualization.es485.js +11 -41
  838. package/dist/visualization.es485.js.map +1 -1
  839. package/dist/visualization.es486.js +18 -3
  840. package/dist/visualization.es486.js.map +1 -1
  841. package/dist/visualization.es487.js +26 -3
  842. package/dist/visualization.es487.js.map +1 -1
  843. package/dist/visualization.es488.js +27 -7
  844. package/dist/visualization.es488.js.map +1 -1
  845. package/dist/visualization.es489.js +41 -14
  846. package/dist/visualization.es489.js.map +1 -1
  847. package/dist/visualization.es49.js +42 -59
  848. package/dist/visualization.es49.js.map +1 -1
  849. package/dist/visualization.es490.js +20 -2
  850. package/dist/visualization.es490.js.map +1 -1
  851. package/dist/visualization.es491.js +41 -2
  852. package/dist/visualization.es491.js.map +1 -1
  853. package/dist/visualization.es492.js +58 -2
  854. package/dist/visualization.es492.js.map +1 -1
  855. package/dist/visualization.es493.js +3 -9
  856. package/dist/visualization.es493.js.map +1 -1
  857. package/dist/visualization.es494.js +3 -10
  858. package/dist/visualization.es494.js.map +1 -1
  859. package/dist/visualization.es495.js +7 -7
  860. package/dist/visualization.es495.js.map +1 -1
  861. package/dist/visualization.es496.js +15 -8
  862. package/dist/visualization.es496.js.map +1 -1
  863. package/dist/visualization.es497.js +2 -7
  864. package/dist/visualization.es497.js.map +1 -1
  865. package/dist/visualization.es498.js +2 -6
  866. package/dist/visualization.es498.js.map +1 -1
  867. package/dist/visualization.es499.js +2 -15
  868. package/dist/visualization.es499.js.map +1 -1
  869. package/dist/visualization.es5.js +88 -96
  870. package/dist/visualization.es5.js.map +1 -1
  871. package/dist/visualization.es50.js +5 -810
  872. package/dist/visualization.es50.js.map +1 -1
  873. package/dist/visualization.es500.js +7 -6
  874. package/dist/visualization.es500.js.map +1 -1
  875. package/dist/visualization.es501.js +34 -6
  876. package/dist/visualization.es501.js.map +1 -1
  877. package/dist/visualization.es502.js +3 -6
  878. package/dist/visualization.es502.js.map +1 -1
  879. package/dist/visualization.es503.js +3 -6
  880. package/dist/visualization.es503.js.map +1 -1
  881. package/dist/visualization.es504.js +6 -3
  882. package/dist/visualization.es504.js.map +1 -1
  883. package/dist/visualization.es505.js +12 -4
  884. package/dist/visualization.es505.js.map +1 -1
  885. package/dist/visualization.es506.js +2 -10
  886. package/dist/visualization.es506.js.map +1 -1
  887. package/dist/visualization.es507.js +3 -29
  888. package/dist/visualization.es507.js.map +1 -1
  889. package/dist/visualization.es508.js +3 -61
  890. package/dist/visualization.es508.js.map +1 -1
  891. package/dist/visualization.es509.js +9 -236
  892. package/dist/visualization.es509.js.map +1 -1
  893. package/dist/visualization.es51.js +8 -0
  894. package/dist/visualization.es51.js.map +1 -0
  895. package/dist/visualization.es510.js +4 -992
  896. package/dist/visualization.es510.js.map +1 -1
  897. package/dist/visualization.es511.js +33 -29
  898. package/dist/visualization.es511.js.map +1 -1
  899. package/dist/visualization.es512.js +8 -118
  900. package/dist/visualization.es512.js.map +1 -1
  901. package/dist/visualization.es513.js +9 -29
  902. package/dist/visualization.es513.js.map +1 -1
  903. package/dist/visualization.es514.js +6 -10
  904. package/dist/visualization.es514.js.map +1 -1
  905. package/dist/visualization.es515.js +8 -13
  906. package/dist/visualization.es515.js.map +1 -1
  907. package/dist/visualization.es516.js +6 -32
  908. package/dist/visualization.es516.js.map +1 -1
  909. package/dist/visualization.es517.js +4 -27
  910. package/dist/visualization.es517.js.map +1 -1
  911. package/dist/visualization.es518.js +14 -10
  912. package/dist/visualization.es518.js.map +1 -1
  913. package/dist/visualization.es519.js +5 -12
  914. package/dist/visualization.es519.js.map +1 -1
  915. package/dist/visualization.es52.js +18 -131
  916. package/dist/visualization.es52.js.map +1 -1
  917. package/dist/visualization.es520.js +6 -17
  918. package/dist/visualization.es520.js.map +1 -1
  919. package/dist/visualization.es521.js +6 -23
  920. package/dist/visualization.es521.js.map +1 -1
  921. package/dist/visualization.es522.js +6 -16
  922. package/dist/visualization.es522.js.map +1 -1
  923. package/dist/visualization.es523.js +3 -96
  924. package/dist/visualization.es523.js.map +1 -1
  925. package/dist/visualization.es524.js +4 -28
  926. package/dist/visualization.es524.js.map +1 -1
  927. package/dist/visualization.es525.js +8 -70
  928. package/dist/visualization.es525.js.map +1 -1
  929. package/dist/visualization.es526.js +234 -48
  930. package/dist/visualization.es526.js.map +1 -1
  931. package/dist/visualization.es527.js +991 -33
  932. package/dist/visualization.es527.js.map +1 -1
  933. package/dist/visualization.es528.js +59 -39
  934. package/dist/visualization.es528.js.map +1 -1
  935. package/dist/visualization.es53.js +4 -43
  936. package/dist/visualization.es53.js.map +1 -1
  937. package/dist/visualization.es54.js +26 -35
  938. package/dist/visualization.es54.js.map +1 -1
  939. package/dist/visualization.es540.js +4 -28
  940. package/dist/visualization.es540.js.map +1 -1
  941. package/dist/visualization.es541.js +3 -10
  942. package/dist/visualization.es541.js.map +1 -1
  943. package/dist/visualization.es542.js +15 -13
  944. package/dist/visualization.es542.js.map +1 -1
  945. package/dist/visualization.es543.js +4 -8
  946. package/dist/visualization.es543.js.map +1 -1
  947. package/dist/visualization.es544.js +10 -8
  948. package/dist/visualization.es544.js.map +1 -1
  949. package/dist/visualization.es545.js +4 -19
  950. package/dist/visualization.es545.js.map +1 -1
  951. package/dist/visualization.es546.js +5 -62
  952. package/dist/visualization.es546.js.map +1 -1
  953. package/dist/visualization.es547.js +10 -5
  954. package/dist/visualization.es547.js.map +1 -1
  955. package/dist/visualization.es548.js +7 -3
  956. package/dist/visualization.es548.js.map +1 -1
  957. package/dist/visualization.es549.js +5 -2
  958. package/dist/visualization.es549.js.map +1 -1
  959. package/dist/visualization.es55.js +30 -69
  960. package/dist/visualization.es55.js.map +1 -1
  961. package/dist/visualization.es550.js +3 -18
  962. package/dist/visualization.es550.js.map +1 -1
  963. package/dist/visualization.es551.js +4 -282
  964. package/dist/visualization.es551.js.map +1 -1
  965. package/dist/visualization.es552.js +12 -2
  966. package/dist/visualization.es552.js.map +1 -1
  967. package/dist/visualization.es553.js +9 -127
  968. package/dist/visualization.es553.js.map +1 -1
  969. package/dist/visualization.es554.js +29 -8
  970. package/dist/visualization.es554.js.map +1 -1
  971. package/dist/visualization.es555.js +24 -51
  972. package/dist/visualization.es555.js.map +1 -1
  973. package/dist/visualization.es556.js +51 -7
  974. package/dist/visualization.es556.js.map +1 -1
  975. package/dist/visualization.es557.js +3 -4
  976. package/dist/visualization.es557.js.map +1 -1
  977. package/dist/visualization.es558.js +7 -2
  978. package/dist/visualization.es558.js.map +1 -1
  979. package/dist/visualization.es559.js +20 -3
  980. package/dist/visualization.es559.js.map +1 -1
  981. package/dist/visualization.es56.js +28 -43
  982. package/dist/visualization.es56.js.map +1 -1
  983. package/dist/visualization.es560.js +8 -4
  984. package/dist/visualization.es560.js.map +1 -1
  985. package/dist/visualization.es561.js +6 -3
  986. package/dist/visualization.es561.js.map +1 -1
  987. package/dist/visualization.es562.js +5 -11
  988. package/dist/visualization.es562.js.map +1 -1
  989. package/dist/visualization.es563.js +7 -9
  990. package/dist/visualization.es563.js.map +1 -1
  991. package/dist/visualization.es564.js +15 -30
  992. package/dist/visualization.es564.js.map +1 -1
  993. package/dist/visualization.es565.js +4 -24
  994. package/dist/visualization.es565.js.map +1 -1
  995. package/dist/visualization.es566.js +6 -3
  996. package/dist/visualization.es566.js.map +1 -1
  997. package/dist/visualization.es567.js +34 -3
  998. package/dist/visualization.es567.js.map +1 -1
  999. package/dist/visualization.es568.js +8 -9
  1000. package/dist/visualization.es568.js.map +1 -1
  1001. package/dist/visualization.es569.js +28 -9
  1002. package/dist/visualization.es569.js.map +1 -1
  1003. package/dist/visualization.es57.js +64 -11
  1004. package/dist/visualization.es57.js.map +1 -1
  1005. package/dist/visualization.es570.js +5 -16
  1006. package/dist/visualization.es570.js.map +1 -1
  1007. package/dist/visualization.es571.js +10 -4
  1008. package/dist/visualization.es571.js.map +1 -1
  1009. package/dist/visualization.es572.js +13 -5
  1010. package/dist/visualization.es572.js.map +1 -1
  1011. package/dist/visualization.es573.js +8 -21
  1012. package/dist/visualization.es573.js.map +1 -1
  1013. package/dist/visualization.es574.js +8 -8
  1014. package/dist/visualization.es574.js.map +1 -1
  1015. package/dist/visualization.es575.js +19 -6
  1016. package/dist/visualization.es575.js.map +1 -1
  1017. package/dist/visualization.es576.js +62 -5
  1018. package/dist/visualization.es576.js.map +1 -1
  1019. package/dist/visualization.es577.js +3 -7
  1020. package/dist/visualization.es577.js.map +1 -1
  1021. package/dist/visualization.es578.js +2 -16
  1022. package/dist/visualization.es578.js.map +1 -1
  1023. package/dist/visualization.es579.js +18 -4
  1024. package/dist/visualization.es579.js.map +1 -1
  1025. package/dist/visualization.es58.js +61 -34
  1026. package/dist/visualization.es58.js.map +1 -1
  1027. package/dist/visualization.es580.js +281 -6
  1028. package/dist/visualization.es580.js.map +1 -1
  1029. package/dist/visualization.es581.js +2 -35
  1030. package/dist/visualization.es581.js.map +1 -1
  1031. package/dist/visualization.es582.js +127 -8
  1032. package/dist/visualization.es582.js.map +1 -1
  1033. package/dist/visualization.es583.js +1 -1
  1034. package/dist/visualization.es584.js +1 -1
  1035. package/dist/visualization.es585.js +1 -1
  1036. package/dist/visualization.es587.js +1 -1
  1037. package/dist/visualization.es588.js +1 -1
  1038. package/dist/visualization.es59.js +3 -10
  1039. package/dist/visualization.es59.js.map +1 -1
  1040. package/dist/visualization.es6.js +239 -205
  1041. package/dist/visualization.es6.js.map +1 -1
  1042. package/dist/visualization.es60.js +46 -54
  1043. package/dist/visualization.es60.js.map +1 -1
  1044. package/dist/visualization.es600.js +4 -12
  1045. package/dist/visualization.es600.js.map +1 -1
  1046. package/dist/visualization.es601.js +8 -24
  1047. package/dist/visualization.es601.js.map +1 -1
  1048. package/dist/visualization.es602.js +6 -19
  1049. package/dist/visualization.es602.js.map +1 -1
  1050. package/dist/visualization.es603.js +19 -7
  1051. package/dist/visualization.es603.js.map +1 -1
  1052. package/dist/visualization.es604.js +15 -6
  1053. package/dist/visualization.es604.js.map +1 -1
  1054. package/dist/visualization.es605.js +12 -3
  1055. package/dist/visualization.es605.js.map +1 -1
  1056. package/dist/visualization.es606.js +24 -64
  1057. package/dist/visualization.es606.js.map +1 -1
  1058. package/dist/visualization.es607.js +18 -31
  1059. package/dist/visualization.es607.js.map +1 -1
  1060. package/dist/visualization.es608.js +7 -5
  1061. package/dist/visualization.es608.js.map +1 -1
  1062. package/dist/visualization.es609.js +6 -9
  1063. package/dist/visualization.es609.js.map +1 -1
  1064. package/dist/visualization.es61.js +4 -52
  1065. package/dist/visualization.es61.js.map +1 -1
  1066. package/dist/visualization.es610.js +3 -6
  1067. package/dist/visualization.es610.js.map +1 -1
  1068. package/dist/visualization.es611.js +62 -288
  1069. package/dist/visualization.es611.js.map +1 -1
  1070. package/dist/visualization.es612.js +31 -17
  1071. package/dist/visualization.es612.js.map +1 -1
  1072. package/dist/visualization.es613.js +9 -14
  1073. package/dist/visualization.es613.js.map +1 -1
  1074. package/dist/visualization.es614.js +9 -9
  1075. package/dist/visualization.es614.js.map +1 -1
  1076. package/dist/visualization.es615.js +18 -9
  1077. package/dist/visualization.es615.js.map +1 -1
  1078. package/dist/visualization.es616.js +289 -17
  1079. package/dist/visualization.es616.js.map +1 -1
  1080. package/dist/visualization.es62.js +281 -54
  1081. package/dist/visualization.es62.js.map +1 -1
  1082. package/dist/visualization.es621.js +3 -117
  1083. package/dist/visualization.es621.js.map +1 -1
  1084. package/dist/visualization.es622.js +11 -3
  1085. package/dist/visualization.es622.js.map +1 -1
  1086. package/dist/visualization.es623.js +117 -11
  1087. package/dist/visualization.es623.js.map +1 -1
  1088. package/dist/visualization.es63.js +17 -41
  1089. package/dist/visualization.es63.js.map +1 -1
  1090. package/dist/visualization.es64.js +34 -5
  1091. package/dist/visualization.es64.js.map +1 -1
  1092. package/dist/visualization.es65.js +10 -4
  1093. package/dist/visualization.es65.js.map +1 -1
  1094. package/dist/visualization.es66.js +54 -17
  1095. package/dist/visualization.es66.js.map +1 -1
  1096. package/dist/visualization.es67.js +7 -4
  1097. package/dist/visualization.es67.js.map +1 -1
  1098. package/dist/visualization.es68.js +7 -26
  1099. package/dist/visualization.es68.js.map +1 -1
  1100. package/dist/visualization.es69.js +64 -29
  1101. package/dist/visualization.es69.js.map +1 -1
  1102. package/dist/visualization.es7.js +11 -11
  1103. package/dist/visualization.es70.js +265 -7
  1104. package/dist/visualization.es70.js.map +1 -1
  1105. package/dist/visualization.es71.js +103 -8
  1106. package/dist/visualization.es71.js.map +1 -1
  1107. package/dist/visualization.es72.js +27 -29
  1108. package/dist/visualization.es72.js.map +1 -1
  1109. package/dist/visualization.es73.js +21 -63
  1110. package/dist/visualization.es73.js.map +1 -1
  1111. package/dist/visualization.es74.js +17 -61
  1112. package/dist/visualization.es74.js.map +1 -1
  1113. package/dist/visualization.es75.js +20 -3
  1114. package/dist/visualization.es75.js.map +1 -1
  1115. package/dist/visualization.es76.js +74 -47
  1116. package/dist/visualization.es76.js.map +1 -1
  1117. package/dist/visualization.es77.js +81 -4
  1118. package/dist/visualization.es77.js.map +1 -1
  1119. package/dist/visualization.es78.js +36 -278
  1120. package/dist/visualization.es78.js.map +1 -1
  1121. package/dist/visualization.es79.js +79 -17
  1122. package/dist/visualization.es79.js.map +1 -1
  1123. package/dist/visualization.es8.js +13 -13
  1124. package/dist/visualization.es80.js +45 -65
  1125. package/dist/visualization.es80.js.map +1 -1
  1126. package/dist/visualization.es81.js +55 -265
  1127. package/dist/visualization.es81.js.map +1 -1
  1128. package/dist/visualization.es82.js +7 -103
  1129. package/dist/visualization.es82.js.map +1 -1
  1130. package/dist/visualization.es83.js +26 -27
  1131. package/dist/visualization.es83.js.map +1 -1
  1132. package/dist/visualization.es84.js +12 -22
  1133. package/dist/visualization.es84.js.map +1 -1
  1134. package/dist/visualization.es85.js +57 -17
  1135. package/dist/visualization.es85.js.map +1 -1
  1136. package/dist/visualization.es86.js +31 -20
  1137. package/dist/visualization.es86.js.map +1 -1
  1138. package/dist/visualization.es87.js +169 -74
  1139. package/dist/visualization.es87.js.map +1 -1
  1140. package/dist/visualization.es88.js +129 -80
  1141. package/dist/visualization.es88.js.map +1 -1
  1142. package/dist/visualization.es89.js +174 -63
  1143. package/dist/visualization.es89.js.map +1 -1
  1144. package/dist/visualization.es9.js +1 -1
  1145. package/dist/visualization.es90.js +74 -5
  1146. package/dist/visualization.es90.js.map +1 -1
  1147. package/dist/visualization.es91.js +5 -5
  1148. package/dist/visualization.es92.js +5 -5
  1149. package/dist/visualization.es92.js.map +1 -1
  1150. package/dist/visualization.es93.js +5 -15
  1151. package/dist/visualization.es93.js.map +1 -1
  1152. package/dist/visualization.es94.js +10 -10
  1153. package/dist/visualization.es94.js.map +1 -1
  1154. package/dist/visualization.es95.js +14 -12
  1155. package/dist/visualization.es95.js.map +1 -1
  1156. package/dist/visualization.es96.js +221 -44
  1157. package/dist/visualization.es96.js.map +1 -1
  1158. package/dist/visualization.es97.js +2 -22
  1159. package/dist/visualization.es97.js.map +1 -1
  1160. package/dist/visualization.es98.js +557 -60
  1161. package/dist/visualization.es98.js.map +1 -1
  1162. package/dist/visualization.es99.js +213 -79
  1163. package/dist/visualization.es99.js.map +1 -1
  1164. package/package.json +1 -1
  1165. package/dist/visualization.es38.js +0 -11
  1166. package/dist/visualization.es38.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"visualization.es87.js","sources":["../src/components/ScatterPlot/hooks/useHoverTooltip.ts"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { localPoint } from \"@visx/event\";\nimport { ScaleLinear } from \"@visx/vendor/d3-scale\";\nimport { Point, ZoomType } from \"../types\";\nimport { rescaleX, rescaleY } from \"../helpers\";\nimport { useStableCallback } from \"../../../hooks\";\n\ntype UseHoverTooltipProps<T extends object> = {\n pointData: Point<T>[];\n margin: { top: number; left: number };\n xScale: ScaleLinear<number, number, never>;\n yScale: ScaleLinear<number, number, never>;\n onHoveredPointChange?: (point: Point<T> | null) => void;\n};\n\ntype TransformedPointCache<T extends object> = {\n pointData: Point<T>[];\n translateX: number;\n translateY: number;\n scaleX: number;\n scaleY: number;\n points: Array<{ point: Point<T>; x: number; y: number }>;\n};\n\nexport const useHoverTooltip = <T extends object>({\n pointData,\n margin,\n xScale,\n yScale,\n onHoveredPointChange,\n}: UseHoverTooltipProps<T>) => {\n const [tooltipData, setTooltipData] = useState<Point<T> | null>(null);\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const [mouseX, setMouseX] = useState(0);\n const [mouseY, setMouseY] = useState(0);\n const transformedPointCacheRef = useRef<TransformedPointCache<T> | null>(null);\n\n const hoveredPoint = useMemo(\n () => tooltipData\n ? pointData.find((point) => point.x === tooltipData.x && point.y === tooltipData.y) ?? null\n : null,\n [pointData, tooltipData]\n );\n\n // Published from an effect rather than the move handler because hoveredPoint is derived:\n // setTooltipData is called on every move and React discards the ones that do not change it,\n // so watching the derived value is what turns a stream of moves into enter/leave events.\n // The ref keeps that true when the effect itself is re-run without a real change.\n const publishHoverChange = useStableCallback(onHoveredPointChange);\n const publishedPointRef = useRef<Point<T> | null>(null);\n\n useEffect(() => {\n if (publishedPointRef.current === hoveredPoint) return;\n publishedPointRef.current = hoveredPoint;\n publishHoverChange(hoveredPoint);\n }, [hoveredPoint, publishHoverChange]);\n\n // Announce the hover as ended when the plot unmounts, so a consumer driving highlight state\n // of its own - a legend entry, a linked chart - isn't left lit for a plot that is gone.\n // Kept apart from the effect above, whose cleanup would otherwise fire on every transition.\n useEffect(() => () => {\n if (publishedPointRef.current !== null) publishHoverChange(null);\n }, [publishHoverChange]);\n\n const handleMouseMove = useCallback((event: React.MouseEvent<SVGElement>, zoom: ZoomType) => {\n if (zoom.isDragging) {\n setTooltipOpen(false);\n setTooltipData(null);\n return;\n }\n\n setMouseX(event.pageX);\n setMouseY(event.pageY);\n\n const point = localPoint(event.currentTarget, event);\n if (!point) return;\n\n const adjustedX = point.x - margin.left;\n const adjustedY = point.y - margin.top;\n const { translateX, translateY, scaleX, scaleY } = zoom.transformMatrix;\n\n const cachedTransformedPoints = transformedPointCacheRef.current;\n const shouldReuseCachedPoints =\n cachedTransformedPoints &&\n cachedTransformedPoints.pointData === pointData &&\n cachedTransformedPoints.translateX === translateX &&\n cachedTransformedPoints.translateY === translateY &&\n cachedTransformedPoints.scaleX === scaleX &&\n cachedTransformedPoints.scaleY === scaleY;\n\n const transformedPoints = shouldReuseCachedPoints\n ? cachedTransformedPoints.points\n : (() => {\n const xScaleTransformed = rescaleX(xScale, translateX, scaleX);\n const yScaleTransformed = rescaleY(yScale, translateY, scaleY);\n const nextPoints = pointData.map((curr) => ({\n point: curr,\n x: xScaleTransformed(curr.x),\n y: yScaleTransformed(curr.y),\n }));\n\n transformedPointCacheRef.current = {\n pointData,\n translateX,\n translateY,\n scaleX,\n scaleY,\n points: nextPoints,\n };\n\n return nextPoints;\n })();\n\n const threshold = 5;\n const nextHoveredPoint = transformedPoints.find((curr) => (\n Math.abs(adjustedX - curr.x) < threshold &&\n Math.abs(adjustedY - curr.y) < threshold\n ))?.point ?? null;\n\n setTooltipData(nextHoveredPoint);\n setTooltipOpen(Boolean(nextHoveredPoint));\n }, [margin.left, margin.top, pointData, xScale, yScale]);\n\n const handleMouseLeave = useCallback(() => {\n setTooltipOpen(false);\n setTooltipData(null);\n }, []);\n\n return { hoveredPoint, tooltipData, tooltipOpen, mouseX, mouseY, handleMouseMove, handleMouseLeave };\n};\n"],"names":["useHoverTooltip","t0","$","_c","pointData","margin","xScale","yScale","onHoveredPointChange","tooltipData","setTooltipData","useState","tooltipOpen","setTooltipOpen","mouseX","setMouseX","mouseY","setMouseY","transformedPointCacheRef","useRef","t1","find","point","x","y","hoveredPoint","publishHoverChange","useStableCallback","publishedPointRef","t2","t3","current","useEffect","t4","t5","t6","left","top","event","zoom","isDragging","pageX","pageY","point_0","localPoint","currentTarget","adjustedX","adjustedY","translateX","translateY","scaleX","scaleY","transformMatrix","cachedTransformedPoints","nextHoveredPoint","points","xScaleTransformed","rescaleX","yScaleTransformed","rescaleY","nextPoints","map","curr","curr_0","Math","abs","Boolean","handleMouseMove","t7","Symbol","for","handleMouseLeave","t8"],"mappings":";;;;;AAwBO,MAAMA,KAAkBC,CAAAA,MAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA,GAAmB;AAAA,IAAAC,WAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAAC,QAAAA;AAAAA,IAAAC,sBAAAA;AAAAA,EAAAA,IAAAP,GAO9C,CAAAQ,GAAAC,CAAA,IAAsCC,EAA0B,IAAI,GACpE,CAAAC,GAAAC,CAAA,IAAsCF,EAAS,EAAK,GACpD,CAAAG,GAAAC,CAAA,IAA4BJ,EAAS,CAAC,GACtC,CAAAK,GAAAC,CAAA,IAA4BN,EAAS,CAAC,GACtCO,IAAiCC,EAAwC,IAAI;AAAE,MAAAC;AAAA,EAAAlB,EAAA,CAAA,MAAAE,KAAAF,SAAAO,KAGrEW,IAAAX,IACAL,EAASiB,KAAMC,CAAAA,MAAWA,EAAKC,MAAOd,EAAWc,KAAMD,EAAKE,MAAOf,EAAWe,CAAU,KAAxF,OADA,MAEItB,OAAAE,GAAAF,OAAAO,GAAAP,OAAAkB,KAAAA,IAAAlB,EAAA,CAAA;AAHd,QAAAuB,IACUL,GAUVM,IAA2BC,EAAkBnB,CAAoB,GACjEoB,IAA0BT,EAAwB,IAAI;AAAE,MAAAU,GAAAC;AAAA,EAAA5B,EAAA,CAAA,MAAAuB,KAAAvB,SAAAwB,KAE9CG,IAAAA,MAAA;AACN,IAAID,EAAiBG,YAAaN,MAClCG,EAAiBG,UAAWN,GAC5BC,EAAmBD,CAAY;AAAA,EAAC,GACjCK,IAAA,CAACL,GAAcC,CAAkB,GAACxB,OAAAuB,GAAAvB,OAAAwB,GAAAxB,OAAA2B,GAAA3B,OAAA4B,MAAAD,IAAA3B,EAAA,CAAA,GAAA4B,IAAA5B,EAAA,CAAA,IAJrC8B,EAAUH,GAIPC,CAAkC;AAAC,MAAAG,GAAAC;AAAA,EAAAhC,SAAAwB,KAK5BO,IAAAA,MAAM,MAAA;AACZ,IAAIL,EAAiBG,YAAa,QAAML,EAAmB,IAAI;AAAA,EAAE,GAClEQ,IAAA,CAACR,CAAkB,GAACxB,OAAAwB,GAAAxB,OAAA+B,GAAA/B,OAAAgC,MAAAD,IAAA/B,EAAA,CAAA,GAAAgC,IAAAhC,EAAA,CAAA,IAFvB8B,EAAUC,GAEPC,CAAoB;AAAC,MAAAC;AAAA,EAAAjC,UAAAG,EAAA+B,QAAAlC,EAAA,EAAA,MAAAG,EAAAgC,OAAAnC,EAAA,EAAA,MAAAE,KAAAF,UAAAI,KAAAJ,EAAA,EAAA,MAAAK,KAEY4B,IAAAA,CAAAG,GAAAC,MAAA;AAChC,QAAIA,EAAIC,YAAW;AACf3B,MAAAA,EAAe,EAAK,GACpBH,EAAe,IAAI;AAAC;AAAA,IAAA;AAIxBK,IAAAA,EAAUuB,EAAKG,KAAM,GACrBxB,EAAUqB,EAAKI,KAAM;AAErB,UAAAC,IAAcC,EAAWN,EAAKO,eAAgBP,CAAK;AACnD,QAAI,CAAChB;AAAK;AAEV,UAAAwB,IAAkBxB,EAAKC,IAAKlB,EAAM+B,MAClCW,IAAkBzB,EAAKE,IAAKnB,EAAMgC,KAClC;AAAA,MAAAW,YAAAA;AAAAA,MAAAC,YAAAA;AAAAA,MAAAC,QAAAA;AAAAA,MAAAC,QAAAA;AAAAA,IAAAA,IAAmDZ,EAAIa,iBAEvDC,IAAgCnC,EAAwBa,SAiCxDuB,KA/BID,KACAA,EAAuBjD,cAAeA,KACtCiD,EAAuBL,eAAgBA,KACvCK,EAAuBJ,eAAgBA,KACvCI,EAAuBH,WAAYA,KACnCG,EAAuBF,WAAYA,IAGjCE,EAAuBE,UACtB,MAAA;AACC,YAAAC,IAA0BC,EAASnD,GAAQ0C,GAAYE,CAAM,GAC7DQ,IAA0BC,EAASpD,GAAQ0C,GAAYE,CAAM,GAC7DS,IAAmBxD,EAASyD,IAAKC,CAAAA,OAAW;AAAA,QAAAxC,OACjCwC;AAAAA,QAAIvC,GACRiC,EAAkBM,EAAIvC,CAAE;AAAA,QAACC,GACzBkC,EAAkBI,EAAItC,CAAE;AAAA,MAAA,EAC7B;AAEFN,aAAAA,EAAwBa,UAAW;AAAA,QAAA3B,WAAAA;AAAAA,QAAA4C,YAAAA;AAAAA,QAAAC,YAAAA;AAAAA,QAAAC,QAAAA;AAAAA,QAAAC,QAAAA;AAAAA,QAAAI,QAMvBK;AAAAA,MAAAA,GAGLA;AAAAA,IAAU,GAAA,GAIiBvC,KAAM0C,OAC5CC,KAAIC,IAAKnB,IAAYgB,EAAIvC,CAAE,IAFb,KAGdyC,KAAIC,IAAKlB,IAAYe,EAAItC,CAAE,IAHb,CAIV,GAACF,SAHgB;AAKzBZ,IAAAA,EAAe4C,CAAgB,GAC/BzC,EAAeqD,EAAQZ,CAAiB;AAAA,EAAC,GAC5CpD,EAAA,EAAA,IAAAG,EAAA+B,MAAAlC,EAAA,EAAA,IAAAG,EAAAgC,KAAAnC,QAAAE,GAAAF,QAAAI,GAAAJ,QAAAK,GAAAL,QAAAiC,KAAAA,IAAAjC,EAAA,EAAA;AAzDD,QAAAiE,IAAwBhC;AAyDiC,MAAAiC;AAAA,EAAAlE,EAAA,EAAA,MAAAmE,uBAAAC,IAAA,2BAAA,KAEpBF,IAAAA,MAAA;AACjCvD,IAAAA,EAAe,EAAK,GACpBH,EAAe,IAAI;AAAA,EAAC,GACvBR,QAAAkE,KAAAA,IAAAlE,EAAA,EAAA;AAHD,QAAAqE,IAAyBH;AAGlB,MAAAI;AAAA,SAAAtE,UAAAiE,KAAAjE,EAAA,EAAA,MAAAuB,KAAAvB,EAAA,EAAA,MAAAY,KAAAZ,EAAA,EAAA,MAAAc,KAAAd,UAAAO,KAAAP,EAAA,EAAA,MAAAU,KAEA4D,IAAA;AAAA,IAAA/C,cAAAA;AAAAA,IAAAhB,aAAAA;AAAAA,IAAAG,aAAAA;AAAAA,IAAAE,QAAAA;AAAAA,IAAAE,QAAAA;AAAAA,IAAAmD,iBAAAA;AAAAA,IAAAI,kBAAAA;AAAAA,EAAAA,GAA6FrE,QAAAiE,GAAAjE,QAAAuB,GAAAvB,QAAAY,GAAAZ,QAAAc,GAAAd,QAAAO,GAAAP,QAAAU,GAAAV,QAAAsE,KAAAA,IAAAtE,EAAA,EAAA,GAA7FsE;AAA6F;"}
1
+ {"version":3,"file":"visualization.es87.js","sources":["../src/components/Heatmap/heatmapLayout.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport { scaleLinear } from \"@visx/scale\";\nimport { ScaleLinear } from \"@visx/vendor/d3-scale\";\nimport type { ColumnDatum, HeatmapCellId } from \"./types\";\nimport type { HeatmapProps } from \"./types\";\nimport { measureTextWidth } from \"../../utility\";\nimport { getHeatmapLegendWidth } from \"./HeatmapLegend\";\nimport { DEFAULT_DESELECTED_COLOR, cellKey, getHeatmapColorScale } from \"./heatmapCellAppearance\";\nimport { type CanvasCellParams } from \"./HeatmapCanvasCells\";\nimport { TICK_FONT_SIZE, TICK_FONT_FAMILY } from \"./heatmapAxisProps\";\n\nexport const LEGEND_GAP = 16;\n// Extra breathing room between the tick labels and the axis title, beyond the space\n// reserved for the tick labels themselves.\nexport const AXIS_LABEL_GAP = 12;\n// Space reserved for the axis title itself (the \"X-Axis Label\" / \"Y-Axis Label\" text), beyond\n// the tick labels. In scrollable mode this is carved out into its own always-visible pane so\n// the title can't be scrolled out of view - see yTitleWidth/xTitleHeight in HeatmapLayout.\nexport const Y_AXIS_TITLE_SPACE = 40;\nexport const X_AXIS_TITLE_SPACE = 70;\n// Canvas's measureText and the browser's actual SVG text layout don't agree to the sub-pixel,\n// and the gap widens with string length - pad generously so long tick labels aren't clipped.\nexport const TICK_LABEL_WIDTH_SAFETY_FACTOR = 1.15;\nexport const MINI_MAP_HEIGHT = 50;\n\nexport const getBins = (d: ColumnDatum) => d.rows;\n\nexport function maxOf<Datum>(data: Datum[], value: (d: Datum) => number | null): number {\n // Null counts are gaps in the data and don't participate in the max. reduce rather than\n // Math.max(...spread): returns 0 (not -Infinity) for empty/all-null input, with no\n // argument-count ceiling.\n return data.reduce((max, datum) => {\n const datumValue = value(datum);\n return datumValue == null ? max : Math.max(max, datumValue);\n }, 0);\n}\n\nexport interface HeatmapLayout {\n allColNames: string[];\n allRowNames: string[];\n numRows: number;\n minValue: number;\n maxValue: number;\n marg: { top: number; right: number; bottom: number; left: number };\n xMax: number;\n yMax: number;\n viewportWidth: number;\n viewportHeight: number;\n yTitleWidth: number;\n yTickLabelWidth: number;\n xTitleHeight: number;\n xTickLabelHeight: number;\n binWidth: number;\n binHeight: number;\n colLabelHeight: number;\n xTickLeftOverhangMax: number;\n maxRowNameWidth: number;\n legendWidth: number;\n xScale: ScaleLinear<number, number, never>;\n yScale: ScaleLinear<number, number, never>;\n cellYScale: (row: number) => number;\n xTickValues: number[];\n yTickValues: number[];\n stableColors: [string, string, ...string[]];\n colorScale: (count: number) => string | undefined;\n canvasCellParams: CanvasCellParams;\n}\n\nexport interface UseHeatmapLayoutArgs {\n data: ColumnDatum[];\n colorDomain?: [number, number];\n colors: [string, string, ...string[]];\n xLabelOrientation: NonNullable<HeatmapProps[\"xLabelOrientation\"]>;\n margin?: { top: number; right: number; bottom: number; left: number };\n showLegend: boolean;\n isScrollable: boolean;\n cellWidth?: number;\n cellHeight?: number;\n parentWidth: number;\n parentHeight: number;\n showMiniMap: boolean;\n gap: number;\n isRect: boolean;\n selectedCells?: HeatmapCellId[];\n deselectedColor?: string;\n}\n\nexport function useHeatmapLayout({\n data, colorDomain, colors, xLabelOrientation, margin, showLegend, isScrollable,\n cellWidth, cellHeight, parentWidth, parentHeight, showMiniMap, gap, isRect,\n selectedCells, deselectedColor,\n}: UseHeatmapLayoutArgs): HeatmapLayout {\n const allColNames = useMemo(() => data.map((d) => d.columnName), [data]);\n const allRowNames = useMemo(() => data[0]?.rows.map((r) => r.rowName) ?? [], [data]);\n const dataMaxValue = useMemo(() => maxOf(data, (d) => maxOf(getBins(d), (r) => r.count)), [data]);\n const [minValue, maxValue] = colorDomain ?? [0, dataMaxValue];\n const numRows = useMemo(() => maxOf(data, (d) => getBins(d).length), [data]);\n\n // Measured (not estimated) pixel width of the longest label, so any label - short or long,\n // narrow or wide characters - gets exactly the room it needs rather than a per-character guess.\n const maxColNameWidth = useMemo(\n () => allColNames.reduce((m, name) => Math.max(m, measureTextWidth(name, TICK_FONT_SIZE, TICK_FONT_FAMILY)), 0) * TICK_LABEL_WIDTH_SAFETY_FACTOR,\n [allColNames]\n );\n const maxRowNameWidth = useMemo(\n () => allRowNames.reduce((m, name) => Math.max(m, measureTextWidth(name, TICK_FONT_SIZE, TICK_FONT_FAMILY)), 0) * TICK_LABEL_WIDTH_SAFETY_FACTOR,\n [allRowNames]\n );\n\n const rotatedColNameSpace = maxColNameWidth;\n const colLabelHeight = xLabelOrientation === \"horizontal\" ? 12 : xLabelOrientation === \"vertical\" ? rotatedColNameSpace : rotatedColNameSpace * Math.SQRT1_2;\n\n const xTickLeftOverhangMax = xLabelOrientation === \"leftDiagonal\" ? colLabelHeight : 0;\n\n const colorsKey = colors.join(\"\\u0000\");\n const stableColors = useMemo(\n () => colorsKey.split(\"\\u0000\") as [string, string, ...string[]],\n [colorsKey]\n );\n\n const legendWidth = useMemo(() => getHeatmapLegendWidth(minValue, maxValue), [minValue, maxValue]);\n const defaultRight = showLegend ? legendWidth + LEGEND_GAP : 10;\n const defaultTop = 20;\n const labelBottomSpace = colLabelHeight + AXIS_LABEL_GAP + X_AXIS_TITLE_SPACE;\n const marg = margin ?? {\n top: defaultTop,\n left: maxRowNameWidth + AXIS_LABEL_GAP + Y_AXIS_TITLE_SPACE,\n right: defaultRight,\n bottom: labelBottomSpace + TICK_FONT_SIZE,\n };\n\n const miniMapSpace = isScrollable && showMiniMap ? MINI_MAP_HEIGHT : 0;\n const availableWidth = Math.max(0, parentWidth - marg.left - marg.right);\n const availableHeight = Math.max(0, parentHeight - marg.bottom - marg.top - miniMapSpace);\n\n const xMax = isScrollable ? data.length * (cellWidth as number) : availableWidth;\n const yMax = isScrollable ? numRows * (cellHeight as number) : availableHeight;\n const viewportWidth = isScrollable ? Math.min(xMax, availableWidth) : xMax;\n const viewportHeight = isScrollable ? Math.min(yMax, availableHeight) : yMax;\n\n const yTitleWidth = Y_AXIS_TITLE_SPACE;\n const yTickLabelWidth = Math.max(0, marg.left - yTitleWidth);\n const xTitleHeight = X_AXIS_TITLE_SPACE;\n const xTickLabelHeight = Math.max(0, marg.bottom - xTitleHeight);\n\n const binWidth = xMax / data.length;\n const binHeight = yMax / numRows;\n\n const xScale = useMemo(\n () => scaleLinear<number>({ domain: [0, data.length], range: [0, xMax] }),\n [data.length, xMax]\n );\n const yScale = useMemo(\n () => scaleLinear<number>({ domain: [0, numRows], range: [yMax, 0] }),\n [numRows, yMax]\n );\n const cellYScale = useCallback((row: number) => yScale(row + 1), [yScale]);\n\n const xTickValues = useMemo(() => data.map((_, i) => i + 0.5), [data]);\n const yTickValues = useMemo(() => data[0]?.rows.map((_, i) => i + 0.5) ?? [], [data]);\n\n const resolvedDeselectedColor = deselectedColor ?? DEFAULT_DESELECTED_COLOR;\n const colorScale = useMemo(\n () => getHeatmapColorScale(stableColors, [minValue, maxValue]),\n [stableColors, minValue, maxValue]\n );\n const selectedKeys = useMemo(\n () => (selectedCells?.length ? new Set(selectedCells.map(cellKey)) : null),\n [selectedCells]\n );\n\n // Everything the canvas draw loop and hit-testing need to place/color a cell. Only changes when\n // a prop that actually affects appearance/geometry changes - never on scroll or hover, so\n // drawCanvas (and, through it, handleGridScroll) keeps a stable identity across scroll events.\n const canvasCellParams: CanvasCellParams = useMemo(\n () => ({\n data, numRows, xScale, cellYScale, colorScale, gap, isRect, binWidth, binHeight,\n yMax, selectedKeys, deselectedColor: resolvedDeselectedColor,\n }),\n [data, numRows, xScale, cellYScale, colorScale, gap, isRect, binWidth, binHeight, yMax, selectedKeys, resolvedDeselectedColor]\n );\n\n return {\n allColNames, allRowNames, numRows, minValue, maxValue, marg, xMax, yMax,\n viewportWidth, viewportHeight, yTitleWidth, yTickLabelWidth, xTitleHeight, xTickLabelHeight,\n binWidth, binHeight, colLabelHeight, xTickLeftOverhangMax, maxRowNameWidth, legendWidth,\n xScale, yScale, cellYScale, xTickValues, yTickValues, stableColors, colorScale, canvasCellParams,\n };\n}\n"],"names":["LEGEND_GAP","AXIS_LABEL_GAP","Y_AXIS_TITLE_SPACE","X_AXIS_TITLE_SPACE","TICK_LABEL_WIDTH_SAFETY_FACTOR","MINI_MAP_HEIGHT","getBins","d","rows","maxOf","data","value","reduce","max","datum","datumValue","Math","useHeatmapLayout","t0","$","_c","colorDomain","colors","xLabelOrientation","margin","showLegend","isScrollable","cellWidth","cellHeight","parentWidth","parentHeight","showMiniMap","gap","isRect","selectedCells","deselectedColor","t1","map","_temp","allColNames","t2","_temp2","allRowNames","t3","_temp4","dataMaxValue","t4","minValue","maxValue","numRows","_temp5","maxColNameWidth","_temp6","maxRowNameWidth","_temp7","rotatedColNameSpace","colLabelHeight","SQRT1_2","xTickLeftOverhangMax","t5","join","colorsKey","t6","split","stableColors","legendWidth","getHeatmapLegendWidth","defaultRight","labelBottomSpace","t7","top","left","right","bottom","TICK_FONT_SIZE","marg","miniMapSpace","availableWidth","availableHeight","xMax","length","yMax","viewportWidth","min","viewportHeight","yTickLabelWidth","xTickLabelHeight","binWidth","binHeight","t8","scaleLinear","domain","range","xScale","t9","yScale","t10","row","cellYScale","t11","_temp8","xTickValues","t12","_temp9","yTickValues","resolvedDeselectedColor","DEFAULT_DESELECTED_COLOR","t13","getHeatmapColorScale","colorScale","t14","Set","cellKey","selectedKeys","t15","canvasCellParams","t16","yTitleWidth","xTitleHeight","__0","i_0","i","_","m_0","name_0","m","measureTextWidth","name","TICK_FONT_FAMILY","d_1","d_0","_temp3","r_0","r","count","rowName","columnName"],"mappings":"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"}
@@ -1,84 +1,133 @@
1
- import { c as j } from "react/compiler-runtime";
2
- import { useState as w, useRef as k, useEffect as z } from "react";
3
- import { invertRescaled as q } from "./visualization.es17.js";
4
- import { useStableCallback as B } from "./visualization.es19.js";
5
- import D from "./visualization.es57.js";
6
- const O = (E) => {
7
- const e = j(23), {
8
- enabled: C,
9
- margin: l,
10
- boundedWidth: g,
11
- boundedHeight: x,
12
- xScale: y,
13
- yScale: R,
14
- onCrosshairChange: H
15
- } = E, [S, L] = w(null), F = k(null), n = B(H), s = k(null), o = k(null);
16
- let u;
17
- e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (u = () => {
18
- s.current !== null && (cancelAnimationFrame(s.current), s.current = null);
19
- }, e[0] = u) : u = e[0];
20
- const P = u;
21
- let c;
22
- e[1] !== n ? (c = (t) => {
23
- F.current = t, L(t), n(t);
24
- }, e[1] = n, e[2] = c) : c = e[2];
25
- const i = c;
26
- let a;
27
- e[3] !== i ? (a = (t) => {
28
- if (t === null) {
29
- if (P(), o.current = null, F.current === null)
30
- return;
31
- i(null);
32
- return;
33
- }
34
- o.current = t, s.current === null && (s.current = requestAnimationFrame(() => {
35
- s.current = null;
36
- const b = o.current;
37
- o.current = null, b && i(b);
38
- }));
39
- }, e[3] = i, e[4] = a) : a = e[4];
40
- const r = a;
41
- let f, m;
42
- e[5] !== n ? (f = () => () => {
43
- P(), F.current !== null && n(null);
44
- }, m = [P, n], e[5] = n, e[6] = f, e[7] = m) : (f = e[6], m = e[7]), z(f, m);
45
- let h;
46
- e[8] !== x || e[9] !== g || e[10] !== C || e[11] !== l.left || e[12] !== l.top || e[13] !== r || e[14] !== y || e[15] !== R ? (h = (t, b) => {
47
- if (!C)
48
- return;
49
- const v = D(t.currentTarget, t);
50
- if (!v)
51
- return;
52
- const A = v.x - l.left, M = v.y - l.top;
53
- if (A < 0 || A > g || M < 0 || M > x) {
54
- r(null);
55
- return;
56
- }
57
- const {
58
- translateX: T,
59
- translateY: W,
60
- scaleX: _,
61
- scaleY: $
62
- } = b.transformMatrix;
63
- r({
64
- x: q(y, T, _, A),
65
- y: q(R, W, $, M)
66
- });
67
- }, e[8] = x, e[9] = g, e[10] = C, e[11] = l.left, e[12] = l.top, e[13] = r, e[14] = y, e[15] = R, e[16] = h) : h = e[16];
68
- const X = h;
69
- let p;
70
- e[17] !== r ? (p = () => {
71
- r(null);
72
- }, e[17] = r, e[18] = p) : p = e[18];
73
- const Y = p;
74
- let d;
75
- return e[19] !== S || e[20] !== Y || e[21] !== X ? (d = {
76
- crosshairPosition: S,
77
- handleCrosshairMove: X,
78
- handleCrosshairLeave: Y
79
- }, e[19] = S, e[20] = Y, e[21] = X, e[22] = d) : d = e[22], d;
1
+ import { jsxs as k, Fragment as N, jsx as h } from "react/jsx-runtime";
2
+ import { createRoot as R } from "react-dom/client";
3
+ import { flushSync as _ } from "react-dom";
4
+ import { downloadBlob as I, MAX_CANVAS_EXPORT_DIMENSION as L, MAX_CANVAS_EXPORT_PIXELS as P } from "./visualization.es28.js";
5
+ import { LEGEND_GAP as O } from "./visualization.es87.js";
6
+ import { yAxisTickLabelProps as V, AXIS_TITLE_FONT_SIZE as F, TICK_FONT_FAMILY as U } from "./visualization.es86.js";
7
+ import { drawHeatmapCells as X } from "./visualization.es125.js";
8
+ import B from "./visualization.es46.js";
9
+ import G from "./visualization.es45.js";
10
+ const S = "http://www.w3.org/2000/svg", j = "http://www.w3.org/1999/xlink", y = (e, o, n, t, i) => {
11
+ const r = document.createElementNS(S, "text");
12
+ r.setAttribute("x", String(n)), r.setAttribute("y", String(t)), i && r.setAttribute("transform", `rotate(-90, ${n}, ${t})`), r.setAttribute("text-anchor", "middle"), r.setAttribute("dominant-baseline", "middle"), r.setAttribute("font-size", String(F)), r.setAttribute("font-family", U), r.textContent = o, e.appendChild(r);
13
+ }, w = (e, o, n, t) => {
14
+ const i = document.createElementNS(S, "g");
15
+ i.setAttribute("transform", `translate(${n},${t})`), o.childNodes.forEach((r) => i.appendChild(r.cloneNode(!0))), e.appendChild(i);
80
16
  };
17
+ function M(e, o) {
18
+ const n = window.devicePixelRatio || 2;
19
+ return Math.min(n, L / e, L / o, Math.sqrt(P / (e * o)));
20
+ }
21
+ function C(e, o) {
22
+ const {
23
+ xMax: n,
24
+ yMax: t,
25
+ canvasCellParams: i,
26
+ numRows: r
27
+ } = e.layout;
28
+ if (n <= 0 || t <= 0) return null;
29
+ const a = document.createElement("canvas");
30
+ a.width = Math.max(1, Math.round(n * o)), a.height = Math.max(1, Math.round(t * o));
31
+ const s = a.getContext("2d");
32
+ if (!s) return null;
33
+ s.setTransform(o, 0, 0, o, 0, 0);
34
+ const c = {
35
+ colStart: 0,
36
+ colEnd: Math.max(0, e.data.length - 1),
37
+ rowStart: 0,
38
+ rowEnd: Math.max(0, r - 1)
39
+ };
40
+ return X(s, i, c, null), a;
41
+ }
42
+ function D(e) {
43
+ const {
44
+ xMax: o,
45
+ yMax: n
46
+ } = e.layout;
47
+ if (o <= 0 || n <= 0) return null;
48
+ const t = C(e, M(o, n));
49
+ return t ? t.toDataURL("image/png") : null;
50
+ }
51
+ const H = (e, o, n, t, i, r) => {
52
+ const a = document.createElementNS(S, "image");
53
+ a.setAttribute("x", String(n)), a.setAttribute("y", String(t)), a.setAttribute("width", String(i)), a.setAttribute("height", String(r)), a.setAttribute("preserveAspectRatio", "none"), a.setAttributeNS(j, "href", o), a.setAttribute("href", o), e.appendChild(a);
54
+ };
55
+ function E(e, {
56
+ includeCells: o = !0
57
+ } = {}) {
58
+ const {
59
+ layout: n
60
+ } = e, {
61
+ marg: t,
62
+ xMax: i,
63
+ yMax: r,
64
+ xScale: a,
65
+ yScale: s,
66
+ numRows: c,
67
+ xTickValues: p,
68
+ yTickValues: x,
69
+ yTickLabelWidth: f,
70
+ xTickLabelHeight: g,
71
+ yTitleWidth: b,
72
+ xTitleHeight: A
73
+ } = n, l = document.createElementNS(S, "svg");
74
+ if (l.setAttribute("width", String(t.left + i + t.right)), l.setAttribute("height", String(t.top + r + t.bottom)), o) {
75
+ const d = D(e);
76
+ d && H(l, d, t.left, t.top, i, r);
77
+ }
78
+ let u = null, m = null;
79
+ const T = document.createElement("div"), v = R(T);
80
+ return _(() => {
81
+ v.render(/* @__PURE__ */ k(N, { children: [
82
+ /* @__PURE__ */ h("svg", { width: f, height: r, ref: (d) => {
83
+ u = d;
84
+ }, children: /* @__PURE__ */ h("g", { transform: `translate(${f},0)`, children: /* @__PURE__ */ h(B, { scale: s, numTicks: c, tickValues: x, tickFormat: e.yAxisTickFormat, tickLabelProps: V }) }) }),
85
+ /* @__PURE__ */ h("svg", { width: i, height: g, ref: (d) => {
86
+ m = d;
87
+ }, children: /* @__PURE__ */ h(G, { top: 0, scale: a, numTicks: e.data.length, tickFormat: e.xAxisTickFormat, tickValues: p, tickLabelProps: e.xAxisTickLabelProps }) })
88
+ ] }));
89
+ }), u && w(l, u, b, t.top), m && w(l, m, t.left, t.top + r), v.unmount(), e.showLegend && e.legendSvg && w(l, e.legendSvg, t.left + i + O, t.top), e.yLabel && y(l, e.yLabel, b / 2, t.top + r / 2, !0), e.xLabel && y(l, e.xLabel, t.left + i / 2, t.top + r + g + A / 2, !1), l;
90
+ }
91
+ function tt(e, o) {
92
+ const {
93
+ marg: n,
94
+ xMax: t,
95
+ yMax: i
96
+ } = e.layout;
97
+ if (t <= 0 || i <= 0) return;
98
+ const r = n.left + t + n.right, a = n.top + i + n.bottom, s = M(r, a), c = document.createElement("canvas");
99
+ c.width = Math.max(1, Math.round(r * s)), c.height = Math.max(1, Math.round(a * s));
100
+ const p = c.getContext("2d");
101
+ if (!p) return;
102
+ const x = C(e, s);
103
+ x && p.drawImage(x, n.left * s, n.top * s);
104
+ const f = (m) => {
105
+ m && I(m, o);
106
+ }, g = E(e, {
107
+ includeCells: !1
108
+ });
109
+ if (!g) {
110
+ c.toBlob(f, "image/png", 1);
111
+ return;
112
+ }
113
+ const b = new XMLSerializer().serializeToString(g), A = new Blob([b], {
114
+ type: "image/svg+xml;charset=utf-8"
115
+ }), l = URL.createObjectURL(A), u = new Image();
116
+ u.onload = () => {
117
+ p.drawImage(u, 0, 0, c.width, c.height), URL.revokeObjectURL(l), c.toBlob(f, "image/png", 1);
118
+ }, u.onerror = () => URL.revokeObjectURL(l), u.src = l;
119
+ }
120
+ function et(e, o) {
121
+ const n = E(e);
122
+ if (!n) return;
123
+ const t = document.createElement("div");
124
+ t.style.position = "absolute", t.style.top = "0", t.style.left = "-99999px", t.appendChild(n), document.body.appendChild(t), o(n, () => {
125
+ t.parentNode && document.body.removeChild(t);
126
+ });
127
+ }
81
128
  export {
82
- O as useCrosshair
129
+ E as buildScrollableExportSVG,
130
+ tt as downloadScrollableHeatmapPNG,
131
+ et as withOffscreenExportSVG
83
132
  };
84
133
  //# sourceMappingURL=visualization.es88.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"visualization.es88.js","sources":["../src/components/ScatterPlot/hooks/useCrosshair.ts"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { localPoint } from \"@visx/event\";\nimport { ScaleLinear } from \"@visx/vendor/d3-scale\";\nimport { CrosshairPosition, ZoomType } from \"../types\";\nimport { invertRescaled } from \"../helpers\";\nimport { useStableCallback } from \"../../../hooks\";\n\ntype UseCrosshairProps = {\n enabled: boolean;\n margin: { top: number; left: number };\n boundedWidth: number;\n boundedHeight: number;\n xScale: ScaleLinear<number, number, never>;\n yScale: ScaleLinear<number, number, never>;\n onCrosshairChange?: (position: CrosshairPosition | null) => void;\n};\n\n/**\n * Tracks the pointer as a crosshair position in data coordinates.\n *\n * Data coordinates rather than pixels because the position is also published to consumers, who\n * may mirror it onto another plot or feed it back in as a controlled position. Keeping one\n * currency means every plot showing this crosshair resolves it through its own scales and so\n * agrees with the others, even mid-zoom.\n *\n * The zoom transform arrives as an argument rather than a hook input because it only exists\n * inside the Zoom render prop, below where this hook is called.\n *\n * Moves are coalesced to one update per animation frame. A mouse can report positions faster\n * than the browser paints, and mousemove is a continuous event that React flushes synchronously,\n * so publishing every one of them - into this state and, through onCrosshairChange, into a\n * parent shared by several plots - re-renders the whole group without ever yielding, and React\n * eventually warns about the update depth. Leaving is published immediately: it ends the\n * gesture, and a frame queued behind it would put the crosshair back.\n */\nexport const useCrosshair = ({\n enabled,\n margin,\n boundedWidth,\n boundedHeight,\n xScale,\n yScale,\n onCrosshairChange,\n}: UseCrosshairProps) => {\n const [crosshairPosition, setCrosshairPosition] = useState<CrosshairPosition | null>(null);\n const publishedRef = useRef<CrosshairPosition | null>(null);\n const publishChange = useStableCallback(onCrosshairChange);\n\n const frameRef = useRef<number | null>(null);\n const pendingRef = useRef<CrosshairPosition | null>(null);\n\n const cancelFrame = useCallback(() => {\n if (frameRef.current === null) return;\n cancelAnimationFrame(frameRef.current);\n frameRef.current = null;\n }, []);\n\n const apply = useCallback((position: CrosshairPosition | null) => {\n publishedRef.current = position;\n setCrosshairPosition(position);\n publishChange(position);\n }, [publishChange]);\n\n const publish = useCallback((position: CrosshairPosition | null) => {\n if (position === null) {\n cancelFrame();\n pendingRef.current = null;\n // Leaving the plot area fires on every subsequent move; only announce the first one.\n if (publishedRef.current === null) return;\n apply(null);\n return;\n }\n\n pendingRef.current = position;\n if (frameRef.current !== null) return;\n frameRef.current = requestAnimationFrame(() => {\n frameRef.current = null;\n const pending = pendingRef.current;\n pendingRef.current = null;\n if (pending) apply(pending);\n });\n }, [apply, cancelFrame]);\n\n // On unmount, drop any queued frame and announce the crosshair as gone. Without the second\n // half a parent mirroring this position onto sibling plots - ScatterPlotSync - keeps drawing\n // the crosshair of a plot that no longer exists, until something else happens to move it.\n useEffect(() => () => {\n cancelFrame();\n if (publishedRef.current !== null) publishChange(null);\n }, [cancelFrame, publishChange]);\n\n const handleCrosshairMove = useCallback((event: React.MouseEvent<SVGElement>, zoom: ZoomType) => {\n if (!enabled) return;\n\n const point = localPoint(event.currentTarget, event);\n if (!point) return;\n\n // The listener covers the whole svg, margins included, so anything outside the plot\n // area counts as leaving it.\n const plotX = point.x - margin.left;\n const plotY = point.y - margin.top;\n if (plotX < 0 || plotX > boundedWidth || plotY < 0 || plotY > boundedHeight) {\n publish(null);\n return;\n }\n\n const { translateX, translateY, scaleX, scaleY } = zoom.transformMatrix;\n publish({\n x: invertRescaled(xScale, translateX, scaleX, plotX),\n y: invertRescaled(yScale, translateY, scaleY, plotY),\n });\n }, [boundedHeight, boundedWidth, enabled, margin.left, margin.top, publish, xScale, yScale]);\n\n const handleCrosshairLeave = useCallback(() => {\n publish(null);\n }, [publish]);\n\n return { crosshairPosition, handleCrosshairMove, handleCrosshairLeave };\n};\n"],"names":["useCrosshair","t0","$","_c","enabled","margin","boundedWidth","boundedHeight","xScale","yScale","onCrosshairChange","crosshairPosition","setCrosshairPosition","useState","publishedRef","useRef","publishChange","useStableCallback","frameRef","pendingRef","t1","Symbol","for","current","cancelAnimationFrame","cancelFrame","t2","position","apply","t3","position_0","requestAnimationFrame","pending","publish","t4","t5","useEffect","t6","left","top","event","zoom","point","localPoint","currentTarget","plotX","x","plotY","y","translateX","translateY","scaleX","scaleY","transformMatrix","invertRescaled","handleCrosshairMove","t7","handleCrosshairLeave","t8"],"mappings":"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"}
1
+ {"version":3,"file":"visualization.es88.js","sources":["../src/components/Heatmap/scrollable/heatmapExport.tsx"],"sourcesContent":["import { createRoot } from \"react-dom/client\";\nimport { flushSync } from \"react-dom\";\nimport { AxisLeft, AxisBottom } from \"@visx/axis\";\nimport type { ColumnDatum } from \"../types\";\nimport { MAX_CANVAS_EXPORT_DIMENSION, MAX_CANVAS_EXPORT_PIXELS, downloadBlob } from \"../../../utility\";\nimport type { HeatmapLayout } from \"../heatmapLayout\";\nimport { LEGEND_GAP } from \"../heatmapLayout\";\nimport { AXIS_TITLE_FONT_SIZE, TICK_FONT_FAMILY, getXAxisTickLabelProps, yAxisTickLabelProps } from \"../heatmapAxisProps\";\nimport { drawHeatmapCells } from \"../HeatmapCanvasCells\";\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nconst XLINK_NS = \"http://www.w3.org/1999/xlink\";\n\ninterface ScrollableExportOptions {\n layout: HeatmapLayout;\n data: ColumnDatum[];\n xLabel?: string;\n yLabel?: string;\n showLegend: boolean;\n legendSvg: SVGSVGElement | null;\n xAxisTickFormat: (d: number | { valueOf(): number }) => string;\n yAxisTickFormat: (d: number | { valueOf(): number }) => string;\n xAxisTickLabelProps: ReturnType<typeof getXAxisTickLabelProps>;\n}\n\nconst appendTitle = (exportSvg: SVGSVGElement, text: string, x: number, y: number, rotate: boolean) => {\n const titleEl = document.createElementNS(SVG_NS, \"text\");\n titleEl.setAttribute(\"x\", String(x));\n titleEl.setAttribute(\"y\", String(y));\n if (rotate) titleEl.setAttribute(\"transform\", `rotate(-90, ${x}, ${y})`);\n titleEl.setAttribute(\"text-anchor\", \"middle\");\n titleEl.setAttribute(\"dominant-baseline\", \"middle\");\n titleEl.setAttribute(\"font-size\", String(AXIS_TITLE_FONT_SIZE));\n titleEl.setAttribute(\"font-family\", TICK_FONT_FAMILY);\n titleEl.textContent = text;\n exportSvg.appendChild(titleEl);\n};\n\nconst appendClone = (exportSvg: SVGSVGElement, source: SVGSVGElement, x: number, y: number) => {\n const group = document.createElementNS(SVG_NS, \"g\");\n group.setAttribute(\"transform\", `translate(${x},${y})`);\n source.childNodes.forEach((node) => group.appendChild(node.cloneNode(true)));\n exportSvg.appendChild(group);\n};\n\n// Resolution is capped (never upscaled) so a canvas can't exceed what browsers will reliably\n// allocate - past that, some browsers just hand back a blank canvas instead of erroring.\nfunction computeExportScale(width: number, height: number): number {\n const desiredScale = window.devicePixelRatio || 2;\n return Math.min(\n desiredScale,\n MAX_CANVAS_EXPORT_DIMENSION / width,\n MAX_CANVAS_EXPORT_DIMENSION / height,\n Math.sqrt(MAX_CANVAS_EXPORT_PIXELS / (width * height))\n );\n}\n\n// Rasterizes the full (unwindowed) cell grid onto a canvas using the same paint routine the\n// live scrollable grid and minimap use for their own canvases (drawHeatmapCells). This is the\n// key difference from every other layer here: a large grid (e.g. 1000x1000 = 1M cells) rendered\n// as individual SVG shapes via React would mean 1M DOM nodes built synchronously and then\n// serialized into a multi-hundred-MB XML string - that's what used to hang/crash the tab.\n// Painting into a canvas instead collapses that to a bounded number of fillRect calls, which is\n// exactly how the minimap already handles full-dataset draws.\nfunction rasterizeCells(o: ScrollableExportOptions, scale: number): HTMLCanvasElement | null {\n const { xMax, yMax, canvasCellParams, numRows } = o.layout;\n if (xMax <= 0 || yMax <= 0) return null;\n\n const canvas = document.createElement(\"canvas\");\n canvas.width = Math.max(1, Math.round(xMax * scale));\n canvas.height = Math.max(1, Math.round(yMax * scale));\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return null;\n\n ctx.setTransform(scale, 0, 0, scale, 0, 0);\n const range = { colStart: 0, colEnd: Math.max(0, o.data.length - 1), rowStart: 0, rowEnd: Math.max(0, numRows - 1) };\n drawHeatmapCells(ctx, canvasCellParams, range, null);\n return canvas;\n}\n\n// Only used to embed the cell layer in an actual downloadable .svg file (see\n// buildScrollableExportSVG) - the PNG path (downloadScrollableHeatmapPNG below) draws the\n// rasterized canvas directly onto the output canvas instead, so it never needs this as a string.\nfunction renderCellsToDataURL(o: ScrollableExportOptions): string | null {\n const { xMax, yMax } = o.layout;\n if (xMax <= 0 || yMax <= 0) return null;\n const canvas = rasterizeCells(o, computeExportScale(xMax, yMax));\n return canvas ? canvas.toDataURL(\"image/png\") : null;\n}\n\nconst appendCellsImage = (exportSvg: SVGSVGElement, dataUrl: string, x: number, y: number, width: number, height: number) => {\n const image = document.createElementNS(SVG_NS, \"image\");\n image.setAttribute(\"x\", String(x));\n image.setAttribute(\"y\", String(y));\n image.setAttribute(\"width\", String(width));\n image.setAttribute(\"height\", String(height));\n image.setAttribute(\"preserveAspectRatio\", \"none\");\n // Both attributes are set for compatibility: xlink:href is what older SVG renderers (and some\n // image editors) still expect, href is the modern SVG2/browser-native attribute.\n image.setAttributeNS(XLINK_NS, \"href\", dataUrl);\n image.setAttribute(\"href\", dataUrl);\n exportSvg.appendChild(image);\n};\n\n// Builds a standalone, off-DOM <svg> at full content size for export. The on-screen row/column\n// axis panes (SVGs windowed to the visible tick range) only ever hold a slice of the full grid -\n// they can't just be cloned for export without capturing an incomplete/mispositioned snapshot -\n// so both are rendered fresh here in one detached tree, synchronously, full grid, no windowing,\n// purely to snapshot into the export SVG below. The cell layer is handled separately (see\n// renderCellsToDataURL above) since it doesn't have this problem's flip side: rendering it fresh\n// as SVG shapes is exactly what's too expensive at full-grid scale.\nexport function buildScrollableExportSVG(o: ScrollableExportOptions, { includeCells = true }: { includeCells?: boolean } = {}): SVGSVGElement | null {\n const { layout } = o;\n const {\n marg, xMax, yMax, xScale, yScale, numRows, xTickValues, yTickValues, yTickLabelWidth, xTickLabelHeight,\n yTitleWidth, xTitleHeight,\n } = layout;\n\n const exportSvg = document.createElementNS(SVG_NS, \"svg\") as SVGSVGElement;\n exportSvg.setAttribute(\"width\", String(marg.left + xMax + marg.right));\n exportSvg.setAttribute(\"height\", String(marg.top + yMax + marg.bottom));\n\n if (includeCells) {\n const cellsDataUrl = renderCellsToDataURL(o);\n if (cellsDataUrl) appendCellsImage(exportSvg, cellsDataUrl, marg.left, marg.top, xMax, yMax);\n }\n\n let fullRowAxis: SVGSVGElement | null = null;\n let fullColAxis: SVGSVGElement | null = null;\n const exportContainer = document.createElement(\"div\");\n const exportRoot = createRoot(exportContainer);\n flushSync(() => {\n exportRoot.render(\n <>\n <svg width={yTickLabelWidth} height={yMax} ref={(el) => { fullRowAxis = el; }}>\n <g transform={`translate(${yTickLabelWidth},0)`}>\n <AxisLeft\n scale={yScale}\n numTicks={numRows}\n tickValues={yTickValues}\n tickFormat={o.yAxisTickFormat}\n tickLabelProps={yAxisTickLabelProps}\n />\n </g>\n </svg>\n <svg width={xMax} height={xTickLabelHeight} ref={(el) => { fullColAxis = el; }}>\n <AxisBottom\n top={0}\n scale={xScale}\n numTicks={o.data.length}\n tickFormat={o.xAxisTickFormat}\n tickValues={xTickValues}\n tickLabelProps={o.xAxisTickLabelProps}\n />\n </svg>\n </>\n );\n });\n if (fullRowAxis) appendClone(exportSvg, fullRowAxis, yTitleWidth, marg.top);\n if (fullColAxis) appendClone(exportSvg, fullColAxis, marg.left, marg.top + yMax);\n exportRoot.unmount();\n\n if (o.showLegend && o.legendSvg) {\n appendClone(exportSvg, o.legendSvg, marg.left + xMax + LEGEND_GAP, marg.top);\n }\n\n // The axis titles live in their own always-visible panes on screen (so scrolling can't\n // carry them out of view) rather than as visx's built-in centered-on-the-full-axis label,\n // so they're added here directly instead of being cloned from a live pane.\n if (o.yLabel) appendTitle(exportSvg, o.yLabel, yTitleWidth / 2, marg.top + yMax / 2, true);\n if (o.xLabel) appendTitle(exportSvg, o.xLabel, marg.left + xMax / 2, marg.top + yMax + xTickLabelHeight + xTitleHeight / 2, false);\n\n return exportSvg;\n}\n\n// Renders a scrollable heatmap straight to a downloadable PNG in a single raster pass: the cell\n// grid is drawn once (rasterizeCells) directly onto the output canvas, and only the much smaller\n// axes/legend/titles are round-tripped through SVG-to-image to rasterize on top of it. This\n// deliberately avoids buildScrollableExportSVG's normal cells-as-embedded-image path (used for\n// the actual .svg download, where a raster layer has to be embedded as a data URL to produce a\n// valid standalone file) - base64-encoding a full-resolution cell canvas into an XML string,\n// then decoding that string back into an image to redraw onto a second full-size canvas, doubles\n// both the memory footprint and the encode/decode work for no benefit here, and was enough to\n// crash the tab on a large export. No DOM attachment is needed either: unlike downloadSVGAsPNG,\n// nothing here reads clientWidth/clientHeight - the output size comes straight from the layout.\nexport function downloadScrollableHeatmapPNG(o: ScrollableExportOptions, fileName: string): void {\n const { marg, xMax, yMax } = o.layout;\n if (xMax <= 0 || yMax <= 0) return;\n\n const fullWidth = marg.left + xMax + marg.right;\n const fullHeight = marg.top + yMax + marg.bottom;\n const scale = computeExportScale(fullWidth, fullHeight);\n\n const canvas = document.createElement(\"canvas\");\n canvas.width = Math.max(1, Math.round(fullWidth * scale));\n canvas.height = Math.max(1, Math.round(fullHeight * scale));\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return;\n\n const cellsCanvas = rasterizeCells(o, scale);\n if (cellsCanvas) ctx.drawImage(cellsCanvas, marg.left * scale, marg.top * scale);\n\n const finish = (blob: Blob | null) => {\n if (blob) downloadBlob(blob, fileName);\n };\n\n const axesSvg = buildScrollableExportSVG(o, { includeCells: false });\n if (!axesSvg) {\n canvas.toBlob(finish, \"image/png\", 1);\n return;\n }\n\n const svgString = new XMLSerializer().serializeToString(axesSvg);\n const svgBlob = new Blob([svgString], { type: \"image/svg+xml;charset=utf-8\" });\n const url = URL.createObjectURL(svgBlob);\n const img = new Image();\n img.onload = () => {\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n URL.revokeObjectURL(url);\n canvas.toBlob(finish, \"image/png\", 1);\n };\n img.onerror = () => URL.revokeObjectURL(url);\n img.src = url;\n}\n\n// downloadSVGAsPNG reads the element's layout box asynchronously (after its image loads), so\n// an off-DOM export node has to stay attached (off-screen) until onComplete fires. The\n// off-screen positioning goes on a wrapper div, never on the <svg> itself - that svg is what\n// gets serialized and downloaded, so any inline style set directly on it (e.g. `left:\n// -99999px`) would be baked into the exported file, rendering everything pushed off-canvas\n// and out of view - the exact \"blank image\" bug this replaced.\nexport function withOffscreenExportSVG(o: ScrollableExportOptions, run: (svg: SVGSVGElement, onDone: () => void) => void): void {\n const svg = buildScrollableExportSVG(o);\n if (!svg) return;\n const wrapper = document.createElement(\"div\");\n wrapper.style.position = \"absolute\";\n wrapper.style.top = \"0\";\n wrapper.style.left = \"-99999px\";\n wrapper.appendChild(svg);\n document.body.appendChild(wrapper);\n run(svg, () => {\n if (wrapper.parentNode) document.body.removeChild(wrapper);\n });\n}\n"],"names":["SVG_NS","XLINK_NS","appendTitle","exportSvg","text","x","y","rotate","titleEl","document","createElementNS","setAttribute","String","AXIS_TITLE_FONT_SIZE","TICK_FONT_FAMILY","textContent","appendChild","appendClone","source","group","childNodes","forEach","node","cloneNode","computeExportScale","width","height","desiredScale","window","devicePixelRatio","Math","min","MAX_CANVAS_EXPORT_DIMENSION","sqrt","MAX_CANVAS_EXPORT_PIXELS","rasterizeCells","o","scale","xMax","yMax","canvasCellParams","numRows","layout","canvas","createElement","max","round","ctx","getContext","setTransform","range","colStart","colEnd","data","length","rowStart","rowEnd","drawHeatmapCells","renderCellsToDataURL","toDataURL","appendCellsImage","dataUrl","image","setAttributeNS","buildScrollableExportSVG","includeCells","marg","xScale","yScale","xTickValues","yTickValues","yTickLabelWidth","xTickLabelHeight","yTitleWidth","xTitleHeight","left","right","top","bottom","cellsDataUrl","fullRowAxis","fullColAxis","exportContainer","exportRoot","createRoot","flushSync","render","jsxs","Fragment","jsx","el","AxisLeft","yAxisTickFormat","yAxisTickLabelProps","AxisBottom","xAxisTickFormat","xAxisTickLabelProps","unmount","showLegend","legendSvg","LEGEND_GAP","yLabel","xLabel","downloadScrollableHeatmapPNG","fileName","fullWidth","fullHeight","cellsCanvas","drawImage","finish","blob","downloadBlob","axesSvg","toBlob","svgString","XMLSerializer","serializeToString","svgBlob","Blob","type","url","URL","createObjectURL","img","Image","onload","revokeObjectURL","onerror","src","withOffscreenExportSVG","run","svg","wrapper","style","position","body","parentNode","removeChild"],"mappings":"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"}
@@ -1,67 +1,178 @@
1
- import { useState as b, useCallback as S, useRef as A, useMemo as C, useEffect as D } from "react";
2
- import { debounce as O } from "./visualization.es235.js";
3
- const k = [], g = {
4
- width: 0,
5
- height: 0,
6
- top: 0,
7
- left: 0
8
- };
9
- function B() {
10
- let {
11
- initialSize: w = g,
12
- debounceTime: c = 300,
13
- ignoreDimensions: i = k,
14
- enableDebounceLeadingCall: l = !0,
15
- resizeObserverPolyfill: u,
16
- externalRef: n
17
- } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
18
- const [a, y] = b(null), z = S((e) => {
19
- y(e), typeof n == "function" ? n(e) : n != null && (n.current = e);
20
- }, [n]), f = A(0), [p, v] = b({
21
- ...g,
22
- ...w
23
- }), s = C(() => {
24
- const e = Array.isArray(i) ? i : [i];
25
- return O((r) => {
26
- v((o) => Object.keys(o).filter((t) => o[t] !== r[t]).every((t) => e.includes(t)) ? o : r);
27
- }, c, {
28
- leading: l
29
- });
30
- }, [c, l, i]);
31
- return D(() => {
32
- if (!a) {
33
- s.cancel();
34
- return;
35
- }
36
- const e = u || window.ResizeObserver, r = new e((o) => {
37
- o.forEach((d) => {
38
- const {
39
- left: m,
40
- top: h,
41
- width: t,
42
- height: R
43
- } = d?.contentRect ?? {};
44
- f.current = window.requestAnimationFrame(() => {
45
- s({
46
- width: t,
47
- height: R,
48
- top: h,
49
- left: m
50
- });
51
- });
52
- });
1
+ import { jsxs as n, Fragment as ri, jsx as i } from "react/jsx-runtime";
2
+ import { useId as oi, useCallback as ai, useState as ni, useRef as si } from "react";
3
+ import di from "./visualization.es123.js";
4
+ import ci from "./visualization.es126.js";
5
+ import hi from "./visualization.es127.js";
6
+ import { TICK_FONT_FAMILY as C, AXIS_TITLE_FONT_SIZE as M, yAxisTickLabelProps as mi } from "./visualization.es86.js";
7
+ import { MINI_MAP_HEIGHT as pi, LEGEND_GAP as b } from "./visualization.es87.js";
8
+ import { useHeatmapCanvasGrid as fi } from "./visualization.es128.js";
9
+ import { useScrollToSelection as gi } from "./visualization.es129.js";
10
+ import xi from "./visualization.es46.js";
11
+ import vi from "./visualization.es12.js";
12
+ import ui from "./visualization.es45.js";
13
+ const R = 10, Si = ({
14
+ legendSvgRef: $,
15
+ layout: I,
16
+ data: L,
17
+ showMiniMap: p,
18
+ showLegend: f,
19
+ xLabel: P,
20
+ yLabel: S,
21
+ tooltipBody: g,
22
+ onClick: H,
23
+ selectedCells: _,
24
+ scrollToSelection: A,
25
+ xAxisTickFormat: E,
26
+ yAxisTickFormat: N,
27
+ xAxisTickLabelProps: V
28
+ }) => {
29
+ const {
30
+ numRows: F,
31
+ marg: G,
32
+ xMax: d,
33
+ yMax: c,
34
+ viewportWidth: e,
35
+ viewportHeight: t,
36
+ yTitleWidth: l,
37
+ yTickLabelWidth: o,
38
+ xTitleHeight: s,
39
+ xTickLabelHeight: a,
40
+ binWidth: O,
41
+ xTickLeftOverhangMax: x,
42
+ legendWidth: h,
43
+ xScale: W,
44
+ yScale: j,
45
+ xTickValues: X,
46
+ yTickValues: B,
47
+ stableColors: z,
48
+ minValue: D,
49
+ maxValue: Y,
50
+ canvasCellParams: m
51
+ } = I, {
52
+ canvasRef: K,
53
+ mainPaneRef: v,
54
+ canvasTooltipRef: Z,
55
+ setMainPaneNode: q,
56
+ handleGridScroll: J,
57
+ axisScrollPos: r,
58
+ visibleXTickValues: Q,
59
+ visibleYTickValues: U,
60
+ canvasHandlers: ii
61
+ } = fi({
62
+ canvasCellParams: m,
63
+ viewportWidth: e,
64
+ viewportHeight: t,
65
+ xTickValues: X,
66
+ yTickValues: B,
67
+ isScrollable: !0,
68
+ onClick: H
69
+ });
70
+ gi({
71
+ mainPaneRef: v,
72
+ selectedCells: _,
73
+ scrollToSelection: A,
74
+ isScrollable: !0,
75
+ binWidth: O,
76
+ viewportWidth: e
77
+ });
78
+ const u = oi(), w = Math.max(0, x - r.left), y = ai((ti, li) => {
79
+ v.current?.scrollTo({
80
+ left: ti,
81
+ top: li
53
82
  });
54
- return r.observe(a), () => {
55
- window.cancelAnimationFrame(f.current), r.disconnect(), s.cancel();
56
- };
57
- }, [a, s, u]), {
58
- parentRef: z,
59
- node: a,
60
- resize: s,
61
- ...p
62
- };
63
- }
83
+ }, []), [ei, T] = ni(!1), k = si(null);
84
+ return /* @__PURE__ */ n(ri, { children: [
85
+ /* @__PURE__ */ n("div", { style: {
86
+ display: "flex",
87
+ flexDirection: "column"
88
+ }, children: [
89
+ p && /* @__PURE__ */ i("div", { ref: k, style: {
90
+ marginLeft: l + o,
91
+ position: "relative",
92
+ width: e
93
+ }, children: /* @__PURE__ */ i(ci, { canvasCellParams: m, xMax: d, yMax: c, viewportWidth: e, viewportHeight: t, scrollLeft: r.left, scrollTop: r.top, width: e, height: pi, onNavigate: y, onCanvasClick: () => T(!0) }) }),
94
+ /* @__PURE__ */ n("div", { style: {
95
+ display: "grid",
96
+ gridTemplateColumns: f ? `${l}px ${o}px ${e}px ${b + h}px` : `${l}px ${o}px ${e}px`,
97
+ gridTemplateRows: `${G.top}px ${t}px ${a}px ${s}px`
98
+ }, children: [
99
+ /* @__PURE__ */ i("div", { style: {
100
+ gridColumn: 1,
101
+ gridRow: 2,
102
+ width: l,
103
+ height: t,
104
+ display: "flex",
105
+ alignItems: "center",
106
+ justifyContent: "center"
107
+ }, children: /* @__PURE__ */ i("svg", { width: l, height: t, children: /* @__PURE__ */ i("text", { x: l / 2, y: t / 2, transform: `rotate(-90, ${l / 2}, ${t / 2})`, textAnchor: "middle", dominantBaseline: "middle", fontSize: M, fontFamily: C, children: S ?? "" }) }) }),
108
+ /* @__PURE__ */ i("div", { style: {
109
+ gridColumn: 2,
110
+ gridRow: 2,
111
+ width: o,
112
+ height: t,
113
+ overflow: "hidden"
114
+ }, children: /* @__PURE__ */ i("svg", { width: o, height: t, children: /* @__PURE__ */ i("g", { transform: `translate(${o},${-r.top})`, children: /* @__PURE__ */ i(xi, { scale: j, numTicks: F, tickValues: U, tickFormat: N, tickLabelProps: mi }) }) }) }),
115
+ /* @__PURE__ */ i("div", { ref: q, onScroll: J, style: {
116
+ gridColumn: 3,
117
+ gridRow: 2,
118
+ width: e,
119
+ height: t,
120
+ overflow: "auto",
121
+ overscrollBehavior: "contain",
122
+ position: "relative"
123
+ }, children: /* @__PURE__ */ i("div", { style: {
124
+ width: d,
125
+ height: c,
126
+ position: "relative"
127
+ }, children: /* @__PURE__ */ i("canvas", { ref: K, width: e * (window.devicePixelRatio || 1), height: t * (window.devicePixelRatio || 1), style: {
128
+ width: e,
129
+ height: t,
130
+ position: "sticky",
131
+ top: 0,
132
+ left: 0,
133
+ display: "block",
134
+ cursor: "default"
135
+ }, ...ii }) }) }),
136
+ g && /* @__PURE__ */ i(vi, { ref: Z, children: g }),
137
+ /* @__PURE__ */ i("div", { style: {
138
+ gridColumn: 3,
139
+ gridRow: 3,
140
+ width: e,
141
+ height: a,
142
+ overflow: "visible"
143
+ }, children: /* @__PURE__ */ n("svg", { width: e, height: a, style: {
144
+ overflow: "visible"
145
+ }, children: [
146
+ /* @__PURE__ */ i("defs", { children: /* @__PURE__ */ n("clipPath", { id: u, children: [
147
+ /* @__PURE__ */ i("rect", { x: 0, y: 0, width: e, height: a }),
148
+ x > 0 && /* @__PURE__ */ i("rect", { x: -w, y: R, width: w, height: Math.max(0, a - R) })
149
+ ] }) }),
150
+ /* @__PURE__ */ i("g", { clipPath: `url(#${u})`, children: /* @__PURE__ */ i("g", { transform: `translate(${-r.left},0)`, children: /* @__PURE__ */ i(ui, { top: 0, scale: W, numTicks: L.length, tickFormat: E, tickValues: Q, tickLabelProps: V }) }) })
151
+ ] }) }),
152
+ /* @__PURE__ */ i("div", { style: {
153
+ gridColumn: 3,
154
+ gridRow: 4,
155
+ width: e,
156
+ height: s,
157
+ display: "flex",
158
+ alignItems: "center",
159
+ justifyContent: "center"
160
+ }, children: /* @__PURE__ */ i("svg", { width: e, height: s, children: /* @__PURE__ */ i("text", { x: e / 2, y: s / 2, textAnchor: "middle", dominantBaseline: "middle", fontSize: M, fontFamily: C, children: P ?? "" }) }) }),
161
+ f && /* @__PURE__ */ i("div", { style: {
162
+ gridColumn: 4,
163
+ gridRow: 2,
164
+ width: h,
165
+ marginLeft: b,
166
+ height: t
167
+ }, children: /* @__PURE__ */ i("svg", { width: h, height: t, ref: $, style: {
168
+ overflow: "visible"
169
+ }, children: /* @__PURE__ */ i(di, { colors: z, minValue: D, maxValue: Y, height: t }) }) })
170
+ ] })
171
+ ] }),
172
+ p && ei && /* @__PURE__ */ i(hi, { onClose: () => T(!1), containerRef: k, canvasCellParams: m, xMax: d, yMax: c, viewportWidth: e, viewportHeight: t, scrollLeft: r.left, scrollTop: r.top, onNavigate: y })
173
+ ] });
174
+ };
64
175
  export {
65
- B as default
176
+ Si as default
66
177
  };
67
178
  //# sourceMappingURL=visualization.es89.js.map