gosling.js 1.0.5 → 2.0.0-alpha.2
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 +15 -6
- package/dist/assets/bam-worker-146b4a0a.js.map +1 -0
- package/dist/assets/bed-worker-49850b1d.js.map +1 -0
- package/dist/assets/gff-worker-c1616095.js.map +1 -0
- package/dist/assets/vcf-worker-5469c2fe.js.map +1 -0
- package/dist/demo/gosling-component.d.ts +34 -0
- package/dist/demo/gosling-component.d.ts.map +1 -0
- package/dist/demo/linking/linkedEncoding.d.ts +18 -0
- package/dist/demo/linking/linkedEncoding.d.ts.map +1 -0
- package/dist/demo/renderer/dataFetcher.d.ts +17 -0
- package/dist/demo/renderer/dataFetcher.d.ts.map +1 -0
- package/dist/demo/renderer/main.d.ts +11 -0
- package/dist/demo/renderer/main.d.ts.map +1 -0
- package/dist/demo/track-def/axis.d.ts +22 -0
- package/dist/demo/track-def/axis.d.ts.map +1 -0
- package/dist/demo/track-def/brush.d.ts +11 -0
- package/dist/demo/track-def/brush.d.ts.map +1 -0
- package/dist/demo/track-def/dummy.d.ts +10 -0
- package/dist/demo/track-def/dummy.d.ts.map +1 -0
- package/dist/demo/track-def/gosling.d.ts +18 -0
- package/dist/demo/track-def/gosling.d.ts.map +1 -0
- package/dist/demo/track-def/heatmap.d.ts +13 -0
- package/dist/demo/track-def/heatmap.d.ts.map +1 -0
- package/dist/demo/track-def/main.d.ts +68 -0
- package/dist/demo/track-def/main.d.ts.map +1 -0
- package/dist/demo/track-def/text.d.ts +17 -0
- package/dist/demo/track-def/text.d.ts.map +1 -0
- package/dist/demo/track-def/types.d.ts +73 -0
- package/dist/demo/track-def/types.d.ts.map +1 -0
- package/dist/exported-utils-b3ea2b1e.js +9950 -0
- package/dist/exported-utils-b3ea2b1e.js.map +1 -0
- package/dist/gosling.js +24891 -4592
- package/dist/gosling.js.map +1 -1
- package/dist/src/alias/buffer-shim.d.ts +2 -0
- package/dist/src/alias/buffer-shim.d.ts.map +1 -0
- package/dist/src/alias/zlib.d.ts +0 -1
- package/dist/src/alias/zlib.d.ts.map +1 -1
- package/dist/src/api/api-data.d.ts.map +1 -1
- package/dist/src/api/api.d.ts +11 -4
- package/dist/src/api/api.d.ts.map +1 -1
- package/dist/src/compiler/bounding-box.d.ts +2 -1
- package/dist/src/compiler/bounding-box.d.ts.map +1 -1
- package/dist/src/compiler/compile.d.ts +15 -11
- package/dist/src/compiler/compile.d.ts.map +1 -1
- package/dist/src/compiler/defaults.d.ts +1 -0
- package/dist/src/compiler/defaults.d.ts.map +1 -1
- package/dist/src/compiler/normalize.d.ts +12 -0
- package/dist/src/compiler/normalize.d.ts.map +1 -0
- package/dist/src/compiler/spec-preprocess.d.ts.map +1 -1
- package/dist/src/compiler/views-and-tracks.d.ts +14 -0
- package/dist/src/compiler/views-and-tracks.d.ts.map +1 -0
- package/dist/src/core/mark/area.d.ts +1 -1
- package/dist/src/core/mark/area.d.ts.map +1 -1
- package/dist/src/core/mark/axis.d.ts +2 -6
- package/dist/src/core/mark/axis.d.ts.map +1 -1
- package/dist/src/core/mark/index.d.ts +3 -3
- package/dist/src/core/mark/index.d.ts.map +1 -1
- package/dist/src/core/mark/legend.d.ts +4 -13
- package/dist/src/core/mark/legend.d.ts.map +1 -1
- package/dist/src/core/mark/outline-circular.d.ts.map +1 -1
- package/dist/src/core/mark/rect.d.ts +1 -1
- package/dist/src/core/mark/rect.d.ts.map +1 -1
- package/dist/src/core/mark/rule.d.ts +1 -1
- package/dist/src/core/mark/rule.d.ts.map +1 -1
- package/dist/src/core/mark/text.d.ts +1 -1
- package/dist/src/core/mark/text.d.ts.map +1 -1
- package/dist/src/core/mark/title.d.ts +1 -1
- package/dist/src/core/mark/title.d.ts.map +1 -1
- package/dist/src/core/utils/assembly.d.ts.map +1 -1
- package/dist/src/core/utils/define-plugin-track.d.ts +8 -3
- package/dist/src/core/utils/define-plugin-track.d.ts.map +1 -1
- package/dist/src/core/utils/fake-pub-sub.d.ts +11 -0
- package/dist/src/core/utils/fake-pub-sub.d.ts.map +1 -0
- package/dist/src/core/utils/text-style.d.ts +9 -9
- package/dist/src/core/utils/text-style.d.ts.map +1 -1
- package/dist/src/data-fetchers/bam/bam-data-fetcher.d.ts +1 -1
- package/dist/src/data-fetchers/bam/bam-data-fetcher.d.ts.map +1 -1
- package/dist/src/data-fetchers/bam/bam-worker.d.ts.map +1 -1
- package/dist/src/data-fetchers/bed/bed-data-fetcher.d.ts +1 -1
- package/dist/src/data-fetchers/bed/bed-data-fetcher.d.ts.map +1 -1
- package/dist/src/data-fetchers/bed/bed-worker.d.ts.map +1 -1
- package/dist/src/data-fetchers/bigwig/bigwig-data-fetcher.d.ts +15 -14
- package/dist/src/data-fetchers/bigwig/bigwig-data-fetcher.d.ts.map +1 -1
- package/dist/src/data-fetchers/csv/csv-data-fetcher.d.ts +1 -1
- package/dist/src/data-fetchers/csv/csv-data-fetcher.d.ts.map +1 -1
- package/dist/src/data-fetchers/gff/gff-data-fetcher.d.ts +1 -1
- package/dist/src/data-fetchers/gff/gff-data-fetcher.d.ts.map +1 -1
- package/dist/src/data-fetchers/gff/gff-worker.d.ts.map +1 -1
- package/dist/src/data-fetchers/index.d.ts +3 -3
- package/dist/src/data-fetchers/index.d.ts.map +1 -1
- package/dist/src/data-fetchers/json/json-data-fetcher.d.ts +28 -1
- package/dist/src/data-fetchers/json/json-data-fetcher.d.ts.map +1 -1
- package/dist/src/data-fetchers/utils.d.ts +15 -2
- package/dist/src/data-fetchers/utils.d.ts.map +1 -1
- package/dist/src/data-fetchers/vcf/vcf-data-fetcher.d.ts +4 -1
- package/dist/src/data-fetchers/vcf/vcf-data-fetcher.d.ts.map +1 -1
- package/dist/src/data-fetchers/vcf/vcf-worker.d.ts.map +1 -1
- package/dist/src/exported-utils.d.ts +0 -1
- package/dist/src/exported-utils.d.ts.map +1 -1
- package/dist/src/gosling-schema/gosling.schema.d.ts +0 -2
- package/dist/src/gosling-schema/gosling.schema.d.ts.map +1 -1
- package/dist/src/gosling-schema/gosling.schema.guards.d.ts +5 -2
- package/dist/src/gosling-schema/gosling.schema.guards.d.ts.map +1 -1
- package/dist/src/higlass/datafetcher.d.ts +2 -0
- package/dist/src/higlass/datafetcher.d.ts.map +1 -0
- package/dist/src/higlass/higlass-vendored.d.ts +1297 -0
- package/dist/src/higlass/higlass-vendored.d.ts.map +1 -0
- package/dist/src/higlass/services.d.ts +2 -0
- package/dist/src/higlass/services.d.ts.map +1 -0
- package/dist/src/higlass/tracks.d.ts +5 -0
- package/dist/src/higlass/tracks.d.ts.map +1 -0
- package/dist/src/higlass/utils.d.ts +2 -0
- package/dist/src/higlass/utils.d.ts.map +1 -0
- package/dist/src/index.d.ts +2 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/interactors/cursor-2d.d.ts +10 -0
- package/dist/src/interactors/cursor-2d.d.ts.map +1 -0
- package/dist/src/interactors/cursor-circular.d.ts +18 -0
- package/dist/src/interactors/cursor-circular.d.ts.map +1 -0
- package/dist/src/interactors/cursor.d.ts +10 -0
- package/dist/src/interactors/cursor.d.ts.map +1 -0
- package/dist/src/interactors/index.d.ts +5 -0
- package/dist/src/interactors/index.d.ts.map +1 -0
- package/dist/src/interactors/pan-zoom-2d.d.ts +7 -0
- package/dist/src/interactors/pan-zoom-2d.d.ts.map +1 -0
- package/dist/src/interactors/pan-zoom-circular.d.ts +17 -0
- package/dist/src/interactors/pan-zoom-circular.d.ts.map +1 -0
- package/dist/src/interactors/pan-zoom.d.ts +7 -0
- package/dist/src/interactors/pan-zoom.d.ts.map +1 -0
- package/dist/src/pixi-manager/index.d.ts +2 -0
- package/dist/src/pixi-manager/index.d.ts.map +1 -0
- package/dist/src/pixi-manager/pixi-manager.d.ts +52 -0
- package/dist/src/pixi-manager/pixi-manager.d.ts.map +1 -0
- package/dist/src/tracks/brush-circular/brush-circular-plot.d.ts +23 -0
- package/dist/src/tracks/brush-circular/brush-circular-plot.d.ts.map +1 -0
- package/dist/src/tracks/brush-circular/brush-circular.d.ts +60 -0
- package/dist/src/tracks/brush-circular/brush-circular.d.ts.map +1 -0
- package/dist/src/tracks/brush-circular/index.d.ts +3 -0
- package/dist/src/tracks/brush-circular/index.d.ts.map +1 -0
- package/dist/src/tracks/brush-linear/brush-linear-plot.d.ts +18 -0
- package/dist/src/tracks/brush-linear/brush-linear-plot.d.ts.map +1 -0
- package/dist/src/tracks/brush-linear/brush-linear-track.d.ts +39 -0
- package/dist/src/tracks/brush-linear/brush-linear-track.d.ts.map +1 -0
- package/dist/src/tracks/brush-linear/index.d.ts +3 -0
- package/dist/src/tracks/brush-linear/index.d.ts.map +1 -0
- package/dist/src/tracks/dummy-track/dummy-track-plot.d.ts +6 -0
- package/dist/src/tracks/dummy-track/dummy-track-plot.d.ts.map +1 -0
- package/dist/src/tracks/dummy-track/dummy-track.d.ts +6 -10
- package/dist/src/tracks/dummy-track/dummy-track.d.ts.map +1 -1
- package/dist/src/tracks/dummy-track/index.d.ts +3 -1
- package/dist/src/tracks/dummy-track/index.d.ts.map +1 -1
- package/dist/src/tracks/genomic-axis/axis-track-plot.d.ts +21 -0
- package/dist/src/tracks/genomic-axis/axis-track-plot.d.ts.map +1 -0
- package/dist/src/tracks/genomic-axis/axis-track.d.ts +110 -0
- package/dist/src/tracks/genomic-axis/axis-track.d.ts.map +1 -0
- package/dist/src/tracks/genomic-axis/index.d.ts +3 -0
- package/dist/src/tracks/genomic-axis/index.d.ts.map +1 -0
- package/dist/src/tracks/gosling-track/gosling-track-model.d.ts.map +1 -1
- package/dist/src/tracks/gosling-track/gosling-track-plot.d.ts +28 -0
- package/dist/src/tracks/gosling-track/gosling-track-plot.d.ts.map +1 -0
- package/dist/src/tracks/gosling-track/gosling-track.d.ts +196 -10
- package/dist/src/tracks/gosling-track/gosling-track.d.ts.map +1 -1
- package/dist/src/tracks/gosling-track/index.d.ts +2 -1
- package/dist/src/tracks/gosling-track/index.d.ts.map +1 -1
- package/dist/src/tracks/{gosling-brush → gosling-track}/linear-brush-model.d.ts +1 -2
- package/dist/src/tracks/gosling-track/linear-brush-model.d.ts.map +1 -0
- package/dist/src/tracks/gosling-track/utils.d.ts +2 -0
- package/dist/src/tracks/gosling-track/utils.d.ts.map +1 -0
- package/dist/src/tracks/heatmap/heatmap-plot.d.ts +56 -0
- package/dist/src/tracks/heatmap/heatmap-plot.d.ts.map +1 -0
- package/dist/src/tracks/heatmap/index.d.ts +3 -0
- package/dist/src/tracks/heatmap/index.d.ts.map +1 -0
- package/dist/src/tracks/text-track/index.d.ts +4 -0
- package/dist/src/tracks/text-track/index.d.ts.map +1 -0
- package/dist/src/tracks/text-track/text-track-plot.d.ts +10 -0
- package/dist/src/tracks/text-track/text-track-plot.d.ts.map +1 -0
- package/dist/src/tracks/text-track/text-track.d.ts +33 -0
- package/dist/src/tracks/text-track/text-track.d.ts.map +1 -0
- package/dist/src/tracks/utils.d.ts +31 -0
- package/dist/src/tracks/utils.d.ts.map +1 -0
- package/dist/utils.js +18 -11
- package/dist/utils.js.map +1 -1
- package/package.json +44 -38
- package/dist/assets/bam-worker-Dcv_bU7t.js.map +0 -1
- package/dist/assets/bed-worker-BJN3rskf.js.map +0 -1
- package/dist/assets/gff-worker-BnsF6Ylf.js.map +0 -1
- package/dist/assets/vcf-worker-DCjwwMlo.js.map +0 -1
- package/dist/client-C0UZV21F.js +0 -61
- package/dist/client-C0UZV21F.js.map +0 -1
- package/dist/compile-DjkAkVl6.js +0 -13511
- package/dist/compile-DjkAkVl6.js.map +0 -1
- package/dist/compiler.js +0 -5
- package/dist/compiler.js.map +0 -1
- package/dist/editor/example/json-spec/basic-semantic-zoom.d.ts +0 -3
- package/dist/editor/example/json-spec/basic-semantic-zoom.d.ts.map +0 -1
- package/dist/editor/example/json-spec/cancer-variant.d.ts +0 -5
- package/dist/editor/example/json-spec/cancer-variant.d.ts.map +0 -1
- package/dist/editor/example/json-spec/circos.d.ts +0 -5
- package/dist/editor/example/json-spec/circos.d.ts.map +0 -1
- package/dist/editor/example/json-spec/circular-overview-linear-detail-views.d.ts +0 -3
- package/dist/editor/example/json-spec/circular-overview-linear-detail-views.d.ts.map +0 -1
- package/dist/editor/example/json-spec/debug.d.ts +0 -3
- package/dist/editor/example/json-spec/debug.d.ts.map +0 -1
- package/dist/editor/example/json-spec/gene-annotation.d.ts +0 -14
- package/dist/editor/example/json-spec/gene-annotation.d.ts.map +0 -1
- package/dist/editor/example/json-spec/gene-transcript.d.ts +0 -3
- package/dist/editor/example/json-spec/gene-transcript.d.ts.map +0 -1
- package/dist/editor/example/json-spec/give.d.ts +0 -3
- package/dist/editor/example/json-spec/give.d.ts.map +0 -1
- package/dist/editor/example/json-spec/gosling-data.d.ts +0 -17
- package/dist/editor/example/json-spec/gosling-data.d.ts.map +0 -1
- package/dist/editor/example/json-spec/gremlin.d.ts +0 -3
- package/dist/editor/example/json-spec/gremlin.d.ts.map +0 -1
- package/dist/editor/example/json-spec/ideograms.d.ts +0 -4
- package/dist/editor/example/json-spec/ideograms.d.ts.map +0 -1
- package/dist/editor/example/json-spec/index.d.ts +0 -35
- package/dist/editor/example/json-spec/index.d.ts.map +0 -1
- package/dist/editor/example/json-spec/layout-and-arrangement.d.ts +0 -6
- package/dist/editor/example/json-spec/layout-and-arrangement.d.ts.map +0 -1
- package/dist/editor/example/json-spec/mark-displacement.d.ts +0 -3
- package/dist/editor/example/json-spec/mark-displacement.d.ts.map +0 -1
- package/dist/editor/example/json-spec/matrix-hffc6.d.ts +0 -3
- package/dist/editor/example/json-spec/matrix-hffc6.d.ts.map +0 -1
- package/dist/editor/example/json-spec/matrix.d.ts +0 -4
- package/dist/editor/example/json-spec/matrix.d.ts.map +0 -1
- package/dist/editor/example/json-spec/mouse-event.d.ts +0 -4
- package/dist/editor/example/json-spec/mouse-event.d.ts.map +0 -1
- package/dist/editor/example/json-spec/pathogenic.d.ts +0 -4
- package/dist/editor/example/json-spec/pathogenic.d.ts.map +0 -1
- package/dist/editor/example/json-spec/perf-alignment.d.ts +0 -3
- package/dist/editor/example/json-spec/perf-alignment.d.ts.map +0 -1
- package/dist/editor/example/json-spec/pileup.d.ts +0 -4
- package/dist/editor/example/json-spec/pileup.d.ts.map +0 -1
- package/dist/editor/example/json-spec/responsive-alignment.d.ts +0 -24
- package/dist/editor/example/json-spec/responsive-alignment.d.ts.map +0 -1
- package/dist/editor/example/json-spec/responsive-track-wise-comparison.d.ts +0 -4
- package/dist/editor/example/json-spec/responsive-track-wise-comparison.d.ts.map +0 -1
- package/dist/editor/example/json-spec/responsive.d.ts +0 -7
- package/dist/editor/example/json-spec/responsive.d.ts.map +0 -1
- package/dist/editor/example/json-spec/sars-cov-2.d.ts +0 -4
- package/dist/editor/example/json-spec/sars-cov-2.d.ts.map +0 -1
- package/dist/editor/example/json-spec/semantic-zoom.d.ts +0 -9
- package/dist/editor/example/json-spec/semantic-zoom.d.ts.map +0 -1
- package/dist/editor/example/json-spec/track-template.d.ts +0 -3
- package/dist/editor/example/json-spec/track-template.d.ts.map +0 -1
- package/dist/editor/example/json-spec/visual-linking.d.ts +0 -3
- package/dist/editor/example/json-spec/visual-linking.d.ts.map +0 -1
- package/dist/editor/example/spec/visual-encoding.d.ts +0 -5
- package/dist/editor/example/spec/visual-encoding.d.ts.map +0 -1
- package/dist/src/compiler/create-higlass-models.d.ts +0 -7
- package/dist/src/compiler/create-higlass-models.d.ts.map +0 -1
- package/dist/src/compiler/gosling-to-higlass.d.ts +0 -11
- package/dist/src/compiler/gosling-to-higlass.d.ts.map +0 -1
- package/dist/src/compiler/higlass-model.d.ts +0 -82
- package/dist/src/compiler/higlass-model.d.ts.map +0 -1
- package/dist/src/core/gosling-component.d.ts +0 -36
- package/dist/src/core/gosling-component.d.ts.map +0 -1
- package/dist/src/core/gosling-component.test.d.ts +0 -2
- package/dist/src/core/gosling-component.test.d.ts.map +0 -1
- package/dist/src/core/gosling-embed.d.ts +0 -20
- package/dist/src/core/gosling-embed.d.ts.map +0 -1
- package/dist/src/core/higlass-component-wrapper.d.ts +0 -28
- package/dist/src/core/higlass-component-wrapper.d.ts.map +0 -1
- package/dist/src/core/init.d.ts +0 -5
- package/dist/src/core/init.d.ts.map +0 -1
- package/dist/src/core/utils/higlass-zoom-config.d.ts +0 -6
- package/dist/src/core/utils/higlass-zoom-config.d.ts.map +0 -1
- package/dist/src/core/utils/linking.d.ts +0 -12
- package/dist/src/core/utils/linking.d.ts.map +0 -1
- package/dist/src/exported-compiler.d.ts +0 -2
- package/dist/src/exported-compiler.d.ts.map +0 -1
- package/dist/src/higlass-schema/higlass.schema.d.ts +0 -148
- package/dist/src/higlass-schema/higlass.schema.d.ts.map +0 -1
- package/dist/src/higlass-schema/index.d.ts +0 -3
- package/dist/src/higlass-schema/index.d.ts.map +0 -1
- package/dist/src/tracks/gosling-brush/brush-track.d.ts +0 -26
- package/dist/src/tracks/gosling-brush/brush-track.d.ts.map +0 -1
- package/dist/src/tracks/gosling-brush/index.d.ts +0 -3
- package/dist/src/tracks/gosling-brush/index.d.ts.map +0 -1
- package/dist/src/tracks/gosling-brush/linear-brush-model.d.ts.map +0 -1
- package/dist/src/tracks/gosling-genomic-axis/axis-track.d.ts +0 -40
- package/dist/src/tracks/gosling-genomic-axis/axis-track.d.ts.map +0 -1
- package/dist/src/tracks/gosling-genomic-axis/index.d.ts +0 -3
- package/dist/src/tracks/gosling-genomic-axis/index.d.ts.map +0 -1
- package/dist/utils-DAef6RYs.js +0 -85
- package/dist/utils-DAef6RYs.js.map +0 -1
|
@@ -0,0 +1,1297 @@
|
|
|
1
|
+
export type SelectedRowsOptions = {
|
|
2
|
+
/**
|
|
3
|
+
* - Row indices, for ordering and filtering rows. Used by the HorizontalMultivecTrack.
|
|
4
|
+
*/
|
|
5
|
+
selectedRows: number[] | number[][];
|
|
6
|
+
/**
|
|
7
|
+
* - The aggregation function to use ("mean", "sum", etc).
|
|
8
|
+
*/
|
|
9
|
+
selectedRowsAggregationMode: "mean" | "sum" | "variance" | "deviation";
|
|
10
|
+
/**
|
|
11
|
+
* - Whether the height of row groups should be relative to the size of the group.
|
|
12
|
+
*/
|
|
13
|
+
selectedRowsAggregationWithRelativeHeight: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* - Where will the aggregation be performed? Possible values: "client", "server".
|
|
16
|
+
*/
|
|
17
|
+
selectedRowsAggregationMethod: "client" | "server";
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* <Server>
|
|
21
|
+
*/
|
|
22
|
+
export type TileData = {
|
|
23
|
+
server: string;
|
|
24
|
+
tileId: string;
|
|
25
|
+
zoomLevel: number;
|
|
26
|
+
tilePos: [number] | [number, number];
|
|
27
|
+
tilesetUid: string;
|
|
28
|
+
};
|
|
29
|
+
export type DenseTileData = {
|
|
30
|
+
server: string;
|
|
31
|
+
tileId: string;
|
|
32
|
+
zoomLevel: number;
|
|
33
|
+
tilePos: [number] | [number, number];
|
|
34
|
+
tilesetUid: string;
|
|
35
|
+
dense: Float32Array;
|
|
36
|
+
dtype: string;
|
|
37
|
+
denseDataExtrema: DenseDataExtrema1D | DenseDataExtrema2D;
|
|
38
|
+
minNonZero: number;
|
|
39
|
+
maxNonZero: number;
|
|
40
|
+
};
|
|
41
|
+
export type CompletedTileData<T> = Omit<T, keyof DenseTileData> & (TileData | DenseTileData);
|
|
42
|
+
export type TileResponse = {
|
|
43
|
+
/**
|
|
44
|
+
* - a base64 encoded string
|
|
45
|
+
*/
|
|
46
|
+
dense?: string | undefined;
|
|
47
|
+
};
|
|
48
|
+
export type DataConfig = any;
|
|
49
|
+
export type TilesetInfo = any;
|
|
50
|
+
export type AbstractDataFetcher<T> = any;
|
|
51
|
+
export type Tile = {
|
|
52
|
+
min_value: number;
|
|
53
|
+
max_value: number;
|
|
54
|
+
denseDataExtrema: DenseDataExtrema1D | DenseDataExtrema2D;
|
|
55
|
+
minNonZero: number;
|
|
56
|
+
maxNonZero: number;
|
|
57
|
+
dense: Array<number> | Float32Array;
|
|
58
|
+
dtype: string;
|
|
59
|
+
server: string;
|
|
60
|
+
tilePos: number[];
|
|
61
|
+
tilePositionId: string;
|
|
62
|
+
tilesetUid: string;
|
|
63
|
+
zoomLevel: number;
|
|
64
|
+
};
|
|
65
|
+
export type DividedTileA = Pick<Tile, "zoomLevel" | "tilePos" | "tilePositionId">;
|
|
66
|
+
export type DividedTileB = Pick<Tile, "zoomLevel" | "tilePos" | "tilePositionId" | "dense" | "denseDataExtrema" | "minNonZero" | "maxNonZero">;
|
|
67
|
+
export type DividedTile = DividedTileA | DividedTileB;
|
|
68
|
+
export type ResolvedDataConfig = Omit<DataConfig, "children"> & {
|
|
69
|
+
children?: DataFetcher[];
|
|
70
|
+
tilesetUid?: string;
|
|
71
|
+
tilesetInfo: TilesetInfo;
|
|
72
|
+
};
|
|
73
|
+
export type ChromsizeRow = [string, number];
|
|
74
|
+
export type CumulativeChromsizeEntry = {
|
|
75
|
+
id: number;
|
|
76
|
+
chr: string;
|
|
77
|
+
pos: number;
|
|
78
|
+
};
|
|
79
|
+
export type ParsedChromsizes = {
|
|
80
|
+
cumPositions: CumulativeChromsizeEntry[];
|
|
81
|
+
chrPositions: Record<string, CumulativeChromsizeEntry>;
|
|
82
|
+
totalLength: number;
|
|
83
|
+
chromLengths: Record<string, number>;
|
|
84
|
+
};
|
|
85
|
+
export type DataTask<T> = {
|
|
86
|
+
data: T;
|
|
87
|
+
handler: (data: T) => void;
|
|
88
|
+
trackId?: string | undefined;
|
|
89
|
+
};
|
|
90
|
+
export type NullDataTask = {
|
|
91
|
+
data: null;
|
|
92
|
+
handler: () => void;
|
|
93
|
+
trackId?: string | undefined;
|
|
94
|
+
};
|
|
95
|
+
export type Task = DataTask<any> | NullDataTask;
|
|
96
|
+
export type TrackContext = {
|
|
97
|
+
/**
|
|
98
|
+
* - The track ID.
|
|
99
|
+
*/
|
|
100
|
+
id: string;
|
|
101
|
+
/**
|
|
102
|
+
* - The pub-sub channel.
|
|
103
|
+
*/
|
|
104
|
+
pubSub?: (import("pub-sub-es/dist/pub-sub").PubSub & {
|
|
105
|
+
__fake__?: boolean;
|
|
106
|
+
}) | undefined;
|
|
107
|
+
};
|
|
108
|
+
export type ExtendedTrackContext<T> = T & TrackContext;
|
|
109
|
+
export type PixiTrackOptions = {
|
|
110
|
+
/**
|
|
111
|
+
* - If the label is to be drawn, where should it be drawn?
|
|
112
|
+
*/
|
|
113
|
+
labelPosition: string;
|
|
114
|
+
/**
|
|
115
|
+
* - What should be drawn in the label.
|
|
116
|
+
* If either labelPosition or labelText are false, no label will be drawn.
|
|
117
|
+
*/
|
|
118
|
+
labelText: string;
|
|
119
|
+
trackBorderWidth?: number | undefined;
|
|
120
|
+
trackBorderColor?: string | undefined;
|
|
121
|
+
backgroundColor?: string | undefined;
|
|
122
|
+
labelColor?: string | undefined;
|
|
123
|
+
lineStrokeColor?: string | undefined;
|
|
124
|
+
barFillColor?: string | undefined;
|
|
125
|
+
name?: string | undefined;
|
|
126
|
+
labelTextOpacity?: number | undefined;
|
|
127
|
+
labelBackgroundColor?: string | undefined;
|
|
128
|
+
labelLeftMargin?: number | undefined;
|
|
129
|
+
labelRightMargin?: number | undefined;
|
|
130
|
+
labelTopMargin?: number | undefined;
|
|
131
|
+
labelBottomMargin?: number | undefined;
|
|
132
|
+
labelBackgroundOpacity?: number | undefined;
|
|
133
|
+
labelShowAssembly?: boolean | undefined;
|
|
134
|
+
labelShowResolution?: boolean | undefined;
|
|
135
|
+
dataTransform?: string | undefined;
|
|
136
|
+
};
|
|
137
|
+
export type View2D = {
|
|
138
|
+
get: (i: number, j: number) => number;
|
|
139
|
+
set: (i: number, j: number, v: number) => void;
|
|
140
|
+
};
|
|
141
|
+
export type Aggregation = (values: number[]) => number | undefined;
|
|
142
|
+
export type ChromosomePosition<Name extends string> = [name: Name, pos: number, offset: number, insertPoint: number];
|
|
143
|
+
export type MouseTrackOptions = {
|
|
144
|
+
/**
|
|
145
|
+
* - Color of the mouse position.
|
|
146
|
+
*/
|
|
147
|
+
mousePositionColor?: string | undefined;
|
|
148
|
+
/**
|
|
149
|
+
* - Alpha of the mouse position.
|
|
150
|
+
*/
|
|
151
|
+
mousePositionAlpha?: number | undefined;
|
|
152
|
+
};
|
|
153
|
+
export type ClassContext = {
|
|
154
|
+
pForeground?: import("pixi.js").Container | undefined;
|
|
155
|
+
pMasked?: import("pixi.js").Container | undefined;
|
|
156
|
+
pMain?: import("pixi.js").Container | undefined;
|
|
157
|
+
xScale: () => any;
|
|
158
|
+
yScale: () => any;
|
|
159
|
+
getPosition: () => [number, number];
|
|
160
|
+
getDimensions: () => [number, number];
|
|
161
|
+
pubSub: import("pub-sub-es").PubSub;
|
|
162
|
+
pubSubs: Array<import("pub-sub-es").Subscription>;
|
|
163
|
+
getProp: (prop: "flipText") => () => boolean;
|
|
164
|
+
options: {};
|
|
165
|
+
};
|
|
166
|
+
/** @implements {AbstractDataFetcher<Tile | DividedTile>} */
|
|
167
|
+
export class DataFetcher implements AbstractDataFetcher<Tile | DividedTile> {
|
|
168
|
+
/**
|
|
169
|
+
* @param {import('../types').DataConfig} dataConfig
|
|
170
|
+
* @param {import('pub-sub-es').PubSub} pubSub
|
|
171
|
+
*/
|
|
172
|
+
constructor(dataConfig: any, pubSub: import("pub-sub-es").PubSub);
|
|
173
|
+
/** @type {boolean} */
|
|
174
|
+
tilesetInfoLoading: boolean;
|
|
175
|
+
/** @type {ResolvedDataConfig} */
|
|
176
|
+
dataConfig: ResolvedDataConfig;
|
|
177
|
+
/** @type {string} */
|
|
178
|
+
uuid: string;
|
|
179
|
+
/** @type {import('pub-sub-es').PubSub} */
|
|
180
|
+
pubSub: import("pub-sub-es").PubSub;
|
|
181
|
+
/**
|
|
182
|
+
* We don't a have a tilesetUid for this track. But we do have a url, filetype
|
|
183
|
+
* and server. Using these, we can use the server to fullfill tile requests
|
|
184
|
+
* from this dataset.
|
|
185
|
+
*
|
|
186
|
+
* @param {object} opts
|
|
187
|
+
* @param {string} opts.server - The server api location (e.g. 'localhost:8000/api/v1')
|
|
188
|
+
* @param {string} opts.url - The location of the data file (e.g. 'encode.org/my.file.bigwig')
|
|
189
|
+
* @param {string} opts.filetype - The type of file being served (e.g. 'bigwig')
|
|
190
|
+
* @param {string=} opts.coordSystem - The coordinate system being served (e.g. 'hg38')
|
|
191
|
+
*/
|
|
192
|
+
registerFileUrl({ server, url, filetype, coordSystem }: {
|
|
193
|
+
server: string;
|
|
194
|
+
url: string;
|
|
195
|
+
filetype: string;
|
|
196
|
+
coordSystem?: string | undefined;
|
|
197
|
+
}): Promise<Response>;
|
|
198
|
+
/**
|
|
199
|
+
* Obtain tileset infos for all of the tilesets listed
|
|
200
|
+
* @param {import('../types').HandleTilesetInfoFinished} finished - A callback that will be called
|
|
201
|
+
*/
|
|
202
|
+
tilesetInfo(finished: any): Promise<any>;
|
|
203
|
+
/**
|
|
204
|
+
* Obtain tileset infos for all of the tilesets listed
|
|
205
|
+
*
|
|
206
|
+
* If there is more than one tileset info, this function
|
|
207
|
+
* should (not currently implemented) check if the tileset
|
|
208
|
+
* infos have the same dimensions and then return a common
|
|
209
|
+
* one.
|
|
210
|
+
*
|
|
211
|
+
* @param {import('../types').HandleTilesetInfoFinished} finished - A callback that will be called
|
|
212
|
+
* when all tileset infos are loaded
|
|
213
|
+
*/
|
|
214
|
+
tilesetInfoAfterRegister(finished: any): void;
|
|
215
|
+
/**
|
|
216
|
+
* @param {string} tilesetUid - Uid of the tileset on the server
|
|
217
|
+
* @param {string} tileId - The tileId of the tile
|
|
218
|
+
* @returns {string} The full tile id that the server will parse.
|
|
219
|
+
*
|
|
220
|
+
* @example
|
|
221
|
+
* ```javascript
|
|
222
|
+
* // returns 'xyxx.0.0.0'
|
|
223
|
+
* fullTileId('xyxx', '0.0.0');
|
|
224
|
+
* ```
|
|
225
|
+
*/
|
|
226
|
+
fullTileId(tilesetUid: string, tileId: string): string;
|
|
227
|
+
/**
|
|
228
|
+
* Fetch a set of tiles.
|
|
229
|
+
*
|
|
230
|
+
* Because the track shouldn't care about tileset ids, the tile ids
|
|
231
|
+
* should just include positions and any necessary transforms.
|
|
232
|
+
*
|
|
233
|
+
* @param {(tiles: Record<string, DividedTile | Tile>) => void} receivedTiles - A function to call once the tiles have been fetched
|
|
234
|
+
* @param {string[]} tileIds - The tile ids to fetch
|
|
235
|
+
* @returns {Promise<Record<string, DividedTile | Tile>>}
|
|
236
|
+
*/
|
|
237
|
+
fetchTilesDebounced(receivedTiles: (tiles: Record<string, DividedTile | Tile>) => void, tileIds: string[]): Promise<Record<string, DividedTile | Tile>>;
|
|
238
|
+
/**
|
|
239
|
+
* Return an array consisting of the division of the numerator
|
|
240
|
+
* array by the denominator array
|
|
241
|
+
*
|
|
242
|
+
* @param {ArrayLike<number>} numeratorData - An array of numerical values
|
|
243
|
+
* @param {ArrayLike<number>} denominatorData - An array of numerical values
|
|
244
|
+
*
|
|
245
|
+
* @returns {Float32Array} An array consisting of the division of the numerator by the denominator
|
|
246
|
+
*/
|
|
247
|
+
divideData(numeratorData: ArrayLike<number>, denominatorData: ArrayLike<number>): Float32Array;
|
|
248
|
+
horizontalSlice(): null;
|
|
249
|
+
/**
|
|
250
|
+
* Extract a slice from a matrix at a given position.
|
|
251
|
+
*
|
|
252
|
+
* @param {Array<number>} inputData - An array containing a matrix stored row-wise
|
|
253
|
+
* @param {Array<number>} arrayShape - The shape of the array, should be a
|
|
254
|
+
* two element array e.g. [256,256].
|
|
255
|
+
* @param {number} sliceIndex - The index across which to take the slice
|
|
256
|
+
* @param {number=} axis - The axis along which to take the slice
|
|
257
|
+
* @returns {Array<number>} an array corresponding to a slice of this matrix
|
|
258
|
+
*/
|
|
259
|
+
extractDataSlice(inputData: Array<number>, arrayShape: Array<number>, sliceIndex: number, axis?: number | undefined): Array<number>;
|
|
260
|
+
/**
|
|
261
|
+
* Fetch a horizontal section of a 2D dataset
|
|
262
|
+
* @param {(tiles: Record<string, Tile>) => void} receivedTiles - A function to call once the tiles have been fetched
|
|
263
|
+
* @param {string[]} tileIds - The tile ids to fetch
|
|
264
|
+
* @param {boolean=} vertical - Whether to fetch a vertical section
|
|
265
|
+
* @returns {Promise<Record<string, Tile>>}
|
|
266
|
+
*/
|
|
267
|
+
fetchHorizontalSection(receivedTiles: (tiles: Record<string, Tile>) => void, tileIds: string[], vertical?: boolean | undefined): Promise<Record<string, Tile>>;
|
|
268
|
+
/**
|
|
269
|
+
* @typedef {{ zoomLevel: number, tilePos: number[], dense?: ArrayLike<number> }} Dividable
|
|
270
|
+
* @param {[Record<string, Dividable>, Record<string, Dividable>]} returnedTiles
|
|
271
|
+
* @param {string[]} tileIds
|
|
272
|
+
* @returns {Record<string, DividedTile>}
|
|
273
|
+
*/
|
|
274
|
+
makeDivided(returnedTiles: [Record<string, {
|
|
275
|
+
zoomLevel: number;
|
|
276
|
+
tilePos: number[];
|
|
277
|
+
dense?: ArrayLike<number>;
|
|
278
|
+
}>, Record<string, {
|
|
279
|
+
zoomLevel: number;
|
|
280
|
+
tilePos: number[];
|
|
281
|
+
dense?: ArrayLike<number>;
|
|
282
|
+
}>], tileIds: string[]): Record<string, DividedTile>;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* @template {ArrayLike<number>} [T=ArrayLike<number>]
|
|
286
|
+
*/
|
|
287
|
+
export class DenseDataExtrema1D<T extends ArrayLike<number> = ArrayLike<number>> {
|
|
288
|
+
/**
|
|
289
|
+
* This module efficiently computes extrema of arbitrary subsets of a given data array.
|
|
290
|
+
* The array is subdivided into 'numSubsets' subsets where extrema are precomputed.
|
|
291
|
+
* These values are used to compute extrema given arbitrary start and end indices via
|
|
292
|
+
* the getMinNonZeroInSubset and getMaxNonZeroInSubset methods.
|
|
293
|
+
* @param {T} data
|
|
294
|
+
*/
|
|
295
|
+
constructor(data: T);
|
|
296
|
+
/** @type {number} */
|
|
297
|
+
epsilon: number;
|
|
298
|
+
/** @type {T} */
|
|
299
|
+
data: T;
|
|
300
|
+
/** @type {number} */
|
|
301
|
+
tileSize: number;
|
|
302
|
+
/** @type {number} */
|
|
303
|
+
paddedTileSize: number;
|
|
304
|
+
/** @type {number} */
|
|
305
|
+
numSubsets: number;
|
|
306
|
+
/** @type {number} */
|
|
307
|
+
subsetSize: number;
|
|
308
|
+
subsetMinimums: number[];
|
|
309
|
+
subsetMaximums: number[];
|
|
310
|
+
minNonZeroInTile: number;
|
|
311
|
+
maxNonZeroInTile: number;
|
|
312
|
+
/**
|
|
313
|
+
* Computes the non-zero minimum in a subset using precomputed values,
|
|
314
|
+
* if possible. data[end] is not considered.
|
|
315
|
+
*
|
|
316
|
+
* @param {[start: number, end: number]} indexBounds
|
|
317
|
+
* @return {number} non-zero minium of the subset
|
|
318
|
+
*/
|
|
319
|
+
getMinNonZeroInSubset(indexBounds: [start: number, end: number]): number;
|
|
320
|
+
/**
|
|
321
|
+
* Computes the non-zero maximum in a subset using precomputed values, if possible
|
|
322
|
+
*
|
|
323
|
+
* @param {[start: number, end: number]} indexBounds
|
|
324
|
+
* @return {number} non-zero maxium of the subset
|
|
325
|
+
*/
|
|
326
|
+
getMaxNonZeroInSubset(indexBounds: [start: number, end: number]): number;
|
|
327
|
+
/**
|
|
328
|
+
* Precomputes non-zero minimums of subsets of the given data vector
|
|
329
|
+
*
|
|
330
|
+
* @returns {Array<number>} - Minimums of the regularly subdivided data vector
|
|
331
|
+
*/
|
|
332
|
+
computeSubsetNonZeroMinimums(): Array<number>;
|
|
333
|
+
/**
|
|
334
|
+
* Precomputes non-zero maximums of subsets of the given data vector
|
|
335
|
+
* @return {Array<number>} Maximums of the regularly subdivided data vector
|
|
336
|
+
*/
|
|
337
|
+
computeSubsetNonZeroMaximums(): Array<number>;
|
|
338
|
+
/**
|
|
339
|
+
* Computes the non-zero minimum in the entire data array using precomputed values
|
|
340
|
+
*
|
|
341
|
+
* @return {number} Non-zeros maximum of the data
|
|
342
|
+
*/
|
|
343
|
+
getMinNonZeroInTile(): number;
|
|
344
|
+
/**
|
|
345
|
+
* Computes the non-zero maximum in the entire data array using precomputed values
|
|
346
|
+
*
|
|
347
|
+
* @return {number} Non-zeros maximum of the data
|
|
348
|
+
*/
|
|
349
|
+
getMaxNonZeroInTile(): number;
|
|
350
|
+
/**
|
|
351
|
+
* Calculate the minimum non-zero value in the data from start
|
|
352
|
+
* to end. No precomputations are used to compute the min.
|
|
353
|
+
*
|
|
354
|
+
* @param {ArrayLike<number>} data
|
|
355
|
+
* @param {number} start
|
|
356
|
+
* @param {number} end
|
|
357
|
+
* @return {number} non-zero min in subset
|
|
358
|
+
*/
|
|
359
|
+
minNonZero(data: ArrayLike<number>, start: number, end: number): number;
|
|
360
|
+
/**
|
|
361
|
+
* Calculate the maximum non-zero value in the data from start
|
|
362
|
+
* to end. No precomputations are used to compute the max.
|
|
363
|
+
*
|
|
364
|
+
* @param {ArrayLike<number>} data
|
|
365
|
+
* @param {number} start
|
|
366
|
+
* @param {number} end
|
|
367
|
+
* @return {number} non-zero max in subset
|
|
368
|
+
*/
|
|
369
|
+
maxNonZero(data: ArrayLike<number>, start: number, end: number): number;
|
|
370
|
+
}
|
|
371
|
+
export class HeatmapTiledPixiTrack extends TiledPixiTrack {
|
|
372
|
+
constructor(context: any, options: any);
|
|
373
|
+
is2d: boolean;
|
|
374
|
+
uid: string;
|
|
375
|
+
scaleBrush: import("d3-brush").BrushBehavior<any>;
|
|
376
|
+
onTrackOptionsChanged: any;
|
|
377
|
+
isShowGlobalMousePosition: any;
|
|
378
|
+
isValueScaleLocked: any;
|
|
379
|
+
pColorbarArea: PIXI.Graphics;
|
|
380
|
+
pColorbar: PIXI.Graphics;
|
|
381
|
+
axis: AxisPixi;
|
|
382
|
+
colorScale: number[][];
|
|
383
|
+
gBase: import("d3-selection").Selection<SVGGElement, any, null, undefined>;
|
|
384
|
+
gMain: import("d3-selection").Selection<SVGGElement, any, null, undefined>;
|
|
385
|
+
gColorscaleBrush: import("d3-selection").Selection<SVGGElement, any, null, undefined>;
|
|
386
|
+
brushing: boolean;
|
|
387
|
+
prevIndUpperLeftTile: string;
|
|
388
|
+
onMouseMoveZoom: any;
|
|
389
|
+
dataLens: Float32Array<ArrayBuffer>;
|
|
390
|
+
mouseMoveHandlerBound: (e: Object) => void;
|
|
391
|
+
hideMousePosition: Function | undefined;
|
|
392
|
+
/**
|
|
393
|
+
* Mouse move handler
|
|
394
|
+
*
|
|
395
|
+
* @param {Object} e Event object.
|
|
396
|
+
*/
|
|
397
|
+
mouseMoveHandler(e: Object): void;
|
|
398
|
+
mouseX: any;
|
|
399
|
+
mouseY: any;
|
|
400
|
+
/**
|
|
401
|
+
* Mouse move and zoom handler. Is triggered on both events.
|
|
402
|
+
*
|
|
403
|
+
* @param {Number} absX Absolute X coordinate.
|
|
404
|
+
* @param {Number} absY Absolute Y coordinate
|
|
405
|
+
*/
|
|
406
|
+
mouseMoveZoomHandler(absX?: number, absY?: number): void;
|
|
407
|
+
scheduleRerender(): void;
|
|
408
|
+
handleRerender(): void;
|
|
409
|
+
/**
|
|
410
|
+
* Get absolute (i.e., display) tile dimension and position.
|
|
411
|
+
*
|
|
412
|
+
* @param {Number} zoomLevel Current zoom level.
|
|
413
|
+
* @param {Array} tilePos Tile position.
|
|
414
|
+
* @return {Object} Object holding the absolute x, y, width, and height.
|
|
415
|
+
*/
|
|
416
|
+
getAbsTileDim(zoomLevel: number, tilePos: any[], mirrored: any): Object;
|
|
417
|
+
updateValueScale(): any[];
|
|
418
|
+
valueScale: any;
|
|
419
|
+
limitedValueScale: any;
|
|
420
|
+
rerender(options: any, force: any): void;
|
|
421
|
+
tileDataToCanvas(pixData: any): HTMLCanvasElement;
|
|
422
|
+
exportData(): void;
|
|
423
|
+
/**
|
|
424
|
+
* Position sprite (the rendered tile)
|
|
425
|
+
*
|
|
426
|
+
* @param {Object} sprite PIXI sprite object.
|
|
427
|
+
* @param {Number} zoomLevel Current zoom level.
|
|
428
|
+
* @param {Array} tilePos X,Y position of tile.
|
|
429
|
+
* @param {Boolean} mirrored If `true` tile is mirrored.
|
|
430
|
+
*/
|
|
431
|
+
setSpriteProperties(sprite: Object, zoomLevel: number, tilePos: any[], mirrored: boolean): void;
|
|
432
|
+
refXScale(_: any): void;
|
|
433
|
+
refYScale(_: any): void;
|
|
434
|
+
newBrushOptions(selection: any): any;
|
|
435
|
+
brushStart(): void;
|
|
436
|
+
brushMoved(event: any): void;
|
|
437
|
+
brushEnd(): void;
|
|
438
|
+
removeColorbar(): void;
|
|
439
|
+
drawColorbar(): void;
|
|
440
|
+
colorbarHeight: number | undefined;
|
|
441
|
+
northHandle: import("d3-selection").Selection<SVGRectElement, {
|
|
442
|
+
type: string;
|
|
443
|
+
}, SVGGElement, any> | undefined;
|
|
444
|
+
exportColorBarSVG(): HTMLElement;
|
|
445
|
+
/**
|
|
446
|
+
* Set data lens size
|
|
447
|
+
*
|
|
448
|
+
* @param {Integer} newDataLensSize New data lens size. Needs to be an odd
|
|
449
|
+
* integer.
|
|
450
|
+
*/
|
|
451
|
+
setDataLensSize(newDataLensSize: Integer): void;
|
|
452
|
+
dataLensPadding: number | undefined;
|
|
453
|
+
dataLensSize: number | undefined;
|
|
454
|
+
binsPerTile(): any;
|
|
455
|
+
/**
|
|
456
|
+
* Get the data in the visible rectangle
|
|
457
|
+
*
|
|
458
|
+
* The parameter coordinates are in pixel coordinates
|
|
459
|
+
*
|
|
460
|
+
* @param {int} x: The upper left corner of the rectangle in pixel coordinates
|
|
461
|
+
* @param {int} y: The upper left corner of the rectangle in pixel coordinates
|
|
462
|
+
* @param {int} width: The width of the rectangle (pixels)
|
|
463
|
+
* @param {int} height: The height of the rectangle (pixels)
|
|
464
|
+
*
|
|
465
|
+
* @returns {Array} A numjs array containing the data in the visible region
|
|
466
|
+
*
|
|
467
|
+
*/
|
|
468
|
+
getVisibleRectangleData(x: int, y: int, width: int, height: int): any[];
|
|
469
|
+
/**
|
|
470
|
+
* Convert the raw tile data to a rendered array of values which can be represented as a sprite.
|
|
471
|
+
*
|
|
472
|
+
* @param tile: The data structure containing all the tile information. Relevant to
|
|
473
|
+
* this function are tile.tileData = \{'dense': [...], ...\}
|
|
474
|
+
* and tile.graphics
|
|
475
|
+
*/
|
|
476
|
+
initTile(tile: any): void;
|
|
477
|
+
updateTile(tile: any): void;
|
|
478
|
+
destroyTile(tile: any): void;
|
|
479
|
+
pixDataFunction(tile: any, pixData: any): void;
|
|
480
|
+
/**
|
|
481
|
+
* Render / draw a tile.
|
|
482
|
+
*
|
|
483
|
+
* @param {Object} tile Tile data to be rendered.
|
|
484
|
+
*/
|
|
485
|
+
renderTile(tile: Object): void;
|
|
486
|
+
refScalesChanged(refXScale: any, refYScale: any): void;
|
|
487
|
+
/**
|
|
488
|
+
* Bypass this track's exportSVG function
|
|
489
|
+
*/
|
|
490
|
+
superSVG(): [HTMLElement, HTMLElement];
|
|
491
|
+
exportSVG(): HTMLElement[];
|
|
492
|
+
getVisiblePartOfUppLeftTile(): any[] | null;
|
|
493
|
+
getIndicesOfVisibleDataInTile(tile: any): number[];
|
|
494
|
+
minVisibleValue(ignoreFixedScale?: boolean): number | null;
|
|
495
|
+
maxVisibleValue(ignoreFixedScale?: boolean): number | null;
|
|
496
|
+
zoomed(newXScale: any, newYScale: any, k: any, tx: any, ty: any): void;
|
|
497
|
+
/**
|
|
498
|
+
* Helper method for adding a tile ID in place. Used by `tilesToId()`.
|
|
499
|
+
*
|
|
500
|
+
* @param {Array} tiles Array tile ID should be added to.
|
|
501
|
+
* @param {Integer} zoomLevel Zoom level.
|
|
502
|
+
* @param {Integer} row Column ID, i.e., y.
|
|
503
|
+
* @param {Integer} column Column ID, i.e., x.
|
|
504
|
+
* @param {Objwect} dataTransform ??
|
|
505
|
+
* @param {Boolean} mirrored If `true` tile is mirrored.
|
|
506
|
+
*/
|
|
507
|
+
addTileId(tiles: any[], zoomLevel: Integer, row: Integer, column: Integer, dataTransform: Objwect, mirrored?: boolean): void;
|
|
508
|
+
/**
|
|
509
|
+
* Convert tile positions to tile IDs
|
|
510
|
+
*
|
|
511
|
+
* @param {Array} xTiles X positions of tiles
|
|
512
|
+
* @param {Array} yTiles Y positions of tiles
|
|
513
|
+
* @param {Array} zoomLevel Current zoom level
|
|
514
|
+
* @return {Array} List of tile IDs
|
|
515
|
+
*/
|
|
516
|
+
tilesToId(xTiles: any[], yTiles: any[], zoomLevel: any[]): any[];
|
|
517
|
+
calculateVisibleTiles(): void;
|
|
518
|
+
zoomLevel: number | undefined;
|
|
519
|
+
xTiles: number[] | undefined;
|
|
520
|
+
yTiles: number[] | undefined;
|
|
521
|
+
mirrorTiles(): boolean;
|
|
522
|
+
getMouseOverHtml(trackX: any, trackY: any): string;
|
|
523
|
+
/**
|
|
524
|
+
* Get the tile's position in its coordinate system.
|
|
525
|
+
*
|
|
526
|
+
* @description
|
|
527
|
+
* Normally the absolute coordinate system are the genome basepair positions
|
|
528
|
+
*/
|
|
529
|
+
getTilePosAndDimensions(zoomLevel: any, tilePos: any, binsPerTileIn: any): {
|
|
530
|
+
tileX: any;
|
|
531
|
+
tileY: any;
|
|
532
|
+
tileWidth: number;
|
|
533
|
+
tileHeight: number;
|
|
534
|
+
};
|
|
535
|
+
/**
|
|
536
|
+
* The local tile identifier
|
|
537
|
+
*
|
|
538
|
+
* @param {array} tile Tile definition array to be converted to id. Tile
|
|
539
|
+
* array must contain `[zoomLevel, xPos, yPos]` and two props `mirrored` and
|
|
540
|
+
* `dataTransform`.
|
|
541
|
+
*/
|
|
542
|
+
tileToLocalId(tile: array): string;
|
|
543
|
+
/**
|
|
544
|
+
* The tile identifier used on the server
|
|
545
|
+
*/
|
|
546
|
+
tileToRemoteId(tile: any): string;
|
|
547
|
+
localToRemoteId(remoteId: any): any;
|
|
548
|
+
}
|
|
549
|
+
/**
|
|
550
|
+
* @typedef PixiTrackOptions
|
|
551
|
+
* @property {string} labelPosition - If the label is to be drawn, where should it be drawn?
|
|
552
|
+
* @property {string} labelText - What should be drawn in the label.
|
|
553
|
+
* If either labelPosition or labelText are false, no label will be drawn.
|
|
554
|
+
* @property {number=} trackBorderWidth
|
|
555
|
+
* @property {string=} trackBorderColor
|
|
556
|
+
* @property {string=} backgroundColor
|
|
557
|
+
* @property {string=} labelColor
|
|
558
|
+
* @property {string=} lineStrokeColor
|
|
559
|
+
* @property {string=} barFillColor
|
|
560
|
+
* @property {string=} name
|
|
561
|
+
* @property {number=} labelTextOpacity
|
|
562
|
+
* @property {string=} labelBackgroundColor
|
|
563
|
+
* @property {number=} labelLeftMargin
|
|
564
|
+
* @property {number=} labelRightMargin
|
|
565
|
+
* @property {number=} labelTopMargin
|
|
566
|
+
* @property {number=} labelBottomMargin
|
|
567
|
+
* @property {number=} labelBackgroundOpacity
|
|
568
|
+
* @property {boolean=} labelShowAssembly
|
|
569
|
+
* @property {boolean=} labelShowResolution
|
|
570
|
+
* @property {string=} dataTransform
|
|
571
|
+
*/
|
|
572
|
+
/** @extends {Track<PixiTrackOptions>} */
|
|
573
|
+
export class PixiTrack extends Track<PixiTrackOptions> {
|
|
574
|
+
/**
|
|
575
|
+
* @param {import('./Track').ExtendedTrackContext<{ scene: import('pixi.js').Container}>} context - Includes the PIXI.js scene to draw to.
|
|
576
|
+
* @param {PixiTrackOptions} options - The options for this track.
|
|
577
|
+
*/
|
|
578
|
+
constructor(context: any, options: PixiTrackOptions);
|
|
579
|
+
/** @type {import('pixi.js').Container} */
|
|
580
|
+
scene: import("pixi.js").Container;
|
|
581
|
+
/** @type {boolean} */
|
|
582
|
+
delayDrawing: boolean;
|
|
583
|
+
/** @type {import('pixi.js').Graphics} */
|
|
584
|
+
pBase: import("pixi.js").Graphics;
|
|
585
|
+
/** @type {import('pixi.js').Graphics} */
|
|
586
|
+
pMasked: import("pixi.js").Graphics;
|
|
587
|
+
/** @type {import('pixi.js').Graphics} */
|
|
588
|
+
pMask: import("pixi.js").Graphics;
|
|
589
|
+
/** @type {import('pixi.js').Graphics} */
|
|
590
|
+
pMain: import("pixi.js").Graphics;
|
|
591
|
+
/** @type {import('pixi.js').Graphics} */
|
|
592
|
+
pBorder: import("pixi.js").Graphics;
|
|
593
|
+
/** @type {import('pixi.js').Graphics} */
|
|
594
|
+
pBackground: import("pixi.js").Graphics;
|
|
595
|
+
/** @type {import('pixi.js').Graphics} */
|
|
596
|
+
pForeground: import("pixi.js").Graphics;
|
|
597
|
+
/** @type {import('pixi.js').Graphics} */
|
|
598
|
+
pLabel: import("pixi.js").Graphics;
|
|
599
|
+
/** @type {import('pixi.js').Graphics} */
|
|
600
|
+
pMobile: import("pixi.js").Graphics;
|
|
601
|
+
/** @type {import('pixi.js').Graphics} */
|
|
602
|
+
pAxis: import("pixi.js").Graphics;
|
|
603
|
+
/** @type {import('pixi.js').Graphics} */
|
|
604
|
+
pMouseOver: import("pixi.js").Graphics;
|
|
605
|
+
/** @type {string} */
|
|
606
|
+
prevOptions: string;
|
|
607
|
+
/** @type {string} */
|
|
608
|
+
labelTextFontFamily: string;
|
|
609
|
+
/** @type {number} */
|
|
610
|
+
labelTextFontSize: number;
|
|
611
|
+
/**
|
|
612
|
+
* Used to avoid label/colormap clashes
|
|
613
|
+
* @type {number}
|
|
614
|
+
*/
|
|
615
|
+
labelXOffset: number;
|
|
616
|
+
/** @type {import('pixi.js').Text} */
|
|
617
|
+
labelText: import("pixi.js").Text;
|
|
618
|
+
/** @type {import('pixi.js').Text} */
|
|
619
|
+
errorText: import("pixi.js").Text;
|
|
620
|
+
/** @type {string} */
|
|
621
|
+
errorTextText: string;
|
|
622
|
+
/** @type {boolean} */
|
|
623
|
+
flipText: boolean;
|
|
624
|
+
/** @type {import('./types').TilesetInfo | undefined} */
|
|
625
|
+
tilesetInfo: any | undefined;
|
|
626
|
+
setLabelText(): void;
|
|
627
|
+
/**
|
|
628
|
+
* @param {[number, number]} position
|
|
629
|
+
* @param {[number, number]} dimensions
|
|
630
|
+
*/
|
|
631
|
+
setMask(position: [number, number], dimensions: [number, number]): void;
|
|
632
|
+
setForeground(): void;
|
|
633
|
+
/**
|
|
634
|
+
* Draw a border around each track.
|
|
635
|
+
*/
|
|
636
|
+
drawBorder(): void;
|
|
637
|
+
drawError(): void;
|
|
638
|
+
drawBackground(): void;
|
|
639
|
+
/**
|
|
640
|
+
* Determine the label color based on the number of options.
|
|
641
|
+
*
|
|
642
|
+
* @return {string} The color to use for the label.
|
|
643
|
+
*/
|
|
644
|
+
getLabelColor(): string;
|
|
645
|
+
getName(): any;
|
|
646
|
+
drawLabel(): void;
|
|
647
|
+
/** @param {PixiTrackOptions} options */
|
|
648
|
+
rerender(options: PixiTrackOptions): void;
|
|
649
|
+
/**
|
|
650
|
+
* Export an SVG representation of this track
|
|
651
|
+
*
|
|
652
|
+
* @returns {[HTMLElement, HTMLElement]} The two returned DOM nodes are both SVG
|
|
653
|
+
* elements [base, track]. Base is a parent which contains track as a
|
|
654
|
+
* child. Track is clipped with a clipping rectangle contained in base.
|
|
655
|
+
*
|
|
656
|
+
*/
|
|
657
|
+
exportSVG(): [HTMLElement, HTMLElement];
|
|
658
|
+
/**
|
|
659
|
+
* @returns {number}
|
|
660
|
+
*/
|
|
661
|
+
calculateZoomLevel(): number;
|
|
662
|
+
}
|
|
663
|
+
export class SVGTrack extends Track<any> {
|
|
664
|
+
constructor(context: any, options: any);
|
|
665
|
+
/**
|
|
666
|
+
* Create a new SVG track. It will contain a g element
|
|
667
|
+
* that maintains all of its element.
|
|
668
|
+
*/
|
|
669
|
+
gMain: import("d3-selection").Selection<SVGGElement, any, null, undefined>;
|
|
670
|
+
clipUid: string;
|
|
671
|
+
clipRect: import("d3-selection").Selection<SVGRectElement, any, null, undefined>;
|
|
672
|
+
setPosition(newPosition: any): void;
|
|
673
|
+
setDimensions(newDimensions: any): void;
|
|
674
|
+
draw(): this;
|
|
675
|
+
}
|
|
676
|
+
export class TiledPixiTrack extends PixiTrack {
|
|
677
|
+
/**
|
|
678
|
+
* A track that must pull remote tiles
|
|
679
|
+
*
|
|
680
|
+
* @param (PIXI.scene) scene A PIXI.js scene to draw everything to.
|
|
681
|
+
* @param (Object) dataConfig: A data source. Usually a
|
|
682
|
+
* ``{{server: 'x/api/v1/', tilesetUuid: 'y'}}`` Object.
|
|
683
|
+
* @param {Object} handleTilesetInfoReceived: A callback to do something once once the tileset
|
|
684
|
+
* info is received. Usually it registers some information about the tileset with its
|
|
685
|
+
* definition
|
|
686
|
+
* @param {Object} options The track's options
|
|
687
|
+
* @param {function} animate A function to redraw this track. Typically called when an
|
|
688
|
+
* asynchronous event occurs (i.e. tiles loaded)
|
|
689
|
+
* @param {function} onValueScaleChanged The range of values has changed so we need to inform
|
|
690
|
+
* the higher ups that the value scale has changed. Only occurs on tracks with ``dense`` data.
|
|
691
|
+
*/
|
|
692
|
+
constructor(context: any, options: Object);
|
|
693
|
+
renderVersion: number;
|
|
694
|
+
visibleTiles: Set<any>;
|
|
695
|
+
visibleTileIds: Set<any>;
|
|
696
|
+
renderingTiles: Set<any>;
|
|
697
|
+
fetching: Set<any>;
|
|
698
|
+
scale: {};
|
|
699
|
+
fetchedTiles: {};
|
|
700
|
+
tileGraphics: {};
|
|
701
|
+
maxZoom: number;
|
|
702
|
+
medianVisibleValue: number | null | undefined;
|
|
703
|
+
backgroundTaskScheduler: BackgroundTaskScheduler;
|
|
704
|
+
continuousScaling: boolean;
|
|
705
|
+
valueScaleMin: number | null;
|
|
706
|
+
fixedValueScaleMin: number | null;
|
|
707
|
+
valueScaleMax: number | null;
|
|
708
|
+
fixedValueScaleMax: number | null;
|
|
709
|
+
listeners: {};
|
|
710
|
+
pubSub: any;
|
|
711
|
+
animate: any;
|
|
712
|
+
onValueScaleChanged: any;
|
|
713
|
+
prevValueScale: any;
|
|
714
|
+
dataFetcher: any;
|
|
715
|
+
uuid: string;
|
|
716
|
+
trackNotFoundText: PIXI.Text;
|
|
717
|
+
refreshTilesDebounced: (request: unknown) => void;
|
|
718
|
+
tilesetUid: any;
|
|
719
|
+
server: any;
|
|
720
|
+
chromInfo: ParsedChromsizes;
|
|
721
|
+
setError(error: any): void;
|
|
722
|
+
setFixedValueScaleMin(value: any): void;
|
|
723
|
+
setFixedValueScaleMax(value: any): void;
|
|
724
|
+
checkValueScaleLimits(): void;
|
|
725
|
+
/**
|
|
726
|
+
* Register an event listener for track events. Currently, the only supported
|
|
727
|
+
* event is ``dataChanged``.
|
|
728
|
+
*
|
|
729
|
+
* @param {string} event The event to listen for
|
|
730
|
+
* @param {function} callback The callback to call when the event occurs. The
|
|
731
|
+
* parameters for the event depend on the event called.
|
|
732
|
+
*
|
|
733
|
+
* @example
|
|
734
|
+
*
|
|
735
|
+
* trackObj.on('dataChanged', (newData) => {
|
|
736
|
+
* console.log('newData:', newData)
|
|
737
|
+
* });
|
|
738
|
+
*/
|
|
739
|
+
on(event: string, callback: Function): void;
|
|
740
|
+
off(event: any, callback: any): void;
|
|
741
|
+
rerender(options: any): void;
|
|
742
|
+
/**
|
|
743
|
+
* Return the set of ids of all tiles which are both visible and fetched.
|
|
744
|
+
*/
|
|
745
|
+
visibleAndFetchedIds(): string[];
|
|
746
|
+
visibleAndFetchedTiles(): any[];
|
|
747
|
+
/**
|
|
748
|
+
* Set which tiles are visible right now.
|
|
749
|
+
*
|
|
750
|
+
* @param tiles: A set of tiles which will be considered the currently visible
|
|
751
|
+
* tile positions.
|
|
752
|
+
*/
|
|
753
|
+
setVisibleTiles(tilePositions: any): void;
|
|
754
|
+
removeOldTiles(): void;
|
|
755
|
+
refreshTiles(): void;
|
|
756
|
+
parentInFetched(tile: any): boolean;
|
|
757
|
+
parentTileId(tile: any): string;
|
|
758
|
+
/**
|
|
759
|
+
* Remove obsolete tiles
|
|
760
|
+
*
|
|
761
|
+
* @param toRemoveIds: An array of tile ids to remove from the list of fetched tiles.
|
|
762
|
+
*/
|
|
763
|
+
removeTiles(toRemoveIds: any): void;
|
|
764
|
+
zoomed(newXScale: any, newYScale: any, k?: number, tx?: number): void;
|
|
765
|
+
setPosition(newPosition: any): void;
|
|
766
|
+
setDimensions(newDimensions: any): void;
|
|
767
|
+
/**
|
|
768
|
+
* Check to see if all the visible tiles are loaded.
|
|
769
|
+
*
|
|
770
|
+
* If they are, remove all other tiles.
|
|
771
|
+
*/
|
|
772
|
+
areAllVisibleTilesLoaded(): boolean;
|
|
773
|
+
/**
|
|
774
|
+
* Function is called when all tiles that should be visible have
|
|
775
|
+
* been received.
|
|
776
|
+
*/
|
|
777
|
+
allTilesLoaded(): void;
|
|
778
|
+
minValue(_: any): any;
|
|
779
|
+
maxValue(_: any): any;
|
|
780
|
+
minRawValue(): any;
|
|
781
|
+
maxRawValue(): any;
|
|
782
|
+
initTile(): void;
|
|
783
|
+
updateTile(): void;
|
|
784
|
+
destroyTile(): void;
|
|
785
|
+
addMissingGraphics(): void;
|
|
786
|
+
/**
|
|
787
|
+
* Change the graphics for existing tiles
|
|
788
|
+
*/
|
|
789
|
+
updateExistingGraphics(): void;
|
|
790
|
+
synchronizeTilesAndGraphics(): void;
|
|
791
|
+
loadTileData(tile: any, dataLoader: any): any;
|
|
792
|
+
fetchNewTiles(toFetch: any): void;
|
|
793
|
+
/**
|
|
794
|
+
* We've gotten a bunch of tiles from the server in
|
|
795
|
+
* response to a request from fetchTiles.
|
|
796
|
+
*/
|
|
797
|
+
receivedTiles(loadedTiles: any): void;
|
|
798
|
+
/**
|
|
799
|
+
* Draw a tile on some graphics
|
|
800
|
+
*/
|
|
801
|
+
drawTile(): void;
|
|
802
|
+
calculateMedianVisibleValue(): number | undefined;
|
|
803
|
+
allVisibleValues(): never[];
|
|
804
|
+
minVisibleValue(ignoreFixedScale?: boolean): number;
|
|
805
|
+
minVisibleValueInTiles(ignoreFixedScale?: boolean): number;
|
|
806
|
+
maxVisibleValue(ignoreFixedScale?: boolean): number;
|
|
807
|
+
maxVisibleValueInTiles(ignoreFixedScale?: boolean): number;
|
|
808
|
+
makeValueScale(minValue: any, medianValue: any, maxValue: any, inMargin: any): (number | import("d3-scale").ScaleQuantile<number, never>)[] | (number | import("d3-scale").ScaleLinear<number, number, never>)[];
|
|
809
|
+
}
|
|
810
|
+
/**
|
|
811
|
+
* @typedef TrackContext
|
|
812
|
+
* @property {string} id - The track ID.
|
|
813
|
+
* @property {import('pub-sub-es').PubSub & { __fake__?: boolean }} [pubSub] - The pub-sub channel.
|
|
814
|
+
*/
|
|
815
|
+
/**
|
|
816
|
+
* @template T
|
|
817
|
+
* @typedef {T & TrackContext} ExtendedTrackContext
|
|
818
|
+
*/
|
|
819
|
+
/** @template Options */
|
|
820
|
+
export class Track<Options> {
|
|
821
|
+
/**
|
|
822
|
+
* @param {TrackContext} context
|
|
823
|
+
* @param {Options} options
|
|
824
|
+
*/
|
|
825
|
+
constructor(context: TrackContext, options: Options);
|
|
826
|
+
context: TrackContext;
|
|
827
|
+
/** @type {import('pub-sub-es').PubSub} */
|
|
828
|
+
pubSub: import("pub-sub-es").PubSub;
|
|
829
|
+
/** @type {string} */
|
|
830
|
+
id: string;
|
|
831
|
+
/** @type {import('./types').Scale} */
|
|
832
|
+
_xScale: any;
|
|
833
|
+
/** @type {import('./types').Scale} */
|
|
834
|
+
_yScale: any;
|
|
835
|
+
/** @type {import('./types').Scale} */
|
|
836
|
+
_refXScale: any;
|
|
837
|
+
/** @type {import('./types').Scale} */
|
|
838
|
+
_refYScale: any;
|
|
839
|
+
/** @type {[number, number]} */
|
|
840
|
+
position: [number, number];
|
|
841
|
+
/** @type {[number, number]} */
|
|
842
|
+
dimensions: [number, number];
|
|
843
|
+
/** @type {Options} */
|
|
844
|
+
options: Options;
|
|
845
|
+
/** @type {Array<import('pub-sub-es').Subscription>} */
|
|
846
|
+
pubSubs: Array<import("pub-sub-es").Subscription>;
|
|
847
|
+
isLeftModified: boolean;
|
|
848
|
+
/**
|
|
849
|
+
* Check if a 2d location (x, y) is within the bounds of this track.
|
|
850
|
+
*
|
|
851
|
+
* @param {number} x - X position to be tested.
|
|
852
|
+
* @param {number} y - Y position to be tested.
|
|
853
|
+
* @return {boolean} If `true` location is within the track.
|
|
854
|
+
*/
|
|
855
|
+
isWithin(x: number, y: number): boolean;
|
|
856
|
+
/**
|
|
857
|
+
* Get a property from the track.
|
|
858
|
+
* @template {keyof this} T
|
|
859
|
+
* @param {T} prop - The property to get.
|
|
860
|
+
* @return {() => this[T]}
|
|
861
|
+
*/
|
|
862
|
+
getProp<T extends keyof this>(prop: T): () => this[T];
|
|
863
|
+
getData(): void;
|
|
864
|
+
/**
|
|
865
|
+
* Capture click events. x and y are relative to the track position
|
|
866
|
+
* @template T
|
|
867
|
+
* @param {number} x - X position of the click event.
|
|
868
|
+
* @param {number} y - Y position of the click event.
|
|
869
|
+
* @param {T} evt - The event.
|
|
870
|
+
* @return {{ type: 'generic', event: T, payload: null }}
|
|
871
|
+
*/
|
|
872
|
+
click<T>(x: number, y: number, evt: T): {
|
|
873
|
+
type: "generic";
|
|
874
|
+
event: T;
|
|
875
|
+
payload: null;
|
|
876
|
+
};
|
|
877
|
+
/** There was a click event outside the track * */
|
|
878
|
+
clickOutside(): void;
|
|
879
|
+
/** @returns {[number, number]} */
|
|
880
|
+
getDimensions(): [number, number];
|
|
881
|
+
/** @param {[number, number]} newDimensions */
|
|
882
|
+
setDimensions(newDimensions: [number, number]): void;
|
|
883
|
+
/**
|
|
884
|
+
* @overload
|
|
885
|
+
* @return {import('./types').Scale}
|
|
886
|
+
*/
|
|
887
|
+
refXScale(): any;
|
|
888
|
+
/**
|
|
889
|
+
* @overload
|
|
890
|
+
* @param {import('./types').Scale} scale
|
|
891
|
+
* @return {this}
|
|
892
|
+
*/
|
|
893
|
+
refXScale(scale: any): this;
|
|
894
|
+
/**
|
|
895
|
+
* @overload
|
|
896
|
+
* @return {import('./types').Scale}
|
|
897
|
+
*/
|
|
898
|
+
refYScale(): any;
|
|
899
|
+
/**
|
|
900
|
+
* @overload
|
|
901
|
+
* @param {import('./types').Scale} scale
|
|
902
|
+
* @return {this}
|
|
903
|
+
*/
|
|
904
|
+
refYScale(scale: any): this;
|
|
905
|
+
/**
|
|
906
|
+
* @overload
|
|
907
|
+
* @return {import('./types').Scale}
|
|
908
|
+
*/
|
|
909
|
+
xScale(): any;
|
|
910
|
+
/**
|
|
911
|
+
* @overload
|
|
912
|
+
* @param {import('./types').Scale} scale
|
|
913
|
+
* @return {this}
|
|
914
|
+
*/
|
|
915
|
+
xScale(scale: any): this;
|
|
916
|
+
/**
|
|
917
|
+
* @overload
|
|
918
|
+
* @return {import('./types').Scale}
|
|
919
|
+
*/
|
|
920
|
+
yScale(): any;
|
|
921
|
+
/**
|
|
922
|
+
* @overload
|
|
923
|
+
* @param {import('./types').Scale} scale
|
|
924
|
+
* @return {this}
|
|
925
|
+
*/
|
|
926
|
+
yScale(scale: any): this;
|
|
927
|
+
/**
|
|
928
|
+
* @param {import('./types').Scale} newXScale
|
|
929
|
+
* @param {import('./types').Scale} newYScale
|
|
930
|
+
* @returns {void}
|
|
931
|
+
*/
|
|
932
|
+
zoomed(newXScale: any, newYScale: any): void;
|
|
933
|
+
/**
|
|
934
|
+
* @param {import('./types').Scale} refXScale
|
|
935
|
+
* @param {import('./types').Scale} refYScale
|
|
936
|
+
* @returns {void}
|
|
937
|
+
*/
|
|
938
|
+
refScalesChanged(refXScale: any, refYScale: any): void;
|
|
939
|
+
/** @returns {void} */
|
|
940
|
+
draw(): void;
|
|
941
|
+
/** @returns {[number, number]} */
|
|
942
|
+
getPosition(): [number, number];
|
|
943
|
+
/**
|
|
944
|
+
* @param {[number, number]} newPosition
|
|
945
|
+
* @returns {void}
|
|
946
|
+
*/
|
|
947
|
+
setPosition(newPosition: [number, number]): void;
|
|
948
|
+
/**
|
|
949
|
+
* A blank handler for MouseMove / Zoom events. Should be overriden
|
|
950
|
+
* by individual tracks to provide
|
|
951
|
+
*
|
|
952
|
+
* @param {{}} evt
|
|
953
|
+
* @returns {void}
|
|
954
|
+
*/
|
|
955
|
+
defaultMouseMoveHandler(): void;
|
|
956
|
+
/** @returns {void} */
|
|
957
|
+
remove(): void;
|
|
958
|
+
/**
|
|
959
|
+
* @param {Options} options
|
|
960
|
+
* @returns {void}
|
|
961
|
+
*/
|
|
962
|
+
rerender(): void;
|
|
963
|
+
/**
|
|
964
|
+
* This function is for seeing whether this track should respond
|
|
965
|
+
* to events at this mouse position. The difference to `isWithin()` is that it
|
|
966
|
+
* can be overwritten if a track is inactive for example.
|
|
967
|
+
*
|
|
968
|
+
* @param {number} x - X position to be tested.
|
|
969
|
+
* @param {number} y - Y position to be tested.
|
|
970
|
+
* @returns {boolean}
|
|
971
|
+
*/
|
|
972
|
+
respondsToPosition(x: number, y: number): boolean;
|
|
973
|
+
/**
|
|
974
|
+
* @param {number} trackY
|
|
975
|
+
* @param {number} kMultiplier
|
|
976
|
+
* @returns {void}
|
|
977
|
+
*/
|
|
978
|
+
zoomedY(): void;
|
|
979
|
+
/**
|
|
980
|
+
* @param {number} dY
|
|
981
|
+
* @returns {void}
|
|
982
|
+
*/
|
|
983
|
+
movedY(): void;
|
|
984
|
+
}
|
|
985
|
+
export class ViewportTrackerHorizontal extends SVGTrack {
|
|
986
|
+
uid: string;
|
|
987
|
+
hasFromView: boolean;
|
|
988
|
+
removeViewportChanged: any;
|
|
989
|
+
setDomainsCallback: any;
|
|
990
|
+
viewportXDomain: any;
|
|
991
|
+
viewportYDomain: number[] | null;
|
|
992
|
+
brush: import("d3-brush").BrushBehavior<any>;
|
|
993
|
+
gBrush: import("d3-selection").Selection<SVGGElement, any, null, undefined>;
|
|
994
|
+
brushed(event: any): void;
|
|
995
|
+
viewportChanged(viewportXScale: any, viewportYScale: any): void;
|
|
996
|
+
draw(): void;
|
|
997
|
+
zoomed(newXScale: any, newYScale: any): void;
|
|
998
|
+
}
|
|
999
|
+
/**
|
|
1000
|
+
* @typedef ClassContext
|
|
1001
|
+
* @property {import('pixi.js').Container=} pForeground
|
|
1002
|
+
* @property {import('pixi.js').Container=} pMasked
|
|
1003
|
+
* @property {import('pixi.js').Container=} pMain
|
|
1004
|
+
* @property {() => import('../types').Scale} xScale
|
|
1005
|
+
* @property {() => import('../types').Scale} yScale
|
|
1006
|
+
* @property {() => [number, number]} getPosition
|
|
1007
|
+
* @property {() => [number, number]} getDimensions
|
|
1008
|
+
* @property {import('pub-sub-es').PubSub} pubSub
|
|
1009
|
+
* @property {Array<import('pub-sub-es').Subscription>} pubSubs
|
|
1010
|
+
* @property {(prop: 'flipText') => () => boolean} getProp
|
|
1011
|
+
* @property {{}} options
|
|
1012
|
+
*/
|
|
1013
|
+
/**
|
|
1014
|
+
* Public API for showing the mouse location.
|
|
1015
|
+
*
|
|
1016
|
+
* @description
|
|
1017
|
+
* This is just a convenience wrapper to avoid code duplication.
|
|
1018
|
+
* `showMousePosition` is the actual function and could be called from within
|
|
1019
|
+
* each class as well.
|
|
1020
|
+
*
|
|
1021
|
+
* @param {ClassContext} context - Class context, i.e., `this`.
|
|
1022
|
+
* @param {Boolean} is2d - If `true` both dimensions of the mouse location
|
|
1023
|
+
* should be shown. E.g., on a central track.
|
|
1024
|
+
* @param {Boolean} isGlobal - If `true` local and global events will trigger
|
|
1025
|
+
* the mouse position drawing.
|
|
1026
|
+
* @return {Function} - Method to remove graphics showing the mouse location.
|
|
1027
|
+
*/
|
|
1028
|
+
declare function setupShowMousePosition(context: ClassContext, is2d?: boolean, isGlobal?: boolean): Function;
|
|
1029
|
+
declare namespace api {
|
|
1030
|
+
export { calculateResolution };
|
|
1031
|
+
export { calculateTileAndPosInTile };
|
|
1032
|
+
export { calculateTiles };
|
|
1033
|
+
export { calculateTilesFromResolution };
|
|
1034
|
+
export { calculateTileWidth };
|
|
1035
|
+
export { calculateZoomLevel };
|
|
1036
|
+
export { calculateZoomLevelFromResolutions };
|
|
1037
|
+
export { fetchTilesDebounced };
|
|
1038
|
+
export { json };
|
|
1039
|
+
export { text };
|
|
1040
|
+
export { tileDataToPixData };
|
|
1041
|
+
export { trackInfo };
|
|
1042
|
+
}
|
|
1043
|
+
/**
|
|
1044
|
+
* @typedef View2D
|
|
1045
|
+
* @property {(i: number, j: number) => number} get
|
|
1046
|
+
* @property {(i: number, j: number, v: number) => void} set
|
|
1047
|
+
*/
|
|
1048
|
+
declare class DenseDataExtrema2D {
|
|
1049
|
+
/**
|
|
1050
|
+
* This module efficiently computes extrema of subsets of a given data matrix.
|
|
1051
|
+
* The matrix is subdivided into 'numSubsets' subsets where extrema are precomputed.
|
|
1052
|
+
* These values are used to efficiently approximate extrema given arbitrary subsets.
|
|
1053
|
+
* Larger values of 'numSubsets' lead to more accurate approximations (more expensive).
|
|
1054
|
+
*
|
|
1055
|
+
* @param {ArrayLike<number>} data array of quadratic length
|
|
1056
|
+
*/
|
|
1057
|
+
constructor(data: ArrayLike<number>);
|
|
1058
|
+
/** @type {number} */
|
|
1059
|
+
epsilon: number;
|
|
1060
|
+
/** @type {number} */
|
|
1061
|
+
tileSize: number;
|
|
1062
|
+
/** @type {number} */
|
|
1063
|
+
numSubsets: number;
|
|
1064
|
+
/** @type {number} */
|
|
1065
|
+
subsetSize: number;
|
|
1066
|
+
/** @type {View2D} */
|
|
1067
|
+
subsetMinimums: View2D;
|
|
1068
|
+
/** @type {View2D} */
|
|
1069
|
+
subsetMaximums: View2D;
|
|
1070
|
+
/** @type {number} */
|
|
1071
|
+
minNonZeroInTile: number;
|
|
1072
|
+
/** @type {number} */
|
|
1073
|
+
maxNonZeroInTile: number;
|
|
1074
|
+
/**
|
|
1075
|
+
* Computes an approximation of the non-zero minimum in a subset
|
|
1076
|
+
*
|
|
1077
|
+
* @param {[startX: number, startY: number, endX: number, endY: number]} indexBounds
|
|
1078
|
+
* @return {number} Non-zero minium of the subset
|
|
1079
|
+
*/
|
|
1080
|
+
getMinNonZeroInSubset(indexBounds: [startX: number, startY: number, endX: number, endY: number]): number;
|
|
1081
|
+
/**
|
|
1082
|
+
* Computes an approximation of the non-zero maximum in a subset
|
|
1083
|
+
*
|
|
1084
|
+
* @param {[startX: number, startY: number, endX: number, endY: number]} indexBounds
|
|
1085
|
+
* @return {number} Non-zero maxium of the subset
|
|
1086
|
+
*/
|
|
1087
|
+
getMaxNonZeroInSubset(indexBounds: [startX: number, startY: number, endX: number, endY: number]): number;
|
|
1088
|
+
/**
|
|
1089
|
+
* Precomputes non-zero minimums of subsets of a given matrix
|
|
1090
|
+
* @param {View2D} dataMatrix
|
|
1091
|
+
* @return {View2D} Matrix containing minimums of the dataMatrix after subdivision using a regular grid
|
|
1092
|
+
*/
|
|
1093
|
+
computeSubsetNonZeroMinimums(dataMatrix: View2D): View2D;
|
|
1094
|
+
/**
|
|
1095
|
+
* Precomputes non-zero maximums of subsets of a given matrix
|
|
1096
|
+
*
|
|
1097
|
+
* @param {View2D} dataMatrix
|
|
1098
|
+
* @return {View2D} Matrix containing maximums of the dataMatrix after subdivision using a regular grid
|
|
1099
|
+
*/
|
|
1100
|
+
computeSubsetNonZeroMaximums(dataMatrix: View2D): View2D;
|
|
1101
|
+
/**
|
|
1102
|
+
* Computes the non-zero minimum of a subset of a matrix (ndarray)
|
|
1103
|
+
* @param {View2D} arr
|
|
1104
|
+
* @param {number} rowOffset - Starting row of the subset
|
|
1105
|
+
* @param {number} colOffset - Starting column of the subset
|
|
1106
|
+
* @param {number} width - Width (num columns) of the subset
|
|
1107
|
+
* @param {number} height - Height (num rows) of the subset
|
|
1108
|
+
* @return {number} Non-zeros - minimum of the subset
|
|
1109
|
+
*/
|
|
1110
|
+
getMinNonZeroInNdarraySubset(arr: View2D, rowOffset: number, colOffset: number, width: number, height: number): number;
|
|
1111
|
+
/**
|
|
1112
|
+
* Computes the non-zero maximum of a subset of a matrix (ndarray)
|
|
1113
|
+
* @param {View2D} arr
|
|
1114
|
+
* @param {number} rowOffset - Starting row of the subset
|
|
1115
|
+
* @param {number} colOffset - Starting column of the subset
|
|
1116
|
+
* @param {number} width - Width (num columns) of the subset
|
|
1117
|
+
* @param {number} height - Height (num rows) of the subset
|
|
1118
|
+
* @return {number} Non-zeros maximum of the subset
|
|
1119
|
+
*/
|
|
1120
|
+
getMaxNonZeroInNdarraySubset(arr: View2D, rowOffset: number, colOffset: number, width: number, height: number): number;
|
|
1121
|
+
mirrorPrecomputedExtrema(): void;
|
|
1122
|
+
/**
|
|
1123
|
+
* Computes the non-zero minimum in the entire data array using precomputed values
|
|
1124
|
+
*
|
|
1125
|
+
* @return {number} Non-zeros minimum of the data
|
|
1126
|
+
*/
|
|
1127
|
+
getMinNonZeroInTile(): number;
|
|
1128
|
+
/**
|
|
1129
|
+
* Computes the non-zero maximum in the entire data array using precomputed values
|
|
1130
|
+
*
|
|
1131
|
+
* @return {number} Non-zeros maximum of the data
|
|
1132
|
+
*/
|
|
1133
|
+
getMaxNonZeroInTile(): number;
|
|
1134
|
+
}
|
|
1135
|
+
import * as PIXI from 'pixi.js';
|
|
1136
|
+
declare class AxisPixi {
|
|
1137
|
+
constructor(track: any);
|
|
1138
|
+
pAxis: PIXI.Graphics;
|
|
1139
|
+
track: any;
|
|
1140
|
+
axisTexts: any[];
|
|
1141
|
+
axisTextFontFamily: string;
|
|
1142
|
+
axisTextFontSize: number;
|
|
1143
|
+
startAxis(axisHeight: any): void;
|
|
1144
|
+
createAxisTexts(valueScale: any, axisHeight: any): void;
|
|
1145
|
+
tickValues: any;
|
|
1146
|
+
tickFormat: ((n: number | {
|
|
1147
|
+
valueOf(): number;
|
|
1148
|
+
}) => string) | ((x: any) => any) | undefined;
|
|
1149
|
+
calculateAxisTickValues(valueScale: any, axisHeight: any): any;
|
|
1150
|
+
drawAxisLeft(valueScale: any, axisHeight: any): void;
|
|
1151
|
+
drawAxisRight(valueScale: any, axisHeight: any): void;
|
|
1152
|
+
hideOverlappingAxisLabels(): void;
|
|
1153
|
+
exportVerticalAxis(axisHeight: any): HTMLElement;
|
|
1154
|
+
createAxisSVGLine(): HTMLElement;
|
|
1155
|
+
createAxisSVGText(text: any): HTMLElement;
|
|
1156
|
+
exportAxisLeftSVG(valueScale: any, axisHeight: any): HTMLElement;
|
|
1157
|
+
exportAxisRightSVG(valueScale: any, axisHeight: any): HTMLElement;
|
|
1158
|
+
clearAxis(): void;
|
|
1159
|
+
}
|
|
1160
|
+
/**
|
|
1161
|
+
*/
|
|
1162
|
+
declare class BackgroundTaskScheduler {
|
|
1163
|
+
/** @type {Task[]} */
|
|
1164
|
+
taskList: Task[];
|
|
1165
|
+
taskHandle: number | null;
|
|
1166
|
+
requestIdleCallbackTimeout: number;
|
|
1167
|
+
/**
|
|
1168
|
+
* @template T
|
|
1169
|
+
* @overload
|
|
1170
|
+
* @param {(data: T) => void} taskHandler
|
|
1171
|
+
* @param {T} taskData
|
|
1172
|
+
* @param {string | null=} trackId
|
|
1173
|
+
* @return {void}
|
|
1174
|
+
*/
|
|
1175
|
+
enqueueTask<T>(taskHandler: (data: T) => void, taskData: T, trackId?: (string | null) | undefined): void;
|
|
1176
|
+
/**
|
|
1177
|
+
* If `taskData` is `null` the `taskHandler` will eventaully be called without any arguments.
|
|
1178
|
+
*
|
|
1179
|
+
* @overload
|
|
1180
|
+
* @param {() => void} taskHandler
|
|
1181
|
+
* @param {null} taskData
|
|
1182
|
+
* @param {string | null=} trackId
|
|
1183
|
+
* @return {void}
|
|
1184
|
+
*/
|
|
1185
|
+
enqueueTask(taskHandler: () => void, taskData: null, trackId?: (string | null) | undefined): void;
|
|
1186
|
+
/**
|
|
1187
|
+
* @param {{ timeRemaining(): number, didTimeout: boolean }} deadline
|
|
1188
|
+
*/
|
|
1189
|
+
runTaskQueue(deadline: {
|
|
1190
|
+
timeRemaining(): number;
|
|
1191
|
+
didTimeout: boolean;
|
|
1192
|
+
}): void;
|
|
1193
|
+
}
|
|
1194
|
+
declare function calculateResolution(tilesetInfo: any, zoomLevel: any): any;
|
|
1195
|
+
/**
|
|
1196
|
+
* Calculate the element within this tile containing the given
|
|
1197
|
+
* position.
|
|
1198
|
+
*
|
|
1199
|
+
* Returns the tile position and position within the tile for
|
|
1200
|
+
* the given element.
|
|
1201
|
+
*
|
|
1202
|
+
* @param {object} tilesetInfo: The information about this tileset
|
|
1203
|
+
* @param {Number} maxDim: The maximum width of the dataset (only used for
|
|
1204
|
+
* tilesets without resolutions)
|
|
1205
|
+
* @param {Number} dataStartPos: The position where the data begins
|
|
1206
|
+
* @param {int} zoomLevel: The current zoomLevel
|
|
1207
|
+
* @param {Number} position: The position (in absolute coordinates) to caculate
|
|
1208
|
+
* the tile and position in tile for
|
|
1209
|
+
*/
|
|
1210
|
+
declare function calculateTileAndPosInTile(tilesetInfo: object, maxDim: number, dataStartPos: number, zoomLevel: int, position: number): number[];
|
|
1211
|
+
/**
|
|
1212
|
+
* Calculate the tiles that should be visible get a data domain
|
|
1213
|
+
* and a tileset info
|
|
1214
|
+
*
|
|
1215
|
+
* All the parameters except the first should be present in the
|
|
1216
|
+
* tileset_info returned by the server.
|
|
1217
|
+
*
|
|
1218
|
+
* @param {number} zoomLevel - The zoom level at which to find the tiles (can be
|
|
1219
|
+
* calculated using this.calcaulteZoomLevel, but needs to synchronized across
|
|
1220
|
+
* both x and y scales so should be calculated externally)
|
|
1221
|
+
* @param {import('../type').Scale} scale - A d3 scale mapping data domain to visible values
|
|
1222
|
+
* @param {number} minX - The minimum possible value in the dataset
|
|
1223
|
+
* @param {number} maxX - The maximum possible value in the dataset
|
|
1224
|
+
* @param {number} maxZoom - The maximum zoom value in this dataset
|
|
1225
|
+
* @param {number} maxDim - The largest dimension of the tileset (e.g., width or height)
|
|
1226
|
+
* (roughlty equal to 2 ** maxZoom * tileSize * tileResolution)
|
|
1227
|
+
* @returns {number[]} The indices of the tiles that should be visible
|
|
1228
|
+
*/
|
|
1229
|
+
declare function calculateTiles(zoomLevel: number, scale: any, minX: number, maxX: number, maxZoom: number, maxDim: number): number[];
|
|
1230
|
+
/**
|
|
1231
|
+
* Calculate the tiles that sould be visisble given the resolution and
|
|
1232
|
+
* the minX and maxX values for the region
|
|
1233
|
+
*
|
|
1234
|
+
* @param {number} resolution - The number of base pairs per bin
|
|
1235
|
+
* @param {import('../type').Scale} scale - The scale to use to calculate the currently visible tiles
|
|
1236
|
+
* @param {number} minX - The minimum x position of the tileset
|
|
1237
|
+
* @param {number} maxX - The maximum x position of the tileset
|
|
1238
|
+
* @param {number=} pixelsPerTile - The number of pixels per tile
|
|
1239
|
+
* @returns {number[]} The indices of the tiles that should be visible
|
|
1240
|
+
*/
|
|
1241
|
+
declare function calculateTilesFromResolution(resolution: number, scale: any, minX: number, maxX: number, pixelsPerTile?: number | undefined): number[];
|
|
1242
|
+
declare function calculateTileWidth(tilesetInfo: any, zoomLevel: any, binsPerTile: any): number;
|
|
1243
|
+
/**
|
|
1244
|
+
* Calculate the current zoom level.
|
|
1245
|
+
*/
|
|
1246
|
+
declare function calculateZoomLevel(scale: any, minX: any, maxX: any, binsPerTile: any): number;
|
|
1247
|
+
/**
|
|
1248
|
+
* Calculate the zoom level from a list of available resolutions
|
|
1249
|
+
*/
|
|
1250
|
+
declare function calculateZoomLevelFromResolutions(resolutions: any, scale: any): any;
|
|
1251
|
+
declare function fetchTilesDebounced(request: any, ...args: any[]): void;
|
|
1252
|
+
/**
|
|
1253
|
+
* Send a JSON request and mark it so that we can tell how many are in flight
|
|
1254
|
+
*
|
|
1255
|
+
* @param url: URL to fetch
|
|
1256
|
+
* @param callback: Callback to execute with content from fetch
|
|
1257
|
+
*/
|
|
1258
|
+
declare function json(url: any, callback: any, pubSub: any): Promise<any>;
|
|
1259
|
+
/**
|
|
1260
|
+
* Send a text request and mark it so that we can tell how many are in flight
|
|
1261
|
+
*
|
|
1262
|
+
* @param url: URL to fetch
|
|
1263
|
+
* @param callback: Callback to execute with content from fetch
|
|
1264
|
+
*/
|
|
1265
|
+
declare function text(url: any, callback: any, pubSub: any): Promise<any>;
|
|
1266
|
+
/**
|
|
1267
|
+
* Render 2D tile data. Convert the raw values to an array of
|
|
1268
|
+
* color values
|
|
1269
|
+
*
|
|
1270
|
+
* @param finished: A callback to let the caller know that the worker thread
|
|
1271
|
+
* has converted tileData to pixData
|
|
1272
|
+
* @param minVisibleValue: The minimum visible value (used for setting the color
|
|
1273
|
+
* scale)
|
|
1274
|
+
* @param maxVisibleValue: The maximum visible value
|
|
1275
|
+
* @param valueScaleType: Either 'log' or 'linear'
|
|
1276
|
+
* @param valueScaleDomain: The domain of the scale (the range is always [254,0])
|
|
1277
|
+
* @param colorScale: a 255 x 4 rgba array used as a color scale
|
|
1278
|
+
* @param synchronous: Render this tile synchronously or pass it on to the threadpool (which doesn't exist yet).
|
|
1279
|
+
* @param ignoreUpperRight: If this is a tile along the diagonal and there will
|
|
1280
|
+
* be mirrored tiles present ignore the upper right values
|
|
1281
|
+
* @param ignoreLowerLeft: If this is a tile along the diagonal and there will be
|
|
1282
|
+
* mirrored tiles present ignore the lower left values
|
|
1283
|
+
* @param {array} zeroValueColor: The color to use for rendering zero data values, [r, g, b, a].
|
|
1284
|
+
* @param {object} selectedRowsOptions Rendering options when using a `selectRows` track option.
|
|
1285
|
+
*/
|
|
1286
|
+
declare function tileDataToPixData(tile: any, valueScaleType: any, valueScaleDomain: any, pseudocount: any, colorScale: any, finished: any, ignoreUpperRight: any, ignoreLowerLeft: any, zeroValueColor: array, selectedRowsOptions: object): void;
|
|
1287
|
+
/**
|
|
1288
|
+
* Request a tilesetInfo for a track
|
|
1289
|
+
*
|
|
1290
|
+
* @param {string} server: The server where the data resides
|
|
1291
|
+
* @param {string} tilesetUid: The identifier for the dataset
|
|
1292
|
+
* @param {func} doneCb: A callback that gets called when the data is retrieved
|
|
1293
|
+
* @param {func} errorCb: A callback that gets called when there is an error
|
|
1294
|
+
*/
|
|
1295
|
+
declare function trackInfo(server: string, tilesetUid: string, doneCb: func, errorCb: func, pubSub: any): void;
|
|
1296
|
+
export { setupShowMousePosition as showMousePosition, api as tileProxy };
|
|
1297
|
+
//# sourceMappingURL=higlass-vendored.d.ts.map
|