react-msaview 6.5.0 → 8.0.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 +13 -11
- package/bundle/index.js +122 -112
- package/bundle/index.js.map +4 -4
- package/dist/colorSchemes.js +1 -2
- package/dist/colorSchemes.js.map +1 -1
- package/dist/columnStats.d.ts +28 -0
- package/dist/columnStats.js +34 -0
- package/dist/columnStats.js.map +1 -0
- package/dist/components/DragHandle.d.ts +3 -2
- package/dist/components/DragHandle.js +11 -5
- package/dist/components/DragHandle.js.map +1 -1
- package/dist/components/Loading.js +2 -2
- package/dist/components/Loading.js.map +1 -1
- package/dist/components/MSAView.js +17 -6
- package/dist/components/MSAView.js.map +1 -1
- package/dist/components/MSAViewer.d.ts +69 -4
- package/dist/components/MSAViewer.js +201 -8
- package/dist/components/MSAViewer.js.map +1 -1
- package/dist/components/PortalTooltip.d.ts +11 -0
- package/dist/components/PortalTooltip.js +29 -0
- package/dist/components/PortalTooltip.js.map +1 -0
- package/dist/components/ResizeHandles.d.ts +3 -3
- package/dist/components/ResizeHandles.js +13 -24
- package/dist/components/ResizeHandles.js.map +1 -1
- package/dist/components/SequenceTextArea.js +3 -3
- package/dist/components/SequenceTextArea.js.map +1 -1
- package/dist/components/Track.js +41 -22
- package/dist/components/Track.js.map +1 -1
- package/dist/components/dialogs/{InterProScanDialog.d.ts → AnnotationFileDialog.d.ts} +2 -2
- package/dist/components/dialogs/AnnotationFileDialog.js +92 -0
- package/dist/components/dialogs/AnnotationFileDialog.js.map +1 -0
- package/dist/components/dialogs/ExportSVGDialog.js +5 -3
- package/dist/components/dialogs/ExportSVGDialog.js.map +1 -1
- package/dist/components/dialogs/FeatureDialog.js +13 -9
- package/dist/components/dialogs/FeatureDialog.js.map +1 -1
- package/dist/components/dialogs/TrackInfoDialog.js +1 -1
- package/dist/components/dialogs/TrackInfoDialog.js.map +1 -1
- package/dist/components/header/GappynessSlider.js +6 -11
- package/dist/components/header/GappynessSlider.js.map +1 -1
- package/dist/components/header/Header.js +7 -0
- package/dist/components/header/Header.js.map +1 -1
- package/dist/components/header/HeaderStatusArea.js +0 -2
- package/dist/components/header/HeaderStatusArea.js.map +1 -1
- package/dist/components/header/LoadWarnings.d.ts +6 -0
- package/dist/components/header/LoadWarnings.js +35 -0
- package/dist/components/header/LoadWarnings.js.map +1 -0
- package/dist/components/header/MultiAlignmentSelector.js +0 -0
- package/dist/components/header/MultiAlignmentSelector.js.map +1 -1
- package/dist/components/header/ScrollZoomIcons.d.ts +6 -0
- package/dist/components/header/ScrollZoomIcons.js +35 -0
- package/dist/components/header/ScrollZoomIcons.js.map +1 -0
- package/dist/components/header/TreeSettingsMenu.js +7 -1
- package/dist/components/header/TreeSettingsMenu.js.map +1 -1
- package/dist/components/header/UnshareableDataWarning.d.ts +6 -0
- package/dist/components/header/UnshareableDataWarning.js +40 -0
- package/dist/components/header/UnshareableDataWarning.js.map +1 -0
- package/dist/components/header/ZoomControls.js +49 -6
- package/dist/components/header/ZoomControls.js.map +1 -1
- package/dist/components/header/getAnnotationsMenu.js +11 -14
- package/dist/components/header/getAnnotationsMenu.js.map +1 -1
- package/dist/components/header/settingsMenuItems.js +10 -7
- package/dist/components/header/settingsMenuItems.js.map +1 -1
- package/dist/components/import/ImportForm.js +1 -1
- package/dist/components/import/ImportForm.js.map +1 -1
- package/dist/components/import/ImportFormExamples.js +2 -6
- package/dist/components/import/ImportFormExamples.js.map +1 -1
- package/dist/components/import/util.js +2 -0
- package/dist/components/import/util.js.map +1 -1
- package/dist/components/minimap/Minimap.js +1 -2
- package/dist/components/minimap/Minimap.js.map +1 -1
- package/dist/components/msa/AnnotationLegend.js +27 -19
- package/dist/components/msa/AnnotationLegend.js.map +1 -1
- package/dist/components/msa/MSACanvas.js +1 -1
- package/dist/components/msa/MSACanvas.js.map +1 -1
- package/dist/components/msa/MSACanvasBlock.js +17 -20
- package/dist/components/msa/MSACanvasBlock.js.map +1 -1
- package/dist/components/msa/MSAMouseoverCanvas.js +2 -1
- package/dist/components/msa/MSAMouseoverCanvas.js.map +1 -1
- package/dist/components/msa/domainBandCursor.d.ts +7 -11
- package/dist/components/msa/domainBandCursor.js +7 -11
- package/dist/components/msa/domainBandCursor.js.map +1 -1
- package/dist/components/msa/drawFeatureSpans.d.ts +53 -0
- package/dist/components/msa/drawFeatureSpans.js +78 -0
- package/dist/components/msa/drawFeatureSpans.js.map +1 -0
- package/dist/components/msa/legendRows.d.ts +8 -0
- package/dist/components/msa/legendRows.js +16 -0
- package/dist/components/msa/legendRows.js.map +1 -0
- package/dist/components/msa/msaRaster.d.ts +30 -27
- package/dist/components/msa/msaRaster.js +193 -90
- package/dist/components/msa/msaRaster.js.map +1 -1
- package/dist/components/msa/packDomainLanes.d.ts +20 -0
- package/dist/components/msa/packDomainLanes.js +33 -0
- package/dist/components/msa/packDomainLanes.js.map +1 -0
- package/dist/components/msa/renderBoxFeatureCanvasBlock.d.ts +3 -1
- package/dist/components/msa/renderBoxFeatureCanvasBlock.js +51 -87
- package/dist/components/msa/renderBoxFeatureCanvasBlock.js.map +1 -1
- package/dist/components/msa/renderHighlights.d.ts +44 -4
- package/dist/components/msa/renderHighlights.js +99 -11
- package/dist/components/msa/renderHighlights.js.map +1 -1
- package/dist/components/msa/renderMSABlock.d.ts +1 -2
- package/dist/components/msa/renderMSABlock.js +28 -31
- package/dist/components/msa/renderMSABlock.js.map +1 -1
- package/dist/components/msa/renderMSAMouseover.js +9 -30
- package/dist/components/msa/renderMSAMouseover.js.map +1 -1
- package/dist/components/msa/tileColor.js +4 -7
- package/dist/components/msa/tileColor.js.map +1 -1
- package/dist/components/msa/useMsaBlockMouse.d.ts +5 -3
- package/dist/components/msa/useMsaBlockMouse.js +6 -6
- package/dist/components/msa/useMsaBlockMouse.js.map +1 -1
- package/dist/components/renderCtx.d.ts +1 -1
- package/dist/components/rowpanels/RowPanelBlock.d.ts +9 -0
- package/dist/components/rowpanels/RowPanelBlock.js +86 -0
- package/dist/components/rowpanels/RowPanelBlock.js.map +1 -0
- package/dist/components/rowpanels/RowPanelHeaders.d.ts +12 -0
- package/dist/components/rowpanels/RowPanelHeaders.js +38 -0
- package/dist/components/rowpanels/RowPanelHeaders.js.map +1 -0
- package/dist/components/{msa/ColumnStats.d.ts → rowpanels/RowPanels.d.ts} +2 -2
- package/dist/components/rowpanels/RowPanels.js +32 -0
- package/dist/components/rowpanels/RowPanels.js.map +1 -0
- package/dist/components/rowpanels/headerLayout.d.ts +1 -0
- package/dist/components/rowpanels/headerLayout.js +5 -0
- package/dist/components/rowpanels/headerLayout.js.map +1 -0
- package/dist/components/rowpanels/renderFeaturePanel.d.ts +21 -0
- package/dist/components/rowpanels/renderFeaturePanel.js +37 -0
- package/dist/components/rowpanels/renderFeaturePanel.js.map +1 -0
- package/dist/components/rowpanels/renderRowPanel.d.ts +23 -0
- package/dist/components/rowpanels/renderRowPanel.js +22 -0
- package/dist/components/rowpanels/renderRowPanel.js.map +1 -0
- package/dist/components/rowpanels/renderStrip.d.ts +20 -0
- package/dist/components/rowpanels/renderStrip.js +26 -0
- package/dist/components/rowpanels/renderStrip.js.map +1 -0
- package/dist/components/tracks/TrackBlocks.js +13 -16
- package/dist/components/tracks/TrackBlocks.js.map +1 -1
- package/dist/components/tracks/TrackTooltipContent.d.ts +15 -0
- package/dist/components/tracks/TrackTooltipContent.js +109 -0
- package/dist/components/tracks/TrackTooltipContent.js.map +1 -0
- package/dist/components/tracks/drawTracks.d.ts +30 -12
- package/dist/components/tracks/drawTracks.js +127 -34
- package/dist/components/tracks/drawTracks.js.map +1 -1
- package/dist/components/tracks/useTrackHover.d.ts +22 -0
- package/dist/components/tracks/useTrackHover.js +30 -0
- package/dist/components/tracks/useTrackHover.js.map +1 -0
- package/dist/components/tree/CladeLabels.d.ts +12 -0
- package/dist/components/tree/CladeLabels.js +48 -0
- package/dist/components/tree/CladeLabels.js.map +1 -0
- package/dist/components/tree/TreeCanvas.js +6 -4
- package/dist/components/tree/TreeCanvas.js.map +1 -1
- package/dist/components/tree/TreeCanvasBlock.js +6 -21
- package/dist/components/tree/TreeCanvasBlock.js.map +1 -1
- package/dist/components/tree/TreeOverview.d.ts +14 -0
- package/dist/components/tree/TreeOverview.js +75 -0
- package/dist/components/tree/TreeOverview.js.map +1 -0
- package/dist/components/tree/TreeRuler.js +11 -5
- package/dist/components/tree/TreeRuler.js.map +1 -1
- package/dist/components/tree/cladeBrackets.d.ts +25 -0
- package/dist/components/tree/cladeBrackets.js +51 -0
- package/dist/components/tree/cladeBrackets.js.map +1 -0
- package/dist/components/tree/dialogs/TreeNodeInfoDialog.js +2 -2
- package/dist/components/tree/dialogs/TreeNodeInfoDialog.js.map +1 -1
- package/dist/components/tree/renderTreeCanvas.d.ts +0 -1
- package/dist/components/tree/renderTreeCanvas.js +221 -47
- package/dist/components/tree/renderTreeCanvas.js.map +1 -1
- package/dist/components/tree/renderTreeOverview.d.ts +52 -0
- package/dist/components/tree/renderTreeOverview.js +138 -0
- package/dist/components/tree/renderTreeOverview.js.map +1 -0
- package/dist/components/tree/scaleBar.d.ts +10 -0
- package/dist/components/tree/scaleBar.js +24 -0
- package/dist/components/tree/scaleBar.js.map +1 -0
- package/dist/components/tree/useTreeHover.js +2 -4
- package/dist/components/tree/useTreeHover.js.map +1 -1
- package/dist/constants.d.ts +18 -1
- package/dist/constants.js +51 -8
- package/dist/constants.js.map +1 -1
- package/dist/createPaletteMap.d.ts +7 -6
- package/dist/createPaletteMap.js +10 -9
- package/dist/createPaletteMap.js.map +1 -1
- package/dist/element.d.ts +13 -0
- package/dist/element.js +269 -0
- package/dist/element.js.map +1 -0
- package/dist/featureFields.d.ts +11 -0
- package/dist/featureFields.js +17 -0
- package/dist/featureFields.js.map +1 -0
- package/dist/fetchUtils.d.ts +7 -7
- package/dist/fetchUtils.js +4 -32
- package/dist/fetchUtils.js.map +1 -1
- package/dist/flatToTree.js +1 -2
- package/dist/flatToTree.js.map +1 -1
- package/dist/ggplotPalettes.d.ts +10 -0
- package/dist/ggplotPalettes.js +58 -0
- package/dist/ggplotPalettes.js.map +1 -1
- package/dist/hierarchy.d.ts +29 -1
- package/dist/hierarchy.js +82 -19
- package/dist/hierarchy.js.map +1 -1
- package/dist/index.d.ts +10 -1
- package/dist/index.js +10 -2
- package/dist/index.js.map +1 -1
- package/dist/model/DataModel.js +4 -4
- package/dist/model/DataModel.js.map +1 -1
- package/dist/model/msaModel.d.ts +3 -2
- package/dist/model/msaModel.js +3 -2
- package/dist/model/msaModel.js.map +1 -1
- package/dist/model/treeModel.d.ts +30 -0
- package/dist/model/treeModel.js +37 -1
- package/dist/model/treeModel.js.map +1 -1
- package/dist/model.d.ts +792 -259
- package/dist/model.js +2092 -675
- package/dist/model.js.map +1 -1
- package/dist/mount.d.ts +11 -0
- package/dist/mount.js +22 -0
- package/dist/mount.js.map +1 -0
- package/dist/neighborJoining.js +8 -32
- package/dist/neighborJoining.js.map +1 -1
- package/dist/renderToStaticMarkup.d.ts +15 -13
- package/dist/renderToStaticMarkup.js +37 -25
- package/dist/renderToStaticMarkup.js.map +1 -1
- package/dist/renderToSvg.js +198 -68
- package/dist/renderToSvg.js.map +1 -1
- package/dist/rowCoordinateCalculations.d.ts +26 -28
- package/dist/rowCoordinateCalculations.js +13 -39
- package/dist/rowCoordinateCalculations.js.map +1 -1
- package/dist/scales.d.ts +22 -0
- package/dist/scales.js +30 -0
- package/dist/scales.js.map +1 -0
- package/dist/seqPosToGlobalCol.d.ts +2 -3
- package/dist/seqPosToGlobalCol.js +5 -4
- package/dist/seqPosToGlobalCol.js.map +1 -1
- package/dist/sequenceLogo.d.ts +6 -11
- package/dist/sequenceLogo.js +6 -11
- package/dist/sequenceLogo.js.map +1 -1
- package/dist/stripDefault.d.ts +7 -14
- package/dist/stripDefault.js +7 -14
- package/dist/stripDefault.js.map +1 -1
- package/dist/svgTestUtil.d.ts +306 -124
- package/dist/types.d.ts +295 -3
- package/dist/umd.d.ts +2 -0
- package/dist/umd.js +4 -2
- package/dist/umd.js.map +1 -1
- package/dist/useCanvasAutorun.d.ts +5 -10
- package/dist/useCanvasAutorun.js +5 -10
- package/dist/useCanvasAutorun.js.map +1 -1
- package/dist/useMsaSvgFigure.d.ts +20 -0
- package/dist/useMsaSvgFigure.js +46 -0
- package/dist/useMsaSvgFigure.js.map +1 -0
- package/dist/util.d.ts +10 -4
- package/dist/util.js +37 -10
- package/dist/util.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/wuss.d.ts +14 -0
- package/dist/wuss.js +55 -0
- package/dist/wuss.js.map +1 -0
- package/package.json +23 -14
- package/src/colorSchemes.ts +1 -2
- package/src/columnStats.ts +58 -0
- package/src/components/DragHandle.tsx +18 -7
- package/src/components/Loading.tsx +14 -8
- package/src/components/MSAView.tsx +19 -5
- package/src/components/MSAViewer.tsx +326 -10
- package/src/components/PortalTooltip.tsx +47 -0
- package/src/components/ResizeHandles.tsx +21 -36
- package/src/components/SequenceTextArea.tsx +3 -3
- package/src/components/Track.tsx +55 -18
- package/src/components/dialogs/AnnotationFileDialog.tsx +162 -0
- package/src/components/dialogs/ExportSVGDialog.tsx +7 -2
- package/src/components/dialogs/FeatureDialog.tsx +13 -9
- package/src/components/dialogs/TrackInfoDialog.tsx +1 -1
- package/src/components/header/GappynessSlider.tsx +6 -11
- package/src/components/header/Header.tsx +10 -0
- package/src/components/header/HeaderStatusArea.tsx +0 -5
- package/src/components/header/LoadWarnings.tsx +48 -0
- package/src/components/header/MultiAlignmentSelector.tsx +0 -0
- package/src/components/header/ScrollZoomIcons.tsx +52 -0
- package/src/components/header/TreeSettingsMenu.tsx +7 -1
- package/src/components/header/UnshareableDataWarning.tsx +56 -0
- package/src/components/header/ZoomControls.tsx +74 -14
- package/src/components/header/getAnnotationsMenu.ts +13 -17
- package/src/components/header/settingsMenuItems.ts +11 -6
- package/src/components/import/ImportForm.tsx +2 -2
- package/src/components/import/ImportFormExamples.tsx +4 -8
- package/src/components/import/util.ts +2 -0
- package/src/components/minimap/Minimap.tsx +1 -2
- package/src/components/msa/AnnotationLegend.tsx +48 -38
- package/src/components/msa/MSACanvas.tsx +3 -5
- package/src/components/msa/MSACanvasBlock.tsx +17 -21
- package/src/components/msa/MSAMouseoverCanvas.tsx +2 -1
- package/src/components/msa/domainBandCursor.ts +7 -11
- package/src/components/msa/drawFeatureSpans.ts +150 -0
- package/src/components/msa/legendRows.ts +24 -0
- package/src/components/msa/msaRaster.ts +236 -88
- package/src/components/msa/packDomainLanes.ts +36 -0
- package/src/components/msa/renderBoxFeatureCanvasBlock.ts +69 -123
- package/src/components/msa/renderHighlights.ts +141 -10
- package/src/components/msa/renderMSABlock.ts +29 -38
- package/src/components/msa/renderMSAMouseover.ts +9 -39
- package/src/components/msa/tileColor.ts +4 -7
- package/src/components/msa/useMsaBlockMouse.ts +6 -6
- package/src/components/renderCtx.ts +1 -0
- package/src/components/rowpanels/RowPanelBlock.tsx +139 -0
- package/src/components/rowpanels/RowPanelHeaders.tsx +57 -0
- package/src/components/rowpanels/RowPanels.tsx +77 -0
- package/src/components/rowpanels/headerLayout.ts +5 -0
- package/src/components/rowpanels/renderFeaturePanel.ts +66 -0
- package/src/components/rowpanels/renderRowPanel.ts +41 -0
- package/src/components/rowpanels/renderStrip.ts +46 -0
- package/src/components/tracks/TrackBlocks.tsx +13 -18
- package/src/components/tracks/TrackTooltipContent.tsx +156 -0
- package/src/components/tracks/drawTracks.ts +169 -38
- package/src/components/tracks/useTrackHover.ts +42 -0
- package/src/components/tree/CladeLabels.tsx +77 -0
- package/src/components/tree/TreeCanvas.tsx +4 -3
- package/src/components/tree/TreeCanvasBlock.tsx +10 -32
- package/src/components/tree/TreeOverview.tsx +106 -0
- package/src/components/tree/TreeRuler.tsx +29 -5
- package/src/components/tree/cladeBrackets.ts +73 -0
- package/src/components/tree/dialogs/TreeNodeInfoDialog.tsx +2 -2
- package/src/components/tree/renderTreeCanvas.ts +312 -48
- package/src/components/tree/renderTreeOverview.ts +212 -0
- package/src/components/tree/scaleBar.ts +23 -0
- package/src/components/tree/useTreeHover.ts +2 -4
- package/src/constants.ts +61 -8
- package/src/createPaletteMap.ts +10 -9
- package/src/element.ts +321 -0
- package/src/featureFields.ts +19 -0
- package/src/fetchUtils.ts +7 -40
- package/src/flatToTree.ts +1 -2
- package/src/ggplotPalettes.ts +60 -0
- package/src/hierarchy.ts +97 -20
- package/src/index.ts +46 -6
- package/src/model/DataModel.ts +5 -4
- package/src/model/msaModel.ts +3 -2
- package/src/model/treeModel.ts +42 -0
- package/src/model.ts +2492 -793
- package/src/mount.tsx +32 -0
- package/src/neighborJoining.ts +8 -32
- package/src/rawImports.d.ts +9 -0
- package/src/renderToStaticMarkup.ts +41 -25
- package/src/renderToSvg.tsx +365 -92
- package/src/rowCoordinateCalculations.ts +16 -62
- package/src/scales.ts +47 -0
- package/src/seqPosToGlobalCol.ts +5 -4
- package/src/sequenceLogo.ts +6 -11
- package/src/stripDefault.ts +7 -14
- package/src/types.ts +352 -12
- package/src/umd.ts +4 -2
- package/src/useCanvasAutorun.ts +5 -10
- package/src/useMsaSvgFigure.ts +72 -0
- package/src/util.ts +40 -14
- package/src/version.ts +1 -1
- package/src/wuss.ts +62 -0
- package/dist/components/dialogs/InterProScanDialog.js +0 -137
- package/dist/components/dialogs/InterProScanDialog.js.map +0 -1
- package/dist/components/dialogs/InterProScanFileDialog.d.ts +0 -7
- package/dist/components/dialogs/InterProScanFileDialog.js +0 -64
- package/dist/components/dialogs/InterProScanFileDialog.js.map +0 -1
- package/dist/components/msa/ColumnStats.js +0 -42
- package/dist/components/msa/ColumnStats.js.map +0 -1
- package/dist/launchInterProScan.d.ts +0 -13
- package/dist/launchInterProScan.js +0 -110
- package/dist/launchInterProScan.js.map +0 -1
- package/dist/useColorContrast.d.ts +0 -10
- package/dist/useColorContrast.js +0 -13
- package/dist/useColorContrast.js.map +0 -1
- package/src/clustalX.test.ts +0 -74
- package/src/colSpace.test.ts +0 -67
- package/src/collapseLogic.test.ts +0 -115
- package/src/colorSchemes.docs.test.ts +0 -57
- package/src/columnCounts.test.ts +0 -73
- package/src/columnStats.test.ts +0 -94
- package/src/columnTracks.test.ts +0 -97
- package/src/components/dialogs/InterProScanDialog.tsx +0 -214
- package/src/components/dialogs/InterProScanFileDialog.tsx +0 -138
- package/src/components/minimap/minimapLayout.test.ts +0 -71
- package/src/components/msa/ColumnStats.tsx +0 -54
- package/src/components/msa/msaRaster.test.ts +0 -145
- package/src/components/msa/renderBoxFeatureCanvasBlock.test.ts +0 -51
- package/src/components/tree/renderTreeCanvas.test.ts +0 -296
- package/src/dataInitialized.test.ts +0 -42
- package/src/domainBands.test.ts +0 -122
- package/src/domainLetterColor.test.ts +0 -80
- package/src/exportFileName.test.ts +0 -40
- package/src/fetchUtils.test.ts +0 -83
- package/src/flatToTree.test.ts +0 -51
- package/src/hierarchy.test.ts +0 -228
- package/src/highlights.test.ts +0 -70
- package/src/impgRender.test.tsx +0 -68
- package/src/largeTree.test.ts +0 -67
- package/src/launchInterProScan.ts +0 -167
- package/src/loadErrorDisplay.test.tsx +0 -102
- package/src/modelFilehandleLoaders.test.ts +0 -137
- package/src/modelReset.test.ts +0 -120
- package/src/neighborJoining.test.ts +0 -164
- package/src/parseAsn1.test.ts +0 -36
- package/src/propertyConservation.test.ts +0 -36
- package/src/renderColumnTracksSvg.test.tsx +0 -108
- package/src/renderDomainsSvg.test.tsx +0 -118
- package/src/renderHighlightsSvg.test.tsx +0 -85
- package/src/renderMinimapSvg.test.tsx +0 -62
- package/src/renderRasterSvg.test.tsx +0 -144
- package/src/renderSequenceLogoSvg.test.tsx +0 -165
- package/src/renderToSvg.test.tsx +0 -65
- package/src/reset.test.ts +0 -61
- package/src/rowCoordinateCalculations.test.ts +0 -211
- package/src/rowSpace.test.ts +0 -46
- package/src/segmentOverlay.test.ts +0 -70
- package/src/seqPosToGlobalCol.test.ts +0 -59
- package/src/sequenceLogo.test.ts +0 -88
- package/src/setFontSize.test.ts +0 -33
- package/src/stripDefault.test.ts +0 -48
- package/src/stripDefaultSnapshot.test.ts +0 -87
- package/src/treeMetadata.test.ts +0 -39
- package/src/useCanvasAutorun.test.tsx +0 -98
- package/src/useColorContrast.ts +0 -18
- package/src/viewChrome.test.tsx +0 -134
- package/src/wheelZoom.test.ts +0 -46
package/dist/element.js
ADDED
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import { when } from 'mobx';
|
|
2
|
+
import { mount } from './mount.js';
|
|
3
|
+
const ownAttributes = [
|
|
4
|
+
'msa-url',
|
|
5
|
+
'tree-url',
|
|
6
|
+
'gff-url',
|
|
7
|
+
'color-scheme',
|
|
8
|
+
'height',
|
|
9
|
+
'hide-header',
|
|
10
|
+
'theme',
|
|
11
|
+
'reference-row',
|
|
12
|
+
'tree-area-width',
|
|
13
|
+
];
|
|
14
|
+
// the attributes a <nightingale-manager> writes on the elements it holds
|
|
15
|
+
const nightingaleAttributes = ['display-start', 'display-end', 'highlight'];
|
|
16
|
+
function location(uri) {
|
|
17
|
+
return uri ? { uri, locationType: 'UriLocation' } : undefined;
|
|
18
|
+
}
|
|
19
|
+
function numberAttribute(value) {
|
|
20
|
+
const n = value ? Number(value) : Number.NaN;
|
|
21
|
+
return Number.isFinite(n) ? n : undefined;
|
|
22
|
+
}
|
|
23
|
+
// Nightingale writes a highlight as "start:end,start:end", 1-based inclusive
|
|
24
|
+
function parseHighlight(value, row) {
|
|
25
|
+
return (value ?? '').split(',').flatMap(span => {
|
|
26
|
+
const [start, end] = span.split(':').map(numberAttribute);
|
|
27
|
+
return start === undefined ? [] : [{ row, start, end: end ?? start }];
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function residueAtColumn(model, row, column) {
|
|
31
|
+
const visible = model.globalColToVisibleCol(column - 1);
|
|
32
|
+
return visible === undefined
|
|
33
|
+
? undefined
|
|
34
|
+
: model.visibleColToSeqPosOneBased(row, visible);
|
|
35
|
+
}
|
|
36
|
+
// the first and last residues of `row` inside the viewport's columns
|
|
37
|
+
function residueRange(model, row, viewport) {
|
|
38
|
+
let start;
|
|
39
|
+
let end;
|
|
40
|
+
for (let c = viewport.startColumn; c <= viewport.endColumn && !start; c++) {
|
|
41
|
+
start = residueAtColumn(model, row, c);
|
|
42
|
+
}
|
|
43
|
+
for (let c = viewport.endColumn; c >= viewport.startColumn && !end; c--) {
|
|
44
|
+
end = residueAtColumn(model, row, c);
|
|
45
|
+
}
|
|
46
|
+
return start && end ? { start, end } : undefined;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Registers a custom element that renders MSAViewer, for pages with no React.
|
|
50
|
+
* Attributes: msa-url, tree-url, gff-url, color-scheme, height, hide-header,
|
|
51
|
+
* theme, tree-area-width and reference-row. Properties: msa, tree and gff text, highlights,
|
|
52
|
+
* columnTracks and residueMappings. Events: cell-hover, cell-click and
|
|
53
|
+
* viewport-change, each with the MSAViewer callback's value as detail.
|
|
54
|
+
*
|
|
55
|
+
* Inside a <nightingale-manager>, the element registers with it and speaks its
|
|
56
|
+
* protocol: it follows the display-start, display-end and highlight attributes
|
|
57
|
+
* the manager writes, and reports its own range and hovered residue as change
|
|
58
|
+
* events. Positions are residues of reference-row, or columns without one.
|
|
59
|
+
*/
|
|
60
|
+
export function defineMsaElement(tagName = 'jbrowse-msa') {
|
|
61
|
+
const existing = customElements.get(tagName);
|
|
62
|
+
if (existing) {
|
|
63
|
+
return existing;
|
|
64
|
+
}
|
|
65
|
+
class MsaElement extends HTMLElement {
|
|
66
|
+
static observedAttributes = [...ownAttributes, ...nightingaleAttributes];
|
|
67
|
+
#viewer;
|
|
68
|
+
#model;
|
|
69
|
+
#manager;
|
|
70
|
+
#cancelRange;
|
|
71
|
+
#rangePending = false;
|
|
72
|
+
#reported;
|
|
73
|
+
#data = {};
|
|
74
|
+
get msa() {
|
|
75
|
+
return this.#data.msa;
|
|
76
|
+
}
|
|
77
|
+
set msa(value) {
|
|
78
|
+
this.#setData({ msa: value });
|
|
79
|
+
}
|
|
80
|
+
get tree() {
|
|
81
|
+
return this.#data.tree;
|
|
82
|
+
}
|
|
83
|
+
set tree(value) {
|
|
84
|
+
this.#setData({ tree: value });
|
|
85
|
+
}
|
|
86
|
+
get gff() {
|
|
87
|
+
return this.#data.gff;
|
|
88
|
+
}
|
|
89
|
+
set gff(value) {
|
|
90
|
+
this.#setData({ gff: value });
|
|
91
|
+
}
|
|
92
|
+
get highlights() {
|
|
93
|
+
return this.#data.highlights;
|
|
94
|
+
}
|
|
95
|
+
set highlights(value) {
|
|
96
|
+
this.#setData({ highlights: value });
|
|
97
|
+
}
|
|
98
|
+
get columnTracks() {
|
|
99
|
+
return this.#data.columnTracks;
|
|
100
|
+
}
|
|
101
|
+
set columnTracks(value) {
|
|
102
|
+
this.#setData({ columnTracks: value });
|
|
103
|
+
}
|
|
104
|
+
get residueMappings() {
|
|
105
|
+
return this.#data.residueMappings;
|
|
106
|
+
}
|
|
107
|
+
set residueMappings(value) {
|
|
108
|
+
this.#setData({ residueMappings: value });
|
|
109
|
+
}
|
|
110
|
+
get #referenceRow() {
|
|
111
|
+
return this.getAttribute('reference-row') ?? undefined;
|
|
112
|
+
}
|
|
113
|
+
#setData(data) {
|
|
114
|
+
this.#data = { ...this.#data, ...data };
|
|
115
|
+
this.#viewer?.update(this.#props());
|
|
116
|
+
}
|
|
117
|
+
#props() {
|
|
118
|
+
const theme = this.getAttribute('theme');
|
|
119
|
+
return {
|
|
120
|
+
...this.#data,
|
|
121
|
+
msaFilehandle: location(this.getAttribute('msa-url')),
|
|
122
|
+
treeFilehandle: location(this.getAttribute('tree-url')),
|
|
123
|
+
gffFilehandle: location(this.getAttribute('gff-url')),
|
|
124
|
+
colorScheme: this.getAttribute('color-scheme') ?? undefined,
|
|
125
|
+
height: numberAttribute(this.getAttribute('height')),
|
|
126
|
+
treeAreaWidth: numberAttribute(this.getAttribute('tree-area-width')),
|
|
127
|
+
hideHeader: this.hasAttribute('hide-header'),
|
|
128
|
+
theme: theme === 'dark' ? 'dark' : 'light',
|
|
129
|
+
onCellHover: cell => {
|
|
130
|
+
this.#emit('cell-hover', cell);
|
|
131
|
+
this.#reportHover(cell);
|
|
132
|
+
},
|
|
133
|
+
onCellClick: cell => {
|
|
134
|
+
this.#emit('cell-click', cell);
|
|
135
|
+
},
|
|
136
|
+
onViewportChange: viewport => {
|
|
137
|
+
this.#emit('viewport-change', viewport);
|
|
138
|
+
this.#reportRange(viewport);
|
|
139
|
+
},
|
|
140
|
+
onModel: model => {
|
|
141
|
+
this.#model = model;
|
|
142
|
+
this.#followRange();
|
|
143
|
+
this.#followHighlight();
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
#emit(type, detail) {
|
|
148
|
+
this.dispatchEvent(new CustomEvent(type, { detail }));
|
|
149
|
+
}
|
|
150
|
+
#nightingaleChange(detail) {
|
|
151
|
+
if (this.#manager) {
|
|
152
|
+
this.dispatchEvent(new CustomEvent('change', {
|
|
153
|
+
detail,
|
|
154
|
+
bubbles: true,
|
|
155
|
+
cancelable: true,
|
|
156
|
+
}));
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
#reportHover(cell) {
|
|
160
|
+
const model = this.#model;
|
|
161
|
+
const row = this.#referenceRow;
|
|
162
|
+
const position = cell && model && row
|
|
163
|
+
? residueAtColumn(model, row, cell.column)
|
|
164
|
+
: cell?.column;
|
|
165
|
+
this.#nightingaleChange({
|
|
166
|
+
type: 'highlight',
|
|
167
|
+
value: position === undefined ? null : `${position}:${position}`,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
#reportRange(viewport) {
|
|
171
|
+
const model = this.#model;
|
|
172
|
+
const row = this.#referenceRow;
|
|
173
|
+
if (!viewport || !model) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
const range = row
|
|
177
|
+
? residueRange(model, row, viewport)
|
|
178
|
+
: { start: viewport.startColumn, end: viewport.endColumn };
|
|
179
|
+
const shownStart = numberAttribute(this.getAttribute('display-start'));
|
|
180
|
+
const shownEnd = numberAttribute(this.getAttribute('display-end'));
|
|
181
|
+
// a range the manager just wrote comes back within a column of itself,
|
|
182
|
+
// since the viewer shows whole columns
|
|
183
|
+
const echo = range &&
|
|
184
|
+
shownStart !== undefined &&
|
|
185
|
+
shownEnd !== undefined &&
|
|
186
|
+
Math.abs(range.start - shownStart) <= 1 &&
|
|
187
|
+
Math.abs(range.end - shownEnd) <= 1;
|
|
188
|
+
if (range && !echo) {
|
|
189
|
+
this.#reported = range;
|
|
190
|
+
this.#nightingaleChange({
|
|
191
|
+
'display-start': range.start,
|
|
192
|
+
'display-end': range.end,
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
#followRange() {
|
|
197
|
+
const model = this.#model;
|
|
198
|
+
const start = numberAttribute(this.getAttribute('display-start'));
|
|
199
|
+
const end = numberAttribute(this.getAttribute('display-end'));
|
|
200
|
+
const reported = this.#reported;
|
|
201
|
+
// the manager writes the range this element reported back onto it, and
|
|
202
|
+
// zooming to it again would snap the reader's own zoom to whole residues
|
|
203
|
+
if (reported && reported.start === start && reported.end === end) {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
this.#cancelRange?.();
|
|
207
|
+
if (model && start !== undefined && end !== undefined) {
|
|
208
|
+
const row = this.#referenceRow;
|
|
209
|
+
this.#cancelRange = when(() => model.viewInitialized && model.numColumns > 0, () => {
|
|
210
|
+
model.zoomToRegion({ row, start, end });
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
#followHighlight() {
|
|
215
|
+
const spans = parseHighlight(this.getAttribute('highlight'), this.#referenceRow);
|
|
216
|
+
if (spans.length) {
|
|
217
|
+
this.#model?.applyHighlight('nightingale', spans);
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
this.#model?.clearHighlight('nightingale');
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
connectedCallback() {
|
|
224
|
+
if (!this.style.display) {
|
|
225
|
+
this.style.display = 'block';
|
|
226
|
+
}
|
|
227
|
+
this.#viewer = mount(this, this.#props());
|
|
228
|
+
const manager = this.closest('nightingale-manager');
|
|
229
|
+
if (manager) {
|
|
230
|
+
void customElements.whenDefined('nightingale-manager').then(() => {
|
|
231
|
+
if (this.isConnected) {
|
|
232
|
+
this.#manager = manager;
|
|
233
|
+
manager.register(this);
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
disconnectedCallback() {
|
|
239
|
+
this.#manager?.unregister(this);
|
|
240
|
+
this.#manager = undefined;
|
|
241
|
+
this.#cancelRange?.();
|
|
242
|
+
this.#viewer?.destroy();
|
|
243
|
+
this.#viewer = undefined;
|
|
244
|
+
this.#model = undefined;
|
|
245
|
+
}
|
|
246
|
+
attributeChangedCallback(name) {
|
|
247
|
+
if (name === 'display-start' || name === 'display-end') {
|
|
248
|
+
// the manager writes the two attributes one after the other, and a
|
|
249
|
+
// zoom between them reports a range that overwrites the second
|
|
250
|
+
if (!this.#rangePending) {
|
|
251
|
+
this.#rangePending = true;
|
|
252
|
+
queueMicrotask(() => {
|
|
253
|
+
this.#rangePending = false;
|
|
254
|
+
this.#followRange();
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
else if (name === 'highlight') {
|
|
259
|
+
this.#followHighlight();
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
this.#viewer?.update(this.#props());
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
customElements.define(tagName, MsaElement);
|
|
267
|
+
return MsaElement;
|
|
268
|
+
}
|
|
269
|
+
//# sourceMappingURL=element.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Annotation } from './types.ts';
|
|
2
|
+
/**
|
|
3
|
+
* The value a feature gives an encoded field: an Annotation property, else one
|
|
4
|
+
* of the GFF attributes the parser kept.
|
|
5
|
+
*/
|
|
6
|
+
export declare function featureField(annotation: Annotation, field: string): string | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* The name a feature answers to in a transform: its GFF `Name` attribute, else
|
|
9
|
+
* the name the parser gave it.
|
|
10
|
+
*/
|
|
11
|
+
export declare function featureName(annotation: Annotation): string | undefined;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The value a feature gives an encoded field: an Annotation property, else one
|
|
3
|
+
* of the GFF attributes the parser kept.
|
|
4
|
+
*/
|
|
5
|
+
export function featureField(annotation, field) {
|
|
6
|
+
const own = annotation[field];
|
|
7
|
+
const value = own ?? annotation.attributes?.[field];
|
|
8
|
+
return typeof value === 'string' ? value : undefined;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The name a feature answers to in a transform: its GFF `Name` attribute, else
|
|
12
|
+
* the name the parser gave it.
|
|
13
|
+
*/
|
|
14
|
+
export function featureName(annotation) {
|
|
15
|
+
return featureField(annotation, 'Name') ?? featureField(annotation, 'name');
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=featureFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"featureFields.js","sourceRoot":"","sources":["../src/featureFields.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,UAAsB,EAAE,KAAa;IAChE,MAAM,GAAG,GAAI,UAAiD,CAAC,KAAK,CAAC,CAAA;IACrE,MAAM,KAAK,GAAG,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAA;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,UAAsB;IAChD,OAAO,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;AAC7E,CAAC"}
|
package/dist/fetchUtils.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ import { fetchAndMaybeUnzipText } from '@jbrowse/core/util';
|
|
|
2
2
|
import type { RpcStatus } from '@jbrowse/core/util';
|
|
3
3
|
export interface FetchStatus {
|
|
4
4
|
msg: string;
|
|
5
|
-
url?: string;
|
|
6
5
|
onCancel?: () => void;
|
|
7
6
|
}
|
|
8
7
|
type Filehandle = Parameters<typeof fetchAndMaybeUnzipText>[0];
|
|
@@ -14,12 +13,13 @@ type ProgressFetcher = (loc: Filehandle, opts: {
|
|
|
14
13
|
* Fetch text from a filehandle while reporting download/unzip progress through
|
|
15
14
|
* setStatus, and wiring a Cancel handler that aborts the underlying request.
|
|
16
15
|
* The status is always cleared once the fetch settles. The fetcher is injectable
|
|
17
|
-
* for testing
|
|
16
|
+
* for testing, and so is the AbortController: a caller that can supersede its
|
|
17
|
+
* own request -- the model's loaders, when the filehandle changes under them --
|
|
18
|
+
* holds one and aborts the download it no longer wants.
|
|
18
19
|
*/
|
|
19
|
-
export declare function fetchTextWithProgress(loc: Filehandle, setStatus: (status?: FetchStatus) => void, fetcher?:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
export declare function timeout(time: number, signal?: AbortSignal): Promise<void>;
|
|
20
|
+
export declare function fetchTextWithProgress(loc: Filehandle, setStatus: (status?: FetchStatus) => void, { fetcher, controller, }?: {
|
|
21
|
+
fetcher?: ProgressFetcher;
|
|
22
|
+
controller?: AbortController;
|
|
23
|
+
}): Promise<string>;
|
|
24
24
|
export declare function isAbortError(e: unknown): boolean;
|
|
25
25
|
export {};
|
package/dist/fetchUtils.js
CHANGED
|
@@ -17,10 +17,11 @@ function statusMessageText(status) {
|
|
|
17
17
|
* Fetch text from a filehandle while reporting download/unzip progress through
|
|
18
18
|
* setStatus, and wiring a Cancel handler that aborts the underlying request.
|
|
19
19
|
* The status is always cleared once the fetch settles. The fetcher is injectable
|
|
20
|
-
* for testing
|
|
20
|
+
* for testing, and so is the AbortController: a caller that can supersede its
|
|
21
|
+
* own request -- the model's loaders, when the filehandle changes under them --
|
|
22
|
+
* holds one and aborts the download it no longer wants.
|
|
21
23
|
*/
|
|
22
|
-
export async function fetchTextWithProgress(loc, setStatus, fetcher = fetchAndMaybeUnzipText) {
|
|
23
|
-
const controller = new AbortController();
|
|
24
|
+
export async function fetchTextWithProgress(loc, setStatus, { fetcher = fetchAndMaybeUnzipText, controller = new AbortController(), } = {}) {
|
|
24
25
|
try {
|
|
25
26
|
return await fetcher(loc, {
|
|
26
27
|
signal: controller.signal,
|
|
@@ -41,35 +42,6 @@ export async function fetchTextWithProgress(loc, setStatus, fetcher = fetchAndMa
|
|
|
41
42
|
setStatus(undefined);
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
|
-
export async function myfetch(url, args) {
|
|
45
|
-
const response = await fetch(url, args);
|
|
46
|
-
if (!response.ok) {
|
|
47
|
-
throw new Error(`HTTP ${response.status} fetching ${url} ${await response.text()}`);
|
|
48
|
-
}
|
|
49
|
-
return response;
|
|
50
|
-
}
|
|
51
|
-
export async function textfetch(url, args) {
|
|
52
|
-
const response = await myfetch(url, args);
|
|
53
|
-
return response.text();
|
|
54
|
-
}
|
|
55
|
-
export async function jsonfetch(url, args) {
|
|
56
|
-
const response = await myfetch(url, args);
|
|
57
|
-
return response.json();
|
|
58
|
-
}
|
|
59
|
-
export function timeout(time, signal) {
|
|
60
|
-
return new Promise((resolve, reject) => {
|
|
61
|
-
if (signal?.aborted) {
|
|
62
|
-
reject(new DOMException('Aborted', 'AbortError'));
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
const id = setTimeout(resolve, time);
|
|
66
|
-
signal?.addEventListener('abort', () => {
|
|
67
|
-
clearTimeout(id);
|
|
68
|
-
reject(new DOMException('Aborted', 'AbortError'));
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
45
|
export function isAbortError(e) {
|
|
74
46
|
return e instanceof DOMException && e.name === 'AbortError';
|
|
75
47
|
}
|
package/dist/fetchUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchUtils.js","sourceRoot":"","sources":["../src/fetchUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAI3D;;;;;;;;;;GAUG;AACH,SAAS,iBAAiB,CAAC,MAA6B;IACtD,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAA;AAC9D,CAAC;
|
|
1
|
+
{"version":3,"file":"fetchUtils.js","sourceRoot":"","sources":["../src/fetchUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAI3D;;;;;;;;;;GAUG;AACH,SAAS,iBAAiB,CAAC,MAA6B;IACtD,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAA;AAC9D,CAAC;AAcD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,GAAe,EACf,SAAyC,EACzC,EACE,OAAO,GAAG,sBAAsB,EAChC,UAAU,GAAG,IAAI,eAAe,EAAE,GACnC,GAAgE,EAAE;IAEnE,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,GAAG,EAAE;YACxB,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,cAAc,EAAE,MAAM,CAAC,EAAE;gBACvB,MAAM,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;gBACrC,SAAS,CACP,GAAG;oBACD,CAAC,CAAC;wBACE,GAAG;wBACH,QAAQ,EAAE,GAAG,EAAE;4BACb,UAAU,CAAC,KAAK,EAAE,CAAA;wBACpB,CAAC;qBACF;oBACH,CAAC,CAAC,SAAS,CACd,CAAA;YACH,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,SAAS,CAAC,CAAA;IACtB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,CAAU;IACrC,OAAO,CAAC,YAAY,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAA;AAC7D,CAAC"}
|
package/dist/flatToTree.js
CHANGED
|
@@ -5,8 +5,7 @@ export function flatToTree(items) {
|
|
|
5
5
|
item.id,
|
|
6
6
|
{
|
|
7
7
|
id: `${item.id}`,
|
|
8
|
-
//
|
|
9
|
-
// node id would render a tree of bare numbers
|
|
8
|
+
// NCBI's tree viewer shows the label
|
|
10
9
|
name: item.label || `${item.id}`,
|
|
11
10
|
...(length !== undefined && Number.isFinite(length)
|
|
12
11
|
? { length }
|
package/dist/flatToTree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flatToTree.js","sourceRoot":"","sources":["../src/flatToTree.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,UAAU,CAAC,KAAiB;IAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtE,OAAO;YACL,IAAI,CAAC,EAAE;YACP;gBACE,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE;gBAChB,
|
|
1
|
+
{"version":3,"file":"flatToTree.js","sourceRoot":"","sources":["../src/flatToTree.ts"],"names":[],"mappings":"AAgBA,MAAM,UAAU,UAAU,CAAC,KAAiB;IAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtE,OAAO;YACL,IAAI,CAAC,EAAE;YACP;gBACE,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE;gBAChB,qCAAqC;gBACrC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE;gBAChC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACjD,CAAC,CAAC,EAAE,MAAM,EAAE;oBACZ,CAAC,CAAC,EAAE,CAAC;gBACP,QAAQ,EAAE,EAAgB;aAC3B;SACF,CAAA;IACH,CAAC,CAAC,CACH,CAAA;IAED,IAAI,IAA0B,CAAA;IAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAE,CAAA;QAClC,MAAM,MAAM,GACV,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAClE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,IAAI,CAAA;QACf,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,2EAA2E;QAC3E,2EAA2E;QAC3E,qEAAqE;QACrE,MAAM,IAAI,KAAK,CACb,sGAAsG,CACvG,CAAA;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
|
package/dist/ggplotPalettes.d.ts
CHANGED
|
@@ -1,2 +1,12 @@
|
|
|
1
1
|
declare const palettes: string[][];
|
|
2
2
|
export default palettes;
|
|
3
|
+
/**
|
|
4
|
+
* Fixed categorical palettes a scale names. `ggplot` is not one of them: it is
|
|
5
|
+
* the ramp above, which picks its colors from the number of keys.
|
|
6
|
+
*/
|
|
7
|
+
export declare const namedPalettes: Record<string, readonly string[]>;
|
|
8
|
+
/**
|
|
9
|
+
* The colors a palette name asks for. `ggplot`, an unknown name, and no name at
|
|
10
|
+
* all give undefined, which `createPaletteMap` answers with the hue ramp.
|
|
11
|
+
*/
|
|
12
|
+
export declare function paletteNamed(name?: string): readonly string[] | undefined;
|
package/dist/ggplotPalettes.js
CHANGED
|
@@ -18,4 +18,62 @@ const palettes = [
|
|
|
18
18
|
],
|
|
19
19
|
];
|
|
20
20
|
export default palettes;
|
|
21
|
+
/**
|
|
22
|
+
* Fixed categorical palettes a scale names. `ggplot` is not one of them: it is
|
|
23
|
+
* the ramp above, which picks its colors from the number of keys.
|
|
24
|
+
*/
|
|
25
|
+
export const namedPalettes = {
|
|
26
|
+
set1: [
|
|
27
|
+
'#e41a1c',
|
|
28
|
+
'#377eb8',
|
|
29
|
+
'#4daf4a',
|
|
30
|
+
'#984ea3',
|
|
31
|
+
'#ff7f00',
|
|
32
|
+
'#ffff33',
|
|
33
|
+
'#a65628',
|
|
34
|
+
'#f781bf',
|
|
35
|
+
'#999999',
|
|
36
|
+
],
|
|
37
|
+
dark2: [
|
|
38
|
+
'#1b9e77',
|
|
39
|
+
'#d95f02',
|
|
40
|
+
'#7570b3',
|
|
41
|
+
'#e7298a',
|
|
42
|
+
'#66a61e',
|
|
43
|
+
'#e6ab02',
|
|
44
|
+
'#a6761d',
|
|
45
|
+
'#666666',
|
|
46
|
+
],
|
|
47
|
+
// Okabe-Ito, which stays distinguishable under the common forms of color
|
|
48
|
+
// blindness
|
|
49
|
+
okabeito: [
|
|
50
|
+
'#e69f00',
|
|
51
|
+
'#56b4e9',
|
|
52
|
+
'#009e73',
|
|
53
|
+
'#f0e442',
|
|
54
|
+
'#0072b2',
|
|
55
|
+
'#d55e00',
|
|
56
|
+
'#cc79a7',
|
|
57
|
+
'#000000',
|
|
58
|
+
],
|
|
59
|
+
tableau: [
|
|
60
|
+
'#4e79a7',
|
|
61
|
+
'#f28e2b',
|
|
62
|
+
'#e15759',
|
|
63
|
+
'#76b7b2',
|
|
64
|
+
'#59a14f',
|
|
65
|
+
'#edc948',
|
|
66
|
+
'#b07aa1',
|
|
67
|
+
'#ff9da7',
|
|
68
|
+
'#9c755f',
|
|
69
|
+
'#bab0ac',
|
|
70
|
+
],
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* The colors a palette name asks for. `ggplot`, an unknown name, and no name at
|
|
74
|
+
* all give undefined, which `createPaletteMap` answers with the hue ramp.
|
|
75
|
+
*/
|
|
76
|
+
export function paletteNamed(name) {
|
|
77
|
+
return name === undefined ? undefined : namedPalettes[name];
|
|
78
|
+
}
|
|
21
79
|
//# sourceMappingURL=ggplotPalettes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ggplotPalettes.js","sourceRoot":"","sources":["../src/ggplotPalettes.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG;IACf,CAAC,SAAS,CAAC;IACX,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IACjC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IAC5C,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IACvD,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IAClE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IAC7E;QACE,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;CACF,CAAA;AAED,eAAe,QAAQ,CAAA"}
|
|
1
|
+
{"version":3,"file":"ggplotPalettes.js","sourceRoot":"","sources":["../src/ggplotPalettes.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG;IACf,CAAC,SAAS,CAAC;IACX,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IACjC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IAC5C,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IACvD,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IAClE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;IAC7E;QACE,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;CACF,CAAA;AAED,eAAe,QAAQ,CAAA;AAEvB;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAsC;IAC9D,IAAI,EAAE;QACJ,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IACD,KAAK,EAAE;QACL,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IACD,yEAAyE;IACzE,YAAY;IACZ,QAAQ,EAAE;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;IACD,OAAO,EAAE;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACV;CACF,CAAA;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAa;IACxC,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;AAC7D,CAAC"}
|
package/dist/hierarchy.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ export interface HierarchyNode<T = NodeWithIds> extends CoreHierarchyNode<T> {
|
|
|
13
13
|
parent: HierarchyNode<T> | null;
|
|
14
14
|
x?: number;
|
|
15
15
|
y?: number;
|
|
16
|
+
xMin?: number;
|
|
17
|
+
xMax?: number;
|
|
16
18
|
len?: number;
|
|
17
19
|
depthToLeaf?: number;
|
|
18
20
|
_children?: HierarchyNode<T>[] | null;
|
|
@@ -27,6 +29,32 @@ export declare function collapsedSubtreeMaxLength<T extends {
|
|
|
27
29
|
length?: number;
|
|
28
30
|
}>(node: HierarchyNode<T>): number;
|
|
29
31
|
export declare function calcDepthToLeaf<T>(node: HierarchyNode<T>): number;
|
|
30
|
-
export declare function findMaxBranchLen(node: HierarchyNode): number;
|
|
31
32
|
export declare function maxLength(d: HierarchyNode): number;
|
|
32
33
|
export declare function setBrLength(d: HierarchyNode, y0: number, k: number): void;
|
|
34
|
+
/**
|
|
35
|
+
* Every leaf by name, with a name two leaves share mapping to undefined: a tip
|
|
36
|
+
* set naming it cannot say which tip it means.
|
|
37
|
+
*/
|
|
38
|
+
export declare function leafIndex<T extends {
|
|
39
|
+
name: string;
|
|
40
|
+
}>(root: HierarchyNode<T>): Map<string, HierarchyNode<T> | undefined>;
|
|
41
|
+
/**
|
|
42
|
+
* The most recent common ancestor of a set of tip names, or undefined when a
|
|
43
|
+
* name is not a tip of this tree or names two of them.
|
|
44
|
+
*
|
|
45
|
+
* Each name lifts through `parent` to the ancestor the names before it share,
|
|
46
|
+
* so the walk holds two nodes. Recording a root-to-tip path per name instead
|
|
47
|
+
* costs the depth in memory per name, and a caterpillar tree's depth is its tip
|
|
48
|
+
* count. `index` is `leafIndex(root)`, which a caller resolving several tip
|
|
49
|
+
* sets against one tree builds once.
|
|
50
|
+
*/
|
|
51
|
+
export declare function mrca<T extends {
|
|
52
|
+
name: string;
|
|
53
|
+
}>(root: HierarchyNode<T>, names: string[], index?: Map<string, HierarchyNode<T> | undefined>): HierarchyNode<T> | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* The deepest node whose subtree covers a run of rows, given in the row-space
|
|
56
|
+
* coordinates clusterLayout writes to xMin/xMax. A subtree's leaves are one
|
|
57
|
+
* contiguous run, so at most one child per level covers the run and the descent
|
|
58
|
+
* visits the tree's depth rather than its nodes.
|
|
59
|
+
*/
|
|
60
|
+
export declare function nodeCoveringRows<T>(root: HierarchyNode<T>, top: number, bottom: number): HierarchyNode<T>;
|