loom-browser 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/loom.esm.js +27 -21
- package/dist/loom.esm.min.js +1 -1
- package/dist/loom.esm.min.js.map +1 -1
- package/dist/loom.js +27 -21
- package/dist/loom.min.js +1 -1
- package/dist/loom.min.js.map +1 -1
- package/dist/types/commandDispatcher.d.ts +22 -1
- package/dist/types/gtx/zstdWasm.d.ts +4 -1
- package/dist/types/gtx/zstdWasmInlined.d.ts +6 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/remoteProtocol.d.ts +2 -0
- package/package.json +8 -2
- package/dist/igv.d.ts +0 -667
- package/dist/igv.esm.js +0 -76708
- package/dist/igv.esm.min.js +0 -26
- package/dist/igv.esm.min.js.map +0 -1
- package/dist/igv.js +0 -76716
- package/dist/igv.min.js +0 -26
- package/dist/igv.min.js.map +0 -1
- package/dist/loom.d.ts +0 -667
- package/dist/types/agent/index.d.ts +0 -4
- package/dist/types/agent/stateProjection.d.ts +0 -115
- package/dist/types/agent/trackSelector.d.ts +0 -31
- package/dist/types/baseTrackCanvas.d.ts +0 -62
- package/dist/types/bigwig/binaryParser.d.ts +0 -25
- package/dist/types/bigwig/bpTree.d.ts +0 -40
- package/dist/types/bigwig/bwReader.d.ts +0 -69
- package/dist/types/bigwig/chromTree.d.ts +0 -28
- package/dist/types/bigwig/inflate.d.ts +0 -9
- package/dist/types/bigwig/rangeReader.d.ts +0 -48
- package/dist/types/bigwig/rpTree.d.ts +0 -27
- package/dist/types/dataSources/dynseqDataSource.d.ts +0 -20
- package/dist/types/dynseqRenderer.d.ts +0 -37
- package/dist/types/geneRenderer.d.ts +0 -17
- package/dist/types/geneThemes.d.ts +0 -11
- package/dist/types/geneTrackCanvas.d.ts +0 -46
- package/dist/types/renderTheme.d.ts +0 -72
- package/dist/types/renderThemePresets.d.ts +0 -16
- package/dist/types/rulerRenderer.d.ts +0 -14
- package/dist/types/rulerTrackCanvas.d.ts +0 -32
- package/dist/types/src/bigwig/index.d.ts +0 -66
- package/dist/types/src/canvasProvider.d.ts +0 -36
- package/dist/types/src/commandDispatcher.d.ts +0 -220
- package/dist/types/src/contextMenu.d.ts +0 -64
- package/dist/types/src/contextMenuProvider.d.ts +0 -25
- package/dist/types/src/data/cachedSequence.d.ts +0 -19
- package/dist/types/src/data/ucscApi.d.ts +0 -21
- package/dist/types/src/data/ucscSequence.d.ts +0 -19
- package/dist/types/src/dataLifecycle.d.ts +0 -16
- package/dist/types/src/dataSources/bigWigDataSource.d.ts +0 -24
- package/dist/types/src/dataSources/dataSourceCacheKey.d.ts +0 -9
- package/dist/types/src/dataSources/featureSourceFactory.d.ts +0 -46
- package/dist/types/src/dataSources/geneDataSource.d.ts +0 -16
- package/dist/types/src/dataSources/gtxDataSource.d.ts +0 -42
- package/dist/types/src/dataSources/sequenceDataSource.d.ts +0 -15
- package/dist/types/src/dataSources/textFeatureSource.d.ts +0 -63
- package/dist/types/src/decode/bed.d.ts +0 -64
- package/dist/types/src/decode/bedpe.d.ts +0 -36
- package/dist/types/src/decode/exonUtils.d.ts +0 -29
- package/dist/types/src/decode/gff.d.ts +0 -58
- package/dist/types/src/decode/interact.d.ts +0 -19
- package/dist/types/src/decode/ucsc.d.ts +0 -56
- package/dist/types/src/events.d.ts +0 -23
- package/dist/types/src/export/canvas2svg.d.ts +0 -166
- package/dist/types/src/export/index.d.ts +0 -2
- package/dist/types/src/featureCache.d.ts +0 -69
- package/dist/types/src/formats/featureParser.d.ts +0 -72
- package/dist/types/src/formats/formatDetection.d.ts +0 -46
- package/dist/types/src/genome/chromAlias.d.ts +0 -46
- package/dist/types/src/genome/chromSizes.d.ts +0 -53
- package/dist/types/src/genome/genome.d.ts +0 -51
- package/dist/types/src/genomeBrowser.d.ts +0 -189
- package/dist/types/src/gtx/fetchCoordinator.d.ts +0 -34
- package/dist/types/src/gtx/gtxReader.d.ts +0 -144
- package/dist/types/src/gtx/index.d.ts +0 -40
- package/dist/types/src/gtx/zstdWasm.d.ts +0 -22
- package/dist/types/src/headlessGenomeBrowser.d.ts +0 -450
- package/dist/types/src/index.d.ts +0 -123
- package/dist/types/src/intervalTree.d.ts +0 -56
- package/dist/types/src/io/binaryParser.d.ts +0 -25
- package/dist/types/src/io/index.d.ts +0 -7
- package/dist/types/src/io/rangeReader.d.ts +0 -48
- package/dist/types/src/locusUtils.d.ts +0 -37
- package/dist/types/src/pack.d.ts +0 -41
- package/dist/types/src/popupProvider.d.ts +0 -22
- package/dist/types/src/remoteProtocol.d.ts +0 -81
- package/dist/types/src/roi/index.d.ts +0 -3
- package/dist/types/src/roi/roiRenderer.d.ts +0 -24
- package/dist/types/src/roi/roiSet.d.ts +0 -41
- package/dist/types/src/sequence/sequenceUtils.d.ts +0 -44
- package/dist/types/src/session.d.ts +0 -55
- package/dist/types/src/stateProjection.d.ts +0 -115
- package/dist/types/src/tabix/index.d.ts +0 -48
- package/dist/types/src/themes/index.d.ts +0 -3
- package/dist/types/src/themes/renderTheme.d.ts +0 -86
- package/dist/types/src/themes/renderThemePresets.d.ts +0 -16
- package/dist/types/src/trackRegistry.d.ts +0 -81
- package/dist/types/src/trackSelector.d.ts +0 -31
- package/dist/types/src/tracks/annotation/annotationRenderer.d.ts +0 -17
- package/dist/types/src/tracks/annotation/annotationThemes.d.ts +0 -11
- package/dist/types/src/tracks/annotation/annotationTrackCanvas.d.ts +0 -58
- package/dist/types/src/tracks/annotation/index.d.ts +0 -4
- package/dist/types/src/tracks/axis/axisRenderer.d.ts +0 -19
- package/dist/types/src/tracks/axis/index.d.ts +0 -1
- package/dist/types/src/tracks/baseTrackCanvas.d.ts +0 -113
- package/dist/types/src/tracks/dynseq/dynseqRenderer.d.ts +0 -38
- package/dist/types/src/tracks/dynseq/index.d.ts +0 -1
- package/dist/types/src/tracks/index.d.ts +0 -7
- package/dist/types/src/tracks/interaction/index.d.ts +0 -4
- package/dist/types/src/tracks/interaction/interactionRenderer.d.ts +0 -52
- package/dist/types/src/tracks/interaction/interactionTrackCanvas.d.ts +0 -54
- package/dist/types/src/tracks/ruler/index.d.ts +0 -3
- package/dist/types/src/tracks/ruler/rulerRenderer.d.ts +0 -25
- package/dist/types/src/tracks/ruler/rulerTrackCanvas.d.ts +0 -43
- package/dist/types/src/tracks/sequence/index.d.ts +0 -5
- package/dist/types/src/tracks/sequence/sequenceRenderer.d.ts +0 -34
- package/dist/types/src/tracks/sequence/sequenceThemes.d.ts +0 -11
- package/dist/types/src/tracks/sequence/sequenceTrackCanvas.d.ts +0 -67
- package/dist/types/src/tracks/wig/index.d.ts +0 -5
- package/dist/types/src/tracks/wig/wigRenderer.d.ts +0 -15
- package/dist/types/src/tracks/wig/wigSummary.d.ts +0 -31
- package/dist/types/src/tracks/wig/wigThemes.d.ts +0 -15
- package/dist/types/src/tracks/wig/wigTrackCanvas.d.ts +0 -82
- package/dist/types/src/types.d.ts +0 -885
- package/dist/types/src/ui/components/LoomBrowserShell.d.ts +0 -52
- package/dist/types/src/ui/components/LoomChromosomeSelect.d.ts +0 -18
- package/dist/types/src/ui/components/LoomContextMenu.d.ts +0 -39
- package/dist/types/src/ui/components/LoomExportControls.d.ts +0 -13
- package/dist/types/src/ui/components/LoomInputDialog.d.ts +0 -27
- package/dist/types/src/ui/components/LoomLocusInput.d.ts +0 -18
- package/dist/types/src/ui/components/LoomNavbar.d.ts +0 -15
- package/dist/types/src/ui/components/LoomPopup.d.ts +0 -32
- package/dist/types/src/ui/components/LoomWindowSize.d.ts +0 -14
- package/dist/types/src/ui/components/LoomZoomControls.d.ts +0 -10
- package/dist/types/src/ui/index.d.ts +0 -21
- package/dist/types/src/ui/themes.d.ts +0 -14
- package/dist/types/src/worker/nodeWorkerProvider.d.ts +0 -28
- package/dist/types/src/worker/taskHandler.d.ts +0 -15
- package/dist/types/src/worker/webWorkerProvider.d.ts +0 -51
- package/dist/types/src/worker/workerScript.d.ts +0 -11
- package/dist/types/src/workerProvider.d.ts +0 -76
- package/dist/types/tabix/bgzBlockLoader.d.ts +0 -60
- package/dist/types/tabix/bgzf.d.ts +0 -43
- package/dist/types/tabix/tabixIndex.d.ts +0 -85
- package/dist/types/tabix/tabixReader.d.ts +0 -60
- package/dist/types/tabix/virtualOffset.d.ts +0 -41
- package/dist/types/test/src/mockCanvasProvider.d.ts +0 -67
- package/dist/types/test/src/testBedDecode.d.ts +0 -1
- package/dist/types/test/src/testCanvas2SVG.d.ts +0 -7
- package/dist/types/test/src/testChromAlias.d.ts +0 -1
- package/dist/types/test/src/testCommandDispatcher.d.ts +0 -1
- package/dist/types/test/src/testData.d.ts +0 -7
- package/dist/types/test/src/testDataLifecycle.d.ts +0 -1
- package/dist/types/test/src/testDataSourceCacheKey.d.ts +0 -1
- package/dist/types/test/src/testDataSources.d.ts +0 -5
- package/dist/types/test/src/testDecodeUcsc.d.ts +0 -1
- package/dist/types/test/src/testEvents.d.ts +0 -1
- package/dist/types/test/src/testFeatureCache.d.ts +0 -1
- package/dist/types/test/src/testFeatureParser.d.ts +0 -1
- package/dist/types/test/src/testFormatDetection.d.ts +0 -1
- package/dist/types/test/src/testGffDecode.d.ts +0 -1
- package/dist/types/test/src/testHeadlessBrowser.d.ts +0 -1
- package/dist/types/test/src/testInteractionDecoder.d.ts +0 -1
- package/dist/types/test/src/testIntervalTree.d.ts +0 -1
- package/dist/types/test/src/testLocusUtils.d.ts +0 -1
- package/dist/types/test/src/testPack.d.ts +0 -1
- package/dist/types/test/src/testROI.d.ts +0 -1
- package/dist/types/test/src/testRemoteProtocol.d.ts +0 -1
- package/dist/types/test/src/testRenderTheme.d.ts +0 -1
- package/dist/types/test/src/testSVGExport.d.ts +0 -5
- package/dist/types/test/src/testSequence.d.ts +0 -1
- package/dist/types/test/src/testSession.d.ts +0 -1
- package/dist/types/test/src/testTrackSelector.d.ts +0 -1
- package/dist/types/test/src/testTrackSerialize.d.ts +0 -1
- package/dist/types/test/src/testWigSummary.d.ts +0 -1
- package/dist/types/test/src/testWorkerDispatch.d.ts +0 -9
- package/dist/types/tracks/gene/geneRenderer.d.ts +0 -17
- package/dist/types/tracks/gene/geneThemes.d.ts +0 -11
- package/dist/types/tracks/gene/geneTrackCanvas.d.ts +0 -58
- package/dist/types/tracks/gene/index.d.ts +0 -4
- package/dist/types/ui/components/IgvBrowserShell.d.ts +0 -52
- package/dist/types/ui/components/IgvChromosomeSelect.d.ts +0 -18
- package/dist/types/ui/components/IgvExportControls.d.ts +0 -13
- package/dist/types/ui/components/IgvLocusInput.d.ts +0 -18
- package/dist/types/ui/components/IgvNavbar.d.ts +0 -15
- package/dist/types/ui/components/IgvWindowSize.d.ts +0 -14
- package/dist/types/ui/components/IgvZoomControls.d.ts +0 -10
- package/dist/types/wigRenderer.d.ts +0 -15
- package/dist/types/wigSummary.d.ts +0 -31
- package/dist/types/wigThemes.d.ts +0 -15
- package/dist/types/wigTrackCanvas.d.ts +0 -46
- package/dist/types/worker/decodeWig.d.ts +0 -20
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unified RenderTheme system — shadcn-style palette-driven theming.
|
|
3
|
-
*
|
|
4
|
-
* Users define a global palette (primary, secondary, background, foreground, etc.)
|
|
5
|
-
* and each track type knows how to derive its specific config defaults from that
|
|
6
|
-
* palette. Everything is overridable at three levels:
|
|
7
|
-
*
|
|
8
|
-
* 1. Palette-derived defaults (annotation.color = palette.primary)
|
|
9
|
-
* 2. Per-track-type overrides (theme.annotation.borderRadius = 3)
|
|
10
|
-
* 3. Per-track instance overrides (options.config.color = 'red')
|
|
11
|
-
*
|
|
12
|
-
* Renderers never see RenderTheme directly — they still consume AnnotationRenderConfig,
|
|
13
|
-
* WigRenderConfig, etc. The theme system produces those configs.
|
|
14
|
-
*/
|
|
15
|
-
import type { AnnotationRenderConfig, WigRenderConfig, RulerRenderConfig, SequenceRenderConfig, InteractionRenderConfig } from '../types';
|
|
16
|
-
/** Global color palette — the primary customization surface. */
|
|
17
|
-
export interface ThemePalette {
|
|
18
|
-
/** Main track color (CDS exons, wig bars, signal fill). */
|
|
19
|
-
primary: string;
|
|
20
|
-
/** Alternate strand, negative values. */
|
|
21
|
-
secondary: string;
|
|
22
|
-
/** Highlights, selections, active states. */
|
|
23
|
-
accent: string;
|
|
24
|
-
/** Track canvas background. */
|
|
25
|
-
background: string;
|
|
26
|
-
/** Text, labels, tick marks. */
|
|
27
|
-
foreground: string;
|
|
28
|
-
/** Subtle elements: baselines, introns, borders. */
|
|
29
|
-
muted: string;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Unified render theme. Defines a global palette, typography, and nucleotide
|
|
33
|
-
* colors. Each track type derives its config defaults from the palette, with
|
|
34
|
-
* optional per-track-type overrides.
|
|
35
|
-
*/
|
|
36
|
-
export interface RenderTheme {
|
|
37
|
-
palette: ThemePalette;
|
|
38
|
-
/** CSS font-family string. Default: 'sans-serif'. */
|
|
39
|
-
fontFamily: string;
|
|
40
|
-
/** Base font size in pixels. Default: 10. */
|
|
41
|
-
fontSize: number;
|
|
42
|
-
/** Nucleotide color mapping (A, C, G, T, N). */
|
|
43
|
-
nucleotideColors: Record<string, string>;
|
|
44
|
-
annotation?: Partial<AnnotationRenderConfig>;
|
|
45
|
-
wig?: Partial<WigRenderConfig>;
|
|
46
|
-
ruler?: Partial<RulerRenderConfig>;
|
|
47
|
-
sequence?: Partial<SequenceRenderConfig>;
|
|
48
|
-
interaction?: Partial<InteractionRenderConfig>;
|
|
49
|
-
}
|
|
50
|
-
/** Returns the default render theme matching classic igv.js appearance. */
|
|
51
|
-
export declare function defaultRenderTheme(): RenderTheme;
|
|
52
|
-
/**
|
|
53
|
-
* Deep-merge a partial theme into the defaults.
|
|
54
|
-
* If no overrides provided, returns the default theme.
|
|
55
|
-
*/
|
|
56
|
-
export declare function resolveTheme(overrides?: Partial<RenderTheme>): RenderTheme;
|
|
57
|
-
/**
|
|
58
|
-
* Resolve a full AnnotationRenderConfig from a theme + optional per-track overrides.
|
|
59
|
-
*
|
|
60
|
-
* Resolution: palette-derived defaults → theme.annotation overrides → per-track overrides.
|
|
61
|
-
*/
|
|
62
|
-
export declare function resolveAnnotationConfig(theme: RenderTheme, overrides?: Partial<AnnotationRenderConfig>): AnnotationRenderConfig;
|
|
63
|
-
/**
|
|
64
|
-
* Resolve a full WigRenderConfig from a theme + optional per-track overrides.
|
|
65
|
-
*
|
|
66
|
-
* Resolution: palette-derived defaults → theme.wig overrides → per-track overrides.
|
|
67
|
-
*/
|
|
68
|
-
export declare function resolveWigConfig(theme: RenderTheme, overrides?: Partial<WigRenderConfig>): WigRenderConfig;
|
|
69
|
-
/**
|
|
70
|
-
* Resolve a full RulerRenderConfig from a theme + optional per-track overrides.
|
|
71
|
-
*
|
|
72
|
-
* Resolution: palette-derived defaults → theme.ruler overrides → per-track overrides.
|
|
73
|
-
*/
|
|
74
|
-
export declare function resolveRulerConfig(theme: RenderTheme, overrides?: Partial<RulerRenderConfig>): RulerRenderConfig;
|
|
75
|
-
/**
|
|
76
|
-
* Resolve a full SequenceRenderConfig from a theme + optional per-track overrides.
|
|
77
|
-
*
|
|
78
|
-
* Resolution: palette-derived defaults → theme.sequence overrides → per-track overrides.
|
|
79
|
-
*/
|
|
80
|
-
export declare function resolveSequenceConfig(theme: RenderTheme, overrides?: Partial<SequenceRenderConfig>): SequenceRenderConfig;
|
|
81
|
-
/**
|
|
82
|
-
* Resolve a full InteractionRenderConfig from a theme + optional per-track overrides.
|
|
83
|
-
*
|
|
84
|
-
* Resolution: palette-derived defaults → theme.interaction overrides → per-track overrides.
|
|
85
|
-
*/
|
|
86
|
-
export declare function resolveInteractionConfig(theme: RenderTheme, overrides?: Partial<InteractionRenderConfig>): InteractionRenderConfig;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Built-in RenderTheme presets.
|
|
3
|
-
*
|
|
4
|
-
* These are Partial<RenderTheme> objects — pass them to resolveTheme() to get
|
|
5
|
-
* a fully resolved theme with defaults filled in.
|
|
6
|
-
*
|
|
7
|
-
* Usage:
|
|
8
|
-
* import {resolveTheme} from './renderTheme'
|
|
9
|
-
* import {modernRenderTheme} from './renderThemePresets'
|
|
10
|
-
* const theme = resolveTheme(modernRenderTheme)
|
|
11
|
-
*/
|
|
12
|
-
import type { RenderTheme } from './renderTheme';
|
|
13
|
-
/** Modern theme — blue/pink palette, rounded exons, system font. */
|
|
14
|
-
export declare const modernRenderTheme: Partial<RenderTheme>;
|
|
15
|
-
/** Dark theme — adapted for dark backgrounds, high contrast. */
|
|
16
|
-
export declare const darkRenderTheme: Partial<RenderTheme>;
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Track registry — extensible factory for creating tracks from session configs.
|
|
3
|
-
*
|
|
4
|
-
* Mirrors igv.js `trackFactory.ts` (`js/trackFactory.ts`), which uses a
|
|
5
|
-
* `Map<string, TrackCreator>` with type alias resolution and runtime
|
|
6
|
-
* registration via `registerTrackClass()` / `registerTrackCreatorFunction()`.
|
|
7
|
-
*
|
|
8
|
-
* Our implementation follows the same pattern: a central `Map` of creators,
|
|
9
|
-
* type aliases, and public registration functions. The key difference is that
|
|
10
|
-
* igv.js creators take `(config, browser)` and return a Track, whereas ours
|
|
11
|
-
* take `(trackConfig, context)` and return a `CreatedTrack` (track + data
|
|
12
|
-
* source + metadata) since data sources are first-class in our architecture.
|
|
13
|
-
*/
|
|
14
|
-
import type { Locus, Track, DataSource, DataSourceConfig, TrackSessionConfig, SequenceProvider } from './types';
|
|
15
|
-
import type { CanvasProvider } from './canvasProvider';
|
|
16
|
-
import type { WorkerProvider } from './workerProvider';
|
|
17
|
-
import type { RenderTheme } from './themes/renderTheme';
|
|
18
|
-
/** Context passed to every track creator function. */
|
|
19
|
-
export interface TrackCreatorContext {
|
|
20
|
-
locus: Locus;
|
|
21
|
-
canvasProvider: CanvasProvider;
|
|
22
|
-
workerProvider?: WorkerProvider;
|
|
23
|
-
theme?: Partial<RenderTheme>;
|
|
24
|
-
/** Sequence provider from the genome, used by sequence tracks. */
|
|
25
|
-
sequenceProvider?: SequenceProvider;
|
|
26
|
-
}
|
|
27
|
-
/** Result of creating a track — the track itself plus optional data source. */
|
|
28
|
-
export interface CreatedTrack {
|
|
29
|
-
track: Track;
|
|
30
|
-
dataSource: DataSource | null;
|
|
31
|
-
dataSourceConfig: DataSourceConfig | null;
|
|
32
|
-
name?: string;
|
|
33
|
-
order?: number;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Factory function that creates a track + data source from a session config.
|
|
37
|
-
*
|
|
38
|
-
* Mirrors igv.js `TrackCreator = (config, browser) => Track` but returns
|
|
39
|
-
* a richer result since we separate track rendering from data sourcing.
|
|
40
|
-
*/
|
|
41
|
-
export type TrackCreator = (trackConfig: TrackSessionConfig, context: TrackCreatorContext) => CreatedTrack;
|
|
42
|
-
/**
|
|
43
|
-
* Register a track creator for a given type string.
|
|
44
|
-
*
|
|
45
|
-
* Mirrors igv.js `registerTrackCreatorFunction()` (js/trackFactory.ts).
|
|
46
|
-
*/
|
|
47
|
-
export declare function registerTrackCreator(type: string, creator: TrackCreator): void;
|
|
48
|
-
/**
|
|
49
|
-
* Register a type alias so that e.g. "gene" resolves to "annotation".
|
|
50
|
-
*
|
|
51
|
-
* Mirrors igv.js alias resolution in `getTrack()` (js/trackFactory.ts lines 78-96)
|
|
52
|
-
* where switch/case maps "annotation"→"feature", "genes"→"feature", etc.
|
|
53
|
-
*/
|
|
54
|
-
export declare function registerTypeAlias(alias: string, canonicalType: string): void;
|
|
55
|
-
/**
|
|
56
|
-
* Look up a track creator by type (resolving aliases first).
|
|
57
|
-
*
|
|
58
|
-
* Mirrors igv.js `getTrack()` (js/trackFactory.ts) which resolves aliases
|
|
59
|
-
* then looks up in the `trackFunctions` Map.
|
|
60
|
-
*/
|
|
61
|
-
export declare function getTrackCreator(type: string): TrackCreator | undefined;
|
|
62
|
-
/**
|
|
63
|
-
* Return all known track type strings (canonical + aliases).
|
|
64
|
-
*
|
|
65
|
-
* Mirrors igv.js `knownTrackTypes()` (js/trackFactory.ts).
|
|
66
|
-
*/
|
|
67
|
-
export declare function knownTrackTypes(): Set<string>;
|
|
68
|
-
export declare function createDataSource(config: DataSourceConfig, workerProvider?: WorkerProvider): DataSource;
|
|
69
|
-
/**
|
|
70
|
-
* Create a track from a session config using the registry.
|
|
71
|
-
*
|
|
72
|
-
* This replaces the switch/case in the old `createTrackFromSession()`.
|
|
73
|
-
* Unknown types throw an error (mirrors igv.js behavior where `getTrack()`
|
|
74
|
-
* returns undefined and the browser logs a warning).
|
|
75
|
-
*/
|
|
76
|
-
export declare function createTrackFromConfig(trackConfig: TrackSessionConfig, locus: Locus, options?: {
|
|
77
|
-
canvasProvider?: CanvasProvider;
|
|
78
|
-
workerProvider?: WorkerProvider;
|
|
79
|
-
theme?: Partial<RenderTheme>;
|
|
80
|
-
sequenceProvider?: SequenceProvider;
|
|
81
|
-
}): CreatedTrack;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TrackSelector — SQL-ish WHERE clause for matching tracks by metadata.
|
|
3
|
-
*
|
|
4
|
-
* Selectors support matching on track ID, name (string or RegExp), type,
|
|
5
|
-
* and arbitrary metadata key-value pairs. All provided fields use AND semantics:
|
|
6
|
-
* a track must match every specified criterion.
|
|
7
|
-
*
|
|
8
|
-
* ```ts
|
|
9
|
-
* // Remove all ATAC-seq tracks
|
|
10
|
-
* browser.removeTracks({ where: { assay: 'ATAC-seq' } })
|
|
11
|
-
*
|
|
12
|
-
* // Find wig tracks from K562
|
|
13
|
-
* browser.findTracks({ type: 'wig', where: { biosample: 'K562' } })
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
|
-
import type { ManagedTrack } from './headlessGenomeBrowser';
|
|
17
|
-
/** Selector for matching tracks by ID, name, type, and/or metadata. */
|
|
18
|
-
export interface TrackSelector {
|
|
19
|
-
/** Exact match against track ID. */
|
|
20
|
-
id?: string;
|
|
21
|
-
/** String: case-insensitive substring match. RegExp: test against track name. */
|
|
22
|
-
name?: string | RegExp;
|
|
23
|
-
/** Exact match against track type (e.g. 'wig', 'annotation', 'interact'). */
|
|
24
|
-
type?: string;
|
|
25
|
-
/** Metadata key-value matching. Every entry must match (AND semantics). */
|
|
26
|
-
where?: Record<string, string>;
|
|
27
|
-
}
|
|
28
|
-
/** Test whether a single managed track matches all criteria in a selector. */
|
|
29
|
-
export declare function matchesSelector(mt: ManagedTrack, selector: TrackSelector): boolean;
|
|
30
|
-
/** Select all managed tracks matching a selector. */
|
|
31
|
-
export declare function selectTracks(tracks: readonly ManagedTrack[], selector: TrackSelector): ManagedTrack[];
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Standalone annotation feature renderer.
|
|
3
|
-
*
|
|
4
|
-
* Adapted from js/feature/render/renderFeature.ts but with no `this` context —
|
|
5
|
-
* all configuration is passed as explicit parameters.
|
|
6
|
-
*
|
|
7
|
-
* Renders gene, BED, GFF, and peak features with exon/UTR/CDS structure,
|
|
8
|
-
* intron lines, strand arrows, labels, and per-feature colors.
|
|
9
|
-
*/
|
|
10
|
-
import type { AnnotationFeature, AnnotationRenderConfig, RenderContext } from '../../types';
|
|
11
|
-
/**
|
|
12
|
-
* Render a set of annotation features onto a canvas context.
|
|
13
|
-
*
|
|
14
|
-
* Features should already have `.row` assigned (via `pack()`).
|
|
15
|
-
* The canvas should be sized and cleared before calling this.
|
|
16
|
-
*/
|
|
17
|
-
export declare function renderAnnotationTrack(ctx: CanvasRenderingContext2D, features: AnnotationFeature[], config: AnnotationRenderConfig, rc: RenderContext): void;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Preset render themes for annotation tracks.
|
|
3
|
-
*
|
|
4
|
-
* Each theme is a Partial<AnnotationRenderConfig> that can be spread over defaults.
|
|
5
|
-
* Usage: { ...defaultAnnotationRenderConfig(), ...modernTheme }
|
|
6
|
-
*/
|
|
7
|
-
import type { AnnotationRenderConfig } from '../../types';
|
|
8
|
-
/** Modern theme — softer colors, rounded exons, strand-based coloring. */
|
|
9
|
-
export declare const modernTheme: Partial<AnnotationRenderConfig>;
|
|
10
|
-
/** Dark theme — modern theme adapted for dark backgrounds. */
|
|
11
|
-
export declare const darkTheme: Partial<AnnotationRenderConfig>;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Canvas manager for rendering annotation features (gene, BED, GFF, peaks).
|
|
3
|
-
*
|
|
4
|
-
* Extends BaseTrackCanvas — canvas lifecycle (DPR, resize, attach/detach,
|
|
5
|
-
* background) is handled by the base class. This class only implements
|
|
6
|
-
* annotation-specific logic: feature packing, height computation, and rendering.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* const canvas = document.createElement('canvas')
|
|
10
|
-
* const track = new AnnotationTrackCanvas(canvas, { locus, features })
|
|
11
|
-
* track.attachTo(containerDiv)
|
|
12
|
-
*/
|
|
13
|
-
import type { AnnotationFeature, AnnotationRenderConfig, Locus, RenderContext, AnnotationTrackSessionConfig, HitTestResult, AxisInfo, ContextMenuItem } from '../../types';
|
|
14
|
-
import type { CanvasProvider } from '../../canvasProvider';
|
|
15
|
-
import type { WorkerProvider } from '../../workerProvider';
|
|
16
|
-
import type { RenderTheme } from '../../themes/renderTheme';
|
|
17
|
-
import { BaseTrackCanvas } from '../baseTrackCanvas';
|
|
18
|
-
export type { Locus } from '../../types';
|
|
19
|
-
export interface AnnotationTrackCanvasOptions {
|
|
20
|
-
locus: Locus;
|
|
21
|
-
features: AnnotationFeature[];
|
|
22
|
-
/** Per-track config overrides. Applied after theme-derived defaults. */
|
|
23
|
-
config?: Partial<AnnotationRenderConfig>;
|
|
24
|
-
/** Unified render theme. Palette drives default colors/fonts. */
|
|
25
|
-
theme?: Partial<RenderTheme>;
|
|
26
|
-
/** Fixed pixel height. If not set, computed from row count. */
|
|
27
|
-
height?: number;
|
|
28
|
-
/** Background color. Default: palette.background. */
|
|
29
|
-
background?: string;
|
|
30
|
-
/** Canvas provider for environment abstraction. Default: DOMCanvasProvider. */
|
|
31
|
-
canvasProvider?: CanvasProvider;
|
|
32
|
-
/** Worker provider for offloading CPU-intensive tasks (packing). */
|
|
33
|
-
workerProvider?: WorkerProvider;
|
|
34
|
-
/** Track name for axis label. */
|
|
35
|
-
name?: string;
|
|
36
|
-
}
|
|
37
|
-
export declare class AnnotationTrackCanvas extends BaseTrackCanvas<AnnotationRenderConfig> {
|
|
38
|
-
private features;
|
|
39
|
-
private fixedHeight;
|
|
40
|
-
private background;
|
|
41
|
-
private _name;
|
|
42
|
-
private workerProvider?;
|
|
43
|
-
/** Most recently packed features, available after render(). */
|
|
44
|
-
private packedFeatures;
|
|
45
|
-
/** Whether packedFeatures was pre-computed by async worker (skip sync pack in computeHeight). */
|
|
46
|
-
private packedReady;
|
|
47
|
-
readonly type = "annotation";
|
|
48
|
-
constructor(canvas: HTMLCanvasElement, options: AnnotationTrackCanvasOptions);
|
|
49
|
-
/** Update features and re-render. Dispatches async pack when workerProvider is set. */
|
|
50
|
-
setFeatures(features: AnnotationFeature[]): void;
|
|
51
|
-
protected computeHeight(_width: number): number;
|
|
52
|
-
protected getBackground(): string;
|
|
53
|
-
protected doRender(ctx: CanvasRenderingContext2D, _width: number, _height: number, rc: RenderContext): void;
|
|
54
|
-
getAxisInfo(): AxisInfo | undefined;
|
|
55
|
-
getContextMenuItems(_x: number, _y: number): ContextMenuItem[];
|
|
56
|
-
hitTest(x: number, y: number): HitTestResult<AnnotationFeature>[];
|
|
57
|
-
serializeConfig(theme: RenderTheme): AnnotationTrackSessionConfig;
|
|
58
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Stateless axis renderers for the left-hand axis column.
|
|
3
|
-
*
|
|
4
|
-
* These are pure canvas renderers — they take a 2D context, axis info, and
|
|
5
|
-
* dimensions, and paint the axis. No DOM, no state, no side effects.
|
|
6
|
-
*
|
|
7
|
-
* Two variants:
|
|
8
|
-
* - renderQuantitativeAxis: tick marks + data range labels for numeric tracks (wig)
|
|
9
|
-
* - renderLabelAxis: centered rotated text label for annotation tracks (gene)
|
|
10
|
-
*/
|
|
11
|
-
import type { AxisInfo } from '../../types';
|
|
12
|
-
/** Format a number for axis labels (ported from igv.js paintAxis.ts). */
|
|
13
|
-
export declare function prettyPrintNumber(n: number): string;
|
|
14
|
-
export declare function renderQuantitativeAxis(ctx: CanvasRenderingContext2D, info: AxisInfo, width: number, height: number): void;
|
|
15
|
-
/**
|
|
16
|
-
* Paint a label-only axis (e.g., gene track name).
|
|
17
|
-
* Renders a vertically-rotated centered text label.
|
|
18
|
-
*/
|
|
19
|
-
export declare function renderLabelAxis(ctx: CanvasRenderingContext2D, info: AxisInfo, width: number, height: number): void;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { renderQuantitativeAxis, renderLabelAxis, prettyPrintNumber } from './axisRenderer';
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base class for canvas-based genomic track renderers.
|
|
3
|
-
*
|
|
4
|
-
* Handles all shared canvas lifecycle: DPR scaling, sizing, resize observation,
|
|
5
|
-
* attach/detach, background fill, and RenderContext construction.
|
|
6
|
-
*
|
|
7
|
-
* Subclasses implement:
|
|
8
|
-
* - type (track type identifier)
|
|
9
|
-
* - computeHeight(width) — return CSS pixel height for current state
|
|
10
|
-
* - getBackground() — return background fill color
|
|
11
|
-
* - doRender(ctx, width, height, rc) — the actual drawing logic
|
|
12
|
-
*
|
|
13
|
-
* This eliminates ~80 lines of identical boilerplate per track type.
|
|
14
|
-
*/
|
|
15
|
-
import type { Locus, RenderContext, Track, TrackSessionConfig, HitTestResult, ContextMenuItem } from '../types';
|
|
16
|
-
import type { RenderTheme } from '../themes/renderTheme';
|
|
17
|
-
import type { CanvasProvider } from '../canvasProvider';
|
|
18
|
-
export declare abstract class BaseTrackCanvas<TConfig> implements Track {
|
|
19
|
-
protected _canvas: HTMLCanvasElement;
|
|
20
|
-
protected _locus: Locus;
|
|
21
|
-
protected _config: TConfig;
|
|
22
|
-
protected _height: number;
|
|
23
|
-
protected canvasProvider: CanvasProvider;
|
|
24
|
-
private resizeObserver;
|
|
25
|
-
private container;
|
|
26
|
-
private _renderSuspended;
|
|
27
|
-
private _renderPending;
|
|
28
|
-
private _error;
|
|
29
|
-
private _zoomedOut;
|
|
30
|
-
/**
|
|
31
|
-
* Visibility window in base pairs. When the viewport spans more than this
|
|
32
|
-
* many bp, data is not fetched and "Zoom in to see features" is shown.
|
|
33
|
-
* Mirrors igv.js TrackBase.visibilityWindow (js/trackViewport.ts checkZoomIn).
|
|
34
|
-
*
|
|
35
|
-
* Set to undefined or 0 to disable (always fetch). Set > 0 to enable.
|
|
36
|
-
*/
|
|
37
|
-
visibilityWindow?: number;
|
|
38
|
-
abstract readonly type: string;
|
|
39
|
-
get canvas(): HTMLCanvasElement;
|
|
40
|
-
get locus(): Locus;
|
|
41
|
-
get height(): number;
|
|
42
|
-
/** Current track config (read-only). Use setConfig() to update. */
|
|
43
|
-
get config(): TConfig;
|
|
44
|
-
constructor(canvas: HTMLCanvasElement, locus: Locus, config: TConfig, canvasProvider?: CanvasProvider);
|
|
45
|
-
/** Update locus and re-render. */
|
|
46
|
-
setLocus(locus: Locus): void;
|
|
47
|
-
/** Merge partial config and re-render. */
|
|
48
|
-
setConfig(config: Partial<TConfig>): void;
|
|
49
|
-
/** Suspend rendering — calls to render() will be deferred until resumeRendering(). */
|
|
50
|
-
suspendRendering(): void;
|
|
51
|
-
/** Resume rendering. If render() was called while suspended, flushes now. */
|
|
52
|
-
resumeRendering(): void;
|
|
53
|
-
/** Set an error state to render on the track canvas. Pass null to clear. */
|
|
54
|
-
setError(error: Error | null): void;
|
|
55
|
-
/**
|
|
56
|
-
* Mark this track as zoomed out beyond its visibility window.
|
|
57
|
-
* When true, render() shows "Zoom in to see features" instead of track content.
|
|
58
|
-
* Called by HeadlessGenomeBrowser during data lifecycle.
|
|
59
|
-
*/
|
|
60
|
-
setZoomedOut(zoomedOut: boolean): void;
|
|
61
|
-
/**
|
|
62
|
-
* Hit-test at canvas-relative pixel coordinates.
|
|
63
|
-
* Returns features at that point with pre-formatted popup data.
|
|
64
|
-
* Default: empty (no interactive features). Subclasses override.
|
|
65
|
-
*/
|
|
66
|
-
hitTest(_x: number, _y: number): HitTestResult[];
|
|
67
|
-
/**
|
|
68
|
-
* Return context menu items for a right-click at canvas-relative coordinates.
|
|
69
|
-
* Default: undefined (no track-specific items). Subclasses override.
|
|
70
|
-
*/
|
|
71
|
-
getContextMenuItems(_x: number, _y: number): ContextMenuItem[] | undefined;
|
|
72
|
-
/**
|
|
73
|
-
* Attach the canvas to a container element.
|
|
74
|
-
* Appends the canvas and sets up a ResizeObserver for automatic re-renders.
|
|
75
|
-
*/
|
|
76
|
-
attachTo(container: HTMLElement): void;
|
|
77
|
-
/** Detach from container and stop observing resizes. */
|
|
78
|
-
detach(): void;
|
|
79
|
-
/** Render the track. Handles DPR, sizing, background, then delegates to doRender(). */
|
|
80
|
-
render(): void;
|
|
81
|
-
/** Draw a centered error message on the canvas. */
|
|
82
|
-
protected renderError(ctx: CanvasRenderingContext2D, width: number, height: number): void;
|
|
83
|
-
/**
|
|
84
|
-
* Draw a centered "Zoom in to see features" notice.
|
|
85
|
-
* Mirrors igv.js TrackViewport.createZoomInNotice (js/trackViewport.ts).
|
|
86
|
-
*/
|
|
87
|
-
protected renderZoomInNotice(ctx: CanvasRenderingContext2D, width: number, height: number): void;
|
|
88
|
-
/**
|
|
89
|
-
* Render this track onto an arbitrary context (e.g. Canvas2SVG for SVG export).
|
|
90
|
-
* Skips DPR scaling and canvas-element lifecycle — draws directly at the given
|
|
91
|
-
* dimensions using the track's current locus and state.
|
|
92
|
-
*
|
|
93
|
-
* Mirrors igv.js TrackViewport.renderSVGContext() which calls track.draw()
|
|
94
|
-
* with a C2S context (js/trackViewport.ts lines 525-579).
|
|
95
|
-
*/
|
|
96
|
-
renderToContext(ctx: CanvasRenderingContext2D, width: number, height: number): void;
|
|
97
|
-
/**
|
|
98
|
-
* Compute the track height in CSS pixels for the current state.
|
|
99
|
-
* Called at the start of each render(). The width parameter is provided
|
|
100
|
-
* in case height depends on layout (e.g., gene packing).
|
|
101
|
-
*/
|
|
102
|
-
protected abstract computeHeight(width: number): number;
|
|
103
|
-
/** Return the background fill color for the canvas. */
|
|
104
|
-
protected abstract getBackground(): string;
|
|
105
|
-
/** Perform the actual track-specific rendering onto the prepared canvas. */
|
|
106
|
-
protected abstract doRender(ctx: CanvasRenderingContext2D, width: number, height: number, rc: RenderContext): void;
|
|
107
|
-
/**
|
|
108
|
-
* Serialize this track's config for session save/restore.
|
|
109
|
-
* Each subclass diffs its config against theme defaults and returns
|
|
110
|
-
* a typed TrackSessionConfig with only overridden fields.
|
|
111
|
-
*/
|
|
112
|
-
abstract serializeConfig(theme: RenderTheme): TrackSessionConfig;
|
|
113
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dynamic sequence (dynseq) renderer for wig tracks.
|
|
3
|
-
*
|
|
4
|
-
* Renders DNA base letters (A, C, G, T, N) as filled glyphs whose height
|
|
5
|
-
* is proportional to the wig signal value. Only activates at high zoom
|
|
6
|
-
* (bpPerPixel < 2) where individual bases are resolvable.
|
|
7
|
-
*
|
|
8
|
-
* Ported from js/feature/wigTrack.ts renderDynSeq/drawLetterGlyph/drawSVGPath.
|
|
9
|
-
*/
|
|
10
|
-
/** Default nucleotide color scheme matching igv.js. */
|
|
11
|
-
export declare const defaultNucleotideColors: Readonly<Record<string, string>>;
|
|
12
|
-
/**
|
|
13
|
-
* Draw a single DNA base letter as a filled glyph.
|
|
14
|
-
*
|
|
15
|
-
* @param ctx - Canvas context
|
|
16
|
-
* @param base - The base character (A, C, G, T, N)
|
|
17
|
-
* @param x - Left edge pixel position
|
|
18
|
-
* @param y - Top edge pixel position
|
|
19
|
-
* @param width - Glyph width in pixels
|
|
20
|
-
* @param height - Glyph height in pixels
|
|
21
|
-
* @param color - Fill color
|
|
22
|
-
* @param flipVertical - Flip the glyph vertically (for negative values)
|
|
23
|
-
*/
|
|
24
|
-
export declare function drawLetterGlyph(ctx: CanvasRenderingContext2D, base: string, x: number, y: number, width: number, height: number, color: string, flipVertical?: boolean, backgroundColor?: string): void;
|
|
25
|
-
/**
|
|
26
|
-
* Render a single wig feature as dynseq (DNA base glyphs scaled by value).
|
|
27
|
-
*
|
|
28
|
-
* @param ctx - Canvas context
|
|
29
|
-
* @param sequence - DNA sequence string for this feature's region
|
|
30
|
-
* @param x - Left edge pixel position of the feature
|
|
31
|
-
* @param width - Pixel width of the feature
|
|
32
|
-
* @param y - Y pixel of the data value
|
|
33
|
-
* @param y0 - Y pixel of the zero line
|
|
34
|
-
* @param value - The wig data value (for determining negative/flip)
|
|
35
|
-
* @param colors - Nucleotide color map
|
|
36
|
-
* @param backgroundColor - Background color for glyph cutouts (e.g. hole in 'A')
|
|
37
|
-
*/
|
|
38
|
-
export declare function renderDynSeqFeature(ctx: CanvasRenderingContext2D, sequence: string, x: number, width: number, y: number, y0: number, value: number, colors?: Readonly<Record<string, string>>, backgroundColor?: string): void;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { renderDynSeqFeature, drawLetterGlyph, defaultNucleotideColors } from './dynseqRenderer';
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { renderInteractionTrack, positionString } from './interactionRenderer';
|
|
2
|
-
export type { DrawnInteractionFeature, InteractionDrawState } from './interactionRenderer';
|
|
3
|
-
export { InteractionTrackCanvas } from './interactionTrackCanvas';
|
|
4
|
-
export type { InteractionTrackCanvasOptions } from './interactionTrackCanvas';
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Stateless renderer for interaction (arc/BEDPE) tracks.
|
|
3
|
-
*
|
|
4
|
-
* Draws pairwise genomic contacts as arcs connecting two regions.
|
|
5
|
-
* Two display modes:
|
|
6
|
-
* - "nested": arc height proportional to genomic distance (ctx.arc)
|
|
7
|
-
* - "proportional": arc height proportional to score/value (ctx.ellipse)
|
|
8
|
-
*
|
|
9
|
-
* Inter-chromosome interactions are drawn as colored rectangles.
|
|
10
|
-
*
|
|
11
|
-
* Port of js/feature/interactionTrack.ts draw methods.
|
|
12
|
-
* Layer 2 (Track Canvas): uses CanvasRenderingContext2D, no DOM.
|
|
13
|
-
*/
|
|
14
|
-
import type { InteractionFeature, InteractionRenderConfig, RenderContext } from '../../types';
|
|
15
|
-
/** Draw state stored on features during rendering for hit-testing. */
|
|
16
|
-
export type InteractionDrawState = NestedDrawState | ProportionalDrawState | RectDrawState;
|
|
17
|
-
interface NestedDrawState {
|
|
18
|
-
type: 'nested';
|
|
19
|
-
xc: number;
|
|
20
|
-
yc: number;
|
|
21
|
-
r: number;
|
|
22
|
-
}
|
|
23
|
-
interface ProportionalDrawState {
|
|
24
|
-
type: 'proportional';
|
|
25
|
-
xc: number;
|
|
26
|
-
yc: number;
|
|
27
|
-
radiusX: number;
|
|
28
|
-
radiusY: number;
|
|
29
|
-
}
|
|
30
|
-
interface RectDrawState {
|
|
31
|
-
type: 'rect';
|
|
32
|
-
x: number;
|
|
33
|
-
y: number;
|
|
34
|
-
w: number;
|
|
35
|
-
h: number;
|
|
36
|
-
}
|
|
37
|
-
/** Feature with transient draw state attached during rendering. */
|
|
38
|
-
export interface DrawnInteractionFeature extends InteractionFeature {
|
|
39
|
-
drawState?: InteractionDrawState;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Render interaction features onto a canvas context.
|
|
43
|
-
*
|
|
44
|
-
* Stateless: all state is passed in, no side effects beyond canvas drawing
|
|
45
|
-
* and attaching drawState to features for hit-testing.
|
|
46
|
-
*/
|
|
47
|
-
export declare function renderInteractionTrack(ctx: CanvasRenderingContext2D, features: DrawnInteractionFeature[], config: InteractionRenderConfig, rc: RenderContext): void;
|
|
48
|
-
/**
|
|
49
|
-
* Format a genomic position for popup display.
|
|
50
|
-
*/
|
|
51
|
-
export declare function positionString(chr: string, start: number, end: number, strand?: string): string;
|
|
52
|
-
export {};
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Canvas manager for rendering interaction (arc/BEDPE) tracks.
|
|
3
|
-
*
|
|
4
|
-
* Extends BaseTrackCanvas — canvas lifecycle is handled by the base class.
|
|
5
|
-
* This class implements interaction-specific logic: arc rendering, hit-testing,
|
|
6
|
-
* and popup data.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* const canvas = document.createElement('canvas')
|
|
10
|
-
* const track = new InteractionTrackCanvas(canvas, { locus, features: [] })
|
|
11
|
-
* track.attachTo(containerDiv)
|
|
12
|
-
*/
|
|
13
|
-
import type { InteractionFeature, InteractionRenderConfig, Locus, RenderContext, InteractionTrackSessionConfig, HitTestResult, AxisInfo, ContextMenuItem, NumericState } from '../../types';
|
|
14
|
-
import type { CanvasProvider } from '../../canvasProvider';
|
|
15
|
-
import type { RenderTheme } from '../../themes/renderTheme';
|
|
16
|
-
import { BaseTrackCanvas } from '../baseTrackCanvas';
|
|
17
|
-
export interface InteractionTrackCanvasOptions {
|
|
18
|
-
locus: Locus;
|
|
19
|
-
features: InteractionFeature[];
|
|
20
|
-
/** Per-track config overrides. Applied after theme-derived defaults. */
|
|
21
|
-
config?: Partial<InteractionRenderConfig>;
|
|
22
|
-
/** Unified render theme. Palette drives default colors/fonts. */
|
|
23
|
-
theme?: Partial<RenderTheme>;
|
|
24
|
-
/** Background color. Overrides config.background if set. */
|
|
25
|
-
background?: string;
|
|
26
|
-
/** Canvas provider for environment abstraction. Default: DOMCanvasProvider. */
|
|
27
|
-
canvasProvider?: CanvasProvider;
|
|
28
|
-
/** Track name for axis label. */
|
|
29
|
-
name?: string;
|
|
30
|
-
}
|
|
31
|
-
export declare class InteractionTrackCanvas extends BaseTrackCanvas<InteractionRenderConfig> {
|
|
32
|
-
private features;
|
|
33
|
-
private _name;
|
|
34
|
-
readonly type = "interact";
|
|
35
|
-
constructor(canvas: HTMLCanvasElement, options: InteractionTrackCanvasOptions);
|
|
36
|
-
/** Update features and re-render. */
|
|
37
|
-
setFeatures(features: InteractionFeature[]): void;
|
|
38
|
-
protected computeHeight(_width: number): number;
|
|
39
|
-
protected getBackground(): string;
|
|
40
|
-
protected doRender(ctx: CanvasRenderingContext2D, _width: number, _height: number, rc: RenderContext): void;
|
|
41
|
-
/** Hit-test: find features at canvas-relative pixel coordinates. */
|
|
42
|
-
hitTest(x: number, y: number): HitTestResult<InteractionFeature>[];
|
|
43
|
-
private buildPopupData;
|
|
44
|
-
/** Serialize config for session save/restore, diffed against theme defaults. */
|
|
45
|
-
serializeConfig(theme: RenderTheme): InteractionTrackSessionConfig;
|
|
46
|
-
/** Return axis info for proportional display mode. */
|
|
47
|
-
getAxisInfo(): AxisInfo | undefined;
|
|
48
|
-
/** Context menu items for arc display settings. */
|
|
49
|
-
getContextMenuItems(_x: number, _y: number): ContextMenuItem[];
|
|
50
|
-
/** Return numeric state for proportional mode (data range, log scale). */
|
|
51
|
-
getNumericState(): NumericState | undefined;
|
|
52
|
-
/** Render onto an arbitrary context (e.g. SVG export). */
|
|
53
|
-
renderToContext(ctx: CanvasRenderingContext2D, width: number, height: number): void;
|
|
54
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Stateless ruler track renderer.
|
|
3
|
-
*
|
|
4
|
-
* Draws genomic coordinate tick marks and labels onto a canvas context.
|
|
5
|
-
* Ported from js/rulerTrack.ts but with no igv.js dependencies.
|
|
6
|
-
*/
|
|
7
|
-
import type { RulerRenderConfig, RenderContext } from '../../types';
|
|
8
|
-
import type { CumulativeOffsets } from '../../genome/chromSizes';
|
|
9
|
-
/**
|
|
10
|
-
* Render a genomic coordinate ruler onto a canvas context.
|
|
11
|
-
*
|
|
12
|
-
* Stateless — all state is passed as parameters.
|
|
13
|
-
* Draws tick marks, labels with SI-prefix units, and a baseline.
|
|
14
|
-
*/
|
|
15
|
-
export declare function renderRulerTrack(ctx: CanvasRenderingContext2D, config: RulerRenderConfig, rc: RenderContext): void;
|
|
16
|
-
/** Whole genome context needed by the WG ruler renderer. */
|
|
17
|
-
export interface WholeGenomeRulerContext {
|
|
18
|
-
cumulativeOffsets: CumulativeOffsets;
|
|
19
|
-
chromSizes: Record<string, number>;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Render a whole genome ruler showing chromosome rectangles with labels and dividers.
|
|
23
|
-
* Port of js/rulerTrack.ts drawWholeGenome() + renderChromosomeRect().
|
|
24
|
-
*/
|
|
25
|
-
export declare function renderWholeGenomeRuler(ctx: CanvasRenderingContext2D, config: RulerRenderConfig, rc: RenderContext, wg: WholeGenomeRulerContext): void;
|