@jbrowse/plugin-linear-genome-view 2.5.0 → 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 -2
- package/dist/BaseLinearDisplay/components/TooLargeMessage.d.ts +2 -1
- package/dist/BaseLinearDisplay/components/Tooltip.d.ts +2 -1
- 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 +62 -142
- package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js +34 -355
- 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.js +1 -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 +20 -16
- package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js.map +1 -1
- package/dist/BasicTrack/configSchema.js +1 -0
- package/dist/BasicTrack/configSchema.js.map +1 -1
- package/dist/FeatureTrack/configSchema.d.ts +1 -3
- package/dist/FeatureTrack/configSchema.js +1 -0
- package/dist/FeatureTrack/configSchema.js.map +1 -1
- package/dist/LinearBareDisplay/configSchema.d.ts +1 -0
- package/dist/LinearBareDisplay/configSchema.js +1 -0
- package/dist/LinearBareDisplay/configSchema.js.map +1 -1
- package/dist/LinearBareDisplay/model.d.ts +52 -39
- package/dist/LinearBareDisplay/model.js +1 -0
- package/dist/LinearBareDisplay/model.js.map +1 -1
- package/dist/LinearBasicDisplay/components/SetMaxHeight.d.ts +2 -1
- package/dist/LinearBasicDisplay/configSchema.d.ts +1 -0
- package/dist/LinearBasicDisplay/configSchema.js +1 -0
- package/dist/LinearBasicDisplay/configSchema.js.map +1 -1
- package/dist/LinearBasicDisplay/model.d.ts +67 -66
- package/dist/LinearBasicDisplay/model.js +1 -0
- package/dist/LinearBasicDisplay/model.js.map +1 -1
- package/dist/LinearGenomeView/components/CenterLine.d.ts +2 -1
- package/dist/LinearGenomeView/components/Cytobands.d.ts +2 -1
- package/dist/LinearGenomeView/components/ExportSvgDialog.d.ts +2 -1
- package/dist/LinearGenomeView/components/GetSequenceDialog.d.ts +2 -1
- package/dist/LinearGenomeView/components/Gridlines.d.ts +2 -1
- package/dist/LinearGenomeView/components/Header.d.ts +2 -1
- package/dist/LinearGenomeView/components/ImportForm.d.ts +2 -1
- package/dist/LinearGenomeView/components/LinearGenomeView.d.ts +2 -1
- package/dist/LinearGenomeView/components/LinearGenomeView.js +28 -4
- package/dist/LinearGenomeView/components/LinearGenomeView.js.map +1 -1
- package/dist/LinearGenomeView/components/MiniControls.d.ts +3 -2
- 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 +10 -4
- 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 -1
- 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 -1
- package/dist/LinearGenomeView/components/SearchBox.d.ts +2 -1
- package/dist/LinearGenomeView/components/SearchResultsDialog.d.ts +2 -1
- package/dist/LinearGenomeView/components/SearchResultsTable.d.ts +2 -1
- package/dist/LinearGenomeView/components/SequenceSearchDialog.d.ts +2 -1
- package/dist/LinearGenomeView/components/TrackContainer.d.ts +3 -3
- package/dist/LinearGenomeView/components/TrackContainer.js +12 -68
- 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 +2 -2
- package/dist/LinearGenomeView/components/TracksContainer.js.map +1 -1
- package/dist/LinearGenomeView/components/VerticalGuide.d.ts +2 -1
- package/dist/LinearGenomeView/components/ZoomControls.d.ts +2 -1
- package/dist/LinearGenomeView/model.d.ts +13 -12
- package/dist/LinearGenomeView/model.js +25 -25
- package/dist/LinearGenomeView/model.js.map +1 -1
- package/dist/LinearGenomeView/svgcomponents/SVGBackground.d.ts +2 -1
- package/dist/LinearGenomeView/svgcomponents/SVGHeader.d.ts +3 -4
- 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 -1
- package/dist/LinearGenomeView/svgcomponents/SVGRuler.d.ts +2 -1
- package/dist/LinearGenomeView/svgcomponents/SVGScalebar.d.ts +2 -1
- package/dist/LinearGenomeView/svgcomponents/SVGTrackLabel.d.ts +2 -1
- package/dist/LinearGenomeView/svgcomponents/SVGTracks.d.ts +2 -1
- package/dist/LinearGenomeView/util.d.ts +2 -2
- package/dist/index.d.ts +160 -134
- 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 -2
- package/esm/BaseLinearDisplay/components/TooLargeMessage.d.ts +2 -1
- package/esm/BaseLinearDisplay/components/Tooltip.d.ts +2 -1
- 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 +62 -142
- package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.js +36 -334
- 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.js +1 -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 +20 -16
- package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.js.map +1 -1
- package/esm/BasicTrack/configSchema.js +1 -0
- package/esm/BasicTrack/configSchema.js.map +1 -1
- package/esm/FeatureTrack/configSchema.d.ts +1 -3
- package/esm/FeatureTrack/configSchema.js +1 -0
- package/esm/FeatureTrack/configSchema.js.map +1 -1
- package/esm/LinearBareDisplay/configSchema.d.ts +1 -0
- package/esm/LinearBareDisplay/configSchema.js +1 -0
- package/esm/LinearBareDisplay/configSchema.js.map +1 -1
- package/esm/LinearBareDisplay/model.d.ts +52 -39
- package/esm/LinearBareDisplay/model.js +1 -0
- package/esm/LinearBareDisplay/model.js.map +1 -1
- package/esm/LinearBasicDisplay/components/SetMaxHeight.d.ts +2 -1
- package/esm/LinearBasicDisplay/configSchema.d.ts +1 -0
- package/esm/LinearBasicDisplay/configSchema.js +1 -0
- package/esm/LinearBasicDisplay/configSchema.js.map +1 -1
- package/esm/LinearBasicDisplay/model.d.ts +67 -66
- package/esm/LinearBasicDisplay/model.js +1 -0
- package/esm/LinearBasicDisplay/model.js.map +1 -1
- package/esm/LinearGenomeView/components/CenterLine.d.ts +2 -1
- package/esm/LinearGenomeView/components/Cytobands.d.ts +2 -1
- package/esm/LinearGenomeView/components/ExportSvgDialog.d.ts +2 -1
- package/esm/LinearGenomeView/components/GetSequenceDialog.d.ts +2 -1
- package/esm/LinearGenomeView/components/Gridlines.d.ts +2 -1
- package/esm/LinearGenomeView/components/Header.d.ts +2 -1
- package/esm/LinearGenomeView/components/ImportForm.d.ts +2 -1
- package/esm/LinearGenomeView/components/LinearGenomeView.d.ts +2 -1
- package/esm/LinearGenomeView/components/LinearGenomeView.js +4 -3
- package/esm/LinearGenomeView/components/LinearGenomeView.js.map +1 -1
- package/esm/LinearGenomeView/components/MiniControls.d.ts +3 -2
- 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 +10 -4
- 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 -1
- 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 -1
- package/esm/LinearGenomeView/components/SearchBox.d.ts +2 -1
- package/esm/LinearGenomeView/components/SearchResultsDialog.d.ts +2 -1
- package/esm/LinearGenomeView/components/SearchResultsTable.d.ts +2 -1
- package/esm/LinearGenomeView/components/SequenceSearchDialog.d.ts +2 -1
- package/esm/LinearGenomeView/components/TrackContainer.d.ts +3 -3
- package/esm/LinearGenomeView/components/TrackContainer.js +13 -69
- 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 +2 -2
- package/esm/LinearGenomeView/components/TracksContainer.js.map +1 -1
- package/esm/LinearGenomeView/components/VerticalGuide.d.ts +2 -1
- package/esm/LinearGenomeView/components/ZoomControls.d.ts +2 -1
- package/esm/LinearGenomeView/model.d.ts +13 -12
- package/esm/LinearGenomeView/model.js +21 -21
- package/esm/LinearGenomeView/model.js.map +1 -1
- package/esm/LinearGenomeView/svgcomponents/SVGBackground.d.ts +2 -1
- package/esm/LinearGenomeView/svgcomponents/SVGHeader.d.ts +3 -4
- 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 -1
- package/esm/LinearGenomeView/svgcomponents/SVGRuler.d.ts +2 -1
- package/esm/LinearGenomeView/svgcomponents/SVGScalebar.d.ts +2 -1
- package/esm/LinearGenomeView/svgcomponents/SVGTrackLabel.d.ts +2 -1
- package/esm/LinearGenomeView/svgcomponents/SVGTracks.d.ts +2 -1
- package/esm/LinearGenomeView/util.d.ts +2 -2
- package/esm/index.d.ts +160 -134
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/package.json +2 -2
- package/src/BaseLinearDisplay/index.ts +5 -1
- package/src/BaseLinearDisplay/models/BaseLinearDisplayModel.tsx +46 -407
- 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 +1 -0
- package/src/BaseLinearDisplay/models/renderSvg.tsx +101 -0
- package/src/BaseLinearDisplay/models/serverSideRenderedBlock.ts +21 -19
- 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 +1 -0
- package/src/LinearBasicDisplay/configSchema.ts +1 -0
- package/src/LinearBasicDisplay/model.ts +1 -0
- package/src/LinearGenomeView/components/LinearGenomeView.test.tsx +3 -3
- package/src/LinearGenomeView/components/LinearGenomeView.tsx +6 -3
- package/src/LinearGenomeView/components/MiniControls.tsx +37 -38
- package/src/LinearGenomeView/components/OverviewScalebar.tsx +11 -5
- 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/TrackContainer.tsx +16 -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 +2 -2
- package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.tsx.snap +3 -3
- package/src/LinearGenomeView/model.ts +29 -28
- package/src/LinearGenomeView/svgcomponents/SVGHeader.tsx +8 -6
- package/src/LinearGenomeView/svgcomponents/SVGLinearGenomeView.tsx +1 -1
- 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 -189
- 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 -161
- package/esm/LinearGenomeView/components/RefNameAutocomplete.js.map +0 -1
- package/src/LinearGenomeView/components/RefNameAutocomplete.tsx +0 -321
- /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
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { useRef } from 'react';
|
|
2
2
|
import { Paper } from '@mui/material';
|
|
3
3
|
import { makeStyles } from 'tss-react/mui';
|
|
4
4
|
import { observer } from 'mobx-react';
|
|
5
5
|
import { isAlive } from 'mobx-state-tree';
|
|
6
6
|
import { ErrorBoundary } from 'react-error-boundary';
|
|
7
|
-
import { getConf } from '@jbrowse/core/configuration';
|
|
8
7
|
import { ResizeHandle, ErrorMessage } from '@jbrowse/core/ui';
|
|
9
8
|
import { useDebouncedCallback } from '@jbrowse/core/util';
|
|
10
|
-
import
|
|
9
|
+
import TrackLabelContainer from './TrackLabelContainer';
|
|
10
|
+
import TrackRenderingContainer from './TrackRenderingContainer';
|
|
11
11
|
const useStyles = makeStyles()({
|
|
12
12
|
root: {
|
|
13
13
|
marginTop: 2,
|
|
@@ -26,88 +26,32 @@ const useStyles = makeStyles()({
|
|
|
26
26
|
width: '100%',
|
|
27
27
|
zIndex: 3,
|
|
28
28
|
},
|
|
29
|
-
trackLabel: {
|
|
30
|
-
zIndex: 3,
|
|
31
|
-
},
|
|
32
|
-
// aligns with block boundaries. check for example the breakpoint split view
|
|
33
|
-
// demo to see if features align if wanting to change things
|
|
34
|
-
renderingComponentContainer: {
|
|
35
|
-
position: 'absolute',
|
|
36
|
-
// -1 offset because of the 1px border of the Paper
|
|
37
|
-
left: -1,
|
|
38
|
-
height: '100%',
|
|
39
|
-
width: '100%',
|
|
40
|
-
},
|
|
41
|
-
trackLabelOffset: {
|
|
42
|
-
position: 'relative',
|
|
43
|
-
display: 'inline-block',
|
|
44
|
-
},
|
|
45
|
-
trackLabelOverlap: {
|
|
46
|
-
position: 'absolute',
|
|
47
|
-
},
|
|
48
|
-
trackRenderingContainer: {
|
|
49
|
-
overflowY: 'auto',
|
|
50
|
-
overflowX: 'hidden',
|
|
51
|
-
whiteSpace: 'nowrap',
|
|
52
|
-
position: 'relative',
|
|
53
|
-
background: 'none',
|
|
54
|
-
zIndex: 2,
|
|
55
|
-
},
|
|
56
29
|
});
|
|
57
|
-
|
|
58
|
-
const { classes, cx } = useStyles();
|
|
59
|
-
const display = model.displays[0];
|
|
60
|
-
const { trackLabel, trackLabelOverlap, trackLabelOffset } = classes;
|
|
61
|
-
const labelStyle = view.trackLabels !== 'overlapping' || display.prefersOffset
|
|
62
|
-
? trackLabelOffset
|
|
63
|
-
: trackLabelOverlap;
|
|
64
|
-
return view.trackLabels !== 'hidden' ? (React.createElement(TrackLabel, { track: model, className: cx(trackLabel, labelStyle) })) : null;
|
|
65
|
-
});
|
|
66
|
-
function TrackContainer({ model, track, }) {
|
|
30
|
+
export default observer(function TrackContainer({ model, track, }) {
|
|
67
31
|
const { classes } = useStyles();
|
|
68
32
|
const display = track.displays[0];
|
|
69
|
-
const {
|
|
70
|
-
const
|
|
71
|
-
const trackId = getConf(track, 'trackId');
|
|
72
|
-
const ref = useRef(null);
|
|
33
|
+
const { draggingTrackId } = model;
|
|
34
|
+
const ref2 = useRef(null);
|
|
73
35
|
const dimmed = draggingTrackId !== undefined && draggingTrackId !== display.id;
|
|
74
|
-
const minimized = track.minimized;
|
|
75
36
|
const debouncedOnDragEnter = useDebouncedCallback(() => {
|
|
76
37
|
if (isAlive(display) && dimmed) {
|
|
77
|
-
moveTrack(draggingTrackId, track.id);
|
|
38
|
+
model.moveTrack(draggingTrackId, track.id);
|
|
78
39
|
}
|
|
79
40
|
}, 100);
|
|
80
|
-
|
|
81
|
-
if (ref.current) {
|
|
82
|
-
model.trackRefs[trackId] = ref.current;
|
|
83
|
-
}
|
|
84
|
-
return () => {
|
|
85
|
-
delete model.trackRefs[trackId];
|
|
86
|
-
};
|
|
87
|
-
}, [model.trackRefs, trackId]);
|
|
88
|
-
return (React.createElement(Paper, { ref: ref, className: classes.root, variant: "outlined", onClick: event => {
|
|
41
|
+
return (React.createElement(Paper, { ref: ref2, className: classes.root, variant: "outlined", onClick: event => {
|
|
89
42
|
var _a;
|
|
90
43
|
if (event.detail === 2 && !track.displays[0].featureIdUnderMouse) {
|
|
91
|
-
const left = ((_a =
|
|
44
|
+
const left = ((_a = ref2.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().left) || 0;
|
|
92
45
|
model.zoomTo(model.bpPerPx / 2, event.clientX - left, true);
|
|
93
46
|
}
|
|
94
47
|
} },
|
|
95
|
-
React.createElement(
|
|
96
|
-
React.createElement(ErrorBoundary, {
|
|
97
|
-
React.createElement(
|
|
98
|
-
React.createElement("div", { className: classes.renderingComponentContainer, style: { transform: `scaleX(${model.scaleFactor})` } },
|
|
99
|
-
React.createElement(RenderingComponent, { model: display, onHorizontalScroll: horizontalScroll })),
|
|
100
|
-
DisplayBlurb ? (React.createElement("div", { style: {
|
|
101
|
-
position: 'absolute',
|
|
102
|
-
left: 0,
|
|
103
|
-
top: display.height - 20,
|
|
104
|
-
} },
|
|
105
|
-
React.createElement(DisplayBlurb, { model: display }))) : null)) : null)),
|
|
48
|
+
React.createElement(TrackLabelContainer, { track: track, view: model }),
|
|
49
|
+
React.createElement(ErrorBoundary, { FallbackComponent: e => React.createElement(ErrorMessage, { error: e.error }) },
|
|
50
|
+
React.createElement(TrackRenderingContainer, { model: model, track: track, onDragEnter: debouncedOnDragEnter })),
|
|
106
51
|
React.createElement("div", { className: classes.overlay, style: {
|
|
107
52
|
height: display.height,
|
|
108
53
|
background: dimmed ? 'rgba(0, 0, 0, 0.4)' : undefined,
|
|
109
54
|
}, onDragEnter: debouncedOnDragEnter }),
|
|
110
55
|
React.createElement(ResizeHandle, { onDrag: display.resizeHeight, className: classes.resizeHandle })));
|
|
111
|
-
}
|
|
112
|
-
export default observer(TrackContainer);
|
|
56
|
+
});
|
|
113
57
|
//# sourceMappingURL=TrackContainer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrackContainer.js","sourceRoot":"","sources":["../../../src/LinearGenomeView/components/TrackContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"TrackContainer.js","sourceRoot":"","sources":["../../../src/LinearGenomeView/components/TrackContainer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,7 @@ import { getConf } from '@jbrowse/core/configuration';
|
|
|
6
6
|
import { getSession, getContainingView } from '@jbrowse/core/util';
|
|
7
7
|
import { getTrackName } from '@jbrowse/core/util/tracks';
|
|
8
8
|
import { SanitizedHTML } from '@jbrowse/core/ui';
|
|
9
|
-
import
|
|
10
|
-
import { bindTrigger, bindPopover, usePopupState, } from 'material-ui-popup-state/hooks';
|
|
9
|
+
import CascadingMenuButton from '@jbrowse/core/ui/CascadingMenuButton';
|
|
11
10
|
// icons
|
|
12
11
|
import MoreVertIcon from '@mui/icons-material/MoreVert';
|
|
13
12
|
import DragIcon from '@mui/icons-material/DragIndicator';
|
|
@@ -51,10 +50,6 @@ const TrackLabel = React.forwardRef(function ({ track, className }, ref) {
|
|
|
51
50
|
const minimized = track.minimized;
|
|
52
51
|
const trackId = getConf(track, 'trackId');
|
|
53
52
|
const trackName = getTrackName(trackConf, session);
|
|
54
|
-
const popupState = usePopupState({
|
|
55
|
-
popupId: 'trackLabelMenu',
|
|
56
|
-
variant: 'popover',
|
|
57
|
-
});
|
|
58
53
|
const items = [
|
|
59
54
|
{
|
|
60
55
|
label: minimized ? 'Restore track' : 'Minimize track',
|
|
@@ -77,10 +72,11 @@ const TrackLabel = React.forwardRef(function ({ track, className }, ref) {
|
|
|
77
72
|
React.createElement(IconButton, { onClick: () => view.hideTrack(trackId), className: classes.iconButton, title: "close this track" },
|
|
78
73
|
React.createElement(CloseIcon, { fontSize: "small" })),
|
|
79
74
|
React.createElement(Typography, { variant: "body1", component: "span", className: classes.trackName },
|
|
80
|
-
React.createElement(SanitizedHTML, { html:
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
React.createElement(
|
|
75
|
+
React.createElement(SanitizedHTML, { html: [trackName, minimized ? '(minimized)' : '']
|
|
76
|
+
.filter(f => !!f)
|
|
77
|
+
.join(' ') })),
|
|
78
|
+
React.createElement(CascadingMenuButton, { menuItems: items, "data-testid": "track_menu_icon" },
|
|
79
|
+
React.createElement(MoreVertIcon, { fontSize: "small" }))));
|
|
84
80
|
});
|
|
85
81
|
export default observer(TrackLabel);
|
|
86
82
|
//# sourceMappingURL=TrackLabel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrackLabel.js","sourceRoot":"","sources":["../../../src/LinearGenomeView/components/TrackLabel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"TrackLabel.js","sourceRoot":"","sources":["../../../src/LinearGenomeView/components/TrackLabel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { BaseTrackModel } from '@jbrowse/core/pluggableElementTypes/models';
|
|
3
|
+
import { LinearGenomeViewModel } from '..';
|
|
4
|
+
type LGV = LinearGenomeViewModel;
|
|
5
|
+
declare const TrackLabelContainer: ({ track, view, }: {
|
|
6
|
+
track: BaseTrackModel;
|
|
7
|
+
view: LGV;
|
|
8
|
+
}) => React.JSX.Element | null;
|
|
9
|
+
export default TrackLabelContainer;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { makeStyles } from 'tss-react/mui';
|
|
3
|
+
import { observer } from 'mobx-react';
|
|
4
|
+
import TrackLabel from './TrackLabel';
|
|
5
|
+
const useStyles = makeStyles()({
|
|
6
|
+
trackLabel: {
|
|
7
|
+
zIndex: 3,
|
|
8
|
+
},
|
|
9
|
+
trackLabelOffset: {
|
|
10
|
+
position: 'relative',
|
|
11
|
+
display: 'inline-block',
|
|
12
|
+
},
|
|
13
|
+
trackLabelOverlap: {
|
|
14
|
+
position: 'absolute',
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
const TrackLabelContainer = observer(function ({ track, view, }) {
|
|
18
|
+
const { classes, cx } = useStyles();
|
|
19
|
+
const display = track.displays[0];
|
|
20
|
+
const { trackLabel, trackLabelOverlap, trackLabelOffset } = classes;
|
|
21
|
+
const labelStyle = view.trackLabels !== 'overlapping' || display.prefersOffset
|
|
22
|
+
? trackLabelOffset
|
|
23
|
+
: trackLabelOverlap;
|
|
24
|
+
return view.trackLabels !== 'hidden' ? (React.createElement(TrackLabel, { track: track, className: cx(trackLabel, labelStyle) })) : null;
|
|
25
|
+
});
|
|
26
|
+
export default TrackLabelContainer;
|
|
27
|
+
//# sourceMappingURL=TrackLabelContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrackLabelContainer.js","sourceRoot":"","sources":["../../../src/LinearGenomeView/components/TrackLabelContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAOrC,OAAO,UAAU,MAAM,cAAc,CAAA;AAErC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAC7B,UAAU,EAAE;QACV,MAAM,EAAE,CAAC;KACV;IAED,gBAAgB,EAAE;QAChB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,cAAc;KACxB;IACD,iBAAiB,EAAE;QACjB,QAAQ,EAAE,UAAU;KACrB;CACF,CAAC,CAAA;AAIF,MAAM,mBAAmB,GAAG,QAAQ,CAAC,UAAU,EAC7C,KAAK,EACL,IAAI,GAIL;IACC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,CAAA;IACnC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IACjC,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAA;IACnE,MAAM,UAAU,GACd,IAAI,CAAC,WAAW,KAAK,aAAa,IAAI,OAAO,CAAC,aAAa;QACzD,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,iBAAiB,CAAA;IAEvB,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CACrC,oBAAC,UAAU,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,GAAI,CACpE,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CAAC,CAAA;AAEF,eAAe,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { BaseTrackModel } from '@jbrowse/core/pluggableElementTypes/models';
|
|
3
|
+
import { LinearGenomeViewModel } from '..';
|
|
4
|
+
type LGV = LinearGenomeViewModel;
|
|
5
|
+
declare const _default: ({ model, track, onDragEnter, }: {
|
|
6
|
+
model: LGV;
|
|
7
|
+
track: BaseTrackModel;
|
|
8
|
+
onDragEnter: () => void;
|
|
9
|
+
}) => React.JSX.Element;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
import { makeStyles } from 'tss-react/mui';
|
|
3
|
+
import { observer } from 'mobx-react';
|
|
4
|
+
import { getConf } from '@jbrowse/core/configuration';
|
|
5
|
+
const useStyles = makeStyles()({
|
|
6
|
+
// aligns with block boundaries. check for example the breakpoint split view
|
|
7
|
+
// demo to see if features align if wanting to change things
|
|
8
|
+
renderingComponentContainer: {
|
|
9
|
+
position: 'absolute',
|
|
10
|
+
// -1 offset because of the 1px border of the Paper
|
|
11
|
+
left: -1,
|
|
12
|
+
height: '100%',
|
|
13
|
+
width: '100%',
|
|
14
|
+
},
|
|
15
|
+
trackRenderingContainer: {
|
|
16
|
+
overflowY: 'auto',
|
|
17
|
+
overflowX: 'hidden',
|
|
18
|
+
whiteSpace: 'nowrap',
|
|
19
|
+
position: 'relative',
|
|
20
|
+
background: 'none',
|
|
21
|
+
zIndex: 2,
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
export default observer(function TrackRenderingContainer({ model, track, onDragEnter, }) {
|
|
25
|
+
const { classes } = useStyles();
|
|
26
|
+
const display = track.displays[0];
|
|
27
|
+
const { height, RenderingComponent, DisplayBlurb } = display;
|
|
28
|
+
const trackId = getConf(track, 'trackId');
|
|
29
|
+
const ref = useRef(null);
|
|
30
|
+
const minimized = track.minimized;
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
if (ref.current) {
|
|
33
|
+
model.trackRefs[trackId] = ref.current;
|
|
34
|
+
}
|
|
35
|
+
return () => {
|
|
36
|
+
delete model.trackRefs[trackId];
|
|
37
|
+
};
|
|
38
|
+
}, [model.trackRefs, trackId]);
|
|
39
|
+
return (React.createElement("div", { className: classes.trackRenderingContainer, style: { height: minimized ? 20 : height }, onScroll: evt => display.setScrollTop(evt.currentTarget.scrollTop), onDragEnter: onDragEnter, "data-testid": `trackRenderingContainer-${model.id}-${trackId}` }, !minimized ? (React.createElement(React.Fragment, null,
|
|
40
|
+
React.createElement("div", { ref: ref, className: classes.renderingComponentContainer, style: { transform: `scaleX(${model.scaleFactor})` } },
|
|
41
|
+
React.createElement(RenderingComponent, { model: display, onHorizontalScroll: model.horizontalScroll })),
|
|
42
|
+
DisplayBlurb ? (React.createElement("div", { style: {
|
|
43
|
+
position: 'absolute',
|
|
44
|
+
left: 0,
|
|
45
|
+
top: display.height - 20,
|
|
46
|
+
} },
|
|
47
|
+
React.createElement(DisplayBlurb, { model: display }))) : null)) : null));
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=TrackRenderingContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrackRenderingContainer.js","sourceRoot":"","sources":["../../../src/LinearGenomeView/components/TrackRenderingContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAIrC,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAKrD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAC7B,4EAA4E;IAC5E,4DAA4D;IAC5D,2BAA2B,EAAE;QAC3B,QAAQ,EAAE,UAAU;QACpB,mDAAmD;QACnD,IAAI,EAAE,CAAC,CAAC;QACR,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,MAAM;KACd;IAED,uBAAuB,EAAE;QACvB,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,QAAQ;QACpB,QAAQ,EAAE,UAAU;QACpB,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,CAAC;KACV;CACF,CAAC,CAAA;AAIF,eAAe,QAAQ,CAAC,SAAS,uBAAuB,CAAC,EACvD,KAAK,EACL,KAAK,EACL,WAAW,GAKZ;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IACjC,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,GAAG,OAAO,CAAA;IAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IACzC,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IACxC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;IAEjC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,GAAG,CAAC,OAAO,EAAE;YACf,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAA;SACvC;QACD,OAAO,GAAG,EAAE;YACV,OAAO,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QACjC,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;IAE9B,OAAO,CACL,6BACE,SAAS,EAAE,OAAO,CAAC,uBAAuB,EAC1C,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,EAC1C,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,EAClE,WAAW,EAAE,WAAW,iBACX,2BAA2B,KAAK,CAAC,EAAE,IAAI,OAAO,EAAE,IAE5D,CAAC,SAAS,CAAC,CAAC,CAAC,CACZ;QACE,6BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,OAAO,CAAC,2BAA2B,EAC9C,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,KAAK,CAAC,WAAW,GAAG,EAAE;YAEpD,oBAAC,kBAAkB,IACjB,KAAK,EAAE,OAAO,EACd,kBAAkB,EAAE,KAAK,CAAC,gBAAgB,GAC1C,CACE;QAEL,YAAY,CAAC,CAAC,CAAC,CACd,6BACE,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,CAAC;gBACP,GAAG,EAAE,OAAO,CAAC,MAAM,GAAG,EAAE;aACzB;YAED,oBAAC,YAAY,IAAC,KAAK,EAAE,OAAO,GAAI,CAC5B,CACP,CAAC,CAAC,CAAC,IAAI,CACP,CACJ,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -26,7 +26,7 @@ export default observer(function TracksContainer({ children, model, }) {
|
|
|
26
26
|
const ref = useRef(null);
|
|
27
27
|
const { guideX, rubberbandOn, leftBpOffset, rightBpOffset, numOfBpSelected, width, left, anchorPosition, handleMenuItemClick, open, handleClose, mouseMove, mouseDown: mouseDown2, } = useRangeSelect(ref, model, true);
|
|
28
28
|
useWheelScroll(ref, model);
|
|
29
|
-
const
|
|
29
|
+
const additional = pluginManager.evaluateExtensionPoint('LinearGenomeView-TracksContainerComponent', undefined, { model });
|
|
30
30
|
return (React.createElement("div", { ref: ref, "data-testid": "trackContainer", className: classes.tracksContainer, onMouseDown: event => {
|
|
31
31
|
mouseDown1(event);
|
|
32
32
|
mouseDown2(event);
|
|
@@ -39,7 +39,7 @@ export default observer(function TracksContainer({ children, model, }) {
|
|
|
39
39
|
top: anchorPosition.clientY,
|
|
40
40
|
}, onMenuItemClick: handleMenuItemClick, open: open, onClose: handleClose, menuItems: model.rubberBandMenuItems() })) : null,
|
|
41
41
|
React.createElement(Rubberband, { model: model, ControlComponent: React.createElement(Scalebar, { model: model, style: { height: SCALE_BAR_HEIGHT, boxSizing: 'border-box' } }) }),
|
|
42
|
-
|
|
42
|
+
additional,
|
|
43
43
|
children));
|
|
44
44
|
});
|
|
45
45
|
//# sourceMappingURL=TracksContainer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TracksContainer.js","sourceRoot":"","sources":["../../../src/LinearGenomeView/components/TracksContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAEvC,cAAc;AACd,OAAO,EAAyB,gBAAgB,EAAE,MAAM,IAAI,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAEvE,mBAAmB;AACnB,OAAO,UAAU,MAAM,cAAc,CAAA;AACrC,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,UAAU,MAAM,cAAc,CAAA;AACrC,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAC7B,eAAe,EAAE;QACf,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,QAAQ;KACnB;CACF,CAAC,CAAA;AAIF,eAAe,QAAQ,CAAC,SAAS,eAAe,CAAC,EAC/C,QAAQ,EACR,KAAK,GAIN;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IAC/D,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IACxC,MAAM,EACJ,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,eAAe,EACf,KAAK,EACL,IAAI,EACJ,cAAc,EACd,mBAAmB,EACnB,IAAI,EACJ,WAAW,EACX,SAAS,EACT,SAAS,EAAE,UAAU,GACtB,GAAG,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACpC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAE1B,MAAM,
|
|
1
|
+
{"version":3,"file":"TracksContainer.js","sourceRoot":"","sources":["../../../src/LinearGenomeView/components/TracksContainer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
import { LinearGenomeViewModel } from '..';
|
|
2
3
|
type LGV = LinearGenomeViewModel;
|
|
3
4
|
declare function VerticalGuide({ model, coordX }: {
|
|
4
5
|
model: LGV;
|
|
5
6
|
coordX: number;
|
|
6
|
-
}): JSX.Element;
|
|
7
|
+
}): React.JSX.Element;
|
|
7
8
|
declare const _default: typeof VerticalGuide;
|
|
8
9
|
export default _default;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
import { LinearGenomeViewModel } from '..';
|
|
2
3
|
declare function ZoomControls({ model }: {
|
|
3
4
|
model: LinearGenomeViewModel;
|
|
4
|
-
}): JSX.Element;
|
|
5
|
+
}): React.JSX.Element;
|
|
5
6
|
declare const _default: typeof ZoomControls;
|
|
6
7
|
export default _default;
|
|
@@ -45,6 +45,7 @@ export declare const SPACING = 7;
|
|
|
45
45
|
export declare const WIDGET_HEIGHT = 32;
|
|
46
46
|
/**
|
|
47
47
|
* #stateModel LinearGenomeView
|
|
48
|
+
* #category view
|
|
48
49
|
*/
|
|
49
50
|
export declare function stateModelFactory(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
|
|
50
51
|
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
@@ -90,7 +91,7 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
90
91
|
afterDisplayedRegionsSetCallbacks: Function[];
|
|
91
92
|
scaleFactor: number;
|
|
92
93
|
trackRefs: {
|
|
93
|
-
[key: string]:
|
|
94
|
+
[key: string]: HTMLDivElement;
|
|
94
95
|
};
|
|
95
96
|
coarseDynamicBlocks: BaseBlock[];
|
|
96
97
|
coarseTotalBp: number;
|
|
@@ -402,18 +403,18 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
402
403
|
/**
|
|
403
404
|
* #getter
|
|
404
405
|
* static blocks are an important concept jbrowse uses to avoid
|
|
405
|
-
* re-rendering when you scroll to the side. when you horizontally
|
|
406
|
-
* right, old blocks to the left may be removed, and new
|
|
407
|
-
* instantiated on the right. tracks may use the static
|
|
408
|
-
* data for the region represented by the block
|
|
406
|
+
* re-rendering when you scroll to the side. when you horizontally
|
|
407
|
+
* scroll to the right, old blocks to the left may be removed, and new
|
|
408
|
+
* blocks may be instantiated on the right. tracks may use the static
|
|
409
|
+
* blocks to render their data for the region represented by the block
|
|
409
410
|
*/
|
|
410
411
|
readonly staticBlocks: BlockSet;
|
|
411
412
|
/**
|
|
412
413
|
* #getter
|
|
413
414
|
* dynamic blocks represent the exact coordinates of the currently
|
|
414
|
-
* visible genome regions on the screen. they are similar to static
|
|
415
|
-
* static blocks can go offscreen while dynamic blocks
|
|
416
|
-
* is on screen
|
|
415
|
+
* visible genome regions on the screen. they are similar to static
|
|
416
|
+
* blocks, but static blocks can go offscreen while dynamic blocks
|
|
417
|
+
* represent exactly what is on screen
|
|
417
418
|
*/
|
|
418
419
|
readonly dynamicBlocks: BlockSet;
|
|
419
420
|
/**
|
|
@@ -423,8 +424,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
423
424
|
readonly roundedDynamicBlocks: BaseBlock[];
|
|
424
425
|
/**
|
|
425
426
|
* #getter
|
|
426
|
-
* a single "combo-locstring" representing all the regions visible
|
|
427
|
-
*
|
|
427
|
+
* a single "combo-locstring" representing all the regions visible on
|
|
428
|
+
* the screen
|
|
428
429
|
*/
|
|
429
430
|
readonly visibleLocStrings: string;
|
|
430
431
|
/**
|
|
@@ -470,8 +471,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
470
471
|
* Navigate to a location based on its refName and optionally start, end,
|
|
471
472
|
* and assemblyName. Will not try to change displayed regions, use
|
|
472
473
|
* `navToLocations` instead. Only navigates to a location if it is
|
|
473
|
-
* entirely within a displayedRegion. Navigates to the first matching
|
|
474
|
-
* encountered.
|
|
474
|
+
* entirely within a displayedRegion. Navigates to the first matching
|
|
475
|
+
* location encountered.
|
|
475
476
|
*
|
|
476
477
|
* Throws an error if navigation was unsuccessful
|
|
477
478
|
*
|
|
@@ -2,7 +2,6 @@ import { lazy } from 'react';
|
|
|
2
2
|
import { getConf } from '@jbrowse/core/configuration';
|
|
3
3
|
import { BaseViewModel } from '@jbrowse/core/pluggableElementTypes/models';
|
|
4
4
|
import { ElementId, Region as MUIRegion } from '@jbrowse/core/util/types/mst';
|
|
5
|
-
import { ReturnToImportFormDialog } from '@jbrowse/core/ui';
|
|
6
5
|
import { assembleLocString, clamp, findLast, getContainingView, getSession, isViewContainer, isSessionModelWithWidgets, isSessionWithAddTracks, localStorageGetItem, measureText, springAnimate, sum, } from '@jbrowse/core/util';
|
|
7
6
|
import calculateDynamicBlocks from '@jbrowse/core/util/calculateDynamicBlocks';
|
|
8
7
|
import calculateStaticBlocks from '@jbrowse/core/util/calculateStaticBlocks';
|
|
@@ -22,14 +21,13 @@ import FolderOpenIcon from '@mui/icons-material/FolderOpen';
|
|
|
22
21
|
import PhotoCameraIcon from '@mui/icons-material/PhotoCamera';
|
|
23
22
|
import ZoomInIcon from '@mui/icons-material/ZoomIn';
|
|
24
23
|
import MenuOpenIcon from '@mui/icons-material/MenuOpen';
|
|
25
|
-
// locals
|
|
26
|
-
import { renderToSvg } from './svgcomponents/SVGLinearGenomeView';
|
|
27
|
-
import ExportSvgDlg from './components/ExportSvgDialog';
|
|
28
24
|
import MiniControls from './components/MiniControls';
|
|
29
25
|
import Header from './components/Header';
|
|
30
26
|
import { generateLocations, parseLocStrings } from './util';
|
|
31
27
|
// lazies
|
|
28
|
+
const ReturnToImportFormDialog = lazy(() => import('@jbrowse/core/ui/ReturnToImportFormDialog'));
|
|
32
29
|
const SequenceSearchDialog = lazy(() => import('./components/SequenceSearchDialog'));
|
|
30
|
+
const ExportSvgDialog = lazy(() => import('./components/ExportSvgDialog'));
|
|
33
31
|
const GetSequenceDialog = lazy(() => import('./components/GetSequenceDialog'));
|
|
34
32
|
const SearchResultsDialog = lazy(() => import('./components/SearchResultsDialog'));
|
|
35
33
|
function calculateVisibleLocStrings(contentBlocks) {
|
|
@@ -54,6 +52,7 @@ export const SPACING = 7;
|
|
|
54
52
|
export const WIDGET_HEIGHT = 32;
|
|
55
53
|
/**
|
|
56
54
|
* #stateModel LinearGenomeView
|
|
55
|
+
* #category view
|
|
57
56
|
*/
|
|
58
57
|
export function stateModelFactory(pluginManager) {
|
|
59
58
|
return types
|
|
@@ -140,7 +139,6 @@ export function stateModelFactory(pluginManager) {
|
|
|
140
139
|
// which is basically like an onLoad
|
|
141
140
|
afterDisplayedRegionsSetCallbacks: [],
|
|
142
141
|
scaleFactor: 1,
|
|
143
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
144
142
|
trackRefs: {},
|
|
145
143
|
coarseDynamicBlocks: [],
|
|
146
144
|
coarseTotalBp: 0,
|
|
@@ -467,7 +465,6 @@ export function stateModelFactory(pluginManager) {
|
|
|
467
465
|
getSession(self).queueDialog(handleClose => [
|
|
468
466
|
SearchResultsDialog,
|
|
469
467
|
{
|
|
470
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
471
468
|
model: self,
|
|
472
469
|
searchResults,
|
|
473
470
|
searchQuery,
|
|
@@ -731,7 +728,7 @@ export function stateModelFactory(pluginManager) {
|
|
|
731
728
|
* creates an svg export and save using FileSaver
|
|
732
729
|
*/
|
|
733
730
|
async exportSvg(opts = {}) {
|
|
734
|
-
|
|
731
|
+
const { renderToSvg } = await import('./svgcomponents/SVGLinearGenomeView');
|
|
735
732
|
const html = await renderToSvg(self, opts);
|
|
736
733
|
const blob = new Blob([html], { type: 'image/svg+xml' });
|
|
737
734
|
saveAs(blob, opts.filename || 'image.svg');
|
|
@@ -845,7 +842,7 @@ export function stateModelFactory(pluginManager) {
|
|
|
845
842
|
icon: PhotoCameraIcon,
|
|
846
843
|
onClick: () => {
|
|
847
844
|
getSession(self).queueDialog(handleClose => [
|
|
848
|
-
|
|
845
|
+
ExportSvgDialog,
|
|
849
846
|
{ model: self, handleClose },
|
|
850
847
|
]);
|
|
851
848
|
},
|
|
@@ -956,10 +953,10 @@ export function stateModelFactory(pluginManager) {
|
|
|
956
953
|
/**
|
|
957
954
|
* #getter
|
|
958
955
|
* static blocks are an important concept jbrowse uses to avoid
|
|
959
|
-
* re-rendering when you scroll to the side. when you horizontally
|
|
960
|
-
* right, old blocks to the left may be removed, and new
|
|
961
|
-
* instantiated on the right. tracks may use the static
|
|
962
|
-
* data for the region represented by the block
|
|
956
|
+
* re-rendering when you scroll to the side. when you horizontally
|
|
957
|
+
* scroll to the right, old blocks to the left may be removed, and new
|
|
958
|
+
* blocks may be instantiated on the right. tracks may use the static
|
|
959
|
+
* blocks to render their data for the region represented by the block
|
|
963
960
|
*/
|
|
964
961
|
get staticBlocks() {
|
|
965
962
|
const ret = calculateStaticBlocks(self);
|
|
@@ -973,9 +970,9 @@ export function stateModelFactory(pluginManager) {
|
|
|
973
970
|
/**
|
|
974
971
|
* #getter
|
|
975
972
|
* dynamic blocks represent the exact coordinates of the currently
|
|
976
|
-
* visible genome regions on the screen. they are similar to static
|
|
977
|
-
* static blocks can go offscreen while dynamic blocks
|
|
978
|
-
* is on screen
|
|
973
|
+
* visible genome regions on the screen. they are similar to static
|
|
974
|
+
* blocks, but static blocks can go offscreen while dynamic blocks
|
|
975
|
+
* represent exactly what is on screen
|
|
979
976
|
*/
|
|
980
977
|
get dynamicBlocks() {
|
|
981
978
|
return calculateDynamicBlocks(self);
|
|
@@ -993,8 +990,8 @@ export function stateModelFactory(pluginManager) {
|
|
|
993
990
|
},
|
|
994
991
|
/**
|
|
995
992
|
* #getter
|
|
996
|
-
* a single "combo-locstring" representing all the regions visible
|
|
997
|
-
*
|
|
993
|
+
* a single "combo-locstring" representing all the regions visible on
|
|
994
|
+
* the screen
|
|
998
995
|
*/
|
|
999
996
|
get visibleLocStrings() {
|
|
1000
997
|
return calculateVisibleLocStrings(this.dynamicBlocks.contentBlocks);
|
|
@@ -1097,8 +1094,8 @@ export function stateModelFactory(pluginManager) {
|
|
|
1097
1094
|
* Navigate to a location based on its refName and optionally start, end,
|
|
1098
1095
|
* and assemblyName. Will not try to change displayed regions, use
|
|
1099
1096
|
* `navToLocations` instead. Only navigates to a location if it is
|
|
1100
|
-
* entirely within a displayedRegion. Navigates to the first matching
|
|
1101
|
-
* encountered.
|
|
1097
|
+
* entirely within a displayedRegion. Navigates to the first matching
|
|
1098
|
+
* location encountered.
|
|
1102
1099
|
*
|
|
1103
1100
|
* Throws an error if navigation was unsuccessful
|
|
1104
1101
|
*
|
|
@@ -1123,8 +1120,11 @@ export function stateModelFactory(pluginManager) {
|
|
|
1123
1120
|
if (locations.some(l => l.start !== undefined && l.end !== undefined && l.start > l.end)) {
|
|
1124
1121
|
throw new Error('found start greater than end');
|
|
1125
1122
|
}
|
|
1126
|
-
const f1 = locations
|
|
1127
|
-
const f2 = locations
|
|
1123
|
+
const f1 = locations.at(0);
|
|
1124
|
+
const f2 = locations.at(-1);
|
|
1125
|
+
if (!f1 || !f2) {
|
|
1126
|
+
return;
|
|
1127
|
+
}
|
|
1128
1128
|
const a = self.assemblyNames[0];
|
|
1129
1129
|
const { assemblyManager } = getSession(self);
|
|
1130
1130
|
const assembly1 = assemblyManager.get(f1.assemblyName || a);
|