@jbrowse/plugin-linear-genome-view 2.4.2 → 2.6.1
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/dist/BaseLinearDisplay/components/BaseLinearDisplay.d.ts +1 -1
- package/dist/BaseLinearDisplay/components/Block.d.ts +3 -3
- package/dist/BaseLinearDisplay/components/BlockMsg.d.ts +1 -1
- package/dist/BaseLinearDisplay/components/LinearBlocks.d.ts +3 -3
- package/dist/BaseLinearDisplay/components/TooLargeMessage.d.ts +5 -5
- package/dist/BaseLinearDisplay/components/TooLargeMessage.js +7 -3
- package/dist/BaseLinearDisplay/components/TooLargeMessage.js.map +1 -1
- package/dist/BaseLinearDisplay/components/Tooltip.d.ts +2 -2
- package/dist/BaseLinearDisplay/index.d.ts +5 -2
- package/dist/BaseLinearDisplay/index.js +7 -1
- package/dist/BaseLinearDisplay/index.js.map +1 -1
- package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +107 -126
- package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js +37 -352
- package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js.map +1 -1
- package/dist/BaseLinearDisplay/models/FeatureDensityMixin.d.ts +99 -0
- package/dist/BaseLinearDisplay/models/FeatureDensityMixin.js +190 -0
- package/dist/BaseLinearDisplay/models/FeatureDensityMixin.js.map +1 -0
- package/dist/BaseLinearDisplay/models/TrackHeightMixin.d.ts +30 -0
- package/dist/BaseLinearDisplay/models/TrackHeightMixin.js +56 -0
- package/dist/BaseLinearDisplay/models/TrackHeightMixin.js.map +1 -0
- package/dist/BaseLinearDisplay/models/autorunFeatureDensityStats.d.ts +2 -0
- package/dist/BaseLinearDisplay/models/autorunFeatureDensityStats.js +42 -0
- package/dist/BaseLinearDisplay/models/autorunFeatureDensityStats.js.map +1 -0
- package/dist/BaseLinearDisplay/models/configSchema.d.ts +35 -1
- package/dist/BaseLinearDisplay/models/configSchema.js +10 -0
- package/dist/BaseLinearDisplay/models/configSchema.js.map +1 -1
- package/dist/BaseLinearDisplay/models/renderSvg.d.ts +8 -0
- package/dist/BaseLinearDisplay/models/renderSvg.js +83 -0
- package/dist/BaseLinearDisplay/models/renderSvg.js.map +1 -0
- package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js +30 -22
- package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js.map +1 -1
- package/dist/BaseLinearDisplay/models/util.d.ts +6 -2
- package/dist/BaseLinearDisplay/models/util.js +4 -4
- package/dist/BaseLinearDisplay/models/util.js.map +1 -1
- package/dist/BasicTrack/configSchema.d.ts +73 -1
- package/dist/BasicTrack/configSchema.js +1 -0
- package/dist/BasicTrack/configSchema.js.map +1 -1
- package/dist/FeatureTrack/configSchema.d.ts +73 -1
- package/dist/FeatureTrack/configSchema.js +1 -0
- package/dist/FeatureTrack/configSchema.js.map +1 -1
- package/dist/LinearBareDisplay/configSchema.d.ts +29 -1
- package/dist/LinearBareDisplay/configSchema.js +1 -0
- package/dist/LinearBareDisplay/configSchema.js.map +1 -1
- package/dist/LinearBareDisplay/model.d.ts +106 -42
- package/dist/LinearBareDisplay/model.js +3 -2
- package/dist/LinearBareDisplay/model.js.map +1 -1
- package/dist/LinearBasicDisplay/components/SetMaxHeight.d.ts +2 -2
- package/dist/LinearBasicDisplay/configSchema.d.ts +29 -1
- package/dist/LinearBasicDisplay/configSchema.js +1 -9
- package/dist/LinearBasicDisplay/configSchema.js.map +1 -1
- package/dist/LinearBasicDisplay/model.d.ts +124 -62
- package/dist/LinearBasicDisplay/model.js +1 -0
- package/dist/LinearBasicDisplay/model.js.map +1 -1
- package/dist/LinearGenomeView/components/CenterLine.d.ts +2 -2
- package/dist/LinearGenomeView/components/Cytobands.d.ts +24 -24
- package/dist/LinearGenomeView/components/ExportSvgDialog.d.ts +2 -2
- package/dist/LinearGenomeView/components/GetSequenceDialog.d.ts +2 -2
- package/dist/LinearGenomeView/components/GetSequenceDialog.js +14 -16
- package/dist/LinearGenomeView/components/GetSequenceDialog.js.map +1 -1
- package/dist/LinearGenomeView/components/Gridlines.d.ts +2 -2
- package/dist/LinearGenomeView/components/Header.d.ts +2 -2
- package/dist/LinearGenomeView/components/ImportForm.d.ts +2 -2
- package/dist/LinearGenomeView/components/ImportForm.js +4 -7
- package/dist/LinearGenomeView/components/ImportForm.js.map +1 -1
- package/dist/LinearGenomeView/components/LinearGenomeView.d.ts +2 -2
- package/dist/LinearGenomeView/components/LinearGenomeView.js +28 -8
- package/dist/LinearGenomeView/components/LinearGenomeView.js.map +1 -1
- package/dist/LinearGenomeView/components/MiniControls.d.ts +3 -3
- package/dist/LinearGenomeView/components/MiniControls.js +20 -40
- package/dist/LinearGenomeView/components/MiniControls.js.map +1 -1
- package/dist/LinearGenomeView/components/OverviewRubberband.d.ts +1 -1
- package/dist/LinearGenomeView/components/OverviewScalebar.d.ts +2 -2
- package/dist/LinearGenomeView/components/OverviewScalebar.js +12 -5
- package/dist/LinearGenomeView/components/OverviewScalebar.js.map +1 -1
- package/dist/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.d.ts +10 -0
- package/dist/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.js +22 -0
- package/dist/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.js.map +1 -0
- package/dist/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.d.ts +5 -0
- package/dist/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.js +52 -0
- package/dist/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.js.map +1 -0
- package/dist/LinearGenomeView/components/{HelpDialog.d.ts → RefNameAutocomplete/HelpDialog.d.ts} +2 -2
- package/dist/LinearGenomeView/components/RefNameAutocomplete/HelpDialog.js.map +1 -0
- package/dist/LinearGenomeView/components/RefNameAutocomplete/index.d.ts +18 -0
- package/dist/LinearGenomeView/components/RefNameAutocomplete/index.js +111 -0
- package/dist/LinearGenomeView/components/RefNameAutocomplete/index.js.map +1 -0
- package/dist/LinearGenomeView/components/RefNameAutocomplete/util.d.ts +12 -0
- package/dist/LinearGenomeView/components/RefNameAutocomplete/util.js +59 -0
- package/dist/LinearGenomeView/components/RefNameAutocomplete/util.js.map +1 -0
- package/dist/LinearGenomeView/components/Rubberband.d.ts +1 -1
- package/dist/LinearGenomeView/components/RubberbandSpan.d.ts +2 -2
- package/dist/LinearGenomeView/components/SearchBox.d.ts +2 -2
- package/dist/LinearGenomeView/components/SearchResultsDialog.d.ts +7 -4
- package/dist/LinearGenomeView/components/SearchResultsDialog.js +6 -82
- package/dist/LinearGenomeView/components/SearchResultsDialog.js.map +1 -1
- package/dist/LinearGenomeView/components/SearchResultsTable.d.ts +9 -0
- package/dist/LinearGenomeView/components/SearchResultsTable.js +83 -0
- package/dist/LinearGenomeView/components/SearchResultsTable.js.map +1 -0
- package/dist/LinearGenomeView/components/SequenceSearchDialog.d.ts +2 -2
- package/dist/LinearGenomeView/components/TrackContainer.d.ts +3 -4
- package/dist/LinearGenomeView/components/TrackContainer.js +17 -67
- package/dist/LinearGenomeView/components/TrackContainer.js.map +1 -1
- package/dist/LinearGenomeView/components/TrackLabel.js +6 -10
- package/dist/LinearGenomeView/components/TrackLabel.js.map +1 -1
- package/dist/LinearGenomeView/components/TrackLabelContainer.d.ts +9 -0
- package/dist/LinearGenomeView/components/TrackLabelContainer.js +32 -0
- package/dist/LinearGenomeView/components/TrackLabelContainer.js.map +1 -0
- package/dist/LinearGenomeView/components/TrackRenderingContainer.d.ts +10 -0
- package/dist/LinearGenomeView/components/TrackRenderingContainer.js +74 -0
- package/dist/LinearGenomeView/components/TrackRenderingContainer.js.map +1 -0
- package/dist/LinearGenomeView/components/TracksContainer.d.ts +1 -1
- package/dist/LinearGenomeView/components/TracksContainer.js +5 -7
- package/dist/LinearGenomeView/components/TracksContainer.js.map +1 -1
- package/dist/LinearGenomeView/components/VerticalGuide.d.ts +2 -2
- package/dist/LinearGenomeView/components/ZoomControls.d.ts +2 -2
- package/dist/LinearGenomeView/components/util.js +1 -1
- package/dist/LinearGenomeView/components/util.js.map +1 -1
- package/dist/LinearGenomeView/model.d.ts +51 -37
- package/dist/LinearGenomeView/model.js +132 -209
- package/dist/LinearGenomeView/model.js.map +1 -1
- package/dist/LinearGenomeView/svgcomponents/SVGBackground.d.ts +2 -2
- package/dist/LinearGenomeView/svgcomponents/SVGHeader.d.ts +3 -5
- package/dist/LinearGenomeView/svgcomponents/SVGHeader.js +7 -2
- package/dist/LinearGenomeView/svgcomponents/SVGHeader.js.map +1 -1
- package/dist/LinearGenomeView/svgcomponents/SVGLinearGenomeView.js +1 -1
- package/dist/LinearGenomeView/svgcomponents/SVGLinearGenomeView.js.map +1 -1
- package/dist/LinearGenomeView/svgcomponents/SVGRegionSeparators.d.ts +2 -2
- package/dist/LinearGenomeView/svgcomponents/SVGRuler.d.ts +2 -2
- package/dist/LinearGenomeView/svgcomponents/SVGScalebar.d.ts +2 -2
- package/dist/LinearGenomeView/svgcomponents/SVGTrackLabel.d.ts +2 -2
- package/dist/LinearGenomeView/svgcomponents/SVGTracks.d.ts +2 -2
- package/dist/LinearGenomeView/util.d.ts +29 -0
- package/dist/LinearGenomeView/util.js +79 -1
- package/dist/LinearGenomeView/util.js.map +1 -1
- package/dist/index.d.ts +325 -180
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/esm/BaseLinearDisplay/components/BaseLinearDisplay.d.ts +1 -1
- package/esm/BaseLinearDisplay/components/Block.d.ts +3 -3
- package/esm/BaseLinearDisplay/components/BlockMsg.d.ts +1 -1
- package/esm/BaseLinearDisplay/components/LinearBlocks.d.ts +3 -3
- package/esm/BaseLinearDisplay/components/TooLargeMessage.d.ts +5 -5
- package/esm/BaseLinearDisplay/components/TooLargeMessage.js +7 -3
- package/esm/BaseLinearDisplay/components/TooLargeMessage.js.map +1 -1
- package/esm/BaseLinearDisplay/components/Tooltip.d.ts +2 -2
- package/esm/BaseLinearDisplay/index.d.ts +5 -2
- package/esm/BaseLinearDisplay/index.js +3 -0
- package/esm/BaseLinearDisplay/index.js.map +1 -1
- package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +107 -126
- package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.js +39 -331
- package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.js.map +1 -1
- package/esm/BaseLinearDisplay/models/FeatureDensityMixin.d.ts +99 -0
- package/esm/BaseLinearDisplay/models/FeatureDensityMixin.js +184 -0
- package/esm/BaseLinearDisplay/models/FeatureDensityMixin.js.map +1 -0
- package/esm/BaseLinearDisplay/models/TrackHeightMixin.d.ts +30 -0
- package/esm/BaseLinearDisplay/models/TrackHeightMixin.js +53 -0
- package/esm/BaseLinearDisplay/models/TrackHeightMixin.js.map +1 -0
- package/esm/BaseLinearDisplay/models/autorunFeatureDensityStats.d.ts +2 -0
- package/esm/BaseLinearDisplay/models/autorunFeatureDensityStats.js +39 -0
- package/esm/BaseLinearDisplay/models/autorunFeatureDensityStats.js.map +1 -0
- package/esm/BaseLinearDisplay/models/configSchema.d.ts +35 -1
- package/esm/BaseLinearDisplay/models/configSchema.js +10 -0
- package/esm/BaseLinearDisplay/models/configSchema.js.map +1 -1
- package/esm/BaseLinearDisplay/models/renderSvg.d.ts +8 -0
- package/esm/BaseLinearDisplay/models/renderSvg.js +54 -0
- package/esm/BaseLinearDisplay/models/renderSvg.js.map +1 -0
- package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.js +30 -22
- package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.js.map +1 -1
- package/esm/BaseLinearDisplay/models/util.d.ts +6 -2
- package/esm/BaseLinearDisplay/models/util.js +2 -2
- package/esm/BaseLinearDisplay/models/util.js.map +1 -1
- package/esm/BasicTrack/configSchema.d.ts +73 -1
- package/esm/BasicTrack/configSchema.js +1 -0
- package/esm/BasicTrack/configSchema.js.map +1 -1
- package/esm/FeatureTrack/configSchema.d.ts +73 -1
- package/esm/FeatureTrack/configSchema.js +1 -0
- package/esm/FeatureTrack/configSchema.js.map +1 -1
- package/esm/LinearBareDisplay/configSchema.d.ts +29 -1
- package/esm/LinearBareDisplay/configSchema.js +1 -0
- package/esm/LinearBareDisplay/configSchema.js.map +1 -1
- package/esm/LinearBareDisplay/model.d.ts +106 -42
- package/esm/LinearBareDisplay/model.js +2 -1
- package/esm/LinearBareDisplay/model.js.map +1 -1
- package/esm/LinearBasicDisplay/components/SetMaxHeight.d.ts +2 -2
- package/esm/LinearBasicDisplay/configSchema.d.ts +29 -1
- package/esm/LinearBasicDisplay/configSchema.js +1 -9
- package/esm/LinearBasicDisplay/configSchema.js.map +1 -1
- package/esm/LinearBasicDisplay/model.d.ts +124 -62
- package/esm/LinearBasicDisplay/model.js +1 -0
- package/esm/LinearBasicDisplay/model.js.map +1 -1
- package/esm/LinearGenomeView/components/CenterLine.d.ts +2 -2
- package/esm/LinearGenomeView/components/Cytobands.d.ts +24 -24
- package/esm/LinearGenomeView/components/ExportSvgDialog.d.ts +2 -2
- package/esm/LinearGenomeView/components/GetSequenceDialog.d.ts +2 -2
- package/esm/LinearGenomeView/components/GetSequenceDialog.js +15 -17
- package/esm/LinearGenomeView/components/GetSequenceDialog.js.map +1 -1
- package/esm/LinearGenomeView/components/Gridlines.d.ts +2 -2
- package/esm/LinearGenomeView/components/Header.d.ts +2 -2
- package/esm/LinearGenomeView/components/ImportForm.d.ts +2 -2
- package/esm/LinearGenomeView/components/ImportForm.js +5 -8
- package/esm/LinearGenomeView/components/ImportForm.js.map +1 -1
- package/esm/LinearGenomeView/components/LinearGenomeView.d.ts +2 -2
- package/esm/LinearGenomeView/components/LinearGenomeView.js +4 -7
- package/esm/LinearGenomeView/components/LinearGenomeView.js.map +1 -1
- package/esm/LinearGenomeView/components/MiniControls.d.ts +3 -3
- package/esm/LinearGenomeView/components/MiniControls.js +20 -17
- package/esm/LinearGenomeView/components/MiniControls.js.map +1 -1
- package/esm/LinearGenomeView/components/OverviewRubberband.d.ts +1 -1
- package/esm/LinearGenomeView/components/OverviewScalebar.d.ts +2 -2
- package/esm/LinearGenomeView/components/OverviewScalebar.js +12 -5
- package/esm/LinearGenomeView/components/OverviewScalebar.js.map +1 -1
- package/esm/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.d.ts +10 -0
- package/esm/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.js +16 -0
- package/esm/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.js.map +1 -0
- package/esm/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.d.ts +5 -0
- package/esm/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.js +23 -0
- package/esm/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.js.map +1 -0
- package/esm/LinearGenomeView/components/{HelpDialog.d.ts → RefNameAutocomplete/HelpDialog.d.ts} +2 -2
- package/esm/LinearGenomeView/components/RefNameAutocomplete/HelpDialog.js.map +1 -0
- package/esm/LinearGenomeView/components/RefNameAutocomplete/index.d.ts +18 -0
- package/esm/LinearGenomeView/components/RefNameAutocomplete/index.js +83 -0
- package/esm/LinearGenomeView/components/RefNameAutocomplete/index.js.map +1 -0
- package/esm/LinearGenomeView/components/RefNameAutocomplete/util.d.ts +12 -0
- package/esm/LinearGenomeView/components/RefNameAutocomplete/util.js +50 -0
- package/esm/LinearGenomeView/components/RefNameAutocomplete/util.js.map +1 -0
- package/esm/LinearGenomeView/components/Rubberband.d.ts +1 -1
- package/esm/LinearGenomeView/components/RubberbandSpan.d.ts +2 -2
- package/esm/LinearGenomeView/components/SearchBox.d.ts +2 -2
- package/esm/LinearGenomeView/components/SearchResultsDialog.d.ts +7 -4
- package/esm/LinearGenomeView/components/SearchResultsDialog.js +7 -83
- package/esm/LinearGenomeView/components/SearchResultsDialog.js.map +1 -1
- package/esm/LinearGenomeView/components/SearchResultsTable.d.ts +9 -0
- package/esm/LinearGenomeView/components/SearchResultsTable.js +77 -0
- package/esm/LinearGenomeView/components/SearchResultsTable.js.map +1 -0
- package/esm/LinearGenomeView/components/SequenceSearchDialog.d.ts +2 -2
- package/esm/LinearGenomeView/components/TrackContainer.d.ts +3 -4
- package/esm/LinearGenomeView/components/TrackContainer.js +18 -68
- package/esm/LinearGenomeView/components/TrackContainer.js.map +1 -1
- package/esm/LinearGenomeView/components/TrackLabel.js +6 -10
- package/esm/LinearGenomeView/components/TrackLabel.js.map +1 -1
- package/esm/LinearGenomeView/components/TrackLabelContainer.d.ts +9 -0
- package/esm/LinearGenomeView/components/TrackLabelContainer.js +27 -0
- package/esm/LinearGenomeView/components/TrackLabelContainer.js.map +1 -0
- package/esm/LinearGenomeView/components/TrackRenderingContainer.d.ts +10 -0
- package/esm/LinearGenomeView/components/TrackRenderingContainer.js +49 -0
- package/esm/LinearGenomeView/components/TrackRenderingContainer.js.map +1 -0
- package/esm/LinearGenomeView/components/TracksContainer.d.ts +1 -1
- package/esm/LinearGenomeView/components/TracksContainer.js +5 -7
- package/esm/LinearGenomeView/components/TracksContainer.js.map +1 -1
- package/esm/LinearGenomeView/components/VerticalGuide.d.ts +2 -2
- package/esm/LinearGenomeView/components/ZoomControls.d.ts +2 -2
- package/esm/LinearGenomeView/components/util.js +1 -1
- package/esm/LinearGenomeView/components/util.js.map +1 -1
- package/esm/LinearGenomeView/model.d.ts +51 -37
- package/esm/LinearGenomeView/model.js +129 -206
- package/esm/LinearGenomeView/model.js.map +1 -1
- package/esm/LinearGenomeView/svgcomponents/SVGBackground.d.ts +2 -2
- package/esm/LinearGenomeView/svgcomponents/SVGHeader.d.ts +3 -5
- package/esm/LinearGenomeView/svgcomponents/SVGHeader.js +7 -2
- package/esm/LinearGenomeView/svgcomponents/SVGHeader.js.map +1 -1
- package/esm/LinearGenomeView/svgcomponents/SVGLinearGenomeView.js +1 -1
- package/esm/LinearGenomeView/svgcomponents/SVGLinearGenomeView.js.map +1 -1
- package/esm/LinearGenomeView/svgcomponents/SVGRegionSeparators.d.ts +2 -2
- package/esm/LinearGenomeView/svgcomponents/SVGRuler.d.ts +2 -2
- package/esm/LinearGenomeView/svgcomponents/SVGScalebar.d.ts +2 -2
- package/esm/LinearGenomeView/svgcomponents/SVGTrackLabel.d.ts +2 -2
- package/esm/LinearGenomeView/svgcomponents/SVGTracks.d.ts +2 -2
- package/esm/LinearGenomeView/util.d.ts +29 -0
- package/esm/LinearGenomeView/util.js +76 -0
- package/esm/LinearGenomeView/util.js.map +1 -1
- package/esm/index.d.ts +325 -180
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/package.json +3 -3
- package/src/BaseLinearDisplay/components/TooLargeMessage.tsx +10 -6
- package/src/BaseLinearDisplay/index.ts +5 -1
- package/src/BaseLinearDisplay/models/BaseLinearDisplayModel.tsx +50 -401
- package/src/BaseLinearDisplay/models/FeatureDensityMixin.tsx +213 -0
- package/src/BaseLinearDisplay/models/TrackHeightMixin.tsx +59 -0
- package/src/BaseLinearDisplay/models/autorunFeatureDensityStats.ts +46 -0
- package/src/BaseLinearDisplay/models/configSchema.ts +11 -0
- package/src/BaseLinearDisplay/models/renderSvg.tsx +101 -0
- package/src/BaseLinearDisplay/models/serverSideRenderedBlock.ts +40 -32
- package/src/BaseLinearDisplay/models/util.ts +10 -4
- package/src/BasicTrack/configSchema.ts +1 -0
- package/src/FeatureTrack/configSchema.ts +1 -0
- package/src/LinearBareDisplay/configSchema.ts +1 -0
- package/src/LinearBareDisplay/model.ts +2 -1
- package/src/LinearBasicDisplay/configSchema.ts +1 -10
- package/src/LinearBasicDisplay/model.ts +1 -0
- package/src/LinearGenomeView/components/GetSequenceDialog.tsx +15 -25
- package/src/LinearGenomeView/components/ImportForm.tsx +4 -14
- package/src/LinearGenomeView/components/LinearGenomeView.test.tsx +3 -3
- package/src/LinearGenomeView/components/LinearGenomeView.tsx +6 -17
- package/src/LinearGenomeView/components/MiniControls.tsx +37 -38
- package/src/LinearGenomeView/components/OverviewScalebar.tsx +13 -6
- package/src/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.tsx +53 -0
- package/src/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.tsx +44 -0
- package/src/LinearGenomeView/components/RefNameAutocomplete/index.tsx +160 -0
- package/src/LinearGenomeView/components/RefNameAutocomplete/util.ts +65 -0
- package/src/LinearGenomeView/components/SearchResultsDialog.tsx +17 -112
- package/src/LinearGenomeView/components/SearchResultsTable.tsx +121 -0
- package/src/LinearGenomeView/components/TrackContainer.tsx +25 -104
- package/src/LinearGenomeView/components/TrackLabel.tsx +7 -27
- package/src/LinearGenomeView/components/TrackLabelContainer.tsx +48 -0
- package/src/LinearGenomeView/components/TrackRenderingContainer.tsx +96 -0
- package/src/LinearGenomeView/components/TracksContainer.tsx +9 -6
- package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.tsx.snap +14 -14
- package/src/LinearGenomeView/components/util.ts +2 -1
- package/src/LinearGenomeView/index.test.ts +10 -12
- package/src/LinearGenomeView/model.ts +175 -247
- package/src/LinearGenomeView/svgcomponents/SVGHeader.tsx +8 -6
- package/src/LinearGenomeView/svgcomponents/SVGLinearGenomeView.tsx +1 -1
- package/src/LinearGenomeView/util.ts +98 -0
- package/src/index.ts +11 -5
- package/dist/LinearGenomeView/components/HelpDialog.js.map +0 -1
- package/dist/LinearGenomeView/components/RefNameAutocomplete.d.ts +0 -23
- package/dist/LinearGenomeView/components/RefNameAutocomplete.js +0 -182
- package/dist/LinearGenomeView/components/RefNameAutocomplete.js.map +0 -1
- package/esm/LinearGenomeView/components/HelpDialog.js.map +0 -1
- package/esm/LinearGenomeView/components/RefNameAutocomplete.d.ts +0 -23
- package/esm/LinearGenomeView/components/RefNameAutocomplete.js +0 -154
- package/esm/LinearGenomeView/components/RefNameAutocomplete.js.map +0 -1
- package/src/LinearGenomeView/components/RefNameAutocomplete.tsx +0 -279
- /package/dist/LinearGenomeView/components/{HelpDialog.js → RefNameAutocomplete/HelpDialog.js} +0 -0
- /package/esm/LinearGenomeView/components/{HelpDialog.js → RefNameAutocomplete/HelpDialog.js} +0 -0
- /package/src/LinearGenomeView/components/{HelpDialog.tsx → RefNameAutocomplete/HelpDialog.tsx} +0 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
const react_1 = __importStar(require("react"));
|
|
30
|
+
const mobx_react_1 = require("mobx-react");
|
|
31
|
+
const util_1 = require("@jbrowse/core/util");
|
|
32
|
+
const BaseResults_1 = __importStar(require("@jbrowse/core/TextSearch/BaseResults"));
|
|
33
|
+
const material_1 = require("@mui/material");
|
|
34
|
+
const util_2 = require("./util");
|
|
35
|
+
const AutocompleteTextField_1 = __importDefault(require("./AutocompleteTextField"));
|
|
36
|
+
exports.default = (0, mobx_react_1.observer)(function RefNameAutocomplete({ model, onSelect, assemblyName, style, fetchResults, onChange, value, showHelp = true, minWidth = 200, maxWidth = 550, TextFieldProps = {}, }) {
|
|
37
|
+
var _a;
|
|
38
|
+
const session = (0, util_1.getSession)(model);
|
|
39
|
+
const { assemblyManager } = session;
|
|
40
|
+
const [open, setOpen] = (0, react_1.useState)(false);
|
|
41
|
+
const [loaded, setLoaded] = (0, react_1.useState)(true);
|
|
42
|
+
const [currentSearch, setCurrentSearch] = (0, react_1.useState)('');
|
|
43
|
+
const [inputValue, setInputValue] = (0, react_1.useState)('');
|
|
44
|
+
const [searchOptions, setSearchOptions] = (0, react_1.useState)();
|
|
45
|
+
const debouncedSearch = (0, util_1.useDebounce)(currentSearch, 300);
|
|
46
|
+
const assembly = assemblyName ? assemblyManager.get(assemblyName) : undefined;
|
|
47
|
+
const { coarseVisibleLocStrings, hasDisplayedRegions } = model;
|
|
48
|
+
(0, react_1.useEffect)(() => {
|
|
49
|
+
let active = true;
|
|
50
|
+
(async () => {
|
|
51
|
+
try {
|
|
52
|
+
if (debouncedSearch === '' || !assemblyName) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
setLoaded(false);
|
|
56
|
+
const results = await fetchResults(debouncedSearch);
|
|
57
|
+
if (active) {
|
|
58
|
+
setLoaded(true);
|
|
59
|
+
setSearchOptions((0, util_2.getDeduplicatedResult)(results));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
console.error(e);
|
|
64
|
+
if (active) {
|
|
65
|
+
session.notify(`${e}`, 'error');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
})();
|
|
69
|
+
return () => {
|
|
70
|
+
active = false;
|
|
71
|
+
};
|
|
72
|
+
}, [assemblyName, fetchResults, debouncedSearch, session, model]);
|
|
73
|
+
const inputBoxVal = coarseVisibleLocStrings || value || '';
|
|
74
|
+
// heuristic, text width + 60 accommodates help icon and search icon
|
|
75
|
+
const width = Math.min(Math.max((0, util_1.measureText)(inputBoxVal, 14) + 100, minWidth), maxWidth);
|
|
76
|
+
// notes on implementation:
|
|
77
|
+
// The selectOnFocus setting helps highlight the field when clicked
|
|
78
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
79
|
+
react_1.default.createElement(material_1.Autocomplete, { "data-testid": "autocomplete", disableListWrap: true, disableClearable: true, disabled: !assemblyName, freeSolo: true, includeInputInList: true, selectOnFocus: true, style: { ...style, width }, value: inputBoxVal, loading: !loaded, inputValue: inputValue, onInputChange: (_event, newInputValue) => {
|
|
80
|
+
setInputValue(newInputValue);
|
|
81
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(newInputValue);
|
|
82
|
+
}, loadingText: "loading results", open: open, onOpen: () => setOpen(true), onClose: () => {
|
|
83
|
+
setOpen(false);
|
|
84
|
+
setLoaded(true);
|
|
85
|
+
if (hasDisplayedRegions) {
|
|
86
|
+
setCurrentSearch('');
|
|
87
|
+
setSearchOptions(undefined);
|
|
88
|
+
}
|
|
89
|
+
}, onChange: (_event, selectedOption) => {
|
|
90
|
+
if (!selectedOption || !assemblyName) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (typeof selectedOption === 'string') {
|
|
94
|
+
// handles string inputs on keyPress enter
|
|
95
|
+
onSelect === null || onSelect === void 0 ? void 0 : onSelect(new BaseResults_1.default({ label: selectedOption }));
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectedOption.result);
|
|
99
|
+
}
|
|
100
|
+
setInputValue(inputBoxVal);
|
|
101
|
+
}, options: !(searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.length)
|
|
102
|
+
? ((_a = assembly === null || assembly === void 0 ? void 0 : assembly.regions) === null || _a === void 0 ? void 0 : _a.map(option => ({
|
|
103
|
+
result: new BaseResults_1.RefSequenceResult({
|
|
104
|
+
refName: option.refName,
|
|
105
|
+
label: option.refName,
|
|
106
|
+
matchedAttribute: 'refName',
|
|
107
|
+
}),
|
|
108
|
+
}))) || []
|
|
109
|
+
: searchOptions, getOptionDisabled: option => option.group === 'limitOption', filterOptions: (opts, { inputValue }) => (0, util_2.getFiltered)(opts, inputValue), renderInput: params => (react_1.default.createElement(AutocompleteTextField_1.default, { showHelp: showHelp, params: params, inputBoxVal: inputBoxVal, TextFieldProps: TextFieldProps, setCurrentSearch: setCurrentSearch, setInputValue: setInputValue })), getOptionLabel: opt => typeof opt === 'string' ? opt : opt.result.getDisplayString() })));
|
|
110
|
+
});
|
|
111
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/LinearGenomeView/components/RefNameAutocomplete/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import BaseResult from '@jbrowse/core/TextSearch/BaseResults';
|
|
2
|
+
export interface Option {
|
|
3
|
+
group?: string;
|
|
4
|
+
result: BaseResult;
|
|
5
|
+
}
|
|
6
|
+
export declare function getFiltered(opts: Option[], inputValue: string): Option[];
|
|
7
|
+
export declare function aggregateResults(results: BaseResult[]): {
|
|
8
|
+
[key: string]: BaseResult[];
|
|
9
|
+
};
|
|
10
|
+
export declare function getDeduplicatedResult(results: BaseResult[]): {
|
|
11
|
+
result: BaseResult;
|
|
12
|
+
}[];
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getDeduplicatedResult = exports.aggregateResults = exports.getFiltered = void 0;
|
|
7
|
+
const BaseResults_1 = __importDefault(require("@jbrowse/core/TextSearch/BaseResults"));
|
|
8
|
+
// filter so don't need re-filtering
|
|
9
|
+
function filterOptions(options, searchQuery) {
|
|
10
|
+
return options.filter(({ result }) => result.getLabel().toLowerCase().includes(searchQuery) ||
|
|
11
|
+
result.matchedObject);
|
|
12
|
+
}
|
|
13
|
+
// the logic of this method is to only apply a filter to RefSequenceResults
|
|
14
|
+
// because they do not have a matchedObject. the trix search results already
|
|
15
|
+
function getFiltered(opts, inputValue) {
|
|
16
|
+
const filtered = filterOptions(opts, inputValue.toLocaleLowerCase());
|
|
17
|
+
return [
|
|
18
|
+
...filtered.slice(0, 100),
|
|
19
|
+
...(filtered.length > 100
|
|
20
|
+
? [
|
|
21
|
+
{
|
|
22
|
+
group: 'limitOption',
|
|
23
|
+
result: new BaseResults_1.default({
|
|
24
|
+
label: 'keep typing for more results',
|
|
25
|
+
}),
|
|
26
|
+
},
|
|
27
|
+
]
|
|
28
|
+
: []),
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
exports.getFiltered = getFiltered;
|
|
32
|
+
function aggregateResults(results) {
|
|
33
|
+
const m = {};
|
|
34
|
+
for (const result of results) {
|
|
35
|
+
const displayString = result.getDisplayString();
|
|
36
|
+
if (!m[displayString]) {
|
|
37
|
+
m[displayString] = [];
|
|
38
|
+
}
|
|
39
|
+
m[displayString].push(result);
|
|
40
|
+
}
|
|
41
|
+
return m;
|
|
42
|
+
}
|
|
43
|
+
exports.aggregateResults = aggregateResults;
|
|
44
|
+
function getDeduplicatedResult(results) {
|
|
45
|
+
return Object.entries(aggregateResults(results)).map(([displayString, results]) => results.length === 1
|
|
46
|
+
? {
|
|
47
|
+
result: results[0],
|
|
48
|
+
}
|
|
49
|
+
: {
|
|
50
|
+
// deduplicate a "multi-result"
|
|
51
|
+
result: new BaseResults_1.default({
|
|
52
|
+
displayString,
|
|
53
|
+
results,
|
|
54
|
+
label: displayString,
|
|
55
|
+
}),
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
exports.getDeduplicatedResult = getDeduplicatedResult;
|
|
59
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../src/LinearGenomeView/components/RefNameAutocomplete/util.ts"],"names":[],"mappings":";;;;;;AAAA,uFAA6D;AAO7D,oCAAoC;AACpC,SAAS,aAAa,CAAC,OAAiB,EAAE,WAAmB;IAC3D,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CACb,MAAM,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;QACrD,MAAM,CAAC,aAAa,CACvB,CAAA;AACH,CAAC;AAED,2EAA2E;AAC3E,4EAA4E;AAC5E,SAAgB,WAAW,CAAC,IAAc,EAAE,UAAkB;IAC5D,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAA;IACpE,OAAO;QACL,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;QACzB,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG;YACvB,CAAC,CAAC;gBACE;oBACE,KAAK,EAAE,aAAa;oBACpB,MAAM,EAAE,IAAI,qBAAU,CAAC;wBACrB,KAAK,EAAE,8BAA8B;qBACtC,CAAC;iBACH;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAA;AACH,CAAC;AAfD,kCAeC;AAED,SAAgB,gBAAgB,CAAC,OAAqB;IACpD,MAAM,CAAC,GAAoC,EAAE,CAAA;IAE7C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAA;QAC/C,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE;YACrB,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,CAAA;SACtB;QACD,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;KAC9B;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAXD,4CAWC;AAED,SAAgB,qBAAqB,CAAC,OAAqB;IACzD,OAAO,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAClD,CAAC,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,EAAE,CAC3B,OAAO,CAAC,MAAM,KAAK,CAAC;QAClB,CAAC,CAAC;YACE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;SACnB;QACH,CAAC,CAAC;YACE,+BAA+B;YAC/B,MAAM,EAAE,IAAI,qBAAU,CAAC;gBACrB,aAAa;gBACb,OAAO;gBACP,KAAK,EAAE,aAAa;aACrB,CAAC;SACH,CACR,CAAA;AACH,CAAC;AAhBD,sDAgBC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
interface Offset {
|
|
3
3
|
coord: number;
|
|
4
4
|
refName?: string;
|
|
@@ -10,5 +10,5 @@ export default function RubberbandSpan({ leftBpOffset, rightBpOffset, numOfBpSel
|
|
|
10
10
|
numOfBpSelected?: number;
|
|
11
11
|
left: number;
|
|
12
12
|
width: number;
|
|
13
|
-
}): JSX.Element;
|
|
13
|
+
}): React.JSX.Element;
|
|
14
14
|
export {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { LinearGenomeViewModel } from '..';
|
|
3
3
|
declare function SearchBox({ model, showHelp, }: {
|
|
4
4
|
showHelp?: boolean;
|
|
5
5
|
model: LinearGenomeViewModel;
|
|
6
|
-
}): JSX.Element;
|
|
6
|
+
}): React.JSX.Element;
|
|
7
7
|
declare const _default: typeof SearchBox;
|
|
8
8
|
export default _default;
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { LinearGenomeViewModel } from '../..';
|
|
3
|
-
|
|
3
|
+
import BaseResult from '@jbrowse/core/TextSearch/BaseResults';
|
|
4
|
+
export default function SearchResultsDialog({ model, assemblyName, searchQuery, searchResults, handleClose, }: {
|
|
4
5
|
model: LinearGenomeViewModel;
|
|
5
|
-
|
|
6
|
+
assemblyName?: string;
|
|
7
|
+
searchQuery: string;
|
|
8
|
+
searchResults?: BaseResult[];
|
|
6
9
|
handleClose: () => void;
|
|
7
|
-
}): JSX.Element;
|
|
10
|
+
}): React.JSX.Element;
|
|
@@ -4,94 +4,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
7
|
-
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
8
|
-
const util_1 = require("@jbrowse/core/util");
|
|
9
7
|
const ui_1 = require("@jbrowse/core/ui");
|
|
10
8
|
const material_1 = require("@mui/material");
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const session = (0, util_1.getSession)(model);
|
|
14
|
-
const { pluginManager } = (0, util_1.getEnv)(session);
|
|
15
|
-
const { assemblyManager } = session;
|
|
16
|
-
let assemblyName = optAssemblyName;
|
|
17
|
-
if (model.displayedRegions.length > 0) {
|
|
18
|
-
assemblyName = (_a = model.displayedRegions[0]) === null || _a === void 0 ? void 0 : _a.assemblyName;
|
|
19
|
-
}
|
|
20
|
-
if (!assemblyName) {
|
|
21
|
-
throw new Error(`Assembly name not found`);
|
|
22
|
-
}
|
|
23
|
-
const assembly = assemblyManager.get(assemblyName);
|
|
24
|
-
if (!assembly) {
|
|
25
|
-
throw new Error(`assembly ${assemblyName} not found`);
|
|
26
|
-
}
|
|
27
|
-
if (!assembly.regions) {
|
|
28
|
-
throw new Error(`assembly ${assemblyName} regions not loaded`);
|
|
29
|
-
}
|
|
30
|
-
const assemblyRegions = assembly.regions;
|
|
31
|
-
async function handleClick(location) {
|
|
32
|
-
try {
|
|
33
|
-
const newRegion = assemblyRegions.find(region => location === region.refName);
|
|
34
|
-
if (newRegion) {
|
|
35
|
-
model.setDisplayedRegions([newRegion]);
|
|
36
|
-
// we use showAllRegions after setDisplayedRegions to make the entire
|
|
37
|
-
// region visible, xref #1703
|
|
38
|
-
model.showAllRegions();
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
await model.navToLocString(location, assemblyName);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
catch (e) {
|
|
45
|
-
console.warn(e);
|
|
46
|
-
session.notify(`${e}`, 'warning');
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
function getTrackName(trackId) {
|
|
50
|
-
var _a;
|
|
51
|
-
if (trackId) {
|
|
52
|
-
const schema = pluginManager.pluggableConfigSchemaType('track');
|
|
53
|
-
const configuration = (0, mobx_state_tree_1.resolveIdentifier)(schema, (0, mobx_state_tree_1.getRoot)(model), trackId);
|
|
54
|
-
return ((_a = configuration === null || configuration === void 0 ? void 0 : configuration.name) === null || _a === void 0 ? void 0 : _a.value) || '';
|
|
55
|
-
}
|
|
56
|
-
return '';
|
|
57
|
-
}
|
|
9
|
+
const SearchResultsTable_1 = __importDefault(require("./SearchResultsTable"));
|
|
10
|
+
function SearchResultsDialog({ model, assemblyName, searchQuery, searchResults, handleClose, }) {
|
|
58
11
|
return (react_1.default.createElement(ui_1.Dialog, { open: true, maxWidth: "xl", onClose: handleClose, title: "Search results" },
|
|
59
|
-
react_1.default.createElement(material_1.DialogContent, null, !(
|
|
12
|
+
react_1.default.createElement(material_1.DialogContent, null, !(searchResults === null || searchResults === void 0 ? void 0 : searchResults.length) ? (react_1.default.createElement(material_1.Typography, null,
|
|
60
13
|
"No results found for ",
|
|
61
|
-
react_1.default.createElement("b", null,
|
|
14
|
+
react_1.default.createElement("b", null, searchQuery))) : (react_1.default.createElement(react_1.default.Fragment, null,
|
|
62
15
|
react_1.default.createElement(material_1.Typography, null,
|
|
63
16
|
"Showing results for ",
|
|
64
|
-
react_1.default.createElement("b", null,
|
|
65
|
-
react_1.default.createElement(
|
|
66
|
-
react_1.default.createElement(material_1.Table, null,
|
|
67
|
-
react_1.default.createElement(material_1.TableHead, null,
|
|
68
|
-
react_1.default.createElement(material_1.TableRow, null,
|
|
69
|
-
react_1.default.createElement(material_1.TableCell, null, "Name"),
|
|
70
|
-
react_1.default.createElement(material_1.TableCell, { align: "right" }, "Location"),
|
|
71
|
-
react_1.default.createElement(material_1.TableCell, { align: "right" }, "Track"),
|
|
72
|
-
react_1.default.createElement(material_1.TableCell, { align: "right" }))),
|
|
73
|
-
react_1.default.createElement(material_1.TableBody, null, model.searchResults.map(result => (react_1.default.createElement(material_1.TableRow, { key: `${result.getId()}` },
|
|
74
|
-
react_1.default.createElement(material_1.TableCell, { component: "th", scope: "row" }, result.getLabel()),
|
|
75
|
-
react_1.default.createElement(material_1.TableCell, { align: "right" }, result.getLocation()),
|
|
76
|
-
react_1.default.createElement(material_1.TableCell, { align: "right" }, getTrackName(result.getTrackId()) || 'N/A'),
|
|
77
|
-
react_1.default.createElement(material_1.TableCell, { align: "right" },
|
|
78
|
-
react_1.default.createElement(material_1.Button, { onClick: async () => {
|
|
79
|
-
try {
|
|
80
|
-
const location = result.getLocation();
|
|
81
|
-
if (location) {
|
|
82
|
-
await handleClick(location);
|
|
83
|
-
const resultTrackId = result.getTrackId();
|
|
84
|
-
if (resultTrackId) {
|
|
85
|
-
model.showTrack(resultTrackId);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
catch (e) {
|
|
90
|
-
console.error(e);
|
|
91
|
-
session.notify(`${e}`, 'error');
|
|
92
|
-
}
|
|
93
|
-
handleClose();
|
|
94
|
-
}, color: "primary", variant: "contained" }, "Go"))))))))))),
|
|
17
|
+
react_1.default.createElement("b", null, searchQuery)),
|
|
18
|
+
react_1.default.createElement(SearchResultsTable_1.default, { model: model, handleClose: handleClose, assemblyName: assemblyName, searchResults: searchResults })))),
|
|
95
19
|
react_1.default.createElement(material_1.Divider, null),
|
|
96
20
|
react_1.default.createElement(material_1.DialogActions, null,
|
|
97
21
|
react_1.default.createElement(material_1.Button, { onClick: () => handleClose(), color: "primary" }, "Cancel"))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchResultsDialog.js","sourceRoot":"","sources":["../../../src/LinearGenomeView/components/SearchResultsDialog.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAyB;AACzB,
|
|
1
|
+
{"version":3,"file":"SearchResultsDialog.js","sourceRoot":"","sources":["../../../src/LinearGenomeView/components/SearchResultsDialog.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAyB;AACzB,yCAAyC;AACzC,4CAMsB;AAItB,8EAAqD;AAErD,SAAwB,mBAAmB,CAAC,EAC1C,KAAK,EACL,YAAY,EACZ,WAAW,EACX,aAAa,EACb,WAAW,GAOZ;IACC,OAAO,CACL,8BAAC,WAAM,IAAC,IAAI,QAAC,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAC,gBAAgB;QACrE,8BAAC,wBAAa,QACX,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,CAAA,CAAC,CAAC,CAAC,CACxB,8BAAC,qBAAU;;YACY,yCAAI,WAAW,CAAK,CAC9B,CACd,CAAC,CAAC,CAAC,CACF;YACE,8BAAC,qBAAU;;gBACW,yCAAI,WAAW,CAAK,CAC7B;YACb,8BAAC,4BAAkB,IACjB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,GAC5B,CACD,CACJ,CACa;QAChB,8BAAC,kBAAO,OAAG;QACX,8BAAC,wBAAa;YACZ,8BAAC,iBAAM,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAC,SAAS,aAE5C,CACK,CACT,CACV,CAAA;AACH,CAAC;AA1CD,sCA0CC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import BaseResult from '@jbrowse/core/TextSearch/BaseResults';
|
|
3
|
+
import { LinearGenomeViewModel } from '../..';
|
|
4
|
+
export default function SearchResultsTable({ searchResults, assemblyName: optAssemblyName, model, handleClose, }: {
|
|
5
|
+
searchResults: BaseResult[];
|
|
6
|
+
assemblyName?: string;
|
|
7
|
+
model: LinearGenomeViewModel;
|
|
8
|
+
handleClose: () => void;
|
|
9
|
+
}): React.JSX.Element;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const react_1 = __importDefault(require("react"));
|
|
7
|
+
const material_1 = require("@mui/material");
|
|
8
|
+
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
9
|
+
const util_1 = require("@jbrowse/core/util");
|
|
10
|
+
function SearchResultsTable({ searchResults, assemblyName: optAssemblyName, model, handleClose, }) {
|
|
11
|
+
var _a;
|
|
12
|
+
const session = (0, util_1.getSession)(model);
|
|
13
|
+
const { pluginManager } = (0, util_1.getEnv)(session);
|
|
14
|
+
const { assemblyManager } = session;
|
|
15
|
+
const assemblyName = optAssemblyName || ((_a = model.displayedRegions[0]) === null || _a === void 0 ? void 0 : _a.assemblyName);
|
|
16
|
+
const assembly = assemblyManager.get(assemblyName);
|
|
17
|
+
if (!assembly) {
|
|
18
|
+
throw new Error(`assembly ${assemblyName} not found`);
|
|
19
|
+
}
|
|
20
|
+
if (!assembly.regions) {
|
|
21
|
+
throw new Error(`assembly ${assemblyName} regions not loaded`);
|
|
22
|
+
}
|
|
23
|
+
function getTrackName(trackId) {
|
|
24
|
+
var _a;
|
|
25
|
+
if (trackId) {
|
|
26
|
+
const schema = pluginManager.pluggableConfigSchemaType('track');
|
|
27
|
+
const configuration = (0, mobx_state_tree_1.resolveIdentifier)(schema, (0, mobx_state_tree_1.getRoot)(model), trackId);
|
|
28
|
+
return ((_a = configuration === null || configuration === void 0 ? void 0 : configuration.name) === null || _a === void 0 ? void 0 : _a.value) || '';
|
|
29
|
+
}
|
|
30
|
+
return '';
|
|
31
|
+
}
|
|
32
|
+
async function handleClick(location) {
|
|
33
|
+
var _a;
|
|
34
|
+
try {
|
|
35
|
+
const newRegion = (_a = assembly === null || assembly === void 0 ? void 0 : assembly.regions) === null || _a === void 0 ? void 0 : _a.find(region => location === region.refName);
|
|
36
|
+
if (newRegion) {
|
|
37
|
+
model.setDisplayedRegions([newRegion]);
|
|
38
|
+
// we use showAllRegions after setDisplayedRegions to make the entire
|
|
39
|
+
// region visible, xref #1703
|
|
40
|
+
model.showAllRegions();
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
await model.navToLocString(location, assemblyName);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
console.warn(e);
|
|
48
|
+
session.notify(`${e}`, 'warning');
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return (react_1.default.createElement(material_1.TableContainer, { component: material_1.Paper },
|
|
52
|
+
react_1.default.createElement(material_1.Table, null,
|
|
53
|
+
react_1.default.createElement(material_1.TableHead, null,
|
|
54
|
+
react_1.default.createElement(material_1.TableRow, null,
|
|
55
|
+
react_1.default.createElement(material_1.TableCell, null, "Name"),
|
|
56
|
+
react_1.default.createElement(material_1.TableCell, { align: "right" }, "Location"),
|
|
57
|
+
react_1.default.createElement(material_1.TableCell, { align: "right" }, "Track"),
|
|
58
|
+
react_1.default.createElement(material_1.TableCell, { align: "right" }))),
|
|
59
|
+
react_1.default.createElement(material_1.TableBody, null, searchResults.map(result => (react_1.default.createElement(material_1.TableRow, { key: `${result.getId()}` },
|
|
60
|
+
react_1.default.createElement(material_1.TableCell, { component: "th", scope: "row" }, result.getLabel()),
|
|
61
|
+
react_1.default.createElement(material_1.TableCell, { align: "right" }, result.getLocation()),
|
|
62
|
+
react_1.default.createElement(material_1.TableCell, { align: "right" }, getTrackName(result.getTrackId()) || 'N/A'),
|
|
63
|
+
react_1.default.createElement(material_1.TableCell, { align: "right" },
|
|
64
|
+
react_1.default.createElement(material_1.Button, { onClick: async () => {
|
|
65
|
+
try {
|
|
66
|
+
const location = result.getLocation();
|
|
67
|
+
if (location) {
|
|
68
|
+
await handleClick(location);
|
|
69
|
+
const resultTrackId = result.getTrackId();
|
|
70
|
+
if (resultTrackId) {
|
|
71
|
+
model.showTrack(resultTrackId);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch (e) {
|
|
76
|
+
console.error(e);
|
|
77
|
+
session.notify(`${e}`, 'error');
|
|
78
|
+
}
|
|
79
|
+
handleClose();
|
|
80
|
+
}, color: "primary", variant: "contained" }, "Go")))))))));
|
|
81
|
+
}
|
|
82
|
+
exports.default = SearchResultsTable;
|
|
83
|
+
//# sourceMappingURL=SearchResultsTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchResultsTable.js","sourceRoot":"","sources":["../../../src/LinearGenomeView/components/SearchResultsTable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
declare function SequenceDialog({ model, handleClose, }: {
|
|
3
3
|
model: {
|
|
4
4
|
assemblyNames: string[];
|
|
5
5
|
toggleTrack(trackId: string): void;
|
|
6
6
|
};
|
|
7
7
|
handleClose: () => void;
|
|
8
|
-
}): JSX.Element;
|
|
8
|
+
}): React.JSX.Element;
|
|
9
9
|
declare const _default: typeof SequenceDialog;
|
|
10
10
|
export default _default;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { BaseTrackModel } from '@jbrowse/core/pluggableElementTypes/models';
|
|
3
3
|
import { LinearGenomeViewModel } from '..';
|
|
4
4
|
type LGV = LinearGenomeViewModel;
|
|
5
|
-
declare
|
|
5
|
+
declare const _default: ({ model, track, }: {
|
|
6
6
|
model: LGV;
|
|
7
7
|
track: BaseTrackModel;
|
|
8
|
-
})
|
|
9
|
-
declare const _default: typeof TrackContainer;
|
|
8
|
+
}) => React.JSX.Element;
|
|
10
9
|
export default _default;
|
|
@@ -32,10 +32,10 @@ const mui_1 = require("tss-react/mui");
|
|
|
32
32
|
const mobx_react_1 = require("mobx-react");
|
|
33
33
|
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
34
34
|
const react_error_boundary_1 = require("react-error-boundary");
|
|
35
|
-
const configuration_1 = require("@jbrowse/core/configuration");
|
|
36
35
|
const ui_1 = require("@jbrowse/core/ui");
|
|
37
36
|
const util_1 = require("@jbrowse/core/util");
|
|
38
|
-
const
|
|
37
|
+
const TrackLabelContainer_1 = __importDefault(require("./TrackLabelContainer"));
|
|
38
|
+
const TrackRenderingContainer_1 = __importDefault(require("./TrackRenderingContainer"));
|
|
39
39
|
const useStyles = (0, mui_1.makeStyles)()({
|
|
40
40
|
root: {
|
|
41
41
|
marginTop: 2,
|
|
@@ -54,82 +54,32 @@ const useStyles = (0, mui_1.makeStyles)()({
|
|
|
54
54
|
width: '100%',
|
|
55
55
|
zIndex: 3,
|
|
56
56
|
},
|
|
57
|
-
trackLabel: {
|
|
58
|
-
zIndex: 3,
|
|
59
|
-
},
|
|
60
|
-
// aligns with block boundaries. check for example the breakpoint split view
|
|
61
|
-
// demo to see if features align if wanting to change things
|
|
62
|
-
renderingComponentContainer: {
|
|
63
|
-
position: 'absolute',
|
|
64
|
-
// -1 offset because of the 1px border of the Paper
|
|
65
|
-
left: -1,
|
|
66
|
-
height: '100%',
|
|
67
|
-
width: '100%',
|
|
68
|
-
},
|
|
69
|
-
trackLabelOffset: {
|
|
70
|
-
position: 'relative',
|
|
71
|
-
display: 'inline-block',
|
|
72
|
-
},
|
|
73
|
-
trackLabelOverlap: {
|
|
74
|
-
position: 'absolute',
|
|
75
|
-
},
|
|
76
|
-
trackRenderingContainer: {
|
|
77
|
-
overflowY: 'auto',
|
|
78
|
-
overflowX: 'hidden',
|
|
79
|
-
whiteSpace: 'nowrap',
|
|
80
|
-
position: 'relative',
|
|
81
|
-
background: 'none',
|
|
82
|
-
zIndex: 2,
|
|
83
|
-
},
|
|
84
57
|
});
|
|
85
|
-
|
|
86
|
-
const { classes, cx } = useStyles();
|
|
87
|
-
const display = model.displays[0];
|
|
88
|
-
const { trackLabel, trackLabelOverlap, trackLabelOffset } = classes;
|
|
89
|
-
const labelStyle = view.trackLabels !== 'overlapping' || display.prefersOffset
|
|
90
|
-
? trackLabelOffset
|
|
91
|
-
: trackLabelOverlap;
|
|
92
|
-
return view.trackLabels !== 'hidden' ? (react_1.default.createElement(TrackLabel_1.default, { track: model, className: cx(trackLabel, labelStyle) })) : null;
|
|
93
|
-
});
|
|
94
|
-
function TrackContainer({ model, track, }) {
|
|
58
|
+
exports.default = (0, mobx_react_1.observer)(function TrackContainer({ model, track, }) {
|
|
95
59
|
const { classes } = useStyles();
|
|
96
60
|
const display = track.displays[0];
|
|
97
|
-
const {
|
|
98
|
-
const
|
|
99
|
-
const trackId = (0, configuration_1.getConf)(track, 'trackId');
|
|
100
|
-
const ref = (0, react_1.useRef)(null);
|
|
61
|
+
const { draggingTrackId } = model;
|
|
62
|
+
const ref2 = (0, react_1.useRef)(null);
|
|
101
63
|
const dimmed = draggingTrackId !== undefined && draggingTrackId !== display.id;
|
|
102
|
-
const minimized = track.minimized;
|
|
103
64
|
const debouncedOnDragEnter = (0, util_1.useDebouncedCallback)(() => {
|
|
104
65
|
if ((0, mobx_state_tree_1.isAlive)(display) && dimmed) {
|
|
105
|
-
moveTrack(draggingTrackId, track.id);
|
|
66
|
+
model.moveTrack(draggingTrackId, track.id);
|
|
106
67
|
}
|
|
107
68
|
}, 100);
|
|
108
|
-
(
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
react_1.default.createElement(react_error_boundary_1.ErrorBoundary, { key: track.id, FallbackComponent: ({ error }) => react_1.default.createElement(ui_1.ErrorMessage, { error: error }) },
|
|
119
|
-
react_1.default.createElement("div", { className: classes.trackRenderingContainer, style: { height: minimized ? 20 : height }, onScroll: evt => display.setScrollTop(evt.currentTarget.scrollTop), onDragEnter: debouncedOnDragEnter, "data-testid": `trackRenderingContainer-${model.id}-${trackId}` }, !minimized ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
120
|
-
react_1.default.createElement("div", { ref: ref, className: classes.renderingComponentContainer, style: { transform: `scaleX(${model.scaleFactor})` } },
|
|
121
|
-
react_1.default.createElement(RenderingComponent, { model: display, onHorizontalScroll: horizontalScroll })),
|
|
122
|
-
DisplayBlurb ? (react_1.default.createElement("div", { style: {
|
|
123
|
-
position: 'absolute',
|
|
124
|
-
left: 0,
|
|
125
|
-
top: display.height - 20,
|
|
126
|
-
} },
|
|
127
|
-
react_1.default.createElement(DisplayBlurb, { model: display }))) : null)) : null)),
|
|
69
|
+
return (react_1.default.createElement(material_1.Paper, { ref: ref2, className: classes.root, variant: "outlined", onClick: event => {
|
|
70
|
+
var _a;
|
|
71
|
+
if (event.detail === 2 && !track.displays[0].featureIdUnderMouse) {
|
|
72
|
+
const left = ((_a = ref2.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().left) || 0;
|
|
73
|
+
model.zoomTo(model.bpPerPx / 2, event.clientX - left, true);
|
|
74
|
+
}
|
|
75
|
+
} },
|
|
76
|
+
react_1.default.createElement(TrackLabelContainer_1.default, { track: track, view: model }),
|
|
77
|
+
react_1.default.createElement(react_error_boundary_1.ErrorBoundary, { FallbackComponent: e => react_1.default.createElement(ui_1.ErrorMessage, { error: e.error }) },
|
|
78
|
+
react_1.default.createElement(TrackRenderingContainer_1.default, { model: model, track: track, onDragEnter: debouncedOnDragEnter })),
|
|
128
79
|
react_1.default.createElement("div", { className: classes.overlay, style: {
|
|
129
80
|
height: display.height,
|
|
130
81
|
background: dimmed ? 'rgba(0, 0, 0, 0.4)' : undefined,
|
|
131
82
|
}, onDragEnter: debouncedOnDragEnter }),
|
|
132
83
|
react_1.default.createElement(ui_1.ResizeHandle, { onDrag: display.resizeHeight, className: classes.resizeHandle })));
|
|
133
|
-
}
|
|
134
|
-
exports.default = (0, mobx_react_1.observer)(TrackContainer);
|
|
84
|
+
});
|
|
135
85
|
//# sourceMappingURL=TrackContainer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrackContainer.js","sourceRoot":"","sources":["../../../src/LinearGenomeView/components/TrackContainer.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"TrackContainer.js","sourceRoot":"","sources":["../../../src/LinearGenomeView/components/TrackContainer.tsx"],"names":[],"mappings":"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"}
|