@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 +1 -1
- package/peaks.js +30 -10
- package/src/segments-group.js +35 -10
package/package.json
CHANGED
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
|
-
|
|
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
|
|
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.
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
}
|
package/src/segments-group.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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.
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
}
|