higlass 1.13.6 → 2.0.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/app/scripts/AddTrackDialog.jsx +8 -1
- package/app/scripts/AddTrackPositionMenu.jsx +26 -5
- package/app/scripts/Annotations1dTrack.js +90 -251
- package/app/scripts/Annotations2dTrack.js +9 -2
- package/app/scripts/Autocomplete.jsx +1 -9
- package/app/scripts/BedLikeTrack.js +549 -441
- package/app/scripts/ContextMenuContainer.jsx +3 -0
- package/app/scripts/ContextMenuItem.jsx +13 -2
- package/app/scripts/FilledLine.js +349 -0
- package/app/scripts/GenomePositionSearchBox.jsx +178 -477
- package/app/scripts/HiGlassComponent.jsx +443 -349
- package/app/scripts/HiGlassComponentContext.js +5 -0
- package/app/scripts/SeriesListMenu.jsx +94 -44
- package/app/scripts/SeriesListSubmenuMixin.jsx +1 -0
- package/app/scripts/Tiled1DPixiTrack.js +0 -1
- package/app/scripts/TiledPixiTrack.js +72 -63
- package/app/scripts/TiledPlot.jsx +530 -77
- package/app/scripts/TrackRenderer.jsx +2 -2
- package/app/scripts/ViewContextMenu.jsx +50 -2
- package/app/scripts/ViewHeader.jsx +3 -2
- package/app/scripts/api.js +87 -6
- package/app/scripts/configs/index.js +6 -1
- package/app/scripts/configs/primitives.js +2 -0
- package/app/scripts/configs/tracks-info.js +1 -0
- package/app/scripts/data-fetchers/genbank-fetcher.js +9 -14
- package/app/scripts/data-fetchers/local-tile-fetcher.js +8 -2
- package/app/scripts/hglib.jsx +61 -70
- package/app/scripts/options-info.js +49 -11
- package/app/scripts/services/tile-proxy.js +0 -4
- package/app/scripts/services/worker.js +1 -0
- package/app/scripts/test-helpers/index.js +2 -1
- package/app/scripts/test-helpers/test-helpers.jsx +154 -66
- package/app/scripts/types.ts +68 -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/get-default-track-for-datatype.js +2 -1
- package/app/scripts/utils/get-default-tracks-for-datatype.ts +46 -0
- package/app/scripts/utils/index.js +1 -0
- package/app/scripts/utils/positioned-tracks-to-all-tracks.js +55 -0
- package/app/scripts/utils/show-mouse-position.js +0 -16
- package/app/scripts/utils/visit-positioned-tracks.js +4 -1
- package/app/styles/AddTrackPositionMenu.module.scss +37 -0
- package/app/styles/HiGlass.module.scss +3 -1
- package/app/styles/TiledPlot.module.scss +20 -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 +65302 -79868
- package/dist/hglib.min.js +104 -112
- package/dist/higlass.mjs +64214 -78780
- package/dist/index.html +1 -3
- package/dist/package.json +134 -0
- package/package.json +13 -10
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import type * as configs from './configs';
|
|
2
|
+
import type { ChromsizeRow } from './utils/parse-chromsizes-rows';
|
|
3
|
+
export type Theme = typeof configs.THEME_DARK | typeof configs.THEME_LIGHT;
|
|
4
|
+
export type SizeMode = typeof configs.SIZE_MODE_DEFAULT | typeof configs.SIZE_MODE_BOUNDED | typeof configs.SIZE_MODE_OVERFLOW | typeof configs.SIZE_MODE_BOUNDED_OVERFLOW | typeof configs.SIZE_MODE_SCROLL;
|
|
5
|
+
export type HiGlassViewConfig = Record<string, unknown>;
|
|
6
|
+
/** Additional options for how the {@link HiGlassComponent} is drawn and behaves */
|
|
7
|
+
export interface HiGlassOptions {
|
|
8
|
+
/** An auth token to be included with every tile request. */
|
|
9
|
+
authToken?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Whether the component should be sized to fit within the enclosing div.
|
|
12
|
+
*
|
|
13
|
+
* If `false`, the component will grow as needed to fit the tracks within it.
|
|
14
|
+
*/
|
|
15
|
+
bounded?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Whether the layout be changed.
|
|
18
|
+
*
|
|
19
|
+
* If `false`, the view headers will be hidden. Overrides the `editable` value in the viewconf if specified.
|
|
20
|
+
*/
|
|
21
|
+
editable?: boolean;
|
|
22
|
+
/** A set of default options that will be used for newly added tracks. */
|
|
23
|
+
defaultTrackOptions?: {
|
|
24
|
+
/** Options for all tracks types. */
|
|
25
|
+
all?: Record<string, unknown>;
|
|
26
|
+
/** Options for specific tracks types. */
|
|
27
|
+
trackSpecific?: Record<string, Record<string, unknown>>;
|
|
28
|
+
};
|
|
29
|
+
viewMarginTop?: number;
|
|
30
|
+
viewMarginBottom?: number;
|
|
31
|
+
viewMarginLeft?: number;
|
|
32
|
+
viewMarginRight?: number;
|
|
33
|
+
viewPaddingTop?: number;
|
|
34
|
+
viewPaddingBottom?: number;
|
|
35
|
+
viewPaddingLeft?: number;
|
|
36
|
+
viewPaddingRight?: number;
|
|
37
|
+
theme?: 'dark' | 'light';
|
|
38
|
+
isDarkTheme?: boolean;
|
|
39
|
+
moustTool?: 'select' | 'track-select';
|
|
40
|
+
pluginTracks?: Record<string, unknown>;
|
|
41
|
+
pluginDataFetchers?: Record<string, unknown>;
|
|
42
|
+
pixelPreciseMarginPadding?: boolean;
|
|
43
|
+
sizeMode?: SizeMode;
|
|
44
|
+
renderer?: 'canvas';
|
|
45
|
+
onViewConfLoaded?: () => void;
|
|
46
|
+
cheatCodesEnabled?: boolean;
|
|
47
|
+
rangeSelectionOnAlt?: boolean;
|
|
48
|
+
tracksEditable?: boolean;
|
|
49
|
+
zoomFixed?: boolean;
|
|
50
|
+
containerPaddingX?: number;
|
|
51
|
+
containerPaddingY?: number;
|
|
52
|
+
broadcastMousePositionGlobally?: boolean;
|
|
53
|
+
showGlobalMousePosition?: boolean;
|
|
54
|
+
globalMousePosition?: boolean;
|
|
55
|
+
}
|
|
56
|
+
export type Scale = import('d3-scale').ScaleContinuousNumeric<number, number>;
|
|
57
|
+
export type TrackPosition = typeof import('./configs/primitives').TRACK_LOCATIONS[number];
|
|
58
|
+
export type ChromInfo<Name extends string = string> = {
|
|
59
|
+
cumPositions: {
|
|
60
|
+
id?: number;
|
|
61
|
+
pos: number;
|
|
62
|
+
chr: Name;
|
|
63
|
+
}[];
|
|
64
|
+
chrPositions: Record<Name, {
|
|
65
|
+
pos: number;
|
|
66
|
+
}>;
|
|
67
|
+
chromLengths: Record<Name, number>;
|
|
68
|
+
totalLength: number;
|
|
69
|
+
};
|
|
70
|
+
export type UnknownTrackConfig = {
|
|
71
|
+
type: string;
|
|
72
|
+
uid: string;
|
|
73
|
+
server: string;
|
|
74
|
+
tilesetUid: string;
|
|
75
|
+
options?: Record<string, unknown>;
|
|
76
|
+
position?: TrackPosition;
|
|
77
|
+
data?: Record<string, unknown>;
|
|
78
|
+
coordSystem?: unknown;
|
|
79
|
+
height?: number;
|
|
80
|
+
width?: number;
|
|
81
|
+
x?: number;
|
|
82
|
+
y?: number;
|
|
83
|
+
chromInfoPath?: string;
|
|
84
|
+
projectionXDomain?: [number, number];
|
|
85
|
+
projectionYDomain?: [number, number];
|
|
86
|
+
registerViewportChanged?: unknown;
|
|
87
|
+
removeViewportChanged?: unknown;
|
|
88
|
+
setDomainsCallback?: unknown;
|
|
89
|
+
};
|
|
90
|
+
export type CombinedTrackConfig = {
|
|
91
|
+
type: 'combined';
|
|
92
|
+
contents: Array<UnknownTrackConfig>;
|
|
93
|
+
uid: string;
|
|
94
|
+
server?: string;
|
|
95
|
+
height?: number;
|
|
96
|
+
width?: number;
|
|
97
|
+
tilesetUid?: string;
|
|
98
|
+
options?: Record<string, unknown>;
|
|
99
|
+
position?: TrackPosition;
|
|
100
|
+
data?: Record<string, unknown>;
|
|
101
|
+
coordSystem?: unknown;
|
|
102
|
+
x?: number;
|
|
103
|
+
y?: number;
|
|
104
|
+
chromInfoPath?: string;
|
|
105
|
+
projectionXDomain?: [number, number];
|
|
106
|
+
projectionYDomain?: [number, number];
|
|
107
|
+
registerViewportChanged?: unknown;
|
|
108
|
+
removeViewportChanged?: unknown;
|
|
109
|
+
setDomainsCallback?: unknown;
|
|
110
|
+
};
|
|
111
|
+
export type TrackConfig = UnknownTrackConfig | CombinedTrackConfig;
|
|
112
|
+
export type TrackVisitor = (track: TrackConfig, position: null | TrackPosition) => void;
|
|
113
|
+
type ZoomedFunction = (xScale: Scale, yScale: Scale, k?: number, x?: number, y?: number, xPosition?: number, yPosition?: number) => void;
|
|
114
|
+
export interface TrackObject {
|
|
115
|
+
draw(): void;
|
|
116
|
+
rerender(options: unknown): void;
|
|
117
|
+
delayDrawing: boolean;
|
|
118
|
+
flipText?: boolean;
|
|
119
|
+
originalTrack?: TrackObject;
|
|
120
|
+
childTracks?: TrackObject[];
|
|
121
|
+
createdTracks: Record<string, TrackObject>;
|
|
122
|
+
refScalesChanged(x: Scale, y: Scale): void;
|
|
123
|
+
position: [number, number];
|
|
124
|
+
dimensions: [number, number];
|
|
125
|
+
updateContents(contents: TrackConfig[], x: unknown): TrackObject;
|
|
126
|
+
zoomed: ZoomedFunction;
|
|
127
|
+
setPosition(position: [number, number]): void;
|
|
128
|
+
setDimensions(dimensions: [number, number]): void;
|
|
129
|
+
remove(): void;
|
|
130
|
+
movedY(extent: number): void;
|
|
131
|
+
zoomedY(yPosition: number, wheelDelta: number): void;
|
|
132
|
+
fetching?: Set<unknown>;
|
|
133
|
+
tilesetInfo?: TilesetInfo;
|
|
134
|
+
chromInfo?: unknown;
|
|
135
|
+
}
|
|
136
|
+
/** Minimum information describing a tileset. */
|
|
137
|
+
export type TilesetInfoShared = {
|
|
138
|
+
name: string;
|
|
139
|
+
min_pos: number[];
|
|
140
|
+
max_pos: number[];
|
|
141
|
+
max_zoom: number;
|
|
142
|
+
coordSystem?: string;
|
|
143
|
+
tile_size?: number;
|
|
144
|
+
max_tile_width?: number;
|
|
145
|
+
transforms?: {
|
|
146
|
+
name: string;
|
|
147
|
+
value: string;
|
|
148
|
+
}[];
|
|
149
|
+
chromsizes?: ArrayLike<ChromsizeRow>;
|
|
150
|
+
error?: string;
|
|
151
|
+
};
|
|
152
|
+
export type LegacyTilesetInfo = TilesetInfoShared & {
|
|
153
|
+
max_width: number;
|
|
154
|
+
bins_per_dimension?: number;
|
|
155
|
+
};
|
|
156
|
+
export type ResolutionsTilesetInfo = TilesetInfoShared & {
|
|
157
|
+
resolutions: number[];
|
|
158
|
+
};
|
|
159
|
+
export type TilesetInfo = LegacyTilesetInfo | ResolutionsTilesetInfo;
|
|
160
|
+
export type DataConfig = {
|
|
161
|
+
server?: string;
|
|
162
|
+
url?: string;
|
|
163
|
+
filetype?: string;
|
|
164
|
+
coordSystem?: string;
|
|
165
|
+
children?: DataConfig[];
|
|
166
|
+
options?: Record<string, any>;
|
|
167
|
+
type?: string;
|
|
168
|
+
slicePos?: number;
|
|
169
|
+
};
|
|
170
|
+
export type HandleTilesetInfoFinished = (info: TilesetInfo | null | {
|
|
171
|
+
error: string;
|
|
172
|
+
}, tilesetUid?: string) => void;
|
|
173
|
+
export interface AbstractDataFetcher<TileType, DataConfig> {
|
|
174
|
+
tilesetInfo(callback?: HandleTilesetInfoFinished): Promise<TilesetInfo | undefined>;
|
|
175
|
+
fetchTilesDebounced(receivedTiles: (tiles: Record<string, TileType>) => void, tileIds: string[]): Promise<Record<string, TileType>>;
|
|
176
|
+
dataConfig: DataConfig;
|
|
177
|
+
}
|
|
178
|
+
export type TilesRequest = {
|
|
179
|
+
id: string;
|
|
180
|
+
tileIds: Array<string>;
|
|
181
|
+
server: string;
|
|
182
|
+
options?: Record<string, any>;
|
|
183
|
+
};
|
|
184
|
+
export type TilesetInfoRequest = {
|
|
185
|
+
server: string;
|
|
186
|
+
tilesetUid: string;
|
|
187
|
+
};
|
|
188
|
+
export type RegisterTilesetRequest = {
|
|
189
|
+
server: string;
|
|
190
|
+
url: string;
|
|
191
|
+
filetype: string;
|
|
192
|
+
coordSystem?: string;
|
|
193
|
+
};
|
|
194
|
+
export type TileSource<T> = {
|
|
195
|
+
fetchTiles: (request: TilesRequest) => Promise<Record<string, T>>;
|
|
196
|
+
fetchTilesetInfo: (request: TilesetInfoRequest) => Promise<Record<string, TilesetInfo>>;
|
|
197
|
+
registerTileset: (request: RegisterTilesetRequest) => Promise<Response>;
|
|
198
|
+
};
|
|
199
|
+
export {};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
export default DenseDataExtrema1D;
|
|
2
|
+
/**
|
|
3
|
+
* @template {ArrayLike<number>} [T=ArrayLike<number>]
|
|
4
|
+
*/
|
|
5
|
+
declare class DenseDataExtrema1D<T extends ArrayLike<number> = ArrayLike<number>> {
|
|
6
|
+
/**
|
|
7
|
+
* This module efficiently computes extrema of arbitrary subsets of a given data array.
|
|
8
|
+
* The array is subdivided into 'numSubsets' subsets where extrema are precomputed.
|
|
9
|
+
* These values are used to compute extrema given arbitrary start and end indices via
|
|
10
|
+
* the getMinNonZeroInSubset and getMaxNonZeroInSubset methods.
|
|
11
|
+
* @param {T} data
|
|
12
|
+
*/
|
|
13
|
+
constructor(data: T);
|
|
14
|
+
/** @type {number} */
|
|
15
|
+
epsilon: number;
|
|
16
|
+
/** @type {T} */
|
|
17
|
+
data: T;
|
|
18
|
+
/** @type {number} */
|
|
19
|
+
tileSize: number;
|
|
20
|
+
/** @type {number} */
|
|
21
|
+
paddedTileSize: number;
|
|
22
|
+
/** @type {number} */
|
|
23
|
+
numSubsets: number;
|
|
24
|
+
/** @type {number} */
|
|
25
|
+
subsetSize: number;
|
|
26
|
+
subsetMinimums: number[];
|
|
27
|
+
subsetMaximums: number[];
|
|
28
|
+
minNonZeroInTile: number;
|
|
29
|
+
maxNonZeroInTile: number;
|
|
30
|
+
/**
|
|
31
|
+
* Computes the non-zero minimum in a subset using precomputed values,
|
|
32
|
+
* if possible. data[end] is not considered.
|
|
33
|
+
*
|
|
34
|
+
* @param {[start: number, end: number]} indexBounds
|
|
35
|
+
* @return {number} non-zero minium of the subset
|
|
36
|
+
*/
|
|
37
|
+
getMinNonZeroInSubset(indexBounds: [start: number, end: number]): number;
|
|
38
|
+
/**
|
|
39
|
+
* Computes the non-zero maximum in a subset using precomputed values, if possible
|
|
40
|
+
*
|
|
41
|
+
* @param {[start: number, end: number]} indexBounds
|
|
42
|
+
* @return {number} non-zero maxium of the subset
|
|
43
|
+
*/
|
|
44
|
+
getMaxNonZeroInSubset(indexBounds: [start: number, end: number]): number;
|
|
45
|
+
/**
|
|
46
|
+
* Precomputes non-zero minimums of subsets of the given data vector
|
|
47
|
+
*
|
|
48
|
+
* @returns {Array<number>} - Minimums of the regularly subdivided data vector
|
|
49
|
+
*/
|
|
50
|
+
computeSubsetNonZeroMinimums(): Array<number>;
|
|
51
|
+
/**
|
|
52
|
+
* Precomputes non-zero maximums of subsets of the given data vector
|
|
53
|
+
* @return {Array<number>} Maximums of the regularly subdivided data vector
|
|
54
|
+
*/
|
|
55
|
+
computeSubsetNonZeroMaximums(): Array<number>;
|
|
56
|
+
/**
|
|
57
|
+
* Computes the non-zero minimum in the entire data array using precomputed values
|
|
58
|
+
*
|
|
59
|
+
* @return {number} Non-zeros maximum of the data
|
|
60
|
+
*/
|
|
61
|
+
getMinNonZeroInTile(): number;
|
|
62
|
+
/**
|
|
63
|
+
* Computes the non-zero maximum in the entire data array using precomputed values
|
|
64
|
+
*
|
|
65
|
+
* @return {number} Non-zeros maximum of the data
|
|
66
|
+
*/
|
|
67
|
+
getMaxNonZeroInTile(): number;
|
|
68
|
+
/**
|
|
69
|
+
* Calculate the minimum non-zero value in the data from start
|
|
70
|
+
* to end. No precomputations are used to compute the min.
|
|
71
|
+
*
|
|
72
|
+
* @param {ArrayLike<number>} data
|
|
73
|
+
* @param {number} start
|
|
74
|
+
* @param {number} end
|
|
75
|
+
* @return {number} non-zero min in subset
|
|
76
|
+
*/
|
|
77
|
+
minNonZero(data: ArrayLike<number>, start: number, end: number): number;
|
|
78
|
+
/**
|
|
79
|
+
* Calculate the maximum non-zero value in the data from start
|
|
80
|
+
* to end. No precomputations are used to compute the max.
|
|
81
|
+
*
|
|
82
|
+
* @param {ArrayLike<number>} data
|
|
83
|
+
* @param {number} start
|
|
84
|
+
* @param {number} end
|
|
85
|
+
* @return {number} non-zero max in subset
|
|
86
|
+
*/
|
|
87
|
+
maxNonZero(data: ArrayLike<number>, start: number, end: number): number;
|
|
88
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
export default DenseDataExtrema2D;
|
|
2
|
+
export type View2D = {
|
|
3
|
+
get: (i: number, j: number) => number;
|
|
4
|
+
set: (i: number, j: number, v: number) => void;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* @typedef View2D
|
|
8
|
+
* @property {(i: number, j: number) => number} get
|
|
9
|
+
* @property {(i: number, j: number, v: number) => void} set
|
|
10
|
+
*/
|
|
11
|
+
declare class DenseDataExtrema2D {
|
|
12
|
+
/**
|
|
13
|
+
* This module efficiently computes extrema of subsets of a given data matrix.
|
|
14
|
+
* The matrix is subdivided into 'numSubsets' subsets where extrema are precomputed.
|
|
15
|
+
* These values are used to efficiently approximate extrema given arbitrary subsets.
|
|
16
|
+
* Larger values of 'numSubsets' lead to more accurate approximations (more expensive).
|
|
17
|
+
*
|
|
18
|
+
* @param {ArrayLike<number>} data array of quadratic length
|
|
19
|
+
*/
|
|
20
|
+
constructor(data: ArrayLike<number>);
|
|
21
|
+
/** @type {number} */
|
|
22
|
+
epsilon: number;
|
|
23
|
+
/** @type {number} */
|
|
24
|
+
tileSize: number;
|
|
25
|
+
/** @type {number} */
|
|
26
|
+
numSubsets: number;
|
|
27
|
+
/** @type {number} */
|
|
28
|
+
subsetSize: number;
|
|
29
|
+
/** @type {View2D} */
|
|
30
|
+
subsetMinimums: View2D;
|
|
31
|
+
/** @type {View2D} */
|
|
32
|
+
subsetMaximums: View2D;
|
|
33
|
+
/** @type {number} */
|
|
34
|
+
minNonZeroInTile: number;
|
|
35
|
+
/** @type {number} */
|
|
36
|
+
maxNonZeroInTile: number;
|
|
37
|
+
/**
|
|
38
|
+
* Computes an approximation of the non-zero minimum in a subset
|
|
39
|
+
*
|
|
40
|
+
* @param {[startX: number, startY: number, endX: number, endY: number]} indexBounds
|
|
41
|
+
* @return {number} Non-zero minium of the subset
|
|
42
|
+
*/
|
|
43
|
+
getMinNonZeroInSubset(indexBounds: [startX: number, startY: number, endX: number, endY: number]): number;
|
|
44
|
+
/**
|
|
45
|
+
* Computes an approximation of the non-zero maximum in a subset
|
|
46
|
+
*
|
|
47
|
+
* @param {[startX: number, startY: number, endX: number, endY: number]} indexBounds
|
|
48
|
+
* @return {number} Non-zero maxium of the subset
|
|
49
|
+
*/
|
|
50
|
+
getMaxNonZeroInSubset(indexBounds: [startX: number, startY: number, endX: number, endY: number]): number;
|
|
51
|
+
/**
|
|
52
|
+
* Precomputes non-zero minimums of subsets of a given matrix
|
|
53
|
+
* @param {View2D} dataMatrix
|
|
54
|
+
* @return {View2D} Matrix containing minimums of the dataMatrix after subdivision using a regular grid
|
|
55
|
+
*/
|
|
56
|
+
computeSubsetNonZeroMinimums(dataMatrix: View2D): View2D;
|
|
57
|
+
/**
|
|
58
|
+
* Precomputes non-zero maximums of subsets of a given matrix
|
|
59
|
+
*
|
|
60
|
+
* @param {View2D} dataMatrix
|
|
61
|
+
* @return {View2D} Matrix containing maximums of the dataMatrix after subdivision using a regular grid
|
|
62
|
+
*/
|
|
63
|
+
computeSubsetNonZeroMaximums(dataMatrix: View2D): View2D;
|
|
64
|
+
/**
|
|
65
|
+
* Computes the non-zero minimum of a subset of a matrix (ndarray)
|
|
66
|
+
* @param {View2D} arr
|
|
67
|
+
* @param {number} rowOffset - Starting row of the subset
|
|
68
|
+
* @param {number} colOffset - Starting column of the subset
|
|
69
|
+
* @param {number} width - Width (num columns) of the subset
|
|
70
|
+
* @param {number} height - Height (num rows) of the subset
|
|
71
|
+
* @return {number} Non-zeros - minimum of the subset
|
|
72
|
+
*/
|
|
73
|
+
getMinNonZeroInNdarraySubset(arr: View2D, rowOffset: number, colOffset: number, width: number, height: number): number;
|
|
74
|
+
/**
|
|
75
|
+
* Computes the non-zero maximum of a subset of a matrix (ndarray)
|
|
76
|
+
* @param {View2D} arr
|
|
77
|
+
* @param {number} rowOffset - Starting row of the subset
|
|
78
|
+
* @param {number} colOffset - Starting column of the subset
|
|
79
|
+
* @param {number} width - Width (num columns) of the subset
|
|
80
|
+
* @param {number} height - Height (num rows) of the subset
|
|
81
|
+
* @return {number} Non-zeros maximum of the subset
|
|
82
|
+
*/
|
|
83
|
+
getMaxNonZeroInNdarraySubset(arr: View2D, rowOffset: number, colOffset: number, width: number, height: number): number;
|
|
84
|
+
mirrorPrecomputedExtrema(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Computes the non-zero minimum in the entire data array using precomputed values
|
|
87
|
+
*
|
|
88
|
+
* @return {number} Non-zeros minimum of the data
|
|
89
|
+
*/
|
|
90
|
+
getMinNonZeroInTile(): number;
|
|
91
|
+
/**
|
|
92
|
+
* Computes the non-zero maximum in the entire data array using precomputed values
|
|
93
|
+
*
|
|
94
|
+
* @return {number} Non-zeros maximum of the data
|
|
95
|
+
*/
|
|
96
|
+
getMaxNonZeroInTile(): number;
|
|
97
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export default LruCache;
|
|
2
|
+
/**
|
|
3
|
+
* A doubly linked list-based Least Recently Used (LRU) cache. Will keep most
|
|
4
|
+
* recently used items while discarding least recently used items when its limit
|
|
5
|
+
* is reached.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under MIT. Copyright (c) 2010 Rasmus Andersson <http://hunch.se/>
|
|
8
|
+
* See README.md for details.
|
|
9
|
+
*
|
|
10
|
+
* Illustration of the design:
|
|
11
|
+
*
|
|
12
|
+
* entry entry entry entry
|
|
13
|
+
* ______ ______ ______ ______
|
|
14
|
+
* | head |.newer => | |.newer => | |.newer => | tail |
|
|
15
|
+
* | A | | B | | C | | D |
|
|
16
|
+
* |______| <= older.|______| <= older.|______| <= older.|______|
|
|
17
|
+
*
|
|
18
|
+
* removed <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- added
|
|
19
|
+
*/
|
|
20
|
+
declare function LruCache(limit: any): void;
|
|
21
|
+
declare class LruCache {
|
|
22
|
+
/**
|
|
23
|
+
* A doubly linked list-based Least Recently Used (LRU) cache. Will keep most
|
|
24
|
+
* recently used items while discarding least recently used items when its limit
|
|
25
|
+
* is reached.
|
|
26
|
+
*
|
|
27
|
+
* Licensed under MIT. Copyright (c) 2010 Rasmus Andersson <http://hunch.se/>
|
|
28
|
+
* See README.md for details.
|
|
29
|
+
*
|
|
30
|
+
* Illustration of the design:
|
|
31
|
+
*
|
|
32
|
+
* entry entry entry entry
|
|
33
|
+
* ______ ______ ______ ______
|
|
34
|
+
* | head |.newer => | |.newer => | |.newer => | tail |
|
|
35
|
+
* | A | | B | | C | | D |
|
|
36
|
+
* |______| <= older.|______| <= older.|______| <= older.|______|
|
|
37
|
+
*
|
|
38
|
+
* removed <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- <-- added
|
|
39
|
+
*/
|
|
40
|
+
constructor(limit: any);
|
|
41
|
+
size: number;
|
|
42
|
+
limit: any;
|
|
43
|
+
_keymap: {};
|
|
44
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export default absToChr;
|
|
2
|
+
export type ChromosomePosition<Name extends string> = [name: Name, pos: number, offset: number, insertPoint: number];
|
|
3
|
+
/**
|
|
4
|
+
* @template {string} Name
|
|
5
|
+
* @typedef {[name: Name, pos: number, offset: number, insertPoint: number ]} ChromosomePosition
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Convert an absolute genome position to a chromosome position.
|
|
9
|
+
* @template {string} Name
|
|
10
|
+
* @param {number} absPosition - Absolute genome position.
|
|
11
|
+
* @param {import('../types').ChromInfo<Name>} chromInfo - Chromosome info object.
|
|
12
|
+
* @return {ChromosomePosition<Name> | null} The chromosome position.
|
|
13
|
+
*/
|
|
14
|
+
declare function absToChr<Name extends string>(absPosition: number, chromInfo: import("../types").ChromInfo<Name>): ChromosomePosition<Name> | null;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export default accessorTransposition;
|
|
2
|
+
/**
|
|
3
|
+
* Factory function for a transposition accessor for a 2D matrix in form of a 1D
|
|
4
|
+
* array.
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* i^T = column * i + row
|
|
8
|
+
* where column: `Math.floor(i / x)` and row: `Math.floor(i / x)`
|
|
9
|
+
*
|
|
10
|
+
* @param {number} x - X dimension of the 2D matrix
|
|
11
|
+
* @param {number} y - Y dimension of the 2D matrix
|
|
12
|
+
* @return {(index: number) => number} Accessor function converting the orignal 1D index into the transposed index
|
|
13
|
+
*/
|
|
14
|
+
declare function accessorTransposition(x: number, y: number): (index: number) => number;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export default addArrays;
|
|
2
|
+
/**
|
|
3
|
+
* Add two 1D arrays
|
|
4
|
+
*
|
|
5
|
+
* @description
|
|
6
|
+
* `a2` is added onto `a1`, hence `a2` needs to be at least as long as `a1`.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```
|
|
10
|
+
* addArrays([1,2,3], [2,3,4,5]) === [3,5,7]
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @param {Array<number>} a1 - First array of numbers
|
|
14
|
+
* @param {Array<number>} a2 - Second array of numbers
|
|
15
|
+
* @param {(index: number) => number} accessor - Allows to use custom accessors. This can be useful when a2 represents a transformed (e.g., transposed matrix).
|
|
16
|
+
* @return {Array<number>} - Combination of both arrays.
|
|
17
|
+
*/
|
|
18
|
+
declare function addArrays(a1: Array<number>, a2: Array<number>, accessor?: (index: number) => number): Array<number>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export default addClass;
|
|
2
|
+
/**
|
|
3
|
+
* Method to add a class name to an HTML or SVG element.
|
|
4
|
+
* @param {Element} el - HTML or SVG element to add a class to.
|
|
5
|
+
* @param {string} className - The class name to be added.
|
|
6
|
+
* @returns {void}
|
|
7
|
+
*/
|
|
8
|
+
declare function addClass(el: Element, className: string): void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export default addEventListenerOnce;
|
|
2
|
+
/**
|
|
3
|
+
* Add an event listener that fires only once and auto-removes itself
|
|
4
|
+
*
|
|
5
|
+
* @template {keyof HTMLElementEventMap} K
|
|
6
|
+
*
|
|
7
|
+
* @param {HTMLElement} element - DOM element to assign listener to.
|
|
8
|
+
* @param {K} eventName - Event name to listen to.
|
|
9
|
+
* @param {(event: HTMLElementEventMap[K]) => void} f - Event callback function.
|
|
10
|
+
*/
|
|
11
|
+
declare function addEventListenerOnce<K extends keyof HTMLElementEventMap>(element: HTMLElement, eventName: K, f: (event: HTMLElementEventMap[K]) => void): void;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Make an assertion.
|
|
3
|
+
*
|
|
4
|
+
* Usage
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* const value: boolean = Math.random() <= 0.5;
|
|
8
|
+
* assert(value, "value is greater than than 0.5!");
|
|
9
|
+
* value // true
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* @param {unknown} expression - The expression to test.
|
|
13
|
+
* @param {string=} msg - The optional message to display if the assertion fails.
|
|
14
|
+
* @returns {asserts expression}
|
|
15
|
+
* @throws an {@link Error} if `expression` is not truthy.
|
|
16
|
+
*/
|
|
17
|
+
export default function assert(expression: unknown, msg?: string | undefined): asserts expression;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export default backgroundTaskScheduler;
|
|
2
|
+
export type DataTask<T> = {
|
|
3
|
+
data: T;
|
|
4
|
+
handler: (data: T) => void;
|
|
5
|
+
trackId?: string | undefined;
|
|
6
|
+
};
|
|
7
|
+
export type NullDataTask = {
|
|
8
|
+
data: null;
|
|
9
|
+
handler: () => void;
|
|
10
|
+
trackId?: string | undefined;
|
|
11
|
+
};
|
|
12
|
+
export type Task = DataTask<any> | NullDataTask;
|
|
13
|
+
declare const backgroundTaskScheduler: BackgroundTaskScheduler;
|
|
14
|
+
/**
|
|
15
|
+
*/
|
|
16
|
+
declare class BackgroundTaskScheduler {
|
|
17
|
+
/** @type {Task[]} */
|
|
18
|
+
taskList: Task[];
|
|
19
|
+
taskHandle: number | null;
|
|
20
|
+
requestIdleCallbackTimeout: number;
|
|
21
|
+
/**
|
|
22
|
+
* @template T
|
|
23
|
+
* @overload
|
|
24
|
+
* @param {(data: T) => void} taskHandler
|
|
25
|
+
* @param {T} taskData
|
|
26
|
+
* @param {string | null=} trackId
|
|
27
|
+
* @return {void}
|
|
28
|
+
*/
|
|
29
|
+
enqueueTask<T>(taskHandler: (data: T) => void, taskData: T, trackId?: (string | null) | undefined): void;
|
|
30
|
+
/**
|
|
31
|
+
* If `taskData` is `null` the `taskHandler` will eventaully be called without any arguments.
|
|
32
|
+
*
|
|
33
|
+
* @overload
|
|
34
|
+
* @param {() => void} taskHandler
|
|
35
|
+
* @param {null} taskData
|
|
36
|
+
* @param {string | null=} trackId
|
|
37
|
+
* @return {void}
|
|
38
|
+
*/
|
|
39
|
+
enqueueTask(taskHandler: () => void, taskData: null, trackId?: (string | null) | undefined): void;
|
|
40
|
+
/**
|
|
41
|
+
* @param {{ timeRemaining(): number, didTimeout: boolean }} deadline
|
|
42
|
+
*/
|
|
43
|
+
runTaskQueue(deadline: {
|
|
44
|
+
timeRemaining(): number;
|
|
45
|
+
didTimeout: boolean;
|
|
46
|
+
}): void;
|
|
47
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export default base64ToCanvas;
|
|
2
|
+
/**
|
|
3
|
+
* Convert a base64 encoded image into a canvas object.
|
|
4
|
+
* @param {string} base64 - Base64 string encoding the image.
|
|
5
|
+
* @param {number} width - Custom width for the canvas object.
|
|
6
|
+
* @param {number} height - Custom height for the canvas object.
|
|
7
|
+
* @return {Promise<HTMLCanvasElement>} The converted canvas object
|
|
8
|
+
*/
|
|
9
|
+
declare function base64ToCanvas(base64: string, width: number, height: number): Promise<HTMLCanvasElement>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export default chrToAbs;
|
|
2
|
+
/**
|
|
3
|
+
* Convert a chromosome position to an absolute genome position.
|
|
4
|
+
*
|
|
5
|
+
* @template {string} Name
|
|
6
|
+
* @param {Name} chrom - Chromosome name
|
|
7
|
+
* @param {number} chromPos - Chromosome position
|
|
8
|
+
* @param {import('../types').ChromInfo<Name>} chromInfo - Chromosome info object
|
|
9
|
+
*/
|
|
10
|
+
declare function chrToAbs<Name extends string>(chrom: Name, chromPos: number, chromInfo: import("../types").ChromInfo<Name>): number;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export default cloneEvent;
|
|
2
|
+
/**
|
|
3
|
+
* Clone an event by invoking the source event's constructor and passing in the source event.
|
|
4
|
+
*
|
|
5
|
+
* @template {Event & { sourceUid?: string, forwarded?: boolean }} TEvent
|
|
6
|
+
* @param {TEvent} event - Source event to be cloned.
|
|
7
|
+
* @return {TEvent} Cloned event
|
|
8
|
+
*/
|
|
9
|
+
declare function cloneEvent<TEvent extends Event & {
|
|
10
|
+
sourceUid?: string;
|
|
11
|
+
forwarded?: boolean;
|
|
12
|
+
}>(event: TEvent): TEvent;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export default colorDomainToRgbaArray;
|
|
2
|
+
export type Color = [r: number, g: number, b: number, a: number];
|
|
3
|
+
/** @typedef {[r: number, g: number, b: number, a: number]} Color */
|
|
4
|
+
/**
|
|
5
|
+
* Convert a color domain to a 255 element array of [r,g,b,a]
|
|
6
|
+
* values (all from 0 to 255). The last color (255) will always be
|
|
7
|
+
* transparent
|
|
8
|
+
*
|
|
9
|
+
* @param {readonly [start: string, end: string]} colorRange
|
|
10
|
+
* @param {boolean} noTansparent
|
|
11
|
+
* @returns {Array<Color>}
|
|
12
|
+
*/
|
|
13
|
+
declare function colorDomainToRgbaArray(colorRange: readonly [start: string, end: string], noTansparent?: boolean): Array<Color>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export default colorToHex;
|
|
2
|
+
/**
|
|
3
|
+
* Convert a regular color value (e.g. 'red', '#FF0000', 'rgb(255,0,0)') to a
|
|
4
|
+
* hex value which is legible by PIXI
|
|
5
|
+
*
|
|
6
|
+
* @param {string} colorValue - Color value to convert
|
|
7
|
+
* @return {number} Hex value
|
|
8
|
+
*/
|
|
9
|
+
declare function colorToHex(colorValue: string): number;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export default colorToRgba;
|
|
2
|
+
/**
|
|
3
|
+
* Convert a regular color value (e.g. 'red', '#FF0000', 'rgb(255,0,0)') to a
|
|
4
|
+
* RGBA array, with support for the value "transparent".
|
|
5
|
+
*
|
|
6
|
+
* @param {string} colorValue - An RGB(A) color value to convert.
|
|
7
|
+
* @return {[r: number, g: number, b: number, a: number]} An RGBA array.
|
|
8
|
+
*/
|
|
9
|
+
declare function colorToRgba(colorValue: string): [r: number, g: number, b: number, a: number];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export default dataToGenomicLoci;
|
|
2
|
+
export type GenomicLoci = [startChromName: string, startChromPos: number, endChromName: string, endChromPos: number];
|
|
3
|
+
/** @typedef {[startChromName: string, startChromPos: number, endChromName: string, endChromPos: number]} GenomicLoci */
|
|
4
|
+
/**
|
|
5
|
+
* Convert a pair of data coordinates to genomic coordinates.
|
|
6
|
+
* @param {number} x0 - The first data coordinate.
|
|
7
|
+
* @param {number} x1 - The second data coordinate.
|
|
8
|
+
* @param {import('../types').ChromInfo} chromInfo - The chromosome info object.
|
|
9
|
+
* @returns {GenomicLoci} The genomic coordinates.
|
|
10
|
+
*/
|
|
11
|
+
declare function dataToGenomicLoci(x0: number, x1: number, chromInfo: import("../types").ChromInfo): GenomicLoci;
|