react-cheminfo 0.10.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 (288) hide show
  1. package/lib/chrome/ui/NavLink.d.ts.map +1 -1
  2. package/lib/chrome/ui/NavLink.js +4 -3
  3. package/lib/chrome/ui/NavLink.js.map +1 -1
  4. package/lib/chrome/ui/SiteFooter.d.ts +8 -0
  5. package/lib/chrome/ui/SiteFooter.d.ts.map +1 -1
  6. package/lib/chrome/ui/SiteFooter.js +7 -2
  7. package/lib/chrome/ui/SiteFooter.js.map +1 -1
  8. package/lib/chrome/ui/SiteHeader.d.ts +11 -0
  9. package/lib/chrome/ui/SiteHeader.d.ts.map +1 -1
  10. package/lib/chrome/ui/SiteHeader.js +7 -2
  11. package/lib/chrome/ui/SiteHeader.js.map +1 -1
  12. package/lib/chrome/ui/navItem.d.ts +12 -0
  13. package/lib/chrome/ui/navItem.d.ts.map +1 -1
  14. package/lib/chrome/ui/navItem.js.map +1 -1
  15. package/lib/core.d.ts +1 -0
  16. package/lib/core.d.ts.map +1 -1
  17. package/lib/core.js +1 -0
  18. package/lib/core.js.map +1 -1
  19. package/lib/download/core/figureLegend.d.ts +90 -0
  20. package/lib/download/core/figureLegend.d.ts.map +1 -0
  21. package/lib/download/core/figureLegend.js +77 -0
  22. package/lib/download/core/figureLegend.js.map +1 -0
  23. package/lib/download/core/figureSvg.d.ts.map +1 -1
  24. package/lib/download/core/figureSvg.js +71 -1
  25. package/lib/download/core/figureSvg.js.map +1 -1
  26. package/lib/download/core/figureSvgDocument.d.ts +9 -2
  27. package/lib/download/core/figureSvgDocument.d.ts.map +1 -1
  28. package/lib/download/core/figureSvgDocument.js +4 -1
  29. package/lib/download/core/figureSvgDocument.js.map +1 -1
  30. package/lib/download/core/figureTarget.d.ts +11 -0
  31. package/lib/download/core/figureTarget.d.ts.map +1 -1
  32. package/lib/download/core/figureTarget.js +19 -0
  33. package/lib/download/core/figureTarget.js.map +1 -1
  34. package/lib/download/core/index.d.ts +3 -1
  35. package/lib/download/core/index.d.ts.map +1 -1
  36. package/lib/download/core/index.js +2 -1
  37. package/lib/download/core/index.js.map +1 -1
  38. package/lib/ecosystem/core/sites.d.ts +1 -1
  39. package/lib/ecosystem/core/sites.d.ts.map +1 -1
  40. package/lib/ecosystem/core/sites.js +13 -0
  41. package/lib/ecosystem/core/sites.js.map +1 -1
  42. package/lib/ecosystem/ui/glyphs.d.ts.map +1 -1
  43. package/lib/ecosystem/ui/glyphs.js +5 -0
  44. package/lib/ecosystem/ui/glyphs.js.map +1 -1
  45. package/lib/overlay/ui/OverlayLegend.d.ts.map +1 -1
  46. package/lib/overlay/ui/OverlayLegend.js +1 -1
  47. package/lib/overlay/ui/OverlayLegend.js.map +1 -1
  48. package/lib/projection/core/projectionCopy.d.ts +4 -0
  49. package/lib/projection/core/projectionCopy.d.ts.map +1 -1
  50. package/lib/projection/core/projectionCopy.js +3 -0
  51. package/lib/projection/core/projectionCopy.js.map +1 -1
  52. package/lib/projection/core/projectionOptions.d.ts +12 -0
  53. package/lib/projection/core/projectionOptions.d.ts.map +1 -1
  54. package/lib/projection/core/projectionOptions.js +27 -1
  55. package/lib/projection/core/projectionOptions.js.map +1 -1
  56. package/lib/projection/core/projectionStrings.d.ts +4 -0
  57. package/lib/projection/core/projectionStrings.d.ts.map +1 -1
  58. package/lib/projection/core/projectionStrings.js +14 -0
  59. package/lib/projection/core/projectionStrings.js.map +1 -1
  60. package/lib/projection/core/projectionTabDefaults.d.ts.map +1 -1
  61. package/lib/projection/core/projectionTabDefaults.js +12 -0
  62. package/lib/projection/core/projectionTabDefaults.js.map +1 -1
  63. package/lib/projection/core/projectionTabs.d.ts +1 -1
  64. package/lib/projection/core/projectionTabs.d.ts.map +1 -1
  65. package/lib/projection/core/projectionTabs.js +9 -0
  66. package/lib/projection/core/projectionTabs.js.map +1 -1
  67. package/lib/projection/ui/ProjectionMapTab.d.ts +6 -0
  68. package/lib/projection/ui/ProjectionMapTab.d.ts.map +1 -1
  69. package/lib/projection/ui/ProjectionMapTab.js +2 -1
  70. package/lib/projection/ui/ProjectionMapTab.js.map +1 -1
  71. package/lib/projection/ui/ProjectionPanel.d.ts +6 -0
  72. package/lib/projection/ui/ProjectionPanel.d.ts.map +1 -1
  73. package/lib/projection/ui/ProjectionPanel.js +15 -1
  74. package/lib/projection/ui/ProjectionPanel.js.map +1 -1
  75. package/lib/projection/ui/ProjectionReadout.d.ts +7 -0
  76. package/lib/projection/ui/ProjectionReadout.d.ts.map +1 -1
  77. package/lib/projection/ui/ProjectionReadout.js +5 -4
  78. package/lib/projection/ui/ProjectionReadout.js.map +1 -1
  79. package/lib/projection/ui/ProjectionSpaceControls.d.ts +51 -0
  80. package/lib/projection/ui/ProjectionSpaceControls.d.ts.map +1 -0
  81. package/lib/projection/ui/ProjectionSpaceControls.js +71 -0
  82. package/lib/projection/ui/ProjectionSpaceControls.js.map +1 -0
  83. package/lib/projection/ui/ProjectionSpaceMore.d.ts +32 -0
  84. package/lib/projection/ui/ProjectionSpaceMore.d.ts.map +1 -0
  85. package/lib/projection/ui/ProjectionSpaceMore.js +57 -0
  86. package/lib/projection/ui/ProjectionSpaceMore.js.map +1 -0
  87. package/lib/projection/ui/ProjectionSpaceTab.d.ts +98 -0
  88. package/lib/projection/ui/ProjectionSpaceTab.d.ts.map +1 -0
  89. package/lib/projection/ui/ProjectionSpaceTab.js +66 -0
  90. package/lib/projection/ui/ProjectionSpaceTab.js.map +1 -0
  91. package/lib/projection/ui/ProjectionViewer.d.ts +1 -0
  92. package/lib/projection/ui/ProjectionViewer.d.ts.map +1 -1
  93. package/lib/projection/ui/ProjectionViewer.js +2 -1
  94. package/lib/projection/ui/ProjectionViewer.js.map +1 -1
  95. package/lib/projection/ui/index.d.ts +1 -0
  96. package/lib/projection/ui/index.d.ts.map +1 -1
  97. package/lib/projection/ui/index.js.map +1 -1
  98. package/lib/projection/ui/projectionBarModel.d.ts.map +1 -1
  99. package/lib/projection/ui/projectionBarModel.js +3 -2
  100. package/lib/projection/ui/projectionBarModel.js.map +1 -1
  101. package/lib/projection/ui/projectionBarReadings.d.ts.map +1 -1
  102. package/lib/projection/ui/projectionBarReadings.js +17 -0
  103. package/lib/projection/ui/projectionBarReadings.js.map +1 -1
  104. package/lib/projection/ui/projectionBarSlots.d.ts.map +1 -1
  105. package/lib/projection/ui/projectionBarSlots.js +17 -0
  106. package/lib/projection/ui/projectionBarSlots.js.map +1 -1
  107. package/lib/projection/ui/projectionCloudChoices.d.ts +18 -0
  108. package/lib/projection/ui/projectionCloudChoices.d.ts.map +1 -0
  109. package/lib/projection/ui/projectionCloudChoices.js +19 -0
  110. package/lib/projection/ui/projectionCloudChoices.js.map +1 -0
  111. package/lib/projection/ui/projectionEllipsoid.d.ts +38 -0
  112. package/lib/projection/ui/projectionEllipsoid.d.ts.map +1 -0
  113. package/lib/projection/ui/projectionEllipsoid.js +71 -0
  114. package/lib/projection/ui/projectionEllipsoid.js.map +1 -0
  115. package/lib/projection/ui/projectionMapChrome.d.ts +8 -0
  116. package/lib/projection/ui/projectionMapChrome.d.ts.map +1 -1
  117. package/lib/projection/ui/projectionMapChrome.js +10 -6
  118. package/lib/projection/ui/projectionMapChrome.js.map +1 -1
  119. package/lib/projection/ui/projectionMapView.d.ts +13 -0
  120. package/lib/projection/ui/projectionMapView.d.ts.map +1 -1
  121. package/lib/projection/ui/projectionMapView.js +26 -0
  122. package/lib/projection/ui/projectionMapView.js.map +1 -1
  123. package/lib/projection/ui/projectionSpaceModel.d.ts +14 -0
  124. package/lib/projection/ui/projectionSpaceModel.d.ts.map +1 -0
  125. package/lib/projection/ui/projectionSpaceModel.js +14 -0
  126. package/lib/projection/ui/projectionSpaceModel.js.map +1 -0
  127. package/lib/projection/ui/projectionViewerProps.d.ts +34 -0
  128. package/lib/projection/ui/projectionViewerProps.d.ts.map +1 -1
  129. package/lib/scatter/ui/ScatterPlot.d.ts +1 -1
  130. package/lib/scatter/ui/ScatterPlot.d.ts.map +1 -1
  131. package/lib/scatter/ui/ScatterPlot.js +18 -2
  132. package/lib/scatter/ui/ScatterPlot.js.map +1 -1
  133. package/lib/scatter/ui/lassoGesture.d.ts +14 -2
  134. package/lib/scatter/ui/lassoGesture.d.ts.map +1 -1
  135. package/lib/scatter/ui/lassoGesture.js +4 -1
  136. package/lib/scatter/ui/lassoGesture.js.map +1 -1
  137. package/lib/scatter/ui/scatterPlotProps.d.ts +34 -0
  138. package/lib/scatter/ui/scatterPlotProps.d.ts.map +1 -1
  139. package/lib/scatter/ui/useScatterInteraction.d.ts +9 -0
  140. package/lib/scatter/ui/useScatterInteraction.d.ts.map +1 -1
  141. package/lib/scatter/ui/useScatterInteraction.js +9 -1
  142. package/lib/scatter/ui/useScatterInteraction.js.map +1 -1
  143. package/lib/scatter3d/core/cloudGesture.d.ts +17 -0
  144. package/lib/scatter3d/core/cloudGesture.d.ts.map +1 -0
  145. package/lib/scatter3d/core/cloudGesture.js +2 -0
  146. package/lib/scatter3d/core/cloudGesture.js.map +1 -0
  147. package/lib/scatter3d/core/confidenceEllipsoid.d.ts +63 -0
  148. package/lib/scatter3d/core/confidenceEllipsoid.d.ts.map +1 -0
  149. package/lib/scatter3d/core/confidenceEllipsoid.js +128 -0
  150. package/lib/scatter3d/core/confidenceEllipsoid.js.map +1 -0
  151. package/lib/scatter3d/core/cubeFrame.d.ts +40 -0
  152. package/lib/scatter3d/core/cubeFrame.d.ts.map +1 -0
  153. package/lib/scatter3d/core/cubeFrame.js +58 -0
  154. package/lib/scatter3d/core/cubeFrame.js.map +1 -0
  155. package/lib/scatter3d/core/cubePoints.d.ts +35 -0
  156. package/lib/scatter3d/core/cubePoints.d.ts.map +1 -0
  157. package/lib/scatter3d/core/cubePoints.js +50 -0
  158. package/lib/scatter3d/core/cubePoints.js.map +1 -0
  159. package/lib/scatter3d/core/ellipsoidCoverage.d.ts +32 -0
  160. package/lib/scatter3d/core/ellipsoidCoverage.d.ts.map +1 -0
  161. package/lib/scatter3d/core/ellipsoidCoverage.js +83 -0
  162. package/lib/scatter3d/core/ellipsoidCoverage.js.map +1 -0
  163. package/lib/scatter3d/core/ellipsoidSilhouette.d.ts +42 -0
  164. package/lib/scatter3d/core/ellipsoidSilhouette.d.ts.map +1 -0
  165. package/lib/scatter3d/core/ellipsoidSilhouette.js +52 -0
  166. package/lib/scatter3d/core/ellipsoidSilhouette.js.map +1 -0
  167. package/lib/scatter3d/core/index.d.ts +29 -0
  168. package/lib/scatter3d/core/index.d.ts.map +1 -0
  169. package/lib/scatter3d/core/index.js +22 -0
  170. package/lib/scatter3d/core/index.js.map +1 -0
  171. package/lib/scatter3d/core/orbitCamera.d.ts +113 -0
  172. package/lib/scatter3d/core/orbitCamera.d.ts.map +1 -0
  173. package/lib/scatter3d/core/orbitCamera.js +104 -0
  174. package/lib/scatter3d/core/orbitCamera.js.map +1 -0
  175. package/lib/scatter3d/core/symmetricEigen.d.ts +47 -0
  176. package/lib/scatter3d/core/symmetricEigen.d.ts.map +1 -0
  177. package/lib/scatter3d/core/symmetricEigen.js +219 -0
  178. package/lib/scatter3d/core/symmetricEigen.js.map +1 -0
  179. package/lib/scatter3d/ui/CloudFrameLayer.d.ts +33 -0
  180. package/lib/scatter3d/ui/CloudFrameLayer.d.ts.map +1 -0
  181. package/lib/scatter3d/ui/CloudFrameLayer.js +37 -0
  182. package/lib/scatter3d/ui/CloudFrameLayer.js.map +1 -0
  183. package/lib/scatter3d/ui/CloudPointLayer.d.ts +62 -0
  184. package/lib/scatter3d/ui/CloudPointLayer.d.ts.map +1 -0
  185. package/lib/scatter3d/ui/CloudPointLayer.js +67 -0
  186. package/lib/scatter3d/ui/CloudPointLayer.js.map +1 -0
  187. package/lib/scatter3d/ui/CloudShellLayer.d.ts +52 -0
  188. package/lib/scatter3d/ui/CloudShellLayer.d.ts.map +1 -0
  189. package/lib/scatter3d/ui/CloudShellLayer.js +40 -0
  190. package/lib/scatter3d/ui/CloudShellLayer.js.map +1 -0
  191. package/lib/scatter3d/ui/ScatterCloud.d.ts +24 -0
  192. package/lib/scatter3d/ui/ScatterCloud.d.ts.map +1 -0
  193. package/lib/scatter3d/ui/ScatterCloud.js +189 -0
  194. package/lib/scatter3d/ui/ScatterCloud.js.map +1 -0
  195. package/lib/scatter3d/ui/cloudGeometry.d.ts +108 -0
  196. package/lib/scatter3d/ui/cloudGeometry.d.ts.map +1 -0
  197. package/lib/scatter3d/ui/cloudGeometry.js +122 -0
  198. package/lib/scatter3d/ui/cloudGeometry.js.map +1 -0
  199. package/lib/scatter3d/ui/cloudShellStyles.d.ts +36 -0
  200. package/lib/scatter3d/ui/cloudShellStyles.d.ts.map +1 -0
  201. package/lib/scatter3d/ui/cloudShellStyles.js +62 -0
  202. package/lib/scatter3d/ui/cloudShellStyles.js.map +1 -0
  203. package/lib/scatter3d/ui/cloudZoom.d.ts +21 -0
  204. package/lib/scatter3d/ui/cloudZoom.d.ts.map +1 -0
  205. package/lib/scatter3d/ui/cloudZoom.js +22 -0
  206. package/lib/scatter3d/ui/cloudZoom.js.map +1 -0
  207. package/lib/scatter3d/ui/index.d.ts +29 -0
  208. package/lib/scatter3d/ui/index.d.ts.map +1 -0
  209. package/lib/scatter3d/ui/index.js +21 -0
  210. package/lib/scatter3d/ui/index.js.map +1 -0
  211. package/lib/scatter3d/ui/scatterCloudModel.d.ts +60 -0
  212. package/lib/scatter3d/ui/scatterCloudModel.d.ts.map +1 -0
  213. package/lib/scatter3d/ui/scatterCloudModel.js +66 -0
  214. package/lib/scatter3d/ui/scatterCloudModel.js.map +1 -0
  215. package/lib/scatter3d/ui/scatterCloudProps.d.ts +185 -0
  216. package/lib/scatter3d/ui/scatterCloudProps.d.ts.map +1 -0
  217. package/lib/scatter3d/ui/scatterCloudProps.js +9 -0
  218. package/lib/scatter3d/ui/scatterCloudProps.js.map +1 -0
  219. package/lib/scatter3d/ui/useOrbitDrag.d.ts +60 -0
  220. package/lib/scatter3d/ui/useOrbitDrag.d.ts.map +1 -0
  221. package/lib/scatter3d/ui/useOrbitDrag.js +129 -0
  222. package/lib/scatter3d/ui/useOrbitDrag.js.map +1 -0
  223. package/lib/ui.d.ts +1 -0
  224. package/lib/ui.d.ts.map +1 -1
  225. package/lib/ui.js +1 -0
  226. package/lib/ui.js.map +1 -1
  227. package/package.json +1 -1
  228. package/src/chrome/ui/NavLink.tsx +5 -3
  229. package/src/chrome/ui/SiteFooter.tsx +16 -1
  230. package/src/chrome/ui/SiteHeader.tsx +19 -1
  231. package/src/chrome/ui/navItem.ts +12 -0
  232. package/src/core.ts +1 -0
  233. package/src/download/core/figureLegend.ts +167 -0
  234. package/src/download/core/figureSvg.ts +81 -1
  235. package/src/download/core/figureSvgDocument.ts +13 -3
  236. package/src/download/core/figureTarget.ts +21 -0
  237. package/src/download/core/index.ts +8 -0
  238. package/src/ecosystem/core/sites.ts +14 -0
  239. package/src/ecosystem/ui/glyphs.tsx +26 -0
  240. package/src/overlay/ui/OverlayLegend.tsx +7 -1
  241. package/src/projection/core/projectionCopy.ts +9 -0
  242. package/src/projection/core/projectionOptions.ts +48 -3
  243. package/src/projection/core/projectionStrings.ts +16 -0
  244. package/src/projection/core/projectionTabDefaults.ts +12 -0
  245. package/src/projection/core/projectionTabs.ts +10 -1
  246. package/src/projection/ui/ProjectionMapTab.tsx +8 -0
  247. package/src/projection/ui/ProjectionPanel.tsx +63 -0
  248. package/src/projection/ui/ProjectionReadout.tsx +16 -6
  249. package/src/projection/ui/ProjectionSpaceControls.tsx +219 -0
  250. package/src/projection/ui/ProjectionSpaceMore.tsx +169 -0
  251. package/src/projection/ui/ProjectionSpaceTab.tsx +217 -0
  252. package/src/projection/ui/ProjectionViewer.tsx +3 -0
  253. package/src/projection/ui/index.ts +1 -0
  254. package/src/projection/ui/projectionBarModel.ts +3 -2
  255. package/src/projection/ui/projectionBarReadings.ts +18 -0
  256. package/src/projection/ui/projectionBarSlots.tsx +19 -0
  257. package/src/projection/ui/projectionCloudChoices.ts +23 -0
  258. package/src/projection/ui/projectionEllipsoid.ts +78 -0
  259. package/src/projection/ui/projectionMapChrome.ts +26 -5
  260. package/src/projection/ui/projectionMapView.ts +45 -0
  261. package/src/projection/ui/projectionSpaceModel.ts +14 -0
  262. package/src/projection/ui/projectionViewerProps.ts +35 -0
  263. package/src/scatter/ui/ScatterPlot.tsx +21 -2
  264. package/src/scatter/ui/lassoGesture.ts +15 -2
  265. package/src/scatter/ui/scatterPlotProps.ts +35 -0
  266. package/src/scatter/ui/useScatterInteraction.ts +22 -1
  267. package/src/scatter3d/core/cloudGesture.ts +16 -0
  268. package/src/scatter3d/core/confidenceEllipsoid.ts +177 -0
  269. package/src/scatter3d/core/cubeFrame.ts +72 -0
  270. package/src/scatter3d/core/cubePoints.ts +75 -0
  271. package/src/scatter3d/core/ellipsoidCoverage.ts +86 -0
  272. package/src/scatter3d/core/ellipsoidSilhouette.ts +76 -0
  273. package/src/scatter3d/core/index.ts +52 -0
  274. package/src/scatter3d/core/orbitCamera.ts +159 -0
  275. package/src/scatter3d/core/symmetricEigen.ts +273 -0
  276. package/src/scatter3d/ui/CloudFrameLayer.tsx +97 -0
  277. package/src/scatter3d/ui/CloudPointLayer.tsx +132 -0
  278. package/src/scatter3d/ui/CloudShellLayer.tsx +107 -0
  279. package/src/scatter3d/ui/ScatterCloud.tsx +312 -0
  280. package/src/scatter3d/ui/cloudGeometry.ts +200 -0
  281. package/src/scatter3d/ui/cloudShellStyles.ts +74 -0
  282. package/src/scatter3d/ui/cloudZoom.ts +22 -0
  283. package/src/scatter3d/ui/index.ts +41 -0
  284. package/src/scatter3d/ui/scatterCloudModel.ts +98 -0
  285. package/src/scatter3d/ui/scatterCloudProps.ts +191 -0
  286. package/src/scatter3d/ui/useOrbitDrag.ts +220 -0
  287. package/src/ui.ts +1 -0
  288. package/styles/chrome.css +29 -4
@@ -0,0 +1,66 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useMemo } from 'react';
3
+ import { ScatterCloud } from "../../scatter3d/ui/ScatterCloud.js";
4
+ import { ProjectionMapCaption } from "./ProjectionMapCaption.js";
5
+ import { ProjectionMapLegend } from "./ProjectionMapLegend.js";
6
+ import { ProjectionSurface } from "./ProjectionSurface.js";
7
+ import { projectionAxisTitle, projectionMapCloud, projectionScatterGroups, } from "./projectionMapModel.js";
8
+ import { MINIMUM_SHELL_POINTS } from "./projectionSpaceModel.js";
9
+ /**
10
+ * The cloud: the same samples as the map, in a box the reader can turn.
11
+ *
12
+ * It earns a tab of its own rather than a switch on the map because it answers
13
+ * a different question. The map shows the two strongest patterns and is the
14
+ * right picture nine times in ten; the cloud is what a reader reaches for when
15
+ * two groups sit on top of each other there, because a third component often
16
+ * pulls them apart and no flat picture can show that.
17
+ *
18
+ * Everything it can share with the map it does share — the colours, the
19
+ * selection, the lasso, the key, the card and the names — so moving between
20
+ * the two tabs changes the picture and nothing else. What it cannot share is
21
+ * the scale: all three axes are stretched to one box, because a solid seen
22
+ * from an angle has nowhere to put three sets of tick labels, and a box drawn
23
+ * at three scales would tilt a group in a direction the data never did.
24
+ * @param props - See {@link ProjectionSpaceTabProps}.
25
+ * @returns The figure.
26
+ */
27
+ export function ProjectionSpaceTab(props) {
28
+ const { result, groups, options, copy, chrome, width, height } = props;
29
+ const { ids, selected, report = null, camera, zoom } = props;
30
+ const { onCameraChange, onZoomChange, wheelZoom } = props;
31
+ const { onSelectionChange, onHoverChange, hoverCard, testId } = props;
32
+ const { onPointDoubleClick } = props;
33
+ const { scores, fittedCount } = result;
34
+ const { xAxis, yAxis, zAxis, colorBy, pointRadius } = options;
35
+ const { showGroupLabels, showIds, selectMode, cloudGesture } = options;
36
+ const { ellipse: shells } = options;
37
+ const flat = useMemo(() => projectionMapCloud(scores, xAxis, yAxis), [scores, xAxis, yAxis]);
38
+ const depth = useMemo(() => projectionMapCloud(scores, zAxis, zAxis).x, [scores, zAxis]);
39
+ const colored = colorBy === 'group' && groups.entries.length > 0;
40
+ return (_jsx("div", { style: { position: 'relative' }, "data-testid": testId, children: _jsx(ScatterCloud, { x: flat.x, y: flat.y, z: depth, width: width, height: height, xLabel: axisName(result, xAxis), yLabel: axisName(result, yAxis), zLabel: axisName(result, zAxis), groupOf: colored ? groups.groupOf : undefined, groups: colored ? projectionScatterGroups(groups) : undefined, ellipsoid: colored ? shells : null, ellipsoidMinimumPoints: MINIMUM_SHELL_POINTS, showGroupLabels: colored && showGroupLabels, pointLabels: showIds ? ids : undefined, pointRadius: pointRadius, outlinedFrom: fittedCount, selected: selected, onSelectionChange: onSelectionChange, selectMode: selectMode, onHoverChange: onHoverChange, onPointDoubleClick: onPointDoubleClick, gesture: cloudGesture, camera: camera, onCameraChange: onCameraChange, zoom: zoom, onZoomChange: onZoomChange, wheelZoom: wheelZoom, overlay: _jsxs(ProjectionSurface, { children: [chrome.entries.length === 0 ? null : (_jsx(ProjectionMapLegend, { title: chrome.title, entries: chrome.entries, cloud: flat, xDomain: CUBE_DOMAIN, yDomain: CUBE_DOMAIN, width: width, height: height })), _jsx(ProjectionMapCaption, { report: report, copy: copy, mode: selectMode, drawing: false }), hoverCard] }) }) }));
41
+ }
42
+ /**
43
+ * What an arm of the frame is called.
44
+ *
45
+ * The frame is the cloud's only record of which axis is which, so an axis the
46
+ * result cannot name is given its number rather than left blank: an unlabelled
47
+ * arm reads as a drawing error, and the reader cannot tell which of the three
48
+ * it was.
49
+ * @param result - The reduced space being drawn.
50
+ * @param index - Which axis.
51
+ * @returns The name to write on that arm.
52
+ */
53
+ function axisName(result, index) {
54
+ return projectionAxisTitle(result, index) ?? `Axis ${index + 1}`;
55
+ }
56
+ /**
57
+ * The range the key measures emptiness against.
58
+ *
59
+ * The key floats in whichever corner of the picture holds fewest dots, and it
60
+ * works that out from the cloud's own coordinates against a range. A turning
61
+ * box has no fixed range in data units — the same sample is at a different
62
+ * corner a second later — so the cube's own is used, which is stable and is
63
+ * what the corners of the picture actually are.
64
+ */
65
+ const CUBE_DOMAIN = [-1, 1];
66
+ //# sourceMappingURL=ProjectionSpaceTab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectionSpaceTab.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionSpaceTab.tsx"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { ReactElement } from 'react';
2
2
  import type { ProjectionViewerProps } from './projectionViewerProps.ts';
3
3
  export type { ProjectionVariableTrack } from './ProjectionVariablesTab.tsx';
4
4
  export type { ProjectionSelection } from './projectionSelection.ts';
5
+ export type { ProjectionSampleOpen } from './projectionViewerProps.ts';
5
6
  export type { ProjectionViewerProps } from './projectionViewerProps.ts';
6
7
  /**
7
8
  * A dimension-reduction result, shown as a map a reader can interrogate.
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionViewer.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionViewer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAYzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE,YAAY,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CA0E3E"}
1
+ {"version":3,"file":"ProjectionViewer.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionViewer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAYzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE,YAAY,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,YAAY,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CA4E3E"}
@@ -37,6 +37,7 @@ import { useProjectionState } from "./useProjectionState.js";
37
37
  export function ProjectionViewer(props) {
38
38
  const { result, samples, className, testId, onTrackVariable } = props;
39
39
  const { onHoverSample, touchLasso, height = PROJECTION_TAB_HEIGHT } = props;
40
+ const { onSampleDoubleClick } = props;
40
41
  const { wheelZoom = true } = props;
41
42
  const { formatValue = formatProjectionValue, fileName = 'projection' } = props;
42
43
  const copy = useMemo(() => mergeProjectionCopy(props.copy), [props.copy]);
@@ -63,7 +64,7 @@ export function ProjectionViewer(props) {
63
64
  const strip = state.tabs.length > 1;
64
65
  return (_jsxs("div", { ref: figure, className: className === undefined
65
66
  ? 'projection-viewer'
66
- : `projection-viewer ${className}`, "data-testid": testId, style: VIEWER_STYLE, children: [_jsx(ProjectionBar, { state: state, result: result, copy: copy, models: models, map: map, baseId: baseId, panelId: panelId, fileName: fileName, width: width }), _jsx(ProjectionPanel, { state: state, result: result, samples: samples, copy: copy, models: models, map: map, width: width, height: height, formatValue: formatValue, baseId: baseId, panelId: panelId, strip: strip, onHoverSample: onHoverSample, onTrackVariable: onTrackVariable, touchLasso: touchLasso, wheelZoom: wheelZoom })] }));
67
+ : `projection-viewer ${className}`, "data-testid": testId, style: VIEWER_STYLE, children: [_jsx(ProjectionBar, { state: state, result: result, copy: copy, models: models, map: map, baseId: baseId, panelId: panelId, fileName: fileName, width: width }), _jsx(ProjectionPanel, { state: state, result: result, samples: samples, copy: copy, models: models, map: map, width: width, height: height, formatValue: formatValue, baseId: baseId, panelId: panelId, strip: strip, onHoverSample: onHoverSample, onSampleDoubleClick: onSampleDoubleClick, onTrackVariable: onTrackVariable, touchLasso: touchLasso, wheelZoom: wheelZoom })] }));
67
68
  }
68
69
  /**
69
70
  * The width a figure is drawn at before its container has been measured.
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionViewer.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionViewer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectionViewer.js","sourceRoot":"","sources":["../../../src/projection/ui/ProjectionViewer.tsx"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@
12
12
  */
13
13
  export type { PcaViewerProps } from './PcaViewer.tsx';
14
14
  export { PcaViewer } from './PcaViewer.tsx';
15
+ export type { ProjectionSampleOpen } from './projectionViewerProps.ts';
15
16
  export type { ProjectionSelection } from './projectionSelection.ts';
16
17
  export type { ProjectionVariableTrack } from './projectionVariablesModel.ts';
17
18
  export type { ProjectionViewerProps } from './projectionViewerProps.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/projection/ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAiB,CAAC;AAI5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/projection/ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAiB,CAAC;AAK5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"projectionBarModel.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAU3E,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EAClB,MAAM,oCAAoC,CAAC;AAK5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,kEAAkE;AAClE,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,iDAAiD;IACjD,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,kDAAkD;IAClD,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAG9D;AAWD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,cAAc,GACtB,WAAW,CAKb;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,cAAc,GACtB,iBAAiB,CASnB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,WAAW,GAChB,MAAM,CAmBR"}
1
+ {"version":3,"file":"projectionBarModel.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAU3E,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EAClB,MAAM,oCAAoC,CAAC;AAK5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,kEAAkE;AAClE,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,iDAAiD;IACjD,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,kDAAkD;IAClD,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAI9D;AAWD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,cAAc,GACtB,WAAW,CAKb;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,cAAc,GACtB,iBAAiB,CASnB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,WAAW,GAChB,MAAM,CAmBR"}
@@ -36,13 +36,14 @@ import { projectionUnwrittenRoom } from "./projectionBarReadings.js";
36
36
  export function projectionBarGlyphs(tab) {
37
37
  if (tab === 'shares')
38
38
  return SAVE_GLYPHS + 1;
39
- return SAVE_GLYPHS + (tab === 'map' ? MAP_BAR_GLYPHS : BAR_GLYPHS);
39
+ const named = tab === 'map' || tab === 'space';
40
+ return SAVE_GLYPHS + (named ? MAP_BAR_GLYPHS : BAR_GLYPHS);
40
41
  }
41
42
  /** The one that takes the figure off the page, on every tab. */
42
43
  const SAVE_GLYPHS = 1;
43
44
  /** The question mark and the cog, which almost every tab carries. */
44
45
  const BAR_GLYPHS = 2;
45
- /** Those two, and the map's own pair of switches. */
46
+ /** Those two, and the pair of name switches the map and the cloud both carry. */
46
47
  const MAP_BAR_GLYPHS = 4;
47
48
  /**
48
49
  * How much of itself the bar writes at this width.
@@ -1 +1 @@
1
- {"version":3,"file":"projectionBarModel.js","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projectionBarModel.js","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarModel.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"projectionBarReadings.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarReadings.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAK/D,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,2DAA2D;AAC3D,MAAM,WAAW,uBAAuB;IACtC,yEAAyE;IACzE,GAAG,EAAE,aAAa,CAAC;IACnB,qEAAqE;IACrE,IAAI,EAAE,cAAc,CAAC;IACrB,wEAAwE;IACxE,OAAO,EAAE,iBAAiB,CAAC;IAC3B,2EAA2E;IAC3E,MAAM,EAAE,wBAAwB,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,uBAAuB,GAC7B,SAAS,iBAAiB,EAAE,CAkC9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,OAAO,EAAE,cAAc,GACtB,MAAM,CAQR"}
1
+ {"version":3,"file":"projectionBarReadings.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarReadings.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAM/D,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,2DAA2D;AAC3D,MAAM,WAAW,uBAAuB;IACtC,yEAAyE;IACzE,GAAG,EAAE,aAAa,CAAC;IACnB,qEAAqE;IACrE,IAAI,EAAE,cAAc,CAAC;IACrB,wEAAwE;IACxE,OAAO,EAAE,iBAAiB,CAAC;IAC3B,2EAA2E;IAC3E,MAAM,EAAE,wBAAwB,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,uBAAuB,GAC7B,SAAS,iBAAiB,EAAE,CAmD9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,OAAO,EAAE,cAAc,GACtB,MAAM,CAQR"}
@@ -8,6 +8,7 @@
8
8
  * `Colour by species` and folding the bar at the wrong width.
9
9
  */
10
10
  import { ellipseCoverageText } from "./projectionEllipse.js";
11
+ import { ellipsoidCoverageText } from "./projectionEllipsoid.js";
11
12
  import { WHOLE_SHARE } from "./projectionTabStyles.js";
12
13
  /**
13
14
  * What the tab showing writes at the far end of the bar.
@@ -36,6 +37,22 @@ export function projectionBarReadings(input) {
36
37
  },
37
38
  ];
38
39
  }
40
+ if (tab === 'space') {
41
+ return [
42
+ {
43
+ key: bar.key.cloudGesture,
44
+ label: help.cloudGesture.title,
45
+ value: options.cloudGesture === 'turn' ? 'Turn' : 'Select',
46
+ },
47
+ {
48
+ key: bar.key.ellipse,
49
+ label: help.ellipse.title,
50
+ value: options.colorBy === 'group' && groups.entries.length > 0
51
+ ? ellipsoidCoverageText(options.ellipse)
52
+ : bar.noOutlines,
53
+ },
54
+ ];
55
+ }
39
56
  if (tab === 'shares') {
40
57
  return [
41
58
  {
@@ -1 +1 @@
1
- {"version":3,"file":"projectionBarReadings.js","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarReadings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projectionBarReadings.js","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarReadings.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"projectionBarSlots.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarSlots.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAU/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAMhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,gDAAgD;AAChD,MAAM,WAAW,kBAAkB;IACjC,0EAA0E;IAC1E,GAAG,EAAE,SAAS,CAAC;IACf,8DAA8D;IAC9D,IAAI,EAAE,SAAS,CAAC;IAChB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,+DAA+D;AAC/D,MAAM,WAAW,uBAAuB;IACtC,uBAAuB;IACvB,GAAG,EAAE,aAAa,CAAC;IACnB,6BAA6B;IAC7B,MAAM,EAAE,gBAAgB,CAAC;IACzB,mCAAmC;IACnC,IAAI,EAAE,cAAc,CAAC;IACrB,wCAAwC;IACxC,MAAM,EAAE,gBAAgB,CAAC;IACzB,sDAAsD;IACtD,GAAG,EAAE,iBAAiB,CAAC;IACvB,0DAA0D;IAC1D,OAAO,EAAE,iBAAiB,CAAC;IAC3B,6CAA6C;IAC7C,MAAM,EAAE,wBAAwB,CAAC;IACjC,qCAAqC;IACrC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC,2DAA2D;IAC3D,IAAI,EAAE,WAAW,CAAC;IAClB,iDAAiD;IACjD,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACvD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,GAC7B,kBAAkB,CA6DpB"}
1
+ {"version":3,"file":"projectionBarSlots.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarSlots.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAY/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAMhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,gDAAgD;AAChD,MAAM,WAAW,kBAAkB;IACjC,0EAA0E;IAC1E,GAAG,EAAE,SAAS,CAAC;IACf,8DAA8D;IAC9D,IAAI,EAAE,SAAS,CAAC;IAChB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,+DAA+D;AAC/D,MAAM,WAAW,uBAAuB;IACtC,uBAAuB;IACvB,GAAG,EAAE,aAAa,CAAC;IACnB,6BAA6B;IAC7B,MAAM,EAAE,gBAAgB,CAAC;IACzB,mCAAmC;IACnC,IAAI,EAAE,cAAc,CAAC;IACrB,wCAAwC;IACxC,MAAM,EAAE,gBAAgB,CAAC;IACzB,sDAAsD;IACtD,GAAG,EAAE,iBAAiB,CAAC;IACvB,0DAA0D;IAC1D,OAAO,EAAE,iBAAiB,CAAC;IAC3B,6CAA6C;IAC7C,MAAM,EAAE,wBAAwB,CAAC;IACjC,qCAAqC;IACrC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC,2DAA2D;IAC3D,IAAI,EAAE,WAAW,CAAC;IAClB,iDAAiD;IACjD,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACvD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,GAC7B,kBAAkB,CA8EpB"}
@@ -5,6 +5,8 @@ import { ProjectionPairsControls } from "./ProjectionPairsControls.js";
5
5
  import { ProjectionPairsMore } from "./ProjectionPairsMore.js";
6
6
  import { ProjectionSharesControls } from "./ProjectionSharesControls.js";
7
7
  import { ProjectionSharesMore } from "./ProjectionSharesMore.js";
8
+ import { ProjectionSpaceControls } from "./ProjectionSpaceControls.js";
9
+ import { ProjectionSpaceMore } from "./ProjectionSpaceMore.js";
8
10
  import { ProjectionVariablesControls } from "./ProjectionVariablesControls.js";
9
11
  import { ProjectionVariablesMore } from "./ProjectionVariablesMore.js";
10
12
  import { projectionPairsInfo, projectionSharesInfo, projectionVariablesInfo, } from "./projectionTabInfo.js";
@@ -38,6 +40,21 @@ export function projectionBarSlots(input) {
38
40
  info: projectionPairsInfo(copy, groups.label, colored),
39
41
  };
40
42
  }
43
+ if (tab === 'space') {
44
+ const space = {
45
+ ...shared,
46
+ result,
47
+ hasGroups,
48
+ selectedCount: selected.length,
49
+ onResetView: map.resetSpaceView,
50
+ onClearSelection: map.clearSelection,
51
+ };
52
+ return {
53
+ end: (_jsx(ProjectionSpaceControls, { ...space, readings: readings, tier: tier })),
54
+ more: _jsx(ProjectionSpaceMore, { ...space }),
55
+ info: map.spaceChrome.caption,
56
+ };
57
+ }
41
58
  if (tab === 'variables') {
42
59
  const variables = {
43
60
  options,
@@ -1 +1 @@
1
- {"version":3,"file":"projectionBarSlots.js","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarSlots.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projectionBarSlots.js","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarSlots.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * What the cloud's own settings offer.
3
+ *
4
+ * One list, read by the value menu on the bar and by the segmented control in
5
+ * the panel behind the cog, so the two can never offer different words for the
6
+ * same thing.
7
+ */
8
+ import type { OverlayOption } from '../../overlay/ui/OverlayRow.tsx';
9
+ import type { CloudGesture } from '../../scatter3d/core/cloudGesture.ts';
10
+ /**
11
+ * What a plain drag does.
12
+ *
13
+ * Written as the action rather than as the name of a mode: `Turn` and `Select`
14
+ * are what the reader's hand is about to do, where `Orbit` would be a state
15
+ * they have to translate first.
16
+ */
17
+ export declare const CLOUD_GESTURE_CHOICES: ReadonlyArray<OverlayOption<CloudGesture>>;
18
+ //# sourceMappingURL=projectionCloudChoices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectionCloudChoices.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionCloudChoices.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEzE;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,aAAa,CAAC,YAAY,CAAC,CAI1E,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * What the cloud's own settings offer.
3
+ *
4
+ * One list, read by the value menu on the bar and by the segmented control in
5
+ * the panel behind the cog, so the two can never offer different words for the
6
+ * same thing.
7
+ */
8
+ /**
9
+ * What a plain drag does.
10
+ *
11
+ * Written as the action rather than as the name of a mode: `Turn` and `Select`
12
+ * are what the reader's hand is about to do, where `Orbit` would be a state
13
+ * they have to translate first.
14
+ */
15
+ export const CLOUD_GESTURE_CHOICES = [
16
+ { value: 'turn', label: 'Turn' },
17
+ { value: 'select', label: 'Select' },
18
+ ];
19
+ //# sourceMappingURL=projectionCloudChoices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectionCloudChoices.js","sourceRoot":"","sources":["../../../src/projection/ui/projectionCloudChoices.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAChC;IACE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAChC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;CACrC,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * How large a group's shell is, in the words the cloud writes.
3
+ *
4
+ * It is the flat map's `projectionEllipse` with one dimension more, and the
5
+ * two cannot share an implementation for the one reason worth having a second
6
+ * module for: the same share is a different distance in three dimensions than
7
+ * in two. A shell drawn where the map's 95 % outline is drawn holds about 74 %
8
+ * of its group, so a cloud quoting the map's number promises a fifth of the
9
+ * samples it does not contain.
10
+ */
11
+ import type { OverlayOption } from '../../overlay/ui/OverlayRow.tsx';
12
+ import type { EllipseSize } from '../../scatter/core/confidenceEllipse.ts';
13
+ /**
14
+ * How much of a group its shell holds, written the way a sentence wants it.
15
+ * @param size - How large the shells are, or `null` for none.
16
+ * @returns The share, e.g. `95%`; the empty string when nothing is shelled.
17
+ */
18
+ export declare function ellipsoidCoverageText(size: EllipseSize | null): string;
19
+ /**
20
+ * What one choice of the cloud's shell picker reads.
21
+ * @param size - The size that choice stands for, or `null` for no shells.
22
+ * @returns The label, e.g. `95% of samples`, or `2 SD (about 74%)`.
23
+ */
24
+ export declare function ellipsoidSizeLabel(size: EllipseSize | null): string;
25
+ /**
26
+ * The sizes the cloud's picker offers, with the current one kept in the list.
27
+ *
28
+ * The same shares the map offers, because a share means the same thing in both
29
+ * pictures — it is the distance it comes out at that differs, and that is the
30
+ * geometry's business rather than the reader's. A size given in standard
31
+ * deviations is the one place the difference shows, and it is written here
32
+ * with the share a shell at that distance actually holds: two of them cover
33
+ * 86 % of a flat group and 74 % of a solid one.
34
+ * @param current - The size the cloud is drawn at, or `null` for no shells.
35
+ * @returns The choices, in the order they are offered.
36
+ */
37
+ export declare function ellipsoidChoices(current: EllipseSize | null): OverlayOption[];
38
+ //# sourceMappingURL=projectionEllipsoid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectionEllipsoid.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionEllipsoid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAO3E;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,CAOtE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,CAKnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,aAAa,EAAE,CAe7E"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * How large a group's shell is, in the words the cloud writes.
3
+ *
4
+ * It is the flat map's `projectionEllipse` with one dimension more, and the
5
+ * two cannot share an implementation for the one reason worth having a second
6
+ * module for: the same share is a different distance in three dimensions than
7
+ * in two. A shell drawn where the map's 95 % outline is drawn holds about 74 %
8
+ * of its group, so a cloud quoting the map's number promises a fifth of the
9
+ * samples it does not contain.
10
+ */
11
+ import { coverageForStandardDeviations3 } from "../../scatter3d/core/ellipsoidCoverage.js";
12
+ import { ellipseKey } from "./projectionEllipse.js";
13
+ const WHOLE_SHARE = 100;
14
+ /**
15
+ * How much of a group its shell holds, written the way a sentence wants it.
16
+ * @param size - How large the shells are, or `null` for none.
17
+ * @returns The share, e.g. `95%`; the empty string when nothing is shelled.
18
+ */
19
+ export function ellipsoidCoverageText(size) {
20
+ if (size === null)
21
+ return '';
22
+ const share = size.kind === 'coverage'
23
+ ? size.probability
24
+ : coverageForStandardDeviations3(size.standardDeviations);
25
+ return `${Math.round(share * WHOLE_SHARE)}%`;
26
+ }
27
+ /**
28
+ * What one choice of the cloud's shell picker reads.
29
+ * @param size - The size that choice stands for, or `null` for no shells.
30
+ * @returns The label, e.g. `95% of samples`, or `2 SD (about 74%)`.
31
+ */
32
+ export function ellipsoidSizeLabel(size) {
33
+ if (size === null)
34
+ return NO_SHELLS_LABEL;
35
+ const share = ellipsoidCoverageText(size);
36
+ if (size.kind === 'coverage')
37
+ return `${share} of samples`;
38
+ return `${size.standardDeviations} SD (about ${share})`;
39
+ }
40
+ /**
41
+ * The sizes the cloud's picker offers, with the current one kept in the list.
42
+ *
43
+ * The same shares the map offers, because a share means the same thing in both
44
+ * pictures — it is the distance it comes out at that differs, and that is the
45
+ * geometry's business rather than the reader's. A size given in standard
46
+ * deviations is the one place the difference shows, and it is written here
47
+ * with the share a shell at that distance actually holds: two of them cover
48
+ * 86 % of a flat group and 74 % of a solid one.
49
+ * @param current - The size the cloud is drawn at, or `null` for no shells.
50
+ * @returns The choices, in the order they are offered.
51
+ */
52
+ export function ellipsoidChoices(current) {
53
+ const choices = [
54
+ { value: ellipseKey(null), label: ellipsoidSizeLabel(null) },
55
+ ];
56
+ for (const probability of SHELL_SHARES) {
57
+ const size = { kind: 'coverage', probability };
58
+ choices.push({ value: ellipseKey(size), label: ellipsoidSizeLabel(size) });
59
+ }
60
+ const key = ellipseKey(current);
61
+ for (const choice of choices) {
62
+ if (choice.value === key)
63
+ return choices;
64
+ }
65
+ choices.splice(1, 0, { value: key, label: ellipsoidSizeLabel(current) });
66
+ return choices;
67
+ }
68
+ /* The same four the map offers, so the two pictures are set the same way. */
69
+ const SHELL_SHARES = [0.5, 0.9, 0.95, 0.99];
70
+ const NO_SHELLS_LABEL = 'No shells';
71
+ //# sourceMappingURL=projectionEllipsoid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectionEllipsoid.js","sourceRoot":"","sources":["../../../src/projection/ui/projectionEllipsoid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAE3F,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAwB;IAC5D,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,KAAK,GACT,IAAI,CAAC,IAAI,KAAK,UAAU;QACtB,CAAC,CAAC,IAAI,CAAC,WAAW;QAClB,CAAC,CAAC,8BAA8B,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC9D,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAwB;IACzD,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,eAAe,CAAC;IAC1C,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,GAAG,KAAK,aAAa,CAAC;IAC3D,OAAO,GAAG,IAAI,CAAC,kBAAkB,cAAc,KAAK,GAAG,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAA2B;IAC1D,MAAM,OAAO,GAAoB;QAC/B,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE;KAC7D,CAAC;IACF,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,IAAI,GAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,KAAK,KAAK,GAAG;YAAE,OAAO,OAAO,CAAC;IAC3C,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6EAA6E;AAC7E,MAAM,YAAY,GAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE/D,MAAM,eAAe,GAAG,WAAW,CAAC"}
@@ -32,6 +32,14 @@ export interface ProjectionMapChromeInput {
32
32
  fittedCount: number;
33
33
  /** How many rows there are in all. */
34
34
  total: number;
35
+ /**
36
+ * Which figure the chrome is for. The cloud says the same things about
37
+ * itself, in its own words and about its own geometry: a share is a wider
38
+ * shape in three dimensions than in two, so the sentence promising one has
39
+ * to be built from the dimension it will be read in.
40
+ * @default 'map'
41
+ */
42
+ figure?: 'map' | 'space';
35
43
  }
36
44
  /** The legend and the standing caption of one map. */
37
45
  export interface ProjectionMapChrome {
@@ -1 +1 @@
1
- {"version":3,"file":"projectionMapChrome.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionMapChrome.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAK7E,2CAA2C;AAC3C,MAAM,WAAW,wBAAwB;IACvC,kEAAkE;IAClE,IAAI,EAAE,cAAc,CAAC;IACrB,0CAA0C;IAC1C,MAAM,EAAE,wBAAwB,CAAC;IACjC,kDAAkD;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,4DAA4D;IAC5D,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,mEAAmE;IACnE,aAAa,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,cAAc,EAAE,OAAO,CAAC;IACxB,iDAAiD;IACjD,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACrC,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC;;;;;;;OAOG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,mBAAmB,CA6CrB;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,MAAM,CAMR"}
1
+ {"version":3,"file":"projectionMapChrome.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionMapChrome.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAM7E,2CAA2C;AAC3C,MAAM,WAAW,wBAAwB;IACvC,kEAAkE;IAClE,IAAI,EAAE,cAAc,CAAC;IACrB,0CAA0C;IAC1C,MAAM,EAAE,wBAAwB,CAAC;IACjC,kDAAkD;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,4DAA4D;IAC5D,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,mEAAmE;IACnE,aAAa,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,cAAc,EAAE,OAAO,CAAC;IACxB,iDAAiD;IACjD,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACrC,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;CAC1B;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC;;;;;;;OAOG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,mBAAmB,CAqDrB;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,MAAM,CAMR"}
@@ -9,6 +9,7 @@
9
9
  */
10
10
  import { fillCopy } from "../core/projectionCopy.js";
11
11
  import { ellipseCoverageText } from "./projectionEllipse.js";
12
+ import { ellipsoidCoverageText } from "./projectionEllipsoid.js";
12
13
  import { UNGROUPED_INK } from "./projectionMapModel.js";
13
14
  /**
14
15
  * The legend and the caption of one map.
@@ -24,7 +25,7 @@ import { UNGROUPED_INK } from "./projectionMapModel.js";
24
25
  */
25
26
  export function projectionMapChrome(input) {
26
27
  const { copy, groups, colored, ellipse, showGroupMeans, markers } = input;
27
- const { minimumPoints, fittedCount, total } = input;
28
+ const { minimumPoints, fittedCount, total, figure = 'map' } = input;
28
29
  const entries = [];
29
30
  const skipped = [];
30
31
  if (colored) {
@@ -63,7 +64,7 @@ export function projectionMapChrome(input) {
63
64
  return {
64
65
  title: legendTitle(copy, groups, colored),
65
66
  entries,
66
- caption: captionFor(copy, groups, colored, ellipse, skipped, hollow),
67
+ caption: captionFor(copy, groups, colored, ellipse, skipped, hollow, figure),
67
68
  };
68
69
  }
69
70
  /**
@@ -99,15 +100,18 @@ function legendTitle(copy, groups, colored) {
99
100
  groups: groups.label.toLowerCase(),
100
101
  });
101
102
  }
102
- function captionFor(copy, groups, colored, ellipse, skipped, hollow) {
103
- let sentence = copy.intro.map;
103
+ function captionFor(copy, groups, colored, ellipse, skipped, hollow, figure) {
104
+ const solid = figure === 'space';
105
+ let sentence = solid ? copy.intro.space : copy.intro.map;
104
106
  // What an outline actually holds is the one claim the figure makes that the
105
107
  // reader cannot check by looking, so it is said in full here rather than
106
108
  // squeezed onto the key floating over the dots.
107
109
  if (colored && ellipse !== null) {
108
- sentence += ` ${fillCopy(copy.legend.map, {
110
+ sentence += ` ${fillCopy(solid ? copy.legend.space : copy.legend.map, {
109
111
  groups: groups.label.toLowerCase(),
110
- coverage: ellipseCoverageText(ellipse),
112
+ coverage: solid
113
+ ? ellipsoidCoverageText(ellipse)
114
+ : ellipseCoverageText(ellipse),
111
115
  })}`;
112
116
  }
113
117
  if (skipped.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"projectionMapChrome.js","sourceRoot":"","sources":["../../../src/projection/ui/projectionMapChrome.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projectionMapChrome.js","sourceRoot":"","sources":["../../../src/projection/ui/projectionMapChrome.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@
10
10
  */
11
11
  import type { ChartViewport } from '../../chart/core/chartViewport.ts';
12
12
  import type { SelectionChange } from '../../scatter/ui/useScatterSelection.ts';
13
+ import type { OrbitCamera } from '../../scatter3d/core/orbitCamera.ts';
13
14
  import type { ProjectionCopy } from '../core/projectionCopy.ts';
14
15
  import type { ProjectionOptions } from '../core/projectionOptions.ts';
15
16
  import type { ProjectionResult } from '../core/projectionResult.ts';
@@ -35,6 +36,18 @@ export interface ProjectionMapViewInput {
35
36
  export interface ProjectionMapView {
36
37
  /** The key's title, the key's entries, and the paragraph behind the `?`. */
37
38
  chrome: ProjectionMapChrome;
39
+ /** The same three for the cloud, which promises a different share. */
40
+ spaceChrome: ProjectionMapChrome;
41
+ /** Where the reader is standing in the cloud. */
42
+ camera: OrbitCamera;
43
+ /** Turn the box. */
44
+ setCamera: (camera: OrbitCamera) => void;
45
+ /** How far in the cloud is zoomed. */
46
+ zoom: number;
47
+ /** Zoom the box. */
48
+ setZoom: (zoom: number) => void;
49
+ /** Put the box back where it was first seen, at the size it was first drawn. */
50
+ resetSpaceView: () => void;
38
51
  /** The frame the map is drawn in, or `null` when it is drawn around every sample. */
39
52
  viewport: ChartViewport | null;
40
53
  /** Draw the map in another frame, which is what the wheel does. */
@@ -1 +1 @@
1
- {"version":3,"file":"projectionMapView.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionMapView.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAE7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAWpE,+CAA+C;AAC/C,MAAM,WAAW,sBAAsB;IACrC,mDAAmD;IACnD,MAAM,EAAE,gBAAgB,CAAC;IACzB,qEAAqE;IACrE,IAAI,EAAE,cAAc,CAAC;IACrB,4DAA4D;IAC5D,MAAM,EAAE,wBAAwB,CAAC;IACjC,0DAA0D;IAC1D,OAAO,EAAE,iBAAiB,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,6CAA6C;IAC7C,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;CAC7C;AAED,0EAA0E;AAC1E,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,MAAM,EAAE,mBAAmB,CAAC;IAC5B,qFAAqF;IACrF,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,mEAAmE;IACnE,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC;IACtD,wEAAwE;IACxE,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,2DAA2D;IAC3D,MAAM,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAC1C,kDAAkD;IAClD,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,8CAA8C;IAC9C,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,2BAA2B;IAC3B,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,sBAAsB,GAC5B,iBAAiB,CA+FnB"}
1
+ {"version":3,"file":"projectionMapView.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionMapView.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAE7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAYpE,+CAA+C;AAC/C,MAAM,WAAW,sBAAsB;IACrC,mDAAmD;IACnD,MAAM,EAAE,gBAAgB,CAAC;IACzB,qEAAqE;IACrE,IAAI,EAAE,cAAc,CAAC;IACrB,4DAA4D;IAC5D,MAAM,EAAE,wBAAwB,CAAC;IACjC,0DAA0D;IAC1D,OAAO,EAAE,iBAAiB,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,6CAA6C;IAC7C,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;CAC7C;AAED,0EAA0E;AAC1E,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,MAAM,EAAE,mBAAmB,CAAC;IAC5B,sEAAsE;IACtE,WAAW,EAAE,mBAAmB,CAAC;IACjC,iDAAiD;IACjD,MAAM,EAAE,WAAW,CAAC;IACpB,oBAAoB;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACzC,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,gFAAgF;IAChF,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,qFAAqF;IACrF,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,mEAAmE;IACnE,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC;IACtD,wEAAwE;IACxE,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,2DAA2D;IAC3D,MAAM,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAC1C,kDAAkD;IAClD,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,8CAA8C;IAC9C,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,2BAA2B;IAC3B,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,sBAAsB,GAC5B,iBAAiB,CA6HnB"}