@jbrowse/plugin-linear-genome-view 1.7.11 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BaseLinearDisplay/components/BaseLinearDisplay.js +119 -139
- package/dist/BaseLinearDisplay/components/BaseLinearDisplay.js.map +1 -0
- package/dist/BaseLinearDisplay/components/Block.js +53 -74
- package/dist/BaseLinearDisplay/components/Block.js.map +1 -0
- package/dist/BaseLinearDisplay/components/LinearBlocks.d.ts +11 -1
- package/dist/BaseLinearDisplay/components/LinearBlocks.js +64 -103
- package/dist/BaseLinearDisplay/components/LinearBlocks.js.map +1 -0
- package/dist/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js +145 -175
- package/dist/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js.map +1 -0
- package/dist/BaseLinearDisplay/components/Tooltip.js +109 -116
- package/dist/BaseLinearDisplay/components/Tooltip.js.map +1 -0
- package/dist/BaseLinearDisplay/index.js +13 -40
- package/dist/BaseLinearDisplay/index.js.map +1 -0
- package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +19 -14
- package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js +605 -684
- package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js.map +1 -0
- package/dist/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.js +15 -22
- package/dist/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.js.map +1 -0
- package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.d.ts +7 -8
- package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js +266 -312
- package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js.map +1 -0
- package/dist/LinearBareDisplay/configSchema.js +11 -17
- package/dist/LinearBareDisplay/configSchema.js.map +1 -0
- package/dist/LinearBareDisplay/index.js +7 -20
- package/dist/LinearBareDisplay/index.js.map +1 -0
- package/dist/LinearBareDisplay/model.d.ts +15 -13
- package/dist/LinearBareDisplay/model.js +36 -42
- package/dist/LinearBareDisplay/model.js.map +1 -0
- package/dist/LinearBasicDisplay/components/SetMaxHeight.d.ts +1 -1
- package/dist/LinearBasicDisplay/components/SetMaxHeight.js +76 -85
- package/dist/LinearBasicDisplay/components/SetMaxHeight.js.map +1 -0
- package/dist/LinearBasicDisplay/configSchema.js +15 -23
- package/dist/LinearBasicDisplay/configSchema.js.map +1 -0
- package/dist/LinearBasicDisplay/index.js +10 -22
- package/dist/LinearBasicDisplay/index.js.map +1 -0
- package/dist/LinearBasicDisplay/model.d.ts +20 -14
- package/dist/LinearBasicDisplay/model.js +180 -159
- package/dist/LinearBasicDisplay/model.js.map +1 -0
- package/dist/LinearGenomeView/components/CenterLine.d.ts +2 -8
- package/dist/LinearGenomeView/components/CenterLine.js +60 -74
- package/dist/LinearGenomeView/components/CenterLine.js.map +1 -0
- package/dist/LinearGenomeView/components/ExportSvgDialog.js +141 -141
- package/dist/LinearGenomeView/components/ExportSvgDialog.js.map +1 -0
- package/dist/LinearGenomeView/components/Header.d.ts +1 -0
- package/dist/LinearGenomeView/components/Header.js +70 -125
- package/dist/LinearGenomeView/components/Header.js.map +1 -0
- package/dist/LinearGenomeView/components/HelpDialog.d.ts +0 -1
- package/dist/LinearGenomeView/components/HelpDialog.js +62 -44
- package/dist/LinearGenomeView/components/HelpDialog.js.map +1 -0
- package/dist/LinearGenomeView/components/ImportForm.d.ts +1 -0
- package/dist/LinearGenomeView/components/ImportForm.js +222 -289
- package/dist/LinearGenomeView/components/ImportForm.js.map +1 -0
- package/dist/LinearGenomeView/components/LinearGenomeView.js +64 -124
- package/dist/LinearGenomeView/components/LinearGenomeView.js.map +1 -0
- package/dist/LinearGenomeView/components/LinearGenomeViewSvg.js +198 -337
- package/dist/LinearGenomeView/components/LinearGenomeViewSvg.js.map +1 -0
- package/dist/LinearGenomeView/components/MiniControls.js +64 -78
- package/dist/LinearGenomeView/components/MiniControls.js.map +1 -0
- package/dist/LinearGenomeView/components/OverviewRubberBand.js +226 -293
- package/dist/LinearGenomeView/components/OverviewRubberBand.js.map +1 -0
- package/dist/LinearGenomeView/components/OverviewScaleBar.d.ts +3 -3
- package/dist/LinearGenomeView/components/OverviewScaleBar.js +275 -370
- package/dist/LinearGenomeView/components/OverviewScaleBar.js.map +1 -0
- package/dist/LinearGenomeView/components/RefNameAutocomplete.d.ts +1 -1
- package/dist/LinearGenomeView/components/RefNameAutocomplete.js +237 -324
- package/dist/LinearGenomeView/components/RefNameAutocomplete.js.map +1 -0
- package/dist/LinearGenomeView/components/RubberBand.js +229 -296
- package/dist/LinearGenomeView/components/RubberBand.js.map +1 -0
- package/dist/LinearGenomeView/components/Ruler.js +45 -90
- package/dist/LinearGenomeView/components/Ruler.js.map +1 -0
- package/dist/LinearGenomeView/components/ScaleBar.d.ts +8 -403
- package/dist/LinearGenomeView/components/ScaleBar.js +121 -172
- package/dist/LinearGenomeView/components/ScaleBar.js.map +1 -0
- package/dist/LinearGenomeView/components/SearchBox.js +155 -166
- package/dist/LinearGenomeView/components/SearchBox.js.map +1 -0
- package/dist/LinearGenomeView/components/SearchResultsDialog.d.ts +0 -1
- package/dist/LinearGenomeView/components/SearchResultsDialog.js +105 -149
- package/dist/LinearGenomeView/components/SearchResultsDialog.js.map +1 -0
- package/dist/LinearGenomeView/components/SequenceDialog.js +219 -272
- package/dist/LinearGenomeView/components/SequenceDialog.js.map +1 -0
- package/dist/LinearGenomeView/components/TrackContainer.js +116 -156
- package/dist/LinearGenomeView/components/TrackContainer.js.map +1 -0
- package/dist/LinearGenomeView/components/TrackLabel.d.ts +6 -42
- package/dist/LinearGenomeView/components/TrackLabel.js +115 -134
- package/dist/LinearGenomeView/components/TrackLabel.js.map +1 -0
- package/dist/LinearGenomeView/components/TracksContainer.d.ts +1 -1
- package/dist/LinearGenomeView/components/TracksContainer.js +172 -199
- package/dist/LinearGenomeView/components/TracksContainer.js.map +1 -0
- package/dist/LinearGenomeView/components/VerticalGuides.d.ts +2 -3
- package/dist/LinearGenomeView/components/VerticalGuides.js +66 -104
- package/dist/LinearGenomeView/components/VerticalGuides.js.map +1 -0
- package/dist/LinearGenomeView/components/ZoomControls.js +72 -87
- package/dist/LinearGenomeView/components/ZoomControls.js.map +1 -0
- package/dist/LinearGenomeView/components/util.js +94 -71
- package/dist/LinearGenomeView/components/util.js.map +1 -0
- package/dist/LinearGenomeView/index.d.ts +3 -3
- package/dist/LinearGenomeView/index.js +1163 -1414
- package/dist/LinearGenomeView/index.js.map +1 -0
- package/dist/LinearGenomeView/util.js +76 -83
- package/dist/LinearGenomeView/util.js.map +1 -0
- package/dist/index.d.ts +98 -48
- package/dist/index.js +225 -295
- package/dist/index.js.map +1 -0
- package/esm/BaseLinearDisplay/components/BaseLinearDisplay.d.ts +9 -0
- package/esm/BaseLinearDisplay/components/BaseLinearDisplay.js +68 -0
- package/esm/BaseLinearDisplay/components/BaseLinearDisplay.js.map +1 -0
- package/esm/BaseLinearDisplay/components/Block.d.ts +15 -0
- package/esm/BaseLinearDisplay/components/Block.js +46 -0
- package/esm/BaseLinearDisplay/components/Block.js.map +1 -0
- package/esm/BaseLinearDisplay/components/LinearBlocks.d.ts +22 -0
- package/esm/BaseLinearDisplay/components/LinearBlocks.js +62 -0
- package/esm/BaseLinearDisplay/components/LinearBlocks.js.map +1 -0
- package/esm/BaseLinearDisplay/components/ServerSideRenderedBlockContent.d.ts +4 -0
- package/esm/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js +113 -0
- package/esm/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js.map +1 -0
- package/esm/BaseLinearDisplay/components/Tooltip.d.ts +8 -0
- package/esm/BaseLinearDisplay/components/Tooltip.js +64 -0
- package/esm/BaseLinearDisplay/components/Tooltip.js.map +1 -0
- package/esm/BaseLinearDisplay/index.d.ts +5 -0
- package/esm/BaseLinearDisplay/index.js +4 -0
- package/esm/BaseLinearDisplay/index.js.map +1 -0
- package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +232 -0
- package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.js +541 -0
- package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.js.map +1 -0
- package/esm/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.d.ts +1 -0
- package/esm/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.js +14 -0
- package/esm/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.js.map +1 -0
- package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.d.ts +96 -0
- package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.js +225 -0
- package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.js.map +1 -0
- package/esm/LinearBareDisplay/configSchema.d.ts +2 -0
- package/esm/LinearBareDisplay/configSchema.js +9 -0
- package/esm/LinearBareDisplay/configSchema.js.map +1 -0
- package/esm/LinearBareDisplay/index.d.ts +2 -0
- package/esm/LinearBareDisplay/index.js +3 -0
- package/esm/LinearBareDisplay/index.js.map +1 -0
- package/esm/LinearBareDisplay/model.d.ts +194 -0
- package/esm/LinearBareDisplay/model.js +28 -0
- package/esm/LinearBareDisplay/model.js.map +1 -0
- package/esm/LinearBasicDisplay/components/SetMaxHeight.d.ts +10 -0
- package/esm/LinearBasicDisplay/components/SetMaxHeight.js +40 -0
- package/esm/LinearBasicDisplay/components/SetMaxHeight.js.map +1 -0
- package/esm/LinearBasicDisplay/configSchema.d.ts +2 -0
- package/esm/LinearBasicDisplay/configSchema.js +14 -0
- package/esm/LinearBasicDisplay/configSchema.js.map +1 -0
- package/esm/LinearBasicDisplay/index.d.ts +2 -0
- package/esm/LinearBasicDisplay/index.js +3 -0
- package/esm/LinearBasicDisplay/index.js.map +1 -0
- package/esm/LinearBasicDisplay/model.d.ts +218 -0
- package/esm/LinearBasicDisplay/model.js +127 -0
- package/esm/LinearBasicDisplay/model.js.map +1 -0
- package/esm/LinearGenomeView/components/CenterLine.d.ts +8 -0
- package/esm/LinearGenomeView/components/CenterLine.js +40 -0
- package/esm/LinearGenomeView/components/CenterLine.js.map +1 -0
- package/esm/LinearGenomeView/components/ExportSvgDialog.d.ts +6 -0
- package/esm/LinearGenomeView/components/ExportSvgDialog.js +52 -0
- package/esm/LinearGenomeView/components/ExportSvgDialog.js.map +1 -0
- package/esm/LinearGenomeView/components/Header.d.ts +7 -0
- package/esm/LinearGenomeView/components/Header.js +81 -0
- package/esm/LinearGenomeView/components/Header.js.map +1 -0
- package/esm/LinearGenomeView/components/HelpDialog.d.ts +4 -0
- package/esm/LinearGenomeView/components/HelpDialog.js +58 -0
- package/esm/LinearGenomeView/components/HelpDialog.js.map +1 -0
- package/esm/LinearGenomeView/components/ImportForm.d.ts +7 -0
- package/esm/LinearGenomeView/components/ImportForm.js +141 -0
- package/esm/LinearGenomeView/components/ImportForm.js.map +1 -0
- package/esm/LinearGenomeView/components/LinearGenomeView.d.ts +7 -0
- package/esm/LinearGenomeView/components/LinearGenomeView.js +67 -0
- package/esm/LinearGenomeView/components/LinearGenomeView.js.map +1 -0
- package/esm/LinearGenomeView/components/LinearGenomeViewSvg.d.ts +4 -0
- package/esm/LinearGenomeView/components/LinearGenomeViewSvg.js +132 -0
- package/esm/LinearGenomeView/components/LinearGenomeViewSvg.js.map +1 -0
- package/esm/LinearGenomeView/components/MiniControls.d.ts +6 -0
- package/esm/LinearGenomeView/components/MiniControls.js +25 -0
- package/esm/LinearGenomeView/components/MiniControls.js.map +1 -0
- package/esm/LinearGenomeView/components/OverviewRubberBand.d.ts +22 -0
- package/esm/LinearGenomeView/components/OverviewRubberBand.js +194 -0
- package/esm/LinearGenomeView/components/OverviewRubberBand.js.map +1 -0
- package/esm/LinearGenomeView/components/OverviewScaleBar.d.ts +148 -0
- package/esm/LinearGenomeView/components/OverviewScaleBar.js +287 -0
- package/esm/LinearGenomeView/components/OverviewScaleBar.js.map +1 -0
- package/esm/LinearGenomeView/components/RefNameAutocomplete.d.ts +22 -0
- package/esm/LinearGenomeView/components/RefNameAutocomplete.js +136 -0
- package/esm/LinearGenomeView/components/RefNameAutocomplete.js.map +1 -0
- package/esm/LinearGenomeView/components/RubberBand.d.ts +9 -0
- package/esm/LinearGenomeView/components/RubberBand.js +198 -0
- package/esm/LinearGenomeView/components/RubberBand.js.map +1 -0
- package/esm/LinearGenomeView/components/Ruler.d.ts +27 -0
- package/esm/LinearGenomeView/components/Ruler.js +50 -0
- package/esm/LinearGenomeView/components/Ruler.js.map +1 -0
- package/esm/LinearGenomeView/components/ScaleBar.d.ts +10 -0
- package/esm/LinearGenomeView/components/ScaleBar.js +112 -0
- package/esm/LinearGenomeView/components/ScaleBar.js.map +1 -0
- package/esm/LinearGenomeView/components/SearchBox.d.ts +8 -0
- package/esm/LinearGenomeView/components/SearchBox.js +94 -0
- package/esm/LinearGenomeView/components/SearchBox.js.map +1 -0
- package/esm/LinearGenomeView/components/SearchResultsDialog.d.ts +7 -0
- package/esm/LinearGenomeView/components/SearchResultsDialog.js +107 -0
- package/esm/LinearGenomeView/components/SearchResultsDialog.js.map +1 -0
- package/esm/LinearGenomeView/components/SequenceDialog.d.ts +8 -0
- package/esm/LinearGenomeView/components/SequenceDialog.js +147 -0
- package/esm/LinearGenomeView/components/SequenceDialog.js.map +1 -0
- package/esm/LinearGenomeView/components/TrackContainer.d.ts +9 -0
- package/esm/LinearGenomeView/components/TrackContainer.js +109 -0
- package/esm/LinearGenomeView/components/TrackContainer.js.map +1 -0
- package/esm/LinearGenomeView/components/TrackLabel.d.ts +8 -0
- package/esm/LinearGenomeView/components/TrackLabel.js +89 -0
- package/esm/LinearGenomeView/components/TrackLabel.js.map +1 -0
- package/esm/LinearGenomeView/components/TracksContainer.d.ts +10 -0
- package/esm/LinearGenomeView/components/TracksContainer.js +142 -0
- package/esm/LinearGenomeView/components/TracksContainer.js.map +1 -0
- package/esm/LinearGenomeView/components/VerticalGuides.d.ts +8 -0
- package/esm/LinearGenomeView/components/VerticalGuides.js +71 -0
- package/esm/LinearGenomeView/components/VerticalGuides.js.map +1 -0
- package/esm/LinearGenomeView/components/ZoomControls.d.ts +7 -0
- package/esm/LinearGenomeView/components/ZoomControls.js +32 -0
- package/esm/LinearGenomeView/components/ZoomControls.js.map +1 -0
- package/esm/LinearGenomeView/components/util.d.ts +14 -0
- package/esm/LinearGenomeView/components/util.js +17 -0
- package/esm/LinearGenomeView/components/util.js.map +1 -0
- package/esm/LinearGenomeView/index.d.ts +288 -0
- package/esm/LinearGenomeView/index.js +1124 -0
- package/esm/LinearGenomeView/index.js.map +1 -0
- package/esm/LinearGenomeView/util.d.ts +14 -0
- package/esm/LinearGenomeView/util.js +62 -0
- package/esm/LinearGenomeView/util.js.map +1 -0
- package/esm/index.d.ts +615 -0
- package/esm/index.js +127 -0
- package/esm/index.js.map +1 -0
- package/package.json +21 -14
- package/src/BaseLinearDisplay/components/BaseLinearDisplay.tsx +4 -3
- package/src/BaseLinearDisplay/components/Block.tsx +5 -5
- package/src/BaseLinearDisplay/components/LinearBlocks.tsx +4 -4
- package/src/BaseLinearDisplay/components/ServerSideRenderedBlockContent.tsx +7 -8
- package/src/BaseLinearDisplay/components/Tooltip.tsx +14 -4
- package/src/BaseLinearDisplay/models/BaseLinearDisplayModel.tsx +6 -4
- package/src/BaseLinearDisplay/models/serverSideRenderedBlock.ts +1 -1
- package/src/LinearBasicDisplay/components/SetMaxHeight.tsx +10 -7
- package/src/LinearBasicDisplay/model.ts +19 -11
- package/src/LinearGenomeView/components/CenterLine.tsx +6 -11
- package/src/LinearGenomeView/components/ExportSvgDialog.tsx +5 -5
- package/src/LinearGenomeView/components/Header.tsx +10 -15
- package/src/LinearGenomeView/components/HelpDialog.tsx +5 -5
- package/src/LinearGenomeView/components/ImportForm.tsx +6 -12
- package/src/LinearGenomeView/components/LinearGenomeView.test.js +16 -6
- package/src/LinearGenomeView/components/LinearGenomeView.tsx +4 -3
- package/src/LinearGenomeView/components/MiniControls.tsx +29 -40
- package/src/LinearGenomeView/components/OverviewRubberBand.tsx +6 -10
- package/src/LinearGenomeView/components/OverviewScaleBar.tsx +61 -59
- package/src/LinearGenomeView/components/RefNameAutocomplete.tsx +13 -44
- package/src/LinearGenomeView/components/RubberBand.tsx +12 -17
- package/src/LinearGenomeView/components/Ruler.tsx +5 -11
- package/src/LinearGenomeView/components/ScaleBar.tsx +23 -27
- package/src/LinearGenomeView/components/SearchBox.tsx +4 -3
- package/src/LinearGenomeView/components/SearchResultsDialog.tsx +7 -6
- package/src/LinearGenomeView/components/SequenceDialog.tsx +9 -9
- package/src/LinearGenomeView/components/TrackContainer.tsx +12 -12
- package/src/LinearGenomeView/components/TrackLabel.tsx +21 -31
- package/src/LinearGenomeView/components/TracksContainer.tsx +8 -13
- package/src/LinearGenomeView/components/VerticalGuides.tsx +9 -11
- package/src/LinearGenomeView/components/ZoomControls.tsx +12 -13
- package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.js.snap +500 -547
- package/src/LinearGenomeView/index.test.ts +1 -0
- package/src/LinearGenomeView/index.tsx +47 -62
- package/src/index.ts +1 -1
- package/dist/LinearBareDisplay/index.test.js +0 -33
- package/dist/LinearGenomeView/components/LinearGenomeView.test.js +0 -234
- package/dist/LinearGenomeView/components/ScaleBar.test.js +0 -180
- package/dist/LinearGenomeView/index.test.js +0 -1187
- package/dist/LinearGenomeView/util.test.js +0 -78
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { BaseBlock } from '@jbrowse/core/util/blockTypes';
|
|
3
|
+
declare const ContentBlock: ({ block, children }: {
|
|
4
|
+
block: BaseBlock;
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
}) => JSX.Element;
|
|
7
|
+
declare function ElidedBlock({ width }: {
|
|
8
|
+
width: number;
|
|
9
|
+
}): JSX.Element;
|
|
10
|
+
declare function InterRegionPaddingBlock({ boundary, width, style, }: {
|
|
11
|
+
boundary: boolean;
|
|
12
|
+
width: number;
|
|
13
|
+
style?: React.CSSProperties;
|
|
14
|
+
}): JSX.Element;
|
|
15
|
+
export { ContentBlock, ElidedBlock, InterRegionPaddingBlock };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { makeStyles } from 'tss-react/mui';
|
|
3
|
+
import { observer } from 'mobx-react';
|
|
4
|
+
const useStyles = makeStyles()(theme => ({
|
|
5
|
+
contentBlock: {
|
|
6
|
+
position: 'relative',
|
|
7
|
+
minHeight: '100%',
|
|
8
|
+
boxSizing: 'border-box',
|
|
9
|
+
whiteSpace: 'nowrap',
|
|
10
|
+
overflow: 'hidden',
|
|
11
|
+
},
|
|
12
|
+
elidedBlock: {
|
|
13
|
+
minHeight: '100%',
|
|
14
|
+
boxSizing: 'border-box',
|
|
15
|
+
backgroundColor: '#999',
|
|
16
|
+
backgroundImage: 'repeating-linear-gradient(90deg, transparent, transparent 1px, rgba(255,255,255,.5) 1px, rgba(255,255,255,.5) 3px)',
|
|
17
|
+
},
|
|
18
|
+
interRegionPaddingBlock: {
|
|
19
|
+
minHeight: '100%',
|
|
20
|
+
backgroundColor: theme.palette.text.primary,
|
|
21
|
+
},
|
|
22
|
+
boundaryPaddingBlock: {
|
|
23
|
+
minHeight: '100%',
|
|
24
|
+
backgroundColor: theme.palette.action.disabledBackground,
|
|
25
|
+
},
|
|
26
|
+
}));
|
|
27
|
+
const ContentBlock = observer(({ block, children }) => {
|
|
28
|
+
const { classes } = useStyles();
|
|
29
|
+
const { widthPx } = block;
|
|
30
|
+
return (React.createElement("div", { style: { width: widthPx }, className: classes.contentBlock }, children));
|
|
31
|
+
});
|
|
32
|
+
function ElidedBlock({ width }) {
|
|
33
|
+
const { classes } = useStyles();
|
|
34
|
+
return React.createElement("div", { className: classes.elidedBlock, style: { width } });
|
|
35
|
+
}
|
|
36
|
+
function InterRegionPaddingBlock({ boundary, width, style = {}, }) {
|
|
37
|
+
const { classes } = useStyles();
|
|
38
|
+
return (React.createElement("div", { style: {
|
|
39
|
+
...style,
|
|
40
|
+
width,
|
|
41
|
+
}, className: boundary
|
|
42
|
+
? classes.boundaryPaddingBlock
|
|
43
|
+
: classes.interRegionPaddingBlock }));
|
|
44
|
+
}
|
|
45
|
+
export { ContentBlock, ElidedBlock, InterRegionPaddingBlock };
|
|
46
|
+
//# sourceMappingURL=Block.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Block.js","sourceRoot":"","sources":["../../../src/BaseLinearDisplay/components/Block.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvC,YAAY,EAAE;QACZ,QAAQ,EAAE,UAAU;QACpB,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,YAAY;QACvB,UAAU,EAAE,QAAQ;QACpB,QAAQ,EAAE,QAAQ;KACnB;IACD,WAAW,EAAE;QACX,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,YAAY;QACvB,eAAe,EAAE,MAAM;QACvB,eAAe,EACb,oHAAoH;KACvH;IACD,uBAAuB,EAAE;QACvB,SAAS,EAAE,MAAM;QACjB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO;KAC5C;IACD,oBAAoB,EAAE;QACpB,SAAS,EAAE,MAAM;QACjB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB;KACzD;CACF,CAAC,CAAC,CAAA;AAEH,MAAM,YAAY,GAAG,QAAQ,CAC3B,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAmD,EAAE,EAAE;IACvE,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IACzB,OAAO,CACL,6BAAK,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,YAAY,IAC5D,QAAQ,CACL,CACP,CAAA;AACH,CAAC,CACF,CAAA;AAED,SAAS,WAAW,CAAC,EAAE,KAAK,EAAqB;IAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,OAAO,6BAAK,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAI,CAAA;AAClE,CAAC;AAED,SAAS,uBAAuB,CAAC,EAC/B,QAAQ,EACR,KAAK,EACL,KAAK,GAAG,EAAE,GAKX;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,OAAO,CACL,6BACE,KAAK,EAAE;YACL,GAAG,KAAK;YACR,KAAK;SACN,EACD,SAAS,EACP,QAAQ;YACN,CAAC,CAAC,OAAO,CAAC,oBAAoB;YAC9B,CAAC,CAAC,OAAO,CAAC,uBAAuB,GAErC,CACH,CAAA;AACH,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { BaseLinearDisplayModel } from '../models/BaseLinearDisplayModel';
|
|
3
|
+
declare const useStyles: (params: void, styleOverrides?: {
|
|
4
|
+
props: {
|
|
5
|
+
classes?: Record<string, string> | undefined;
|
|
6
|
+
} & Record<string, unknown>;
|
|
7
|
+
ownerState?: Record<string, unknown> | undefined;
|
|
8
|
+
} | undefined) => {
|
|
9
|
+
classes: Record<"linearBlocks" | "heightOverflowed", string>;
|
|
10
|
+
theme: import("@mui/material").Theme;
|
|
11
|
+
css: import("tss-react/types").Css;
|
|
12
|
+
cx: import("tss-react/types").Cx;
|
|
13
|
+
};
|
|
14
|
+
declare const RenderedBlocks: ({ model }: {
|
|
15
|
+
model: BaseLinearDisplayModel;
|
|
16
|
+
}) => JSX.Element;
|
|
17
|
+
declare function LinearBlocks({ model }: {
|
|
18
|
+
model: BaseLinearDisplayModel;
|
|
19
|
+
}): JSX.Element;
|
|
20
|
+
export { RenderedBlocks, useStyles };
|
|
21
|
+
declare const _default: typeof LinearBlocks;
|
|
22
|
+
export default _default;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { makeStyles } from 'tss-react/mui';
|
|
3
|
+
import { getContainingView } from '@jbrowse/core/util';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
5
|
+
import { ContentBlock, ElidedBlock, InterRegionPaddingBlock, } from '@jbrowse/core/util/blockTypes';
|
|
6
|
+
import { ContentBlock as ContentBlockComponent, ElidedBlock as ElidedBlockComponent, InterRegionPaddingBlock as InterRegionPaddingBlockComponent, } from './Block';
|
|
7
|
+
const useStyles = makeStyles()({
|
|
8
|
+
linearBlocks: {
|
|
9
|
+
whiteSpace: 'nowrap',
|
|
10
|
+
textAlign: 'left',
|
|
11
|
+
position: 'absolute',
|
|
12
|
+
minHeight: '100%',
|
|
13
|
+
display: 'flex',
|
|
14
|
+
},
|
|
15
|
+
heightOverflowed: {
|
|
16
|
+
position: 'absolute',
|
|
17
|
+
color: 'rgb(77,77,77)',
|
|
18
|
+
borderBottom: '2px solid rgb(77,77,77)',
|
|
19
|
+
textShadow: 'white 0px 0px 1px',
|
|
20
|
+
whiteSpace: 'nowrap',
|
|
21
|
+
width: '100%',
|
|
22
|
+
fontWeight: 'bold',
|
|
23
|
+
textAlign: 'center',
|
|
24
|
+
zIndex: 2000,
|
|
25
|
+
boxSizing: 'border-box',
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
const RenderedBlocks = observer(({ model }) => {
|
|
29
|
+
const { classes } = useStyles();
|
|
30
|
+
const { blockDefinitions, blockState } = model;
|
|
31
|
+
return (React.createElement(React.Fragment, null, blockDefinitions.map(block => {
|
|
32
|
+
if (block instanceof ContentBlock) {
|
|
33
|
+
const state = blockState.get(block.key);
|
|
34
|
+
return (React.createElement(ContentBlockComponent, { block: block, key: `${model.id}-${block.key}` },
|
|
35
|
+
state && state.ReactComponent ? (React.createElement(state.ReactComponent, { model: state })) : null,
|
|
36
|
+
state && state.maxHeightReached ? (React.createElement("div", { className: classes.heightOverflowed, style: {
|
|
37
|
+
top: state.layout.getTotalHeight() - 16,
|
|
38
|
+
pointerEvents: 'none',
|
|
39
|
+
height: 16,
|
|
40
|
+
} }, "Max height reached")) : null));
|
|
41
|
+
}
|
|
42
|
+
if (block instanceof ElidedBlock) {
|
|
43
|
+
return (React.createElement(ElidedBlockComponent, { key: `${model.id}-${block.key}`, width: block.widthPx }));
|
|
44
|
+
}
|
|
45
|
+
if (block instanceof InterRegionPaddingBlock) {
|
|
46
|
+
return (React.createElement(InterRegionPaddingBlockComponent, { key: block.key, width: block.widthPx, style: { background: 'none' }, boundary: block.variant === 'boundary' }));
|
|
47
|
+
}
|
|
48
|
+
throw new Error(`invalid block type ${typeof block}`);
|
|
49
|
+
})));
|
|
50
|
+
});
|
|
51
|
+
function LinearBlocks({ model }) {
|
|
52
|
+
const { classes } = useStyles();
|
|
53
|
+
const { blockDefinitions } = model;
|
|
54
|
+
const viewModel = getContainingView(model);
|
|
55
|
+
return (React.createElement("div", { "data-testid": "Blockset", className: classes.linearBlocks, style: {
|
|
56
|
+
left: blockDefinitions.offsetPx - viewModel.offsetPx,
|
|
57
|
+
} },
|
|
58
|
+
React.createElement(RenderedBlocks, { model: model })));
|
|
59
|
+
}
|
|
60
|
+
export { RenderedBlocks, useStyles };
|
|
61
|
+
export default observer(LinearBlocks);
|
|
62
|
+
//# sourceMappingURL=LinearBlocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinearBlocks.js","sourceRoot":"","sources":["../../../src/BaseLinearDisplay/components/LinearBlocks.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import { Typography, Button } from '@mui/material';
|
|
3
|
+
import { makeStyles } from 'tss-react/mui';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
5
|
+
import { getParent } from 'mobx-state-tree';
|
|
6
|
+
import { getParentRenderProps } from '@jbrowse/core/util/tracks';
|
|
7
|
+
import RefreshIcon from '@mui/icons-material/Refresh';
|
|
8
|
+
const useStyles = makeStyles()(theme => ({
|
|
9
|
+
loading: {
|
|
10
|
+
paddingLeft: '0.6em',
|
|
11
|
+
backgroundColor: theme.palette.action.disabledBackground,
|
|
12
|
+
backgroundImage: 'repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(255,255,255,.5) 5px, rgba(255,255,255,.5) 10px)',
|
|
13
|
+
height: '100%',
|
|
14
|
+
width: '100%',
|
|
15
|
+
pointerEvents: 'none',
|
|
16
|
+
textAlign: 'center',
|
|
17
|
+
},
|
|
18
|
+
blockMessage: {
|
|
19
|
+
width: '100%',
|
|
20
|
+
background: theme.palette.action.disabledBackground,
|
|
21
|
+
padding: theme.spacing(2),
|
|
22
|
+
pointerEvents: 'none',
|
|
23
|
+
textAlign: 'center',
|
|
24
|
+
},
|
|
25
|
+
blockError: {
|
|
26
|
+
padding: theme.spacing(2),
|
|
27
|
+
width: '100%',
|
|
28
|
+
whiteSpace: 'normal',
|
|
29
|
+
color: theme.palette.error.main,
|
|
30
|
+
overflowY: 'auto',
|
|
31
|
+
},
|
|
32
|
+
blockReactNodeMessage: {
|
|
33
|
+
width: '100%',
|
|
34
|
+
background: theme.palette.action.disabledBackground,
|
|
35
|
+
padding: theme.spacing(2),
|
|
36
|
+
textAlign: 'center',
|
|
37
|
+
},
|
|
38
|
+
dots: {
|
|
39
|
+
'&::after': {
|
|
40
|
+
display: 'inline-block',
|
|
41
|
+
animation: '$ellipsis 1.5s infinite',
|
|
42
|
+
content: '"."',
|
|
43
|
+
width: '1em',
|
|
44
|
+
textAlign: 'left',
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
'@keyframes ellipsis': {
|
|
48
|
+
'0%': {
|
|
49
|
+
content: '"."',
|
|
50
|
+
},
|
|
51
|
+
'33%': {
|
|
52
|
+
content: '".."',
|
|
53
|
+
},
|
|
54
|
+
'66%': {
|
|
55
|
+
content: '"..."',
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
}));
|
|
59
|
+
function Repeater({ children }) {
|
|
60
|
+
return (React.createElement("div", { style: { display: 'flex' } },
|
|
61
|
+
children,
|
|
62
|
+
children));
|
|
63
|
+
}
|
|
64
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
65
|
+
const LoadingMessage = observer(({ model }) => {
|
|
66
|
+
// only show the loading message after 300ms to prevent excessive flickering
|
|
67
|
+
const [shown, setShown] = useState(false);
|
|
68
|
+
const { classes } = useStyles();
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
let killed = false;
|
|
71
|
+
const timeout = setTimeout(() => {
|
|
72
|
+
if (!killed) {
|
|
73
|
+
setShown(true);
|
|
74
|
+
}
|
|
75
|
+
}, 300);
|
|
76
|
+
return () => {
|
|
77
|
+
clearTimeout(timeout);
|
|
78
|
+
killed = true;
|
|
79
|
+
};
|
|
80
|
+
}, []);
|
|
81
|
+
const { status: blockStatus } = model;
|
|
82
|
+
const { message: displayStatus } = getParent(model, 2);
|
|
83
|
+
const status = displayStatus || blockStatus;
|
|
84
|
+
return (React.createElement(React.Fragment, null, shown ? (React.createElement("div", { className: classes.loading },
|
|
85
|
+
React.createElement(Typography, { className: classes.dots, variant: "body2" }, status ? `${status}` : 'Loading'))) : null));
|
|
86
|
+
});
|
|
87
|
+
function BlockMessage({ messageContent, }) {
|
|
88
|
+
const { classes } = useStyles();
|
|
89
|
+
return React.isValidElement(messageContent) ? (React.createElement("div", { className: classes.blockReactNodeMessage }, messageContent)) : (React.createElement(Typography, { variant: "body2", className: classes.blockMessage }, messageContent));
|
|
90
|
+
}
|
|
91
|
+
function BlockError({ error, reload, displayHeight, }) {
|
|
92
|
+
const { classes } = useStyles();
|
|
93
|
+
return (React.createElement("div", { className: classes.blockError, style: { height: displayHeight } },
|
|
94
|
+
reload ? (React.createElement(Button, { "data-testid": "reload_button", onClick: reload, startIcon: React.createElement(RefreshIcon, null) }, "Reload")) : null,
|
|
95
|
+
React.createElement(Typography, { color: "error", variant: "body2", display: "inline" }, `${error}`)));
|
|
96
|
+
}
|
|
97
|
+
const ServerSideRenderedBlockContent = observer(({ model, }) => {
|
|
98
|
+
if (model.error) {
|
|
99
|
+
return (React.createElement(Repeater, null,
|
|
100
|
+
React.createElement(BlockError, { error: model.error, reload: model.reload, displayHeight: getParentRenderProps(model).displayModel.height })));
|
|
101
|
+
}
|
|
102
|
+
if (model.message) {
|
|
103
|
+
return (React.createElement(Repeater, null,
|
|
104
|
+
React.createElement(BlockMessage, { messageContent: model.message })));
|
|
105
|
+
}
|
|
106
|
+
if (!model.filled) {
|
|
107
|
+
return (React.createElement(Repeater, null,
|
|
108
|
+
React.createElement(LoadingMessage, { model: model })));
|
|
109
|
+
}
|
|
110
|
+
return model.reactElement;
|
|
111
|
+
});
|
|
112
|
+
export default ServerSideRenderedBlockContent;
|
|
113
|
+
//# sourceMappingURL=ServerSideRenderedBlockContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServerSideRenderedBlockContent.js","sourceRoot":"","sources":["../../../src/BaseLinearDisplay/components/ServerSideRenderedBlockContent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { BaseLinearDisplayModel } from '../models/BaseLinearDisplayModel';
|
|
3
|
+
declare type Coord = [number, number];
|
|
4
|
+
declare const Tooltip: ({ model, clientMouseCoord, }: {
|
|
5
|
+
model: BaseLinearDisplayModel;
|
|
6
|
+
clientMouseCoord: Coord;
|
|
7
|
+
}) => JSX.Element | null;
|
|
8
|
+
export default Tooltip;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import React, { useState, useMemo } from 'react';
|
|
2
|
+
import { getConf } from '@jbrowse/core/configuration';
|
|
3
|
+
import { SanitizedHTML } from '@jbrowse/core/ui';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
5
|
+
import { Portal, alpha } from '@mui/material';
|
|
6
|
+
import { makeStyles } from 'tss-react/mui';
|
|
7
|
+
import { usePopper } from 'react-popper';
|
|
8
|
+
function round(value) {
|
|
9
|
+
return Math.round(value * 1e5) / 1e5;
|
|
10
|
+
}
|
|
11
|
+
const useStyles = makeStyles()(theme => ({
|
|
12
|
+
// these styles come from
|
|
13
|
+
// https://github.com/mui-org/material-ui/blob/master/packages/material-ui/src/Tooltip/Tooltip.js
|
|
14
|
+
tooltip: {
|
|
15
|
+
pointerEvents: 'none',
|
|
16
|
+
backgroundColor: alpha(theme.palette.grey[700], 0.9),
|
|
17
|
+
borderRadius: theme.shape.borderRadius,
|
|
18
|
+
color: theme.palette.common.white,
|
|
19
|
+
fontFamily: theme.typography.fontFamily,
|
|
20
|
+
padding: '4px 8px',
|
|
21
|
+
fontSize: theme.typography.pxToRem(12),
|
|
22
|
+
lineHeight: `${round(14 / 10)}em`,
|
|
23
|
+
maxWidth: 300,
|
|
24
|
+
wordWrap: 'break-word',
|
|
25
|
+
},
|
|
26
|
+
}));
|
|
27
|
+
const TooltipContents = React.forwardRef(({ message }, ref) => {
|
|
28
|
+
return (React.createElement("div", { ref: ref }, React.isValidElement(message) ? (message) : message ? (React.createElement(SanitizedHTML, { html: String(message) })) : null));
|
|
29
|
+
});
|
|
30
|
+
const Tooltip = observer(({ model, clientMouseCoord, }) => {
|
|
31
|
+
const { classes } = useStyles();
|
|
32
|
+
const { featureUnderMouse } = model;
|
|
33
|
+
const [width, setWidth] = useState(0);
|
|
34
|
+
const [popperElt, setPopperElt] = useState(null);
|
|
35
|
+
// must be memoized a la https://github.com/popperjs/react-popper/issues/391
|
|
36
|
+
const virtElement = useMemo(() => ({
|
|
37
|
+
getBoundingClientRect: () => {
|
|
38
|
+
const x = clientMouseCoord[0] + width / 2 + 20;
|
|
39
|
+
const y = clientMouseCoord[1];
|
|
40
|
+
return {
|
|
41
|
+
top: y,
|
|
42
|
+
left: x,
|
|
43
|
+
bottom: y,
|
|
44
|
+
right: x,
|
|
45
|
+
width: 0,
|
|
46
|
+
height: 0,
|
|
47
|
+
x,
|
|
48
|
+
y,
|
|
49
|
+
toJSON() { },
|
|
50
|
+
};
|
|
51
|
+
},
|
|
52
|
+
}), [clientMouseCoord, width]);
|
|
53
|
+
const { styles, attributes } = usePopper(virtElement, popperElt);
|
|
54
|
+
const contents = featureUnderMouse
|
|
55
|
+
? getConf(model, 'mouseover', { feature: featureUnderMouse })
|
|
56
|
+
: undefined;
|
|
57
|
+
return featureUnderMouse && contents ? (React.createElement(Portal, null,
|
|
58
|
+
React.createElement("div", { ref: setPopperElt, className: classes.tooltip,
|
|
59
|
+
// zIndex needed to go over widget drawer
|
|
60
|
+
style: { ...styles.popper, zIndex: 100000 }, ...attributes.popper },
|
|
61
|
+
React.createElement(TooltipContents, { ref: elt => setWidth((elt === null || elt === void 0 ? void 0 : elt.getBoundingClientRect().width) || 0), message: contents })))) : null;
|
|
62
|
+
});
|
|
63
|
+
export default Tooltip;
|
|
64
|
+
//# sourceMappingURL=Tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../../src/BaseLinearDisplay/components/Tooltip.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { baseLinearDisplayConfigSchema } from './models/baseLinearDisplayConfigSchema';
|
|
2
|
+
export { BaseLinearDisplay } from './models/BaseLinearDisplayModel';
|
|
3
|
+
export type { BlockModel } from './models/serverSideRenderedBlock';
|
|
4
|
+
export type { BaseLinearDisplayModel, BaseLinearDisplayStateModel, } from './models/BaseLinearDisplayModel';
|
|
5
|
+
export { default as BaseLinearDisplayComponent, Tooltip, } from './components/BaseLinearDisplay';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { baseLinearDisplayConfigSchema } from './models/baseLinearDisplayConfigSchema';
|
|
2
|
+
export { BaseLinearDisplay } from './models/BaseLinearDisplayModel';
|
|
3
|
+
export { default as BaseLinearDisplayComponent, Tooltip, } from './components/BaseLinearDisplay';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/BaseLinearDisplay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAA;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAMnE,OAAO,EACL,OAAO,IAAI,0BAA0B,EACrC,OAAO,GACR,MAAM,gCAAgC,CAAA"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { MenuItem } from '@jbrowse/core/ui';
|
|
3
|
+
import { Stats } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
4
|
+
import { BaseBlock } from '@jbrowse/core/util/blockTypes';
|
|
5
|
+
import { Region } from '@jbrowse/core/util/types';
|
|
6
|
+
import CompositeMap from '@jbrowse/core/util/compositeMap';
|
|
7
|
+
import { Feature } from '@jbrowse/core/util/simpleFeature';
|
|
8
|
+
import { Instance } from 'mobx-state-tree';
|
|
9
|
+
import { ExportSvgOptions } from '../../LinearGenomeView';
|
|
10
|
+
export interface Layout {
|
|
11
|
+
minX: number;
|
|
12
|
+
minY: number;
|
|
13
|
+
maxX: number;
|
|
14
|
+
maxY: number;
|
|
15
|
+
name: string;
|
|
16
|
+
}
|
|
17
|
+
declare type LayoutRecord = [number, number, number, number];
|
|
18
|
+
export declare const BaseLinearDisplay: import("mobx-state-tree").IModelType<{
|
|
19
|
+
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
20
|
+
type: import("mobx-state-tree").ISimpleType<string>;
|
|
21
|
+
rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
22
|
+
} & {
|
|
23
|
+
height: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
|
|
24
|
+
blockState: import("mobx-state-tree").IMapType<import("mobx-state-tree").IModelType<{
|
|
25
|
+
key: import("mobx-state-tree").ISimpleType<string>;
|
|
26
|
+
region: import("mobx-state-tree").IModelType<{
|
|
27
|
+
refName: import("mobx-state-tree").ISimpleType<string>;
|
|
28
|
+
start: import("mobx-state-tree").ISimpleType<number>;
|
|
29
|
+
end: import("mobx-state-tree").ISimpleType<number>;
|
|
30
|
+
reversed: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
|
|
31
|
+
} & {
|
|
32
|
+
assemblyName: import("mobx-state-tree").ISimpleType<string>;
|
|
33
|
+
}, {
|
|
34
|
+
setRefName(newRefName: string): void;
|
|
35
|
+
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
36
|
+
reloadFlag: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
37
|
+
isLeftEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
38
|
+
isRightEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
39
|
+
}, {
|
|
40
|
+
renderInProgress: AbortController | undefined;
|
|
41
|
+
filled: boolean;
|
|
42
|
+
reactElement: React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
|
|
43
|
+
features: Map<string, Feature> | undefined;
|
|
44
|
+
layout: any;
|
|
45
|
+
status: string;
|
|
46
|
+
error: unknown;
|
|
47
|
+
message: string | undefined;
|
|
48
|
+
maxHeightReached: boolean;
|
|
49
|
+
ReactComponent: ({ model, }: {
|
|
50
|
+
model: any;
|
|
51
|
+
}) => any;
|
|
52
|
+
renderProps: any;
|
|
53
|
+
} & {
|
|
54
|
+
doReload(): void;
|
|
55
|
+
afterAttach(): void;
|
|
56
|
+
setStatus(message: string): void;
|
|
57
|
+
setLoading(abortController: AbortController): void;
|
|
58
|
+
setMessage(messageText: string): void;
|
|
59
|
+
setRendered(props: {
|
|
60
|
+
reactElement: React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
61
|
+
features: Map<string, Feature>;
|
|
62
|
+
layout: any;
|
|
63
|
+
maxHeightReached: boolean;
|
|
64
|
+
renderProps: any;
|
|
65
|
+
} | undefined): void;
|
|
66
|
+
setError(error: unknown): void;
|
|
67
|
+
reload(): void;
|
|
68
|
+
beforeDestroy(): void;
|
|
69
|
+
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
70
|
+
userBpPerPxLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
71
|
+
userByteSizeLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
72
|
+
}, {
|
|
73
|
+
rendererTypeName: string;
|
|
74
|
+
error: unknown;
|
|
75
|
+
} & {
|
|
76
|
+
readonly RenderingComponent: React.FC<{
|
|
77
|
+
model: {
|
|
78
|
+
id: string;
|
|
79
|
+
type: string;
|
|
80
|
+
rpcDriverName: string | undefined;
|
|
81
|
+
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
|
|
82
|
+
rendererTypeName: string;
|
|
83
|
+
error: unknown;
|
|
84
|
+
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
85
|
+
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
86
|
+
type: import("mobx-state-tree").ISimpleType<string>;
|
|
87
|
+
rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
88
|
+
}, {
|
|
89
|
+
rendererTypeName: string;
|
|
90
|
+
error: unknown;
|
|
91
|
+
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
92
|
+
onHorizontalScroll?: Function | undefined;
|
|
93
|
+
blockState?: Record<string, any> | undefined;
|
|
94
|
+
}>;
|
|
95
|
+
readonly DisplayBlurb: React.FC<{
|
|
96
|
+
model: {
|
|
97
|
+
id: string;
|
|
98
|
+
type: string;
|
|
99
|
+
rpcDriverName: string | undefined;
|
|
100
|
+
} & import("mobx-state-tree/dist/internal").NonEmptyObject & {
|
|
101
|
+
rendererTypeName: string;
|
|
102
|
+
error: unknown;
|
|
103
|
+
} & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
|
|
104
|
+
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
105
|
+
type: import("mobx-state-tree").ISimpleType<string>;
|
|
106
|
+
rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
107
|
+
}, {
|
|
108
|
+
rendererTypeName: string;
|
|
109
|
+
error: unknown;
|
|
110
|
+
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
111
|
+
}> | null;
|
|
112
|
+
readonly adapterConfig: any;
|
|
113
|
+
readonly parentTrack: any;
|
|
114
|
+
renderProps(): any;
|
|
115
|
+
readonly rendererType: any;
|
|
116
|
+
readonly DisplayMessageComponent: React.FC<any> | undefined;
|
|
117
|
+
trackMenuItems(): MenuItem[];
|
|
118
|
+
readonly viewMenuActions: MenuItem[];
|
|
119
|
+
regionCannotBeRendered(): undefined; /**
|
|
120
|
+
* how many milliseconds to wait for the display to
|
|
121
|
+
* "settle" before re-rendering a block
|
|
122
|
+
*/
|
|
123
|
+
} & {
|
|
124
|
+
setError(error?: unknown): void;
|
|
125
|
+
setRpcDriverName(rpcDriverName: string): void;
|
|
126
|
+
reload(): void;
|
|
127
|
+
} & {
|
|
128
|
+
currBpPerPx: number;
|
|
129
|
+
message: string;
|
|
130
|
+
featureIdUnderMouse: string | undefined;
|
|
131
|
+
contextMenuFeature: Feature | undefined;
|
|
132
|
+
scrollTop: number;
|
|
133
|
+
estimatedRegionStatsP: Promise<Stats> | undefined;
|
|
134
|
+
estimatedRegionStats: Stats | undefined;
|
|
135
|
+
} & {
|
|
136
|
+
readonly blockType: "dynamicBlocks" | "staticBlocks";
|
|
137
|
+
readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
|
|
138
|
+
} & {
|
|
139
|
+
/**
|
|
140
|
+
* how many milliseconds to wait for the display to
|
|
141
|
+
* "settle" before re-rendering a block
|
|
142
|
+
*/
|
|
143
|
+
readonly renderDelay: number;
|
|
144
|
+
readonly TooltipComponent: React.FC<any>;
|
|
145
|
+
/**
|
|
146
|
+
* returns a string feature ID if the globally-selected object
|
|
147
|
+
* is probably a feature
|
|
148
|
+
*/
|
|
149
|
+
readonly selectedFeatureId: string | undefined;
|
|
150
|
+
/**
|
|
151
|
+
* if a display-level message should be displayed instead of the blocks,
|
|
152
|
+
* make this return a react component
|
|
153
|
+
*/
|
|
154
|
+
readonly DisplayMessageComponent: React.FC<any> | undefined;
|
|
155
|
+
} & {
|
|
156
|
+
/**
|
|
157
|
+
* a CompositeMap of `featureId -> feature obj` that
|
|
158
|
+
* just looks in all the block data for that feature
|
|
159
|
+
*/
|
|
160
|
+
readonly features: CompositeMap<string, Feature>;
|
|
161
|
+
readonly featureUnderMouse: Feature | undefined;
|
|
162
|
+
getFeatureOverlapping(blockKey: string, x: number, y: number): any;
|
|
163
|
+
getFeatureByID(blockKey: string, id: string): LayoutRecord | undefined;
|
|
164
|
+
searchFeatureByID(id: string): LayoutRecord | undefined;
|
|
165
|
+
readonly currentBytesRequested: number;
|
|
166
|
+
readonly currentFeatureScreenDensity: number;
|
|
167
|
+
readonly maxFeatureScreenDensity: any;
|
|
168
|
+
readonly estimatedStatsReady: boolean;
|
|
169
|
+
readonly maxAllowableBytes: number;
|
|
170
|
+
} & {
|
|
171
|
+
setMessage(message: string): void;
|
|
172
|
+
afterAttach(): void;
|
|
173
|
+
estimateRegionsStats(regions: Region[], opts: {
|
|
174
|
+
headers?: Record<string, string>;
|
|
175
|
+
signal?: AbortSignal;
|
|
176
|
+
filters?: string[];
|
|
177
|
+
}): Promise<{}>;
|
|
178
|
+
setRegionStatsP(p?: Promise<Stats>): void;
|
|
179
|
+
setRegionStats(estimatedRegionStats?: Stats): void;
|
|
180
|
+
clearRegionStats(): void;
|
|
181
|
+
setHeight(displayHeight: number): number;
|
|
182
|
+
resizeHeight(distance: number): number;
|
|
183
|
+
setScrollTop(scrollTop: number): void;
|
|
184
|
+
updateStatsLimit(stats: Stats): void;
|
|
185
|
+
addBlock(key: string, block: BaseBlock): void;
|
|
186
|
+
setCurrBpPerPx(n: number): void;
|
|
187
|
+
deleteBlock(key: string): void;
|
|
188
|
+
selectFeature(feature: Feature): void;
|
|
189
|
+
clearFeatureSelection(): void;
|
|
190
|
+
setFeatureIdUnderMouse(feature: string | undefined): void;
|
|
191
|
+
reload(): void;
|
|
192
|
+
setContextMenuFeature(feature?: Feature): void;
|
|
193
|
+
} & {
|
|
194
|
+
readonly regionTooLarge: boolean;
|
|
195
|
+
readonly regionTooLargeReason: string;
|
|
196
|
+
} & {
|
|
197
|
+
reload(): Promise<void>;
|
|
198
|
+
afterAttach(): void;
|
|
199
|
+
} & {
|
|
200
|
+
regionCannotBeRenderedText(_region: Region): "" | "Force load to see features";
|
|
201
|
+
/**
|
|
202
|
+
* @param region -
|
|
203
|
+
* @returns falsy if the region is fine to try rendering. Otherwise,
|
|
204
|
+
* return a react node + string of text.
|
|
205
|
+
* string of text describes why it cannot be rendered
|
|
206
|
+
* react node allows user to force load at current setting
|
|
207
|
+
*/
|
|
208
|
+
regionCannotBeRendered(_region: Region): JSX.Element | undefined;
|
|
209
|
+
trackMenuItems(): MenuItem[];
|
|
210
|
+
contextMenuItems(): {
|
|
211
|
+
label: string;
|
|
212
|
+
icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
213
|
+
muiName: string;
|
|
214
|
+
};
|
|
215
|
+
onClick: () => void;
|
|
216
|
+
}[];
|
|
217
|
+
renderProps(): any;
|
|
218
|
+
} & {
|
|
219
|
+
renderSvg(opts: ExportSvgOptions & {
|
|
220
|
+
overrideHeight: number;
|
|
221
|
+
}): Promise<JSX.Element>;
|
|
222
|
+
}, import("mobx-state-tree")._NotCustomized, {
|
|
223
|
+
type: string;
|
|
224
|
+
height: number;
|
|
225
|
+
id: string;
|
|
226
|
+
rpcDriverName: string | undefined;
|
|
227
|
+
userBpPerPxLimit: number | undefined;
|
|
228
|
+
userByteSizeLimit: number | undefined;
|
|
229
|
+
}>;
|
|
230
|
+
export declare type BaseLinearDisplayStateModel = typeof BaseLinearDisplay;
|
|
231
|
+
export declare type BaseLinearDisplayModel = Instance<BaseLinearDisplayStateModel>;
|
|
232
|
+
export {};
|