react-cheminfo 0.22.0 → 0.24.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 (464) hide show
  1. package/README.md +51 -28
  2. package/lib/chrome/ui/HeaderToggle.d.ts +52 -0
  3. package/lib/chrome/ui/HeaderToggle.d.ts.map +1 -0
  4. package/lib/chrome/ui/HeaderToggle.js +31 -0
  5. package/lib/chrome/ui/HeaderToggle.js.map +1 -0
  6. package/lib/chrome/ui/index.d.ts +2 -0
  7. package/lib/chrome/ui/index.d.ts.map +1 -1
  8. package/lib/chrome/ui/index.js +1 -0
  9. package/lib/chrome/ui/index.js.map +1 -1
  10. package/lib/citation/core/gfn2Paper.d.ts +10 -0
  11. package/lib/citation/core/gfn2Paper.d.ts.map +1 -0
  12. package/lib/citation/core/gfn2Paper.js +28 -0
  13. package/lib/citation/core/gfn2Paper.js.map +1 -0
  14. package/lib/citation/core/index.d.ts +1 -0
  15. package/lib/citation/core/index.d.ts.map +1 -1
  16. package/lib/citation/core/index.js +1 -0
  17. package/lib/citation/core/index.js.map +1 -1
  18. package/lib/clipboard/ui/ClickToCopy.d.ts +8 -7
  19. package/lib/clipboard/ui/ClickToCopy.d.ts.map +1 -1
  20. package/lib/clipboard/ui/ClickToCopy.js +3 -3
  21. package/lib/clipboard/ui/ClickToCopy.js.map +1 -1
  22. package/lib/conformers.d.ts +27 -0
  23. package/lib/conformers.d.ts.map +1 -0
  24. package/lib/conformers.js +19 -0
  25. package/lib/conformers.js.map +1 -0
  26. package/lib/core.d.ts +1 -0
  27. package/lib/core.d.ts.map +1 -1
  28. package/lib/core.js +1 -0
  29. package/lib/core.js.map +1 -1
  30. package/lib/credits/core/credits.d.ts +12 -0
  31. package/lib/credits/core/credits.d.ts.map +1 -1
  32. package/lib/credits/core/credits.js +14 -0
  33. package/lib/credits/core/credits.js.map +1 -1
  34. package/lib/ecosystem/core/index.d.ts +1 -1
  35. package/lib/ecosystem/core/index.d.ts.map +1 -1
  36. package/lib/ecosystem/core/index.js.map +1 -1
  37. package/lib/ecosystem/core/sites.d.ts +11 -1
  38. package/lib/ecosystem/core/sites.d.ts.map +1 -1
  39. package/lib/ecosystem/core/sites.js +7 -2
  40. package/lib/ecosystem/core/sites.js.map +1 -1
  41. package/lib/ecosystem/ui/EcosystemLinks.d.ts.map +1 -1
  42. package/lib/ecosystem/ui/EcosystemLinks.js +3 -1
  43. package/lib/ecosystem/ui/EcosystemLinks.js.map +1 -1
  44. package/lib/ecosystem/ui/SiteTile.d.ts.map +1 -1
  45. package/lib/ecosystem/ui/SiteTile.js +3 -1
  46. package/lib/ecosystem/ui/SiteTile.js.map +1 -1
  47. package/lib/format/core/index.d.ts +1 -1
  48. package/lib/format/core/index.d.ts.map +1 -1
  49. package/lib/format/core/index.js +1 -1
  50. package/lib/format/core/index.js.map +1 -1
  51. package/lib/format/core/words.d.ts +9 -0
  52. package/lib/format/core/words.d.ts.map +1 -1
  53. package/lib/format/core/words.js +16 -0
  54. package/lib/format/core/words.js.map +1 -1
  55. package/lib/language/core/index.d.ts +3 -0
  56. package/lib/language/core/index.d.ts.map +1 -0
  57. package/lib/language/core/index.js +3 -0
  58. package/lib/language/core/index.js.map +1 -0
  59. package/lib/language/core/languageName.d.ts +8 -0
  60. package/lib/language/core/languageName.d.ts.map +1 -0
  61. package/lib/language/core/languageName.js +16 -0
  62. package/lib/language/core/languageName.js.map +1 -0
  63. package/lib/language/core/languageParam.d.ts +35 -0
  64. package/lib/language/core/languageParam.d.ts.map +1 -0
  65. package/lib/language/core/languageParam.js +67 -0
  66. package/lib/language/core/languageParam.js.map +1 -0
  67. package/lib/language/ui/SiteLanguage.d.ts +20 -0
  68. package/lib/language/ui/SiteLanguage.d.ts.map +1 -0
  69. package/lib/language/ui/SiteLanguage.js +14 -0
  70. package/lib/language/ui/SiteLanguage.js.map +1 -0
  71. package/lib/language/ui/index.d.ts +4 -0
  72. package/lib/language/ui/index.d.ts.map +1 -0
  73. package/lib/language/ui/index.js +3 -0
  74. package/lib/language/ui/index.js.map +1 -0
  75. package/lib/language/ui/siteLanguageContext.d.ts +12 -0
  76. package/lib/language/ui/siteLanguageContext.d.ts.map +1 -0
  77. package/lib/language/ui/siteLanguageContext.js +19 -0
  78. package/lib/language/ui/siteLanguageContext.js.map +1 -0
  79. package/lib/orbital/core/atomicOrbitals.d.ts +9 -1
  80. package/lib/orbital/core/atomicOrbitals.d.ts.map +1 -1
  81. package/lib/orbital/core/atomicOrbitals.js +7 -0
  82. package/lib/orbital/core/atomicOrbitals.js.map +1 -1
  83. package/lib/orbital/core/hydrogenic.d.ts +2 -1
  84. package/lib/orbital/core/hydrogenic.d.ts.map +1 -1
  85. package/lib/orbital/core/hydrogenic.js +2 -1
  86. package/lib/orbital/core/hydrogenic.js.map +1 -1
  87. package/lib/orbital/core/index.d.ts +1 -0
  88. package/lib/orbital/core/index.d.ts.map +1 -1
  89. package/lib/orbital/core/index.js +1 -0
  90. package/lib/orbital/core/index.js.map +1 -1
  91. package/lib/orbital/core/slaterEnergy.d.ts +35 -0
  92. package/lib/orbital/core/slaterEnergy.d.ts.map +1 -0
  93. package/lib/orbital/core/slaterEnergy.js +66 -0
  94. package/lib/orbital/core/slaterEnergy.js.map +1 -0
  95. package/lib/overlay/core/index.d.ts +2 -2
  96. package/lib/overlay/core/index.d.ts.map +1 -1
  97. package/lib/overlay/core/index.js +1 -1
  98. package/lib/overlay/core/index.js.map +1 -1
  99. package/lib/overlay/core/overlayMarks.d.ts +20 -5
  100. package/lib/overlay/core/overlayMarks.d.ts.map +1 -1
  101. package/lib/overlay/core/overlayMarks.js +31 -5
  102. package/lib/overlay/core/overlayMarks.js.map +1 -1
  103. package/lib/overlay/ui/OverlayLegendMark.js +5 -0
  104. package/lib/overlay/ui/OverlayLegendMark.js.map +1 -1
  105. package/lib/projection/core/index.d.ts +4 -4
  106. package/lib/projection/core/index.d.ts.map +1 -1
  107. package/lib/projection/core/index.js +2 -2
  108. package/lib/projection/core/index.js.map +1 -1
  109. package/lib/projection/core/projectionCopy.d.ts +2 -0
  110. package/lib/projection/core/projectionCopy.d.ts.map +1 -1
  111. package/lib/projection/core/projectionCopy.js +1 -0
  112. package/lib/projection/core/projectionCopy.js.map +1 -1
  113. package/lib/projection/core/projectionGroupings.d.ts +44 -0
  114. package/lib/projection/core/projectionGroupings.d.ts.map +1 -0
  115. package/lib/projection/core/projectionGroupings.js +132 -0
  116. package/lib/projection/core/projectionGroupings.js.map +1 -0
  117. package/lib/projection/core/projectionOptions.d.ts +16 -6
  118. package/lib/projection/core/projectionOptions.d.ts.map +1 -1
  119. package/lib/projection/core/projectionOptions.js +7 -1
  120. package/lib/projection/core/projectionOptions.js.map +1 -1
  121. package/lib/projection/core/projectionPanelWords.d.ts +6 -0
  122. package/lib/projection/core/projectionPanelWords.d.ts.map +1 -1
  123. package/lib/projection/core/projectionPanelWords.js +4 -0
  124. package/lib/projection/core/projectionPanelWords.js.map +1 -1
  125. package/lib/projection/core/projectionSamples.d.ts +63 -32
  126. package/lib/projection/core/projectionSamples.d.ts.map +1 -1
  127. package/lib/projection/core/projectionSamples.js +1 -80
  128. package/lib/projection/core/projectionSamples.js.map +1 -1
  129. package/lib/projection/core/projectionStrings.d.ts +2 -0
  130. package/lib/projection/core/projectionStrings.d.ts.map +1 -1
  131. package/lib/projection/core/projectionStrings.js +10 -1
  132. package/lib/projection/core/projectionStrings.js.map +1 -1
  133. package/lib/projection/core/resolveProjectionOptions.d.ts +8 -3
  134. package/lib/projection/core/resolveProjectionOptions.d.ts.map +1 -1
  135. package/lib/projection/core/resolveProjectionOptions.js +58 -5
  136. package/lib/projection/core/resolveProjectionOptions.js.map +1 -1
  137. package/lib/projection/ui/ProjectionBar.d.ts +1 -1
  138. package/lib/projection/ui/ProjectionBar.d.ts.map +1 -1
  139. package/lib/projection/ui/ProjectionBar.js +3 -1
  140. package/lib/projection/ui/ProjectionBar.js.map +1 -1
  141. package/lib/projection/ui/ProjectionGroupingPickers.d.ts +38 -0
  142. package/lib/projection/ui/ProjectionGroupingPickers.d.ts.map +1 -0
  143. package/lib/projection/ui/ProjectionGroupingPickers.js +33 -0
  144. package/lib/projection/ui/ProjectionGroupingPickers.js.map +1 -0
  145. package/lib/projection/ui/ProjectionMapControls.d.ts +6 -7
  146. package/lib/projection/ui/ProjectionMapControls.d.ts.map +1 -1
  147. package/lib/projection/ui/ProjectionMapControls.js +11 -9
  148. package/lib/projection/ui/ProjectionMapControls.js.map +1 -1
  149. package/lib/projection/ui/ProjectionMapLegend.d.ts.map +1 -1
  150. package/lib/projection/ui/ProjectionMapLegend.js +1 -1
  151. package/lib/projection/ui/ProjectionMapLegend.js.map +1 -1
  152. package/lib/projection/ui/ProjectionMapMore.d.ts +2 -2
  153. package/lib/projection/ui/ProjectionMapMore.d.ts.map +1 -1
  154. package/lib/projection/ui/ProjectionMapMore.js +7 -5
  155. package/lib/projection/ui/ProjectionMapMore.js.map +1 -1
  156. package/lib/projection/ui/ProjectionMapTab.d.ts +15 -6
  157. package/lib/projection/ui/ProjectionMapTab.d.ts.map +1 -1
  158. package/lib/projection/ui/ProjectionMapTab.js +11 -7
  159. package/lib/projection/ui/ProjectionMapTab.js.map +1 -1
  160. package/lib/projection/ui/ProjectionPairsMore.d.ts +3 -7
  161. package/lib/projection/ui/ProjectionPairsMore.d.ts.map +1 -1
  162. package/lib/projection/ui/ProjectionPairsMore.js +4 -5
  163. package/lib/projection/ui/ProjectionPairsMore.js.map +1 -1
  164. package/lib/projection/ui/ProjectionPairsTab.d.ts.map +1 -1
  165. package/lib/projection/ui/ProjectionPairsTab.js +2 -2
  166. package/lib/projection/ui/ProjectionPairsTab.js.map +1 -1
  167. package/lib/projection/ui/ProjectionPanel.d.ts +1 -1
  168. package/lib/projection/ui/ProjectionPanel.d.ts.map +1 -1
  169. package/lib/projection/ui/ProjectionPanel.js +1 -1
  170. package/lib/projection/ui/ProjectionPanel.js.map +1 -1
  171. package/lib/projection/ui/ProjectionReadout.d.ts +7 -1
  172. package/lib/projection/ui/ProjectionReadout.d.ts.map +1 -1
  173. package/lib/projection/ui/ProjectionReadout.js +19 -7
  174. package/lib/projection/ui/ProjectionReadout.js.map +1 -1
  175. package/lib/projection/ui/ProjectionSpaceControls.d.ts +3 -5
  176. package/lib/projection/ui/ProjectionSpaceControls.d.ts.map +1 -1
  177. package/lib/projection/ui/ProjectionSpaceControls.js +9 -7
  178. package/lib/projection/ui/ProjectionSpaceControls.js.map +1 -1
  179. package/lib/projection/ui/ProjectionSpaceMore.d.ts +2 -2
  180. package/lib/projection/ui/ProjectionSpaceMore.d.ts.map +1 -1
  181. package/lib/projection/ui/ProjectionSpaceMore.js +5 -4
  182. package/lib/projection/ui/ProjectionSpaceMore.js.map +1 -1
  183. package/lib/projection/ui/ProjectionSpaceTab.d.ts +11 -3
  184. package/lib/projection/ui/ProjectionSpaceTab.d.ts.map +1 -1
  185. package/lib/projection/ui/ProjectionSpaceTab.js +7 -4
  186. package/lib/projection/ui/ProjectionSpaceTab.js.map +1 -1
  187. package/lib/projection/ui/ProjectionViewer.d.ts.map +1 -1
  188. package/lib/projection/ui/ProjectionViewer.js +1 -0
  189. package/lib/projection/ui/ProjectionViewer.js.map +1 -1
  190. package/lib/projection/ui/projectionBarReadings.d.ts +4 -1
  191. package/lib/projection/ui/projectionBarReadings.d.ts.map +1 -1
  192. package/lib/projection/ui/projectionBarReadings.js +14 -4
  193. package/lib/projection/ui/projectionBarReadings.js.map +1 -1
  194. package/lib/projection/ui/projectionBarSlots.d.ts +4 -2
  195. package/lib/projection/ui/projectionBarSlots.d.ts.map +1 -1
  196. package/lib/projection/ui/projectionBarSlots.js +3 -7
  197. package/lib/projection/ui/projectionBarSlots.js.map +1 -1
  198. package/lib/projection/ui/projectionMapChoices.d.ts +31 -6
  199. package/lib/projection/ui/projectionMapChoices.d.ts.map +1 -1
  200. package/lib/projection/ui/projectionMapChoices.js +58 -9
  201. package/lib/projection/ui/projectionMapChoices.js.map +1 -1
  202. package/lib/projection/ui/projectionMapChrome.d.ts +3 -9
  203. package/lib/projection/ui/projectionMapChrome.d.ts.map +1 -1
  204. package/lib/projection/ui/projectionMapChrome.js +41 -27
  205. package/lib/projection/ui/projectionMapChrome.js.map +1 -1
  206. package/lib/projection/ui/projectionMapCorner.d.ts +25 -0
  207. package/lib/projection/ui/projectionMapCorner.d.ts.map +1 -0
  208. package/lib/projection/ui/projectionMapCorner.js +46 -0
  209. package/lib/projection/ui/projectionMapCorner.js.map +1 -0
  210. package/lib/projection/ui/projectionMapModel.d.ts +9 -18
  211. package/lib/projection/ui/projectionMapModel.d.ts.map +1 -1
  212. package/lib/projection/ui/projectionMapModel.js +14 -39
  213. package/lib/projection/ui/projectionMapModel.js.map +1 -1
  214. package/lib/projection/ui/projectionMapView.d.ts +3 -1
  215. package/lib/projection/ui/projectionMapView.d.ts.map +1 -1
  216. package/lib/projection/ui/projectionMapView.js +9 -4
  217. package/lib/projection/ui/projectionMapView.js.map +1 -1
  218. package/lib/projection/ui/projectionSelectionSentence.d.ts +10 -0
  219. package/lib/projection/ui/projectionSelectionSentence.d.ts.map +1 -0
  220. package/lib/projection/ui/projectionSelectionSentence.js +18 -0
  221. package/lib/projection/ui/projectionSelectionSentence.js.map +1 -0
  222. package/lib/projection/ui/projectionStateApi.d.ts +47 -0
  223. package/lib/projection/ui/projectionStateApi.d.ts.map +1 -0
  224. package/lib/projection/ui/projectionStateApi.js +9 -0
  225. package/lib/projection/ui/projectionStateApi.js.map +1 -0
  226. package/lib/projection/ui/projectionTabModels.js +1 -1
  227. package/lib/projection/ui/projectionTabModels.js.map +1 -1
  228. package/lib/projection/ui/useProjectionState.d.ts +1 -29
  229. package/lib/projection/ui/useProjectionState.d.ts.map +1 -1
  230. package/lib/projection/ui/useProjectionState.js +13 -5
  231. package/lib/projection/ui/useProjectionState.js.map +1 -1
  232. package/lib/scatter/core/index.d.ts +1 -0
  233. package/lib/scatter/core/index.d.ts.map +1 -1
  234. package/lib/scatter/core/index.js +1 -0
  235. package/lib/scatter/core/index.js.map +1 -1
  236. package/lib/scatter/core/pointShape.d.ts +18 -0
  237. package/lib/scatter/core/pointShape.d.ts.map +1 -0
  238. package/lib/scatter/core/pointShape.js +70 -0
  239. package/lib/scatter/core/pointShape.js.map +1 -0
  240. package/lib/scatter/ui/ScatterPlot.d.ts.map +1 -1
  241. package/lib/scatter/ui/ScatterPlot.js +3 -2
  242. package/lib/scatter/ui/ScatterPlot.js.map +1 -1
  243. package/lib/scatter/ui/ScatterPointLayer.d.ts +14 -1
  244. package/lib/scatter/ui/ScatterPointLayer.d.ts.map +1 -1
  245. package/lib/scatter/ui/ScatterPointLayer.js +15 -3
  246. package/lib/scatter/ui/ScatterPointLayer.js.map +1 -1
  247. package/lib/scatter/ui/scatterFigureProps.d.ts +13 -0
  248. package/lib/scatter/ui/scatterFigureProps.d.ts.map +1 -1
  249. package/lib/scatter/ui/scatterMarkGlyph.d.ts +2 -1
  250. package/lib/scatter/ui/scatterMarkGlyph.d.ts.map +1 -1
  251. package/lib/scatter/ui/scatterMarkGlyph.js +7 -1
  252. package/lib/scatter/ui/scatterMarkGlyph.js.map +1 -1
  253. package/lib/scatter3d/ui/ScatterCloud.d.ts.map +1 -1
  254. package/lib/scatter3d/ui/ScatterCloud.js +2 -1
  255. package/lib/scatter3d/ui/ScatterCloud.js.map +1 -1
  256. package/lib/shared/ui/MenuButton.d.ts +3 -2
  257. package/lib/shared/ui/MenuButton.d.ts.map +1 -1
  258. package/lib/shared/ui/MenuButton.js +1 -1
  259. package/lib/shared/ui/MenuButton.js.map +1 -1
  260. package/lib/structure/core/conformerMinimise.d.ts +36 -0
  261. package/lib/structure/core/conformerMinimise.d.ts.map +1 -0
  262. package/lib/structure/core/conformerMinimise.js +81 -0
  263. package/lib/structure/core/conformerMinimise.js.map +1 -0
  264. package/lib/structure/core/conformerMinimum.d.ts +62 -0
  265. package/lib/structure/core/conformerMinimum.d.ts.map +1 -0
  266. package/lib/structure/core/conformerMinimum.js +90 -0
  267. package/lib/structure/core/conformerMinimum.js.map +1 -0
  268. package/lib/structure/core/conformerOptions.d.ts +62 -0
  269. package/lib/structure/core/conformerOptions.d.ts.map +1 -0
  270. package/lib/structure/core/conformerOptions.js +83 -0
  271. package/lib/structure/core/conformerOptions.js.map +1 -0
  272. package/lib/structure/core/conformerRefine.d.ts +104 -0
  273. package/lib/structure/core/conformerRefine.d.ts.map +1 -0
  274. package/lib/structure/core/conformerRefine.js +130 -0
  275. package/lib/structure/core/conformerRefine.js.map +1 -0
  276. package/lib/structure/core/conformerRefineRank.d.ts +36 -0
  277. package/lib/structure/core/conformerRefineRank.d.ts.map +1 -0
  278. package/lib/structure/core/conformerRefineRank.js +69 -0
  279. package/lib/structure/core/conformerRefineRank.js.map +1 -0
  280. package/lib/structure/core/conformerSession.d.ts +50 -0
  281. package/lib/structure/core/conformerSession.d.ts.map +1 -0
  282. package/lib/structure/core/conformerSession.js +88 -0
  283. package/lib/structure/core/conformerSession.js.map +1 -0
  284. package/lib/structure/core/conformerShape.d.ts +36 -0
  285. package/lib/structure/core/conformerShape.d.ts.map +1 -0
  286. package/lib/structure/core/conformerShape.js +150 -0
  287. package/lib/structure/core/conformerShape.js.map +1 -0
  288. package/lib/structure/core/conformers.d.ts +107 -0
  289. package/lib/structure/core/conformers.d.ts.map +1 -0
  290. package/lib/structure/core/conformers.js +149 -0
  291. package/lib/structure/core/conformers.js.map +1 -0
  292. package/lib/structure/core/geometryRelaxer.d.ts +66 -0
  293. package/lib/structure/core/geometryRelaxer.d.ts.map +1 -0
  294. package/lib/structure/core/geometryRelaxer.js +2 -0
  295. package/lib/structure/core/geometryRelaxer.js.map +1 -0
  296. package/lib/structure/core/index.d.ts +4 -0
  297. package/lib/structure/core/index.d.ts.map +1 -1
  298. package/lib/structure/core/index.js +2 -0
  299. package/lib/structure/core/index.js.map +1 -1
  300. package/lib/structure/core/moleculeCoordinates.d.ts +31 -0
  301. package/lib/structure/core/moleculeCoordinates.d.ts.map +1 -0
  302. package/lib/structure/core/moleculeCoordinates.js +80 -0
  303. package/lib/structure/core/moleculeCoordinates.js.map +1 -0
  304. package/lib/structure/core/molfileExport.d.ts +42 -0
  305. package/lib/structure/core/molfileExport.d.ts.map +1 -0
  306. package/lib/structure/core/molfileExport.js +47 -0
  307. package/lib/structure/core/molfileExport.js.map +1 -0
  308. package/lib/structure/core/oclResources.d.ts +12 -0
  309. package/lib/structure/core/oclResources.d.ts.map +1 -0
  310. package/lib/structure/core/oclResources.js +35 -0
  311. package/lib/structure/core/oclResources.js.map +1 -0
  312. package/lib/translate/core/catalog.d.ts +61 -0
  313. package/lib/translate/core/catalog.d.ts.map +1 -0
  314. package/lib/translate/core/catalog.js +49 -0
  315. package/lib/translate/core/catalog.js.map +1 -0
  316. package/lib/translate/core/checkTranslation.d.ts +32 -0
  317. package/lib/translate/core/checkTranslation.d.ts.map +1 -0
  318. package/lib/translate/core/checkTranslation.js +98 -0
  319. package/lib/translate/core/checkTranslation.js.map +1 -0
  320. package/lib/translate/core/contribution.d.ts +88 -0
  321. package/lib/translate/core/contribution.d.ts.map +1 -0
  322. package/lib/translate/core/contribution.js +14 -0
  323. package/lib/translate/core/contribution.js.map +1 -0
  324. package/lib/translate/core/index.d.ts +19 -0
  325. package/lib/translate/core/index.d.ts.map +1 -0
  326. package/lib/translate/core/index.js +15 -0
  327. package/lib/translate/core/index.js.map +1 -0
  328. package/lib/translate/core/marker.d.ts +45 -0
  329. package/lib/translate/core/marker.d.ts.map +1 -0
  330. package/lib/translate/core/marker.js +79 -0
  331. package/lib/translate/core/marker.js.map +1 -0
  332. package/lib/translate/core/mergeMessages.d.ts +35 -0
  333. package/lib/translate/core/mergeMessages.d.ts.map +1 -0
  334. package/lib/translate/core/mergeMessages.js +69 -0
  335. package/lib/translate/core/mergeMessages.js.map +1 -0
  336. package/lib/translate/core/session.d.ts +102 -0
  337. package/lib/translate/core/session.d.ts.map +1 -0
  338. package/lib/translate/core/session.js +162 -0
  339. package/lib/translate/core/session.js.map +1 -0
  340. package/lib/translate/core/start.d.ts +70 -0
  341. package/lib/translate/core/start.d.ts.map +1 -0
  342. package/lib/translate/core/start.js +73 -0
  343. package/lib/translate/core/start.js.map +1 -0
  344. package/lib/translate/core/suggestions.d.ts +77 -0
  345. package/lib/translate/core/suggestions.d.ts.map +1 -0
  346. package/lib/translate/core/suggestions.js +143 -0
  347. package/lib/translate/core/suggestions.js.map +1 -0
  348. package/lib/translate/core/tables.d.ts +100 -0
  349. package/lib/translate/core/tables.d.ts.map +1 -0
  350. package/lib/translate/core/tables.js +51 -0
  351. package/lib/translate/core/tables.js.map +1 -0
  352. package/lib/translate.d.ts +2 -0
  353. package/lib/translate.d.ts.map +1 -0
  354. package/lib/translate.js +6 -0
  355. package/lib/translate.js.map +1 -0
  356. package/lib/ui.d.ts +1 -0
  357. package/lib/ui.d.ts.map +1 -1
  358. package/lib/ui.js +1 -0
  359. package/lib/ui.js.map +1 -1
  360. package/lib/xtb/core/xtbRelaxer.d.ts +61 -0
  361. package/lib/xtb/core/xtbRelaxer.d.ts.map +1 -0
  362. package/lib/xtb/core/xtbRelaxer.js +108 -0
  363. package/lib/xtb/core/xtbRelaxer.js.map +1 -0
  364. package/lib/xtb.d.ts +11 -0
  365. package/lib/xtb.d.ts.map +1 -0
  366. package/lib/xtb.js +10 -0
  367. package/lib/xtb.js.map +1 -0
  368. package/package.json +18 -11
  369. package/src/chrome/ui/HeaderToggle.tsx +100 -0
  370. package/src/chrome/ui/index.ts +2 -0
  371. package/src/citation/core/gfn2Paper.ts +32 -0
  372. package/src/citation/core/index.ts +1 -0
  373. package/src/clipboard/ui/ClickToCopy.tsx +8 -7
  374. package/src/conformers.ts +87 -0
  375. package/src/core.ts +1 -0
  376. package/src/credits/core/credits.ts +16 -0
  377. package/src/ecosystem/core/index.ts +1 -0
  378. package/src/ecosystem/core/sites.ts +20 -2
  379. package/src/ecosystem/ui/EcosystemLinks.tsx +3 -1
  380. package/src/ecosystem/ui/SiteTile.tsx +3 -1
  381. package/src/format/core/index.ts +1 -1
  382. package/src/format/core/words.ts +19 -0
  383. package/src/language/core/index.ts +7 -0
  384. package/src/language/core/languageName.ts +16 -0
  385. package/src/language/core/languageParam.ts +70 -0
  386. package/src/language/ui/SiteLanguage.tsx +26 -0
  387. package/src/language/ui/index.ts +3 -0
  388. package/src/language/ui/siteLanguageContext.ts +20 -0
  389. package/src/orbital/core/atomicOrbitals.ts +17 -1
  390. package/src/orbital/core/hydrogenic.ts +2 -1
  391. package/src/orbital/core/index.ts +1 -0
  392. package/src/orbital/core/slaterEnergy.ts +83 -0
  393. package/src/overlay/core/index.ts +6 -2
  394. package/src/overlay/core/overlayMarks.ts +51 -6
  395. package/src/overlay/ui/OverlayLegendMark.tsx +5 -0
  396. package/src/projection/core/index.ts +11 -3
  397. package/src/projection/core/projectionCopy.ts +3 -0
  398. package/src/projection/core/projectionGroupings.ts +174 -0
  399. package/src/projection/core/projectionOptions.ts +18 -7
  400. package/src/projection/core/projectionPanelWords.ts +10 -0
  401. package/src/projection/core/projectionSamples.ts +62 -120
  402. package/src/projection/core/projectionStrings.ts +12 -1
  403. package/src/projection/core/resolveProjectionOptions.ts +66 -4
  404. package/src/projection/ui/ProjectionBar.tsx +4 -2
  405. package/src/projection/ui/ProjectionGroupingPickers.tsx +91 -0
  406. package/src/projection/ui/ProjectionMapControls.tsx +29 -32
  407. package/src/projection/ui/ProjectionMapLegend.tsx +1 -1
  408. package/src/projection/ui/ProjectionMapMore.tsx +14 -4
  409. package/src/projection/ui/ProjectionMapTab.tsx +27 -9
  410. package/src/projection/ui/ProjectionPairsMore.tsx +12 -21
  411. package/src/projection/ui/ProjectionPairsTab.tsx +5 -2
  412. package/src/projection/ui/ProjectionPanel.tsx +7 -3
  413. package/src/projection/ui/ProjectionReadout.tsx +28 -8
  414. package/src/projection/ui/ProjectionSpaceControls.tsx +20 -27
  415. package/src/projection/ui/ProjectionSpaceMore.tsx +12 -3
  416. package/src/projection/ui/ProjectionSpaceTab.tsx +23 -6
  417. package/src/projection/ui/ProjectionViewer.tsx +1 -0
  418. package/src/projection/ui/projectionBarReadings.ts +24 -8
  419. package/src/projection/ui/projectionBarSlots.tsx +10 -9
  420. package/src/projection/ui/projectionMapChoices.ts +71 -14
  421. package/src/projection/ui/projectionMapChrome.ts +55 -30
  422. package/src/projection/ui/projectionMapCorner.ts +67 -0
  423. package/src/projection/ui/projectionMapModel.ts +20 -59
  424. package/src/projection/ui/projectionMapView.ts +15 -8
  425. package/src/projection/ui/projectionSelectionSentence.ts +22 -0
  426. package/src/projection/ui/projectionStateApi.ts +57 -0
  427. package/src/projection/ui/projectionTabModels.ts +1 -1
  428. package/src/projection/ui/useProjectionState.ts +33 -37
  429. package/src/scatter/core/index.ts +1 -0
  430. package/src/scatter/core/pointShape.ts +80 -0
  431. package/src/scatter/ui/ScatterPlot.tsx +4 -1
  432. package/src/scatter/ui/ScatterPointLayer.tsx +39 -11
  433. package/src/scatter/ui/scatterFigureProps.ts +13 -0
  434. package/src/scatter/ui/scatterMarkGlyph.tsx +9 -1
  435. package/src/scatter3d/ui/ScatterCloud.tsx +3 -0
  436. package/src/shared/ui/MenuButton.tsx +4 -3
  437. package/src/structure/core/conformerMinimise.ts +99 -0
  438. package/src/structure/core/conformerMinimum.ts +125 -0
  439. package/src/structure/core/conformerOptions.ts +125 -0
  440. package/src/structure/core/conformerRefine.ts +234 -0
  441. package/src/structure/core/conformerRefineRank.ts +89 -0
  442. package/src/structure/core/conformerSession.ts +123 -0
  443. package/src/structure/core/conformerShape.ts +181 -0
  444. package/src/structure/core/conformers.ts +282 -0
  445. package/src/structure/core/geometryRelaxer.ts +71 -0
  446. package/src/structure/core/index.ts +13 -0
  447. package/src/structure/core/moleculeCoordinates.ts +93 -0
  448. package/src/structure/core/molfileExport.ts +62 -0
  449. package/src/structure/core/oclResources.ts +41 -0
  450. package/src/translate/core/catalog.ts +83 -0
  451. package/src/translate/core/checkTranslation.ts +128 -0
  452. package/src/translate/core/contribution.ts +99 -0
  453. package/src/translate/core/index.ts +72 -0
  454. package/src/translate/core/marker.ts +85 -0
  455. package/src/translate/core/mergeMessages.ts +74 -0
  456. package/src/translate/core/session.ts +250 -0
  457. package/src/translate/core/start.ts +121 -0
  458. package/src/translate/core/suggestions.ts +211 -0
  459. package/src/translate/core/tables.ts +120 -0
  460. package/src/translate.ts +5 -0
  461. package/src/ui.ts +1 -0
  462. package/src/xtb/core/xtbRelaxer.ts +160 -0
  463. package/src/xtb.ts +16 -0
  464. package/styles/chrome.css +61 -30
@@ -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;AAazD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CAyE3E"}
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;AAazD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,CA0E3E"}
@@ -57,6 +57,7 @@ export function ProjectionViewer(props) {
57
57
  result,
58
58
  copy,
59
59
  groups: state.groups,
60
+ shapes: state.shapes,
60
61
  options: state.options,
61
62
  selected: state.selected,
62
63
  onSettle: state.settleSelection,
@@ -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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"}
@@ -42,7 +42,10 @@ interface ProjectionReadingsInput {
42
42
  copy: ProjectionCopy;
43
43
  /** What the figure is showing, already made safe against the result. */
44
44
  options: ProjectionOptions;
45
- /** The groups as every figure draws them, whose colours the map writes. */
45
+ /**
46
+ * The grouping the figures are coloured by, whose colours the map writes;
47
+ * empty while nothing colours them.
48
+ */
46
49
  groups: ResolvedProjectionGroups;
47
50
  }
48
51
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"projectionBarReadings.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarReadings.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,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;AAI/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,UAAU,uBAAuB;IAC/B,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,CAoD9B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,OAAO,EAAE,cAAc,GACtB,MAAM,CAQR;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GACrC,SAAS,kBAAkB,EAAE,CAU/B"}
1
+ {"version":3,"file":"projectionBarReadings.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionBarReadings.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI/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,UAAU,uBAAuB;IAC/B,yEAAyE;IACzE,GAAG,EAAE,aAAa,CAAC;IACnB,qEAAqE;IACrE,IAAI,EAAE,cAAc,CAAC;IACrB,wEAAwE;IACxE,OAAO,EAAE,iBAAiB,CAAC;IAC3B;;;OAGG;IACH,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;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GACrC,SAAS,kBAAkB,EAAE,CAU/B"}
@@ -8,6 +8,7 @@
8
8
  * `Colour by species` and folding the bar at the wrong width.
9
9
  */
10
10
  import { chartShare } from "../../chart/core/chartLabels.js";
11
+ import { NO_GROUPING } from "../core/projectionOptions.js";
11
12
  import { ellipseCoverageText } from "./projectionEllipse.js";
12
13
  /**
13
14
  * What the tab showing writes at the far end of the bar.
@@ -37,7 +38,7 @@ export function projectionBarReadings(input) {
37
38
  ];
38
39
  }
39
40
  if (tab === 'space') {
40
- const coverage = options.colorBy === 'group' && groups.entries.length > 0
41
+ const coverage = isColoured(options, groups)
41
42
  ? ellipseCoverageText(options.ellipse, 'space')
42
43
  : '';
43
44
  return [
@@ -108,11 +109,11 @@ export function projectionChipSettings(readings) {
108
109
  * Empty while the colour stands for nothing, so a bar that says `Nothing`
109
110
  * does not carry a row of dots contradicting it.
110
111
  * @param options - What the figure is showing.
111
- * @param groups - The groups as every figure draws them.
112
+ * @param groups - The grouping the figures are coloured by.
112
113
  * @returns The colours, in the order the figure draws them.
113
114
  */
114
115
  function projectionGroupColors(options, groups) {
115
- if (options.colorBy !== 'group')
116
+ if (!isColoured(options, groups))
116
117
  return NO_COLORS;
117
118
  const colors = [];
118
119
  for (const entry of groups.entries)
@@ -134,7 +135,7 @@ function projectionGroupColors(options, groups) {
134
135
  */
135
136
  function mapReadings(copy, options, groups) {
136
137
  const { bar, help } = copy;
137
- const colored = options.colorBy === 'group';
138
+ const colored = isColoured(options, groups);
138
139
  const coverage = ellipseCoverageText(options.ellipse);
139
140
  return [
140
141
  {
@@ -150,6 +151,15 @@ function mapReadings(copy, options, groups) {
150
151
  },
151
152
  ];
152
153
  }
154
+ /**
155
+ * Whether the colour stands for a grouping at all.
156
+ * @param options - What the figure is showing.
157
+ * @param groups - The grouping the figures are coloured by.
158
+ * @returns `true` when the dots are painted by group.
159
+ */
160
+ function isColoured(options, groups) {
161
+ return options.colorBy !== NO_GROUPING && groups.entries.length > 0;
162
+ }
153
163
  /** No colours at all, which is what an uncoloured map paints. */
154
164
  const NO_COLORS = [];
155
165
  //# sourceMappingURL=projectionBarReadings.js.map
@@ -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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"}
@@ -3,7 +3,7 @@ import type { OverlayTier } from '../../overlay/core/overlayTiers.ts';
3
3
  import type { ProjectionCopy } from '../core/projectionCopy.ts';
4
4
  import type { ProjectionOptions } from '../core/projectionOptions.ts';
5
5
  import type { ProjectionResult } from '../core/projectionResult.ts';
6
- import type { ResolvedProjectionGroups } from '../core/projectionSamples.ts';
6
+ import type { ProjectionGrouping, ResolvedProjectionGroups } from '../core/projectionSamples.ts';
7
7
  import type { ProjectionTab } from '../core/projectionTabs.ts';
8
8
  import type { ProjectionReading } from './projectionBarReadings.ts';
9
9
  import type { ProjectionMapView } from './projectionMapView.ts';
@@ -31,8 +31,10 @@ interface ProjectionBarSlotsInput {
31
31
  map: ProjectionMapView;
32
32
  /** Every option, already made safe against the result. */
33
33
  options: ProjectionOptions;
34
- /** The groups as every figure draws them. */
34
+ /** The grouping the figures are coloured by; empty while nothing colours them. */
35
35
  groups: ResolvedProjectionGroups;
36
+ /** Every grouping the samples carry, which the pickers choose between. */
37
+ groupings: readonly ProjectionGrouping[];
36
38
  /** The selected rows, as indices. */
37
39
  selected: readonly number[];
38
40
  /** Width of the viewer, in pixels. */
@@ -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;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,UAAU,kBAAkB;IAC1B,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,UAAU,uBAAuB;IAC/B,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"}
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,EACV,kBAAkB,EAClB,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AACtC,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,UAAU,kBAAkB;IAC1B,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,UAAU,uBAAuB;IAC/B,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,kFAAkF;IAClF,MAAM,EAAE,wBAAwB,CAAC;IACjC,0EAA0E;IAC1E,SAAS,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACzC,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,CA0EpB"}
@@ -23,14 +23,12 @@ import { projectionPairsInfo, projectionSharesInfo, projectionVariablesInfo, } f
23
23
  */
24
24
  export function projectionBarSlots(input) {
25
25
  const { tab, result, copy, models, map, readings, tier } = input;
26
- const { options, groups, selected, width, onChange } = input;
27
- const hasGroups = groups.entries.length > 0;
28
- const colored = options.colorBy === 'group' && hasGroups;
29
- const shared = { options, onChange, copy, groupLabel: groups.label };
26
+ const { options, groups, groupings, selected, width, onChange } = input;
27
+ const colored = groups.entries.length > 0;
28
+ const shared = { options, onChange, copy, groupings };
30
29
  if (tab === 'pairs') {
31
30
  const pairs = {
32
31
  ...shared,
33
- hasGroups,
34
32
  axisCount: result.axes.length,
35
33
  width,
36
34
  };
@@ -44,7 +42,6 @@ export function projectionBarSlots(input) {
44
42
  const space = {
45
43
  ...shared,
46
44
  result,
47
- hasGroups,
48
45
  selectedCount: selected.length,
49
46
  onResetView: map.resetSpaceView,
50
47
  onClearSelection: map.clearSelection,
@@ -83,7 +80,6 @@ export function projectionBarSlots(input) {
83
80
  const forMap = {
84
81
  ...shared,
85
82
  result,
86
- hasGroups,
87
83
  selectedCount: selected.length,
88
84
  onZoomToSelection: map.zoomToSelection,
89
85
  onResetView: map.resetView,
@@ -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":";AAYA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA6B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAyB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA+B,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA2B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAAgC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA4B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA+B,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA2B,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAmC,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA+B,CAAC;AAGxE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AA2ChC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAA8B;IAE9B,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACjE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAExE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAEtD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG;YACZ,GAAG,MAAM;YACT,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;YAC7B,KAAK;SACN,CAAC;QACF,OAAO;YACL,GAAG,EAAE,KAAC,uBAAuB,OAAK,KAAK,EAAE,IAAI,EAAE,IAAI,GAAI;YACvD,IAAI,EAAE,KAAC,mBAAmB,OAAK,KAAK,GAAI;YACxC,IAAI,EAAE,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC;SACvD,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG;YACZ,GAAG,MAAM;YACT,MAAM;YACN,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,WAAW,EAAE,GAAG,CAAC,cAAc;YAC/B,gBAAgB,EAAE,GAAG,CAAC,cAAc;SACrC,CAAC;QACF,OAAO;YACL,GAAG,EAAE,CACH,KAAC,uBAAuB,OAAK,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAI,CACvE;YACD,IAAI,EAAE,KAAC,mBAAmB,OAAK,KAAK,GAAI;YACxC,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC,OAAO;SAC9B,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG;YAChB,OAAO;YACP,IAAI;YACJ,QAAQ;YACR,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;YAC7B,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,KAAK,SAAS;YAClD,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS;YACjD,aAAa,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;YACpC,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,KAAK,YAAY;SACxD,CAAC;QACF,OAAO;YACL,GAAG,EAAE,KAAC,2BAA2B,OAAK,SAAS,EAAE,IAAI,EAAE,IAAI,GAAI;YAC/D,IAAI,EAAE,KAAC,uBAAuB,OAAK,SAAS,GAAI;YAChD,IAAI,EAAE,uBAAuB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC;SACxE,CAAC;IACJ,CAAC;IACD,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,OAAO;YACL,GAAG,EAAE,KAAC,wBAAwB,OAAK,MAAM,EAAE,IAAI,EAAE,IAAI,GAAI;YACzD,IAAI,EAAE,KAAC,oBAAoB,OAAK,MAAM,GAAI;YAC1C,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;SAChD,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG;QACb,GAAG,MAAM;QACT,MAAM;QACN,aAAa,EAAE,QAAQ,CAAC,MAAM;QAC9B,iBAAiB,EAAE,GAAG,CAAC,eAAe;QACtC,WAAW,EAAE,GAAG,CAAC,SAAS;QAC1B,gBAAgB,EAAE,GAAG,CAAC,cAAc;KACrC,CAAC;IACF,OAAO;QACL,GAAG,EAAE,KAAC,qBAAqB,OAAK,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAI;QAC1E,IAAI,EAAE,KAAC,iBAAiB,OAAK,MAAM,GAAI;QACvC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO;KACzB,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * What the map's two settings offer, in the two lengths the bar needs.
2
+ * What the map's settings offer, in the lengths the bar needs.
3
3
  *
4
4
  * The same choices are written twice — once as bare shares on a value menu
5
5
  * whose own heading already says what they are shares of, and once as whole
@@ -8,14 +8,39 @@
8
8
  */
9
9
  import type { OverlayOption } from '../../overlay/ui/OverlayRow.tsx';
10
10
  import type { ProjectionCopy } from '../core/projectionCopy.ts';
11
- import type { ProjectionColorBy, ProjectionOptions } from '../core/projectionOptions.ts';
11
+ import type { ProjectionOptions } from '../core/projectionOptions.ts';
12
+ import type { ProjectionGrouping } from '../core/projectionSamples.ts';
12
13
  /**
13
- * What the colour may stand for.
14
- * @param groupLabel - What the set of groups is called.
14
+ * What the colour may stand for: each grouping the samples carry, or nothing.
15
+ * @param groupings - The groupings the samples carry.
15
16
  * @param uncoloured - What "the colour stands for nothing" reads.
16
- * @returns The two choices.
17
+ * @returns The choices, in the order the groupings were handed in.
17
18
  */
18
- export declare function projectionColourChoices(groupLabel: string, uncoloured: string): ReadonlyArray<OverlayOption<ProjectionColorBy>>;
19
+ export declare function projectionColourChoices(groupings: readonly ProjectionGrouping[], uncoloured: string): readonly OverlayOption[];
20
+ /**
21
+ * What the shape may stand for: each grouping the samples carry, or nothing.
22
+ *
23
+ * A grouping the colour already stands for is kept in the list but greyed, as
24
+ * is one of more groups than there are shapes, so the reader sees why it cannot
25
+ * be picked rather than wondering where it went.
26
+ * @param groupings - The groupings the samples carry.
27
+ * @param options - What the figure is showing, whose colour is taken.
28
+ * @param rows - How many rows there are, which is what a grouping is cut over.
29
+ * @param copy - The words the viewer writes.
30
+ * @returns The choices, in the order the groupings were handed in.
31
+ */
32
+ export declare function projectionShapeChoices(groupings: readonly ProjectionGrouping[], options: ProjectionOptions, rows: number, copy: ProjectionCopy): readonly OverlayOption[];
33
+ /**
34
+ * What changes when the colour is given to another grouping.
35
+ *
36
+ * A grouping drawn as the shape that is picked for the colour swaps places
37
+ * with it rather than being dropped, so the reader never loses one of the two
38
+ * groupings they were comparing by trading them round.
39
+ * @param options - What the figure is showing.
40
+ * @param colorBy - The grouping picked for the colour.
41
+ * @returns The options that change.
42
+ */
43
+ export declare function projectionColourPatch(options: ProjectionOptions, colorBy: string): Partial<ProjectionOptions>;
19
44
  /**
20
45
  * How large the outlines may be, written as bare shares.
21
46
  *
@@ -1 +1 @@
1
- {"version":3,"file":"projectionMapChoices.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionMapChoices.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AAQtC;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,aAAa,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAKjD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,cAAc,GACnB,SAAS,aAAa,EAAE,CAW1B"}
1
+ {"version":3,"file":"projectionMapChoices.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionMapChoices.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAQvE;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,SAAS,kBAAkB,EAAE,EACxC,UAAU,EAAE,MAAM,GACjB,SAAS,aAAa,EAAE,CAK1B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,SAAS,kBAAkB,EAAE,EACxC,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,cAAc,GACnB,SAAS,aAAa,EAAE,CAmB1B;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,CAI5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAE,cAAc,GACnB,SAAS,aAAa,EAAE,CAW1B"}
@@ -1,23 +1,72 @@
1
1
  /**
2
- * What the map's two settings offer, in the two lengths the bar needs.
2
+ * What the map's settings offer, in the lengths the bar needs.
3
3
  *
4
4
  * The same choices are written twice — once as bare shares on a value menu
5
5
  * whose own heading already says what they are shares of, and once as whole
6
6
  * sentences in the panel a reader opens with room to read them — so both are
7
7
  * built here and neither file spells the other's list for itself.
8
8
  */
9
+ import { resolveProjectionShapes } from "../core/projectionGroupings.js";
10
+ import { NO_GROUPING } from "../core/projectionOptions.js";
9
11
  import { ellipseChoices, ellipseCoverageText, ellipseSize, } from "./projectionEllipse.js";
10
12
  /**
11
- * What the colour may stand for.
12
- * @param groupLabel - What the set of groups is called.
13
+ * What the colour may stand for: each grouping the samples carry, or nothing.
14
+ * @param groupings - The groupings the samples carry.
13
15
  * @param uncoloured - What "the colour stands for nothing" reads.
14
- * @returns The two choices.
16
+ * @returns The choices, in the order the groupings were handed in.
15
17
  */
16
- export function projectionColourChoices(groupLabel, uncoloured) {
17
- return [
18
- { value: 'group', label: groupLabel },
19
- { value: 'none', label: uncoloured },
20
- ];
18
+ export function projectionColourChoices(groupings, uncoloured) {
19
+ const choices = [];
20
+ for (const { id, label } of groupings)
21
+ choices.push({ value: id, label });
22
+ choices.push({ value: NO_GROUPING, label: uncoloured });
23
+ return choices;
24
+ }
25
+ /**
26
+ * What the shape may stand for: each grouping the samples carry, or nothing.
27
+ *
28
+ * A grouping the colour already stands for is kept in the list but greyed, as
29
+ * is one of more groups than there are shapes, so the reader sees why it cannot
30
+ * be picked rather than wondering where it went.
31
+ * @param groupings - The groupings the samples carry.
32
+ * @param options - What the figure is showing, whose colour is taken.
33
+ * @param rows - How many rows there are, which is what a grouping is cut over.
34
+ * @param copy - The words the viewer writes.
35
+ * @returns The choices, in the order the groupings were handed in.
36
+ */
37
+ export function projectionShapeChoices(groupings, options, rows, copy) {
38
+ const choices = [];
39
+ for (const grouping of groupings) {
40
+ const { id, label } = grouping;
41
+ const reason = id === options.colorBy
42
+ ? copy.reason.shapeIsColour
43
+ : resolveProjectionShapes(grouping, rows) === null
44
+ ? copy.reason.tooManyShapes
45
+ : undefined;
46
+ choices.push({
47
+ value: id,
48
+ label,
49
+ disabled: reason !== undefined,
50
+ title: reason,
51
+ });
52
+ }
53
+ choices.push({ value: NO_GROUPING, label: copy.bar.unshaped });
54
+ return choices;
55
+ }
56
+ /**
57
+ * What changes when the colour is given to another grouping.
58
+ *
59
+ * A grouping drawn as the shape that is picked for the colour swaps places
60
+ * with it rather than being dropped, so the reader never loses one of the two
61
+ * groupings they were comparing by trading them round.
62
+ * @param options - What the figure is showing.
63
+ * @param colorBy - The grouping picked for the colour.
64
+ * @returns The options that change.
65
+ */
66
+ export function projectionColourPatch(options, colorBy) {
67
+ return colorBy !== NO_GROUPING && colorBy === options.shapeBy
68
+ ? { colorBy, shapeBy: options.colorBy }
69
+ : { colorBy };
21
70
  }
22
71
  /**
23
72
  * How large the outlines may be, written as bare shares.
@@ -1 +1 @@
1
- {"version":3,"file":"projectionMapChoices.js","sourceRoot":"","sources":["../../../src/projection/ui/projectionMapChoices.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAkB,EAClB,UAAkB;IAElB,OAAO;QACL,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;QACrC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE;KACrC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAA0B,EAC1B,IAAoB;IAEpB,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACnE,MAAM,KAAK,GAAG,mBAAmB,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK;YACjD,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"projectionMapChoices.js","sourceRoot":"","sources":["../../../src/projection/ui/projectionMapChoices.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,SAAwC,EACxC,UAAkB;IAElB,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,KAAK,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1E,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IACxD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CACpC,SAAwC,EACxC,OAA0B,EAC1B,IAAY,EACZ,IAAoB;IAEpB,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;QAC/B,MAAM,MAAM,GACV,EAAE,KAAK,OAAO,CAAC,OAAO;YACpB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa;YAC3B,CAAC,CAAC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,IAAI;gBAChD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa;gBAC3B,CAAC,CAAC,SAAS,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,EAAE;YACT,KAAK;YACL,QAAQ,EAAE,MAAM,KAAK,SAAS;YAC9B,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAA0B,EAC1B,OAAe;IAEf,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,OAAO,CAAC,OAAO;QAC3D,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;QACvC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAA0B,EAC1B,IAAoB;IAEpB,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACnE,MAAM,KAAK,GAAG,mBAAmB,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,KAAK,EAAE,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK;YACjD,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -11,7 +11,7 @@ import type { OverlayLegendEntry } from '../../overlay/ui/OverlayLegend.tsx';
11
11
  import type { EllipseSize } from '../../scatter/core/confidenceEllipse.ts';
12
12
  import type { ProjectionCopy } from '../core/projectionCopy.ts';
13
13
  import type { ProjectionMarker } from '../core/projectionResult.ts';
14
- import type { ResolvedProjectionGroups } from '../core/projectionSamples.ts';
14
+ import type { ResolvedProjectionGroups, ResolvedProjectionShapes } from '../core/projectionSamples.ts';
15
15
  /** What the map's chrome is built from. */
16
16
  interface ProjectionMapChromeInput {
17
17
  /** The words the map writes, already merged over the defaults. */
@@ -20,6 +20,8 @@ interface ProjectionMapChromeInput {
20
20
  groups: ResolvedProjectionGroups;
21
21
  /** Whether colour stands for the group at all. */
22
22
  colored: boolean;
23
+ /** The grouping the dots are shaped by, or `null` while they are all discs. */
24
+ shapes: ResolvedProjectionShapes | null;
23
25
  /** How large the group outlines are, or `null` for none. */
24
26
  ellipse: EllipseSize | null;
25
27
  /** How many samples a group needs before it is outlined at all. */
@@ -70,13 +72,5 @@ export interface ProjectionMapChrome {
70
72
  * @returns The legend's title and entries, and the standing caption.
71
73
  */
72
74
  export declare function projectionMapChrome(input: ProjectionMapChromeInput): ProjectionMapChrome;
73
- /**
74
- * The sentence reporting what a gesture picked out.
75
- * @param copy - The words the map writes.
76
- * @param count - How many samples are selected.
77
- * @param total - How many there are in all.
78
- * @returns The sentence.
79
- */
80
- export declare function projectionSelectionSentence(copy: ProjectionCopy, count: number, total: number): string;
81
75
  export {};
82
76
  //# sourceMappingURL=projectionMapChrome.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"projectionMapChrome.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionMapChrome.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAK7E,2CAA2C;AAC3C,UAAU,wBAAwB;IAChC,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"}
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;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EACV,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AAKtC,2CAA2C;AAC3C,UAAU,wBAAwB;IAChC,kEAAkE;IAClE,IAAI,EAAE,cAAc,CAAC;IACrB,0CAA0C;IAC1C,MAAM,EAAE,wBAAwB,CAAC;IACjC,kDAAkD;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,+EAA+E;IAC/E,MAAM,EAAE,wBAAwB,GAAG,IAAI,CAAC;IACxC,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,CAuDrB"}
@@ -7,7 +7,6 @@
7
7
  * only way a promise like "this outline covers 95 % of the group" stays
8
8
  * honest as the controls around it change.
9
9
  */
10
- import { formatInteger } from "../../format/core/numbers.js";
11
10
  import { fillCopy } from "../core/fillCopy.js";
12
11
  import { ellipseCoverageText } from "./projectionEllipse.js";
13
12
  import { UNGROUPED_INK } from "./projectionMapModel.js";
@@ -25,6 +24,7 @@ import { UNGROUPED_INK } from "./projectionMapModel.js";
25
24
  */
26
25
  export function projectionMapChrome(input) {
27
26
  const { copy, groups, colored, ellipse, showGroupMeans, markers } = input;
27
+ const { shapes } = input;
28
28
  const { minimumPoints, fittedCount, total, figure = 'map' } = input;
29
29
  const entries = [];
30
30
  const skipped = [];
@@ -51,6 +51,7 @@ export function projectionMapChrome(input) {
51
51
  });
52
52
  }
53
53
  }
54
+ appendShapeEntries(entries, shapes);
54
55
  appendMarkerEntries(entries, markers, groups);
55
56
  const hollow = fittedCount < total;
56
57
  if (hollow) {
@@ -62,43 +63,54 @@ export function projectionMapChrome(input) {
62
63
  });
63
64
  }
64
65
  return {
65
- title: legendTitle(copy, groups, colored),
66
+ title: legendTitle(copy, groups, colored, shapes),
66
67
  entries,
67
68
  caption: captionFor(copy, groups, colored, ellipse, skipped, hollow, figure),
68
69
  };
69
70
  }
70
71
  /**
71
- * The sentence reporting what a gesture picked out.
72
- * @param copy - The words the map writes.
73
- * @param count - How many samples are selected.
74
- * @param total - How many there are in all.
75
- * @returns The sentence.
76
- */
77
- export function projectionSelectionSentence(copy, count, total) {
78
- if (count === 0)
79
- return copy.sentence.selectionNone;
80
- return fillCopy(copy.sentence.selection, {
81
- count: formatInteger(count),
82
- total: formatInteger(total),
83
- });
84
- }
85
- /**
86
- * The sentence over the legend.
72
+ * The sentence over the legend, naming what the colour and the shape stand
73
+ * for.
87
74
  *
88
- * When colour stands for nothing the entries left are all shape, so the title
89
- * names the shape channel: a legend naming no encoding at all is the one fault
90
- * this title exists to prevent, and it is not fixed by leaving the title out.
75
+ * When neither stands for a grouping the entries left are all marks, so the
76
+ * title names the shape channel: a legend naming no encoding at all is the one
77
+ * fault this title exists to prevent, and it is not fixed by leaving it out.
91
78
  * @param copy - The words the map writes.
92
79
  * @param groups - The groups as the map colours them.
93
80
  * @param colored - Whether colour stands for the group at all.
81
+ * @param shapes - The grouping the dots are shaped by, or `null`.
94
82
  * @returns The title.
95
83
  */
96
- function legendTitle(copy, groups, colored) {
97
- if (!colored || groups.entries.length === 0)
98
- return copy.legend.shapes;
99
- return fillCopy(copy.legend.mapNoEllipse, {
100
- groups: groups.label.toLowerCase(),
101
- });
84
+ function legendTitle(copy, groups, colored, shapes) {
85
+ const parts = [];
86
+ if (colored && groups.entries.length > 0) {
87
+ parts.push(fillCopy(copy.legend.mapNoEllipse, {
88
+ groups: groups.label.toLowerCase(),
89
+ }));
90
+ }
91
+ if (shapes !== null) {
92
+ parts.push(fillCopy(copy.legend.shapedBy, { shapes: shapes.label.toLowerCase() }));
93
+ }
94
+ return parts.length === 0 ? copy.legend.shapes : parts.join(' ');
95
+ }
96
+ /**
97
+ * One entry per shape, drawn in the muted ink: a colour on a shape's entry
98
+ * would claim a group of the colour grouping it does not stand for.
99
+ * @param entries - The legend, appended to in place.
100
+ * @param shapes - The grouping the dots are shaped by, or `null`.
101
+ */
102
+ function appendShapeEntries(entries, shapes) {
103
+ if (shapes === null)
104
+ return;
105
+ for (const entry of shapes.entries) {
106
+ entries.push({
107
+ id: `shape-${entry.id}`,
108
+ label: entry.label,
109
+ color: SHAPE_INK,
110
+ shape: entry.shape,
111
+ count: entry.count,
112
+ });
113
+ }
102
114
  }
103
115
  function captionFor(copy, groups, colored, ellipse, skipped, hollow, figure) {
104
116
  const solid = figure === 'space';
@@ -134,4 +146,6 @@ function appendMarkerEntries(entries, markers, groups) {
134
146
  });
135
147
  }
136
148
  }
149
+ /** The ink a shape's entry is drawn in, the one the key uses for marks that name no colour. */
150
+ const SHAPE_INK = 'var(--text-muted)';
137
151
  //# sourceMappingURL=projectionMapChrome.js.map
@@ -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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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Which corner of the map the floating key takes.
3
+ *
4
+ * It is a module of its own because it is the one piece of the map that has to
5
+ * know where the dots fall before anything is drawn over them, and it is all
6
+ * arithmetic that can be checked without rendering anything.
7
+ */
8
+ import type { OverlayCorner } from '../../overlay/core/overlayPlacement.ts';
9
+ import type { ProjectionMapCloud } from './projectionMapModel.ts';
10
+ /**
11
+ * The corner of the map with the fewest dots under it.
12
+ *
13
+ * All four are offered. The chrome that asks is laid out inside the plot
14
+ * rectangle rather than over the figure's box, so no corner of it costs the
15
+ * reader an axis label, and the only thing left to weigh is how many samples
16
+ * each one would cover.
17
+ * @param cloud - Where every sample sits, in data units.
18
+ * @param xDomain - The range the horizontal axis covers.
19
+ * @param yDomain - The range the vertical axis covers.
20
+ * @param width - Width of the plot rectangle, in pixels.
21
+ * @param height - Its height.
22
+ * @returns The corner the card sits in.
23
+ */
24
+ export declare function projectionMapCorner(cloud: ProjectionMapCloud, xDomain: readonly [number, number], yDomain: readonly [number, number], width: number, height: number): OverlayCorner;
25
+ //# sourceMappingURL=projectionMapCorner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectionMapCorner.d.ts","sourceRoot":"","sources":["../../../src/projection/ui/projectionMapCorner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAE5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,aAAa,CAMf"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Which corner of the map the floating key takes.
3
+ *
4
+ * It is a module of its own because it is the one piece of the map that has to
5
+ * know where the dots fall before anything is drawn over them, and it is all
6
+ * arithmetic that can be checked without rendering anything.
7
+ */
8
+ import { emptiestCorner } from "../../overlay/core/emptiestCorner.js";
9
+ /**
10
+ * The corner of the map with the fewest dots under it.
11
+ *
12
+ * All four are offered. The chrome that asks is laid out inside the plot
13
+ * rectangle rather than over the figure's box, so no corner of it costs the
14
+ * reader an axis label, and the only thing left to weigh is how many samples
15
+ * each one would cover.
16
+ * @param cloud - Where every sample sits, in data units.
17
+ * @param xDomain - The range the horizontal axis covers.
18
+ * @param yDomain - The range the vertical axis covers.
19
+ * @param width - Width of the plot rectangle, in pixels.
20
+ * @param height - Its height.
21
+ * @returns The corner the card sits in.
22
+ */
23
+ export function projectionMapCorner(cloud, xDomain, yDomain, width, height) {
24
+ return emptiestCorner(placeAlong(cloud.x, xDomain, width, false), placeAlong(cloud.y, yDomain, height, true), { width, height, cardWidth: CARD_WIDTH, cardHeight: CARD_HEIGHT });
25
+ }
26
+ function placeAlong(values, domain, size, flip) {
27
+ const span = domain[1] - domain[0];
28
+ const factor = span === 0 ? 0 : size / span;
29
+ const pixels = new Float64Array(values.length);
30
+ for (let index = 0; index < values.length; index++) {
31
+ const along = ((values[index] ?? Number.NaN) - domain[0]) * factor;
32
+ pixels[index] = flip ? size - along : along;
33
+ }
34
+ return pixels;
35
+ }
36
+ /**
37
+ * How much of the plot the floating key is expected to cover.
38
+ *
39
+ * It is an estimate on purpose — the card has not been laid out when the
40
+ * corner is chosen — and it is the compact key's size rather than the roomier
41
+ * card the overlay domain assumes: a corner counted as three species wide
42
+ * would call a corner busy that the key never reaches.
43
+ */
44
+ const CARD_WIDTH = 170;
45
+ const CARD_HEIGHT = 84;
46
+ //# sourceMappingURL=projectionMapCorner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectionMapCorner.js","sourceRoot":"","sources":["../../../src/projection/ui/projectionMapCorner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAKtE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAyB,EACzB,OAAkC,EAClC,OAAkC,EAClC,KAAa,EACb,MAAc;IAEd,OAAO,cAAc,CACnB,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,EAC1C,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAC1C,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,CAClE,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CACjB,MAAoB,EACpB,MAAiC,EACjC,IAAY,EACZ,IAAa;IAEb,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QACnE,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,MAAM,WAAW,GAAG,EAAE,CAAC"}