igv 3.0.4 → 3.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.
package/dist/igv.esm.js CHANGED
@@ -39605,6 +39605,10 @@ class DynamicFeatureSource {
39605
39605
  if (this.featureMap[chr]) {
39606
39606
  const match = `${chr}-${start}-${end}`;
39607
39607
  this.featureMap[chr] = this.featureMap[chr].filter(feature => match !== `${feature.chr}-${feature.start}-${feature.end}`);
39608
+ // Check if featureMap for a specific chromosome is empty now and delete it if yes
39609
+ if (this.featureMap[chr].length === 0) {
39610
+ delete this.featureMap[chr];
39611
+ }
39608
39612
  }
39609
39613
  }
39610
39614
  }
@@ -43052,7 +43056,7 @@ class TrackView {
43052
43056
  const viewportsToRepaint = visibleViewports.filter(vp => vp.needsRepaint()).filter(viewport => viewport.checkZoomIn());
43053
43057
 
43054
43058
  // Get viewports that require a data load
43055
- const viewportsToReload = visibleViewports.filter(viewport => viewport.needsReload());
43059
+ const viewportsToReload = visibleViewports.filter(viewport => viewport.checkZoomIn()).filter(viewport => viewport.needsReload());
43056
43060
 
43057
43061
  // Trigger viewport to load features needed to cover current genomic range
43058
43062
  // NOTE: these must be loaded synchronously, do not user Promise.all, not all file readers are thread safe
@@ -70517,7 +70521,7 @@ function createReferenceFrameList(loci, genome, browserFlanking, minimumBases, v
70517
70521
  })
70518
70522
  }
70519
70523
 
70520
- const _version = "3.0.4";
70524
+ const _version = "3.0.5";
70521
70525
  function version() {
70522
70526
  return _version
70523
70527
  }
@@ -72067,9 +72071,16 @@ class ROIMenu {
72067
72071
  '<hr/>',
72068
72072
  {
72069
72073
  label: 'Delete',
72070
- click: () => {
72071
- this.browser.roiManager.deleteRegionWithKey(regionElement.dataset.region, this.browser.columnContainer);
72072
- this.browser.roiManager.repaintTable();
72074
+ click: async () => {
72075
+ roiSet.removeFeature(feature);
72076
+ const userDefinedFeatures = await roiSet.getAllFeatures();
72077
+
72078
+ // Delete user defined ROI Set if it is empty
72079
+ if (Object.keys(userDefinedFeatures).length === 0) {
72080
+ roiManager.deleteUserDefinedROISet();
72081
+ }
72082
+ roiManager.deleteRegionWithKey(regionElement.dataset.region, columnContainer);
72083
+ roiManager.repaintTable();
72073
72084
  }
72074
72085
  }
72075
72086
  );
@@ -72597,6 +72608,10 @@ class ROIManager {
72597
72608
  return this.roiSets.find(roiSet => true === roiSet.isUserDefined)
72598
72609
  }
72599
72610
 
72611
+ deleteUserDefinedROISet(){
72612
+ this.roiSets = this.roiSets.filter(roiSet => roiSet.isUserDefined !== true);
72613
+ }
72614
+
72600
72615
  initializeUserDefinedROISet() {
72601
72616
 
72602
72617
  const config =
@@ -72612,15 +72627,8 @@ class ROIManager {
72612
72627
  }
72613
72628
 
72614
72629
  async deleteRegionWithKey(regionKey, columnContainer) {
72615
-
72616
72630
  columnContainer.querySelectorAll(createSelector(regionKey)).forEach(node => node.remove());
72617
72631
 
72618
- const {feature, set} = await this.findRegionWithKey(regionKey);
72619
-
72620
- if (set) {
72621
- set.removeFeature(feature);
72622
- }
72623
-
72624
72632
  const records = await this.getTableRecords();
72625
72633
 
72626
72634
  if (0 === records.length) {
@@ -72630,23 +72638,6 @@ class ROIManager {
72630
72638
 
72631
72639
  }
72632
72640
 
72633
- async findRegionWithKey(regionKey) {
72634
-
72635
- const {chr, start, end} = parseRegionKey(regionKey);
72636
-
72637
- for (let set of this.roiSets) {
72638
- const features = await set.getFeatures(chr, start, end);
72639
-
72640
- for (let feature of features) {
72641
- if (feature.chr === chr && feature.start >= start && feature.end <= end) {
72642
- return {feature, set}
72643
- }
72644
- }
72645
- }
72646
-
72647
- return {feature: undefined, set: undefined}
72648
- }
72649
-
72650
72641
  toJSON() {
72651
72642
  return this.roiSets.map(roiSet => roiSet.toJSON())
72652
72643
  }