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.js CHANGED
@@ -39611,6 +39611,10 @@
39611
39611
  if (this.featureMap[chr]) {
39612
39612
  const match = `${chr}-${start}-${end}`;
39613
39613
  this.featureMap[chr] = this.featureMap[chr].filter(feature => match !== `${feature.chr}-${feature.start}-${feature.end}`);
39614
+ // Check if featureMap for a specific chromosome is empty now and delete it if yes
39615
+ if (this.featureMap[chr].length === 0) {
39616
+ delete this.featureMap[chr];
39617
+ }
39614
39618
  }
39615
39619
  }
39616
39620
  }
@@ -43058,7 +43062,7 @@
43058
43062
  const viewportsToRepaint = visibleViewports.filter(vp => vp.needsRepaint()).filter(viewport => viewport.checkZoomIn());
43059
43063
 
43060
43064
  // Get viewports that require a data load
43061
- const viewportsToReload = visibleViewports.filter(viewport => viewport.needsReload());
43065
+ const viewportsToReload = visibleViewports.filter(viewport => viewport.checkZoomIn()).filter(viewport => viewport.needsReload());
43062
43066
 
43063
43067
  // Trigger viewport to load features needed to cover current genomic range
43064
43068
  // NOTE: these must be loaded synchronously, do not user Promise.all, not all file readers are thread safe
@@ -70523,7 +70527,7 @@
70523
70527
  })
70524
70528
  }
70525
70529
 
70526
- const _version = "3.0.4";
70530
+ const _version = "3.0.5";
70527
70531
  function version() {
70528
70532
  return _version
70529
70533
  }
@@ -72073,9 +72077,16 @@
72073
72077
  '<hr/>',
72074
72078
  {
72075
72079
  label: 'Delete',
72076
- click: () => {
72077
- this.browser.roiManager.deleteRegionWithKey(regionElement.dataset.region, this.browser.columnContainer);
72078
- this.browser.roiManager.repaintTable();
72080
+ click: async () => {
72081
+ roiSet.removeFeature(feature);
72082
+ const userDefinedFeatures = await roiSet.getAllFeatures();
72083
+
72084
+ // Delete user defined ROI Set if it is empty
72085
+ if (Object.keys(userDefinedFeatures).length === 0) {
72086
+ roiManager.deleteUserDefinedROISet();
72087
+ }
72088
+ roiManager.deleteRegionWithKey(regionElement.dataset.region, columnContainer);
72089
+ roiManager.repaintTable();
72079
72090
  }
72080
72091
  }
72081
72092
  );
@@ -72603,6 +72614,10 @@
72603
72614
  return this.roiSets.find(roiSet => true === roiSet.isUserDefined)
72604
72615
  }
72605
72616
 
72617
+ deleteUserDefinedROISet(){
72618
+ this.roiSets = this.roiSets.filter(roiSet => roiSet.isUserDefined !== true);
72619
+ }
72620
+
72606
72621
  initializeUserDefinedROISet() {
72607
72622
 
72608
72623
  const config =
@@ -72618,15 +72633,8 @@
72618
72633
  }
72619
72634
 
72620
72635
  async deleteRegionWithKey(regionKey, columnContainer) {
72621
-
72622
72636
  columnContainer.querySelectorAll(createSelector(regionKey)).forEach(node => node.remove());
72623
72637
 
72624
- const {feature, set} = await this.findRegionWithKey(regionKey);
72625
-
72626
- if (set) {
72627
- set.removeFeature(feature);
72628
- }
72629
-
72630
72638
  const records = await this.getTableRecords();
72631
72639
 
72632
72640
  if (0 === records.length) {
@@ -72636,23 +72644,6 @@
72636
72644
 
72637
72645
  }
72638
72646
 
72639
- async findRegionWithKey(regionKey) {
72640
-
72641
- const {chr, start, end} = parseRegionKey(regionKey);
72642
-
72643
- for (let set of this.roiSets) {
72644
- const features = await set.getFeatures(chr, start, end);
72645
-
72646
- for (let feature of features) {
72647
- if (feature.chr === chr && feature.start >= start && feature.end <= end) {
72648
- return {feature, set}
72649
- }
72650
- }
72651
- }
72652
-
72653
- return {feature: undefined, set: undefined}
72654
- }
72655
-
72656
72647
  toJSON() {
72657
72648
  return this.roiSets.map(roiSet => roiSet.toJSON())
72658
72649
  }