@checksub_team/peaks_timeline 1.4.18 → 1.4.19

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@checksub_team/peaks_timeline",
3
- "version": "1.4.18",
3
+ "version": "1.4.19",
4
4
  "description": "JavaScript UI component for displaying audio waveforms",
5
5
  "main": "./peaks.js",
6
6
  "types": "./peaks.js.d.ts",
package/peaks.js CHANGED
@@ -17051,7 +17051,7 @@ module.exports = function (SegmentShape, Utils, Konva) {
17051
17051
  var newEndTime = null;
17052
17052
  var startLimited = false;
17053
17053
  var endLimited = false;
17054
- var segmentMagnetThreshold, width;
17054
+ var segmentMagnetThreshold, width, previousSegment, nextSegment, newXs;
17055
17055
  if (this._isMagnetized) {
17056
17056
  segmentMagnetThreshold = this._view.pixelsToTime(this._peaks.options.segmentMagnetThreshold);
17057
17057
  if (newStartX !== null && newEndX !== null) {
@@ -17061,7 +17061,7 @@ module.exports = function (SegmentShape, Utils, Konva) {
17061
17061
  if (newStartX !== null) {
17062
17062
  newStartTime = this._view.pixelsToTime(newStartX);
17063
17063
  if (this._segments[segment.id].prevSegmentId) {
17064
- var previousSegment = this._segments[this._segments[segment.id].prevSegmentId].segment;
17064
+ previousSegment = this._segments[this._segments[segment.id].prevSegmentId].segment;
17065
17065
  if (this._isMagnetized) {
17066
17066
  if (newStartTime < previousSegment.endTime + segmentMagnetThreshold) {
17067
17067
  newStartX = this._view.timeToPixels(previousSegment.endTime);
@@ -17073,14 +17073,20 @@ module.exports = function (SegmentShape, Utils, Konva) {
17073
17073
  endX: newEndX
17074
17074
  };
17075
17075
  }
17076
- } else if (segment.startTime > newStartTime) {
17076
+ } else if (segment.startTime >= newStartTime) {
17077
17077
  if (newStartTime < previousSegment.endTime) {
17078
17078
  if (previousSegment.startTime + previousSegment.minSize > newStartTime) {
17079
17079
  newStartTime = previousSegment.startTime + previousSegment.minSize;
17080
17080
  startLimited = true;
17081
17081
  }
17082
17082
  if (previousSegment.endTime !== newStartTime) {
17083
- previousSegment.endTime = newStartTime;
17083
+ newXs = this.manageCollision(previousSegment, this._view.timeToPixels(previousSegment.startTime), this._view.timeToPixels(newStartTime));
17084
+ if (newXs.startX !== null) {
17085
+ previousSegment.startTime = this._view.pixelsToTime(newXs.startX);
17086
+ }
17087
+ if (newXs.endX !== null) {
17088
+ previousSegment.endTime = this._view.pixelsToTime(newXs.endX);
17089
+ }
17084
17090
  this._updateSegment(previousSegment);
17085
17091
  this.addToUpdatedSegments(previousSegment);
17086
17092
  }
@@ -17096,7 +17102,7 @@ module.exports = function (SegmentShape, Utils, Konva) {
17096
17102
  if (newEndX !== null) {
17097
17103
  newEndTime = this._view.pixelsToTime(newEndX);
17098
17104
  if (this._segments[segment.id].nextSegmentId) {
17099
- var nextSegment = this._segments[this._segments[segment.id].nextSegmentId].segment;
17105
+ nextSegment = this._segments[this._segments[segment.id].nextSegmentId].segment;
17100
17106
  if (this._isMagnetized) {
17101
17107
  if (newEndTime > nextSegment.startTime - segmentMagnetThreshold) {
17102
17108
  newEndX = this._view.timeToPixels(nextSegment.startTime);
@@ -17108,14 +17114,20 @@ module.exports = function (SegmentShape, Utils, Konva) {
17108
17114
  endX: newEndX
17109
17115
  };
17110
17116
  }
17111
- } else if (segment.endTime < newEndTime) {
17117
+ } else if (segment.endTime <= newEndTime) {
17112
17118
  if (newEndTime > nextSegment.startTime) {
17113
17119
  if (nextSegment.endTime - nextSegment.minSize < newEndTime) {
17114
17120
  newEndTime = nextSegment.endTime - nextSegment.minSize;
17115
17121
  endLimited = true;
17116
17122
  }
17117
17123
  if (nextSegment.startTime !== newEndTime) {
17118
- nextSegment.startTime = newEndTime;
17124
+ newXs = this.manageCollision(nextSegment, this._view.timeToPixels(newEndTime), this._view.timeToPixels(nextSegment.endTime));
17125
+ if (newXs.startX !== null) {
17126
+ nextSegment.startTime = this._view.pixelsToTime(newXs.startX);
17127
+ }
17128
+ if (newXs.endX !== null) {
17129
+ nextSegment.endTime = this._view.pixelsToTime(newXs.endX);
17130
+ }
17119
17131
  this._updateSegment(nextSegment);
17120
17132
  this.addToUpdatedSegments(nextSegment);
17121
17133
  }
@@ -17125,7 +17137,15 @@ module.exports = function (SegmentShape, Utils, Konva) {
17125
17137
  }
17126
17138
  }
17127
17139
  if (newStartTime !== null && newEndTime !== null) {
17128
- if (newEndTime - newStartTime < segment.minSize) {
17140
+ if (Utils.roundTime(newEndTime - newStartTime) < segment.minSize) {
17141
+ if (previousSegment && nextSegment) {
17142
+ if (Utils.roundTime(nextSegment.startTime - previousSegment.endTime) < segment.minSize) {
17143
+ return {
17144
+ startX: null,
17145
+ endX: null
17146
+ };
17147
+ }
17148
+ }
17129
17149
  if (startLimited) {
17130
17150
  newEndTime = newStartTime + segment.minSize;
17131
17151
  } else if (endLimited) {
@@ -17133,11 +17153,11 @@ module.exports = function (SegmentShape, Utils, Konva) {
17133
17153
  }
17134
17154
  }
17135
17155
  } else if (newStartTime !== null) {
17136
- if (segment.endTime - newStartTime < segment.minSize) {
17156
+ if (Utils.roundTime(segment.endTime - newStartTime) < segment.minSize) {
17137
17157
  newStartTime = segment.endTime - segment.minSize;
17138
17158
  }
17139
17159
  } else if (newEndTime !== null) {
17140
- if (newEndTime - segment.startTime < segment.minSize) {
17160
+ if (Utils.roundTime(newEndTime - segment.startTime) < segment.minSize) {
17141
17161
  newEndTime = segment.startTime + segment.minSize;
17142
17162
  }
17143
17163
  }
@@ -465,7 +465,7 @@ define([
465
465
  var newEndTime = null;
466
466
  var startLimited = false;
467
467
  var endLimited = false;
468
- var segmentMagnetThreshold, width;
468
+ var segmentMagnetThreshold, width, previousSegment, nextSegment, newXs;
469
469
 
470
470
  if (this._isMagnetized) {
471
471
  segmentMagnetThreshold = this._view.pixelsToTime(
@@ -483,7 +483,7 @@ define([
483
483
 
484
484
  if (this._segments[segment.id].prevSegmentId) {
485
485
  // there is another segment to the left
486
- var previousSegment = this._segments[this._segments[segment.id].prevSegmentId].segment;
486
+ previousSegment = this._segments[this._segments[segment.id].prevSegmentId].segment;
487
487
 
488
488
  if (this._isMagnetized) {
489
489
  if (newStartTime < previousSegment.endTime + segmentMagnetThreshold) {
@@ -498,7 +498,7 @@ define([
498
498
  };
499
499
  }
500
500
  }
501
- else if (segment.startTime > newStartTime) {
501
+ else if (segment.startTime >= newStartTime) {
502
502
  // startMarker moved to the left
503
503
  if (newStartTime < previousSegment.endTime) {
504
504
  // there is collision
@@ -508,7 +508,15 @@ define([
508
508
  }
509
509
 
510
510
  if (previousSegment.endTime !== newStartTime) {
511
- previousSegment.endTime = newStartTime;
511
+ newXs = this.manageCollision(previousSegment, this._view.timeToPixels(previousSegment.startTime), this._view.timeToPixels(newStartTime));
512
+
513
+ if (newXs.startX !== null) {
514
+ previousSegment.startTime = this._view.pixelsToTime(newXs.startX);
515
+ }
516
+
517
+ if (newXs.endX !== null) {
518
+ previousSegment.endTime = this._view.pixelsToTime(newXs.endX);
519
+ }
512
520
  this._updateSegment(previousSegment);
513
521
  this.addToUpdatedSegments(previousSegment);
514
522
  }
@@ -529,7 +537,7 @@ define([
529
537
 
530
538
  if (this._segments[segment.id].nextSegmentId) {
531
539
  // there is another segment to the right
532
- var nextSegment = this._segments[this._segments[segment.id].nextSegmentId].segment;
540
+ nextSegment = this._segments[this._segments[segment.id].nextSegmentId].segment;
533
541
 
534
542
  if (this._isMagnetized) {
535
543
  if (newEndTime > nextSegment.startTime - segmentMagnetThreshold) {
@@ -544,7 +552,7 @@ define([
544
552
  };
545
553
  }
546
554
  }
547
- else if (segment.endTime < newEndTime) {
555
+ else if (segment.endTime <= newEndTime) {
548
556
  // endMarker moved to the right
549
557
  if (newEndTime > nextSegment.startTime) {
550
558
  // there is collision
@@ -554,7 +562,15 @@ define([
554
562
  }
555
563
 
556
564
  if (nextSegment.startTime !== newEndTime) {
557
- nextSegment.startTime = newEndTime;
565
+ newXs = this.manageCollision(nextSegment, this._view.timeToPixels(newEndTime), this._view.timeToPixels(nextSegment.endTime));
566
+
567
+ if (newXs.startX !== null) {
568
+ nextSegment.startTime = this._view.pixelsToTime(newXs.startX);
569
+ }
570
+
571
+ if (newXs.endX !== null) {
572
+ nextSegment.endTime = this._view.pixelsToTime(newXs.endX);
573
+ }
558
574
  this._updateSegment(nextSegment);
559
575
  this.addToUpdatedSegments(nextSegment);
560
576
  }
@@ -568,7 +584,16 @@ define([
568
584
 
569
585
  // Check for minimal size of segment
570
586
  if (newStartTime !== null && newEndTime !== null) {
571
- if (newEndTime - newStartTime < segment.minSize) {
587
+ if (Utils.roundTime(newEndTime - newStartTime) < segment.minSize) {
588
+ if (previousSegment && nextSegment) {
589
+ if (Utils.roundTime(nextSegment.startTime - previousSegment.endTime) < segment.minSize) {
590
+ return {
591
+ startX: null,
592
+ endX: null
593
+ };
594
+ }
595
+ }
596
+
572
597
  if (startLimited) {
573
598
  newEndTime = newStartTime + segment.minSize;
574
599
  }
@@ -578,12 +603,12 @@ define([
578
603
  }
579
604
  }
580
605
  else if (newStartTime !== null) {
581
- if (segment.endTime - newStartTime < segment.minSize) {
606
+ if (Utils.roundTime(segment.endTime - newStartTime) < segment.minSize) {
582
607
  newStartTime = segment.endTime - segment.minSize;
583
608
  }
584
609
  }
585
610
  else if (newEndTime !== null) {
586
- if (newEndTime - segment.startTime < segment.minSize) {
611
+ if (Utils.roundTime(newEndTime - segment.startTime) < segment.minSize) {
587
612
  newEndTime = segment.startTime + segment.minSize;
588
613
  }
589
614
  }