@checksub_team/peaks_timeline 1.5.0 → 1.5.2
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 +38 -1
- package/src/marker-factories.js +4 -1
- package/src/segment.js +10 -0
- package/src/segments-group.js +22 -0
- package/src/timeline-segments.js +23 -0
package/package.json
CHANGED
package/peaks.js
CHANGED
|
@@ -15587,7 +15587,7 @@ module.exports = function (DefaultSegmentMarker, Utils, Konva) {
|
|
|
15587
15587
|
y: options.y,
|
|
15588
15588
|
width: options.width,
|
|
15589
15589
|
height: options.height,
|
|
15590
|
-
text: Utils.removeLineBreaks(options.segment.labelText),
|
|
15590
|
+
text: '#' + options.segment.relativeId + ' ' + Utils.removeLineBreaks(options.segment.labelText),
|
|
15591
15591
|
textAlign: 'left',
|
|
15592
15592
|
verticalAlign: 'middle',
|
|
15593
15593
|
wrap: 'none',
|
|
@@ -16681,6 +16681,7 @@ module.exports = function (Utils) {
|
|
|
16681
16681
|
this._line = opts.line;
|
|
16682
16682
|
this._indicators = opts.indicators;
|
|
16683
16683
|
this._minSize = peaks.options.minSegmentSize;
|
|
16684
|
+
this._relativeId = 0;
|
|
16684
16685
|
if (shouldNotifyUpdate) {
|
|
16685
16686
|
peaks.emit('segments.updated', [this]);
|
|
16686
16687
|
}
|
|
@@ -16775,6 +16776,15 @@ module.exports = function (Utils) {
|
|
|
16775
16776
|
get: function () {
|
|
16776
16777
|
return this._minSize;
|
|
16777
16778
|
}
|
|
16779
|
+
},
|
|
16780
|
+
relativeId: {
|
|
16781
|
+
enumerable: true,
|
|
16782
|
+
get: function () {
|
|
16783
|
+
return this._relativeId;
|
|
16784
|
+
},
|
|
16785
|
+
set: function (newId) {
|
|
16786
|
+
this._relativeId = newId;
|
|
16787
|
+
}
|
|
16778
16788
|
}
|
|
16779
16789
|
});
|
|
16780
16790
|
Segment.prototype.update = function (options) {
|
|
@@ -16833,7 +16843,20 @@ module.exports = function (SegmentShape, Utils, Konva) {
|
|
|
16833
16843
|
this._isMagnetized = false;
|
|
16834
16844
|
this._peaks.on('segments.setMagnetizing', this.setMagnetizing.bind(this));
|
|
16835
16845
|
this._peaks.on('segment.setIndicators', this.setIndicators.bind(this));
|
|
16846
|
+
this._peaks.on('segments.relative_ids_refreshed', this._onRelativeIdsRefreshed.bind(this));
|
|
16836
16847
|
}
|
|
16848
|
+
SegmentsGroup.prototype._onRelativeIdsRefreshed = function () {
|
|
16849
|
+
for (var id in this._segmentShapes) {
|
|
16850
|
+
if (Utils.objectHasProperty(this._segmentShapes, id)) {
|
|
16851
|
+
var segmentShape = this._segmentShapes[id];
|
|
16852
|
+
var newText = '#' + segmentShape._segment.relativeId + ' ' + Utils.removeLineBreaks(segmentShape._segment.labelText);
|
|
16853
|
+
if (newText === segmentShape._label.text) {
|
|
16854
|
+
return;
|
|
16855
|
+
}
|
|
16856
|
+
segmentShape._label.setText(newText);
|
|
16857
|
+
}
|
|
16858
|
+
}
|
|
16859
|
+
};
|
|
16837
16860
|
SegmentsGroup.prototype.addToGroup = function (group) {
|
|
16838
16861
|
group.add(this._group);
|
|
16839
16862
|
};
|
|
@@ -17298,6 +17321,8 @@ module.exports = function (SegmentShape, Utils, Konva) {
|
|
|
17298
17321
|
};
|
|
17299
17322
|
SegmentsGroup.prototype.destroy = function () {
|
|
17300
17323
|
this._peaks.off('segments.setMagnetizing', this.setMagnetizing);
|
|
17324
|
+
this._peaks.off('segment.setIndicators', this.setIndicators);
|
|
17325
|
+
this._peaks.off('segments.relative_ids_refreshed', this._onRelativeIdsRefreshed);
|
|
17301
17326
|
};
|
|
17302
17327
|
SegmentsGroup.prototype.fitToView = function () {
|
|
17303
17328
|
for (var segmentId in this._segmentShapes) {
|
|
@@ -19181,8 +19206,19 @@ module.exports = function (Colors, Segment, Utils) {
|
|
|
19181
19206
|
segments.forEach(function (segment) {
|
|
19182
19207
|
self._addSegment(segment);
|
|
19183
19208
|
});
|
|
19209
|
+
this.refreshRelativeIds();
|
|
19184
19210
|
this._peaks.emit('segments.add', segments);
|
|
19185
19211
|
};
|
|
19212
|
+
TimelineSegments.prototype.refreshRelativeIds = function () {
|
|
19213
|
+
var idsByPosition = {};
|
|
19214
|
+
this._segments.sort(function (a, b) {
|
|
19215
|
+
return a.startTime - b.startTime;
|
|
19216
|
+
}).forEach(function (segment) {
|
|
19217
|
+
segment.relativeId = (idsByPosition[segment.line] || 0) + 1;
|
|
19218
|
+
idsByPosition[segment.line] = segment.relativeId;
|
|
19219
|
+
});
|
|
19220
|
+
this._peaks.emit('segments.relative_ids_refreshed');
|
|
19221
|
+
};
|
|
19186
19222
|
TimelineSegments.prototype._findSegment = function (predicate) {
|
|
19187
19223
|
var indexes = [];
|
|
19188
19224
|
for (var i = 0, length = this._segments.length; i < length; i++) {
|
|
@@ -19205,6 +19241,7 @@ module.exports = function (Colors, Segment, Utils) {
|
|
|
19205
19241
|
TimelineSegments.prototype._removeSegments = function (predicate) {
|
|
19206
19242
|
var indexes = this._findSegment(predicate);
|
|
19207
19243
|
var removed = this._removeIndexes(indexes);
|
|
19244
|
+
this.refreshRelativeIds();
|
|
19208
19245
|
this._peaks.emit('segments.remove', removed);
|
|
19209
19246
|
return removed;
|
|
19210
19247
|
};
|
package/src/marker-factories.js
CHANGED
|
@@ -71,7 +71,10 @@ define([
|
|
|
71
71
|
y: options.y,
|
|
72
72
|
width: options.width,
|
|
73
73
|
height: options.height,
|
|
74
|
-
text:
|
|
74
|
+
text: '#'
|
|
75
|
+
+ options.segment.relativeId
|
|
76
|
+
+ ' '
|
|
77
|
+
+ Utils.removeLineBreaks(options.segment.labelText),
|
|
75
78
|
textAlign: 'left',
|
|
76
79
|
verticalAlign: 'middle',
|
|
77
80
|
wrap: 'none',
|
package/src/segment.js
CHANGED
|
@@ -131,6 +131,7 @@ define([
|
|
|
131
131
|
this._line = opts.line;
|
|
132
132
|
this._indicators = opts.indicators;
|
|
133
133
|
this._minSize = peaks.options.minSegmentSize;
|
|
134
|
+
this._relativeId = 0;
|
|
134
135
|
|
|
135
136
|
if (shouldNotifyUpdate) {
|
|
136
137
|
peaks.emit('segments.updated', [this]);
|
|
@@ -229,6 +230,15 @@ define([
|
|
|
229
230
|
get: function() {
|
|
230
231
|
return this._minSize;
|
|
231
232
|
}
|
|
233
|
+
},
|
|
234
|
+
relativeId: {
|
|
235
|
+
enumerable: true,
|
|
236
|
+
get: function() {
|
|
237
|
+
return this._relativeId;
|
|
238
|
+
},
|
|
239
|
+
set: function(newId) {
|
|
240
|
+
this._relativeId = newId;
|
|
241
|
+
}
|
|
232
242
|
}
|
|
233
243
|
});
|
|
234
244
|
|
package/src/segments-group.js
CHANGED
|
@@ -46,8 +46,28 @@ define([
|
|
|
46
46
|
|
|
47
47
|
this._peaks.on('segments.setMagnetizing', this.setMagnetizing.bind(this));
|
|
48
48
|
this._peaks.on('segment.setIndicators', this.setIndicators.bind(this));
|
|
49
|
+
this._peaks.on('segments.relative_ids_refreshed', this._onRelativeIdsRefreshed.bind(this));
|
|
49
50
|
}
|
|
50
51
|
|
|
52
|
+
SegmentsGroup.prototype._onRelativeIdsRefreshed = function() {
|
|
53
|
+
for (var id in this._segmentShapes) {
|
|
54
|
+
if (Utils.objectHasProperty(this._segmentShapes, id)) {
|
|
55
|
+
var segmentShape = this._segmentShapes[id];
|
|
56
|
+
|
|
57
|
+
var newText = '#'
|
|
58
|
+
+ segmentShape._segment.relativeId
|
|
59
|
+
+ ' '
|
|
60
|
+
+ Utils.removeLineBreaks(segmentShape._segment.labelText);
|
|
61
|
+
|
|
62
|
+
if (newText === segmentShape._label.text) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
segmentShape._label.setText(newText);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
51
71
|
/**
|
|
52
72
|
* Adds the group to the given {Konva.Group}.
|
|
53
73
|
*
|
|
@@ -743,6 +763,8 @@ define([
|
|
|
743
763
|
|
|
744
764
|
SegmentsGroup.prototype.destroy = function() {
|
|
745
765
|
this._peaks.off('segments.setMagnetizing', this.setMagnetizing);
|
|
766
|
+
this._peaks.off('segment.setIndicators', this.setIndicators);
|
|
767
|
+
this._peaks.off('segments.relative_ids_refreshed', this._onRelativeIdsRefreshed);
|
|
746
768
|
};
|
|
747
769
|
|
|
748
770
|
SegmentsGroup.prototype.fitToView = function() {
|
package/src/timeline-segments.js
CHANGED
|
@@ -251,9 +251,30 @@ define([
|
|
|
251
251
|
self._addSegment(segment);
|
|
252
252
|
});
|
|
253
253
|
|
|
254
|
+
this.refreshRelativeIds();
|
|
255
|
+
|
|
254
256
|
this._peaks.emit('segments.add', segments);
|
|
255
257
|
};
|
|
256
258
|
|
|
259
|
+
/**
|
|
260
|
+
* Set relative ids for all segments.
|
|
261
|
+
*
|
|
262
|
+
* @private
|
|
263
|
+
*/
|
|
264
|
+
|
|
265
|
+
TimelineSegments.prototype.refreshRelativeIds = function() {
|
|
266
|
+
var idsByPosition = {};
|
|
267
|
+
|
|
268
|
+
this._segments.sort(function(a, b) {
|
|
269
|
+
return a.startTime - b.startTime;
|
|
270
|
+
}).forEach(function(segment) {
|
|
271
|
+
segment.relativeId = (idsByPosition[segment.line] || 0) + 1;
|
|
272
|
+
idsByPosition[segment.line] = segment.relativeId;
|
|
273
|
+
});
|
|
274
|
+
|
|
275
|
+
this._peaks.emit('segments.relative_ids_refreshed');
|
|
276
|
+
};
|
|
277
|
+
|
|
257
278
|
/**
|
|
258
279
|
* Returns the indexes of segments that match the given predicate.
|
|
259
280
|
*
|
|
@@ -317,6 +338,8 @@ define([
|
|
|
317
338
|
|
|
318
339
|
var removed = this._removeIndexes(indexes);
|
|
319
340
|
|
|
341
|
+
this.refreshRelativeIds();
|
|
342
|
+
|
|
320
343
|
this._peaks.emit('segments.remove', removed);
|
|
321
344
|
|
|
322
345
|
return removed;
|