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.
- package/README.md +51 -28
- package/lib/chrome/ui/HeaderToggle.d.ts +52 -0
- package/lib/chrome/ui/HeaderToggle.d.ts.map +1 -0
- package/lib/chrome/ui/HeaderToggle.js +31 -0
- package/lib/chrome/ui/HeaderToggle.js.map +1 -0
- package/lib/chrome/ui/index.d.ts +2 -0
- package/lib/chrome/ui/index.d.ts.map +1 -1
- package/lib/chrome/ui/index.js +1 -0
- package/lib/chrome/ui/index.js.map +1 -1
- package/lib/citation/core/gfn2Paper.d.ts +10 -0
- package/lib/citation/core/gfn2Paper.d.ts.map +1 -0
- package/lib/citation/core/gfn2Paper.js +28 -0
- package/lib/citation/core/gfn2Paper.js.map +1 -0
- package/lib/citation/core/index.d.ts +1 -0
- package/lib/citation/core/index.d.ts.map +1 -1
- package/lib/citation/core/index.js +1 -0
- package/lib/citation/core/index.js.map +1 -1
- package/lib/clipboard/ui/ClickToCopy.d.ts +8 -7
- package/lib/clipboard/ui/ClickToCopy.d.ts.map +1 -1
- package/lib/clipboard/ui/ClickToCopy.js +3 -3
- package/lib/clipboard/ui/ClickToCopy.js.map +1 -1
- package/lib/conformers.d.ts +27 -0
- package/lib/conformers.d.ts.map +1 -0
- package/lib/conformers.js +19 -0
- package/lib/conformers.js.map +1 -0
- package/lib/core.d.ts +1 -0
- package/lib/core.d.ts.map +1 -1
- package/lib/core.js +1 -0
- package/lib/core.js.map +1 -1
- package/lib/credits/core/credits.d.ts +12 -0
- package/lib/credits/core/credits.d.ts.map +1 -1
- package/lib/credits/core/credits.js +14 -0
- package/lib/credits/core/credits.js.map +1 -1
- package/lib/ecosystem/core/index.d.ts +1 -1
- package/lib/ecosystem/core/index.d.ts.map +1 -1
- package/lib/ecosystem/core/index.js.map +1 -1
- package/lib/ecosystem/core/sites.d.ts +11 -1
- package/lib/ecosystem/core/sites.d.ts.map +1 -1
- package/lib/ecosystem/core/sites.js +7 -2
- package/lib/ecosystem/core/sites.js.map +1 -1
- package/lib/ecosystem/ui/EcosystemLinks.d.ts.map +1 -1
- package/lib/ecosystem/ui/EcosystemLinks.js +3 -1
- package/lib/ecosystem/ui/EcosystemLinks.js.map +1 -1
- package/lib/ecosystem/ui/SiteTile.d.ts.map +1 -1
- package/lib/ecosystem/ui/SiteTile.js +3 -1
- package/lib/ecosystem/ui/SiteTile.js.map +1 -1
- package/lib/format/core/index.d.ts +1 -1
- package/lib/format/core/index.d.ts.map +1 -1
- package/lib/format/core/index.js +1 -1
- package/lib/format/core/index.js.map +1 -1
- package/lib/format/core/words.d.ts +9 -0
- package/lib/format/core/words.d.ts.map +1 -1
- package/lib/format/core/words.js +16 -0
- package/lib/format/core/words.js.map +1 -1
- package/lib/language/core/index.d.ts +3 -0
- package/lib/language/core/index.d.ts.map +1 -0
- package/lib/language/core/index.js +3 -0
- package/lib/language/core/index.js.map +1 -0
- package/lib/language/core/languageName.d.ts +8 -0
- package/lib/language/core/languageName.d.ts.map +1 -0
- package/lib/language/core/languageName.js +16 -0
- package/lib/language/core/languageName.js.map +1 -0
- package/lib/language/core/languageParam.d.ts +35 -0
- package/lib/language/core/languageParam.d.ts.map +1 -0
- package/lib/language/core/languageParam.js +67 -0
- package/lib/language/core/languageParam.js.map +1 -0
- package/lib/language/ui/SiteLanguage.d.ts +20 -0
- package/lib/language/ui/SiteLanguage.d.ts.map +1 -0
- package/lib/language/ui/SiteLanguage.js +14 -0
- package/lib/language/ui/SiteLanguage.js.map +1 -0
- package/lib/language/ui/index.d.ts +4 -0
- package/lib/language/ui/index.d.ts.map +1 -0
- package/lib/language/ui/index.js +3 -0
- package/lib/language/ui/index.js.map +1 -0
- package/lib/language/ui/siteLanguageContext.d.ts +12 -0
- package/lib/language/ui/siteLanguageContext.d.ts.map +1 -0
- package/lib/language/ui/siteLanguageContext.js +19 -0
- package/lib/language/ui/siteLanguageContext.js.map +1 -0
- package/lib/orbital/core/atomicOrbitals.d.ts +9 -1
- package/lib/orbital/core/atomicOrbitals.d.ts.map +1 -1
- package/lib/orbital/core/atomicOrbitals.js +7 -0
- package/lib/orbital/core/atomicOrbitals.js.map +1 -1
- package/lib/orbital/core/hydrogenic.d.ts +2 -1
- package/lib/orbital/core/hydrogenic.d.ts.map +1 -1
- package/lib/orbital/core/hydrogenic.js +2 -1
- package/lib/orbital/core/hydrogenic.js.map +1 -1
- package/lib/orbital/core/index.d.ts +1 -0
- package/lib/orbital/core/index.d.ts.map +1 -1
- package/lib/orbital/core/index.js +1 -0
- package/lib/orbital/core/index.js.map +1 -1
- package/lib/orbital/core/slaterEnergy.d.ts +35 -0
- package/lib/orbital/core/slaterEnergy.d.ts.map +1 -0
- package/lib/orbital/core/slaterEnergy.js +66 -0
- package/lib/orbital/core/slaterEnergy.js.map +1 -0
- package/lib/overlay/core/index.d.ts +2 -2
- package/lib/overlay/core/index.d.ts.map +1 -1
- package/lib/overlay/core/index.js +1 -1
- package/lib/overlay/core/index.js.map +1 -1
- package/lib/overlay/core/overlayMarks.d.ts +20 -5
- package/lib/overlay/core/overlayMarks.d.ts.map +1 -1
- package/lib/overlay/core/overlayMarks.js +31 -5
- package/lib/overlay/core/overlayMarks.js.map +1 -1
- package/lib/overlay/ui/OverlayLegendMark.js +5 -0
- package/lib/overlay/ui/OverlayLegendMark.js.map +1 -1
- package/lib/projection/core/index.d.ts +4 -4
- package/lib/projection/core/index.d.ts.map +1 -1
- package/lib/projection/core/index.js +2 -2
- package/lib/projection/core/index.js.map +1 -1
- package/lib/projection/core/projectionCopy.d.ts +2 -0
- package/lib/projection/core/projectionCopy.d.ts.map +1 -1
- package/lib/projection/core/projectionCopy.js +1 -0
- package/lib/projection/core/projectionCopy.js.map +1 -1
- package/lib/projection/core/projectionGroupings.d.ts +44 -0
- package/lib/projection/core/projectionGroupings.d.ts.map +1 -0
- package/lib/projection/core/projectionGroupings.js +132 -0
- package/lib/projection/core/projectionGroupings.js.map +1 -0
- package/lib/projection/core/projectionOptions.d.ts +16 -6
- package/lib/projection/core/projectionOptions.d.ts.map +1 -1
- package/lib/projection/core/projectionOptions.js +7 -1
- package/lib/projection/core/projectionOptions.js.map +1 -1
- package/lib/projection/core/projectionPanelWords.d.ts +6 -0
- package/lib/projection/core/projectionPanelWords.d.ts.map +1 -1
- package/lib/projection/core/projectionPanelWords.js +4 -0
- package/lib/projection/core/projectionPanelWords.js.map +1 -1
- package/lib/projection/core/projectionSamples.d.ts +63 -32
- package/lib/projection/core/projectionSamples.d.ts.map +1 -1
- package/lib/projection/core/projectionSamples.js +1 -80
- package/lib/projection/core/projectionSamples.js.map +1 -1
- package/lib/projection/core/projectionStrings.d.ts +2 -0
- package/lib/projection/core/projectionStrings.d.ts.map +1 -1
- package/lib/projection/core/projectionStrings.js +10 -1
- package/lib/projection/core/projectionStrings.js.map +1 -1
- package/lib/projection/core/resolveProjectionOptions.d.ts +8 -3
- package/lib/projection/core/resolveProjectionOptions.d.ts.map +1 -1
- package/lib/projection/core/resolveProjectionOptions.js +58 -5
- package/lib/projection/core/resolveProjectionOptions.js.map +1 -1
- package/lib/projection/ui/ProjectionBar.d.ts +1 -1
- package/lib/projection/ui/ProjectionBar.d.ts.map +1 -1
- package/lib/projection/ui/ProjectionBar.js +3 -1
- package/lib/projection/ui/ProjectionBar.js.map +1 -1
- package/lib/projection/ui/ProjectionGroupingPickers.d.ts +38 -0
- package/lib/projection/ui/ProjectionGroupingPickers.d.ts.map +1 -0
- package/lib/projection/ui/ProjectionGroupingPickers.js +33 -0
- package/lib/projection/ui/ProjectionGroupingPickers.js.map +1 -0
- package/lib/projection/ui/ProjectionMapControls.d.ts +6 -7
- package/lib/projection/ui/ProjectionMapControls.d.ts.map +1 -1
- package/lib/projection/ui/ProjectionMapControls.js +11 -9
- package/lib/projection/ui/ProjectionMapControls.js.map +1 -1
- package/lib/projection/ui/ProjectionMapLegend.d.ts.map +1 -1
- package/lib/projection/ui/ProjectionMapLegend.js +1 -1
- package/lib/projection/ui/ProjectionMapLegend.js.map +1 -1
- package/lib/projection/ui/ProjectionMapMore.d.ts +2 -2
- package/lib/projection/ui/ProjectionMapMore.d.ts.map +1 -1
- package/lib/projection/ui/ProjectionMapMore.js +7 -5
- package/lib/projection/ui/ProjectionMapMore.js.map +1 -1
- package/lib/projection/ui/ProjectionMapTab.d.ts +15 -6
- package/lib/projection/ui/ProjectionMapTab.d.ts.map +1 -1
- package/lib/projection/ui/ProjectionMapTab.js +11 -7
- package/lib/projection/ui/ProjectionMapTab.js.map +1 -1
- package/lib/projection/ui/ProjectionPairsMore.d.ts +3 -7
- package/lib/projection/ui/ProjectionPairsMore.d.ts.map +1 -1
- package/lib/projection/ui/ProjectionPairsMore.js +4 -5
- package/lib/projection/ui/ProjectionPairsMore.js.map +1 -1
- package/lib/projection/ui/ProjectionPairsTab.d.ts.map +1 -1
- package/lib/projection/ui/ProjectionPairsTab.js +2 -2
- package/lib/projection/ui/ProjectionPairsTab.js.map +1 -1
- package/lib/projection/ui/ProjectionPanel.d.ts +1 -1
- package/lib/projection/ui/ProjectionPanel.d.ts.map +1 -1
- package/lib/projection/ui/ProjectionPanel.js +1 -1
- package/lib/projection/ui/ProjectionPanel.js.map +1 -1
- package/lib/projection/ui/ProjectionReadout.d.ts +7 -1
- package/lib/projection/ui/ProjectionReadout.d.ts.map +1 -1
- package/lib/projection/ui/ProjectionReadout.js +19 -7
- package/lib/projection/ui/ProjectionReadout.js.map +1 -1
- package/lib/projection/ui/ProjectionSpaceControls.d.ts +3 -5
- package/lib/projection/ui/ProjectionSpaceControls.d.ts.map +1 -1
- package/lib/projection/ui/ProjectionSpaceControls.js +9 -7
- package/lib/projection/ui/ProjectionSpaceControls.js.map +1 -1
- package/lib/projection/ui/ProjectionSpaceMore.d.ts +2 -2
- package/lib/projection/ui/ProjectionSpaceMore.d.ts.map +1 -1
- package/lib/projection/ui/ProjectionSpaceMore.js +5 -4
- package/lib/projection/ui/ProjectionSpaceMore.js.map +1 -1
- package/lib/projection/ui/ProjectionSpaceTab.d.ts +11 -3
- package/lib/projection/ui/ProjectionSpaceTab.d.ts.map +1 -1
- package/lib/projection/ui/ProjectionSpaceTab.js +7 -4
- package/lib/projection/ui/ProjectionSpaceTab.js.map +1 -1
- package/lib/projection/ui/ProjectionViewer.d.ts.map +1 -1
- package/lib/projection/ui/ProjectionViewer.js +1 -0
- package/lib/projection/ui/ProjectionViewer.js.map +1 -1
- package/lib/projection/ui/projectionBarReadings.d.ts +4 -1
- package/lib/projection/ui/projectionBarReadings.d.ts.map +1 -1
- package/lib/projection/ui/projectionBarReadings.js +14 -4
- package/lib/projection/ui/projectionBarReadings.js.map +1 -1
- package/lib/projection/ui/projectionBarSlots.d.ts +4 -2
- package/lib/projection/ui/projectionBarSlots.d.ts.map +1 -1
- package/lib/projection/ui/projectionBarSlots.js +3 -7
- package/lib/projection/ui/projectionBarSlots.js.map +1 -1
- package/lib/projection/ui/projectionMapChoices.d.ts +31 -6
- package/lib/projection/ui/projectionMapChoices.d.ts.map +1 -1
- package/lib/projection/ui/projectionMapChoices.js +58 -9
- package/lib/projection/ui/projectionMapChoices.js.map +1 -1
- package/lib/projection/ui/projectionMapChrome.d.ts +3 -9
- package/lib/projection/ui/projectionMapChrome.d.ts.map +1 -1
- package/lib/projection/ui/projectionMapChrome.js +41 -27
- package/lib/projection/ui/projectionMapChrome.js.map +1 -1
- package/lib/projection/ui/projectionMapCorner.d.ts +25 -0
- package/lib/projection/ui/projectionMapCorner.d.ts.map +1 -0
- package/lib/projection/ui/projectionMapCorner.js +46 -0
- package/lib/projection/ui/projectionMapCorner.js.map +1 -0
- package/lib/projection/ui/projectionMapModel.d.ts +9 -18
- package/lib/projection/ui/projectionMapModel.d.ts.map +1 -1
- package/lib/projection/ui/projectionMapModel.js +14 -39
- package/lib/projection/ui/projectionMapModel.js.map +1 -1
- package/lib/projection/ui/projectionMapView.d.ts +3 -1
- package/lib/projection/ui/projectionMapView.d.ts.map +1 -1
- package/lib/projection/ui/projectionMapView.js +9 -4
- package/lib/projection/ui/projectionMapView.js.map +1 -1
- package/lib/projection/ui/projectionSelectionSentence.d.ts +10 -0
- package/lib/projection/ui/projectionSelectionSentence.d.ts.map +1 -0
- package/lib/projection/ui/projectionSelectionSentence.js +18 -0
- package/lib/projection/ui/projectionSelectionSentence.js.map +1 -0
- package/lib/projection/ui/projectionStateApi.d.ts +47 -0
- package/lib/projection/ui/projectionStateApi.d.ts.map +1 -0
- package/lib/projection/ui/projectionStateApi.js +9 -0
- package/lib/projection/ui/projectionStateApi.js.map +1 -0
- package/lib/projection/ui/projectionTabModels.js +1 -1
- package/lib/projection/ui/projectionTabModels.js.map +1 -1
- package/lib/projection/ui/useProjectionState.d.ts +1 -29
- package/lib/projection/ui/useProjectionState.d.ts.map +1 -1
- package/lib/projection/ui/useProjectionState.js +13 -5
- package/lib/projection/ui/useProjectionState.js.map +1 -1
- package/lib/scatter/core/index.d.ts +1 -0
- package/lib/scatter/core/index.d.ts.map +1 -1
- package/lib/scatter/core/index.js +1 -0
- package/lib/scatter/core/index.js.map +1 -1
- package/lib/scatter/core/pointShape.d.ts +18 -0
- package/lib/scatter/core/pointShape.d.ts.map +1 -0
- package/lib/scatter/core/pointShape.js +70 -0
- package/lib/scatter/core/pointShape.js.map +1 -0
- package/lib/scatter/ui/ScatterPlot.d.ts.map +1 -1
- package/lib/scatter/ui/ScatterPlot.js +3 -2
- package/lib/scatter/ui/ScatterPlot.js.map +1 -1
- package/lib/scatter/ui/ScatterPointLayer.d.ts +14 -1
- package/lib/scatter/ui/ScatterPointLayer.d.ts.map +1 -1
- package/lib/scatter/ui/ScatterPointLayer.js +15 -3
- package/lib/scatter/ui/ScatterPointLayer.js.map +1 -1
- package/lib/scatter/ui/scatterFigureProps.d.ts +13 -0
- package/lib/scatter/ui/scatterFigureProps.d.ts.map +1 -1
- package/lib/scatter/ui/scatterMarkGlyph.d.ts +2 -1
- package/lib/scatter/ui/scatterMarkGlyph.d.ts.map +1 -1
- package/lib/scatter/ui/scatterMarkGlyph.js +7 -1
- package/lib/scatter/ui/scatterMarkGlyph.js.map +1 -1
- package/lib/scatter3d/ui/ScatterCloud.d.ts.map +1 -1
- package/lib/scatter3d/ui/ScatterCloud.js +2 -1
- package/lib/scatter3d/ui/ScatterCloud.js.map +1 -1
- package/lib/shared/ui/MenuButton.d.ts +3 -2
- package/lib/shared/ui/MenuButton.d.ts.map +1 -1
- package/lib/shared/ui/MenuButton.js +1 -1
- package/lib/shared/ui/MenuButton.js.map +1 -1
- package/lib/structure/core/conformerMinimise.d.ts +36 -0
- package/lib/structure/core/conformerMinimise.d.ts.map +1 -0
- package/lib/structure/core/conformerMinimise.js +81 -0
- package/lib/structure/core/conformerMinimise.js.map +1 -0
- package/lib/structure/core/conformerMinimum.d.ts +62 -0
- package/lib/structure/core/conformerMinimum.d.ts.map +1 -0
- package/lib/structure/core/conformerMinimum.js +90 -0
- package/lib/structure/core/conformerMinimum.js.map +1 -0
- package/lib/structure/core/conformerOptions.d.ts +62 -0
- package/lib/structure/core/conformerOptions.d.ts.map +1 -0
- package/lib/structure/core/conformerOptions.js +83 -0
- package/lib/structure/core/conformerOptions.js.map +1 -0
- package/lib/structure/core/conformerRefine.d.ts +104 -0
- package/lib/structure/core/conformerRefine.d.ts.map +1 -0
- package/lib/structure/core/conformerRefine.js +130 -0
- package/lib/structure/core/conformerRefine.js.map +1 -0
- package/lib/structure/core/conformerRefineRank.d.ts +36 -0
- package/lib/structure/core/conformerRefineRank.d.ts.map +1 -0
- package/lib/structure/core/conformerRefineRank.js +69 -0
- package/lib/structure/core/conformerRefineRank.js.map +1 -0
- package/lib/structure/core/conformerSession.d.ts +50 -0
- package/lib/structure/core/conformerSession.d.ts.map +1 -0
- package/lib/structure/core/conformerSession.js +88 -0
- package/lib/structure/core/conformerSession.js.map +1 -0
- package/lib/structure/core/conformerShape.d.ts +36 -0
- package/lib/structure/core/conformerShape.d.ts.map +1 -0
- package/lib/structure/core/conformerShape.js +150 -0
- package/lib/structure/core/conformerShape.js.map +1 -0
- package/lib/structure/core/conformers.d.ts +107 -0
- package/lib/structure/core/conformers.d.ts.map +1 -0
- package/lib/structure/core/conformers.js +149 -0
- package/lib/structure/core/conformers.js.map +1 -0
- package/lib/structure/core/geometryRelaxer.d.ts +66 -0
- package/lib/structure/core/geometryRelaxer.d.ts.map +1 -0
- package/lib/structure/core/geometryRelaxer.js +2 -0
- package/lib/structure/core/geometryRelaxer.js.map +1 -0
- package/lib/structure/core/index.d.ts +4 -0
- package/lib/structure/core/index.d.ts.map +1 -1
- package/lib/structure/core/index.js +2 -0
- package/lib/structure/core/index.js.map +1 -1
- package/lib/structure/core/moleculeCoordinates.d.ts +31 -0
- package/lib/structure/core/moleculeCoordinates.d.ts.map +1 -0
- package/lib/structure/core/moleculeCoordinates.js +80 -0
- package/lib/structure/core/moleculeCoordinates.js.map +1 -0
- package/lib/structure/core/molfileExport.d.ts +42 -0
- package/lib/structure/core/molfileExport.d.ts.map +1 -0
- package/lib/structure/core/molfileExport.js +47 -0
- package/lib/structure/core/molfileExport.js.map +1 -0
- package/lib/structure/core/oclResources.d.ts +12 -0
- package/lib/structure/core/oclResources.d.ts.map +1 -0
- package/lib/structure/core/oclResources.js +35 -0
- package/lib/structure/core/oclResources.js.map +1 -0
- package/lib/translate/core/catalog.d.ts +61 -0
- package/lib/translate/core/catalog.d.ts.map +1 -0
- package/lib/translate/core/catalog.js +49 -0
- package/lib/translate/core/catalog.js.map +1 -0
- package/lib/translate/core/checkTranslation.d.ts +32 -0
- package/lib/translate/core/checkTranslation.d.ts.map +1 -0
- package/lib/translate/core/checkTranslation.js +98 -0
- package/lib/translate/core/checkTranslation.js.map +1 -0
- package/lib/translate/core/contribution.d.ts +88 -0
- package/lib/translate/core/contribution.d.ts.map +1 -0
- package/lib/translate/core/contribution.js +14 -0
- package/lib/translate/core/contribution.js.map +1 -0
- package/lib/translate/core/index.d.ts +19 -0
- package/lib/translate/core/index.d.ts.map +1 -0
- package/lib/translate/core/index.js +15 -0
- package/lib/translate/core/index.js.map +1 -0
- package/lib/translate/core/marker.d.ts +45 -0
- package/lib/translate/core/marker.d.ts.map +1 -0
- package/lib/translate/core/marker.js +79 -0
- package/lib/translate/core/marker.js.map +1 -0
- package/lib/translate/core/mergeMessages.d.ts +35 -0
- package/lib/translate/core/mergeMessages.d.ts.map +1 -0
- package/lib/translate/core/mergeMessages.js +69 -0
- package/lib/translate/core/mergeMessages.js.map +1 -0
- package/lib/translate/core/session.d.ts +102 -0
- package/lib/translate/core/session.d.ts.map +1 -0
- package/lib/translate/core/session.js +162 -0
- package/lib/translate/core/session.js.map +1 -0
- package/lib/translate/core/start.d.ts +70 -0
- package/lib/translate/core/start.d.ts.map +1 -0
- package/lib/translate/core/start.js +73 -0
- package/lib/translate/core/start.js.map +1 -0
- package/lib/translate/core/suggestions.d.ts +77 -0
- package/lib/translate/core/suggestions.d.ts.map +1 -0
- package/lib/translate/core/suggestions.js +143 -0
- package/lib/translate/core/suggestions.js.map +1 -0
- package/lib/translate/core/tables.d.ts +100 -0
- package/lib/translate/core/tables.d.ts.map +1 -0
- package/lib/translate/core/tables.js +51 -0
- package/lib/translate/core/tables.js.map +1 -0
- package/lib/translate.d.ts +2 -0
- package/lib/translate.d.ts.map +1 -0
- package/lib/translate.js +6 -0
- package/lib/translate.js.map +1 -0
- package/lib/ui.d.ts +1 -0
- package/lib/ui.d.ts.map +1 -1
- package/lib/ui.js +1 -0
- package/lib/ui.js.map +1 -1
- package/lib/xtb/core/xtbRelaxer.d.ts +61 -0
- package/lib/xtb/core/xtbRelaxer.d.ts.map +1 -0
- package/lib/xtb/core/xtbRelaxer.js +108 -0
- package/lib/xtb/core/xtbRelaxer.js.map +1 -0
- package/lib/xtb.d.ts +11 -0
- package/lib/xtb.d.ts.map +1 -0
- package/lib/xtb.js +10 -0
- package/lib/xtb.js.map +1 -0
- package/package.json +18 -11
- package/src/chrome/ui/HeaderToggle.tsx +100 -0
- package/src/chrome/ui/index.ts +2 -0
- package/src/citation/core/gfn2Paper.ts +32 -0
- package/src/citation/core/index.ts +1 -0
- package/src/clipboard/ui/ClickToCopy.tsx +8 -7
- package/src/conformers.ts +87 -0
- package/src/core.ts +1 -0
- package/src/credits/core/credits.ts +16 -0
- package/src/ecosystem/core/index.ts +1 -0
- package/src/ecosystem/core/sites.ts +20 -2
- package/src/ecosystem/ui/EcosystemLinks.tsx +3 -1
- package/src/ecosystem/ui/SiteTile.tsx +3 -1
- package/src/format/core/index.ts +1 -1
- package/src/format/core/words.ts +19 -0
- package/src/language/core/index.ts +7 -0
- package/src/language/core/languageName.ts +16 -0
- package/src/language/core/languageParam.ts +70 -0
- package/src/language/ui/SiteLanguage.tsx +26 -0
- package/src/language/ui/index.ts +3 -0
- package/src/language/ui/siteLanguageContext.ts +20 -0
- package/src/orbital/core/atomicOrbitals.ts +17 -1
- package/src/orbital/core/hydrogenic.ts +2 -1
- package/src/orbital/core/index.ts +1 -0
- package/src/orbital/core/slaterEnergy.ts +83 -0
- package/src/overlay/core/index.ts +6 -2
- package/src/overlay/core/overlayMarks.ts +51 -6
- package/src/overlay/ui/OverlayLegendMark.tsx +5 -0
- package/src/projection/core/index.ts +11 -3
- package/src/projection/core/projectionCopy.ts +3 -0
- package/src/projection/core/projectionGroupings.ts +174 -0
- package/src/projection/core/projectionOptions.ts +18 -7
- package/src/projection/core/projectionPanelWords.ts +10 -0
- package/src/projection/core/projectionSamples.ts +62 -120
- package/src/projection/core/projectionStrings.ts +12 -1
- package/src/projection/core/resolveProjectionOptions.ts +66 -4
- package/src/projection/ui/ProjectionBar.tsx +4 -2
- package/src/projection/ui/ProjectionGroupingPickers.tsx +91 -0
- package/src/projection/ui/ProjectionMapControls.tsx +29 -32
- package/src/projection/ui/ProjectionMapLegend.tsx +1 -1
- package/src/projection/ui/ProjectionMapMore.tsx +14 -4
- package/src/projection/ui/ProjectionMapTab.tsx +27 -9
- package/src/projection/ui/ProjectionPairsMore.tsx +12 -21
- package/src/projection/ui/ProjectionPairsTab.tsx +5 -2
- package/src/projection/ui/ProjectionPanel.tsx +7 -3
- package/src/projection/ui/ProjectionReadout.tsx +28 -8
- package/src/projection/ui/ProjectionSpaceControls.tsx +20 -27
- package/src/projection/ui/ProjectionSpaceMore.tsx +12 -3
- package/src/projection/ui/ProjectionSpaceTab.tsx +23 -6
- package/src/projection/ui/ProjectionViewer.tsx +1 -0
- package/src/projection/ui/projectionBarReadings.ts +24 -8
- package/src/projection/ui/projectionBarSlots.tsx +10 -9
- package/src/projection/ui/projectionMapChoices.ts +71 -14
- package/src/projection/ui/projectionMapChrome.ts +55 -30
- package/src/projection/ui/projectionMapCorner.ts +67 -0
- package/src/projection/ui/projectionMapModel.ts +20 -59
- package/src/projection/ui/projectionMapView.ts +15 -8
- package/src/projection/ui/projectionSelectionSentence.ts +22 -0
- package/src/projection/ui/projectionStateApi.ts +57 -0
- package/src/projection/ui/projectionTabModels.ts +1 -1
- package/src/projection/ui/useProjectionState.ts +33 -37
- package/src/scatter/core/index.ts +1 -0
- package/src/scatter/core/pointShape.ts +80 -0
- package/src/scatter/ui/ScatterPlot.tsx +4 -1
- package/src/scatter/ui/ScatterPointLayer.tsx +39 -11
- package/src/scatter/ui/scatterFigureProps.ts +13 -0
- package/src/scatter/ui/scatterMarkGlyph.tsx +9 -1
- package/src/scatter3d/ui/ScatterCloud.tsx +3 -0
- package/src/shared/ui/MenuButton.tsx +4 -3
- package/src/structure/core/conformerMinimise.ts +99 -0
- package/src/structure/core/conformerMinimum.ts +125 -0
- package/src/structure/core/conformerOptions.ts +125 -0
- package/src/structure/core/conformerRefine.ts +234 -0
- package/src/structure/core/conformerRefineRank.ts +89 -0
- package/src/structure/core/conformerSession.ts +123 -0
- package/src/structure/core/conformerShape.ts +181 -0
- package/src/structure/core/conformers.ts +282 -0
- package/src/structure/core/geometryRelaxer.ts +71 -0
- package/src/structure/core/index.ts +13 -0
- package/src/structure/core/moleculeCoordinates.ts +93 -0
- package/src/structure/core/molfileExport.ts +62 -0
- package/src/structure/core/oclResources.ts +41 -0
- package/src/translate/core/catalog.ts +83 -0
- package/src/translate/core/checkTranslation.ts +128 -0
- package/src/translate/core/contribution.ts +99 -0
- package/src/translate/core/index.ts +72 -0
- package/src/translate/core/marker.ts +85 -0
- package/src/translate/core/mergeMessages.ts +74 -0
- package/src/translate/core/session.ts +250 -0
- package/src/translate/core/start.ts +121 -0
- package/src/translate/core/suggestions.ts +211 -0
- package/src/translate/core/tables.ts +120 -0
- package/src/translate.ts +5 -0
- package/src/ui.ts +1 -0
- package/src/xtb/core/xtbRelaxer.ts +160 -0
- package/src/xtb.ts +16 -0
- package/styles/chrome.css +61 -30
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How the groupings a page hands in become what a figure draws: the one that
|
|
3
|
+
* colours the dots, painted from the shared palette, and the one that shapes
|
|
4
|
+
* them, given one shape per group.
|
|
5
|
+
*
|
|
6
|
+
* Both are cut the same way — the page's own order first, then every group in
|
|
7
|
+
* the order its first row names it — so a group keeps its colour and its shape
|
|
8
|
+
* however the rows are filtered.
|
|
9
|
+
*/
|
|
10
|
+
import { CHART_SERIES_COLORS, chartSeriesColor, } from "../../chart/core/chartPalette.js";
|
|
11
|
+
import { OVERLAY_SAMPLE_SHAPES } from "../../overlay/core/overlayMarks.js";
|
|
12
|
+
/**
|
|
13
|
+
* The grouping a set of samples is coloured by, in a shape a legend and a plot
|
|
14
|
+
* can both read.
|
|
15
|
+
*
|
|
16
|
+
* A group named in `order` but held by no row is kept, so a legend does not
|
|
17
|
+
* reshuffle when a filter empties one; a row naming a group that is not in
|
|
18
|
+
* `order` is appended in the order it appears.
|
|
19
|
+
* @param grouping - The grouping, or nothing when the dots are not coloured.
|
|
20
|
+
* @param count - How many rows there are, which is the score matrix's height.
|
|
21
|
+
* @returns The resolved groups. No grouping gives no entries at all, and every
|
|
22
|
+
* row lands at `-1`.
|
|
23
|
+
*/
|
|
24
|
+
export function resolveProjectionGroups(grouping, count) {
|
|
25
|
+
const { label, entries, rowOf } = partition(grouping, count);
|
|
26
|
+
const colored = entries.map((entry) => ({ ...entry, color: '' }));
|
|
27
|
+
paintGroups(colored, grouping?.colors);
|
|
28
|
+
return { label, entries: colored, groupOf: rowOf };
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The grouping a set of samples is shaped by, one shape per group.
|
|
32
|
+
*
|
|
33
|
+
* A grouping of more groups than there are shapes is refused as a whole rather
|
|
34
|
+
* than drawn with two groups sharing a shape, or with the last ones falling
|
|
35
|
+
* back to a disc: either would put two groups under one mark, which is the one
|
|
36
|
+
* thing a key cannot undo.
|
|
37
|
+
* @param grouping - The grouping, or nothing when the dots are not shaped.
|
|
38
|
+
* @param count - How many rows there are, which is the score matrix's height.
|
|
39
|
+
* @returns The resolved shapes, or `null` when there is no grouping or its
|
|
40
|
+
* groups outnumber the shapes.
|
|
41
|
+
*/
|
|
42
|
+
export function resolveProjectionShapes(grouping, count) {
|
|
43
|
+
if (grouping === undefined)
|
|
44
|
+
return null;
|
|
45
|
+
const { label, entries, rowOf } = partition(grouping, count);
|
|
46
|
+
if (entries.length > OVERLAY_SAMPLE_SHAPES.length)
|
|
47
|
+
return null;
|
|
48
|
+
const shaped = entries.map((entry, index) => ({
|
|
49
|
+
...entry,
|
|
50
|
+
shape: OVERLAY_SAMPLE_SHAPES[index] ?? 'dot',
|
|
51
|
+
}));
|
|
52
|
+
return { label, entries: shaped, shapeOf: rowOf };
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* The grouping carrying an id.
|
|
56
|
+
* @param samples - Who the rows are.
|
|
57
|
+
* @param id - The id asked for.
|
|
58
|
+
* @returns The grouping, or `undefined` when none carries it.
|
|
59
|
+
*/
|
|
60
|
+
export function projectionGrouping(samples, id) {
|
|
61
|
+
for (const grouping of samples.groupings ?? NO_GROUPINGS) {
|
|
62
|
+
if (grouping.id === id)
|
|
63
|
+
return grouping;
|
|
64
|
+
}
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
67
|
+
const NO_GROUP = -1;
|
|
68
|
+
const DEFAULT_GROUP_LABEL = 'Group';
|
|
69
|
+
const NO_GROUPINGS = [];
|
|
70
|
+
function partition(grouping, count) {
|
|
71
|
+
const rowCount = Number.isFinite(count) ? Math.max(0, Math.floor(count)) : 0;
|
|
72
|
+
const label = grouping?.label ?? DEFAULT_GROUP_LABEL;
|
|
73
|
+
const rowOf = new Int32Array(rowCount).fill(NO_GROUP);
|
|
74
|
+
const entries = [];
|
|
75
|
+
if (grouping === undefined)
|
|
76
|
+
return { label, entries, rowOf };
|
|
77
|
+
const indexOfGroup = new Map();
|
|
78
|
+
for (const id of grouping.order ?? []) {
|
|
79
|
+
appendGroup(entries, indexOfGroup, id);
|
|
80
|
+
}
|
|
81
|
+
for (let row = 0; row < rowCount; row++) {
|
|
82
|
+
const id = grouping.groups[row];
|
|
83
|
+
if (id === undefined)
|
|
84
|
+
continue;
|
|
85
|
+
const at = appendGroup(entries, indexOfGroup, id);
|
|
86
|
+
rowOf[row] = at;
|
|
87
|
+
const entry = entries[at];
|
|
88
|
+
if (entry !== undefined)
|
|
89
|
+
entry.count++;
|
|
90
|
+
}
|
|
91
|
+
return { label, entries, rowOf };
|
|
92
|
+
}
|
|
93
|
+
function appendGroup(entries, indexOfGroup, id) {
|
|
94
|
+
const known = indexOfGroup.get(id);
|
|
95
|
+
if (known !== undefined)
|
|
96
|
+
return known;
|
|
97
|
+
const at = entries.length;
|
|
98
|
+
indexOfGroup.set(id, at);
|
|
99
|
+
entries.push({ id, label: id, count: 0 });
|
|
100
|
+
return at;
|
|
101
|
+
}
|
|
102
|
+
function paintGroups(entries, pinned) {
|
|
103
|
+
// Every pinned colour is taken out of the palette before any group draws
|
|
104
|
+
// from it, so pinning the third group's hue onto the first does not leave
|
|
105
|
+
// two groups wearing it.
|
|
106
|
+
const taken = new Set();
|
|
107
|
+
if (pinned !== undefined) {
|
|
108
|
+
for (const entry of entries) {
|
|
109
|
+
const color = pinned[entry.id];
|
|
110
|
+
if (color !== undefined)
|
|
111
|
+
taken.add(color.toLowerCase());
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
let cursor = 0;
|
|
115
|
+
for (const entry of entries) {
|
|
116
|
+
const own = pinned?.[entry.id];
|
|
117
|
+
if (own !== undefined) {
|
|
118
|
+
entry.color = own;
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
let color = chartSeriesColor(cursor, 'group');
|
|
122
|
+
while (cursor < CHART_SERIES_COLORS.length &&
|
|
123
|
+
taken.has(color.toLowerCase())) {
|
|
124
|
+
cursor++;
|
|
125
|
+
color = chartSeriesColor(cursor, 'group');
|
|
126
|
+
}
|
|
127
|
+
cursor++;
|
|
128
|
+
taken.add(color.toLowerCase());
|
|
129
|
+
entry.color = color;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=projectionGroupings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectionGroupings.js","sourceRoot":"","sources":["../../../src/projection/core/projectionGroupings.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,10 +12,10 @@ export type ProjectionVariablesView =
|
|
|
12
12
|
/** The one selected sample, rebuilt from the components shown. */
|
|
13
13
|
| 'sample';
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
16
|
-
*
|
|
15
|
+
* The word for "no grouping" wherever an option names one, which is why no
|
|
16
|
+
* grouping may be called it.
|
|
17
17
|
*/
|
|
18
|
-
export
|
|
18
|
+
export declare const NO_GROUPING = "none";
|
|
19
19
|
/** What the figure is currently showing. Every field is a control in the floating bar. */
|
|
20
20
|
export interface ProjectionOptions {
|
|
21
21
|
/**
|
|
@@ -40,10 +40,20 @@ export interface ProjectionOptions {
|
|
|
40
40
|
*/
|
|
41
41
|
cloudGesture: CloudGesture;
|
|
42
42
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
43
|
+
* Which grouping colours the dots, by its id, or `'none'`. An id no grouping
|
|
44
|
+
* carries — the empty string, or one saved on other data — takes the first
|
|
45
|
+
* grouping.
|
|
46
|
+
* @default ''
|
|
45
47
|
*/
|
|
46
|
-
colorBy:
|
|
48
|
+
colorBy: string;
|
|
49
|
+
/**
|
|
50
|
+
* Which grouping gives the dots their shapes, by its id, or `'none'`. An id
|
|
51
|
+
* no grouping carries takes the second grouping — the first when the colour
|
|
52
|
+
* has taken the second — and a grouping of more groups than there are
|
|
53
|
+
* shapes is not drawn.
|
|
54
|
+
* @default ''
|
|
55
|
+
*/
|
|
56
|
+
shapeBy: string;
|
|
47
57
|
/**
|
|
48
58
|
* How large the group outlines are, or `null` for none.
|
|
49
59
|
* @default { kind: 'coverage', probability: 0.95 }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectionOptions.d.ts","sourceRoot":"","sources":["../../../src/projection/core/projectionOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEzE,2CAA2C;AAC3C,MAAM,MAAM,uBAAuB;AACjC,uFAAuF;AACrF,QAAQ;AACV,4EAA4E;GAC1E,SAAS;AACX,qFAAqF;GACnF,UAAU;AACZ,kEAAkE;GAChE,QAAQ,CAAC;AAEb;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"projectionOptions.d.ts","sourceRoot":"","sources":["../../../src/projection/core/projectionOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEzE,2CAA2C;AAC3C,MAAM,MAAM,uBAAuB;AACjC,uFAAuF;AACrF,QAAQ;AACV,4EAA4E;GAC1E,SAAS;AACX,qFAAqF;GACnF,UAAU;AACZ,kEAAkE;GAChE,QAAQ,CAAC;AAEb;;;GAGG;AACH,eAAO,MAAM,WAAW,SAAS,CAAC;AAElC,0FAA0F;AAC1F,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,YAAY,EAAE,YAAY,CAAC;IAC3B;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,aAAa,EAAE,uBAAuB,CAAC;IACvC;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,aAAa,EAAE,UAAU,GAAG,WAAW,CAAC;IACxC;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,UAAU,EAAE,oBAAoB,CAAC;CAClC;AAED,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG,MAAM,iBAAiB,CAAC;AAEzD,2DAA2D;AAC3D,eAAO,MAAM,0BAA0B,EAAE,iBAqBxC,CAAC"}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The word for "no grouping" wherever an option names one, which is why no
|
|
3
|
+
* grouping may be called it.
|
|
4
|
+
*/
|
|
5
|
+
export const NO_GROUPING = 'none';
|
|
1
6
|
/** What the figure shows when a site overrides nothing. */
|
|
2
7
|
export const DEFAULT_PROJECTION_OPTIONS = {
|
|
3
8
|
xAxis: 0,
|
|
4
9
|
yAxis: 1,
|
|
5
10
|
zAxis: 2,
|
|
6
11
|
cloudGesture: 'turn',
|
|
7
|
-
colorBy: '
|
|
12
|
+
colorBy: '',
|
|
13
|
+
shapeBy: '',
|
|
8
14
|
ellipse: { kind: 'coverage', probability: 0.95 },
|
|
9
15
|
pointRadius: 3.5,
|
|
10
16
|
showGroupMeans: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectionOptions.js","sourceRoot":"","sources":["../../../src/projection/core/projectionOptions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"projectionOptions.js","sourceRoot":"","sources":["../../../src/projection/core/projectionOptions.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC;AAyHlC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,0BAA0B,GAAsB;IAC3D,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,YAAY,EAAE,MAAM;IACpB,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE;IAChD,WAAW,EAAE,GAAG;IAChB,cAAc,EAAE,KAAK;IACrB,eAAe,EAAE,KAAK;IACtB,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,CAAC;IACZ,aAAa,EAAE,QAAQ;IACvB,cAAc,EAAE,CAAC;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,UAAU;IACzB,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,SAAS;CACtB,CAAC"}
|
|
@@ -38,6 +38,12 @@ export interface ProjectionPanelWords {
|
|
|
38
38
|
export interface ProjectionReasonWords {
|
|
39
39
|
/** Why the colour cannot be set: the samples carry no groups. */
|
|
40
40
|
noGroups: string;
|
|
41
|
+
/** Why the shape cannot be set: the samples carry no groups. */
|
|
42
|
+
noGroupsToShape: string;
|
|
43
|
+
/** Why a grouping is greyed in the shape picker: the colour already draws it. */
|
|
44
|
+
shapeIsColour: string;
|
|
45
|
+
/** Why a grouping is greyed in the shape picker: it has more groups than shapes. */
|
|
46
|
+
tooManyShapes: string;
|
|
41
47
|
/** Why the map's outlines cannot be set while nothing is coloured. */
|
|
42
48
|
uncolouredOutlines: string;
|
|
43
49
|
/** Why the cloud's shells cannot be set while nothing is coloured. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectionPanelWords.d.ts","sourceRoot":"","sources":["../../../src/projection/core/projectionPanelWords.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEzE,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAEhC,yDAAyD;AACzD,MAAM,WAAW,oBAAoB;IACnC;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IACzC;;;;;OAKG;IACH,OAAO,EAAE;QACP,2EAA2E;QAC3E,IAAI,EAAE,MAAM,CAAC;QACb,0CAA0C;QAC1C,OAAO,EAAE,MAAM,CAAC;QAChB,yDAAyD;QACzD,SAAS,EAAE,MAAM,CAAC;QAClB,gFAAgF;QAChF,QAAQ,EAAE,MAAM,CAAC;QACjB,sEAAsE;QACtE,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sEAAsE;IACtE,gBAAgB,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,cAAc,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,gBAAgB,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,oEAAoE;AACpE,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACjD,mFAAmF;IACnF,aAAa,EAAE,MAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC;IAClE;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED,gFAAgF;AAChF,MAAM,WAAW,sBAAsB;IACrC,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,uEAAuE;AACvE,eAAO,MAAM,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"projectionPanelWords.d.ts","sourceRoot":"","sources":["../../../src/projection/core/projectionPanelWords.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEzE,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAEhC,yDAAyD;AACzD,MAAM,WAAW,oBAAoB;IACnC;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IACzC;;;;;OAKG;IACH,OAAO,EAAE;QACP,2EAA2E;QAC3E,IAAI,EAAE,MAAM,CAAC;QACb,0CAA0C;QAC1C,OAAO,EAAE,MAAM,CAAC;QAChB,yDAAyD;QACzD,SAAS,EAAE,MAAM,CAAC;QAClB,gFAAgF;QAChF,QAAQ,EAAE,MAAM,CAAC;QACjB,sEAAsE;QACtE,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,aAAa,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,aAAa,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sEAAsE;IACtE,gBAAgB,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,cAAc,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,gBAAgB,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,oEAAoE;AACpE,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACjD,mFAAmF;IACnF,aAAa,EAAE,MAAM,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC;IAClE;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED,gFAAgF;AAChF,MAAM,WAAW,sBAAsB;IACrC,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,uEAAuE;AACvE,eAAO,MAAM,sBAAsB,EAAE,oBA8BpC,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,uBAAuB,EAAE,qBAerC,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,uBAAuB,EAAE,qBAIrC,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,EAAE,sBAKtC,CAAC"}
|
|
@@ -6,6 +6,7 @@ export const PROJECTION_PANEL_WORDS = {
|
|
|
6
6
|
zAxis: 'Into',
|
|
7
7
|
cloudGesture: 'Drag does',
|
|
8
8
|
colorBy: 'Colour by',
|
|
9
|
+
shapeBy: 'Shape by',
|
|
9
10
|
ellipse: 'Outlines',
|
|
10
11
|
pointRadius: 'Dot size',
|
|
11
12
|
showGroupMeans: 'Averages',
|
|
@@ -32,6 +33,9 @@ export const PROJECTION_PANEL_WORDS = {
|
|
|
32
33
|
/** The reasons a greyed control gives when a site overrides nothing. */
|
|
33
34
|
export const PROJECTION_REASON_WORDS = {
|
|
34
35
|
noGroups: 'These samples carry no groups to colour by.',
|
|
36
|
+
noGroupsToShape: 'These samples carry no groups to shape by.',
|
|
37
|
+
shapeIsColour: 'The colour already stands for these groups.',
|
|
38
|
+
tooManyShapes: 'More groups than there are shapes to tell apart.',
|
|
35
39
|
uncolouredOutlines: 'Outlines follow the groups, so colour the map by them first.',
|
|
36
40
|
uncolouredShells: 'Shells follow the groups, so colour the cloud by them first.',
|
|
37
41
|
axisTakenOnMap: 'Already drawn on the other axis.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectionPanelWords.js","sourceRoot":"","sources":["../../../src/projection/core/projectionPanelWords.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"projectionPanelWords.js","sourceRoot":"","sources":["../../../src/projection/core/projectionPanelWords.ts"],"names":[],"mappings":"AAiGA,uEAAuE;AACvE,MAAM,CAAC,MAAM,sBAAsB,GAAyB;IAC1D,IAAI,EAAE;QACJ,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,MAAM;QACb,YAAY,EAAE,WAAW;QACzB,OAAO,EAAE,WAAW;QACpB,OAAO,EAAE,UAAU;QACnB,OAAO,EAAE,UAAU;QACnB,WAAW,EAAE,UAAU;QACvB,cAAc,EAAE,UAAU;QAC1B,eAAe,EAAE,UAAU;QAC3B,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,YAAY;QACvB,aAAa,EAAE,MAAM;QACrB,cAAc,EAAE,QAAQ;QACxB,WAAW,EAAE,WAAW;QACxB,WAAW,EAAE,SAAS;QACtB,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,WAAW;QAC1B,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,WAAW;KACxB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,WAAW;QACtB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,OAAO;KACf;CACF,CAAC;AAEF,wEAAwE;AACxE,MAAM,CAAC,MAAM,uBAAuB,GAA0B;IAC5D,QAAQ,EAAE,6CAA6C;IACvD,eAAe,EAAE,4CAA4C;IAC7D,aAAa,EAAE,6CAA6C;IAC5D,aAAa,EAAE,kDAAkD;IACjE,kBAAkB,EAChB,8DAA8D;IAChE,gBAAgB,EACd,8DAA8D;IAChE,cAAc,EAAE,kCAAkC;IAClD,gBAAgB,EAAE,gCAAgC;IAClD,SAAS,EACP,2EAA2E;IAC7E,QAAQ,EAAE,6DAA6D;IACvE,QAAQ,EAAE,6CAA6C;CACxD,CAAC;AAEF,gEAAgE;AAChE,MAAM,CAAC,MAAM,uBAAuB,GAA0B;IAC5D,UAAU,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE;IAChE,aAAa,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE;IACvE,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;CACjD,CAAC;AAEF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,wBAAwB,GAA2B;IAC9D,UAAU,EAAE,aAAa;IACzB,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,oBAAoB;IAC9B,kBAAkB,EAAE,4BAA4B;CACjD,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { OverlaySampleShape } from '../../overlay/core/overlayMarks.ts';
|
|
1
2
|
/** One line of the card that appears when the pointer rests on a sample. */
|
|
2
3
|
export interface ProjectionField {
|
|
3
4
|
/** What the value is. */
|
|
@@ -5,45 +6,70 @@ export interface ProjectionField {
|
|
|
5
6
|
/** The value, already written out. */
|
|
6
7
|
value: string;
|
|
7
8
|
}
|
|
8
|
-
/**
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* One way of sorting the rows into groups — a species, a batch, the cluster a
|
|
11
|
+
* run put each sample in.
|
|
12
|
+
*/
|
|
13
|
+
export interface ProjectionGrouping {
|
|
10
14
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
15
|
+
* What the options name it by, e.g. `species`. It is kept apart from the
|
|
16
|
+
* label so that a saved choice still finds the grouping once its label is
|
|
17
|
+
* reworded, and it may not be `none`, which is the word for no grouping.
|
|
13
18
|
*/
|
|
14
|
-
|
|
19
|
+
id: string;
|
|
20
|
+
/** What the set of groups is called, for the key and the hover card: `Species`. */
|
|
21
|
+
label: string;
|
|
15
22
|
/**
|
|
16
|
-
*
|
|
23
|
+
* Which group each row is in, in the score matrix's row order. A row with no
|
|
17
24
|
* group is drawn in the muted ink and left out of every outline.
|
|
18
|
-
* @default undefined — every row is one crowd
|
|
19
25
|
*/
|
|
20
|
-
groups
|
|
26
|
+
groups: ReadonlyArray<string | undefined>;
|
|
21
27
|
/**
|
|
22
|
-
* The order the groups are listed and
|
|
28
|
+
* The order the groups are listed, coloured and shaped in.
|
|
23
29
|
* @default the order the groups first appear in `groups`
|
|
24
30
|
*/
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* What the set of groups is called, for the legend's heading and the hover
|
|
28
|
-
* card — `Species`, `Cluster`, `Batch`.
|
|
29
|
-
* @default 'Group'
|
|
30
|
-
*/
|
|
31
|
-
groupLabel?: string;
|
|
31
|
+
order?: readonly string[];
|
|
32
32
|
/**
|
|
33
33
|
* A colour per group. Anything not named here takes the next unused colour
|
|
34
34
|
* of the shared palette, so two groups never share one.
|
|
35
35
|
* @default undefined — every group is coloured from the palette
|
|
36
36
|
*/
|
|
37
|
-
|
|
37
|
+
colors?: Readonly<Record<string, string>>;
|
|
38
|
+
}
|
|
39
|
+
/** Who the rows are: what they are called, what they belong to, what is known. */
|
|
40
|
+
export interface ProjectionSamples {
|
|
41
|
+
/**
|
|
42
|
+
* A stable key per row, in the score matrix's row order. It is the currency
|
|
43
|
+
* of the selection callbacks, so a caller never has to keep a second index.
|
|
44
|
+
*/
|
|
45
|
+
ids: readonly string[];
|
|
46
|
+
/**
|
|
47
|
+
* What each row is written as: the title of its hover card and the name
|
|
48
|
+
* beside its dot. A page whose keys are not names a reader should read — a
|
|
49
|
+
* database id, a spectrum's uuid — writes its names here and keeps `ids`
|
|
50
|
+
* stable, and two samples may then share a name without either becoming
|
|
51
|
+
* impossible to select.
|
|
52
|
+
* @default the ids
|
|
53
|
+
*/
|
|
54
|
+
labels?: readonly string[];
|
|
55
|
+
/**
|
|
56
|
+
* The ways the rows are grouped. The first colours the dots until the reader
|
|
57
|
+
* picks another, and the next one gives them their shapes, so two groupings
|
|
58
|
+
* of the same samples — the clusters a run found and the classes the reader
|
|
59
|
+
* gave — are compared on one picture. Every one of them is written on the
|
|
60
|
+
* hover card.
|
|
61
|
+
* @default undefined — every row is one crowd
|
|
62
|
+
*/
|
|
63
|
+
groupings?: readonly ProjectionGrouping[];
|
|
38
64
|
/**
|
|
39
65
|
* Everything else worth showing about one row. A callback rather than an
|
|
40
66
|
* array, so a table of ten thousand rows builds one record when a reader
|
|
41
67
|
* points at one row, and none otherwise.
|
|
42
|
-
* @default undefined — the card shows the id, the
|
|
68
|
+
* @default undefined — the card shows the id, the groups and the two axes
|
|
43
69
|
*/
|
|
44
70
|
fields?: (index: number) => readonly ProjectionField[];
|
|
45
71
|
}
|
|
46
|
-
/** The
|
|
72
|
+
/** The grouping that colours the dots, as the viewer draws it. */
|
|
47
73
|
export interface ResolvedProjectionGroups {
|
|
48
74
|
/** What the set of groups is called. */
|
|
49
75
|
label: string;
|
|
@@ -61,17 +87,22 @@ export interface ResolvedProjectionGroups {
|
|
|
61
87
|
/** Which group each row is in, as an index into `entries`, or `-1`. */
|
|
62
88
|
groupOf: Int32Array;
|
|
63
89
|
}
|
|
64
|
-
/**
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
90
|
+
/** The grouping that shapes the dots, as the viewer draws it. */
|
|
91
|
+
export interface ResolvedProjectionShapes {
|
|
92
|
+
/** What the set of groups is called. */
|
|
93
|
+
label: string;
|
|
94
|
+
/** The groups, in the order they are listed and given their shapes. */
|
|
95
|
+
entries: ReadonlyArray<{
|
|
96
|
+
/** The group's own name, which is also its id. */
|
|
97
|
+
id: string;
|
|
98
|
+
/** What it is called. */
|
|
99
|
+
label: string;
|
|
100
|
+
/** Its shape. */
|
|
101
|
+
shape: OverlaySampleShape;
|
|
102
|
+
/** How many rows are in it. */
|
|
103
|
+
count: number;
|
|
104
|
+
}>;
|
|
105
|
+
/** Which group each row is in, as an index into `entries`, or `-1`. */
|
|
106
|
+
shapeOf: Int32Array;
|
|
107
|
+
}
|
|
77
108
|
//# sourceMappingURL=projectionSamples.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectionSamples.d.ts","sourceRoot":"","sources":["../../../src/projection/core/projectionSamples.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"projectionSamples.d.ts","sourceRoot":"","sources":["../../../src/projection/core/projectionSamples.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,4EAA4E;AAC5E,MAAM,WAAW,eAAe;IAC9B,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1C;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC3C;AAED,kFAAkF;AAClF,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IACvB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC1C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,eAAe,EAAE,CAAC;CACxD;AAED,kEAAkE;AAClE,MAAM,WAAW,wBAAwB;IACvC,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,OAAO,EAAE,aAAa,CAAC;QACrB,kDAAkD;QAClD,EAAE,EAAE,MAAM,CAAC;QACX,sFAAsF;QACtF,KAAK,EAAE,MAAM,CAAC;QACd,kBAAkB;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,+BAA+B;QAC/B,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,uEAAuE;IACvE,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,iEAAiE;AACjE,MAAM,WAAW,wBAAwB;IACvC,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,OAAO,EAAE,aAAa,CAAC;QACrB,kDAAkD;QAClD,EAAE,EAAE,MAAM,CAAC;QACX,yBAAyB;QACzB,KAAK,EAAE,MAAM,CAAC;QACd,iBAAiB;QACjB,KAAK,EAAE,kBAAkB,CAAC;QAC1B,+BAA+B;QAC/B,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,uEAAuE;IACvE,OAAO,EAAE,UAAU,CAAC;CACrB"}
|
|
@@ -1,81 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
const NO_GROUP = -1;
|
|
3
|
-
const DEFAULT_GROUP_LABEL = 'Group';
|
|
4
|
-
/**
|
|
5
|
-
* The groups a set of samples has, in a shape a legend and a plot can both
|
|
6
|
-
* read.
|
|
7
|
-
*
|
|
8
|
-
* A group named in `groupOrder` but held by no row is kept, so a legend does
|
|
9
|
-
* not reshuffle when a filter empties one; a row naming a group that is not in
|
|
10
|
-
* `groupOrder` is appended in the order it appears.
|
|
11
|
-
* @param samples - Who the rows are.
|
|
12
|
-
* @param count - How many rows there are, which is the score matrix's height.
|
|
13
|
-
* @returns The resolved groups. A set of samples with no `groups` gives no
|
|
14
|
-
* entries at all, and every row lands at `-1`.
|
|
15
|
-
*/
|
|
16
|
-
export function resolveProjectionGroups(samples, count) {
|
|
17
|
-
const rowCount = Number.isFinite(count) ? Math.max(0, Math.floor(count)) : 0;
|
|
18
|
-
const label = samples.groupLabel ?? DEFAULT_GROUP_LABEL;
|
|
19
|
-
const groupOf = new Int32Array(rowCount).fill(NO_GROUP);
|
|
20
|
-
const { groups, groupColors, groupOrder } = samples;
|
|
21
|
-
if (groups === undefined)
|
|
22
|
-
return { label, entries: [], groupOf };
|
|
23
|
-
const entries = [];
|
|
24
|
-
const indexOfGroup = new Map();
|
|
25
|
-
if (groupOrder !== undefined) {
|
|
26
|
-
for (const id of groupOrder)
|
|
27
|
-
appendGroup(entries, indexOfGroup, id);
|
|
28
|
-
}
|
|
29
|
-
for (let row = 0; row < rowCount; row++) {
|
|
30
|
-
const id = groups[row];
|
|
31
|
-
if (id === undefined)
|
|
32
|
-
continue;
|
|
33
|
-
const at = appendGroup(entries, indexOfGroup, id);
|
|
34
|
-
groupOf[row] = at;
|
|
35
|
-
const entry = entries[at];
|
|
36
|
-
if (entry !== undefined)
|
|
37
|
-
entry.count++;
|
|
38
|
-
}
|
|
39
|
-
paintGroups(entries, groupColors);
|
|
40
|
-
return { label, entries, groupOf };
|
|
41
|
-
}
|
|
42
|
-
function appendGroup(entries, indexOfGroup, id) {
|
|
43
|
-
const known = indexOfGroup.get(id);
|
|
44
|
-
if (known !== undefined)
|
|
45
|
-
return known;
|
|
46
|
-
const at = entries.length;
|
|
47
|
-
indexOfGroup.set(id, at);
|
|
48
|
-
entries.push({ id, label: id, color: '', count: 0 });
|
|
49
|
-
return at;
|
|
50
|
-
}
|
|
51
|
-
function paintGroups(entries, pinned) {
|
|
52
|
-
// Every pinned colour is taken out of the palette before any group draws
|
|
53
|
-
// from it, so pinning the third group's hue onto the first does not leave
|
|
54
|
-
// two groups wearing it.
|
|
55
|
-
const taken = new Set();
|
|
56
|
-
if (pinned !== undefined) {
|
|
57
|
-
for (const entry of entries) {
|
|
58
|
-
const color = pinned[entry.id];
|
|
59
|
-
if (color !== undefined)
|
|
60
|
-
taken.add(color.toLowerCase());
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
let cursor = 0;
|
|
64
|
-
for (const entry of entries) {
|
|
65
|
-
const own = pinned?.[entry.id];
|
|
66
|
-
if (own !== undefined) {
|
|
67
|
-
entry.color = own;
|
|
68
|
-
continue;
|
|
69
|
-
}
|
|
70
|
-
let color = chartSeriesColor(cursor, 'group');
|
|
71
|
-
while (cursor < CHART_SERIES_COLORS.length &&
|
|
72
|
-
taken.has(color.toLowerCase())) {
|
|
73
|
-
cursor++;
|
|
74
|
-
color = chartSeriesColor(cursor, 'group');
|
|
75
|
-
}
|
|
76
|
-
cursor++;
|
|
77
|
-
taken.add(color.toLowerCase());
|
|
78
|
-
entry.color = color;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
1
|
+
export {};
|
|
81
2
|
//# sourceMappingURL=projectionSamples.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectionSamples.js","sourceRoot":"","sources":["../../../src/projection/core/projectionSamples.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"projectionSamples.js","sourceRoot":"","sources":["../../../src/projection/core/projectionSamples.ts"],"names":[],"mappings":""}
|
|
@@ -90,6 +90,8 @@ export interface ProjectionBarWords {
|
|
|
90
90
|
};
|
|
91
91
|
/** What "the colour stands for nothing" reads. */
|
|
92
92
|
uncoloured: string;
|
|
93
|
+
/** What "the shape stands for nothing" reads. */
|
|
94
|
+
unshaped: string;
|
|
93
95
|
/** What "no outlines at all" reads where there is no room for a sentence. */
|
|
94
96
|
noOutlines: string;
|
|
95
97
|
/** What the settings gathered into one chip are called together. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectionStrings.d.ts","sourceRoot":"","sources":["../../../src/projection/core/projectionStrings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,4EAA4E;AAC5E,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACjC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,kBAAkB,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"projectionStrings.d.ts","sourceRoot":"","sources":["../../../src/projection/core/projectionStrings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,4EAA4E;AAC5E,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACjC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,kBAAkB,EAAE,cAAc,CA6FtE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAM9D,CAAC;AAEF,mDAAmD;AACnD,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,GAAG,EAAE;QACH,8CAA8C;QAC9C,OAAO,EAAE,MAAM,CAAC;QAChB,0DAA0D;QAC1D,OAAO,EAAE,MAAM,CAAC;QAChB,mDAAmD;QACnD,YAAY,EAAE,MAAM,CAAC;QACrB,8DAA8D;QAC9D,SAAS,EAAE,MAAM,CAAC;QAClB,8DAA8D;QAC9D,aAAa,EAAE,MAAM,CAAC;QACtB,sEAAsE;QACtE,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF;;;;;;;OAOG;IACH,QAAQ,EAAE;QACR,mEAAmE;QACnE,eAAe,EAAE,MAAM,CAAC;QACxB,gEAAgE;QAChE,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;CAC/C;AAED,uEAAuE;AACvE,eAAO,MAAM,oBAAoB,EAAE,kBAuBlC,CAAC"}
|
|
@@ -26,6 +26,14 @@ export const PROJECTION_HELP = {
|
|
|
26
26
|
title: 'Colour by',
|
|
27
27
|
body: 'What a dot’s colour stands for. Colouring by nothing is useful when the groups are what you are trying to find rather than what you already know.',
|
|
28
28
|
},
|
|
29
|
+
shapeBy: {
|
|
30
|
+
title: 'Shape by',
|
|
31
|
+
body: 'What a dot’s shape stands for. With colour for one grouping and shape for another, you see at a glance where two ways of sorting the same samples disagree — the clusters a run found against the classes you gave. Past five groups the shapes stop being told apart, so a grouping that large is not offered.',
|
|
32
|
+
example: {
|
|
33
|
+
code: 'Colour = cluster · Shape = class',
|
|
34
|
+
note: 'A square among circles of the same colour is a sample the clustering put with another class.',
|
|
35
|
+
},
|
|
36
|
+
},
|
|
29
37
|
ellipse: {
|
|
30
38
|
title: 'Group outlines',
|
|
31
39
|
body: 'Each outline is drawn to cover about that share of its group’s samples, assuming the group is roughly bell-shaped. It is a summary of where a group sits, not a boundary.',
|
|
@@ -51,7 +59,7 @@ export const PROJECTION_HELP = {
|
|
|
51
59
|
body: 'Writes every sample’s own name beside its dot. It is what turns a dot sitting on its own into something you can go and look up. In a crowd there is only room for some of the names, so the ones that do not fit are left out rather than written over each other.',
|
|
52
60
|
example: {
|
|
53
61
|
code: '0326_3a',
|
|
54
|
-
note: 'The name is
|
|
62
|
+
note: 'The name is the one the sample was loaded with, so it is the one you can find again in your own files.',
|
|
55
63
|
},
|
|
56
64
|
},
|
|
57
65
|
pairCount: {
|
|
@@ -120,6 +128,7 @@ export const PROJECTION_BAR_WORDS = {
|
|
|
120
128
|
showIds: 'Show sample ID',
|
|
121
129
|
},
|
|
122
130
|
uncoloured: 'Nothing',
|
|
131
|
+
unshaped: 'Nothing',
|
|
123
132
|
noOutlines: 'None',
|
|
124
133
|
settings: 'How this is drawn',
|
|
125
134
|
view: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectionStrings.js","sourceRoot":"","sources":["../../../src/projection/core/projectionStrings.ts"],"names":[],"mappings":"AA4CA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAA+C;IACzE,KAAK,EAAE;QACL,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,iFAAiF;KACxF;IACD,KAAK,EAAE;QACL,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,iDAAiD;KACxD;IACD,KAAK,EAAE;QACL,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,iIAAiI;KACxI;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,oJAAoJ;KAC3J;IACD,OAAO,EAAE;QACP,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,mJAAmJ;KAC1J;IACD,OAAO,EAAE;QACP,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,2KAA2K;QACjL,OAAO,EAAE;YACP,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,oIAAoI;SAC3I;KACF;IACD,WAAW,EAAE;QACX,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,8EAA8E;KACrF;IACD,cAAc,EAAE;QACd,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,4HAA4H;KACnI;IACD,eAAe,EAAE;QACf,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,4WAA4W;KACnX;IACD,OAAO,EAAE;QACP,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,oQAAoQ;QAC1Q,OAAO,EAAE;YACP,IAAI,EAAE,SAAS;YACf,IAAI,EAAE
|
|
1
|
+
{"version":3,"file":"projectionStrings.js","sourceRoot":"","sources":["../../../src/projection/core/projectionStrings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ProjectionOptions } from './projectionOptions.ts';
|
|
2
2
|
import type { ProjectionResult } from './projectionResult.ts';
|
|
3
|
+
import type { ProjectionGrouping } from './projectionSamples.ts';
|
|
3
4
|
/**
|
|
4
5
|
* The options the viewer will use, with a caller's overrides merged in and
|
|
5
6
|
* every one of them made safe against the result that actually came back.
|
|
@@ -7,11 +8,15 @@ import type { ProjectionResult } from './projectionResult.ts';
|
|
|
7
8
|
* A saved option outlives the data it was made on: reload with fewer samples
|
|
8
9
|
* and axis eight no longer exists. Rather than let a plot ask for a column
|
|
9
10
|
* that is not there, the two axes are pulled back inside what was computed and
|
|
10
|
-
* kept apart, the counts are held inside what exists,
|
|
11
|
-
* missing falls back to `weights
|
|
11
|
+
* kept apart, the counts are held inside what exists, a view whose data is
|
|
12
|
+
* missing falls back to `weights`, and the colour and the shape name groupings
|
|
13
|
+
* the samples actually carry.
|
|
12
14
|
* @param overrides - What the caller asked for.
|
|
13
15
|
* @param result - The reduced space the options will be applied to.
|
|
16
|
+
* @param groupings - The groupings the samples carry.
|
|
17
|
+
* @default undefined — the colour and the shape are left as they were asked
|
|
18
|
+
* for, since nothing says which groupings exist
|
|
14
19
|
* @returns Every option, complete and safe.
|
|
15
20
|
*/
|
|
16
|
-
export declare function resolveProjectionOptions(overrides: Partial<ProjectionOptions> | undefined, result: ProjectionResult): ProjectionOptions;
|
|
21
|
+
export declare function resolveProjectionOptions(overrides: Partial<ProjectionOptions> | undefined, result: ProjectionResult, groupings?: readonly ProjectionGrouping[]): ProjectionOptions;
|
|
17
22
|
//# sourceMappingURL=resolveProjectionOptions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveProjectionOptions.d.ts","sourceRoot":"","sources":["../../../src/projection/core/resolveProjectionOptions.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"resolveProjectionOptions.d.ts","sourceRoot":"","sources":["../../../src/projection/core/resolveProjectionOptions.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAKhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGjE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,SAAS,EACjD,MAAM,EAAE,gBAAgB,EACxB,SAAS,CAAC,EAAE,SAAS,kBAAkB,EAAE,GACxC,iBAAiB,CAiDnB"}
|