@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@checksub_team/peaks_timeline",
3
- "version": "1.5.0",
3
+ "version": "1.5.2",
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
@@ -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
  };
@@ -71,7 +71,10 @@ define([
71
71
  y: options.y,
72
72
  width: options.width,
73
73
  height: options.height,
74
- text: Utils.removeLineBreaks(options.segment.labelText),
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
 
@@ -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() {
@@ -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;