react-cheminfo 0.9.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1285) hide show
  1. package/README.md +251 -20
  2. package/lib/chart/core/chartAxisScale.d.ts +88 -0
  3. package/lib/chart/core/chartAxisScale.d.ts.map +1 -0
  4. package/lib/chart/core/chartAxisScale.js +205 -0
  5. package/lib/chart/core/chartAxisScale.js.map +1 -0
  6. package/lib/chart/core/chartBand.d.ts +47 -0
  7. package/lib/chart/core/chartBand.d.ts.map +1 -0
  8. package/lib/chart/core/chartBand.js +55 -0
  9. package/lib/chart/core/chartBand.js.map +1 -0
  10. package/lib/chart/core/chartBins.d.ts +32 -0
  11. package/lib/chart/core/chartBins.d.ts.map +1 -0
  12. package/lib/chart/core/chartBins.js +64 -0
  13. package/lib/chart/core/chartBins.js.map +1 -0
  14. package/lib/chart/core/chartExtent.d.ts +105 -0
  15. package/lib/chart/core/chartExtent.d.ts.map +1 -0
  16. package/lib/chart/core/chartExtent.js +134 -0
  17. package/lib/chart/core/chartExtent.js.map +1 -0
  18. package/lib/chart/core/chartLabels.d.ts +49 -0
  19. package/lib/chart/core/chartLabels.d.ts.map +1 -0
  20. package/lib/chart/core/chartLabels.js +44 -0
  21. package/lib/chart/core/chartLabels.js.map +1 -0
  22. package/lib/chart/core/chartPalette.d.ts +33 -0
  23. package/lib/chart/core/chartPalette.d.ts.map +1 -0
  24. package/lib/chart/core/chartPalette.js +51 -0
  25. package/lib/chart/core/chartPalette.js.map +1 -0
  26. package/lib/chart/core/chartScale.d.ts +49 -0
  27. package/lib/chart/core/chartScale.d.ts.map +1 -0
  28. package/lib/chart/core/chartScale.js +53 -0
  29. package/lib/chart/core/chartScale.js.map +1 -0
  30. package/lib/chart/core/chartViewport.d.ts +88 -0
  31. package/lib/chart/core/chartViewport.d.ts.map +1 -0
  32. package/lib/chart/core/chartViewport.js +164 -0
  33. package/lib/chart/core/chartViewport.js.map +1 -0
  34. package/lib/chart/core/index.d.ts +29 -0
  35. package/lib/chart/core/index.d.ts.map +1 -0
  36. package/lib/chart/core/index.js +20 -0
  37. package/lib/chart/core/index.js.map +1 -0
  38. package/lib/chart/core/matrix.d.ts +56 -0
  39. package/lib/chart/core/matrix.d.ts.map +1 -0
  40. package/lib/chart/core/matrix.js +75 -0
  41. package/lib/chart/core/matrix.js.map +1 -0
  42. package/lib/chart/ui/ChartAxis.d.ts +50 -0
  43. package/lib/chart/ui/ChartAxis.d.ts.map +1 -0
  44. package/lib/chart/ui/ChartAxis.js +89 -0
  45. package/lib/chart/ui/ChartAxis.js.map +1 -0
  46. package/lib/chart/ui/ChartFrame.d.ts +136 -0
  47. package/lib/chart/ui/ChartFrame.d.ts.map +1 -0
  48. package/lib/chart/ui/ChartFrame.js +61 -0
  49. package/lib/chart/ui/ChartFrame.js.map +1 -0
  50. package/lib/chart/ui/ChartSeriesMarks.d.ts +44 -0
  51. package/lib/chart/ui/ChartSeriesMarks.d.ts.map +1 -0
  52. package/lib/chart/ui/ChartSeriesMarks.js +48 -0
  53. package/lib/chart/ui/ChartSeriesMarks.js.map +1 -0
  54. package/lib/chart/ui/ChartTrackingLayer.d.ts +54 -0
  55. package/lib/chart/ui/ChartTrackingLayer.d.ts.map +1 -0
  56. package/lib/chart/ui/ChartTrackingLayer.js +98 -0
  57. package/lib/chart/ui/ChartTrackingLayer.js.map +1 -0
  58. package/lib/chart/ui/TrackedLineChart.d.ts +136 -0
  59. package/lib/chart/ui/TrackedLineChart.d.ts.map +1 -0
  60. package/lib/chart/ui/TrackedLineChart.js +90 -0
  61. package/lib/chart/ui/TrackedLineChart.js.map +1 -0
  62. package/lib/chart/ui/TrackedStickChart.d.ts +88 -0
  63. package/lib/chart/ui/TrackedStickChart.d.ts.map +1 -0
  64. package/lib/chart/ui/TrackedStickChart.js +58 -0
  65. package/lib/chart/ui/TrackedStickChart.js.map +1 -0
  66. package/lib/chart/ui/chartStyles.d.ts +141 -0
  67. package/lib/chart/ui/chartStyles.d.ts.map +1 -0
  68. package/lib/chart/ui/chartStyles.js +154 -0
  69. package/lib/chart/ui/chartStyles.js.map +1 -0
  70. package/lib/chart/ui/index.d.ts +20 -0
  71. package/lib/chart/ui/index.d.ts.map +1 -0
  72. package/lib/chart/ui/index.js +13 -0
  73. package/lib/chart/ui/index.js.map +1 -0
  74. package/lib/chart/ui/stickChartModel.d.ts +99 -0
  75. package/lib/chart/ui/stickChartModel.d.ts.map +1 -0
  76. package/lib/chart/ui/stickChartModel.js +140 -0
  77. package/lib/chart/ui/stickChartModel.js.map +1 -0
  78. package/lib/chart/ui/useWheelZoom.d.ts +69 -0
  79. package/lib/chart/ui/useWheelZoom.d.ts.map +1 -0
  80. package/lib/chart/ui/useWheelZoom.js +122 -0
  81. package/lib/chart/ui/useWheelZoom.js.map +1 -0
  82. package/lib/chrome/ui/NavLink.d.ts.map +1 -1
  83. package/lib/chrome/ui/NavLink.js +4 -3
  84. package/lib/chrome/ui/NavLink.js.map +1 -1
  85. package/lib/chrome/ui/SiteFooter.d.ts +8 -0
  86. package/lib/chrome/ui/SiteFooter.d.ts.map +1 -1
  87. package/lib/chrome/ui/SiteFooter.js +7 -2
  88. package/lib/chrome/ui/SiteFooter.js.map +1 -1
  89. package/lib/chrome/ui/SiteHeader.d.ts +11 -0
  90. package/lib/chrome/ui/SiteHeader.d.ts.map +1 -1
  91. package/lib/chrome/ui/SiteHeader.js +7 -2
  92. package/lib/chrome/ui/SiteHeader.js.map +1 -1
  93. package/lib/chrome/ui/navItem.d.ts +12 -0
  94. package/lib/chrome/ui/navItem.d.ts.map +1 -1
  95. package/lib/chrome/ui/navItem.js.map +1 -1
  96. package/lib/color/core/gradient.d.ts +15 -0
  97. package/lib/color/core/gradient.d.ts.map +1 -0
  98. package/lib/color/core/gradient.js +28 -0
  99. package/lib/color/core/gradient.js.map +1 -0
  100. package/lib/color/core/hsv.d.ts +38 -0
  101. package/lib/color/core/hsv.d.ts.map +1 -0
  102. package/lib/color/core/hsv.js +92 -0
  103. package/lib/color/core/hsv.js.map +1 -0
  104. package/lib/color/core/index.d.ts +12 -1
  105. package/lib/color/core/index.d.ts.map +1 -1
  106. package/lib/color/core/index.js +6 -0
  107. package/lib/color/core/index.js.map +1 -1
  108. package/lib/color/core/interpolate.d.ts +67 -0
  109. package/lib/color/core/interpolate.d.ts.map +1 -0
  110. package/lib/color/core/interpolate.js +121 -0
  111. package/lib/color/core/interpolate.js.map +1 -0
  112. package/lib/color/core/scale.d.ts +11 -15
  113. package/lib/color/core/scale.d.ts.map +1 -1
  114. package/lib/color/core/scale.js +14 -41
  115. package/lib/color/core/scale.js.map +1 -1
  116. package/lib/color/core/scaleData.d.ts +19 -0
  117. package/lib/color/core/scaleData.d.ts.map +1 -0
  118. package/lib/color/core/scaleData.js +120 -0
  119. package/lib/color/core/scaleData.js.map +1 -0
  120. package/lib/color/core/scaleText.d.ts +43 -0
  121. package/lib/color/core/scaleText.d.ts.map +1 -0
  122. package/lib/color/core/scaleText.js +109 -0
  123. package/lib/color/core/scaleText.js.map +1 -0
  124. package/lib/color/core/scales.d.ts +42 -0
  125. package/lib/color/core/scales.d.ts.map +1 -0
  126. package/lib/color/core/scales.js +110 -0
  127. package/lib/color/core/scales.js.map +1 -0
  128. package/lib/color/ui/ColorScaleBar.d.ts +39 -0
  129. package/lib/color/ui/ColorScaleBar.d.ts.map +1 -0
  130. package/lib/color/ui/ColorScaleBar.js +27 -0
  131. package/lib/color/ui/ColorScaleBar.js.map +1 -0
  132. package/lib/color/ui/ColorScaleEditor.d.ts +21 -0
  133. package/lib/color/ui/ColorScaleEditor.d.ts.map +1 -0
  134. package/lib/color/ui/ColorScaleEditor.js +141 -0
  135. package/lib/color/ui/ColorScaleEditor.js.map +1 -0
  136. package/lib/color/ui/ColorScaleSelect.d.ts +38 -0
  137. package/lib/color/ui/ColorScaleSelect.d.ts.map +1 -0
  138. package/lib/color/ui/ColorScaleSelect.js +109 -0
  139. package/lib/color/ui/ColorScaleSelect.js.map +1 -0
  140. package/lib/color/ui/index.d.ts +6 -0
  141. package/lib/color/ui/index.d.ts.map +1 -1
  142. package/lib/color/ui/index.js +3 -0
  143. package/lib/color/ui/index.js.map +1 -1
  144. package/lib/core.d.ts +6 -0
  145. package/lib/core.d.ts.map +1 -1
  146. package/lib/core.js +6 -0
  147. package/lib/core.js.map +1 -1
  148. package/lib/credits/core/credits.d.ts +17 -0
  149. package/lib/credits/core/credits.d.ts.map +1 -1
  150. package/lib/credits/core/credits.js +20 -0
  151. package/lib/credits/core/credits.js.map +1 -1
  152. package/lib/download/core/cssTokens.d.ts +33 -0
  153. package/lib/download/core/cssTokens.d.ts.map +1 -0
  154. package/lib/download/core/cssTokens.js +82 -0
  155. package/lib/download/core/cssTokens.js.map +1 -0
  156. package/lib/download/core/downloadFigure.d.ts +39 -0
  157. package/lib/download/core/downloadFigure.d.ts.map +1 -0
  158. package/lib/download/core/downloadFigure.js +35 -0
  159. package/lib/download/core/downloadFigure.js.map +1 -0
  160. package/lib/download/core/figureLegend.d.ts +90 -0
  161. package/lib/download/core/figureLegend.d.ts.map +1 -0
  162. package/lib/download/core/figureLegend.js +77 -0
  163. package/lib/download/core/figureLegend.js.map +1 -0
  164. package/lib/download/core/figurePng.d.ts +21 -0
  165. package/lib/download/core/figurePng.d.ts.map +1 -0
  166. package/lib/download/core/figurePng.js +76 -0
  167. package/lib/download/core/figurePng.js.map +1 -0
  168. package/lib/download/core/figureScale.d.ts +61 -0
  169. package/lib/download/core/figureScale.d.ts.map +1 -0
  170. package/lib/download/core/figureScale.js +67 -0
  171. package/lib/download/core/figureScale.js.map +1 -0
  172. package/lib/download/core/figureSvg.d.ts +37 -0
  173. package/lib/download/core/figureSvg.d.ts.map +1 -0
  174. package/lib/download/core/figureSvg.js +164 -0
  175. package/lib/download/core/figureSvg.js.map +1 -0
  176. package/lib/download/core/figureSvgDocument.d.ts +62 -0
  177. package/lib/download/core/figureSvgDocument.d.ts.map +1 -0
  178. package/lib/download/core/figureSvgDocument.js +82 -0
  179. package/lib/download/core/figureSvgDocument.js.map +1 -0
  180. package/lib/download/core/figureTarget.d.ts +67 -0
  181. package/lib/download/core/figureTarget.d.ts.map +1 -0
  182. package/lib/download/core/figureTarget.js +138 -0
  183. package/lib/download/core/figureTarget.js.map +1 -0
  184. package/lib/download/core/index.d.ts +14 -0
  185. package/lib/download/core/index.d.ts.map +1 -1
  186. package/lib/download/core/index.js +8 -0
  187. package/lib/download/core/index.js.map +1 -1
  188. package/lib/download/ui/FigureDownload.d.ts +81 -0
  189. package/lib/download/ui/FigureDownload.d.ts.map +1 -0
  190. package/lib/download/ui/FigureDownload.js +65 -0
  191. package/lib/download/ui/FigureDownload.js.map +1 -0
  192. package/lib/download/ui/FigureDownloadPanel.d.ts +45 -0
  193. package/lib/download/ui/FigureDownloadPanel.d.ts.map +1 -0
  194. package/lib/download/ui/FigureDownloadPanel.js +86 -0
  195. package/lib/download/ui/FigureDownloadPanel.js.map +1 -0
  196. package/lib/download/ui/index.d.ts +13 -0
  197. package/lib/download/ui/index.d.ts.map +1 -0
  198. package/lib/download/ui/index.js +11 -0
  199. package/lib/download/ui/index.js.map +1 -0
  200. package/lib/ecosystem/core/sites.d.ts +1 -1
  201. package/lib/ecosystem/core/sites.d.ts.map +1 -1
  202. package/lib/ecosystem/core/sites.js +23 -0
  203. package/lib/ecosystem/core/sites.js.map +1 -1
  204. package/lib/ecosystem/ui/glyphs.d.ts.map +1 -1
  205. package/lib/ecosystem/ui/glyphs.js +9 -0
  206. package/lib/ecosystem/ui/glyphs.js.map +1 -1
  207. package/lib/overlay/core/emptiestCorner.d.ts +47 -0
  208. package/lib/overlay/core/emptiestCorner.d.ts.map +1 -0
  209. package/lib/overlay/core/emptiestCorner.js +84 -0
  210. package/lib/overlay/core/emptiestCorner.js.map +1 -0
  211. package/lib/overlay/core/index.d.ts +23 -0
  212. package/lib/overlay/core/index.d.ts.map +1 -0
  213. package/lib/overlay/core/index.js +16 -0
  214. package/lib/overlay/core/index.js.map +1 -0
  215. package/lib/overlay/core/overlayCollapse.d.ts +14 -0
  216. package/lib/overlay/core/overlayCollapse.d.ts.map +1 -0
  217. package/lib/overlay/core/overlayCollapse.js +20 -0
  218. package/lib/overlay/core/overlayCollapse.js.map +1 -0
  219. package/lib/overlay/core/overlayMarks.d.ts +31 -0
  220. package/lib/overlay/core/overlayMarks.d.ts.map +1 -0
  221. package/lib/overlay/core/overlayMarks.js +38 -0
  222. package/lib/overlay/core/overlayMarks.js.map +1 -0
  223. package/lib/overlay/core/overlayMetrics.d.ts +41 -0
  224. package/lib/overlay/core/overlayMetrics.d.ts.map +1 -0
  225. package/lib/overlay/core/overlayMetrics.js +73 -0
  226. package/lib/overlay/core/overlayMetrics.js.map +1 -0
  227. package/lib/overlay/core/overlayPlacement.d.ts +60 -0
  228. package/lib/overlay/core/overlayPlacement.d.ts.map +1 -0
  229. package/lib/overlay/core/overlayPlacement.js +24 -0
  230. package/lib/overlay/core/overlayPlacement.js.map +1 -0
  231. package/lib/overlay/core/overlayTierRoom.d.ts +89 -0
  232. package/lib/overlay/core/overlayTierRoom.d.ts.map +1 -0
  233. package/lib/overlay/core/overlayTierRoom.js +135 -0
  234. package/lib/overlay/core/overlayTierRoom.js.map +1 -0
  235. package/lib/overlay/core/overlayTiers.d.ts +71 -0
  236. package/lib/overlay/core/overlayTiers.d.ts.map +1 -0
  237. package/lib/overlay/core/overlayTiers.js +89 -0
  238. package/lib/overlay/core/overlayTiers.js.map +1 -0
  239. package/lib/overlay/core/placeOverlayCard.d.ts +47 -0
  240. package/lib/overlay/core/placeOverlayCard.d.ts.map +1 -0
  241. package/lib/overlay/core/placeOverlayCard.js +42 -0
  242. package/lib/overlay/core/placeOverlayCard.js.map +1 -0
  243. package/lib/overlay/ui/OverlayAction.d.ts +32 -0
  244. package/lib/overlay/ui/OverlayAction.d.ts.map +1 -0
  245. package/lib/overlay/ui/OverlayAction.js +19 -0
  246. package/lib/overlay/ui/OverlayAction.js.map +1 -0
  247. package/lib/overlay/ui/OverlayBar.d.ts +122 -0
  248. package/lib/overlay/ui/OverlayBar.d.ts.map +1 -0
  249. package/lib/overlay/ui/OverlayBar.js +42 -0
  250. package/lib/overlay/ui/OverlayBar.js.map +1 -0
  251. package/lib/overlay/ui/OverlayBarButton.d.ts +38 -0
  252. package/lib/overlay/ui/OverlayBarButton.d.ts.map +1 -0
  253. package/lib/overlay/ui/OverlayBarButton.js +40 -0
  254. package/lib/overlay/ui/OverlayBarButton.js.map +1 -0
  255. package/lib/overlay/ui/OverlayBarCard.d.ts +25 -0
  256. package/lib/overlay/ui/OverlayBarCard.d.ts.map +1 -0
  257. package/lib/overlay/ui/OverlayBarCard.js +28 -0
  258. package/lib/overlay/ui/OverlayBarCard.js.map +1 -0
  259. package/lib/overlay/ui/OverlayBarStrip.d.ts +18 -0
  260. package/lib/overlay/ui/OverlayBarStrip.d.ts.map +1 -0
  261. package/lib/overlay/ui/OverlayBarStrip.js +26 -0
  262. package/lib/overlay/ui/OverlayBarStrip.js.map +1 -0
  263. package/lib/overlay/ui/OverlayCaption.d.ts +52 -0
  264. package/lib/overlay/ui/OverlayCaption.d.ts.map +1 -0
  265. package/lib/overlay/ui/OverlayCaption.js +62 -0
  266. package/lib/overlay/ui/OverlayCaption.js.map +1 -0
  267. package/lib/overlay/ui/OverlayChip.d.ts +60 -0
  268. package/lib/overlay/ui/OverlayChip.d.ts.map +1 -0
  269. package/lib/overlay/ui/OverlayChip.js +73 -0
  270. package/lib/overlay/ui/OverlayChip.js.map +1 -0
  271. package/lib/overlay/ui/OverlayDivider.d.ts +11 -0
  272. package/lib/overlay/ui/OverlayDivider.d.ts.map +1 -0
  273. package/lib/overlay/ui/OverlayDivider.js +16 -0
  274. package/lib/overlay/ui/OverlayDivider.js.map +1 -0
  275. package/lib/overlay/ui/OverlayGroup.d.ts +53 -0
  276. package/lib/overlay/ui/OverlayGroup.d.ts.map +1 -0
  277. package/lib/overlay/ui/OverlayGroup.js +63 -0
  278. package/lib/overlay/ui/OverlayGroup.js.map +1 -0
  279. package/lib/overlay/ui/OverlayIconButton.d.ts +75 -0
  280. package/lib/overlay/ui/OverlayIconButton.d.ts.map +1 -0
  281. package/lib/overlay/ui/OverlayIconButton.js +43 -0
  282. package/lib/overlay/ui/OverlayIconButton.js.map +1 -0
  283. package/lib/overlay/ui/OverlayInfo.d.ts +43 -0
  284. package/lib/overlay/ui/OverlayInfo.d.ts.map +1 -0
  285. package/lib/overlay/ui/OverlayInfo.js +47 -0
  286. package/lib/overlay/ui/OverlayInfo.js.map +1 -0
  287. package/lib/overlay/ui/OverlayLayer.d.ts +54 -0
  288. package/lib/overlay/ui/OverlayLayer.d.ts.map +1 -0
  289. package/lib/overlay/ui/OverlayLayer.js +50 -0
  290. package/lib/overlay/ui/OverlayLayer.js.map +1 -0
  291. package/lib/overlay/ui/OverlayLegend.d.ts +75 -0
  292. package/lib/overlay/ui/OverlayLegend.d.ts.map +1 -0
  293. package/lib/overlay/ui/OverlayLegend.js +81 -0
  294. package/lib/overlay/ui/OverlayLegend.js.map +1 -0
  295. package/lib/overlay/ui/OverlayLegendMark.d.ts +36 -0
  296. package/lib/overlay/ui/OverlayLegendMark.d.ts.map +1 -0
  297. package/lib/overlay/ui/OverlayLegendMark.js +43 -0
  298. package/lib/overlay/ui/OverlayLegendMark.js.map +1 -0
  299. package/lib/overlay/ui/OverlayNumber.d.ts +43 -0
  300. package/lib/overlay/ui/OverlayNumber.d.ts.map +1 -0
  301. package/lib/overlay/ui/OverlayNumber.js +74 -0
  302. package/lib/overlay/ui/OverlayNumber.js.map +1 -0
  303. package/lib/overlay/ui/OverlayPanel.d.ts +81 -0
  304. package/lib/overlay/ui/OverlayPanel.d.ts.map +1 -0
  305. package/lib/overlay/ui/OverlayPanel.js +42 -0
  306. package/lib/overlay/ui/OverlayPanel.js.map +1 -0
  307. package/lib/overlay/ui/OverlayPills.d.ts +73 -0
  308. package/lib/overlay/ui/OverlayPills.d.ts.map +1 -0
  309. package/lib/overlay/ui/OverlayPills.js +55 -0
  310. package/lib/overlay/ui/OverlayPills.js.map +1 -0
  311. package/lib/overlay/ui/OverlayReadout.d.ts +63 -0
  312. package/lib/overlay/ui/OverlayReadout.d.ts.map +1 -0
  313. package/lib/overlay/ui/OverlayReadout.js +129 -0
  314. package/lib/overlay/ui/OverlayReadout.js.map +1 -0
  315. package/lib/overlay/ui/OverlayRow.d.ts +111 -0
  316. package/lib/overlay/ui/OverlayRow.d.ts.map +1 -0
  317. package/lib/overlay/ui/OverlayRow.js +50 -0
  318. package/lib/overlay/ui/OverlayRow.js.map +1 -0
  319. package/lib/overlay/ui/OverlaySegmented.d.ts +28 -0
  320. package/lib/overlay/ui/OverlaySegmented.d.ts.map +1 -0
  321. package/lib/overlay/ui/OverlaySegmented.js +23 -0
  322. package/lib/overlay/ui/OverlaySegmented.js.map +1 -0
  323. package/lib/overlay/ui/OverlaySelect.d.ts +35 -0
  324. package/lib/overlay/ui/OverlaySelect.d.ts.map +1 -0
  325. package/lib/overlay/ui/OverlaySelect.js +30 -0
  326. package/lib/overlay/ui/OverlaySelect.js.map +1 -0
  327. package/lib/overlay/ui/OverlaySwatchIcon.d.ts +26 -0
  328. package/lib/overlay/ui/OverlaySwatchIcon.d.ts.map +1 -0
  329. package/lib/overlay/ui/OverlaySwatchIcon.js +94 -0
  330. package/lib/overlay/ui/OverlaySwatchIcon.js.map +1 -0
  331. package/lib/overlay/ui/OverlayToggle.d.ts +56 -0
  332. package/lib/overlay/ui/OverlayToggle.d.ts.map +1 -0
  333. package/lib/overlay/ui/OverlayToggle.js +42 -0
  334. package/lib/overlay/ui/OverlayToggle.js.map +1 -0
  335. package/lib/overlay/ui/OverlayValueButton.d.ts +80 -0
  336. package/lib/overlay/ui/OverlayValueButton.d.ts.map +1 -0
  337. package/lib/overlay/ui/OverlayValueButton.js +46 -0
  338. package/lib/overlay/ui/OverlayValueButton.js.map +1 -0
  339. package/lib/overlay/ui/OverlayValueMenu.d.ts +68 -0
  340. package/lib/overlay/ui/OverlayValueMenu.d.ts.map +1 -0
  341. package/lib/overlay/ui/OverlayValueMenu.js +40 -0
  342. package/lib/overlay/ui/OverlayValueMenu.js.map +1 -0
  343. package/lib/overlay/ui/index.d.ts +55 -0
  344. package/lib/overlay/ui/index.d.ts.map +1 -0
  345. package/lib/overlay/ui/index.js +33 -0
  346. package/lib/overlay/ui/index.js.map +1 -0
  347. package/lib/overlay/ui/overlayBarShape.d.ts +85 -0
  348. package/lib/overlay/ui/overlayBarShape.d.ts.map +1 -0
  349. package/lib/overlay/ui/overlayBarShape.js +48 -0
  350. package/lib/overlay/ui/overlayBarShape.js.map +1 -0
  351. package/lib/overlay/ui/overlayControlStyles.d.ts +82 -0
  352. package/lib/overlay/ui/overlayControlStyles.d.ts.map +1 -0
  353. package/lib/overlay/ui/overlayControlStyles.js +142 -0
  354. package/lib/overlay/ui/overlayControlStyles.js.map +1 -0
  355. package/lib/overlay/ui/overlayFigureStyles.d.ts +52 -0
  356. package/lib/overlay/ui/overlayFigureStyles.d.ts.map +1 -0
  357. package/lib/overlay/ui/overlayFigureStyles.js +98 -0
  358. package/lib/overlay/ui/overlayFigureStyles.js.map +1 -0
  359. package/lib/overlay/ui/overlayPanelContext.d.ts +34 -0
  360. package/lib/overlay/ui/overlayPanelContext.d.ts.map +1 -0
  361. package/lib/overlay/ui/overlayPanelContext.js +29 -0
  362. package/lib/overlay/ui/overlayPanelContext.js.map +1 -0
  363. package/lib/overlay/ui/overlayPanelStyles.d.ts +112 -0
  364. package/lib/overlay/ui/overlayPanelStyles.d.ts.map +1 -0
  365. package/lib/overlay/ui/overlayPanelStyles.js +193 -0
  366. package/lib/overlay/ui/overlayPanelStyles.js.map +1 -0
  367. package/lib/overlay/ui/overlayPillKeys.d.ts +19 -0
  368. package/lib/overlay/ui/overlayPillKeys.d.ts.map +1 -0
  369. package/lib/overlay/ui/overlayPillKeys.js +33 -0
  370. package/lib/overlay/ui/overlayPillKeys.js.map +1 -0
  371. package/lib/overlay/ui/overlayPillStyles.d.ts +78 -0
  372. package/lib/overlay/ui/overlayPillStyles.d.ts.map +1 -0
  373. package/lib/overlay/ui/overlayPillStyles.js +140 -0
  374. package/lib/overlay/ui/overlayPillStyles.js.map +1 -0
  375. package/lib/overlay/ui/overlayRowStyles.d.ts +113 -0
  376. package/lib/overlay/ui/overlayRowStyles.d.ts.map +1 -0
  377. package/lib/overlay/ui/overlayRowStyles.js +135 -0
  378. package/lib/overlay/ui/overlayRowStyles.js.map +1 -0
  379. package/lib/overlay/ui/overlayStepperStyles.d.ts +51 -0
  380. package/lib/overlay/ui/overlayStepperStyles.d.ts.map +1 -0
  381. package/lib/overlay/ui/overlayStepperStyles.js +96 -0
  382. package/lib/overlay/ui/overlayStepperStyles.js.map +1 -0
  383. package/lib/overlay/ui/overlayStyles.d.ts +123 -0
  384. package/lib/overlay/ui/overlayStyles.d.ts.map +1 -0
  385. package/lib/overlay/ui/overlayStyles.js +203 -0
  386. package/lib/overlay/ui/overlayStyles.js.map +1 -0
  387. package/lib/overlay/ui/overlaySurface.d.ts +54 -0
  388. package/lib/overlay/ui/overlaySurface.d.ts.map +1 -0
  389. package/lib/overlay/ui/overlaySurface.js +85 -0
  390. package/lib/overlay/ui/overlaySurface.js.map +1 -0
  391. package/lib/overlay/ui/overlaySwitchStyles.d.ts +70 -0
  392. package/lib/overlay/ui/overlaySwitchStyles.d.ts.map +1 -0
  393. package/lib/overlay/ui/overlaySwitchStyles.js +102 -0
  394. package/lib/overlay/ui/overlaySwitchStyles.js.map +1 -0
  395. package/lib/overlay/ui/overlayValueStyles.d.ts +101 -0
  396. package/lib/overlay/ui/overlayValueStyles.d.ts.map +1 -0
  397. package/lib/overlay/ui/overlayValueStyles.js +166 -0
  398. package/lib/overlay/ui/overlayValueStyles.js.map +1 -0
  399. package/lib/projection/core/embeddingResult.d.ts +60 -0
  400. package/lib/projection/core/embeddingResult.d.ts.map +1 -0
  401. package/lib/projection/core/embeddingResult.js +52 -0
  402. package/lib/projection/core/embeddingResult.js.map +1 -0
  403. package/lib/projection/core/explainedShares.d.ts +51 -0
  404. package/lib/projection/core/explainedShares.d.ts.map +1 -0
  405. package/lib/projection/core/explainedShares.js +55 -0
  406. package/lib/projection/core/explainedShares.js.map +1 -0
  407. package/lib/projection/core/index.d.ts +38 -0
  408. package/lib/projection/core/index.d.ts.map +1 -0
  409. package/lib/projection/core/index.js +25 -0
  410. package/lib/projection/core/index.js.map +1 -0
  411. package/lib/projection/core/loadingProfiles.d.ts +87 -0
  412. package/lib/projection/core/loadingProfiles.d.ts.map +1 -0
  413. package/lib/projection/core/loadingProfiles.js +125 -0
  414. package/lib/projection/core/loadingProfiles.js.map +1 -0
  415. package/lib/projection/core/pcaLike.d.ts +32 -0
  416. package/lib/projection/core/pcaLike.d.ts.map +1 -0
  417. package/lib/projection/core/pcaLike.js +2 -0
  418. package/lib/projection/core/pcaLike.js.map +1 -0
  419. package/lib/projection/core/pcaResult.d.ts +86 -0
  420. package/lib/projection/core/pcaResult.d.ts.map +1 -0
  421. package/lib/projection/core/pcaResult.js +122 -0
  422. package/lib/projection/core/pcaResult.js.map +1 -0
  423. package/lib/projection/core/projectionCopy.d.ts +134 -0
  424. package/lib/projection/core/projectionCopy.d.ts.map +1 -0
  425. package/lib/projection/core/projectionCopy.js +114 -0
  426. package/lib/projection/core/projectionCopy.js.map +1 -0
  427. package/lib/projection/core/projectionCopyPatch.d.ts +13 -0
  428. package/lib/projection/core/projectionCopyPatch.d.ts.map +1 -0
  429. package/lib/projection/core/projectionCopyPatch.js +2 -0
  430. package/lib/projection/core/projectionCopyPatch.js.map +1 -0
  431. package/lib/projection/core/projectionOptions.d.ts +143 -0
  432. package/lib/projection/core/projectionOptions.d.ts.map +1 -0
  433. package/lib/projection/core/projectionOptions.js +111 -0
  434. package/lib/projection/core/projectionOptions.js.map +1 -0
  435. package/lib/projection/core/projectionResult.d.ts +119 -0
  436. package/lib/projection/core/projectionResult.d.ts.map +1 -0
  437. package/lib/projection/core/projectionResult.js +2 -0
  438. package/lib/projection/core/projectionResult.js.map +1 -0
  439. package/lib/projection/core/projectionSamples.d.ts +77 -0
  440. package/lib/projection/core/projectionSamples.d.ts.map +1 -0
  441. package/lib/projection/core/projectionSamples.js +81 -0
  442. package/lib/projection/core/projectionSamples.js.map +1 -0
  443. package/lib/projection/core/projectionStrings.d.ts +138 -0
  444. package/lib/projection/core/projectionStrings.d.ts.map +1 -0
  445. package/lib/projection/core/projectionStrings.js +182 -0
  446. package/lib/projection/core/projectionStrings.js.map +1 -0
  447. package/lib/projection/core/projectionTabDefaults.d.ts +18 -0
  448. package/lib/projection/core/projectionTabDefaults.d.ts.map +1 -0
  449. package/lib/projection/core/projectionTabDefaults.js +58 -0
  450. package/lib/projection/core/projectionTabDefaults.js.map +1 -0
  451. package/lib/projection/core/projectionTabs.d.ts +25 -0
  452. package/lib/projection/core/projectionTabs.d.ts.map +1 -0
  453. package/lib/projection/core/projectionTabs.js +60 -0
  454. package/lib/projection/core/projectionTabs.js.map +1 -0
  455. package/lib/projection/core/variableAxis.d.ts +106 -0
  456. package/lib/projection/core/variableAxis.d.ts.map +1 -0
  457. package/lib/projection/core/variableAxis.js +84 -0
  458. package/lib/projection/core/variableAxis.js.map +1 -0
  459. package/lib/projection/core/variablesView.d.ts +33 -0
  460. package/lib/projection/core/variablesView.d.ts.map +1 -0
  461. package/lib/projection/core/variablesView.js +49 -0
  462. package/lib/projection/core/variablesView.js.map +1 -0
  463. package/lib/projection/ui/PcaViewer.d.ts +31 -0
  464. package/lib/projection/ui/PcaViewer.d.ts.map +1 -0
  465. package/lib/projection/ui/PcaViewer.js +46 -0
  466. package/lib/projection/ui/PcaViewer.js.map +1 -0
  467. package/lib/projection/ui/ProjectionBar.d.ts +55 -0
  468. package/lib/projection/ui/ProjectionBar.d.ts.map +1 -0
  469. package/lib/projection/ui/ProjectionBar.js +112 -0
  470. package/lib/projection/ui/ProjectionBar.js.map +1 -0
  471. package/lib/projection/ui/ProjectionMapCaption.d.ts +46 -0
  472. package/lib/projection/ui/ProjectionMapCaption.d.ts.map +1 -0
  473. package/lib/projection/ui/ProjectionMapCaption.js +54 -0
  474. package/lib/projection/ui/ProjectionMapCaption.js.map +1 -0
  475. package/lib/projection/ui/ProjectionMapControls.d.ts +67 -0
  476. package/lib/projection/ui/ProjectionMapControls.d.ts.map +1 -0
  477. package/lib/projection/ui/ProjectionMapControls.js +108 -0
  478. package/lib/projection/ui/ProjectionMapControls.js.map +1 -0
  479. package/lib/projection/ui/ProjectionMapLegend.d.ts +39 -0
  480. package/lib/projection/ui/ProjectionMapLegend.d.ts.map +1 -0
  481. package/lib/projection/ui/ProjectionMapLegend.js +29 -0
  482. package/lib/projection/ui/ProjectionMapLegend.js.map +1 -0
  483. package/lib/projection/ui/ProjectionMapMore.d.ts +42 -0
  484. package/lib/projection/ui/ProjectionMapMore.d.ts.map +1 -0
  485. package/lib/projection/ui/ProjectionMapMore.js +74 -0
  486. package/lib/projection/ui/ProjectionMapMore.js.map +1 -0
  487. package/lib/projection/ui/ProjectionMapTab.d.ts +107 -0
  488. package/lib/projection/ui/ProjectionMapTab.d.ts.map +1 -0
  489. package/lib/projection/ui/ProjectionMapTab.js +43 -0
  490. package/lib/projection/ui/ProjectionMapTab.js.map +1 -0
  491. package/lib/projection/ui/ProjectionPairsControls.d.ts +37 -0
  492. package/lib/projection/ui/ProjectionPairsControls.d.ts.map +1 -0
  493. package/lib/projection/ui/ProjectionPairsControls.js +20 -0
  494. package/lib/projection/ui/ProjectionPairsControls.js.map +1 -0
  495. package/lib/projection/ui/ProjectionPairsMore.d.ts +40 -0
  496. package/lib/projection/ui/ProjectionPairsMore.d.ts.map +1 -0
  497. package/lib/projection/ui/ProjectionPairsMore.js +31 -0
  498. package/lib/projection/ui/ProjectionPairsMore.js.map +1 -0
  499. package/lib/projection/ui/ProjectionPairsTab.d.ts +66 -0
  500. package/lib/projection/ui/ProjectionPairsTab.d.ts.map +1 -0
  501. package/lib/projection/ui/ProjectionPairsTab.js +64 -0
  502. package/lib/projection/ui/ProjectionPairsTab.js.map +1 -0
  503. package/lib/projection/ui/ProjectionPanel.d.ts +79 -0
  504. package/lib/projection/ui/ProjectionPanel.d.ts.map +1 -0
  505. package/lib/projection/ui/ProjectionPanel.js +72 -0
  506. package/lib/projection/ui/ProjectionPanel.js.map +1 -0
  507. package/lib/projection/ui/ProjectionReadout.d.ts +72 -0
  508. package/lib/projection/ui/ProjectionReadout.d.ts.map +1 -0
  509. package/lib/projection/ui/ProjectionReadout.js +47 -0
  510. package/lib/projection/ui/ProjectionReadout.js.map +1 -0
  511. package/lib/projection/ui/ProjectionSharesControls.d.ts +34 -0
  512. package/lib/projection/ui/ProjectionSharesControls.d.ts.map +1 -0
  513. package/lib/projection/ui/ProjectionSharesControls.js +20 -0
  514. package/lib/projection/ui/ProjectionSharesControls.js.map +1 -0
  515. package/lib/projection/ui/ProjectionSharesMarks.d.ts +49 -0
  516. package/lib/projection/ui/ProjectionSharesMarks.d.ts.map +1 -0
  517. package/lib/projection/ui/ProjectionSharesMarks.js +110 -0
  518. package/lib/projection/ui/ProjectionSharesMarks.js.map +1 -0
  519. package/lib/projection/ui/ProjectionSharesMore.d.ts +19 -0
  520. package/lib/projection/ui/ProjectionSharesMore.d.ts.map +1 -0
  521. package/lib/projection/ui/ProjectionSharesMore.js +25 -0
  522. package/lib/projection/ui/ProjectionSharesMore.js.map +1 -0
  523. package/lib/projection/ui/ProjectionSharesTab.d.ts +50 -0
  524. package/lib/projection/ui/ProjectionSharesTab.d.ts.map +1 -0
  525. package/lib/projection/ui/ProjectionSharesTab.js +48 -0
  526. package/lib/projection/ui/ProjectionSharesTab.js.map +1 -0
  527. package/lib/projection/ui/ProjectionSpaceControls.d.ts +51 -0
  528. package/lib/projection/ui/ProjectionSpaceControls.d.ts.map +1 -0
  529. package/lib/projection/ui/ProjectionSpaceControls.js +71 -0
  530. package/lib/projection/ui/ProjectionSpaceControls.js.map +1 -0
  531. package/lib/projection/ui/ProjectionSpaceMore.d.ts +32 -0
  532. package/lib/projection/ui/ProjectionSpaceMore.d.ts.map +1 -0
  533. package/lib/projection/ui/ProjectionSpaceMore.js +57 -0
  534. package/lib/projection/ui/ProjectionSpaceMore.js.map +1 -0
  535. package/lib/projection/ui/ProjectionSpaceTab.d.ts +98 -0
  536. package/lib/projection/ui/ProjectionSpaceTab.d.ts.map +1 -0
  537. package/lib/projection/ui/ProjectionSpaceTab.js +66 -0
  538. package/lib/projection/ui/ProjectionSpaceTab.js.map +1 -0
  539. package/lib/projection/ui/ProjectionSurface.d.ts +33 -0
  540. package/lib/projection/ui/ProjectionSurface.d.ts.map +1 -0
  541. package/lib/projection/ui/ProjectionSurface.js +35 -0
  542. package/lib/projection/ui/ProjectionSurface.js.map +1 -0
  543. package/lib/projection/ui/ProjectionTabStrip.d.ts +74 -0
  544. package/lib/projection/ui/ProjectionTabStrip.d.ts.map +1 -0
  545. package/lib/projection/ui/ProjectionTabStrip.js +64 -0
  546. package/lib/projection/ui/ProjectionTabStrip.js.map +1 -0
  547. package/lib/projection/ui/ProjectionVariablesControls.d.ts +33 -0
  548. package/lib/projection/ui/ProjectionVariablesControls.d.ts.map +1 -0
  549. package/lib/projection/ui/ProjectionVariablesControls.js +26 -0
  550. package/lib/projection/ui/ProjectionVariablesControls.js.map +1 -0
  551. package/lib/projection/ui/ProjectionVariablesMore.d.ts +33 -0
  552. package/lib/projection/ui/ProjectionVariablesMore.d.ts.map +1 -0
  553. package/lib/projection/ui/ProjectionVariablesMore.js +55 -0
  554. package/lib/projection/ui/ProjectionVariablesMore.js.map +1 -0
  555. package/lib/projection/ui/ProjectionVariablesTab.d.ts +78 -0
  556. package/lib/projection/ui/ProjectionVariablesTab.d.ts.map +1 -0
  557. package/lib/projection/ui/ProjectionVariablesTab.js +93 -0
  558. package/lib/projection/ui/ProjectionVariablesTab.js.map +1 -0
  559. package/lib/projection/ui/ProjectionViewer.d.ts +33 -0
  560. package/lib/projection/ui/ProjectionViewer.d.ts.map +1 -0
  561. package/lib/projection/ui/ProjectionViewer.js +91 -0
  562. package/lib/projection/ui/ProjectionViewer.js.map +1 -0
  563. package/lib/projection/ui/index.d.ts +20 -0
  564. package/lib/projection/ui/index.d.ts.map +1 -0
  565. package/lib/projection/ui/index.js +15 -0
  566. package/lib/projection/ui/index.js.map +1 -0
  567. package/lib/projection/ui/projectionBarModel.d.ts +92 -0
  568. package/lib/projection/ui/projectionBarModel.d.ts.map +1 -0
  569. package/lib/projection/ui/projectionBarModel.js +141 -0
  570. package/lib/projection/ui/projectionBarModel.js.map +1 -0
  571. package/lib/projection/ui/projectionBarReadings.d.ts +65 -0
  572. package/lib/projection/ui/projectionBarReadings.d.ts.map +1 -0
  573. package/lib/projection/ui/projectionBarReadings.js +138 -0
  574. package/lib/projection/ui/projectionBarReadings.js.map +1 -0
  575. package/lib/projection/ui/projectionBarSlots.d.ts +59 -0
  576. package/lib/projection/ui/projectionBarSlots.d.ts.map +1 -0
  577. package/lib/projection/ui/projectionBarSlots.js +98 -0
  578. package/lib/projection/ui/projectionBarSlots.js.map +1 -0
  579. package/lib/projection/ui/projectionBarStyles.d.ts +102 -0
  580. package/lib/projection/ui/projectionBarStyles.d.ts.map +1 -0
  581. package/lib/projection/ui/projectionBarStyles.js +154 -0
  582. package/lib/projection/ui/projectionBarStyles.js.map +1 -0
  583. package/lib/projection/ui/projectionCloudChoices.d.ts +18 -0
  584. package/lib/projection/ui/projectionCloudChoices.d.ts.map +1 -0
  585. package/lib/projection/ui/projectionCloudChoices.js +19 -0
  586. package/lib/projection/ui/projectionCloudChoices.js.map +1 -0
  587. package/lib/projection/ui/projectionEllipse.d.ts +50 -0
  588. package/lib/projection/ui/projectionEllipse.d.ts.map +1 -0
  589. package/lib/projection/ui/projectionEllipse.js +101 -0
  590. package/lib/projection/ui/projectionEllipse.js.map +1 -0
  591. package/lib/projection/ui/projectionEllipsoid.d.ts +38 -0
  592. package/lib/projection/ui/projectionEllipsoid.d.ts.map +1 -0
  593. package/lib/projection/ui/projectionEllipsoid.js +71 -0
  594. package/lib/projection/ui/projectionEllipsoid.js.map +1 -0
  595. package/lib/projection/ui/projectionFormat.d.ts +13 -0
  596. package/lib/projection/ui/projectionFormat.d.ts.map +1 -0
  597. package/lib/projection/ui/projectionFormat.js +19 -0
  598. package/lib/projection/ui/projectionFormat.js.map +1 -0
  599. package/lib/projection/ui/projectionMapChoices.d.ts +31 -0
  600. package/lib/projection/ui/projectionMapChoices.d.ts.map +1 -0
  601. package/lib/projection/ui/projectionMapChoices.js +46 -0
  602. package/lib/projection/ui/projectionMapChoices.js.map +1 -0
  603. package/lib/projection/ui/projectionMapChrome.d.ts +81 -0
  604. package/lib/projection/ui/projectionMapChrome.d.ts.map +1 -0
  605. package/lib/projection/ui/projectionMapChrome.js +139 -0
  606. package/lib/projection/ui/projectionMapChrome.js.map +1 -0
  607. package/lib/projection/ui/projectionMapModel.d.ts +114 -0
  608. package/lib/projection/ui/projectionMapModel.d.ts.map +1 -0
  609. package/lib/projection/ui/projectionMapModel.js +177 -0
  610. package/lib/projection/ui/projectionMapModel.js.map +1 -0
  611. package/lib/projection/ui/projectionMapView.d.ts +72 -0
  612. package/lib/projection/ui/projectionMapView.d.ts.map +1 -0
  613. package/lib/projection/ui/projectionMapView.js +116 -0
  614. package/lib/projection/ui/projectionMapView.js.map +1 -0
  615. package/lib/projection/ui/projectionPairsCeiling.d.ts +29 -0
  616. package/lib/projection/ui/projectionPairsCeiling.d.ts.map +1 -0
  617. package/lib/projection/ui/projectionPairsCeiling.js +29 -0
  618. package/lib/projection/ui/projectionPairsCeiling.js.map +1 -0
  619. package/lib/projection/ui/projectionSelection.d.ts +51 -0
  620. package/lib/projection/ui/projectionSelection.d.ts.map +1 -0
  621. package/lib/projection/ui/projectionSelection.js +66 -0
  622. package/lib/projection/ui/projectionSelection.js.map +1 -0
  623. package/lib/projection/ui/projectionSpaceModel.d.ts +14 -0
  624. package/lib/projection/ui/projectionSpaceModel.d.ts.map +1 -0
  625. package/lib/projection/ui/projectionSpaceModel.js +14 -0
  626. package/lib/projection/ui/projectionSpaceModel.js.map +1 -0
  627. package/lib/projection/ui/projectionTabInfo.d.ts +59 -0
  628. package/lib/projection/ui/projectionTabInfo.d.ts.map +1 -0
  629. package/lib/projection/ui/projectionTabInfo.js +108 -0
  630. package/lib/projection/ui/projectionTabInfo.js.map +1 -0
  631. package/lib/projection/ui/projectionTabModels.d.ts +49 -0
  632. package/lib/projection/ui/projectionTabModels.d.ts.map +1 -0
  633. package/lib/projection/ui/projectionTabModels.js +59 -0
  634. package/lib/projection/ui/projectionTabModels.js.map +1 -0
  635. package/lib/projection/ui/projectionTabStyles.d.ts +131 -0
  636. package/lib/projection/ui/projectionTabStyles.d.ts.map +1 -0
  637. package/lib/projection/ui/projectionTabStyles.js +134 -0
  638. package/lib/projection/ui/projectionTabStyles.js.map +1 -0
  639. package/lib/projection/ui/projectionVariablesModel.d.ts +104 -0
  640. package/lib/projection/ui/projectionVariablesModel.d.ts.map +1 -0
  641. package/lib/projection/ui/projectionVariablesModel.js +165 -0
  642. package/lib/projection/ui/projectionVariablesModel.js.map +1 -0
  643. package/lib/projection/ui/projectionVariablesWords.d.ts +50 -0
  644. package/lib/projection/ui/projectionVariablesWords.d.ts.map +1 -0
  645. package/lib/projection/ui/projectionVariablesWords.js +91 -0
  646. package/lib/projection/ui/projectionVariablesWords.js.map +1 -0
  647. package/lib/projection/ui/projectionViewChoices.d.ts +31 -0
  648. package/lib/projection/ui/projectionViewChoices.d.ts.map +1 -0
  649. package/lib/projection/ui/projectionViewChoices.js +53 -0
  650. package/lib/projection/ui/projectionViewChoices.js.map +1 -0
  651. package/lib/projection/ui/projectionViewerProps.d.ts +187 -0
  652. package/lib/projection/ui/projectionViewerProps.d.ts.map +1 -0
  653. package/lib/projection/ui/projectionViewerProps.js +9 -0
  654. package/lib/projection/ui/projectionViewerProps.js.map +1 -0
  655. package/lib/projection/ui/useProjectionState.d.ts +63 -0
  656. package/lib/projection/ui/useProjectionState.d.ts.map +1 -0
  657. package/lib/projection/ui/useProjectionState.js +107 -0
  658. package/lib/projection/ui/useProjectionState.js.map +1 -0
  659. package/lib/scatter/core/confidenceEllipse.d.ts +117 -0
  660. package/lib/scatter/core/confidenceEllipse.d.ts.map +1 -0
  661. package/lib/scatter/core/confidenceEllipse.js +132 -0
  662. package/lib/scatter/core/confidenceEllipse.js.map +1 -0
  663. package/lib/scatter/core/ellipseCoverage.d.ts +33 -0
  664. package/lib/scatter/core/ellipseCoverage.d.ts.map +1 -0
  665. package/lib/scatter/core/ellipseCoverage.js +46 -0
  666. package/lib/scatter/core/ellipseCoverage.js.map +1 -0
  667. package/lib/scatter/core/ellipseProjection.d.ts +53 -0
  668. package/lib/scatter/core/ellipseProjection.d.ts.map +1 -0
  669. package/lib/scatter/core/ellipseProjection.js +94 -0
  670. package/lib/scatter/core/ellipseProjection.js.map +1 -0
  671. package/lib/scatter/core/index.d.ts +24 -0
  672. package/lib/scatter/core/index.d.ts.map +1 -0
  673. package/lib/scatter/core/index.js +19 -0
  674. package/lib/scatter/core/index.js.map +1 -0
  675. package/lib/scatter/core/lassoPath.d.ts +60 -0
  676. package/lib/scatter/core/lassoPath.d.ts.map +1 -0
  677. package/lib/scatter/core/lassoPath.js +101 -0
  678. package/lib/scatter/core/lassoPath.js.map +1 -0
  679. package/lib/scatter/core/polygon.d.ts +58 -0
  680. package/lib/scatter/core/polygon.d.ts.map +1 -0
  681. package/lib/scatter/core/polygon.js +140 -0
  682. package/lib/scatter/core/polygon.js.map +1 -0
  683. package/lib/scatter/core/scatterSelection.d.ts +44 -0
  684. package/lib/scatter/core/scatterSelection.d.ts.map +1 -0
  685. package/lib/scatter/core/scatterSelection.js +81 -0
  686. package/lib/scatter/core/scatterSelection.js.map +1 -0
  687. package/lib/scatter/core/screenPoints.d.ts +58 -0
  688. package/lib/scatter/core/screenPoints.d.ts.map +1 -0
  689. package/lib/scatter/core/screenPoints.js +78 -0
  690. package/lib/scatter/core/screenPoints.js.map +1 -0
  691. package/lib/scatter/ui/ScatterEllipseLayer.d.ts +69 -0
  692. package/lib/scatter/ui/ScatterEllipseLayer.d.ts.map +1 -0
  693. package/lib/scatter/ui/ScatterEllipseLayer.js +77 -0
  694. package/lib/scatter/ui/ScatterEllipseLayer.js.map +1 -0
  695. package/lib/scatter/ui/ScatterLabelLayer.d.ts +40 -0
  696. package/lib/scatter/ui/ScatterLabelLayer.d.ts.map +1 -0
  697. package/lib/scatter/ui/ScatterLabelLayer.js +77 -0
  698. package/lib/scatter/ui/ScatterLabelLayer.js.map +1 -0
  699. package/lib/scatter/ui/ScatterMarkLayer.d.ts +68 -0
  700. package/lib/scatter/ui/ScatterMarkLayer.d.ts.map +1 -0
  701. package/lib/scatter/ui/ScatterMarkLayer.js +134 -0
  702. package/lib/scatter/ui/ScatterMarkLayer.js.map +1 -0
  703. package/lib/scatter/ui/ScatterMatrix.d.ts +19 -0
  704. package/lib/scatter/ui/ScatterMatrix.d.ts.map +1 -0
  705. package/lib/scatter/ui/ScatterMatrix.js +125 -0
  706. package/lib/scatter/ui/ScatterMatrix.js.map +1 -0
  707. package/lib/scatter/ui/ScatterMatrixCell.d.ts +24 -0
  708. package/lib/scatter/ui/ScatterMatrixCell.d.ts.map +1 -0
  709. package/lib/scatter/ui/ScatterMatrixCell.js +90 -0
  710. package/lib/scatter/ui/ScatterMatrixCell.js.map +1 -0
  711. package/lib/scatter/ui/ScatterMatrixDiagonal.d.ts +78 -0
  712. package/lib/scatter/ui/ScatterMatrixDiagonal.d.ts.map +1 -0
  713. package/lib/scatter/ui/ScatterMatrixDiagonal.js +83 -0
  714. package/lib/scatter/ui/ScatterMatrixDiagonal.js.map +1 -0
  715. package/lib/scatter/ui/ScatterPlot.d.ts +17 -0
  716. package/lib/scatter/ui/ScatterPlot.d.ts.map +1 -0
  717. package/lib/scatter/ui/ScatterPlot.js +107 -0
  718. package/lib/scatter/ui/ScatterPlot.js.map +1 -0
  719. package/lib/scatter/ui/ScatterPointLayer.d.ts +67 -0
  720. package/lib/scatter/ui/ScatterPointLayer.d.ts.map +1 -0
  721. package/lib/scatter/ui/ScatterPointLayer.js +87 -0
  722. package/lib/scatter/ui/ScatterPointLayer.js.map +1 -0
  723. package/lib/scatter/ui/index.d.ts +53 -0
  724. package/lib/scatter/ui/index.d.ts.map +1 -0
  725. package/lib/scatter/ui/index.js +34 -0
  726. package/lib/scatter/ui/index.js.map +1 -0
  727. package/lib/scatter/ui/lassoGesture.d.ts +197 -0
  728. package/lib/scatter/ui/lassoGesture.d.ts.map +1 -0
  729. package/lib/scatter/ui/lassoGesture.js +103 -0
  730. package/lib/scatter/ui/lassoGesture.js.map +1 -0
  731. package/lib/scatter/ui/scatterGroupSpread.d.ts +81 -0
  732. package/lib/scatter/ui/scatterGroupSpread.d.ts.map +1 -0
  733. package/lib/scatter/ui/scatterGroupSpread.js +147 -0
  734. package/lib/scatter/ui/scatterGroupSpread.js.map +1 -0
  735. package/lib/scatter/ui/scatterLabelBoxes.d.ts +94 -0
  736. package/lib/scatter/ui/scatterLabelBoxes.d.ts.map +1 -0
  737. package/lib/scatter/ui/scatterLabelBoxes.js +140 -0
  738. package/lib/scatter/ui/scatterLabelBoxes.js.map +1 -0
  739. package/lib/scatter/ui/scatterLabelPlacement.d.ts +96 -0
  740. package/lib/scatter/ui/scatterLabelPlacement.d.ts.map +1 -0
  741. package/lib/scatter/ui/scatterLabelPlacement.js +210 -0
  742. package/lib/scatter/ui/scatterLabelPlacement.js.map +1 -0
  743. package/lib/scatter/ui/scatterLabels.d.ts +81 -0
  744. package/lib/scatter/ui/scatterLabels.d.ts.map +1 -0
  745. package/lib/scatter/ui/scatterLabels.js +101 -0
  746. package/lib/scatter/ui/scatterLabels.js.map +1 -0
  747. package/lib/scatter/ui/scatterMarkGlyph.d.ts +37 -0
  748. package/lib/scatter/ui/scatterMarkGlyph.d.ts.map +1 -0
  749. package/lib/scatter/ui/scatterMarkGlyph.js +33 -0
  750. package/lib/scatter/ui/scatterMarkGlyph.js.map +1 -0
  751. package/lib/scatter/ui/scatterMatrixDots.d.ts +24 -0
  752. package/lib/scatter/ui/scatterMatrixDots.d.ts.map +1 -0
  753. package/lib/scatter/ui/scatterMatrixDots.js +84 -0
  754. package/lib/scatter/ui/scatterMatrixDots.js.map +1 -0
  755. package/lib/scatter/ui/scatterMatrixLayout.d.ts +93 -0
  756. package/lib/scatter/ui/scatterMatrixLayout.d.ts.map +1 -0
  757. package/lib/scatter/ui/scatterMatrixLayout.js +117 -0
  758. package/lib/scatter/ui/scatterMatrixLayout.js.map +1 -0
  759. package/lib/scatter/ui/scatterMatrixOutlines.d.ts +27 -0
  760. package/lib/scatter/ui/scatterMatrixOutlines.d.ts.map +1 -0
  761. package/lib/scatter/ui/scatterMatrixOutlines.js +34 -0
  762. package/lib/scatter/ui/scatterMatrixOutlines.js.map +1 -0
  763. package/lib/scatter/ui/scatterMatrixProps.d.ts +99 -0
  764. package/lib/scatter/ui/scatterMatrixProps.d.ts.map +1 -0
  765. package/lib/scatter/ui/scatterMatrixProps.js +10 -0
  766. package/lib/scatter/ui/scatterMatrixProps.js.map +1 -0
  767. package/lib/scatter/ui/scatterOutlineShape.d.ts +63 -0
  768. package/lib/scatter/ui/scatterOutlineShape.d.ts.map +1 -0
  769. package/lib/scatter/ui/scatterOutlineShape.js +82 -0
  770. package/lib/scatter/ui/scatterOutlineShape.js.map +1 -0
  771. package/lib/scatter/ui/scatterPlotModel.d.ts +107 -0
  772. package/lib/scatter/ui/scatterPlotModel.d.ts.map +1 -0
  773. package/lib/scatter/ui/scatterPlotModel.js +139 -0
  774. package/lib/scatter/ui/scatterPlotModel.js.map +1 -0
  775. package/lib/scatter/ui/scatterPlotProps.d.ts +269 -0
  776. package/lib/scatter/ui/scatterPlotProps.d.ts.map +1 -0
  777. package/lib/scatter/ui/scatterPlotProps.js +10 -0
  778. package/lib/scatter/ui/scatterPlotProps.js.map +1 -0
  779. package/lib/scatter/ui/useLassoGesture.d.ts +18 -0
  780. package/lib/scatter/ui/useLassoGesture.d.ts.map +1 -0
  781. package/lib/scatter/ui/useLassoGesture.js +140 -0
  782. package/lib/scatter/ui/useLassoGesture.js.map +1 -0
  783. package/lib/scatter/ui/usePointHover.d.ts +88 -0
  784. package/lib/scatter/ui/usePointHover.d.ts.map +1 -0
  785. package/lib/scatter/ui/usePointHover.js +88 -0
  786. package/lib/scatter/ui/usePointHover.js.map +1 -0
  787. package/lib/scatter/ui/useScatterFrame.d.ts +80 -0
  788. package/lib/scatter/ui/useScatterFrame.d.ts.map +1 -0
  789. package/lib/scatter/ui/useScatterFrame.js +101 -0
  790. package/lib/scatter/ui/useScatterFrame.js.map +1 -0
  791. package/lib/scatter/ui/useScatterInteraction.d.ts +112 -0
  792. package/lib/scatter/ui/useScatterInteraction.d.ts.map +1 -0
  793. package/lib/scatter/ui/useScatterInteraction.js +101 -0
  794. package/lib/scatter/ui/useScatterInteraction.js.map +1 -0
  795. package/lib/scatter/ui/useScatterKeyboard.d.ts +60 -0
  796. package/lib/scatter/ui/useScatterKeyboard.d.ts.map +1 -0
  797. package/lib/scatter/ui/useScatterKeyboard.js +56 -0
  798. package/lib/scatter/ui/useScatterKeyboard.js.map +1 -0
  799. package/lib/scatter/ui/useScatterSelection.d.ts +78 -0
  800. package/lib/scatter/ui/useScatterSelection.d.ts.map +1 -0
  801. package/lib/scatter/ui/useScatterSelection.js +72 -0
  802. package/lib/scatter/ui/useScatterSelection.js.map +1 -0
  803. package/lib/scatter3d/core/cloudGesture.d.ts +17 -0
  804. package/lib/scatter3d/core/cloudGesture.d.ts.map +1 -0
  805. package/lib/scatter3d/core/cloudGesture.js +2 -0
  806. package/lib/scatter3d/core/cloudGesture.js.map +1 -0
  807. package/lib/scatter3d/core/confidenceEllipsoid.d.ts +63 -0
  808. package/lib/scatter3d/core/confidenceEllipsoid.d.ts.map +1 -0
  809. package/lib/scatter3d/core/confidenceEllipsoid.js +128 -0
  810. package/lib/scatter3d/core/confidenceEllipsoid.js.map +1 -0
  811. package/lib/scatter3d/core/cubeFrame.d.ts +40 -0
  812. package/lib/scatter3d/core/cubeFrame.d.ts.map +1 -0
  813. package/lib/scatter3d/core/cubeFrame.js +58 -0
  814. package/lib/scatter3d/core/cubeFrame.js.map +1 -0
  815. package/lib/scatter3d/core/cubePoints.d.ts +35 -0
  816. package/lib/scatter3d/core/cubePoints.d.ts.map +1 -0
  817. package/lib/scatter3d/core/cubePoints.js +50 -0
  818. package/lib/scatter3d/core/cubePoints.js.map +1 -0
  819. package/lib/scatter3d/core/ellipsoidCoverage.d.ts +32 -0
  820. package/lib/scatter3d/core/ellipsoidCoverage.d.ts.map +1 -0
  821. package/lib/scatter3d/core/ellipsoidCoverage.js +83 -0
  822. package/lib/scatter3d/core/ellipsoidCoverage.js.map +1 -0
  823. package/lib/scatter3d/core/ellipsoidSilhouette.d.ts +42 -0
  824. package/lib/scatter3d/core/ellipsoidSilhouette.d.ts.map +1 -0
  825. package/lib/scatter3d/core/ellipsoidSilhouette.js +52 -0
  826. package/lib/scatter3d/core/ellipsoidSilhouette.js.map +1 -0
  827. package/lib/scatter3d/core/index.d.ts +29 -0
  828. package/lib/scatter3d/core/index.d.ts.map +1 -0
  829. package/lib/scatter3d/core/index.js +22 -0
  830. package/lib/scatter3d/core/index.js.map +1 -0
  831. package/lib/scatter3d/core/orbitCamera.d.ts +113 -0
  832. package/lib/scatter3d/core/orbitCamera.d.ts.map +1 -0
  833. package/lib/scatter3d/core/orbitCamera.js +104 -0
  834. package/lib/scatter3d/core/orbitCamera.js.map +1 -0
  835. package/lib/scatter3d/core/symmetricEigen.d.ts +47 -0
  836. package/lib/scatter3d/core/symmetricEigen.d.ts.map +1 -0
  837. package/lib/scatter3d/core/symmetricEigen.js +219 -0
  838. package/lib/scatter3d/core/symmetricEigen.js.map +1 -0
  839. package/lib/scatter3d/ui/CloudFrameLayer.d.ts +33 -0
  840. package/lib/scatter3d/ui/CloudFrameLayer.d.ts.map +1 -0
  841. package/lib/scatter3d/ui/CloudFrameLayer.js +37 -0
  842. package/lib/scatter3d/ui/CloudFrameLayer.js.map +1 -0
  843. package/lib/scatter3d/ui/CloudPointLayer.d.ts +62 -0
  844. package/lib/scatter3d/ui/CloudPointLayer.d.ts.map +1 -0
  845. package/lib/scatter3d/ui/CloudPointLayer.js +67 -0
  846. package/lib/scatter3d/ui/CloudPointLayer.js.map +1 -0
  847. package/lib/scatter3d/ui/CloudShellLayer.d.ts +52 -0
  848. package/lib/scatter3d/ui/CloudShellLayer.d.ts.map +1 -0
  849. package/lib/scatter3d/ui/CloudShellLayer.js +40 -0
  850. package/lib/scatter3d/ui/CloudShellLayer.js.map +1 -0
  851. package/lib/scatter3d/ui/ScatterCloud.d.ts +24 -0
  852. package/lib/scatter3d/ui/ScatterCloud.d.ts.map +1 -0
  853. package/lib/scatter3d/ui/ScatterCloud.js +189 -0
  854. package/lib/scatter3d/ui/ScatterCloud.js.map +1 -0
  855. package/lib/scatter3d/ui/cloudGeometry.d.ts +108 -0
  856. package/lib/scatter3d/ui/cloudGeometry.d.ts.map +1 -0
  857. package/lib/scatter3d/ui/cloudGeometry.js +122 -0
  858. package/lib/scatter3d/ui/cloudGeometry.js.map +1 -0
  859. package/lib/scatter3d/ui/cloudShellStyles.d.ts +36 -0
  860. package/lib/scatter3d/ui/cloudShellStyles.d.ts.map +1 -0
  861. package/lib/scatter3d/ui/cloudShellStyles.js +62 -0
  862. package/lib/scatter3d/ui/cloudShellStyles.js.map +1 -0
  863. package/lib/scatter3d/ui/cloudZoom.d.ts +21 -0
  864. package/lib/scatter3d/ui/cloudZoom.d.ts.map +1 -0
  865. package/lib/scatter3d/ui/cloudZoom.js +22 -0
  866. package/lib/scatter3d/ui/cloudZoom.js.map +1 -0
  867. package/lib/scatter3d/ui/index.d.ts +29 -0
  868. package/lib/scatter3d/ui/index.d.ts.map +1 -0
  869. package/lib/scatter3d/ui/index.js +21 -0
  870. package/lib/scatter3d/ui/index.js.map +1 -0
  871. package/lib/scatter3d/ui/scatterCloudModel.d.ts +60 -0
  872. package/lib/scatter3d/ui/scatterCloudModel.d.ts.map +1 -0
  873. package/lib/scatter3d/ui/scatterCloudModel.js +66 -0
  874. package/lib/scatter3d/ui/scatterCloudModel.js.map +1 -0
  875. package/lib/scatter3d/ui/scatterCloudProps.d.ts +185 -0
  876. package/lib/scatter3d/ui/scatterCloudProps.d.ts.map +1 -0
  877. package/lib/scatter3d/ui/scatterCloudProps.js +9 -0
  878. package/lib/scatter3d/ui/scatterCloudProps.js.map +1 -0
  879. package/lib/scatter3d/ui/useOrbitDrag.d.ts +60 -0
  880. package/lib/scatter3d/ui/useOrbitDrag.d.ts.map +1 -0
  881. package/lib/scatter3d/ui/useOrbitDrag.js +129 -0
  882. package/lib/scatter3d/ui/useOrbitDrag.js.map +1 -0
  883. package/lib/share/core/query.d.ts +10 -4
  884. package/lib/share/core/query.d.ts.map +1 -1
  885. package/lib/share/core/query.js +11 -7
  886. package/lib/share/core/query.js.map +1 -1
  887. package/lib/spectra/core/axisEntries.d.ts +50 -0
  888. package/lib/spectra/core/axisEntries.d.ts.map +1 -0
  889. package/lib/spectra/core/axisEntries.js +78 -0
  890. package/lib/spectra/core/axisEntries.js.map +1 -0
  891. package/lib/spectra/core/chainProblems.d.ts +14 -0
  892. package/lib/spectra/core/chainProblems.d.ts.map +1 -0
  893. package/lib/spectra/core/chainProblems.js +100 -0
  894. package/lib/spectra/core/chainProblems.js.map +1 -0
  895. package/lib/spectra/core/filterCatalog.d.ts +57 -0
  896. package/lib/spectra/core/filterCatalog.d.ts.map +1 -0
  897. package/lib/spectra/core/filterCatalog.js +81 -0
  898. package/lib/spectra/core/filterCatalog.js.map +1 -0
  899. package/lib/spectra/core/filterChain.d.ts +69 -0
  900. package/lib/spectra/core/filterChain.d.ts.map +1 -0
  901. package/lib/spectra/core/filterChain.js +163 -0
  902. package/lib/spectra/core/filterChain.js.map +1 -0
  903. package/lib/spectra/core/filterEntries.d.ts +136 -0
  904. package/lib/spectra/core/filterEntries.d.ts.map +1 -0
  905. package/lib/spectra/core/filterEntries.js +139 -0
  906. package/lib/spectra/core/filterEntries.js.map +1 -0
  907. package/lib/spectra/core/filterFields.d.ts +94 -0
  908. package/lib/spectra/core/filterFields.d.ts.map +1 -0
  909. package/lib/spectra/core/filterFields.js +82 -0
  910. package/lib/spectra/core/filterFields.js.map +1 -0
  911. package/lib/spectra/core/index.d.ts +14 -0
  912. package/lib/spectra/core/index.d.ts.map +1 -0
  913. package/lib/spectra/core/index.js +9 -0
  914. package/lib/spectra/core/index.js.map +1 -0
  915. package/lib/spectra/core/principalComponents.d.ts +70 -0
  916. package/lib/spectra/core/principalComponents.d.ts.map +1 -0
  917. package/lib/spectra/core/principalComponents.js +90 -0
  918. package/lib/spectra/core/principalComponents.js.map +1 -0
  919. package/lib/spectra/core/problems.d.ts +57 -0
  920. package/lib/spectra/core/problems.d.ts.map +1 -0
  921. package/lib/spectra/core/problems.js +121 -0
  922. package/lib/spectra/core/problems.js.map +1 -0
  923. package/lib/spectra/core/settings.d.ts +67 -0
  924. package/lib/spectra/core/settings.d.ts.map +1 -0
  925. package/lib/spectra/core/settings.js +35 -0
  926. package/lib/spectra/core/settings.js.map +1 -0
  927. package/lib/spectra/core/settingsProblems.d.ts +18 -0
  928. package/lib/spectra/core/settingsProblems.d.ts.map +1 -0
  929. package/lib/spectra/core/settingsProblems.js +148 -0
  930. package/lib/spectra/core/settingsProblems.js.map +1 -0
  931. package/lib/spectra/core/stepProblems.d.ts +13 -0
  932. package/lib/spectra/core/stepProblems.d.ts.map +1 -0
  933. package/lib/spectra/core/stepProblems.js +133 -0
  934. package/lib/spectra/core/stepProblems.js.map +1 -0
  935. package/lib/spectra/ui/CalculationRows.d.ts +21 -0
  936. package/lib/spectra/ui/CalculationRows.d.ts.map +1 -0
  937. package/lib/spectra/ui/CalculationRows.js +77 -0
  938. package/lib/spectra/ui/CalculationRows.js.map +1 -0
  939. package/lib/spectra/ui/FilterChainEditor.d.ts +34 -0
  940. package/lib/spectra/ui/FilterChainEditor.d.ts.map +1 -0
  941. package/lib/spectra/ui/FilterChainEditor.js +111 -0
  942. package/lib/spectra/ui/FilterChainEditor.js.map +1 -0
  943. package/lib/spectra/ui/FilterChoiceControl.d.ts +23 -0
  944. package/lib/spectra/ui/FilterChoiceControl.d.ts.map +1 -0
  945. package/lib/spectra/ui/FilterChoiceControl.js +65 -0
  946. package/lib/spectra/ui/FilterChoiceControl.js.map +1 -0
  947. package/lib/spectra/ui/FilterFieldControl.d.ts +25 -0
  948. package/lib/spectra/ui/FilterFieldControl.d.ts.map +1 -0
  949. package/lib/spectra/ui/FilterFieldControl.js +68 -0
  950. package/lib/spectra/ui/FilterFieldControl.js.map +1 -0
  951. package/lib/spectra/ui/FilterRow.d.ts +33 -0
  952. package/lib/spectra/ui/FilterRow.d.ts.map +1 -0
  953. package/lib/spectra/ui/FilterRow.js +76 -0
  954. package/lib/spectra/ui/FilterRow.js.map +1 -0
  955. package/lib/spectra/ui/MatrixFilterRows.d.ts +22 -0
  956. package/lib/spectra/ui/MatrixFilterRows.d.ts.map +1 -0
  957. package/lib/spectra/ui/MatrixFilterRows.js +92 -0
  958. package/lib/spectra/ui/MatrixFilterRows.js.map +1 -0
  959. package/lib/spectra/ui/NormalizationEditor.d.ts +24 -0
  960. package/lib/spectra/ui/NormalizationEditor.d.ts.map +1 -0
  961. package/lib/spectra/ui/NormalizationEditor.js +108 -0
  962. package/lib/spectra/ui/NormalizationEditor.js.map +1 -0
  963. package/lib/spectra/ui/NumberField.d.ts +41 -0
  964. package/lib/spectra/ui/NumberField.d.ts.map +1 -0
  965. package/lib/spectra/ui/NumberField.js +81 -0
  966. package/lib/spectra/ui/NumberField.js.map +1 -0
  967. package/lib/spectra/ui/PostProcessingEditor.d.ts +29 -0
  968. package/lib/spectra/ui/PostProcessingEditor.d.ts.map +1 -0
  969. package/lib/spectra/ui/PostProcessingEditor.js +53 -0
  970. package/lib/spectra/ui/PostProcessingEditor.js.map +1 -0
  971. package/lib/spectra/ui/PrincipalComponentSelect.d.ts +40 -0
  972. package/lib/spectra/ui/PrincipalComponentSelect.d.ts.map +1 -0
  973. package/lib/spectra/ui/PrincipalComponentSelect.js +97 -0
  974. package/lib/spectra/ui/PrincipalComponentSelect.js.map +1 -0
  975. package/lib/spectra/ui/ProblemList.d.ts +24 -0
  976. package/lib/spectra/ui/ProblemList.d.ts.map +1 -0
  977. package/lib/spectra/ui/ProblemList.js +40 -0
  978. package/lib/spectra/ui/ProblemList.js.map +1 -0
  979. package/lib/spectra/ui/RangeRows.d.ts +23 -0
  980. package/lib/spectra/ui/RangeRows.d.ts.map +1 -0
  981. package/lib/spectra/ui/RangeRows.js +76 -0
  982. package/lib/spectra/ui/RangeRows.js.map +1 -0
  983. package/lib/spectra/ui/ScaleFields.d.ts +28 -0
  984. package/lib/spectra/ui/ScaleFields.d.ts.map +1 -0
  985. package/lib/spectra/ui/ScaleFields.js +67 -0
  986. package/lib/spectra/ui/ScaleFields.js.map +1 -0
  987. package/lib/spectra/ui/SettingsPart.d.ts +25 -0
  988. package/lib/spectra/ui/SettingsPart.d.ts.map +1 -0
  989. package/lib/spectra/ui/SettingsPart.js +35 -0
  990. package/lib/spectra/ui/SettingsPart.js.map +1 -0
  991. package/lib/spectra/ui/SpectraSettingsEditor.d.ts +62 -0
  992. package/lib/spectra/ui/SpectraSettingsEditor.d.ts.map +1 -0
  993. package/lib/spectra/ui/SpectraSettingsEditor.js +39 -0
  994. package/lib/spectra/ui/SpectraSettingsEditor.js.map +1 -0
  995. package/lib/spectra/ui/SpectrumSelection.d.ts +30 -0
  996. package/lib/spectra/ui/SpectrumSelection.d.ts.map +1 -0
  997. package/lib/spectra/ui/SpectrumSelection.js +116 -0
  998. package/lib/spectra/ui/SpectrumSelection.js.map +1 -0
  999. package/lib/spectra/ui/ZoneRows.d.ts +41 -0
  1000. package/lib/spectra/ui/ZoneRows.d.ts.map +1 -0
  1001. package/lib/spectra/ui/ZoneRows.js +70 -0
  1002. package/lib/spectra/ui/ZoneRows.js.map +1 -0
  1003. package/lib/spectra/ui/index.d.ts +7 -0
  1004. package/lib/spectra/ui/index.d.ts.map +1 -0
  1005. package/lib/spectra/ui/index.js +4 -0
  1006. package/lib/spectra/ui/index.js.map +1 -0
  1007. package/lib/spectra/ui/matrixSteps.d.ts +61 -0
  1008. package/lib/spectra/ui/matrixSteps.d.ts.map +1 -0
  1009. package/lib/spectra/ui/matrixSteps.js +92 -0
  1010. package/lib/spectra/ui/matrixSteps.js.map +1 -0
  1011. package/lib/spectra/ui/problemsAbout.d.ts +14 -0
  1012. package/lib/spectra/ui/problemsAbout.d.ts.map +1 -0
  1013. package/lib/spectra/ui/problemsAbout.js +15 -0
  1014. package/lib/spectra/ui/problemsAbout.js.map +1 -0
  1015. package/lib/spectra/ui/rowKeys.d.ts +27 -0
  1016. package/lib/spectra/ui/rowKeys.d.ts.map +1 -0
  1017. package/lib/spectra/ui/rowKeys.js +45 -0
  1018. package/lib/spectra/ui/rowKeys.js.map +1 -0
  1019. package/lib/spectra/ui/scaleOptions.d.ts +50 -0
  1020. package/lib/spectra/ui/scaleOptions.d.ts.map +1 -0
  1021. package/lib/spectra/ui/scaleOptions.js +103 -0
  1022. package/lib/spectra/ui/scaleOptions.js.map +1 -0
  1023. package/lib/ui.d.ts +7 -0
  1024. package/lib/ui.d.ts.map +1 -1
  1025. package/lib/ui.js +7 -0
  1026. package/lib/ui.js.map +1 -1
  1027. package/package.json +17 -1
  1028. package/src/chart/core/chartAxisScale.ts +249 -0
  1029. package/src/chart/core/chartBand.ts +82 -0
  1030. package/src/chart/core/chartBins.ts +96 -0
  1031. package/src/chart/core/chartExtent.ts +203 -0
  1032. package/src/chart/core/chartLabels.ts +68 -0
  1033. package/src/chart/core/chartPalette.ts +71 -0
  1034. package/src/chart/core/chartScale.ts +72 -0
  1035. package/src/chart/core/chartViewport.ts +211 -0
  1036. package/src/chart/core/index.ts +58 -0
  1037. package/src/chart/core/matrix.ts +100 -0
  1038. package/src/chart/ui/ChartAxis.tsx +232 -0
  1039. package/src/chart/ui/ChartFrame.tsx +246 -0
  1040. package/src/chart/ui/ChartSeriesMarks.tsx +98 -0
  1041. package/src/chart/ui/ChartTrackingLayer.tsx +192 -0
  1042. package/src/chart/ui/TrackedLineChart.tsx +267 -0
  1043. package/src/chart/ui/TrackedStickChart.tsx +197 -0
  1044. package/src/chart/ui/chartStyles.ts +194 -0
  1045. package/src/chart/ui/index.ts +34 -0
  1046. package/src/chart/ui/stickChartModel.ts +201 -0
  1047. package/src/chart/ui/useWheelZoom.ts +177 -0
  1048. package/src/chrome/ui/NavLink.tsx +5 -3
  1049. package/src/chrome/ui/SiteFooter.tsx +16 -1
  1050. package/src/chrome/ui/SiteHeader.tsx +19 -1
  1051. package/src/chrome/ui/navItem.ts +12 -0
  1052. package/src/color/core/gradient.ts +29 -0
  1053. package/src/color/core/hsv.ts +112 -0
  1054. package/src/color/core/index.ts +27 -1
  1055. package/src/color/core/interpolate.ts +179 -0
  1056. package/src/color/core/scale.ts +17 -49
  1057. package/src/color/core/scaleData.ts +128 -0
  1058. package/src/color/core/scaleText.ts +134 -0
  1059. package/src/color/core/scales.ts +148 -0
  1060. package/src/color/ui/ColorScaleBar.tsx +73 -0
  1061. package/src/color/ui/ColorScaleEditor.tsx +243 -0
  1062. package/src/color/ui/ColorScaleSelect.tsx +252 -0
  1063. package/src/color/ui/index.ts +6 -0
  1064. package/src/core.ts +6 -0
  1065. package/src/credits/core/credits.ts +20 -0
  1066. package/src/download/core/cssTokens.ts +90 -0
  1067. package/src/download/core/downloadFigure.ts +66 -0
  1068. package/src/download/core/figureLegend.ts +167 -0
  1069. package/src/download/core/figurePng.ts +87 -0
  1070. package/src/download/core/figureScale.ts +83 -0
  1071. package/src/download/core/figureSvg.ts +210 -0
  1072. package/src/download/core/figureSvgDocument.ts +139 -0
  1073. package/src/download/core/figureTarget.ts +151 -0
  1074. package/src/download/core/index.ts +36 -0
  1075. package/src/download/ui/FigureDownload.tsx +158 -0
  1076. package/src/download/ui/FigureDownloadPanel.tsx +165 -0
  1077. package/src/download/ui/index.ts +13 -0
  1078. package/src/ecosystem/core/sites.ts +26 -1
  1079. package/src/ecosystem/ui/glyphs.tsx +42 -0
  1080. package/src/overlay/core/emptiestCorner.ts +122 -0
  1081. package/src/overlay/core/index.ts +34 -0
  1082. package/src/overlay/core/overlayCollapse.ts +20 -0
  1083. package/src/overlay/core/overlayMarks.ts +43 -0
  1084. package/src/overlay/core/overlayMetrics.ts +112 -0
  1085. package/src/overlay/core/overlayPlacement.ts +80 -0
  1086. package/src/overlay/core/overlayTierRoom.ts +199 -0
  1087. package/src/overlay/core/overlayTiers.ts +130 -0
  1088. package/src/overlay/core/placeOverlayCard.ts +93 -0
  1089. package/src/overlay/ui/OverlayAction.tsx +66 -0
  1090. package/src/overlay/ui/OverlayBar.tsx +188 -0
  1091. package/src/overlay/ui/OverlayBarButton.tsx +83 -0
  1092. package/src/overlay/ui/OverlayBarCard.tsx +78 -0
  1093. package/src/overlay/ui/OverlayBarStrip.tsx +62 -0
  1094. package/src/overlay/ui/OverlayCaption.tsx +124 -0
  1095. package/src/overlay/ui/OverlayChip.tsx +181 -0
  1096. package/src/overlay/ui/OverlayDivider.tsx +24 -0
  1097. package/src/overlay/ui/OverlayGroup.tsx +157 -0
  1098. package/src/overlay/ui/OverlayIconButton.tsx +131 -0
  1099. package/src/overlay/ui/OverlayInfo.tsx +92 -0
  1100. package/src/overlay/ui/OverlayLayer.tsx +118 -0
  1101. package/src/overlay/ui/OverlayLegend.tsx +228 -0
  1102. package/src/overlay/ui/OverlayLegendMark.tsx +95 -0
  1103. package/src/overlay/ui/OverlayNumber.tsx +160 -0
  1104. package/src/overlay/ui/OverlayPanel.tsx +162 -0
  1105. package/src/overlay/ui/OverlayPills.tsx +157 -0
  1106. package/src/overlay/ui/OverlayReadout.tsx +247 -0
  1107. package/src/overlay/ui/OverlayRow.tsx +200 -0
  1108. package/src/overlay/ui/OverlaySegmented.tsx +67 -0
  1109. package/src/overlay/ui/OverlaySelect.tsx +114 -0
  1110. package/src/overlay/ui/OverlaySwatchIcon.tsx +126 -0
  1111. package/src/overlay/ui/OverlayToggle.tsx +136 -0
  1112. package/src/overlay/ui/OverlayValueButton.tsx +149 -0
  1113. package/src/overlay/ui/OverlayValueMenu.tsx +141 -0
  1114. package/src/overlay/ui/index.ts +72 -0
  1115. package/src/overlay/ui/overlayBarShape.ts +113 -0
  1116. package/src/overlay/ui/overlayControlStyles.ts +176 -0
  1117. package/src/overlay/ui/overlayFigureStyles.ts +111 -0
  1118. package/src/overlay/ui/overlayPanelContext.ts +42 -0
  1119. package/src/overlay/ui/overlayPanelStyles.ts +235 -0
  1120. package/src/overlay/ui/overlayPillKeys.ts +45 -0
  1121. package/src/overlay/ui/overlayPillStyles.ts +190 -0
  1122. package/src/overlay/ui/overlayRowStyles.ts +166 -0
  1123. package/src/overlay/ui/overlayStepperStyles.ts +112 -0
  1124. package/src/overlay/ui/overlayStyles.ts +222 -0
  1125. package/src/overlay/ui/overlaySurface.ts +120 -0
  1126. package/src/overlay/ui/overlaySwitchStyles.ts +136 -0
  1127. package/src/overlay/ui/overlayValueStyles.ts +210 -0
  1128. package/src/projection/core/embeddingResult.ts +119 -0
  1129. package/src/projection/core/explainedShares.ts +105 -0
  1130. package/src/projection/core/index.ts +81 -0
  1131. package/src/projection/core/loadingProfiles.ts +226 -0
  1132. package/src/projection/core/pcaLike.ts +33 -0
  1133. package/src/projection/core/pcaResult.ts +238 -0
  1134. package/src/projection/core/projectionCopy.ts +261 -0
  1135. package/src/projection/core/projectionCopyPatch.ts +12 -0
  1136. package/src/projection/core/projectionOptions.ts +283 -0
  1137. package/src/projection/core/projectionResult.ts +123 -0
  1138. package/src/projection/core/projectionSamples.ts +170 -0
  1139. package/src/projection/core/projectionStrings.ts +281 -0
  1140. package/src/projection/core/projectionTabDefaults.ts +63 -0
  1141. package/src/projection/core/projectionTabs.ts +65 -0
  1142. package/src/projection/core/variableAxis.ts +161 -0
  1143. package/src/projection/core/variablesView.ts +53 -0
  1144. package/src/projection/ui/PcaViewer.tsx +80 -0
  1145. package/src/projection/ui/ProjectionBar.tsx +222 -0
  1146. package/src/projection/ui/ProjectionMapCaption.tsx +96 -0
  1147. package/src/projection/ui/ProjectionMapControls.tsx +271 -0
  1148. package/src/projection/ui/ProjectionMapLegend.tsx +70 -0
  1149. package/src/projection/ui/ProjectionMapMore.tsx +178 -0
  1150. package/src/projection/ui/ProjectionMapTab.tsx +213 -0
  1151. package/src/projection/ui/ProjectionPairsControls.tsx +58 -0
  1152. package/src/projection/ui/ProjectionPairsMore.tsx +95 -0
  1153. package/src/projection/ui/ProjectionPairsTab.tsx +159 -0
  1154. package/src/projection/ui/ProjectionPanel.tsx +262 -0
  1155. package/src/projection/ui/ProjectionReadout.tsx +159 -0
  1156. package/src/projection/ui/ProjectionSharesControls.tsx +56 -0
  1157. package/src/projection/ui/ProjectionSharesMarks.tsx +241 -0
  1158. package/src/projection/ui/ProjectionSharesMore.tsx +53 -0
  1159. package/src/projection/ui/ProjectionSharesTab.tsx +118 -0
  1160. package/src/projection/ui/ProjectionSpaceControls.tsx +219 -0
  1161. package/src/projection/ui/ProjectionSpaceMore.tsx +169 -0
  1162. package/src/projection/ui/ProjectionSpaceTab.tsx +217 -0
  1163. package/src/projection/ui/ProjectionSurface.tsx +63 -0
  1164. package/src/projection/ui/ProjectionTabStrip.tsx +144 -0
  1165. package/src/projection/ui/ProjectionVariablesControls.tsx +62 -0
  1166. package/src/projection/ui/ProjectionVariablesMore.tsx +144 -0
  1167. package/src/projection/ui/ProjectionVariablesTab.tsx +216 -0
  1168. package/src/projection/ui/ProjectionViewer.tsx +146 -0
  1169. package/src/projection/ui/index.ts +20 -0
  1170. package/src/projection/ui/projectionBarModel.ts +194 -0
  1171. package/src/projection/ui/projectionBarReadings.ts +195 -0
  1172. package/src/projection/ui/projectionBarSlots.tsx +158 -0
  1173. package/src/projection/ui/projectionBarStyles.ts +174 -0
  1174. package/src/projection/ui/projectionCloudChoices.ts +23 -0
  1175. package/src/projection/ui/projectionEllipse.ts +104 -0
  1176. package/src/projection/ui/projectionEllipsoid.ts +78 -0
  1177. package/src/projection/ui/projectionFormat.ts +18 -0
  1178. package/src/projection/ui/projectionMapChoices.ts +64 -0
  1179. package/src/projection/ui/projectionMapChrome.ts +228 -0
  1180. package/src/projection/ui/projectionMapModel.ts +253 -0
  1181. package/src/projection/ui/projectionMapView.ts +233 -0
  1182. package/src/projection/ui/projectionPairsCeiling.ts +45 -0
  1183. package/src/projection/ui/projectionSelection.ts +87 -0
  1184. package/src/projection/ui/projectionSpaceModel.ts +14 -0
  1185. package/src/projection/ui/projectionTabInfo.ts +126 -0
  1186. package/src/projection/ui/projectionTabModels.ts +106 -0
  1187. package/src/projection/ui/projectionTabStyles.ts +161 -0
  1188. package/src/projection/ui/projectionVariablesModel.ts +231 -0
  1189. package/src/projection/ui/projectionVariablesWords.ts +105 -0
  1190. package/src/projection/ui/projectionViewChoices.ts +77 -0
  1191. package/src/projection/ui/projectionViewerProps.ts +190 -0
  1192. package/src/projection/ui/useProjectionState.ts +224 -0
  1193. package/src/scatter/core/confidenceEllipse.ts +230 -0
  1194. package/src/scatter/core/ellipseCoverage.ts +46 -0
  1195. package/src/scatter/core/ellipseProjection.ts +126 -0
  1196. package/src/scatter/core/index.ts +48 -0
  1197. package/src/scatter/core/lassoPath.ts +127 -0
  1198. package/src/scatter/core/polygon.ts +155 -0
  1199. package/src/scatter/core/scatterSelection.ts +88 -0
  1200. package/src/scatter/core/screenPoints.ts +110 -0
  1201. package/src/scatter/ui/ScatterEllipseLayer.tsx +153 -0
  1202. package/src/scatter/ui/ScatterLabelLayer.tsx +135 -0
  1203. package/src/scatter/ui/ScatterMarkLayer.tsx +245 -0
  1204. package/src/scatter/ui/ScatterMatrix.tsx +177 -0
  1205. package/src/scatter/ui/ScatterMatrixCell.tsx +140 -0
  1206. package/src/scatter/ui/ScatterMatrixDiagonal.tsx +182 -0
  1207. package/src/scatter/ui/ScatterPlot.tsx +253 -0
  1208. package/src/scatter/ui/ScatterPointLayer.tsx +168 -0
  1209. package/src/scatter/ui/index.ts +123 -0
  1210. package/src/scatter/ui/lassoGesture.ts +250 -0
  1211. package/src/scatter/ui/scatterGroupSpread.ts +206 -0
  1212. package/src/scatter/ui/scatterLabelBoxes.ts +177 -0
  1213. package/src/scatter/ui/scatterLabelPlacement.ts +325 -0
  1214. package/src/scatter/ui/scatterLabels.ts +147 -0
  1215. package/src/scatter/ui/scatterMarkGlyph.tsx +94 -0
  1216. package/src/scatter/ui/scatterMatrixDots.tsx +134 -0
  1217. package/src/scatter/ui/scatterMatrixLayout.ts +133 -0
  1218. package/src/scatter/ui/scatterMatrixOutlines.tsx +53 -0
  1219. package/src/scatter/ui/scatterMatrixProps.ts +103 -0
  1220. package/src/scatter/ui/scatterOutlineShape.tsx +169 -0
  1221. package/src/scatter/ui/scatterPlotModel.ts +200 -0
  1222. package/src/scatter/ui/scatterPlotProps.ts +275 -0
  1223. package/src/scatter/ui/useLassoGesture.ts +214 -0
  1224. package/src/scatter/ui/usePointHover.ts +187 -0
  1225. package/src/scatter/ui/useScatterFrame.ts +191 -0
  1226. package/src/scatter/ui/useScatterInteraction.ts +258 -0
  1227. package/src/scatter/ui/useScatterKeyboard.ts +120 -0
  1228. package/src/scatter/ui/useScatterSelection.ts +189 -0
  1229. package/src/scatter3d/core/cloudGesture.ts +16 -0
  1230. package/src/scatter3d/core/confidenceEllipsoid.ts +177 -0
  1231. package/src/scatter3d/core/cubeFrame.ts +72 -0
  1232. package/src/scatter3d/core/cubePoints.ts +75 -0
  1233. package/src/scatter3d/core/ellipsoidCoverage.ts +86 -0
  1234. package/src/scatter3d/core/ellipsoidSilhouette.ts +76 -0
  1235. package/src/scatter3d/core/index.ts +52 -0
  1236. package/src/scatter3d/core/orbitCamera.ts +159 -0
  1237. package/src/scatter3d/core/symmetricEigen.ts +273 -0
  1238. package/src/scatter3d/ui/CloudFrameLayer.tsx +97 -0
  1239. package/src/scatter3d/ui/CloudPointLayer.tsx +132 -0
  1240. package/src/scatter3d/ui/CloudShellLayer.tsx +107 -0
  1241. package/src/scatter3d/ui/ScatterCloud.tsx +312 -0
  1242. package/src/scatter3d/ui/cloudGeometry.ts +200 -0
  1243. package/src/scatter3d/ui/cloudShellStyles.ts +74 -0
  1244. package/src/scatter3d/ui/cloudZoom.ts +22 -0
  1245. package/src/scatter3d/ui/index.ts +41 -0
  1246. package/src/scatter3d/ui/scatterCloudModel.ts +98 -0
  1247. package/src/scatter3d/ui/scatterCloudProps.ts +191 -0
  1248. package/src/scatter3d/ui/useOrbitDrag.ts +220 -0
  1249. package/src/share/core/query.ts +11 -7
  1250. package/src/spectra/core/axisEntries.ts +107 -0
  1251. package/src/spectra/core/chainProblems.ts +165 -0
  1252. package/src/spectra/core/filterCatalog.ts +100 -0
  1253. package/src/spectra/core/filterChain.ts +194 -0
  1254. package/src/spectra/core/filterEntries.ts +214 -0
  1255. package/src/spectra/core/filterFields.ts +159 -0
  1256. package/src/spectra/core/index.ts +67 -0
  1257. package/src/spectra/core/principalComponents.ts +130 -0
  1258. package/src/spectra/core/problems.ts +143 -0
  1259. package/src/spectra/core/settings.ts +119 -0
  1260. package/src/spectra/core/settingsProblems.ts +222 -0
  1261. package/src/spectra/core/stepProblems.ts +228 -0
  1262. package/src/spectra/ui/CalculationRows.tsx +161 -0
  1263. package/src/spectra/ui/FilterChainEditor.tsx +199 -0
  1264. package/src/spectra/ui/FilterChoiceControl.tsx +153 -0
  1265. package/src/spectra/ui/FilterFieldControl.tsx +105 -0
  1266. package/src/spectra/ui/FilterRow.tsx +190 -0
  1267. package/src/spectra/ui/MatrixFilterRows.tsx +184 -0
  1268. package/src/spectra/ui/NormalizationEditor.tsx +235 -0
  1269. package/src/spectra/ui/NumberField.tsx +126 -0
  1270. package/src/spectra/ui/PostProcessingEditor.tsx +136 -0
  1271. package/src/spectra/ui/PrincipalComponentSelect.tsx +245 -0
  1272. package/src/spectra/ui/ProblemList.tsx +77 -0
  1273. package/src/spectra/ui/RangeRows.tsx +175 -0
  1274. package/src/spectra/ui/ScaleFields.tsx +183 -0
  1275. package/src/spectra/ui/SettingsPart.tsx +60 -0
  1276. package/src/spectra/ui/SpectraSettingsEditor.tsx +143 -0
  1277. package/src/spectra/ui/SpectrumSelection.tsx +193 -0
  1278. package/src/spectra/ui/ZoneRows.tsx +159 -0
  1279. package/src/spectra/ui/index.ts +9 -0
  1280. package/src/spectra/ui/matrixSteps.ts +128 -0
  1281. package/src/spectra/ui/problemsAbout.ts +21 -0
  1282. package/src/spectra/ui/rowKeys.ts +47 -0
  1283. package/src/spectra/ui/scaleOptions.ts +116 -0
  1284. package/src/ui.ts +7 -0
  1285. package/styles/chrome.css +29 -4
@@ -0,0 +1,101 @@
1
+ const DEFAULT_CAPACITY = 256;
2
+ /**
3
+ * An empty path, with room to grow.
4
+ * @param capacity - How many vertices to make room for before the first growth; at least one, and rounded down. Defaults to 256, which is a couple of seconds of dragging.
5
+ * @returns The path, holding no vertex yet.
6
+ */
7
+ export function createLassoPath(capacity = DEFAULT_CAPACITY) {
8
+ const size = Number.isFinite(capacity)
9
+ ? Math.max(1, Math.floor(capacity))
10
+ : DEFAULT_CAPACITY;
11
+ return { xs: new Float64Array(size), ys: new Float64Array(size), length: 0 };
12
+ }
13
+ /**
14
+ * Empty a path without giving up the room it has claimed.
15
+ *
16
+ * The buffers are kept, so the second lasso of a session and the fiftieth cost
17
+ * nothing to start. Whatever is left past `length` is never read.
18
+ * @param path - The path to empty.
19
+ */
20
+ export function resetLassoPath(path) {
21
+ path.length = 0;
22
+ }
23
+ /**
24
+ * Add a vertex, unless it is too near the last one kept.
25
+ *
26
+ * The distance is measured from the last vertex that was kept, not from the
27
+ * last position the pointer reported, so consecutive vertices are always at
28
+ * least `minDistance` apart however slowly the pointer is moving. Measuring
29
+ * from the raw sample instead would let a slow drag across the whole plot keep
30
+ * a single vertex, and the outline would close as a straight line between
31
+ * where the drag started and where it ended.
32
+ * @param path - The path to add to; its buffers are doubled when full.
33
+ * @param x - Horizontal position of the vertex, in pixels.
34
+ * @param y - Vertical position of the vertex, in pixels.
35
+ * @param minDistance - How far the pointer has to have moved for the vertex to be worth keeping, in pixels. Nothing is dropped when it is zero, negative, or not finite.
36
+ * @returns Whether the vertex was kept. A position that is not finite never is.
37
+ */
38
+ export function appendLassoPoint(path, x, y, minDistance) {
39
+ if (!Number.isFinite(x) || !Number.isFinite(y))
40
+ return false;
41
+ if (path.length > 0) {
42
+ const lastX = path.xs[path.length - 1];
43
+ const lastY = path.ys[path.length - 1];
44
+ if (lastX !== undefined && lastY !== undefined) {
45
+ const gate = Number.isFinite(minDistance) && minDistance > 0
46
+ ? minDistance * minDistance
47
+ : 0;
48
+ const deltaX = x - lastX;
49
+ const deltaY = y - lastY;
50
+ if (deltaX * deltaX + deltaY * deltaY < gate)
51
+ return false;
52
+ }
53
+ }
54
+ if (path.length >= path.xs.length || path.length >= path.ys.length) {
55
+ growLassoPath(path);
56
+ }
57
+ path.xs[path.length] = x;
58
+ path.ys[path.length] = y;
59
+ path.length += 1;
60
+ return true;
61
+ }
62
+ /**
63
+ * The path as an SVG `d` attribute.
64
+ *
65
+ * Coordinates are rounded to a tenth of a pixel. A lasso is drawn at a
66
+ * resolution the eye cannot resolve past that, and the full doubles would put
67
+ * seventeen characters per vertex into an attribute that is rewritten on every
68
+ * frame of the drag.
69
+ * @param path - The path to write out.
70
+ * @param close - Whether to close the ring with a `Z`, which is what turns the drawn line into the shape that is about to be tested.
71
+ * @returns The `d` attribute, or an empty string when the path holds no vertex.
72
+ */
73
+ export function lassoPathData(path, close) {
74
+ const count = Math.min(path.length, path.xs.length, path.ys.length);
75
+ let data = '';
76
+ for (let index = 0; index < count; index++) {
77
+ const x = path.xs[index];
78
+ const y = path.ys[index];
79
+ if (x === undefined || y === undefined)
80
+ break;
81
+ data += `${index === 0 ? 'M' : ' L'}${roundToTenth(x)},${roundToTenth(y)}`;
82
+ }
83
+ if (data.length === 0)
84
+ return '';
85
+ return close ? `${data}Z` : data;
86
+ }
87
+ function growLassoPath(path) {
88
+ const capacity = Math.max(1, Math.min(path.xs.length, path.ys.length)) * 2;
89
+ const xs = new Float64Array(capacity);
90
+ const ys = new Float64Array(capacity);
91
+ xs.set(path.xs);
92
+ ys.set(path.ys);
93
+ path.xs = xs;
94
+ path.ys = ys;
95
+ }
96
+ function roundToTenth(value) {
97
+ if (!Number.isFinite(value))
98
+ return 0;
99
+ return Math.round(value * 10) / 10;
100
+ }
101
+ //# sourceMappingURL=lassoPath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lassoPath.js","sourceRoot":"","sources":["../../../src/scatter/core/lassoPath.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import type { PixelBounds, ScreenPoints } from './screenPoints.ts';
2
+ /**
3
+ * Whether a point falls inside a polygon.
4
+ *
5
+ * A ray cast from the point towards growing x, counting the edges it crosses:
6
+ * an odd count is inside, an even one is outside. Both tests that decide a
7
+ * crossing are half-open, and that is what settles the boundary. An edge is
8
+ * only considered for the ys it spans from its lower end up to, but not
9
+ * including, its upper end; and the crossing has to sit strictly beyond the
10
+ * point. So on the square `(0,0) (10,0) (10,10) (0,10)` the two edges meeting
11
+ * at `(0,0)` count as inside — `(5,0)` and `(0,5)` are in — while the two
12
+ * meeting at `(10,10)` count as outside, and `(5,10)` and `(10,5)` are out. Of
13
+ * the four corners only `(0,0)` is inside; `(10,0)`, `(0,10)` and `(10,10)`
14
+ * are not.
15
+ *
16
+ * The asymmetry is the point of the convention rather than an accident of it:
17
+ * it is what stops two polygons sharing an edge from both claiming the samples
18
+ * that lie along it, and what keeps a point from toggling in and out as a
19
+ * lasso is dragged a hundredth of a pixel.
20
+ * @param x - Horizontal position of the point, in pixels.
21
+ * @param y - Vertical position of the point, in pixels.
22
+ * @param xs - Horizontal position of each vertex, in order around the ring; the ring is closed for you.
23
+ * @param ys - Vertical position of each vertex, in the same order.
24
+ * @param vertexCount - How many leading entries of the two arrays are vertices, so that a growing buffer can be passed whole. Their common length when omitted.
25
+ * @returns Whether the point is inside; always `false` for fewer than three vertices, since nothing thinner than a triangle holds anything.
26
+ */
27
+ export declare function pointInPolygon(x: number, y: number, xs: Float64Array, ys: Float64Array, vertexCount?: number): boolean;
28
+ /**
29
+ * The rectangle a polygon's vertices span.
30
+ * @param xs - Horizontal position of each vertex.
31
+ * @param ys - Vertical position of each vertex.
32
+ * @param vertexCount - How many leading entries are vertices. Their common length when omitted.
33
+ * @returns The rectangle, or `null` when no vertex has two finite coordinates. Vertices that do not are left out rather than poisoning the bounds with a `NaN`.
34
+ */
35
+ export declare function polygonBounds(xs: Float64Array, ys: Float64Array, vertexCount?: number): PixelBounds | null;
36
+ /**
37
+ * Which of many points fall inside a polygon.
38
+ *
39
+ * Each point is measured against the polygon's rectangle first, which is four
40
+ * comparisons and rejects nearly every point of a cloud that a lasso has
41
+ * enclosed a corner of; only the survivors pay for a walk over every edge. The
42
+ * saving is the whole reason the prefilter is here: a released lasso has a
43
+ * vertex for every few pixels the pointer travelled, so the unfiltered cost is
44
+ * the point count times a few hundred, per drag, on the frame the user is
45
+ * waiting for.
46
+ *
47
+ * Nothing is allocated per point. The rectangle is computed once, the answer
48
+ * is written into the mask, and the mask itself is reused when the caller
49
+ * hands one of the right size back.
50
+ * @param points - Where every point sits on screen.
51
+ * @param xs - Horizontal position of each vertex.
52
+ * @param ys - Vertical position of each vertex.
53
+ * @param vertexCount - How many leading entries are vertices. Their common length when omitted.
54
+ * @param into - A mask to write into, so a drag does not allocate one per frame. It is used only when it already has one entry per point; otherwise a new one is allocated, because silently answering about a different number of points is worse than the allocation.
55
+ * @returns One entry per point, `1` for inside and `0` for outside. All zeros for fewer than three vertices.
56
+ */
57
+ export declare function pointsInPolygon(points: ScreenPoints, xs: Float64Array, ys: Float64Array, vertexCount?: number, into?: Uint8Array): Uint8Array;
58
+ //# sourceMappingURL=polygon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polygon.d.ts","sourceRoot":"","sources":["../../../src/scatter/core/polygon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,EAAE,EAAE,YAAY,EAChB,EAAE,EAAE,YAAY,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAwBT;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,YAAY,EAChB,EAAE,EAAE,YAAY,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,WAAW,GAAG,IAAI,CAmBpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,EACpB,EAAE,EAAE,YAAY,EAChB,EAAE,EAAE,YAAY,EAChB,WAAW,CAAC,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,UAAU,GAChB,UAAU,CAyBZ"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Whether a point falls inside a polygon.
3
+ *
4
+ * A ray cast from the point towards growing x, counting the edges it crosses:
5
+ * an odd count is inside, an even one is outside. Both tests that decide a
6
+ * crossing are half-open, and that is what settles the boundary. An edge is
7
+ * only considered for the ys it spans from its lower end up to, but not
8
+ * including, its upper end; and the crossing has to sit strictly beyond the
9
+ * point. So on the square `(0,0) (10,0) (10,10) (0,10)` the two edges meeting
10
+ * at `(0,0)` count as inside — `(5,0)` and `(0,5)` are in — while the two
11
+ * meeting at `(10,10)` count as outside, and `(5,10)` and `(10,5)` are out. Of
12
+ * the four corners only `(0,0)` is inside; `(10,0)`, `(0,10)` and `(10,10)`
13
+ * are not.
14
+ *
15
+ * The asymmetry is the point of the convention rather than an accident of it:
16
+ * it is what stops two polygons sharing an edge from both claiming the samples
17
+ * that lie along it, and what keeps a point from toggling in and out as a
18
+ * lasso is dragged a hundredth of a pixel.
19
+ * @param x - Horizontal position of the point, in pixels.
20
+ * @param y - Vertical position of the point, in pixels.
21
+ * @param xs - Horizontal position of each vertex, in order around the ring; the ring is closed for you.
22
+ * @param ys - Vertical position of each vertex, in the same order.
23
+ * @param vertexCount - How many leading entries of the two arrays are vertices, so that a growing buffer can be passed whole. Their common length when omitted.
24
+ * @returns Whether the point is inside; always `false` for fewer than three vertices, since nothing thinner than a triangle holds anything.
25
+ */
26
+ export function pointInPolygon(x, y, xs, ys, vertexCount) {
27
+ const count = usableVertexCount(xs, ys, vertexCount);
28
+ if (count < 3)
29
+ return false;
30
+ if (!Number.isFinite(x) || !Number.isFinite(y))
31
+ return false;
32
+ let previousX = xs[count - 1];
33
+ let previousY = ys[count - 1];
34
+ if (previousX === undefined || previousY === undefined)
35
+ return false;
36
+ let inside = false;
37
+ for (let index = 0; index < count; index++) {
38
+ const currentX = xs[index];
39
+ const currentY = ys[index];
40
+ if (currentX === undefined || currentY === undefined)
41
+ break;
42
+ if (currentY > y !== previousY > y) {
43
+ const crossing = ((previousX - currentX) * (y - currentY)) / (previousY - currentY) +
44
+ currentX;
45
+ if (x < crossing)
46
+ inside = !inside;
47
+ }
48
+ previousX = currentX;
49
+ previousY = currentY;
50
+ }
51
+ return inside;
52
+ }
53
+ /**
54
+ * The rectangle a polygon's vertices span.
55
+ * @param xs - Horizontal position of each vertex.
56
+ * @param ys - Vertical position of each vertex.
57
+ * @param vertexCount - How many leading entries are vertices. Their common length when omitted.
58
+ * @returns The rectangle, or `null` when no vertex has two finite coordinates. Vertices that do not are left out rather than poisoning the bounds with a `NaN`.
59
+ */
60
+ export function polygonBounds(xs, ys, vertexCount) {
61
+ const count = usableVertexCount(xs, ys, vertexCount);
62
+ let minX = Number.POSITIVE_INFINITY;
63
+ let minY = Number.POSITIVE_INFINITY;
64
+ let maxX = Number.NEGATIVE_INFINITY;
65
+ let maxY = Number.NEGATIVE_INFINITY;
66
+ let bounded = false;
67
+ for (let index = 0; index < count; index++) {
68
+ const vertexX = xs[index];
69
+ const vertexY = ys[index];
70
+ if (vertexX === undefined || vertexY === undefined)
71
+ break;
72
+ if (!Number.isFinite(vertexX) || !Number.isFinite(vertexY))
73
+ continue;
74
+ if (vertexX < minX)
75
+ minX = vertexX;
76
+ if (vertexX > maxX)
77
+ maxX = vertexX;
78
+ if (vertexY < minY)
79
+ minY = vertexY;
80
+ if (vertexY > maxY)
81
+ maxY = vertexY;
82
+ bounded = true;
83
+ }
84
+ return bounded ? { minX, minY, maxX, maxY } : null;
85
+ }
86
+ /**
87
+ * Which of many points fall inside a polygon.
88
+ *
89
+ * Each point is measured against the polygon's rectangle first, which is four
90
+ * comparisons and rejects nearly every point of a cloud that a lasso has
91
+ * enclosed a corner of; only the survivors pay for a walk over every edge. The
92
+ * saving is the whole reason the prefilter is here: a released lasso has a
93
+ * vertex for every few pixels the pointer travelled, so the unfiltered cost is
94
+ * the point count times a few hundred, per drag, on the frame the user is
95
+ * waiting for.
96
+ *
97
+ * Nothing is allocated per point. The rectangle is computed once, the answer
98
+ * is written into the mask, and the mask itself is reused when the caller
99
+ * hands one of the right size back.
100
+ * @param points - Where every point sits on screen.
101
+ * @param xs - Horizontal position of each vertex.
102
+ * @param ys - Vertical position of each vertex.
103
+ * @param vertexCount - How many leading entries are vertices. Their common length when omitted.
104
+ * @param into - A mask to write into, so a drag does not allocate one per frame. It is used only when it already has one entry per point; otherwise a new one is allocated, because silently answering about a different number of points is worse than the allocation.
105
+ * @returns One entry per point, `1` for inside and `0` for outside. All zeros for fewer than three vertices.
106
+ */
107
+ export function pointsInPolygon(points, xs, ys, vertexCount, into) {
108
+ const pointsX = points.x;
109
+ const pointsY = points.y;
110
+ const total = Math.min(pointsX.length, pointsY.length);
111
+ const mask = into?.length === total ? into : new Uint8Array(total);
112
+ const count = usableVertexCount(xs, ys, vertexCount);
113
+ const bounds = count < 3 ? null : polygonBounds(xs, ys, count);
114
+ if (bounds === null) {
115
+ mask.fill(0);
116
+ return mask;
117
+ }
118
+ const { minX, minY, maxX, maxY } = bounds;
119
+ for (let index = 0; index < total; index++) {
120
+ const pointX = pointsX[index];
121
+ const pointY = pointsY[index];
122
+ if (pointX === undefined || pointY === undefined)
123
+ break;
124
+ if (pointX < minX || pointX > maxX || pointY < minY || pointY > maxY) {
125
+ mask[index] = 0;
126
+ continue;
127
+ }
128
+ mask[index] = pointInPolygon(pointX, pointY, xs, ys, count) ? 1 : 0;
129
+ }
130
+ return mask;
131
+ }
132
+ function usableVertexCount(xs, ys, vertexCount) {
133
+ const available = Math.min(xs.length, ys.length);
134
+ if (vertexCount === undefined)
135
+ return available;
136
+ if (!Number.isFinite(vertexCount))
137
+ return 0;
138
+ return Math.max(0, Math.min(available, Math.floor(vertexCount)));
139
+ }
140
+ //# sourceMappingURL=polygon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polygon.js","sourceRoot":"","sources":["../../../src/scatter/core/polygon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /** How a fresh set of hits joins the selection that is already on screen. */
2
+ export type ScatterSelectionMode = 'replace' | 'add' | 'remove';
3
+ /**
4
+ * The selection a gesture leaves behind, from the one before it and its hits.
5
+ *
6
+ * The result is always as long as `base`, because that is the cloud's own
7
+ * length and the only length a selection is meaningful at. A `hits` mask that
8
+ * is short leaves the points past its end untouched — an honest reading of "no
9
+ * hit there" — rather than throwing at the end of a drag.
10
+ *
11
+ * Every entry written is `0` or `1`, so a mask that has been through this
12
+ * function can be compared with `toStrictEqual` and handed to a renderer that
13
+ * only checks for truthiness, whatever the caller filled its input with.
14
+ * @param base - The selection before the gesture, one entry per point.
15
+ * @param hits - The points the gesture caught, one entry per point; a non-zero entry is a hit.
16
+ * @param mode - Whether the hits stand alone, join the selection, or leave it.
17
+ * @param into - A mask to write into, so a drag does not allocate one per frame. It is used only when it already has one entry per point; otherwise a new one is allocated.
18
+ * @returns The new selection, one `0` or `1` per point.
19
+ */
20
+ export declare function mergeScatterSelection(base: Uint8Array, hits: Uint8Array, mode: ScatterSelectionMode, into?: Uint8Array): Uint8Array;
21
+ /**
22
+ * Which points a mask has selected, as their indices.
23
+ *
24
+ * The list is what a caller reports, serialises or hands to a table, so it is
25
+ * a plain array of numbers and not a third mask; it comes out ascending
26
+ * because the mask is read in order.
27
+ * @param mask - One entry per point; a non-zero entry is selected.
28
+ * @returns The selected indices, ascending.
29
+ */
30
+ export declare function scatterSelectedIndices(mask: Uint8Array): number[];
31
+ /**
32
+ * A mask over a cloud, from the indices that are selected.
33
+ *
34
+ * The inverse of {@link scatterSelectedIndices}, and the door a selection
35
+ * restored from a URL or a parent component comes in through. An index that is
36
+ * negative, past the end, or not a whole number is dropped rather than
37
+ * throwing: those lists arrive from outside, and a stale index in one is a
38
+ * reason to select one point fewer, not to fail a render.
39
+ * @param indices - The selected indices, in any order and possibly repeated.
40
+ * @param count - How many points the cloud holds.
41
+ * @returns One `0` or `1` per point.
42
+ */
43
+ export declare function scatterSelectionMask(indices: Iterable<number>, count: number): Uint8Array;
44
+ //# sourceMappingURL=scatterSelection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scatterSelection.d.ts","sourceRoot":"","sources":["../../../src/scatter/core/scatterSelection.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEhE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,oBAAoB,EAC1B,IAAI,CAAC,EAAE,UAAU,GAChB,UAAU,CAkBZ;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,CAOjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EACzB,KAAK,EAAE,MAAM,GACZ,UAAU,CASZ"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * The selection a gesture leaves behind, from the one before it and its hits.
3
+ *
4
+ * The result is always as long as `base`, because that is the cloud's own
5
+ * length and the only length a selection is meaningful at. A `hits` mask that
6
+ * is short leaves the points past its end untouched — an honest reading of "no
7
+ * hit there" — rather than throwing at the end of a drag.
8
+ *
9
+ * Every entry written is `0` or `1`, so a mask that has been through this
10
+ * function can be compared with `toStrictEqual` and handed to a renderer that
11
+ * only checks for truthiness, whatever the caller filled its input with.
12
+ * @param base - The selection before the gesture, one entry per point.
13
+ * @param hits - The points the gesture caught, one entry per point; a non-zero entry is a hit.
14
+ * @param mode - Whether the hits stand alone, join the selection, or leave it.
15
+ * @param into - A mask to write into, so a drag does not allocate one per frame. It is used only when it already has one entry per point; otherwise a new one is allocated.
16
+ * @returns The new selection, one `0` or `1` per point.
17
+ */
18
+ export function mergeScatterSelection(base, hits, mode, into) {
19
+ const total = base.length;
20
+ const merged = into?.length === total ? into : new Uint8Array(total);
21
+ const replacing = mode === 'replace';
22
+ const removing = mode === 'remove';
23
+ for (let index = 0; index < total; index++) {
24
+ const previous = base[index];
25
+ const hit = hits[index];
26
+ const wasSelected = previous !== undefined && previous !== 0;
27
+ const isHit = hit !== undefined && hit !== 0;
28
+ let selected;
29
+ if (replacing)
30
+ selected = isHit;
31
+ else if (removing)
32
+ selected = wasSelected && !isHit;
33
+ else
34
+ selected = wasSelected || isHit;
35
+ merged[index] = selected ? 1 : 0;
36
+ }
37
+ return merged;
38
+ }
39
+ /**
40
+ * Which points a mask has selected, as their indices.
41
+ *
42
+ * The list is what a caller reports, serialises or hands to a table, so it is
43
+ * a plain array of numbers and not a third mask; it comes out ascending
44
+ * because the mask is read in order.
45
+ * @param mask - One entry per point; a non-zero entry is selected.
46
+ * @returns The selected indices, ascending.
47
+ */
48
+ export function scatterSelectedIndices(mask) {
49
+ const indices = [];
50
+ for (let index = 0; index < mask.length; index++) {
51
+ const flag = mask[index];
52
+ if (flag !== undefined && flag !== 0)
53
+ indices.push(index);
54
+ }
55
+ return indices;
56
+ }
57
+ /**
58
+ * A mask over a cloud, from the indices that are selected.
59
+ *
60
+ * The inverse of {@link scatterSelectedIndices}, and the door a selection
61
+ * restored from a URL or a parent component comes in through. An index that is
62
+ * negative, past the end, or not a whole number is dropped rather than
63
+ * throwing: those lists arrive from outside, and a stale index in one is a
64
+ * reason to select one point fewer, not to fail a render.
65
+ * @param indices - The selected indices, in any order and possibly repeated.
66
+ * @param count - How many points the cloud holds.
67
+ * @returns One `0` or `1` per point.
68
+ */
69
+ export function scatterSelectionMask(indices, count) {
70
+ const total = Number.isFinite(count) ? Math.max(0, Math.floor(count)) : 0;
71
+ const mask = new Uint8Array(total);
72
+ for (const index of indices) {
73
+ if (!Number.isInteger(index))
74
+ continue;
75
+ if (index < 0 || index >= total)
76
+ continue;
77
+ mask[index] = 1;
78
+ }
79
+ return mask;
80
+ }
81
+ //# sourceMappingURL=scatterSelection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scatterSelection.js","sourceRoot":"","sources":["../../../src/scatter/core/scatterSelection.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAgB,EAChB,IAAgB,EAChB,IAA0B,EAC1B,IAAiB;IAEjB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAErE,MAAM,SAAS,GAAG,IAAI,KAAK,SAAS,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,KAAK,QAAQ,CAAC;IACnC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,WAAW,GAAG,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,CAAC,CAAC;QAC7C,IAAI,QAAiB,CAAC;QACtB,IAAI,SAAS;YAAE,QAAQ,GAAG,KAAK,CAAC;aAC3B,IAAI,QAAQ;YAAE,QAAQ,GAAG,WAAW,IAAI,CAAC,KAAK,CAAC;;YAC/C,QAAQ,GAAG,WAAW,IAAI,KAAK,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAgB;IACrD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAyB,EACzB,KAAa;IAEb,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,SAAS;QACvC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,KAAK;YAAE,SAAS;QAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Where every point sits on screen, as two parallel arrays.
3
+ *
4
+ * Parallel typed arrays rather than an array of objects: the hit tests are the
5
+ * only code that reads them, they read them in index order, and an `{ x, y }`
6
+ * per point would allocate one object per sample on every relayout.
7
+ */
8
+ export interface ScreenPoints {
9
+ /** Horizontal position of each point, in pixels from the plot's left. */
10
+ x: Float64Array;
11
+ /** Vertical position of each point, in pixels from the plot's top. */
12
+ y: Float64Array;
13
+ }
14
+ /** The rectangle a set of coordinates spans, in pixels. */
15
+ export interface PixelBounds {
16
+ /** Smallest horizontal position. */
17
+ minX: number;
18
+ /** Smallest vertical position. */
19
+ minY: number;
20
+ /** Largest horizontal position. */
21
+ maxX: number;
22
+ /** Largest vertical position. */
23
+ maxY: number;
24
+ }
25
+ /**
26
+ * The point nearest a position, when one is close enough to have been aimed at.
27
+ *
28
+ * Distances are compared squared. The caller only ever ranks them, so the
29
+ * square root would be computed once per point on every pointer move and then
30
+ * thrown away; a hover test over twenty thousand points is exactly where that
31
+ * is not affordable.
32
+ *
33
+ * A tie goes to the lower index. Two points that land on the same pixel then
34
+ * resolve the same way twice running, instead of the readout flickering
35
+ * between them as the pointer jitters.
36
+ * @param points - Where every point sits on screen.
37
+ * @param x - Horizontal position to search from, in pixels from the plot's left.
38
+ * @param y - Vertical position to search from, in pixels from the plot's top.
39
+ * @param radius - How far from that position to look, in pixels; a point exactly that far away still counts.
40
+ * @param included - One entry per point, a zero meaning the point cannot be hit. Every point can be hit when it is omitted, and a point past the end of a shorter mask cannot.
41
+ * @returns The index of the nearest point within the radius, or `-1` when no point is within it.
42
+ */
43
+ export declare function nearestPointIndex(points: ScreenPoints, x: number, y: number, radius: number, included?: Uint8Array): number;
44
+ /**
45
+ * Which points fall inside a rectangle.
46
+ *
47
+ * A zoomed plot draws only part of its cloud, and the dots left outside the
48
+ * frame are clipped rather than dropped: they are still in the coordinate
49
+ * arrays, still one pixel away from the frame's edge, and still the nearest
50
+ * point to a pointer resting just inside it. Without this mask a reader
51
+ * zoomed in on one crowd gets hover cards about samples they cannot see.
52
+ * @param points - Where every point sits on screen.
53
+ * @param bounds - The rectangle, normally the plot's own; a point on an edge is inside it.
54
+ * @param into - A mask to write into, so a resize does not allocate one per frame. It is used only when it already has one entry per point.
55
+ * @returns One entry per point, `1` for inside.
56
+ */
57
+ export declare function pointsWithinBounds(points: ScreenPoints, bounds: PixelBounds, into?: Uint8Array): Uint8Array;
58
+ //# sourceMappingURL=screenPoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screenPoints.d.ts","sourceRoot":"","sources":["../../../src/scatter/core/screenPoints.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,yEAAyE;IACzE,CAAC,EAAE,YAAY,CAAC;IAChB,sEAAsE;IACtE,CAAC,EAAE,YAAY,CAAC;CACjB;AAED,2DAA2D;AAC3D,MAAM,WAAW,WAAW;IAC1B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,YAAY,EACpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,UAAU,GACpB,MAAM,CA2BR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,WAAW,EACnB,IAAI,CAAC,EAAE,UAAU,GAChB,UAAU,CAaZ"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * The point nearest a position, when one is close enough to have been aimed at.
3
+ *
4
+ * Distances are compared squared. The caller only ever ranks them, so the
5
+ * square root would be computed once per point on every pointer move and then
6
+ * thrown away; a hover test over twenty thousand points is exactly where that
7
+ * is not affordable.
8
+ *
9
+ * A tie goes to the lower index. Two points that land on the same pixel then
10
+ * resolve the same way twice running, instead of the readout flickering
11
+ * between them as the pointer jitters.
12
+ * @param points - Where every point sits on screen.
13
+ * @param x - Horizontal position to search from, in pixels from the plot's left.
14
+ * @param y - Vertical position to search from, in pixels from the plot's top.
15
+ * @param radius - How far from that position to look, in pixels; a point exactly that far away still counts.
16
+ * @param included - One entry per point, a zero meaning the point cannot be hit. Every point can be hit when it is omitted, and a point past the end of a shorter mask cannot.
17
+ * @returns The index of the nearest point within the radius, or `-1` when no point is within it.
18
+ */
19
+ export function nearestPointIndex(points, x, y, radius, included) {
20
+ if (!Number.isFinite(x) || !Number.isFinite(y) || !Number.isFinite(radius)) {
21
+ return -1;
22
+ }
23
+ const xs = points.x;
24
+ const ys = points.y;
25
+ let count = Math.min(xs.length, ys.length);
26
+ if (included !== undefined)
27
+ count = Math.min(count, included.length);
28
+ const limit = radius * radius;
29
+ let nearest = -1;
30
+ let nearestDistance = 0;
31
+ for (let index = 0; index < count; index++) {
32
+ if (included?.[index] === 0)
33
+ continue;
34
+ const pointX = xs[index];
35
+ const pointY = ys[index];
36
+ if (pointX === undefined || pointY === undefined)
37
+ break;
38
+ const deltaX = pointX - x;
39
+ const deltaY = pointY - y;
40
+ const distance = deltaX * deltaX + deltaY * deltaY;
41
+ if (distance > limit)
42
+ continue;
43
+ if (nearest === -1 || distance < nearestDistance) {
44
+ nearest = index;
45
+ nearestDistance = distance;
46
+ }
47
+ }
48
+ return nearest;
49
+ }
50
+ /**
51
+ * Which points fall inside a rectangle.
52
+ *
53
+ * A zoomed plot draws only part of its cloud, and the dots left outside the
54
+ * frame are clipped rather than dropped: they are still in the coordinate
55
+ * arrays, still one pixel away from the frame's edge, and still the nearest
56
+ * point to a pointer resting just inside it. Without this mask a reader
57
+ * zoomed in on one crowd gets hover cards about samples they cannot see.
58
+ * @param points - Where every point sits on screen.
59
+ * @param bounds - The rectangle, normally the plot's own; a point on an edge is inside it.
60
+ * @param into - A mask to write into, so a resize does not allocate one per frame. It is used only when it already has one entry per point.
61
+ * @returns One entry per point, `1` for inside.
62
+ */
63
+ export function pointsWithinBounds(points, bounds, into) {
64
+ const xs = points.x;
65
+ const ys = points.y;
66
+ const count = Math.min(xs.length, ys.length);
67
+ const mask = into?.length === count ? into.fill(0) : new Uint8Array(count);
68
+ const { minX, minY, maxX, maxY } = bounds;
69
+ for (let index = 0; index < count; index++) {
70
+ const x = xs[index] ?? Number.NaN;
71
+ const y = ys[index] ?? Number.NaN;
72
+ if (x < minX || x > maxX || y < minY || y > maxY)
73
+ continue;
74
+ mask[index] = 1;
75
+ }
76
+ return mask;
77
+ }
78
+ //# sourceMappingURL=screenPoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screenPoints.js","sourceRoot":"","sources":["../../../src/scatter/core/screenPoints.ts"],"names":[],"mappings":"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"}