loom-browser 0.0.3 → 0.0.4
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 +28 -3
- package/dist/loom-react.esm.js +13290 -0
- package/dist/loom-react.esm.min.js +2 -0
- package/dist/loom-react.esm.min.js.map +1 -0
- package/dist/loom.esm.js +166 -147
- package/dist/loom.esm.min.js +1 -1
- package/dist/loom.esm.min.js.map +1 -1
- package/dist/loom.js +165 -148
- package/dist/loom.min.js +1 -1
- package/dist/loom.min.js.map +1 -1
- package/dist/tsconfig.src.tsbuildinfo +1 -0
- package/dist/types/headlessGenomeBrowser.d.ts +8 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/react/GenomeBrowserContext.d.ts +6 -0
- package/dist/types/react/LoomBrowser.d.ts +86 -0
- package/dist/types/react/hooks/index.d.ts +3 -0
- package/dist/types/react/hooks/useBrowserEvent.d.ts +7 -0
- package/dist/types/react/hooks/useGenomeBrowser.d.ts +7 -0
- package/dist/types/react/hooks/useLocus.d.ts +11 -0
- package/dist/types/react/hooks/useTrackManager.d.ts +11 -0
- package/dist/types/react/index.d.ts +7 -0
- package/dist/types/react/tracks/BedTrack.d.ts +14 -0
- package/dist/types/react/tracks/GeneTrack.d.ts +14 -0
- package/dist/types/react/tracks/GtxTrack.d.ts +13 -0
- package/dist/types/react/tracks/InteractionTrack.d.ts +12 -0
- package/dist/types/react/tracks/RulerTrack.d.ts +6 -0
- package/dist/types/react/tracks/SequenceTrack.d.ts +6 -0
- package/dist/types/react/tracks/WigTrack.d.ts +12 -0
- package/dist/types/react/tracks/index.d.ts +14 -0
- package/dist/types/tracks/annotation/annotationTrackCanvas.d.ts +1 -0
- package/dist/types/tracks/baseTrackCanvas.d.ts +2 -0
- package/dist/types/tracks/interaction/interactionTrackCanvas.d.ts +1 -0
- package/dist/types/tracks/ruler/rulerTrackCanvas.d.ts +1 -0
- package/dist/types/tracks/sequence/sequenceTrackCanvas.d.ts +1 -0
- package/dist/types/tracks/wig/wigTrackCanvas.d.ts +1 -0
- package/dist/types/types.d.ts +2 -0
- package/dist/types/ui/components/LoomBrowserShell.d.ts +9 -1
- package/package.json +20 -1
package/dist/loom.esm.js
CHANGED
|
@@ -1294,6 +1294,11 @@ class AnnotationTrackCanvas extends BaseTrackCanvas {
|
|
|
1294
1294
|
}
|
|
1295
1295
|
return results;
|
|
1296
1296
|
}
|
|
1297
|
+
setTheme(theme) {
|
|
1298
|
+
this._config = resolveAnnotationConfig(theme);
|
|
1299
|
+
this.background = theme.palette.background;
|
|
1300
|
+
this.render();
|
|
1301
|
+
}
|
|
1297
1302
|
serializeConfig(theme) {
|
|
1298
1303
|
const defaults = resolveAnnotationConfig(theme);
|
|
1299
1304
|
const overrides = {};
|
|
@@ -1615,6 +1620,10 @@ class RulerTrackCanvas extends BaseTrackCanvas {
|
|
|
1615
1620
|
renderRulerTrack(ctx, this.config, rc);
|
|
1616
1621
|
}
|
|
1617
1622
|
}
|
|
1623
|
+
setTheme(theme) {
|
|
1624
|
+
this._config = resolveRulerConfig(theme);
|
|
1625
|
+
this.render();
|
|
1626
|
+
}
|
|
1618
1627
|
serializeConfig(theme) {
|
|
1619
1628
|
const defaults = resolveRulerConfig(theme);
|
|
1620
1629
|
const overrides = {};
|
|
@@ -2669,6 +2678,11 @@ class WigTrackCanvas extends BaseTrackCanvas {
|
|
|
2669
2678
|
}
|
|
2670
2679
|
return [];
|
|
2671
2680
|
}
|
|
2681
|
+
setTheme(theme) {
|
|
2682
|
+
const dataRange = this._config.dataRange;
|
|
2683
|
+
this._config = { ...resolveWigConfig(theme), dataRange };
|
|
2684
|
+
this.render();
|
|
2685
|
+
}
|
|
2672
2686
|
serializeConfig(theme) {
|
|
2673
2687
|
const defaults = resolveWigConfig(theme);
|
|
2674
2688
|
const overrides = {};
|
|
@@ -5252,6 +5266,11 @@ class SequenceTrackCanvas extends BaseTrackCanvas {
|
|
|
5252
5266
|
doRender(ctx, _width, _height, rc) {
|
|
5253
5267
|
renderSequenceTrack(ctx, this._sequence, this._config, rc);
|
|
5254
5268
|
}
|
|
5269
|
+
setTheme(theme) {
|
|
5270
|
+
this._config = resolveSequenceConfig(theme);
|
|
5271
|
+
this._theme = theme;
|
|
5272
|
+
this.render();
|
|
5273
|
+
}
|
|
5255
5274
|
serializeConfig(theme) {
|
|
5256
5275
|
const defaults = resolveSequenceConfig(theme);
|
|
5257
5276
|
const overrides = {};
|
|
@@ -9473,6 +9492,10 @@ class InteractionTrackCanvas extends BaseTrackCanvas {
|
|
|
9473
9492
|
data.push({ name: 'Type', value: feature.type });
|
|
9474
9493
|
return data;
|
|
9475
9494
|
}
|
|
9495
|
+
setTheme(theme) {
|
|
9496
|
+
this._config = resolveInteractionConfig(theme);
|
|
9497
|
+
this.render();
|
|
9498
|
+
}
|
|
9476
9499
|
/** Serialize config for session save/restore, diffed against theme defaults. */
|
|
9477
9500
|
serializeConfig(theme) {
|
|
9478
9501
|
const resolved = resolveInteractionConfig(resolveTheme(theme));
|
|
@@ -10445,6 +10468,7 @@ const BrowserEvent = {
|
|
|
10445
10468
|
ROIChanged: 'roichanged',
|
|
10446
10469
|
ROIClick: 'roiclick',
|
|
10447
10470
|
ROIContextMenu: 'roicontextmenu',
|
|
10471
|
+
ThemeChanged: 'themechange',
|
|
10448
10472
|
};
|
|
10449
10473
|
/** Generate a unique track ID: "{type}-{counter}" or "track-{counter}" if type is unknown. */
|
|
10450
10474
|
let nextTrackId = 0;
|
|
@@ -10452,6 +10476,7 @@ function generateTrackId(type) {
|
|
|
10452
10476
|
return `${type !== null && type !== void 0 ? type : 'track'}-${nextTrackId++}`;
|
|
10453
10477
|
}
|
|
10454
10478
|
class HeadlessGenomeBrowser {
|
|
10479
|
+
get theme() { return this._theme; }
|
|
10455
10480
|
get locus() { return this._locus; }
|
|
10456
10481
|
get viewportWidth() { return this._viewportWidth; }
|
|
10457
10482
|
/** Agent-friendly state projection manager. Lazily created on first access. */
|
|
@@ -10477,7 +10502,7 @@ class HeadlessGenomeBrowser {
|
|
|
10477
10502
|
this.workerProvider = options.workerProvider;
|
|
10478
10503
|
this.popupProvider = (_g = options.popupProvider) !== null && _g !== void 0 ? _g : undefined;
|
|
10479
10504
|
this.contextMenuProvider = (_h = options.contextMenuProvider) !== null && _h !== void 0 ? _h : undefined;
|
|
10480
|
-
this.
|
|
10505
|
+
this._theme = resolveTheme(options.theme);
|
|
10481
10506
|
if (options.stateProjection)
|
|
10482
10507
|
this._state = options.stateProjection;
|
|
10483
10508
|
}
|
|
@@ -11217,6 +11242,14 @@ class HeadlessGenomeBrowser {
|
|
|
11217
11242
|
}
|
|
11218
11243
|
return track;
|
|
11219
11244
|
}
|
|
11245
|
+
/** Apply a new render theme to the browser and all existing tracks. */
|
|
11246
|
+
setTheme(theme) {
|
|
11247
|
+
this._theme = resolveTheme(theme);
|
|
11248
|
+
for (const mt of this.managedTracks) {
|
|
11249
|
+
mt.track.setTheme(this._theme);
|
|
11250
|
+
}
|
|
11251
|
+
this.events.emit(BrowserEvent.ThemeChanged, { theme: this._theme });
|
|
11252
|
+
}
|
|
11220
11253
|
/** Clean up event listeners, abort in-flight requests, clear tracks and ROIs. */
|
|
11221
11254
|
dispose() {
|
|
11222
11255
|
this.events.removeAllListeners();
|
|
@@ -13930,6 +13963,102 @@ class LoomNavbar extends HTMLElement {
|
|
|
13930
13963
|
}
|
|
13931
13964
|
}
|
|
13932
13965
|
|
|
13966
|
+
/**
|
|
13967
|
+
* Built-in RenderTheme presets.
|
|
13968
|
+
*
|
|
13969
|
+
* These are Partial<RenderTheme> objects — pass them to resolveTheme() to get
|
|
13970
|
+
* a fully resolved theme with defaults filled in.
|
|
13971
|
+
*
|
|
13972
|
+
* Usage:
|
|
13973
|
+
* import {resolveTheme} from './renderTheme'
|
|
13974
|
+
* import {modernRenderTheme} from './renderThemePresets'
|
|
13975
|
+
* const theme = resolveTheme(modernRenderTheme)
|
|
13976
|
+
*/
|
|
13977
|
+
/** Modern theme — blue/pink palette, rounded exons, system font. */
|
|
13978
|
+
const modernRenderTheme = {
|
|
13979
|
+
palette: {
|
|
13980
|
+
primary: '#4A90D9',
|
|
13981
|
+
secondary: '#D94A7A',
|
|
13982
|
+
accent: '#4A90D9',
|
|
13983
|
+
background: '#ffffff',
|
|
13984
|
+
foreground: '#333333',
|
|
13985
|
+
muted: '#B0B0B0',
|
|
13986
|
+
},
|
|
13987
|
+
fontFamily: 'Inter, system-ui, sans-serif',
|
|
13988
|
+
annotation: {
|
|
13989
|
+
utrColor: '#A8C8E8',
|
|
13990
|
+
altUtrColor: '#E8A8BE',
|
|
13991
|
+
borderColor: 'rgba(0, 0, 0, 0.15)',
|
|
13992
|
+
borderWidth: 0.5,
|
|
13993
|
+
borderRadius: 3,
|
|
13994
|
+
arrowInExonColor: 'rgba(255, 255, 255, 0.7)',
|
|
13995
|
+
labelFont: 'italic 10px Inter, system-ui, sans-serif',
|
|
13996
|
+
featureHeight: 12,
|
|
13997
|
+
expandedRowHeight: 28,
|
|
13998
|
+
margin: 8,
|
|
13999
|
+
},
|
|
14000
|
+
wig: {
|
|
14001
|
+
overflowColor: '#FF6B6B',
|
|
14002
|
+
},
|
|
14003
|
+
sequence: {
|
|
14004
|
+
frameColor1: 'hsl(220, 15%, 90%)',
|
|
14005
|
+
frameColor2: 'hsl(220, 15%, 95%)',
|
|
14006
|
+
startCodonColor: 'hsl(160, 55%, 42%)',
|
|
14007
|
+
stopCodonColor: 'hsl(0, 60%, 55%)',
|
|
14008
|
+
useFillText: true,
|
|
14009
|
+
frameLabelColor: '#444444',
|
|
14010
|
+
codonLabelColor: '#ffffff',
|
|
14011
|
+
frameFont: '600 10px Inter, system-ui, sans-serif',
|
|
14012
|
+
codonBorderRadius: 3,
|
|
14013
|
+
},
|
|
14014
|
+
};
|
|
14015
|
+
/** Dark theme — adapted for dark backgrounds, high contrast. */
|
|
14016
|
+
const darkRenderTheme = {
|
|
14017
|
+
palette: {
|
|
14018
|
+
primary: '#6CB4EE',
|
|
14019
|
+
secondary: '#EE6C9E',
|
|
14020
|
+
accent: '#6a9fd9',
|
|
14021
|
+
background: '#1a1a2e',
|
|
14022
|
+
foreground: '#e0e0e0',
|
|
14023
|
+
muted: '#555555',
|
|
14024
|
+
},
|
|
14025
|
+
nucleotideColors: {
|
|
14026
|
+
A: '#4ade80',
|
|
14027
|
+
C: '#60a5fa',
|
|
14028
|
+
G: '#facc15',
|
|
14029
|
+
T: '#f87171',
|
|
14030
|
+
N: '#666666',
|
|
14031
|
+
},
|
|
14032
|
+
annotation: {
|
|
14033
|
+
utrColor: '#3D6B8E',
|
|
14034
|
+
altUtrColor: '#8E3D5E',
|
|
14035
|
+
borderColor: 'rgba(255, 255, 255, 0.12)',
|
|
14036
|
+
borderWidth: 0.5,
|
|
14037
|
+
borderRadius: 3,
|
|
14038
|
+
arrowInExonColor: 'rgba(0, 0, 0, 0.4)',
|
|
14039
|
+
labelBackground: '#1a1a2e',
|
|
14040
|
+
labelFont: 'italic 10px sans-serif',
|
|
14041
|
+
featureHeight: 12,
|
|
14042
|
+
expandedRowHeight: 28,
|
|
14043
|
+
margin: 8,
|
|
14044
|
+
},
|
|
14045
|
+
wig: {
|
|
14046
|
+
overflowColor: '#FF6B6B',
|
|
14047
|
+
},
|
|
14048
|
+
sequence: {
|
|
14049
|
+
background: '#1a1a2e',
|
|
14050
|
+
frameColor1: 'hsl(230, 15%, 28%)',
|
|
14051
|
+
frameColor2: 'hsl(230, 15%, 22%)',
|
|
14052
|
+
startCodonColor: 'hsl(160, 50%, 35%)',
|
|
14053
|
+
stopCodonColor: 'hsl(0, 55%, 45%)',
|
|
14054
|
+
useFillText: true,
|
|
14055
|
+
frameLabelColor: '#c8c8c8',
|
|
14056
|
+
codonLabelColor: '#ffffff',
|
|
14057
|
+
frameFont: '600 10px sans-serif',
|
|
14058
|
+
codonBorderRadius: 3,
|
|
14059
|
+
},
|
|
14060
|
+
};
|
|
14061
|
+
|
|
13933
14062
|
/**
|
|
13934
14063
|
* <loom-browser> — Top-level shell combining navbar + GenomeBrowser.
|
|
13935
14064
|
*
|
|
@@ -14037,6 +14166,19 @@ class LoomBrowserShell extends HTMLElement {
|
|
|
14037
14166
|
var _a;
|
|
14038
14167
|
return (_a = this._browser) === null || _a === void 0 ? void 0 : _a.on(event, handler);
|
|
14039
14168
|
}
|
|
14169
|
+
/** Switch both the UI shell theme and the render theme in one call. */
|
|
14170
|
+
setTheme(shellTheme) {
|
|
14171
|
+
this.applyTheme(shellTheme);
|
|
14172
|
+
this.setAttribute('theme', shellTheme);
|
|
14173
|
+
if (this._browser) {
|
|
14174
|
+
const shellToRenderTheme = {
|
|
14175
|
+
modern: modernRenderTheme,
|
|
14176
|
+
dark: darkRenderTheme,
|
|
14177
|
+
};
|
|
14178
|
+
const mapped = shellToRenderTheme[shellTheme];
|
|
14179
|
+
this._browser.setTheme(mapped !== null && mapped !== void 0 ? mapped : {});
|
|
14180
|
+
}
|
|
14181
|
+
}
|
|
14040
14182
|
disconnectedCallback() {
|
|
14041
14183
|
if (this._browser) {
|
|
14042
14184
|
this._browser.dispose();
|
|
@@ -14053,12 +14195,31 @@ function createShell(container, options) {
|
|
|
14053
14195
|
if (!customElements.get('loom-browser')) {
|
|
14054
14196
|
customElements.define('loom-browser', LoomBrowserShell);
|
|
14055
14197
|
}
|
|
14198
|
+
const { shellTheme, ruler, genes, sequence, ...browserOptions } = options;
|
|
14199
|
+
// Auto-map shellTheme to matching RenderTheme when theme is not explicitly set
|
|
14200
|
+
if (shellTheme && !browserOptions.theme) {
|
|
14201
|
+
const shellToRenderTheme = {
|
|
14202
|
+
modern: modernRenderTheme,
|
|
14203
|
+
dark: darkRenderTheme,
|
|
14204
|
+
};
|
|
14205
|
+
const mapped = shellToRenderTheme[shellTheme];
|
|
14206
|
+
if (mapped) {
|
|
14207
|
+
browserOptions.theme = mapped;
|
|
14208
|
+
}
|
|
14209
|
+
}
|
|
14056
14210
|
const shell = document.createElement('loom-browser');
|
|
14057
|
-
if (
|
|
14058
|
-
shell.setAttribute('theme',
|
|
14211
|
+
if (shellTheme) {
|
|
14212
|
+
shell.setAttribute('theme', shellTheme);
|
|
14059
14213
|
}
|
|
14060
14214
|
container.appendChild(shell);
|
|
14061
|
-
shell.initialize(
|
|
14215
|
+
const browser = shell.initialize(browserOptions);
|
|
14216
|
+
// Add default tracks
|
|
14217
|
+
if (ruler !== false)
|
|
14218
|
+
browser.addRuler();
|
|
14219
|
+
if (genes !== false)
|
|
14220
|
+
browser.addGeneTrack({ maxTrackHeight: 150 });
|
|
14221
|
+
if (sequence === true)
|
|
14222
|
+
browser.addSequenceTrack();
|
|
14062
14223
|
return shell;
|
|
14063
14224
|
}
|
|
14064
14225
|
|
|
@@ -14650,148 +14811,6 @@ if (typeof customElements !== 'undefined') {
|
|
|
14650
14811
|
customElements.define('loom-browser', LoomBrowserShell);
|
|
14651
14812
|
}
|
|
14652
14813
|
|
|
14653
|
-
/**
|
|
14654
|
-
* Built-in RenderTheme presets.
|
|
14655
|
-
*
|
|
14656
|
-
* These are Partial<RenderTheme> objects — pass them to resolveTheme() to get
|
|
14657
|
-
* a fully resolved theme with defaults filled in.
|
|
14658
|
-
*
|
|
14659
|
-
* Usage:
|
|
14660
|
-
* import {resolveTheme} from './renderTheme'
|
|
14661
|
-
* import {modernRenderTheme} from './renderThemePresets'
|
|
14662
|
-
* const theme = resolveTheme(modernRenderTheme)
|
|
14663
|
-
*/
|
|
14664
|
-
/** Modern theme — blue/pink palette, rounded exons, system font. */
|
|
14665
|
-
const modernRenderTheme = {
|
|
14666
|
-
palette: {
|
|
14667
|
-
primary: '#4A90D9',
|
|
14668
|
-
secondary: '#D94A7A',
|
|
14669
|
-
accent: '#4A90D9',
|
|
14670
|
-
background: '#ffffff',
|
|
14671
|
-
foreground: '#333333',
|
|
14672
|
-
muted: '#B0B0B0',
|
|
14673
|
-
},
|
|
14674
|
-
fontFamily: 'Inter, system-ui, sans-serif',
|
|
14675
|
-
annotation: {
|
|
14676
|
-
utrColor: '#A8C8E8',
|
|
14677
|
-
altUtrColor: '#E8A8BE',
|
|
14678
|
-
borderColor: 'rgba(0, 0, 0, 0.15)',
|
|
14679
|
-
borderWidth: 0.5,
|
|
14680
|
-
borderRadius: 3,
|
|
14681
|
-
arrowInExonColor: 'rgba(255, 255, 255, 0.7)',
|
|
14682
|
-
labelFont: 'italic 10px Inter, system-ui, sans-serif',
|
|
14683
|
-
featureHeight: 12,
|
|
14684
|
-
expandedRowHeight: 28,
|
|
14685
|
-
margin: 8,
|
|
14686
|
-
},
|
|
14687
|
-
wig: {
|
|
14688
|
-
overflowColor: '#FF6B6B',
|
|
14689
|
-
},
|
|
14690
|
-
sequence: {
|
|
14691
|
-
frameColor1: 'hsl(220, 15%, 90%)',
|
|
14692
|
-
frameColor2: 'hsl(220, 15%, 95%)',
|
|
14693
|
-
startCodonColor: 'hsl(160, 55%, 42%)',
|
|
14694
|
-
stopCodonColor: 'hsl(0, 60%, 55%)',
|
|
14695
|
-
useFillText: true,
|
|
14696
|
-
frameLabelColor: '#444444',
|
|
14697
|
-
codonLabelColor: '#ffffff',
|
|
14698
|
-
frameFont: '600 10px Inter, system-ui, sans-serif',
|
|
14699
|
-
codonBorderRadius: 3,
|
|
14700
|
-
},
|
|
14701
|
-
};
|
|
14702
|
-
/** Dark theme — adapted for dark backgrounds, high contrast. */
|
|
14703
|
-
const darkRenderTheme = {
|
|
14704
|
-
palette: {
|
|
14705
|
-
primary: '#6CB4EE',
|
|
14706
|
-
secondary: '#EE6C9E',
|
|
14707
|
-
accent: '#6a9fd9',
|
|
14708
|
-
background: '#1a1a2e',
|
|
14709
|
-
foreground: '#e0e0e0',
|
|
14710
|
-
muted: '#555555',
|
|
14711
|
-
},
|
|
14712
|
-
nucleotideColors: {
|
|
14713
|
-
A: '#4ade80',
|
|
14714
|
-
C: '#60a5fa',
|
|
14715
|
-
G: '#facc15',
|
|
14716
|
-
T: '#f87171',
|
|
14717
|
-
N: '#666666',
|
|
14718
|
-
},
|
|
14719
|
-
annotation: {
|
|
14720
|
-
utrColor: '#3D6B8E',
|
|
14721
|
-
altUtrColor: '#8E3D5E',
|
|
14722
|
-
borderColor: 'rgba(255, 255, 255, 0.12)',
|
|
14723
|
-
borderWidth: 0.5,
|
|
14724
|
-
borderRadius: 3,
|
|
14725
|
-
arrowInExonColor: 'rgba(0, 0, 0, 0.4)',
|
|
14726
|
-
labelBackground: '#1a1a2e',
|
|
14727
|
-
labelFont: 'italic 10px sans-serif',
|
|
14728
|
-
featureHeight: 12,
|
|
14729
|
-
expandedRowHeight: 28,
|
|
14730
|
-
margin: 8,
|
|
14731
|
-
},
|
|
14732
|
-
wig: {
|
|
14733
|
-
overflowColor: '#FF6B6B',
|
|
14734
|
-
},
|
|
14735
|
-
sequence: {
|
|
14736
|
-
background: '#1a1a2e',
|
|
14737
|
-
frameColor1: 'hsl(230, 15%, 28%)',
|
|
14738
|
-
frameColor2: 'hsl(230, 15%, 22%)',
|
|
14739
|
-
startCodonColor: 'hsl(160, 50%, 35%)',
|
|
14740
|
-
stopCodonColor: 'hsl(0, 55%, 45%)',
|
|
14741
|
-
useFillText: true,
|
|
14742
|
-
frameLabelColor: '#c8c8c8',
|
|
14743
|
-
codonLabelColor: '#ffffff',
|
|
14744
|
-
frameFont: '600 10px sans-serif',
|
|
14745
|
-
codonBorderRadius: 3,
|
|
14746
|
-
},
|
|
14747
|
-
};
|
|
14748
|
-
|
|
14749
|
-
/**
|
|
14750
|
-
* Preset render themes for annotation tracks.
|
|
14751
|
-
*
|
|
14752
|
-
* Each theme is a Partial<AnnotationRenderConfig> that can be spread over defaults.
|
|
14753
|
-
* Usage: { ...defaultAnnotationRenderConfig(), ...modernTheme }
|
|
14754
|
-
*/
|
|
14755
|
-
/** Modern theme — softer colors, rounded exons, strand-based coloring. */
|
|
14756
|
-
const modernTheme = {
|
|
14757
|
-
color: '#4A90D9',
|
|
14758
|
-
altColor: '#D94A7A',
|
|
14759
|
-
utrColor: '#A8C8E8',
|
|
14760
|
-
altUtrColor: '#E8A8BE',
|
|
14761
|
-
borderColor: 'rgba(0, 0, 0, 0.15)',
|
|
14762
|
-
borderWidth: 0.5,
|
|
14763
|
-
borderRadius: 3,
|
|
14764
|
-
intronColor: '#B0B0B0',
|
|
14765
|
-
intronLineWidth: 1,
|
|
14766
|
-
arrowColor: '#999999',
|
|
14767
|
-
arrowInExonColor: 'rgba(255, 255, 255, 0.7)',
|
|
14768
|
-
labelColor: '#333333',
|
|
14769
|
-
labelFont: 'italic 10px sans-serif',
|
|
14770
|
-
featureHeight: 12,
|
|
14771
|
-
expandedRowHeight: 28,
|
|
14772
|
-
margin: 8,
|
|
14773
|
-
};
|
|
14774
|
-
/** Dark theme — modern theme adapted for dark backgrounds. */
|
|
14775
|
-
const darkTheme = {
|
|
14776
|
-
color: '#6CB4EE',
|
|
14777
|
-
altColor: '#EE6C9E',
|
|
14778
|
-
utrColor: '#3D6B8E',
|
|
14779
|
-
altUtrColor: '#8E3D5E',
|
|
14780
|
-
borderColor: 'rgba(255, 255, 255, 0.12)',
|
|
14781
|
-
borderWidth: 0.5,
|
|
14782
|
-
borderRadius: 3,
|
|
14783
|
-
intronColor: '#555555',
|
|
14784
|
-
intronLineWidth: 1,
|
|
14785
|
-
arrowColor: '#666666',
|
|
14786
|
-
arrowInExonColor: 'rgba(0, 0, 0, 0.4)',
|
|
14787
|
-
labelColor: '#C8C8C8',
|
|
14788
|
-
labelBackground: '#1a1a2e',
|
|
14789
|
-
labelFont: 'italic 10px sans-serif',
|
|
14790
|
-
featureHeight: 12,
|
|
14791
|
-
expandedRowHeight: 28,
|
|
14792
|
-
margin: 8,
|
|
14793
|
-
};
|
|
14794
|
-
|
|
14795
14814
|
/**
|
|
14796
14815
|
* Preset render themes for wig tracks.
|
|
14797
14816
|
*
|
|
@@ -14930,4 +14949,4 @@ function createFeatureSource(config, workerProvider) {
|
|
|
14930
14949
|
return { dataSource, trackType, format };
|
|
14931
14950
|
}
|
|
14932
14951
|
|
|
14933
|
-
export { AnnotationTrackCanvas, BaseTrackCanvas, BigWigDataSource, BigWigReader, BinaryParser, BrowserEvent, BufferedRangeReader, C2S, ChromAliasDefaults, CommandDispatcher, CommandError, DOMCanvasProvider, DefaultContextMenuProvider, DefaultPopupProvider, EventEmitter, FeatureCache, GeneDataSource, GenomeBrowser, GtxDataSource, GtxReader, HeadlessGenomeBrowser, InteractionTrackCanvas, IntervalTree, LoomBrowserShell, LoomChromosomeSelect, LoomContextMenu, LoomExportControls, LoomInputDialog, LoomLocusInput, LoomNavbar, LoomPopup, LoomWindowSize, LoomZoomControls, MainThreadProvider, NodeWorkerProvider, READY_STATE_OPEN, ROISet, ROI_DEFAULT_COLOR, ROI_USER_DEFINED_COLOR, RemoteConnection, RulerTrackCanvas, SESSION_VERSION, SequenceDataSource, SequenceTrackCanvas, StateProjection, TabixReader, TextFeatureSource, WebWorkerProvider, WigTrackCanvas, addCaseAliases, assembleGFFTranscripts, bufferLocus, cacheCoversViewport, clampLocus, classicThemeCSS, clearBigWigCache, clearGtxCache, commonContextMenuItems, complementBase, complementSequence, computeCumulativeOffsets, computeWigDataRange, createCachedSequence, createDataSource, createFeatureSource, createGenome, createGenomeSync, createShell, createTrackFromConfig, createTrackFromSession, darkRenderTheme, darkSequenceTheme,
|
|
14952
|
+
export { AnnotationTrackCanvas, BaseTrackCanvas, BigWigDataSource, BigWigReader, BinaryParser, BrowserEvent, BufferedRangeReader, C2S, ChromAliasDefaults, CommandDispatcher, CommandError, DOMCanvasProvider, DefaultContextMenuProvider, DefaultPopupProvider, EventEmitter, FeatureCache, GeneDataSource, GenomeBrowser, GtxDataSource, GtxReader, HeadlessGenomeBrowser, InteractionTrackCanvas, IntervalTree, LoomBrowserShell, LoomChromosomeSelect, LoomContextMenu, LoomExportControls, LoomInputDialog, LoomLocusInput, LoomNavbar, LoomPopup, LoomWindowSize, LoomZoomControls, MainThreadProvider, NodeWorkerProvider, READY_STATE_OPEN, ROISet, ROI_DEFAULT_COLOR, ROI_USER_DEFINED_COLOR, RemoteConnection, RulerTrackCanvas, SESSION_VERSION, SequenceDataSource, SequenceTrackCanvas, StateProjection, TabixReader, TextFeatureSource, WebWorkerProvider, WigTrackCanvas, addCaseAliases, assembleGFFTranscripts, bufferLocus, cacheCoversViewport, clampLocus, classicThemeCSS, clearBigWigCache, clearGtxCache, commonContextMenuItems, complementBase, complementSequence, computeCumulativeOffsets, computeWigDataRange, createCachedSequence, createDataSource, createFeatureSource, createGenome, createGenomeSync, createShell, createTrackFromConfig, createTrackFromSession, darkRenderTheme, darkSequenceTheme, darkWigTheme, dataSourceCacheKey, decodeBed, decodeBedGraph, decodeBedpe, decodeBroadPeak, decodeGFF3, decodeGFFAttribute, decodeGTF, decodeGappedPeak, decodeGenePred, decodeGenePredExt, decodeInteract, decodeNarrowPeak, decodeRefGeneJson, decodeRefflat, defaultAnnotationRenderConfig, defaultCanvasProvider, defaultInteractionRenderConfig, defaultNucleotideColors, defaultRenderTheme, defaultRulerRenderConfig, defaultSequenceRenderConfig, defaultWigRenderConfig, drawLetterGlyph, fetchBigWigFeatures, fetchBigWigWGFeatures, fetchGeneFeatures, fetchGtxFeatures, fetchGtxMultiFeatures, fetchGtxWGFeatures, fetchRange, fetchSequence, findUTRs, fixBedPE, formatBpLength, formatLocus, fromIgvSession, generateROIId, genomeToChromCoord, getChromLength, getDecoder, getThemeCSS, getTrackCreator, hg38ChromSizes, hg38Genome, inferFormatFromPath, inferIndexURL, inferTrackType, isBinaryFormat, isCoding, isExon, isHiccups, isIntron, isLikelyIndexed, isMainChromosome, isTranscript, isTranscriptPart, isUTR, isWholeGenomeView, knownFileExtensions, knownTrackTypes, lineWigTheme, mainChromosomeNames, mainThreadProvider, matchesSelector, modernRenderTheme, modernSequenceTheme, modernThemeCSS, modernWigTheme, numericDataMenuItems, packFeatures, parseChromSizes, parseColorString, parseFeatures, parseGFFAttributes, parseHeader, parseLocus, parseStrand, positionString, prettyPrintNumber, registerTrackCreator, registerTypeAlias, renderAnnotationTrack, renderDynSeqFeature, renderInteractionTrack, renderLabelAxis, renderQuantitativeAxis, renderROIOverlays, renderRulerTrack, renderSequenceTrack, renderWholeGenomeRuler, renderWigTrack, resolveAnnotationConfig, resolveInteractionConfig, resolveRulerConfig, resolveSequenceConfig, resolveTheme, resolveWigConfig, reverseComplementSequence, roiContextMenuItems, selectTracks, summarizeWigData, toIgvSession, toTrackSelector, translateSequence, translationDict, warmWigTheme };
|