higlass 1.13.5 → 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/README.md +48 -54
- package/app/globals.d.ts +1 -1
- package/app/missing-types.d.ts +4 -1
- package/app/scripts/AddTrackDialog.jsx +11 -4
- package/app/scripts/AddTrackPositionMenu.jsx +28 -7
- package/app/scripts/Annotations1dTrack.js +90 -251
- package/app/scripts/Annotations2dTrack.js +12 -7
- package/app/scripts/Autocomplete.jsx +13 -28
- package/app/scripts/AxisPixi.js +6 -10
- package/app/scripts/BarTrack.js +3 -3
- package/app/scripts/BedLikeTrack.js +556 -449
- package/app/scripts/Button.jsx +1 -1
- package/app/scripts/CNVIntervalTrack.js +1 -1
- package/app/scripts/CenterTrack.jsx +8 -7
- package/app/scripts/Chromosome2DAnnotations.js +1 -1
- package/app/scripts/Chromosome2DLabels.js +1 -1
- package/app/scripts/ChromosomeGrid.js +49 -38
- package/app/scripts/ChromosomeInfo.js +1 -1
- package/app/scripts/CombinedTrack.js +3 -1
- package/app/scripts/ConfigTrackMenu.jsx +1 -1
- package/app/scripts/ConfigViewMenu.jsx +2 -2
- package/app/scripts/ContextMenuContainer.jsx +4 -2
- package/app/scripts/ContextMenuItem.jsx +14 -2
- package/app/scripts/CrossRule.js +1 -1
- package/app/scripts/CustomTrackDialog.jsx +2 -2
- package/app/scripts/Dialog.jsx +2 -2
- package/app/scripts/DragListeningDiv.jsx +1 -1
- package/app/scripts/DraggableDiv.jsx +2 -3
- package/app/scripts/ExportLinkDialog.jsx +1 -1
- package/app/scripts/FilledLine.js +349 -0
- package/app/scripts/GalleryTracks.jsx +77 -78
- package/app/scripts/GenomePositionSearchBox.jsx +184 -482
- package/app/scripts/HeatmapOptions.jsx +4 -2
- package/app/scripts/HeatmapTiledPixiTrack.js +23 -32
- package/app/scripts/HiGlassComponent.jsx +515 -444
- package/app/scripts/HiGlassComponentContext.js +5 -0
- package/app/scripts/Horizontal1dHeatmapTrack.js +1 -1
- package/app/scripts/Horizontal2DDomainsTrack.js +1 -1
- package/app/scripts/HorizontalChromosomeLabels.js +28 -22
- package/app/scripts/HorizontalGeneAnnotationsTrack.js +1 -1
- package/app/scripts/HorizontalHeatmapTrack.js +2 -2
- package/app/scripts/HorizontalMultivecTrack.js +6 -7
- package/app/scripts/HorizontalRule.js +1 -2
- package/app/scripts/HorizontalTiled1DPixiTrack.js +4 -4
- package/app/scripts/HorizontalTiledPlot.jsx +9 -9
- package/app/scripts/LeftTrackModifier.js +4 -0
- package/app/scripts/ListWrapper.jsx +1 -2
- package/app/scripts/MapboxTilesTrack.js +1 -2
- package/app/scripts/Modal.jsx +2 -2
- package/app/scripts/MoveableTrack.jsx +10 -12
- package/app/scripts/NestedContextMenu.jsx +2 -1
- package/app/scripts/OSMTileIdsTrack.js +1 -1
- package/app/scripts/OverlayTrack.js +4 -4
- package/app/scripts/PixiTrack.js +27 -13
- package/app/scripts/PlotTypeChooser.jsx +3 -4
- package/app/scripts/SearchField.js +5 -5
- package/app/scripts/SeriesListItems.jsx +3 -4
- package/app/scripts/SeriesListMenu.jsx +95 -53
- package/app/scripts/SeriesListSubmenuMixin.jsx +2 -1
- package/app/scripts/SketchInlinePicker.jsx +2 -2
- package/app/scripts/SortableList.jsx +1 -1
- package/app/scripts/Tiled1DPixiTrack.js +4 -1
- package/app/scripts/TiledPixiTrack.js +244 -102
- package/app/scripts/TiledPlot.jsx +565 -118
- package/app/scripts/TilesetFinder.jsx +12 -4
- package/app/scripts/Track.js +1 -1
- package/app/scripts/TrackArea.jsx +4 -0
- package/app/scripts/TrackControl.jsx +2 -2
- package/app/scripts/TrackRenderer.jsx +32 -33
- package/app/scripts/ValueIntervalTrack.js +1 -1
- package/app/scripts/VerticalRule.js +2 -2
- package/app/scripts/VerticalTiledPlot.jsx +7 -7
- package/app/scripts/ViewConfigEditor.jsx +1 -1
- package/app/scripts/ViewContextMenu.jsx +53 -5
- package/app/scripts/ViewHeader.jsx +9 -9
- package/app/scripts/ViewportTracker2D.js +1 -1
- package/app/scripts/api.js +92 -12
- package/app/scripts/configs/available-track-types.js +1 -1
- package/app/scripts/configs/index.js +6 -1
- package/app/scripts/configs/positions-by-datatype.js +2 -2
- package/app/scripts/configs/primitives.js +2 -0
- package/app/scripts/configs/themes.js +0 -1
- package/app/scripts/configs/tracks-info-by-type.js +11 -8
- package/app/scripts/configs/tracks-info.js +3 -2
- package/app/scripts/d3-context-menu.js +3 -4
- package/app/scripts/data-fetchers/DataFetcher.js +35 -36
- package/app/scripts/data-fetchers/genbank-fetcher.js +13 -22
- package/app/scripts/data-fetchers/local-tile-fetcher.js +10 -8
- package/app/scripts/hglib.jsx +62 -71
- package/app/scripts/hocs/with-modal.jsx +32 -10
- package/app/scripts/hocs/with-pub-sub.js +12 -3
- package/app/scripts/hocs/with-theme.jsx +21 -14
- package/app/scripts/icons.jsx +3 -2
- package/app/scripts/mixwith.js +2 -2
- package/app/scripts/options-info.js +49 -11
- package/app/scripts/plugins/get-data-fetcher.js +2 -3
- package/app/scripts/services/chrom-info.js +32 -4
- package/app/scripts/services/element-resize-listener.js +2 -2
- package/app/scripts/services/index.js +0 -1
- package/app/scripts/services/tile-proxy.js +368 -285
- package/app/scripts/services/worker.js +31 -28
- package/app/scripts/test-helpers/index.js +2 -1
- package/app/scripts/test-helpers/test-helpers.jsx +157 -69
- package/app/scripts/types.ts +118 -47
- package/app/scripts/utils/LruCache.js +3 -2
- package/app/scripts/utils/assert.js +19 -0
- package/app/scripts/utils/background-task-scheduler.js +2 -0
- package/app/scripts/utils/color-domain-to-rgba-array.js +13 -3
- package/app/scripts/utils/copy-text-to-clipboard.js +36 -0
- package/app/scripts/utils/decompress.js +33 -0
- package/app/scripts/utils/default-tracks.js +46 -0
- package/app/scripts/utils/dict-items.js +1 -0
- package/app/scripts/utils/dict-keys.js +1 -0
- package/app/scripts/utils/dict-values.js +1 -0
- package/app/scripts/utils/expand-combined-tracks.js +11 -7
- package/app/scripts/utils/fill-in-min-widths.js +47 -21
- package/app/scripts/utils/flatten.js +0 -1
- package/app/scripts/utils/get-aggregation-function.js +1 -1
- package/app/scripts/utils/get-default-track-for-datatype.js +37 -10
- package/app/scripts/utils/get-default-tracks-for-datatype.ts +46 -0
- package/app/scripts/utils/get-higlass-components.js +27 -3
- package/app/scripts/utils/get-track-position-by-uid.js +8 -1
- package/app/scripts/utils/get-xylofon.js +12 -9
- package/app/scripts/utils/has-parent.js +5 -5
- package/app/scripts/utils/hex-string-to-int.js +1 -1
- package/app/scripts/utils/index.js +1 -0
- package/app/scripts/utils/interval-tree.js +222 -177
- package/app/scripts/utils/load-chrom-infos.js +4 -1
- package/app/scripts/utils/pixi-text-to-svg.js +5 -9
- package/app/scripts/utils/positioned-tracks-to-all-tracks.js +55 -0
- package/app/scripts/utils/range-query-2d.js +3 -3
- package/app/scripts/utils/reduce.js +12 -5
- package/app/scripts/utils/segments-to-rows.js +14 -11
- package/app/scripts/utils/svg-line.js +7 -8
- package/app/scripts/utils/type-guards.js +16 -7
- package/app/scripts/utils/visit-positioned-tracks.js +9 -4
- package/app/styles/AddTrackPositionMenu.module.scss +37 -0
- package/app/styles/HiGlass.module.scss +3 -1
- package/app/styles/d3-context-menu.css +0 -1
- package/app/styles/prism.css +1 -0
- package/dist/app/schema.json +525 -0
- package/dist/app/scripts/AddTrackDialog.d.ts +64 -0
- package/dist/app/scripts/AddTrackPositionMenu.d.ts +5 -0
- package/dist/app/scripts/Annotations1dTrack.d.ts +15 -0
- package/dist/app/scripts/Annotations2dTrack.d.ts +95 -0
- package/dist/app/scripts/ArrowheadDomainsTrack.d.ts +36 -0
- package/dist/app/scripts/Autocomplete.d.ts +102 -0
- package/dist/app/scripts/AxisPixi.d.ts +25 -0
- package/dist/app/scripts/BarTrack.d.ts +28 -0
- package/dist/app/scripts/BedLikeTrack.d.ts +84 -0
- package/dist/app/scripts/Button.d.ts +3 -0
- package/dist/app/scripts/CNVIntervalTrack.d.ts +12 -0
- package/dist/app/scripts/CenterTiledPlot.d.ts +3 -0
- package/dist/app/scripts/CenterTrack.d.ts +92 -0
- package/dist/app/scripts/Chromosome2DAnnotations.d.ts +10 -0
- package/dist/app/scripts/Chromosome2DLabels.d.ts +13 -0
- package/dist/app/scripts/ChromosomeGrid.d.ts +24 -0
- package/dist/app/scripts/ChromosomeInfo.d.ts +14 -0
- package/dist/app/scripts/CloseTrackMenu.d.ts +10 -0
- package/dist/app/scripts/CombinedTrack.d.ts +32 -0
- package/dist/app/scripts/ConfigTrackMenu.d.ts +10 -0
- package/dist/app/scripts/ConfigViewMenu.d.ts +34 -0
- package/dist/app/scripts/ConfigureSeriesMenu.d.ts +3 -0
- package/dist/app/scripts/ContextMenuContainer.d.ts +36 -0
- package/dist/app/scripts/ContextMenuItem.d.ts +34 -0
- package/dist/app/scripts/Cross.d.ts +3 -0
- package/dist/app/scripts/CrossRule.d.ts +24 -0
- package/dist/app/scripts/CustomTrackDialog.d.ts +17 -0
- package/dist/app/scripts/Dialog.d.ts +5 -0
- package/dist/app/scripts/DivergentBarTrack.d.ts +4 -0
- package/dist/app/scripts/DragListeningDiv.d.ts +32 -0
- package/dist/app/scripts/DraggableDiv.d.ts +63 -0
- package/dist/app/scripts/ExportLinkDialog.d.ts +21 -0
- package/dist/app/scripts/FilledLine.d.ts +5 -0
- package/dist/app/scripts/FixedTrack.d.ts +5 -0
- package/dist/app/scripts/GalleryTracks.d.ts +20 -0
- package/dist/app/scripts/GenomePositionSearchBox.d.ts +95 -0
- package/dist/app/scripts/HeatmapOptions.d.ts +30 -0
- package/dist/app/scripts/HeatmapTiledPixiTrack.d.ts +184 -0
- package/dist/app/scripts/HiGlassComponent.d.ts +762 -0
- package/dist/app/scripts/HiGlassComponentContext.d.ts +3 -0
- package/dist/app/scripts/HiGlassTrackComponent.d.ts +37 -0
- package/dist/app/scripts/Horizontal1dHeatmapTrack.d.ts +9 -0
- package/dist/app/scripts/Horizontal2DDomainsTrack.d.ts +21 -0
- package/dist/app/scripts/HorizontalChromosomeLabels.d.ts +47 -0
- package/dist/app/scripts/HorizontalGeneAnnotationsTrack.d.ts +25 -0
- package/dist/app/scripts/HorizontalHeatmapTrack.d.ts +12 -0
- package/dist/app/scripts/HorizontalItem.d.ts +3 -0
- package/dist/app/scripts/HorizontalLine1DPixiTrack.d.ts +23 -0
- package/dist/app/scripts/HorizontalMultivecTrack.d.ts +50 -0
- package/dist/app/scripts/HorizontalPoint1DPixiTrack.d.ts +5 -0
- package/dist/app/scripts/HorizontalRule.d.ts +22 -0
- package/dist/app/scripts/HorizontalTiled1DPixiTrack.d.ts +26 -0
- package/dist/app/scripts/HorizontalTiledPlot.d.ts +49 -0
- package/dist/app/scripts/HorizontalTrack.d.ts +6 -0
- package/dist/app/scripts/Id2DTiledPixiTrack.d.ts +10 -0
- package/dist/app/scripts/IdHorizontal1DTiledPixiTrack.d.ts +6 -0
- package/dist/app/scripts/IdVertical1DTiledPixiTrack.d.ts +7 -0
- package/dist/app/scripts/LeftAxisTrack.d.ts +9 -0
- package/dist/app/scripts/LeftTrackModifier.d.ts +29 -0
- package/dist/app/scripts/ListWrapper.d.ts +64 -0
- package/dist/app/scripts/MapboxTilesTrack.d.ts +9 -0
- package/dist/app/scripts/Modal.d.ts +5 -0
- package/dist/app/scripts/MoveableTrack.d.ts +18 -0
- package/dist/app/scripts/NestedContextMenu.d.ts +7 -0
- package/dist/app/scripts/OSMTileIdsTrack.d.ts +5 -0
- package/dist/app/scripts/OSMTilesTrack.d.ts +129 -0
- package/dist/app/scripts/OverlayTrack.d.ts +13 -0
- package/dist/app/scripts/PixiTrack.d.ts +174 -0
- package/dist/app/scripts/PlotTypeChooser.d.ts +25 -0
- package/dist/app/scripts/PopupMenu.d.ts +28 -0
- package/dist/app/scripts/RasterTilesTrack.d.ts +9 -0
- package/dist/app/scripts/RuleMixin.d.ts +2 -0
- package/dist/app/scripts/SVGTrack.d.ts +15 -0
- package/dist/app/scripts/SearchField.d.ts +13 -0
- package/dist/app/scripts/SeriesListItems.d.ts +2 -0
- package/dist/app/scripts/SeriesListMenu.d.ts +51 -0
- package/dist/app/scripts/SeriesListSubmenuMixin.d.ts +2 -0
- package/dist/app/scripts/SketchInlinePicker.d.ts +25 -0
- package/dist/app/scripts/SortableList.d.ts +22 -0
- package/dist/app/scripts/SquareMarkersTrack.d.ts +22 -0
- package/dist/app/scripts/Tiled1DPixiTrack.d.ts +60 -0
- package/dist/app/scripts/TiledPixiTrack.d.ts +369 -0
- package/dist/app/scripts/TiledPlot.d.ts +313 -0
- package/dist/app/scripts/TilesetFinder.d.ts +65 -0
- package/dist/app/scripts/TopAxisTrack.d.ts +9 -0
- package/dist/app/scripts/Track.d.ts +196 -0
- package/dist/app/scripts/TrackArea.d.ts +26 -0
- package/dist/app/scripts/TrackControl.d.ts +5 -0
- package/dist/app/scripts/TrackRenderer.d.ts +724 -0
- package/dist/app/scripts/UnknownPixiTrack.d.ts +7 -0
- package/dist/app/scripts/ValueIntervalTrack.d.ts +6 -0
- package/dist/app/scripts/VerticalItem.d.ts +3 -0
- package/dist/app/scripts/VerticalRule.d.ts +21 -0
- package/dist/app/scripts/VerticalTiled1DPixiTrack.d.ts +6 -0
- package/dist/app/scripts/VerticalTiledPlot.d.ts +50 -0
- package/dist/app/scripts/VerticalTrack.d.ts +6 -0
- package/dist/app/scripts/ViewConfigEditor.d.ts +53 -0
- package/dist/app/scripts/ViewContextMenu.d.ts +17 -0
- package/dist/app/scripts/ViewHeader.d.ts +75 -0
- package/dist/app/scripts/ViewportTracker2D.d.ts +17 -0
- package/dist/app/scripts/ViewportTracker2DPixi.d.ts +11 -0
- package/dist/app/scripts/ViewportTrackerHorizontal.d.ts +17 -0
- package/dist/app/scripts/ViewportTrackerVertical.d.ts +17 -0
- package/dist/app/scripts/api.d.ts +640 -0
- package/dist/app/scripts/configs/available-track-types.d.ts +2 -0
- package/dist/app/scripts/configs/colormaps.d.ts +2 -0
- package/dist/app/scripts/configs/datatype-to-track-type.d.ts +4 -0
- package/dist/app/scripts/configs/default-tracks-for-datatype.d.ts +38 -0
- package/dist/app/scripts/configs/dense-data-extrema-config.d.ts +2 -0
- package/dist/app/scripts/configs/globals.d.ts +5 -0
- package/dist/app/scripts/configs/index.d.ts +16 -0
- package/dist/app/scripts/configs/positions-by-datatype.d.ts +2 -0
- package/dist/app/scripts/configs/primitives.d.ts +20 -0
- package/dist/app/scripts/configs/themes.d.ts +3 -0
- package/dist/app/scripts/configs/tracks-info-by-type.d.ts +4 -0
- package/dist/app/scripts/configs/tracks-info.d.ts +24 -0
- package/dist/app/scripts/d3-context-menu.d.ts +2 -0
- package/dist/app/scripts/data-fetchers/DataFetcher.d.ts +151 -0
- package/dist/app/scripts/data-fetchers/genbank-fetcher.d.ts +86 -0
- package/dist/app/scripts/data-fetchers/index.d.ts +3 -0
- package/dist/app/scripts/data-fetchers/local-tile-fetcher.d.ts +47 -0
- package/dist/app/scripts/gosling-exports.d.ts +17 -0
- package/dist/app/scripts/hglib.d.ts +24 -0
- package/dist/app/scripts/hocs/with-modal.d.ts +19 -0
- package/dist/app/scripts/hocs/with-pub-sub.d.ts +22 -0
- package/dist/app/scripts/hocs/with-theme.d.ts +13 -0
- package/dist/app/scripts/icons.d.ts +161 -0
- package/dist/app/scripts/mixwith.d.ts +27 -0
- package/dist/app/scripts/options-info.d.ts +1355 -0
- package/dist/app/scripts/plugins/available-for-plugins.d.ts +2338 -0
- package/dist/app/scripts/plugins/get-data-fetcher.d.ts +2 -0
- package/dist/app/scripts/plugins/index.d.ts +2 -0
- package/dist/app/scripts/services/chrom-info.d.ts +10 -0
- package/dist/app/scripts/services/dom-event.d.ts +7 -0
- package/dist/app/scripts/services/element-resize-listener.d.ts +5 -0
- package/dist/app/scripts/services/index.d.ts +5 -0
- package/dist/app/scripts/services/tile-proxy.d.ts +180 -0
- package/dist/app/scripts/services/worker.d.ts +157 -0
- package/dist/app/scripts/symbol.d.ts +13 -0
- package/dist/app/scripts/test-helpers/index.d.ts +1 -0
- package/dist/app/scripts/test-helpers/test-helpers.d.ts +33 -0
- package/dist/app/scripts/track-utils.d.ts +73 -0
- package/dist/app/scripts/types.d.ts +199 -0
- package/dist/app/scripts/utils/DenseDataExtrema1D.d.ts +88 -0
- package/dist/app/scripts/utils/DenseDataExtrema2D.d.ts +97 -0
- package/dist/app/scripts/utils/LruCache.d.ts +44 -0
- package/dist/app/scripts/utils/abs-to-chr.d.ts +14 -0
- package/dist/app/scripts/utils/accessor-transposition.d.ts +14 -0
- package/dist/app/scripts/utils/add-arrays.d.ts +18 -0
- package/dist/app/scripts/utils/add-class.d.ts +8 -0
- package/dist/app/scripts/utils/add-event-listener-once.d.ts +11 -0
- package/dist/app/scripts/utils/assert.d.ts +17 -0
- package/dist/app/scripts/utils/background-task-scheduler.d.ts +47 -0
- package/dist/app/scripts/utils/base64-to-canvas.d.ts +9 -0
- package/dist/app/scripts/utils/chr-to-abs.d.ts +10 -0
- package/dist/app/scripts/utils/chrom-info-bisector.d.ts +4 -0
- package/dist/app/scripts/utils/clone-event.d.ts +12 -0
- package/dist/app/scripts/utils/color-domain-to-rgba-array.d.ts +13 -0
- package/dist/app/scripts/utils/color-to-hex.d.ts +9 -0
- package/dist/app/scripts/utils/color-to-rgba.d.ts +9 -0
- package/dist/app/scripts/utils/copy-text-to-clipboard.d.ts +2 -0
- package/dist/app/scripts/utils/data-to-genomic-loci.d.ts +11 -0
- package/dist/app/scripts/utils/debounce.d.ts +5 -0
- package/dist/app/scripts/utils/dec-to-hex-str.d.ts +8 -0
- package/dist/app/scripts/utils/decompress.d.ts +27 -0
- package/dist/app/scripts/utils/default-tracks.d.ts +3 -0
- package/dist/app/scripts/utils/dict-from-tuples.d.ts +11 -0
- package/dist/app/scripts/utils/dict-items.d.ts +18 -0
- package/dist/app/scripts/utils/dict-keys.d.ts +10 -0
- package/dist/app/scripts/utils/dict-values.d.ts +8 -0
- package/dist/app/scripts/utils/download.d.ts +7 -0
- package/dist/app/scripts/utils/expand-combined-tracks.d.ts +11 -0
- package/dist/app/scripts/utils/fake-pub-sub.d.ts +11 -0
- package/dist/app/scripts/utils/fill-in-min-widths.d.ts +44 -0
- package/dist/app/scripts/utils/flatten.d.ts +9 -0
- package/dist/app/scripts/utils/for-each.d.ts +9 -0
- package/dist/app/scripts/utils/forward-event.d.ts +7 -0
- package/dist/app/scripts/utils/genome-loci-to-pixels.d.ts +9 -0
- package/dist/app/scripts/utils/genomic-range-to-chromosome-chunks.d.ts +21 -0
- package/dist/app/scripts/utils/get-aggregation-function.d.ts +10 -0
- package/dist/app/scripts/utils/get-default-track-for-datatype.d.ts +21 -0
- package/dist/app/scripts/utils/get-default-tracks-for-datatype.d.ts +3 -0
- package/dist/app/scripts/utils/get-element-dim.d.ts +7 -0
- package/dist/app/scripts/utils/get-higlass-components.d.ts +7 -0
- package/dist/app/scripts/utils/get-track-by-uid.d.ts +7 -0
- package/dist/app/scripts/utils/get-track-conf-from-hgc.d.ts +10 -0
- package/dist/app/scripts/utils/get-track-obj-by-id.d.ts +2 -0
- package/dist/app/scripts/utils/get-track-position-by-uid.d.ts +13 -0
- package/dist/app/scripts/utils/get-xylofon.d.ts +2 -0
- package/dist/app/scripts/utils/gradient.d.ts +14 -0
- package/dist/app/scripts/utils/has-class.d.ts +8 -0
- package/dist/app/scripts/utils/has-parent.d.ts +9 -0
- package/dist/app/scripts/utils/hex-string-to-int.d.ts +14 -0
- package/dist/app/scripts/utils/index.d.ts +89 -0
- package/dist/app/scripts/utils/interval-tree.d.ts +109 -0
- package/dist/app/scripts/utils/into-the-void.d.ts +6 -0
- package/dist/app/scripts/utils/is-track-or-child-track.d.ts +7 -0
- package/dist/app/scripts/utils/is-track-range-selectable.d.ts +2 -0
- package/dist/app/scripts/utils/is-within.d.ts +12 -0
- package/dist/app/scripts/utils/lat-to-y.d.ts +9 -0
- package/dist/app/scripts/utils/lng-to-x.d.ts +8 -0
- package/dist/app/scripts/utils/load-chrom-infos.d.ts +8 -0
- package/dist/app/scripts/utils/map.d.ts +13 -0
- package/dist/app/scripts/utils/max-non-zero.d.ts +6 -0
- package/dist/app/scripts/utils/max.d.ts +10 -0
- package/dist/app/scripts/utils/min-non-zero.d.ts +6 -0
- package/dist/app/scripts/utils/min.d.ts +10 -0
- package/dist/app/scripts/utils/mod.d.ts +9 -0
- package/dist/app/scripts/utils/ndarray-assign.d.ts +2 -0
- package/dist/app/scripts/utils/ndarray-flatten.d.ts +2 -0
- package/dist/app/scripts/utils/ndarray-to-list.d.ts +2 -0
- package/dist/app/scripts/utils/numericify-version.d.ts +6 -0
- package/dist/app/scripts/utils/obj-vals.d.ts +8 -0
- package/dist/app/scripts/utils/or.d.ts +8 -0
- package/dist/app/scripts/utils/parse-chromsizes-rows.d.ts +34 -0
- package/dist/app/scripts/utils/pixi-text-to-svg.d.ts +2 -0
- package/dist/app/scripts/utils/positioned-tracks-to-all-tracks.d.ts +26 -0
- package/dist/app/scripts/utils/q.d.ts +18 -0
- package/dist/app/scripts/utils/rad-to-deg.d.ts +7 -0
- package/dist/app/scripts/utils/range-query-2d.d.ts +17 -0
- package/dist/app/scripts/utils/reduce.d.ts +14 -0
- package/dist/app/scripts/utils/rel-to-abs-chrom-pos.d.ts +10 -0
- package/dist/app/scripts/utils/remove-class.d.ts +7 -0
- package/dist/app/scripts/utils/reset-d3-brush-style.d.ts +10 -0
- package/dist/app/scripts/utils/rgb-to-hex.d.ts +8 -0
- package/dist/app/scripts/utils/scales-center-and-k.d.ts +12 -0
- package/dist/app/scripts/utils/scales-to-genome-loci.d.ts +3 -0
- package/dist/app/scripts/utils/segments-to-rows.d.ts +15 -0
- package/dist/app/scripts/utils/selected-items-to-cum-weights.d.ts +12 -0
- package/dist/app/scripts/utils/selected-items-to-size.d.ts +13 -0
- package/dist/app/scripts/utils/show-mouse-position.d.ts +54 -0
- package/dist/app/scripts/utils/some.d.ts +10 -0
- package/dist/app/scripts/utils/sum.d.ts +8 -0
- package/dist/app/scripts/utils/svg-line.d.ts +2 -0
- package/dist/app/scripts/utils/throttle-and-debounce.d.ts +33 -0
- package/dist/app/scripts/utils/tile-to-canvas.d.ts +9 -0
- package/dist/app/scripts/utils/timeout.d.ts +3 -0
- package/dist/app/scripts/utils/to-void.d.ts +3 -0
- package/dist/app/scripts/utils/total-track-pixel-height.d.ts +27 -0
- package/dist/app/scripts/utils/trim-trailing-slash.d.ts +7 -0
- package/dist/app/scripts/utils/type-guards.d.ts +36 -0
- package/dist/app/scripts/utils/value-to-color.d.ts +12 -0
- package/dist/app/scripts/utils/visit-positioned-tracks.d.ts +18 -0
- package/dist/app/scripts/utils/visit-tracks.d.ts +9 -0
- package/dist/esm.html +1 -3
- package/dist/hglib.js +86315 -100592
- package/dist/hglib.min.js +123 -131
- package/dist/higlass.mjs +88861 -103138
- package/dist/index.html +1 -3
- package/dist/package.json +134 -0
- package/package.json +25 -27
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
|
-
import React from 'react';
|
|
3
2
|
import PropTypes from 'prop-types';
|
|
4
|
-
import
|
|
3
|
+
import React from 'react';
|
|
5
4
|
import CheckboxTree from 'react-checkbox-tree';
|
|
5
|
+
import slugid from 'slugid';
|
|
6
6
|
|
|
7
7
|
import { tileProxy } from './services';
|
|
8
8
|
|
|
@@ -13,7 +13,7 @@ import withPubSub from './hocs/with-pub-sub';
|
|
|
13
13
|
// Configs
|
|
14
14
|
import { TRACKS_INFO } from './configs';
|
|
15
15
|
|
|
16
|
-
class TilesetFinder extends React.Component {
|
|
16
|
+
export class TilesetFinder extends React.Component {
|
|
17
17
|
constructor(props) {
|
|
18
18
|
super(props);
|
|
19
19
|
|
|
@@ -128,7 +128,7 @@ class TilesetFinder extends React.Component {
|
|
|
128
128
|
[].concat(
|
|
129
129
|
...this.augmentedTracksInfo
|
|
130
130
|
.filter((x) => x.datatype)
|
|
131
|
-
|
|
131
|
+
|
|
132
132
|
.filter((x) => {
|
|
133
133
|
return (
|
|
134
134
|
x.orientation === this.props.orientation ||
|
|
@@ -356,41 +356,49 @@ class TilesetFinder extends React.Component {
|
|
|
356
356
|
icons={{
|
|
357
357
|
uncheck: (
|
|
358
358
|
<svg style={svgStyle}>
|
|
359
|
+
<title>Uncheck</title>
|
|
359
360
|
<use xlinkHref="#square_o" />
|
|
360
361
|
</svg>
|
|
361
362
|
),
|
|
362
363
|
check: (
|
|
363
364
|
<svg style={svgStyle}>
|
|
365
|
+
<title>Check</title>
|
|
364
366
|
<use xlinkHref="#check_square_o" />
|
|
365
367
|
</svg>
|
|
366
368
|
),
|
|
367
369
|
halfCheck: (
|
|
368
370
|
<svg style={halfSvgStyle}>
|
|
371
|
+
<title>Half Check</title>
|
|
369
372
|
<use xlinkHref="#check_square_o" />
|
|
370
373
|
</svg>
|
|
371
374
|
),
|
|
372
375
|
leaf: (
|
|
373
376
|
<svg style={svgStyle}>
|
|
377
|
+
<title>Leaf</title>
|
|
374
378
|
<use xlinkHref="#file_o" />
|
|
375
379
|
</svg>
|
|
376
380
|
),
|
|
377
381
|
expandClose: (
|
|
378
382
|
<svg style={svgStyle}>
|
|
383
|
+
<title>Expand Close</title>
|
|
379
384
|
<use xlinkHref="#chevron_right" />
|
|
380
385
|
</svg>
|
|
381
386
|
),
|
|
382
387
|
expandOpen: (
|
|
383
388
|
<svg style={svgStyle}>
|
|
389
|
+
<title>Expand Open </title>
|
|
384
390
|
<use xlinkHref="#chevron_down" />
|
|
385
391
|
</svg>
|
|
386
392
|
),
|
|
387
393
|
parentClose: (
|
|
388
394
|
<svg style={svgStyle}>
|
|
395
|
+
<title>Parent Close</title>
|
|
389
396
|
<use xlinkHref="#folder_o" />
|
|
390
397
|
</svg>
|
|
391
398
|
),
|
|
392
399
|
parentOpen: (
|
|
393
400
|
<svg style={svgStyle}>
|
|
401
|
+
<title>Parent Open</title>
|
|
394
402
|
<use xlinkHref="#folder_open_o" />
|
|
395
403
|
</svg>
|
|
396
404
|
),
|
package/app/scripts/Track.js
CHANGED
|
@@ -47,6 +47,7 @@ class TrackArea extends React.Component {
|
|
|
47
47
|
style={this.getMoveImgStyle()}
|
|
48
48
|
width="10px"
|
|
49
49
|
>
|
|
50
|
+
<title>Move</title>
|
|
50
51
|
<use xlinkHref="#move" />
|
|
51
52
|
</svg>
|
|
52
53
|
));
|
|
@@ -84,6 +85,7 @@ class TrackArea extends React.Component {
|
|
|
84
85
|
style={this.getSettingsImgStyle()}
|
|
85
86
|
width="10px"
|
|
86
87
|
>
|
|
88
|
+
<title>No Zoom</title>
|
|
87
89
|
<use xlinkHref="#cog" />
|
|
88
90
|
</svg>
|
|
89
91
|
|
|
@@ -97,6 +99,7 @@ class TrackArea extends React.Component {
|
|
|
97
99
|
style={this.getAddImgStyle()}
|
|
98
100
|
width="10px"
|
|
99
101
|
>
|
|
102
|
+
<title>Add</title>
|
|
100
103
|
<use xlinkHref="#plus" />
|
|
101
104
|
</svg>
|
|
102
105
|
|
|
@@ -114,6 +117,7 @@ class TrackArea extends React.Component {
|
|
|
114
117
|
style={this.getCloseImgStyle()}
|
|
115
118
|
width="10px"
|
|
116
119
|
>
|
|
120
|
+
<title>Close</title>
|
|
117
121
|
<use xlinkHref="#cross" />
|
|
118
122
|
</svg>
|
|
119
123
|
</div>
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
|
+
import clsx from 'clsx';
|
|
2
3
|
import PropTypes from 'prop-types';
|
|
3
4
|
import React from 'react';
|
|
4
5
|
import { SortableHandle } from 'react-sortable-hoc';
|
|
5
|
-
import clsx from 'clsx';
|
|
6
6
|
|
|
7
|
-
import withTheme from './hocs/with-theme';
|
|
8
7
|
import { THEME_DARK } from './configs';
|
|
8
|
+
import withTheme from './hocs/with-theme';
|
|
9
9
|
|
|
10
10
|
// Styles
|
|
11
11
|
import classes from '../styles/TrackControl.module.scss';
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import PropTypes from 'prop-types';
|
|
2
|
+
import React from 'react';
|
|
3
3
|
|
|
4
|
-
import
|
|
5
|
-
import { select, pointer } from 'd3-selection';
|
|
4
|
+
import clsx from 'clsx';
|
|
6
5
|
import { scaleLinear } from 'd3-scale';
|
|
6
|
+
import { pointer, select } from 'd3-selection';
|
|
7
|
+
import { zoom, zoomIdentity } from 'd3-zoom';
|
|
7
8
|
import slugid from 'slugid';
|
|
8
|
-
import clsx from 'clsx';
|
|
9
9
|
|
|
10
|
-
import
|
|
10
|
+
import BedLikeTrack from './BedLikeTrack';
|
|
11
|
+
import CombinedTrack from './CombinedTrack';
|
|
11
12
|
import HeatmapTiledPixiTrack from './HeatmapTiledPixiTrack';
|
|
12
13
|
import Id2DTiledPixiTrack from './Id2DTiledPixiTrack';
|
|
13
14
|
import IdHorizontal1DTiledPixiTrack from './IdHorizontal1DTiledPixiTrack';
|
|
14
15
|
import IdVertical1DTiledPixiTrack from './IdVertical1DTiledPixiTrack';
|
|
15
|
-
import TopAxisTrack from './TopAxisTrack';
|
|
16
16
|
import LeftAxisTrack from './LeftAxisTrack';
|
|
17
|
-
import CombinedTrack from './CombinedTrack';
|
|
18
|
-
import BedLikeTrack from './BedLikeTrack';
|
|
19
17
|
import OverlayTrack from './OverlayTrack';
|
|
18
|
+
import PixiTrack from './PixiTrack';
|
|
19
|
+
import TopAxisTrack from './TopAxisTrack';
|
|
20
20
|
|
|
21
|
-
import HorizontalLine1DPixiTrack from './HorizontalLine1DPixiTrack';
|
|
22
|
-
import HorizontalPoint1DPixiTrack from './HorizontalPoint1DPixiTrack';
|
|
23
|
-
import HorizontalMultivecTrack from './HorizontalMultivecTrack';
|
|
24
21
|
import BarTrack from './BarTrack';
|
|
25
22
|
import DivergentBarTrack from './DivergentBarTrack';
|
|
26
23
|
import Horizontal1dHeatmapTrack from './Horizontal1dHeatmapTrack';
|
|
24
|
+
import HorizontalLine1DPixiTrack from './HorizontalLine1DPixiTrack';
|
|
25
|
+
import HorizontalMultivecTrack from './HorizontalMultivecTrack';
|
|
26
|
+
import HorizontalPoint1DPixiTrack from './HorizontalPoint1DPixiTrack';
|
|
27
27
|
|
|
28
|
+
import Annotations1dTrack from './Annotations1dTrack';
|
|
29
|
+
import Annotations2dTrack from './Annotations2dTrack';
|
|
30
|
+
import ArrowheadDomainsTrack from './ArrowheadDomainsTrack';
|
|
28
31
|
import CNVIntervalTrack from './CNVIntervalTrack';
|
|
32
|
+
import HorizontalGeneAnnotationsTrack from './HorizontalGeneAnnotationsTrack';
|
|
29
33
|
import LeftTrackModifier from './LeftTrackModifier';
|
|
30
34
|
import Track from './Track';
|
|
31
|
-
import HorizontalGeneAnnotationsTrack from './HorizontalGeneAnnotationsTrack';
|
|
32
|
-
import ArrowheadDomainsTrack from './ArrowheadDomainsTrack';
|
|
33
|
-
import Annotations2dTrack from './Annotations2dTrack';
|
|
34
|
-
import Annotations1dTrack from './Annotations1dTrack';
|
|
35
35
|
|
|
36
36
|
import Horizontal2DDomainsTrack from './Horizontal2DDomainsTrack';
|
|
37
37
|
|
|
38
|
-
import
|
|
38
|
+
import Chromosome2DAnnotations from './Chromosome2DAnnotations';
|
|
39
39
|
import Chromosome2DLabels from './Chromosome2DLabels';
|
|
40
40
|
import ChromosomeGrid from './ChromosomeGrid';
|
|
41
|
-
import Chromosome2DAnnotations from './Chromosome2DAnnotations';
|
|
42
41
|
import HorizontalChromosomeLabels from './HorizontalChromosomeLabels';
|
|
42
|
+
import SquareMarkersTrack from './SquareMarkersTrack';
|
|
43
43
|
|
|
44
44
|
import HorizontalHeatmapTrack from './HorizontalHeatmapTrack';
|
|
45
45
|
import UnknownPixiTrack from './UnknownPixiTrack';
|
|
@@ -48,13 +48,13 @@ import ViewportTracker2D from './ViewportTracker2D';
|
|
|
48
48
|
import ViewportTrackerHorizontal from './ViewportTrackerHorizontal';
|
|
49
49
|
import ViewportTrackerVertical from './ViewportTrackerVertical';
|
|
50
50
|
|
|
51
|
+
import CrossRule from './CrossRule';
|
|
51
52
|
import HorizontalRule from './HorizontalRule';
|
|
52
53
|
import VerticalRule from './VerticalRule';
|
|
53
|
-
import CrossRule from './CrossRule';
|
|
54
54
|
|
|
55
|
-
import OSMTilesTrack from './OSMTilesTrack';
|
|
56
|
-
import OSMTileIdsTrack from './OSMTileIdsTrack';
|
|
57
55
|
import MapboxTilesTrack from './MapboxTilesTrack';
|
|
56
|
+
import OSMTileIdsTrack from './OSMTileIdsTrack';
|
|
57
|
+
import OSMTilesTrack from './OSMTilesTrack';
|
|
58
58
|
import RasterTilesTrack from './RasterTilesTrack';
|
|
59
59
|
|
|
60
60
|
import SVGTrack from './SVGTrack';
|
|
@@ -129,7 +129,7 @@ const SCROLL_TIMEOUT = 100;
|
|
|
129
129
|
* @property {() => void} onValueScaleChanged
|
|
130
130
|
* @property {(newOption: Record<string, unknown>) => void} onTrackOptionsChanged
|
|
131
131
|
* @property {() => void} onMouseMoveZoom
|
|
132
|
-
* @property {string} chromInfoPath
|
|
132
|
+
* @property {string=} chromInfoPath
|
|
133
133
|
* @property {() => boolean} isShowGlobalMousePosition
|
|
134
134
|
* @property {() => import('./types').Theme} getTheme
|
|
135
135
|
* @property {unknown=} AVAILABLE_FOR_PLUGINS
|
|
@@ -221,7 +221,7 @@ const SCROLL_TIMEOUT = 100;
|
|
|
221
221
|
/**
|
|
222
222
|
* @extends {React.Component<TrackRendererProps>}
|
|
223
223
|
*/
|
|
224
|
-
class TrackRenderer extends React.Component {
|
|
224
|
+
export class TrackRenderer extends React.Component {
|
|
225
225
|
/**
|
|
226
226
|
* Maintain a list of tracks, and re-render them whenever either
|
|
227
227
|
* their size changes or the zoom level changes
|
|
@@ -420,7 +420,6 @@ class TrackRenderer extends React.Component {
|
|
|
420
420
|
return this._yScale;
|
|
421
421
|
}
|
|
422
422
|
|
|
423
|
-
// eslint-disable-next-line camelcase
|
|
424
423
|
UNSAFE_componentWillMount() {
|
|
425
424
|
this.pubSubs = [];
|
|
426
425
|
this.pubSubs.push(
|
|
@@ -445,6 +444,7 @@ class TrackRenderer extends React.Component {
|
|
|
445
444
|
throw new Error('Component did not mount, this.element is not defined.');
|
|
446
445
|
}
|
|
447
446
|
this.elementPos = this.element.getBoundingClientRect();
|
|
447
|
+
|
|
448
448
|
this.elementSelection = select(this.element);
|
|
449
449
|
|
|
450
450
|
/** @type {import('pixi.js').Graphics} */
|
|
@@ -507,7 +507,6 @@ class TrackRenderer extends React.Component {
|
|
|
507
507
|
.scaleExtent(this.zoomLimits);
|
|
508
508
|
}
|
|
509
509
|
|
|
510
|
-
// eslint-disable-next-line camelcase
|
|
511
510
|
/** @param {TrackRendererProps} nextProps */
|
|
512
511
|
UNSAFE_componentWillReceiveProps(nextProps) {
|
|
513
512
|
/**
|
|
@@ -777,7 +776,8 @@ class TrackRenderer extends React.Component {
|
|
|
777
776
|
) {
|
|
778
777
|
// Make sure the initial domain is within the limits first
|
|
779
778
|
zoomLimits[0] = zoomLimits[0] === null ? 0 : zoomLimits[0];
|
|
780
|
-
zoomLimits[1] =
|
|
779
|
+
zoomLimits[1] =
|
|
780
|
+
zoomLimits[1] === null ? Number.POSITIVE_INFINITY : zoomLimits[1];
|
|
781
781
|
|
|
782
782
|
// make sure the two scales are equally wide:
|
|
783
783
|
const xWidth = initialXDomain[1] - initialXDomain[0];
|
|
@@ -1569,7 +1569,7 @@ class TrackRenderer extends React.Component {
|
|
|
1569
1569
|
zoomStarted(event) {
|
|
1570
1570
|
this.zooming = true;
|
|
1571
1571
|
|
|
1572
|
-
if (event
|
|
1572
|
+
if (event?.sourceEvent) {
|
|
1573
1573
|
this.zoomStartPos = pointer(event.sourceEvent, this.props.canvasElement);
|
|
1574
1574
|
|
|
1575
1575
|
if (event.sourceEvent.shiftKey) {
|
|
@@ -1736,10 +1736,10 @@ class TrackRenderer extends React.Component {
|
|
|
1736
1736
|
definition: track,
|
|
1737
1737
|
};
|
|
1738
1738
|
try {
|
|
1739
|
-
return new pluginTrack.track(
|
|
1739
|
+
return new pluginTrack.track(
|
|
1740
1740
|
this.availableForPlugins,
|
|
1741
1741
|
context,
|
|
1742
|
-
track.options,
|
|
1742
|
+
track.options ?? {},
|
|
1743
1743
|
);
|
|
1744
1744
|
} catch (e) {
|
|
1745
1745
|
console.error(
|
|
@@ -1781,7 +1781,7 @@ class TrackRenderer extends React.Component {
|
|
|
1781
1781
|
let dataConfig = track.data;
|
|
1782
1782
|
if (!dataConfig) {
|
|
1783
1783
|
dataConfig = {
|
|
1784
|
-
server: trimTrailingSlash(track.server),
|
|
1784
|
+
server: trimTrailingSlash(track.server ?? ''),
|
|
1785
1785
|
tilesetUid: track.tilesetUid,
|
|
1786
1786
|
};
|
|
1787
1787
|
}
|
|
@@ -1962,9 +1962,8 @@ class TrackRenderer extends React.Component {
|
|
|
1962
1962
|
case 'arrowhead-domains':
|
|
1963
1963
|
return new ArrowheadDomainsTrack(context, track.options);
|
|
1964
1964
|
|
|
1965
|
+
case '1d-annotations':
|
|
1965
1966
|
case 'horizontal-1d-annotations':
|
|
1966
|
-
return new Annotations1dTrack(context, track.options);
|
|
1967
|
-
|
|
1968
1967
|
case 'vertical-1d-annotations':
|
|
1969
1968
|
// Fix this: LeftTrackModifier is doing a whole bunch of things not
|
|
1970
1969
|
// needed by this track but the current setup is not consistent.
|
|
@@ -2088,10 +2087,10 @@ class TrackRenderer extends React.Component {
|
|
|
2088
2087
|
}
|
|
2089
2088
|
|
|
2090
2089
|
try {
|
|
2091
|
-
return new pluginTrack.track(
|
|
2090
|
+
return new pluginTrack.track(
|
|
2092
2091
|
this.availableForPlugins,
|
|
2093
2092
|
context,
|
|
2094
|
-
track.options,
|
|
2093
|
+
track.options ?? {},
|
|
2095
2094
|
);
|
|
2096
2095
|
} catch (e) {
|
|
2097
2096
|
console.error(
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
2
|
import { scaleLog } from 'd3-scale';
|
|
3
3
|
|
|
4
|
-
import HorizontalLine1DPixiTrack from './HorizontalLine1DPixiTrack';
|
|
5
4
|
import AxisPixi from './AxisPixi';
|
|
5
|
+
import HorizontalLine1DPixiTrack from './HorizontalLine1DPixiTrack';
|
|
6
6
|
|
|
7
7
|
import { colorToHex } from './utils';
|
|
8
8
|
|
|
@@ -2,25 +2,25 @@
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
|
|
5
|
+
import clsx from 'clsx';
|
|
5
6
|
import { brushY } from 'd3-brush';
|
|
6
7
|
import { select } from 'd3-selection';
|
|
7
8
|
import slugid from 'slugid';
|
|
8
|
-
import clsx from 'clsx';
|
|
9
9
|
|
|
10
10
|
import ListWrapper from './ListWrapper';
|
|
11
|
-
import VerticalItem from './VerticalItem';
|
|
12
11
|
import SortableList from './SortableList';
|
|
12
|
+
import VerticalItem from './VerticalItem';
|
|
13
13
|
|
|
14
14
|
// Utils
|
|
15
|
-
import { or, resetD3BrushStyle, sum
|
|
15
|
+
import { IS_TRACK_RANGE_SELECTABLE, or, resetD3BrushStyle, sum } from './utils';
|
|
16
16
|
|
|
17
|
+
import stylesPlot from '../styles/TiledPlot.module.scss';
|
|
18
|
+
import stylesTrack from '../styles/Track.module.scss';
|
|
17
19
|
// Styles
|
|
18
|
-
import styles from '../styles/VerticalTiledPlot.module.scss';
|
|
19
|
-
import stylesPlot from '../styles/TiledPlot.module.scss'; // eslint-disable-line no-unused-vars
|
|
20
|
-
import stylesTrack from '../styles/Track.module.scss'; // eslint-disable-line no-unused-vars
|
|
20
|
+
import styles from '../styles/VerticalTiledPlot.module.scss';
|
|
21
21
|
|
|
22
22
|
function sourceEvent(event) {
|
|
23
|
-
return event
|
|
23
|
+
return event?.sourceEvent;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
class VerticalTiledPlot extends React.Component {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
|
+
import { highlight, languages } from 'prismjs/components/prism-core';
|
|
2
3
|
import PropTypes from 'prop-types';
|
|
3
4
|
import React from 'react';
|
|
4
5
|
import Editor from 'react-simple-code-editor';
|
|
5
|
-
import { highlight, languages } from 'prismjs/components/prism-core';
|
|
6
6
|
import 'prismjs/components/prism-json';
|
|
7
7
|
import Ajv from 'ajv';
|
|
8
8
|
import clsx from 'clsx';
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
2
|
import clsx from 'clsx';
|
|
3
|
+
import { format } from 'd3-format';
|
|
4
|
+
import PropTypes from 'prop-types';
|
|
5
|
+
import React from 'react';
|
|
6
|
+
|
|
5
7
|
import { mix } from './mixwith';
|
|
6
8
|
|
|
7
|
-
import { expandCombinedTracks } from './utils';
|
|
8
9
|
import { getSeriesItems } from './SeriesListItems';
|
|
10
|
+
import { absToChr, expandCombinedTracks } from './utils';
|
|
11
|
+
import copyTextToClipboard from './utils/copy-text-to-clipboard';
|
|
9
12
|
|
|
10
|
-
import ContextMenuItem from './ContextMenuItem';
|
|
11
13
|
import ContextMenuContainer from './ContextMenuContainer';
|
|
14
|
+
import ContextMenuItem from './ContextMenuItem';
|
|
12
15
|
import SeriesListSubmenuMixin from './SeriesListSubmenuMixin';
|
|
13
16
|
|
|
14
|
-
import { THEME_DARK } from './configs';
|
|
17
|
+
import { THEME_DARK } from './configs/themes';
|
|
15
18
|
|
|
16
19
|
// Styles
|
|
17
20
|
import classes from '../styles/ContextMenu.module.scss';
|
|
@@ -58,6 +61,17 @@ class ViewContextMenu extends mix(ContextMenuContainer).with(
|
|
|
58
61
|
|
|
59
62
|
{seriesItems && <hr className={classes['context-menu-hr']} />}
|
|
60
63
|
|
|
64
|
+
{this.props.genomePositionSearchBox && (
|
|
65
|
+
<ContextMenuItem
|
|
66
|
+
onClick={this.copyLocationToClipboard.bind(this)}
|
|
67
|
+
onMouseEnter={(e) => this.handleOtherMouseEnter(e)}
|
|
68
|
+
>
|
|
69
|
+
Copy location under cursor
|
|
70
|
+
</ContextMenuItem>
|
|
71
|
+
)}
|
|
72
|
+
|
|
73
|
+
<hr className={classes['context-menu-hr']} />
|
|
74
|
+
|
|
61
75
|
<ContextMenuItem
|
|
62
76
|
onClick={() =>
|
|
63
77
|
this.props.onAddTrack({
|
|
@@ -155,6 +169,40 @@ class ViewContextMenu extends mix(ContextMenuContainer).with(
|
|
|
155
169
|
});
|
|
156
170
|
}
|
|
157
171
|
|
|
172
|
+
copyLocationToClipboard() {
|
|
173
|
+
const is2d =
|
|
174
|
+
this.props.tracks[0] && this.props.tracks[0].position === 'center';
|
|
175
|
+
|
|
176
|
+
const chromInfo =
|
|
177
|
+
this.props.genomePositionSearchBox?.searchField?.chromInfo;
|
|
178
|
+
|
|
179
|
+
if (!chromInfo) {
|
|
180
|
+
console.warn(
|
|
181
|
+
'There needs to be a genome position search box present to copy the location',
|
|
182
|
+
);
|
|
183
|
+
this.props.closeMenu();
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
const xAbsCoord = this.props.coords[0];
|
|
188
|
+
const yAbsCoord = this.props.coords[1];
|
|
189
|
+
|
|
190
|
+
const xChr = absToChr(xAbsCoord, chromInfo);
|
|
191
|
+
const stringFormat = format(',d');
|
|
192
|
+
|
|
193
|
+
let locationText = `${xChr[0]}:${stringFormat(xChr[1])}`;
|
|
194
|
+
|
|
195
|
+
if (is2d) {
|
|
196
|
+
const yChr = absToChr(yAbsCoord, chromInfo);
|
|
197
|
+
locationText = `${locationText} & ${yChr[0]}:${stringFormat(yChr[1])}`;
|
|
198
|
+
copyTextToClipboard(locationText);
|
|
199
|
+
} else {
|
|
200
|
+
copyTextToClipboard(locationText);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
this.props.closeMenu();
|
|
204
|
+
}
|
|
205
|
+
|
|
158
206
|
handleAddVerticalSection() {
|
|
159
207
|
const trackList = expandCombinedTracks(this.props.tracks);
|
|
160
208
|
const matrixTrack = trackList.filter(
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
2
|
import clsx from 'clsx';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import React from 'react';
|
|
5
5
|
|
|
6
|
-
import PopupMenu from './PopupMenu';
|
|
7
|
-
import ContextMenuContainer from './ContextMenuContainer';
|
|
8
|
-
import ConfigViewMenu from './ConfigViewMenu';
|
|
9
6
|
import AddTrackPositionMenu from './AddTrackPositionMenu';
|
|
7
|
+
import ConfigViewMenu from './ConfigViewMenu';
|
|
8
|
+
import ContextMenuContainer from './ContextMenuContainer';
|
|
9
|
+
import PopupMenu from './PopupMenu';
|
|
10
10
|
|
|
11
11
|
// HOCS
|
|
12
12
|
import withTheme from './hocs/with-theme';
|
|
@@ -43,7 +43,6 @@ class ViewHeader extends React.Component {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
componentDidMount() {
|
|
46
|
-
// eslint-disable-next-line react/no-did-mount-set-state
|
|
47
46
|
this.setState({ width: this.el.clientWidth });
|
|
48
47
|
}
|
|
49
48
|
|
|
@@ -81,8 +80,8 @@ class ViewHeader extends React.Component {
|
|
|
81
80
|
*
|
|
82
81
|
* We just need to close the menu here.
|
|
83
82
|
*/
|
|
84
|
-
handleTrackPositionChosen(position) {
|
|
85
|
-
this.props.onTrackPositionChosen(position);
|
|
83
|
+
handleTrackPositionChosen(position, extent) {
|
|
84
|
+
this.props.onTrackPositionChosen(position, extent);
|
|
86
85
|
|
|
87
86
|
this.setState({
|
|
88
87
|
addTrackPositionMenuUid: null,
|
|
@@ -243,8 +242,8 @@ class ViewHeader extends React.Component {
|
|
|
243
242
|
{this.props.mouseTool === MOUSE_TOOL_SELECT && (
|
|
244
243
|
<svg
|
|
245
244
|
className={clsx(classes['mouse-tool-selection'], classNameIcon)}
|
|
246
|
-
title="Selection tool active"
|
|
247
245
|
>
|
|
246
|
+
<title>Selection tool active</title>
|
|
248
247
|
<use xlinkHref="#select" />
|
|
249
248
|
</svg>
|
|
250
249
|
)}
|
|
@@ -288,6 +287,7 @@ class ViewHeader extends React.Component {
|
|
|
288
287
|
onClick={() =>
|
|
289
288
|
this.handleAddTrackPositionMenuOpened(this.props.viewUid)
|
|
290
289
|
}
|
|
290
|
+
data-testid="add-track"
|
|
291
291
|
>
|
|
292
292
|
<title>Add Track</title>
|
|
293
293
|
<use xlinkHref="#plus" />
|