loom-browser 0.0.3 → 0.0.5

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.
Files changed (47) hide show
  1. package/README.md +28 -3
  2. package/dist/loom-react.esm.js +13967 -0
  3. package/dist/loom-react.esm.min.js +2 -0
  4. package/dist/loom-react.esm.min.js.map +1 -0
  5. package/dist/loom.esm.js +175 -148
  6. package/dist/loom.esm.min.js +1 -1
  7. package/dist/loom.esm.min.js.map +1 -1
  8. package/dist/loom.js +174 -149
  9. package/dist/loom.min.js +1 -1
  10. package/dist/loom.min.js.map +1 -1
  11. package/dist/tsconfig.src.tsbuildinfo +1 -0
  12. package/dist/types/headlessGenomeBrowser.d.ts +8 -1
  13. package/dist/types/index.d.ts +0 -1
  14. package/dist/types/react/GenomeBrowserContext.d.ts +6 -0
  15. package/dist/types/react/LoomBrowser.d.ts +86 -0
  16. package/dist/types/react/hooks/index.d.ts +3 -0
  17. package/dist/types/react/hooks/useBrowserEvent.d.ts +7 -0
  18. package/dist/types/react/hooks/useGenomeBrowser.d.ts +7 -0
  19. package/dist/types/react/hooks/useLocus.d.ts +11 -0
  20. package/dist/types/react/hooks/useTrackManager.d.ts +11 -0
  21. package/dist/types/react/index.d.ts +9 -0
  22. package/dist/types/react/tracks/BedTrack.d.ts +14 -0
  23. package/dist/types/react/tracks/GeneTrack.d.ts +14 -0
  24. package/dist/types/react/tracks/GtxTrack.d.ts +13 -0
  25. package/dist/types/react/tracks/InteractionTrack.d.ts +12 -0
  26. package/dist/types/react/tracks/RulerTrack.d.ts +6 -0
  27. package/dist/types/react/tracks/SequenceTrack.d.ts +6 -0
  28. package/dist/types/react/tracks/WigTrack.d.ts +12 -0
  29. package/dist/types/react/tracks/index.d.ts +14 -0
  30. package/dist/types/react/ui/ChromosomeSelect.d.ts +7 -0
  31. package/dist/types/react/ui/ExportControls.d.ts +7 -0
  32. package/dist/types/react/ui/LocusInput.d.ts +7 -0
  33. package/dist/types/react/ui/Navbar.d.ts +7 -0
  34. package/dist/types/react/ui/WindowSize.d.ts +7 -0
  35. package/dist/types/react/ui/ZoomControls.d.ts +7 -0
  36. package/dist/types/react/ui/ensureRegistered.d.ts +5 -0
  37. package/dist/types/react/ui/index.d.ts +12 -0
  38. package/dist/types/react/ui/types.d.ts +24 -0
  39. package/dist/types/tracks/annotation/annotationTrackCanvas.d.ts +1 -0
  40. package/dist/types/tracks/baseTrackCanvas.d.ts +2 -0
  41. package/dist/types/tracks/interaction/interactionTrackCanvas.d.ts +1 -0
  42. package/dist/types/tracks/ruler/rulerTrackCanvas.d.ts +1 -0
  43. package/dist/types/tracks/sequence/sequenceTrackCanvas.d.ts +1 -0
  44. package/dist/types/tracks/wig/wigTrackCanvas.d.ts +1 -0
  45. package/dist/types/types.d.ts +2 -0
  46. package/dist/types/ui/components/LoomBrowserShell.d.ts +9 -1
  47. 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.theme = resolveTheme(options.theme);
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();
@@ -12067,6 +12100,13 @@ class GenomeBrowser extends HeadlessGenomeBrowser {
12067
12100
  this.events.on(BrowserEvent.DataLoaded, ({ track }) => {
12068
12101
  this.updateAxisContent(track);
12069
12102
  });
12103
+ // Repaint axis canvases when theme changes (track canvases update via
12104
+ // track.setTheme(), but axis sidebar is managed here in GenomeBrowser).
12105
+ this.events.on(BrowserEvent.ThemeChanged, () => {
12106
+ for (const mt of this.managedTracks) {
12107
+ this.updateAxisContent(mt.track);
12108
+ }
12109
+ });
12070
12110
  // Re-render ROI overlays when ROIs change or viewport moves
12071
12111
  this.events.on(BrowserEvent.ROIAdded, () => this.renderROIOverlays());
12072
12112
  this.events.on(BrowserEvent.ROIRemoved, () => this.renderROIOverlays());
@@ -12269,9 +12309,10 @@ class GenomeBrowser extends HeadlessGenomeBrowser {
12269
12309
  const { axisDiv } = entry;
12270
12310
  const rawInfo = (_a = track.getAxisInfo) === null || _a === void 0 ? void 0 : _a.call(track);
12271
12311
  if (!rawInfo) {
12272
- // No axis info — clear content and hide border (e.g., ruler tracks)
12312
+ // No axis info — keep the column for alignment but clear content
12273
12313
  axisDiv.innerHTML = "";
12274
12314
  axisDiv.style.borderRight = "none";
12315
+ axisDiv.style.backgroundColor = this.theme.palette.background;
12275
12316
  entry.axisCanvas = null;
12276
12317
  return;
12277
12318
  }
@@ -13930,6 +13971,102 @@ class LoomNavbar extends HTMLElement {
13930
13971
  }
13931
13972
  }
13932
13973
 
13974
+ /**
13975
+ * Built-in RenderTheme presets.
13976
+ *
13977
+ * These are Partial<RenderTheme> objects — pass them to resolveTheme() to get
13978
+ * a fully resolved theme with defaults filled in.
13979
+ *
13980
+ * Usage:
13981
+ * import {resolveTheme} from './renderTheme'
13982
+ * import {modernRenderTheme} from './renderThemePresets'
13983
+ * const theme = resolveTheme(modernRenderTheme)
13984
+ */
13985
+ /** Modern theme — blue/pink palette, rounded exons, system font. */
13986
+ const modernRenderTheme = {
13987
+ palette: {
13988
+ primary: '#4A90D9',
13989
+ secondary: '#D94A7A',
13990
+ accent: '#4A90D9',
13991
+ background: '#ffffff',
13992
+ foreground: '#333333',
13993
+ muted: '#B0B0B0',
13994
+ },
13995
+ fontFamily: 'Inter, system-ui, sans-serif',
13996
+ annotation: {
13997
+ utrColor: '#A8C8E8',
13998
+ altUtrColor: '#E8A8BE',
13999
+ borderColor: 'rgba(0, 0, 0, 0.15)',
14000
+ borderWidth: 0.5,
14001
+ borderRadius: 3,
14002
+ arrowInExonColor: 'rgba(255, 255, 255, 0.7)',
14003
+ labelFont: 'italic 10px Inter, system-ui, sans-serif',
14004
+ featureHeight: 12,
14005
+ expandedRowHeight: 28,
14006
+ margin: 8,
14007
+ },
14008
+ wig: {
14009
+ overflowColor: '#FF6B6B',
14010
+ },
14011
+ sequence: {
14012
+ frameColor1: 'hsl(220, 15%, 90%)',
14013
+ frameColor2: 'hsl(220, 15%, 95%)',
14014
+ startCodonColor: 'hsl(160, 55%, 42%)',
14015
+ stopCodonColor: 'hsl(0, 60%, 55%)',
14016
+ useFillText: true,
14017
+ frameLabelColor: '#444444',
14018
+ codonLabelColor: '#ffffff',
14019
+ frameFont: '600 10px Inter, system-ui, sans-serif',
14020
+ codonBorderRadius: 3,
14021
+ },
14022
+ };
14023
+ /** Dark theme — adapted for dark backgrounds, high contrast. */
14024
+ const darkRenderTheme = {
14025
+ palette: {
14026
+ primary: '#6CB4EE',
14027
+ secondary: '#EE6C9E',
14028
+ accent: '#6a9fd9',
14029
+ background: '#1a1a2e',
14030
+ foreground: '#e0e0e0',
14031
+ muted: '#555555',
14032
+ },
14033
+ nucleotideColors: {
14034
+ A: '#4ade80',
14035
+ C: '#60a5fa',
14036
+ G: '#facc15',
14037
+ T: '#f87171',
14038
+ N: '#666666',
14039
+ },
14040
+ annotation: {
14041
+ utrColor: '#3D6B8E',
14042
+ altUtrColor: '#8E3D5E',
14043
+ borderColor: 'rgba(255, 255, 255, 0.12)',
14044
+ borderWidth: 0.5,
14045
+ borderRadius: 3,
14046
+ arrowInExonColor: 'rgba(0, 0, 0, 0.4)',
14047
+ labelBackground: '#1a1a2e',
14048
+ labelFont: 'italic 10px sans-serif',
14049
+ featureHeight: 12,
14050
+ expandedRowHeight: 28,
14051
+ margin: 8,
14052
+ },
14053
+ wig: {
14054
+ overflowColor: '#FF6B6B',
14055
+ },
14056
+ sequence: {
14057
+ background: '#1a1a2e',
14058
+ frameColor1: 'hsl(230, 15%, 28%)',
14059
+ frameColor2: 'hsl(230, 15%, 22%)',
14060
+ startCodonColor: 'hsl(160, 50%, 35%)',
14061
+ stopCodonColor: 'hsl(0, 55%, 45%)',
14062
+ useFillText: true,
14063
+ frameLabelColor: '#c8c8c8',
14064
+ codonLabelColor: '#ffffff',
14065
+ frameFont: '600 10px sans-serif',
14066
+ codonBorderRadius: 3,
14067
+ },
14068
+ };
14069
+
13933
14070
  /**
13934
14071
  * <loom-browser> — Top-level shell combining navbar + GenomeBrowser.
13935
14072
  *
@@ -14037,6 +14174,19 @@ class LoomBrowserShell extends HTMLElement {
14037
14174
  var _a;
14038
14175
  return (_a = this._browser) === null || _a === void 0 ? void 0 : _a.on(event, handler);
14039
14176
  }
14177
+ /** Switch both the UI shell theme and the render theme in one call. */
14178
+ setTheme(shellTheme) {
14179
+ this.applyTheme(shellTheme);
14180
+ this.setAttribute('theme', shellTheme);
14181
+ if (this._browser) {
14182
+ const shellToRenderTheme = {
14183
+ modern: modernRenderTheme,
14184
+ dark: darkRenderTheme,
14185
+ };
14186
+ const mapped = shellToRenderTheme[shellTheme];
14187
+ this._browser.setTheme(mapped !== null && mapped !== void 0 ? mapped : {});
14188
+ }
14189
+ }
14040
14190
  disconnectedCallback() {
14041
14191
  if (this._browser) {
14042
14192
  this._browser.dispose();
@@ -14053,12 +14203,31 @@ function createShell(container, options) {
14053
14203
  if (!customElements.get('loom-browser')) {
14054
14204
  customElements.define('loom-browser', LoomBrowserShell);
14055
14205
  }
14206
+ const { shellTheme, ruler, genes, sequence, ...browserOptions } = options;
14207
+ // Auto-map shellTheme to matching RenderTheme when theme is not explicitly set
14208
+ if (shellTheme && !browserOptions.theme) {
14209
+ const shellToRenderTheme = {
14210
+ modern: modernRenderTheme,
14211
+ dark: darkRenderTheme,
14212
+ };
14213
+ const mapped = shellToRenderTheme[shellTheme];
14214
+ if (mapped) {
14215
+ browserOptions.theme = mapped;
14216
+ }
14217
+ }
14056
14218
  const shell = document.createElement('loom-browser');
14057
- if (options.shellTheme) {
14058
- shell.setAttribute('theme', options.shellTheme);
14219
+ if (shellTheme) {
14220
+ shell.setAttribute('theme', shellTheme);
14059
14221
  }
14060
14222
  container.appendChild(shell);
14061
- shell.initialize(options);
14223
+ const browser = shell.initialize(browserOptions);
14224
+ // Add default tracks
14225
+ if (ruler !== false)
14226
+ browser.addRuler();
14227
+ if (genes !== false)
14228
+ browser.addGeneTrack({ maxTrackHeight: 150 });
14229
+ if (sequence === true)
14230
+ browser.addSequenceTrack();
14062
14231
  return shell;
14063
14232
  }
14064
14233
 
@@ -14650,148 +14819,6 @@ if (typeof customElements !== 'undefined') {
14650
14819
  customElements.define('loom-browser', LoomBrowserShell);
14651
14820
  }
14652
14821
 
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
14822
  /**
14796
14823
  * Preset render themes for wig tracks.
14797
14824
  *
@@ -14930,4 +14957,4 @@ function createFeatureSource(config, workerProvider) {
14930
14957
  return { dataSource, trackType, format };
14931
14958
  }
14932
14959
 
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, darkTheme, 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, modernTheme, 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 };
14960
+ 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 };