wavesurfer.js 6.2.0 → 6.4.0
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/LICENSE +1 -1
- package/README.md +1 -10
- package/dist/plugin/wavesurfer.cursor.js +29 -49
- package/dist/plugin/wavesurfer.cursor.js.map +1 -1
- package/dist/plugin/wavesurfer.cursor.min.js +2 -2
- package/dist/plugin/wavesurfer.cursor.min.js.map +1 -1
- package/dist/plugin/wavesurfer.elan.js +19 -49
- package/dist/plugin/wavesurfer.elan.js.map +1 -1
- package/dist/plugin/wavesurfer.elan.min.js +1 -1
- package/dist/plugin/wavesurfer.elan.min.js.map +1 -1
- package/dist/plugin/wavesurfer.markers.js +87 -67
- package/dist/plugin/wavesurfer.markers.js.map +1 -1
- package/dist/plugin/wavesurfer.markers.min.js +2 -2
- package/dist/plugin/wavesurfer.markers.min.js.map +1 -1
- package/dist/plugin/wavesurfer.mediasession.js +5 -15
- package/dist/plugin/wavesurfer.mediasession.js.map +1 -1
- package/dist/plugin/wavesurfer.mediasession.min.js +1 -1
- package/dist/plugin/wavesurfer.mediasession.min.js.map +1 -1
- package/dist/plugin/wavesurfer.microphone.js +44 -62
- package/dist/plugin/wavesurfer.microphone.js.map +1 -1
- package/dist/plugin/wavesurfer.microphone.min.js +1 -1
- package/dist/plugin/wavesurfer.microphone.min.js.map +1 -1
- package/dist/plugin/wavesurfer.minimap.js +16 -68
- package/dist/plugin/wavesurfer.minimap.js.map +1 -1
- package/dist/plugin/wavesurfer.minimap.min.js +1 -1
- package/dist/plugin/wavesurfer.minimap.min.js.map +1 -1
- package/dist/plugin/wavesurfer.playhead.js +2 -29
- package/dist/plugin/wavesurfer.playhead.js.map +1 -1
- package/dist/plugin/wavesurfer.playhead.min.js +1 -1
- package/dist/plugin/wavesurfer.playhead.min.js.map +1 -1
- package/dist/plugin/wavesurfer.regions.js +99 -253
- package/dist/plugin/wavesurfer.regions.js.map +1 -1
- package/dist/plugin/wavesurfer.regions.min.js +2 -2
- package/dist/plugin/wavesurfer.regions.min.js.map +1 -1
- package/dist/plugin/wavesurfer.spectrogram.js +52 -147
- package/dist/plugin/wavesurfer.spectrogram.js.map +1 -1
- package/dist/plugin/wavesurfer.spectrogram.min.js +2 -2
- package/dist/plugin/wavesurfer.spectrogram.min.js.map +1 -1
- package/dist/plugin/wavesurfer.timeline.js +42 -85
- package/dist/plugin/wavesurfer.timeline.js.map +1 -1
- package/dist/plugin/wavesurfer.timeline.min.js +1 -1
- package/dist/plugin/wavesurfer.timeline.min.js.map +1 -1
- package/dist/wavesurfer-html-init.js +31 -53
- package/dist/wavesurfer-html-init.js.map +1 -1
- package/dist/wavesurfer-html-init.min.js +1 -1
- package/dist/wavesurfer-html-init.min.js.map +1 -1
- package/dist/wavesurfer.js +448 -1008
- package/dist/wavesurfer.js.map +1 -1
- package/dist/wavesurfer.min.js +2 -2
- package/dist/wavesurfer.min.js.map +1 -1
- package/package.json +18 -19
- package/src/drawer.multicanvas.js +4 -4
- package/src/plugin/cursor/index.js +15 -3
- package/src/plugin/markers/index.js +70 -5
- package/src/plugin/regions/index.js +1 -1
- package/src/plugin/spectrogram/index.js +1 -1
- package/src/wavesurfer.js +12 -9
- package/CHANGES.md +0 -474
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* wavesurfer.js minimap plugin 6.
|
|
2
|
+
* wavesurfer.js minimap plugin 6.4.0 (2022-11-05)
|
|
3
3
|
* https://wavesurfer-js.org
|
|
4
4
|
* @license BSD-3-Clause
|
|
5
5
|
*/
|
|
@@ -29,15 +29,10 @@ Object.defineProperty(exports, "__esModule", ({
|
|
|
29
29
|
value: true
|
|
30
30
|
}));
|
|
31
31
|
exports["default"] = void 0;
|
|
32
|
-
|
|
33
32
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
34
|
-
|
|
35
33
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
36
|
-
|
|
37
34
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
38
|
-
|
|
39
35
|
/*eslint no-console: ["error", { allow: ["warn"] }] */
|
|
40
|
-
|
|
41
36
|
/**
|
|
42
37
|
* @typedef {Object} MinimapPluginParams
|
|
43
38
|
* @desc Extends the `WavesurferParams` wavesurfer was initialised with
|
|
@@ -47,7 +42,6 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
|
47
42
|
* @property {?boolean} deferInit Set to true to manually call
|
|
48
43
|
* `initPlugin('minimap')`
|
|
49
44
|
*/
|
|
50
|
-
|
|
51
45
|
/**
|
|
52
46
|
* Renders a smaller version waveform as a minimap of the main waveform.
|
|
53
47
|
*
|
|
@@ -76,9 +70,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
|
76
70
|
var MinimapPlugin = /*#__PURE__*/function () {
|
|
77
71
|
function MinimapPlugin(params, ws) {
|
|
78
72
|
var _this = this;
|
|
79
|
-
|
|
80
73
|
_classCallCheck(this, MinimapPlugin);
|
|
81
|
-
|
|
82
74
|
this.params = Object.assign({}, ws.params, {
|
|
83
75
|
showRegions: false,
|
|
84
76
|
regionsPluginName: params.regionsPluginName || 'regions',
|
|
@@ -91,25 +83,21 @@ var MinimapPlugin = /*#__PURE__*/function () {
|
|
|
91
83
|
}, params, {
|
|
92
84
|
scrollParent: false,
|
|
93
85
|
fillParent: true
|
|
94
|
-
});
|
|
95
|
-
|
|
86
|
+
});
|
|
87
|
+
// if container is a selector, get the element
|
|
96
88
|
if (typeof params.container === 'string') {
|
|
97
89
|
var el = document.querySelector(params.container);
|
|
98
|
-
|
|
99
90
|
if (!el) {
|
|
100
91
|
console.warn("Wavesurfer minimap container ".concat(params.container, " was not found! The minimap will be automatically appended below the waveform."));
|
|
101
92
|
}
|
|
102
|
-
|
|
103
93
|
this.params.container = el;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
|
|
94
|
+
}
|
|
95
|
+
// if no container is specified add a new element and insert it
|
|
107
96
|
if (!params.container) {
|
|
108
97
|
this.params.container = ws.util.style(document.createElement('minimap'), {
|
|
109
98
|
display: 'block'
|
|
110
99
|
});
|
|
111
100
|
}
|
|
112
|
-
|
|
113
101
|
this.drawer = new ws.Drawer(this.params.container, this.params);
|
|
114
102
|
this.wavesurfer = ws;
|
|
115
103
|
this.util = ws.util;
|
|
@@ -119,97 +107,78 @@ var MinimapPlugin = /*#__PURE__*/function () {
|
|
|
119
107
|
this.regionsPlugin = this.wavesurfer[this.params.regionsPluginName];
|
|
120
108
|
this.drawer.createWrapper();
|
|
121
109
|
this.createElements();
|
|
122
|
-
var isInitialised = false;
|
|
110
|
+
var isInitialised = false;
|
|
123
111
|
|
|
112
|
+
// ws ready event listener
|
|
124
113
|
this._onShouldRender = function () {
|
|
125
114
|
// only bind the events in the first run
|
|
126
115
|
if (!isInitialised) {
|
|
127
116
|
_this.bindWavesurferEvents();
|
|
128
|
-
|
|
129
117
|
_this.bindMinimapEvents();
|
|
130
|
-
|
|
131
118
|
isInitialised = true;
|
|
132
|
-
}
|
|
119
|
+
}
|
|
120
|
+
// if there is no such element, append it to the container (below
|
|
133
121
|
// the waveform)
|
|
134
|
-
|
|
135
|
-
|
|
136
122
|
if (!document.body.contains(_this.params.container)) {
|
|
137
123
|
ws.container.insertBefore(_this.params.container, null);
|
|
138
124
|
}
|
|
139
|
-
|
|
140
125
|
if (_this.regionsPlugin && _this.params.showRegions) {
|
|
141
126
|
_this.drawRegions();
|
|
142
127
|
}
|
|
143
|
-
|
|
144
128
|
_this.render();
|
|
145
129
|
};
|
|
146
|
-
|
|
147
130
|
this._onAudioprocess = function (currentTime) {
|
|
148
131
|
_this.drawer.progress(_this.wavesurfer.backend.getPlayedPercents());
|
|
149
|
-
};
|
|
150
|
-
|
|
132
|
+
};
|
|
151
133
|
|
|
134
|
+
// ws seek event listener
|
|
152
135
|
this._onSeek = function () {
|
|
153
136
|
return _this.drawer.progress(ws.backend.getPlayedPercents());
|
|
154
|
-
};
|
|
155
|
-
|
|
137
|
+
};
|
|
156
138
|
|
|
139
|
+
// event listeners for the overview region
|
|
157
140
|
this._onScroll = function (e) {
|
|
158
141
|
if (!_this.draggingOverview) {
|
|
159
142
|
var orientedTarget = _this.util.withOrientation(e.target, _this.wavesurfer.params.vertical);
|
|
160
|
-
|
|
161
143
|
_this.moveOverviewRegion(orientedTarget.scrollLeft / _this.ratio);
|
|
162
144
|
}
|
|
163
145
|
};
|
|
164
|
-
|
|
165
146
|
this._onMouseover = function (e) {
|
|
166
147
|
if (_this.draggingOverview) {
|
|
167
148
|
_this.draggingOverview = false;
|
|
168
149
|
}
|
|
169
150
|
};
|
|
170
|
-
|
|
171
151
|
var prevWidth = 0;
|
|
172
152
|
this._onResize = ws.util.debounce(function () {
|
|
173
153
|
if (prevWidth != _this.drawer.wrapper.clientWidth) {
|
|
174
154
|
prevWidth = _this.drawer.wrapper.clientWidth;
|
|
175
|
-
|
|
176
155
|
_this.render();
|
|
177
|
-
|
|
178
156
|
_this.drawer.progress(_this.wavesurfer.backend.getPlayedPercents());
|
|
179
157
|
}
|
|
180
158
|
});
|
|
181
|
-
|
|
182
159
|
this._onLoading = function (percent) {
|
|
183
160
|
if (percent >= 100) {
|
|
184
161
|
_this.cleared = false;
|
|
185
162
|
return;
|
|
186
163
|
}
|
|
187
|
-
|
|
188
164
|
if (_this.cleared === true) {
|
|
189
165
|
return;
|
|
190
166
|
}
|
|
191
|
-
|
|
192
167
|
var len = _this.drawer.getWidth();
|
|
193
|
-
|
|
194
168
|
_this.drawer.drawPeaks([0], len, 0, len);
|
|
195
|
-
|
|
196
169
|
_this.cleared = true;
|
|
197
170
|
};
|
|
198
|
-
|
|
199
171
|
this._onZoom = function (e) {
|
|
200
172
|
_this.render();
|
|
201
173
|
};
|
|
202
|
-
|
|
203
174
|
this.wavesurfer.on('zoom', this._onZoom);
|
|
204
175
|
}
|
|
205
|
-
|
|
206
176
|
_createClass(MinimapPlugin, [{
|
|
207
177
|
key: "init",
|
|
208
178
|
value: function init() {
|
|
209
179
|
if (this.wavesurfer.isReady) {
|
|
210
180
|
this._onShouldRender();
|
|
211
181
|
}
|
|
212
|
-
|
|
213
182
|
this.wavesurfer.on(this.renderEvent, this._onShouldRender);
|
|
214
183
|
}
|
|
215
184
|
}, {
|
|
@@ -232,7 +201,6 @@ var MinimapPlugin = /*#__PURE__*/function () {
|
|
|
232
201
|
key: "drawRegions",
|
|
233
202
|
value: function drawRegions() {
|
|
234
203
|
var _this2 = this;
|
|
235
|
-
|
|
236
204
|
this.regions = {};
|
|
237
205
|
this.wavesurfer.on('region-created', function (region) {
|
|
238
206
|
_this2.regions[region.id] = region;
|
|
@@ -251,21 +219,15 @@ var MinimapPlugin = /*#__PURE__*/function () {
|
|
|
251
219
|
key: "renderRegions",
|
|
252
220
|
value: function renderRegions() {
|
|
253
221
|
var _this3 = this;
|
|
254
|
-
|
|
255
222
|
var regionElements = this.drawer.wrapper.querySelectorAll('region');
|
|
256
223
|
var i;
|
|
257
|
-
|
|
258
224
|
for (i = 0; i < regionElements.length; ++i) {
|
|
259
225
|
this.drawer.wrapper.removeChild(regionElements[i]);
|
|
260
226
|
}
|
|
261
|
-
|
|
262
227
|
Object.keys(this.regions).forEach(function (id) {
|
|
263
228
|
var region = _this3.regions[id];
|
|
264
|
-
|
|
265
229
|
var width = _this3.getWidth() * ((region.end - region.start) / _this3.wavesurfer.getDuration());
|
|
266
|
-
|
|
267
230
|
var left = _this3.getWidth() * (region.start / _this3.wavesurfer.getDuration());
|
|
268
|
-
|
|
269
231
|
var regionElement = _this3.util.style(document.createElement('region'), {
|
|
270
232
|
height: 'inherit',
|
|
271
233
|
backgroundColor: region.color,
|
|
@@ -274,9 +236,7 @@ var MinimapPlugin = /*#__PURE__*/function () {
|
|
|
274
236
|
display: 'block',
|
|
275
237
|
position: 'absolute'
|
|
276
238
|
});
|
|
277
|
-
|
|
278
239
|
regionElement.classList.add(id);
|
|
279
|
-
|
|
280
240
|
_this3.drawer.wrapper.appendChild(regionElement);
|
|
281
241
|
});
|
|
282
242
|
}
|
|
@@ -284,7 +244,6 @@ var MinimapPlugin = /*#__PURE__*/function () {
|
|
|
284
244
|
key: "createElements",
|
|
285
245
|
value: function createElements() {
|
|
286
246
|
this.drawer.createElements();
|
|
287
|
-
|
|
288
247
|
if (this.params.showOverview) {
|
|
289
248
|
this.overviewRegion = this.util.withOrientation(this.drawer.wrapper.appendChild(document.createElement('overview')), this.wavesurfer.params.vertical);
|
|
290
249
|
this.util.style(this.overviewRegion, {
|
|
@@ -308,7 +267,6 @@ var MinimapPlugin = /*#__PURE__*/function () {
|
|
|
308
267
|
this.wavesurfer.on('audioprocess', this._onAudioprocess);
|
|
309
268
|
this.wavesurfer.on('seek', this._onSeek);
|
|
310
269
|
this.wavesurfer.on('loading', this._onLoading);
|
|
311
|
-
|
|
312
270
|
if (this.params.showOverview) {
|
|
313
271
|
this.wavesurfer.on('scroll', this._onScroll);
|
|
314
272
|
this.wavesurfer.drawer.wrapper.addEventListener('mouseover', this._onMouseover);
|
|
@@ -318,16 +276,16 @@ var MinimapPlugin = /*#__PURE__*/function () {
|
|
|
318
276
|
key: "bindMinimapEvents",
|
|
319
277
|
value: function bindMinimapEvents() {
|
|
320
278
|
var _this4 = this;
|
|
321
|
-
|
|
322
279
|
var positionMouseDown = {
|
|
323
280
|
clientX: 0,
|
|
324
281
|
clientY: 0
|
|
325
282
|
};
|
|
326
283
|
var relativePositionX = 0;
|
|
327
|
-
var seek = true;
|
|
284
|
+
var seek = true;
|
|
285
|
+
|
|
286
|
+
// the following event listeners will be destroyed by using
|
|
328
287
|
// this.unAll() and nullifying the DOM node references after
|
|
329
288
|
// removing them
|
|
330
|
-
|
|
331
289
|
if (this.params.interact) {
|
|
332
290
|
this.drawer.wrapper.addEventListener('click', function (event) {
|
|
333
291
|
_this4.fireEvent('click', event, _this4.drawer.handleEvent(event));
|
|
@@ -335,18 +293,15 @@ var MinimapPlugin = /*#__PURE__*/function () {
|
|
|
335
293
|
this.on('click', function (event, position) {
|
|
336
294
|
if (seek) {
|
|
337
295
|
_this4.drawer.progress(position);
|
|
338
|
-
|
|
339
296
|
_this4.wavesurfer.seekAndCenter(position);
|
|
340
297
|
} else {
|
|
341
298
|
seek = true;
|
|
342
299
|
}
|
|
343
300
|
});
|
|
344
301
|
}
|
|
345
|
-
|
|
346
302
|
if (this.params.showOverview) {
|
|
347
303
|
this.overviewRegion.domElement.addEventListener('mousedown', function (e) {
|
|
348
304
|
var event = _this4.util.withOrientation(e, _this4.wavesurfer.params.vertical);
|
|
349
|
-
|
|
350
305
|
_this4.draggingOverview = true;
|
|
351
306
|
relativePositionX = event.layerX;
|
|
352
307
|
positionMouseDown.clientX = event.clientX;
|
|
@@ -355,13 +310,11 @@ var MinimapPlugin = /*#__PURE__*/function () {
|
|
|
355
310
|
this.drawer.wrapper.addEventListener('mousemove', function (e) {
|
|
356
311
|
if (_this4.draggingOverview) {
|
|
357
312
|
var event = _this4.util.withOrientation(e, _this4.wavesurfer.params.vertical);
|
|
358
|
-
|
|
359
313
|
_this4.moveOverviewRegion(event.clientX - _this4.drawer.container.getBoundingClientRect().left - relativePositionX);
|
|
360
314
|
}
|
|
361
315
|
});
|
|
362
316
|
this.drawer.wrapper.addEventListener('mouseup', function (e) {
|
|
363
317
|
var event = _this4.util.withOrientation(e, _this4.wavesurfer.params.vertical);
|
|
364
|
-
|
|
365
318
|
if (positionMouseDown.clientX - event.clientX === 0 && positionMouseDown.clientX - event.clientX === 0) {
|
|
366
319
|
seek = true;
|
|
367
320
|
_this4.draggingOverview = false;
|
|
@@ -379,7 +332,6 @@ var MinimapPlugin = /*#__PURE__*/function () {
|
|
|
379
332
|
var peaks = this.wavesurfer.backend.getPeaks(len, 0, len);
|
|
380
333
|
this.drawer.drawPeaks(peaks, len, 0, len);
|
|
381
334
|
this.drawer.progress(this.wavesurfer.backend.getPlayedPercents());
|
|
382
|
-
|
|
383
335
|
if (this.params.showOverview) {
|
|
384
336
|
//get proportional width of overview region considering the respective
|
|
385
337
|
//width of the drawers
|
|
@@ -404,11 +356,9 @@ var MinimapPlugin = /*#__PURE__*/function () {
|
|
|
404
356
|
} else {
|
|
405
357
|
this.overviewPosition = this.drawer.container.offsetWidth - this.overviewWidth;
|
|
406
358
|
}
|
|
407
|
-
|
|
408
359
|
this.util.style(this.overviewRegion, {
|
|
409
360
|
left: this.overviewPosition + 'px'
|
|
410
361
|
});
|
|
411
|
-
|
|
412
362
|
if (this.draggingOverview) {
|
|
413
363
|
this.wavesurfer.drawer.wrapper.scrollLeft = this.overviewPosition * this.ratio;
|
|
414
364
|
}
|
|
@@ -440,10 +390,8 @@ var MinimapPlugin = /*#__PURE__*/function () {
|
|
|
440
390
|
};
|
|
441
391
|
}
|
|
442
392
|
}]);
|
|
443
|
-
|
|
444
393
|
return MinimapPlugin;
|
|
445
394
|
}();
|
|
446
|
-
|
|
447
395
|
exports["default"] = MinimapPlugin;
|
|
448
396
|
module.exports = exports.default;
|
|
449
397
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wavesurfer.minimap.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/minimap/index.js","webpack://WaveSurfer/webpack/bootstrap","webpack://WaveSurfer/webpack/before-startup","webpack://WaveSurfer/webpack/startup","webpack://WaveSurfer/webpack/after-startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"WaveSurfer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"WaveSurfer\"] = factory();\n\telse\n\t\troot[\"WaveSurfer\"] = root[\"WaveSurfer\"] || {}, root[\"WaveSurfer\"][\"minimap\"] = factory();\n})(self, () => {\nreturn ","/*eslint no-console: [\"error\", { allow: [\"warn\"] }] */\n/**\n * @typedef {Object} MinimapPluginParams\n * @desc Extends the `WavesurferParams` wavesurfer was initialised with\n * @property {?string|HTMLElement} container CSS selector or HTML element where\n * the map should be rendered. By default it is simply appended\n * after the waveform.\n * @property {?boolean} deferInit Set to true to manually call\n * `initPlugin('minimap')`\n */\n\n/**\n * Renders a smaller version waveform as a minimap of the main waveform.\n *\n * @implements {PluginClass}\n * @extends {Observer}\n * @example\n * // es6\n * import MinimapPlugin from 'wavesurfer.minimap.js';\n *\n * // commonjs\n * var MinimapPlugin = require('wavesurfer.minimap.js');\n *\n * // if you are using <script> tags\n * var MinimapPlugin = window.WaveSurfer.minimap;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * MinimapPlugin.create({\n * // plugin options ...\n * })\n * ]\n * });\n */\nexport default class MinimapPlugin {\n /**\n * Minimap plugin definition factory\n *\n * This function must be used to create a plugin definition which can be\n * used by wavesurfer to correctly instantiate the plugin.\n *\n * @param {MinimapPluginParams} params parameters use to initialise the plugin\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'minimap',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n staticProps: {},\n instance: MinimapPlugin\n };\n }\n\n constructor(params, ws) {\n this.params = Object.assign(\n {},\n ws.params,\n {\n showRegions: false,\n regionsPluginName: params.regionsPluginName || 'regions',\n showOverview: false,\n overviewBorderColor: 'green',\n overviewBorderSize: 2,\n // the container should be different\n container: false,\n height: Math.max(Math.round(ws.params.height / 4), 20)\n },\n params,\n {\n scrollParent: false,\n fillParent: true\n }\n );\n // if container is a selector, get the element\n if (typeof params.container === 'string') {\n const el = document.querySelector(params.container);\n if (!el) {\n console.warn(\n `Wavesurfer minimap container ${params.container} was not found! The minimap will be automatically appended below the waveform.`\n );\n }\n this.params.container = el;\n }\n // if no container is specified add a new element and insert it\n if (!params.container) {\n this.params.container = ws.util.style(\n document.createElement('minimap'),\n {\n display: 'block'\n }\n );\n }\n this.drawer = new ws.Drawer(this.params.container, this.params);\n this.wavesurfer = ws;\n this.util = ws.util;\n this.cleared = false;\n this.renderEvent = 'redraw';\n this.overviewRegion = null;\n this.regionsPlugin = this.wavesurfer[this.params.regionsPluginName];\n\n this.drawer.createWrapper();\n this.createElements();\n let isInitialised = false;\n\n // ws ready event listener\n this._onShouldRender = () => {\n // only bind the events in the first run\n if (!isInitialised) {\n this.bindWavesurferEvents();\n this.bindMinimapEvents();\n isInitialised = true;\n }\n // if there is no such element, append it to the container (below\n // the waveform)\n if (!document.body.contains(this.params.container)) {\n ws.container.insertBefore(this.params.container, null);\n }\n\n if (this.regionsPlugin && this.params.showRegions) {\n this.drawRegions();\n }\n this.render();\n };\n\n this._onAudioprocess = currentTime => {\n this.drawer.progress(this.wavesurfer.backend.getPlayedPercents());\n };\n\n // ws seek event listener\n this._onSeek = () =>\n this.drawer.progress(ws.backend.getPlayedPercents());\n\n // event listeners for the overview region\n this._onScroll = e => {\n if (!this.draggingOverview) {\n const orientedTarget = this.util.withOrientation(e.target, this.wavesurfer.params.vertical);\n this.moveOverviewRegion(orientedTarget.scrollLeft / this.ratio);\n }\n };\n this._onMouseover = e => {\n if (this.draggingOverview) {\n this.draggingOverview = false;\n }\n };\n let prevWidth = 0;\n this._onResize = ws.util.debounce(() => {\n if (prevWidth != this.drawer.wrapper.clientWidth) {\n prevWidth = this.drawer.wrapper.clientWidth;\n this.render();\n this.drawer.progress(\n this.wavesurfer.backend.getPlayedPercents()\n );\n }\n });\n this._onLoading = percent => {\n if (percent >= 100) {\n this.cleared = false;\n return;\n }\n if (this.cleared === true) {\n return;\n }\n const len = this.drawer.getWidth();\n this.drawer.drawPeaks([0], len, 0, len);\n this.cleared = true;\n };\n this._onZoom = e => {\n this.render();\n };\n this.wavesurfer.on('zoom', this._onZoom);\n }\n\n init() {\n if (this.wavesurfer.isReady) {\n this._onShouldRender();\n }\n this.wavesurfer.on(this.renderEvent, this._onShouldRender);\n }\n\n destroy() {\n window.removeEventListener('resize', this._onResize, true);\n window.removeEventListener('orientationchange', this._onResize, true);\n this.wavesurfer.drawer.wrapper.removeEventListener(\n 'mouseover',\n this._onMouseover\n );\n this.wavesurfer.un(this.renderEvent, this._onShouldRender);\n this.wavesurfer.un('seek', this._onSeek);\n this.wavesurfer.un('scroll', this._onScroll);\n this.wavesurfer.un('audioprocess', this._onAudioprocess);\n this.wavesurfer.un('zoom', this._onZoom);\n this.wavesurfer.un('loading', this._onLoading);\n this.drawer.destroy();\n this.overviewRegion = null;\n this.unAll();\n }\n\n drawRegions() {\n this.regions = {};\n\n this.wavesurfer.on('region-created', region => {\n this.regions[region.id] = region;\n this.drawer.wrapper && this.renderRegions();\n });\n\n this.wavesurfer.on('region-updated', region => {\n this.regions[region.id] = region;\n this.drawer.wrapper && this.renderRegions();\n });\n\n this.wavesurfer.on('region-removed', region => {\n delete this.regions[region.id];\n this.drawer.wrapper && this.renderRegions();\n });\n }\n\n renderRegions() {\n const regionElements = this.drawer.wrapper.querySelectorAll('region');\n let i;\n for (i = 0; i < regionElements.length; ++i) {\n this.drawer.wrapper.removeChild(regionElements[i]);\n }\n\n Object.keys(this.regions).forEach(id => {\n const region = this.regions[id];\n const width =\n this.getWidth() *\n ((region.end - region.start) / this.wavesurfer.getDuration());\n const left =\n this.getWidth() *\n (region.start / this.wavesurfer.getDuration());\n const regionElement = this.util.style(\n document.createElement('region'),\n {\n height: 'inherit',\n backgroundColor: region.color,\n width: width + 'px',\n left: left + 'px',\n display: 'block',\n position: 'absolute'\n }\n );\n regionElement.classList.add(id);\n this.drawer.wrapper.appendChild(regionElement);\n });\n }\n\n createElements() {\n this.drawer.createElements();\n if (this.params.showOverview) {\n this.overviewRegion = this.util.withOrientation(\n this.drawer.wrapper.appendChild(document.createElement('overview')),\n this.wavesurfer.params.vertical\n );\n\n this.util.style(\n this.overviewRegion,\n {\n top: 0,\n bottom: 0,\n width: '0px',\n display: 'block',\n position: 'absolute',\n cursor: 'move',\n border:\n this.params.overviewBorderSize +\n 'px solid ' +\n this.params.overviewBorderColor,\n zIndex: 2,\n opacity: this.params.overviewOpacity\n }\n );\n }\n }\n\n bindWavesurferEvents() {\n window.addEventListener('resize', this._onResize, true);\n window.addEventListener('orientationchange', this._onResize, true);\n this.wavesurfer.on('audioprocess', this._onAudioprocess);\n this.wavesurfer.on('seek', this._onSeek);\n this.wavesurfer.on('loading', this._onLoading);\n if (this.params.showOverview) {\n this.wavesurfer.on('scroll', this._onScroll);\n this.wavesurfer.drawer.wrapper.addEventListener(\n 'mouseover',\n this._onMouseover\n );\n }\n }\n\n bindMinimapEvents() {\n const positionMouseDown = {\n clientX: 0,\n clientY: 0\n };\n let relativePositionX = 0;\n let seek = true;\n\n // the following event listeners will be destroyed by using\n // this.unAll() and nullifying the DOM node references after\n // removing them\n if (this.params.interact) {\n this.drawer.wrapper.addEventListener('click', event => {\n this.fireEvent('click', event, this.drawer.handleEvent(event));\n });\n\n this.on('click', (event, position) => {\n if (seek) {\n this.drawer.progress(position);\n this.wavesurfer.seekAndCenter(position);\n } else {\n seek = true;\n }\n });\n }\n\n if (this.params.showOverview) {\n this.overviewRegion.domElement.addEventListener('mousedown', e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n this.draggingOverview = true;\n relativePositionX = event.layerX;\n positionMouseDown.clientX = event.clientX;\n positionMouseDown.clientY = event.clientY;\n });\n\n this.drawer.wrapper.addEventListener('mousemove', e => {\n if (this.draggingOverview) {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n this.moveOverviewRegion(\n event.clientX -\n this.drawer.container.getBoundingClientRect().left -\n relativePositionX\n );\n }\n });\n\n this.drawer.wrapper.addEventListener('mouseup', e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n if (\n positionMouseDown.clientX - event.clientX === 0 &&\n positionMouseDown.clientX - event.clientX === 0\n ) {\n seek = true;\n this.draggingOverview = false;\n } else if (this.draggingOverview) {\n seek = false;\n this.draggingOverview = false;\n }\n });\n }\n }\n\n render() {\n const len = this.drawer.getWidth();\n const peaks = this.wavesurfer.backend.getPeaks(len, 0, len);\n this.drawer.drawPeaks(peaks, len, 0, len);\n this.drawer.progress(this.wavesurfer.backend.getPlayedPercents());\n\n if (this.params.showOverview) {\n //get proportional width of overview region considering the respective\n //width of the drawers\n this.ratio = this.wavesurfer.drawer.width / this.drawer.width;\n this.waveShowedWidth = this.wavesurfer.drawer.width / this.ratio;\n this.waveWidth = this.wavesurfer.drawer.width;\n this.overviewWidth = this.drawer.container.offsetWidth / this.ratio;\n this.overviewPosition = 0;\n this.moveOverviewRegion(\n this.wavesurfer.drawer.wrapper.scrollLeft / this.ratio\n );\n this.util.style(this.overviewRegion, {\n width: this.overviewWidth + 'px'\n });\n }\n }\n\n moveOverviewRegion(pixels) {\n if (pixels < 0) {\n this.overviewPosition = 0;\n } else if (\n pixels + this.overviewWidth <\n this.drawer.container.offsetWidth\n ) {\n this.overviewPosition = pixels;\n } else {\n this.overviewPosition =\n this.drawer.container.offsetWidth - this.overviewWidth;\n }\n this.util.style(this.overviewRegion, {\n left: this.overviewPosition + 'px'\n });\n if (this.draggingOverview) {\n this.wavesurfer.drawer.wrapper.scrollLeft =\n this.overviewPosition * this.ratio;\n }\n }\n\n getWidth() {\n return this.drawer.width / this.params.pixelRatio;\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/plugin/minimap/index.js\");\n",""],"names":["MinimapPlugin","params","ws","Object","assign","showRegions","regionsPluginName","showOverview","overviewBorderColor","overviewBorderSize","container","height","Math","max","round","scrollParent","fillParent","el","document","querySelector","console","warn","util","style","createElement","display","drawer","Drawer","wavesurfer","cleared","renderEvent","overviewRegion","regionsPlugin","createWrapper","createElements","isInitialised","_onShouldRender","bindWavesurferEvents","bindMinimapEvents","body","contains","insertBefore","drawRegions","render","_onAudioprocess","currentTime","progress","backend","getPlayedPercents","_onSeek","_onScroll","e","draggingOverview","orientedTarget","withOrientation","target","vertical","moveOverviewRegion","scrollLeft","ratio","_onMouseover","prevWidth","_onResize","debounce","wrapper","clientWidth","_onLoading","percent","len","getWidth","drawPeaks","_onZoom","on","isReady","window","removeEventListener","un","destroy","unAll","regions","region","id","renderRegions","regionElements","querySelectorAll","i","length","removeChild","keys","forEach","width","end","start","getDuration","left","regionElement","backgroundColor","color","position","classList","add","appendChild","top","bottom","cursor","border","zIndex","opacity","overviewOpacity","addEventListener","positionMouseDown","clientX","clientY","relativePositionX","seek","interact","event","fireEvent","handleEvent","seekAndCenter","domElement","layerX","getBoundingClientRect","peaks","getPeaks","waveShowedWidth","waveWidth","overviewWidth","offsetWidth","overviewPosition","pixels","pixelRatio","name","deferInit","staticProps","instance"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"wavesurfer.minimap.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/minimap/index.js","webpack://WaveSurfer/webpack/bootstrap","webpack://WaveSurfer/webpack/before-startup","webpack://WaveSurfer/webpack/startup","webpack://WaveSurfer/webpack/after-startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"WaveSurfer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"WaveSurfer\"] = factory();\n\telse\n\t\troot[\"WaveSurfer\"] = root[\"WaveSurfer\"] || {}, root[\"WaveSurfer\"][\"minimap\"] = factory();\n})(self, () => {\nreturn ","/*eslint no-console: [\"error\", { allow: [\"warn\"] }] */\n/**\n * @typedef {Object} MinimapPluginParams\n * @desc Extends the `WavesurferParams` wavesurfer was initialised with\n * @property {?string|HTMLElement} container CSS selector or HTML element where\n * the map should be rendered. By default it is simply appended\n * after the waveform.\n * @property {?boolean} deferInit Set to true to manually call\n * `initPlugin('minimap')`\n */\n\n/**\n * Renders a smaller version waveform as a minimap of the main waveform.\n *\n * @implements {PluginClass}\n * @extends {Observer}\n * @example\n * // es6\n * import MinimapPlugin from 'wavesurfer.minimap.js';\n *\n * // commonjs\n * var MinimapPlugin = require('wavesurfer.minimap.js');\n *\n * // if you are using <script> tags\n * var MinimapPlugin = window.WaveSurfer.minimap;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * MinimapPlugin.create({\n * // plugin options ...\n * })\n * ]\n * });\n */\nexport default class MinimapPlugin {\n /**\n * Minimap plugin definition factory\n *\n * This function must be used to create a plugin definition which can be\n * used by wavesurfer to correctly instantiate the plugin.\n *\n * @param {MinimapPluginParams} params parameters use to initialise the plugin\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'minimap',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n staticProps: {},\n instance: MinimapPlugin\n };\n }\n\n constructor(params, ws) {\n this.params = Object.assign(\n {},\n ws.params,\n {\n showRegions: false,\n regionsPluginName: params.regionsPluginName || 'regions',\n showOverview: false,\n overviewBorderColor: 'green',\n overviewBorderSize: 2,\n // the container should be different\n container: false,\n height: Math.max(Math.round(ws.params.height / 4), 20)\n },\n params,\n {\n scrollParent: false,\n fillParent: true\n }\n );\n // if container is a selector, get the element\n if (typeof params.container === 'string') {\n const el = document.querySelector(params.container);\n if (!el) {\n console.warn(\n `Wavesurfer minimap container ${params.container} was not found! The minimap will be automatically appended below the waveform.`\n );\n }\n this.params.container = el;\n }\n // if no container is specified add a new element and insert it\n if (!params.container) {\n this.params.container = ws.util.style(\n document.createElement('minimap'),\n {\n display: 'block'\n }\n );\n }\n this.drawer = new ws.Drawer(this.params.container, this.params);\n this.wavesurfer = ws;\n this.util = ws.util;\n this.cleared = false;\n this.renderEvent = 'redraw';\n this.overviewRegion = null;\n this.regionsPlugin = this.wavesurfer[this.params.regionsPluginName];\n\n this.drawer.createWrapper();\n this.createElements();\n let isInitialised = false;\n\n // ws ready event listener\n this._onShouldRender = () => {\n // only bind the events in the first run\n if (!isInitialised) {\n this.bindWavesurferEvents();\n this.bindMinimapEvents();\n isInitialised = true;\n }\n // if there is no such element, append it to the container (below\n // the waveform)\n if (!document.body.contains(this.params.container)) {\n ws.container.insertBefore(this.params.container, null);\n }\n\n if (this.regionsPlugin && this.params.showRegions) {\n this.drawRegions();\n }\n this.render();\n };\n\n this._onAudioprocess = currentTime => {\n this.drawer.progress(this.wavesurfer.backend.getPlayedPercents());\n };\n\n // ws seek event listener\n this._onSeek = () =>\n this.drawer.progress(ws.backend.getPlayedPercents());\n\n // event listeners for the overview region\n this._onScroll = e => {\n if (!this.draggingOverview) {\n const orientedTarget = this.util.withOrientation(e.target, this.wavesurfer.params.vertical);\n this.moveOverviewRegion(orientedTarget.scrollLeft / this.ratio);\n }\n };\n this._onMouseover = e => {\n if (this.draggingOverview) {\n this.draggingOverview = false;\n }\n };\n let prevWidth = 0;\n this._onResize = ws.util.debounce(() => {\n if (prevWidth != this.drawer.wrapper.clientWidth) {\n prevWidth = this.drawer.wrapper.clientWidth;\n this.render();\n this.drawer.progress(\n this.wavesurfer.backend.getPlayedPercents()\n );\n }\n });\n this._onLoading = percent => {\n if (percent >= 100) {\n this.cleared = false;\n return;\n }\n if (this.cleared === true) {\n return;\n }\n const len = this.drawer.getWidth();\n this.drawer.drawPeaks([0], len, 0, len);\n this.cleared = true;\n };\n this._onZoom = e => {\n this.render();\n };\n this.wavesurfer.on('zoom', this._onZoom);\n }\n\n init() {\n if (this.wavesurfer.isReady) {\n this._onShouldRender();\n }\n this.wavesurfer.on(this.renderEvent, this._onShouldRender);\n }\n\n destroy() {\n window.removeEventListener('resize', this._onResize, true);\n window.removeEventListener('orientationchange', this._onResize, true);\n this.wavesurfer.drawer.wrapper.removeEventListener(\n 'mouseover',\n this._onMouseover\n );\n this.wavesurfer.un(this.renderEvent, this._onShouldRender);\n this.wavesurfer.un('seek', this._onSeek);\n this.wavesurfer.un('scroll', this._onScroll);\n this.wavesurfer.un('audioprocess', this._onAudioprocess);\n this.wavesurfer.un('zoom', this._onZoom);\n this.wavesurfer.un('loading', this._onLoading);\n this.drawer.destroy();\n this.overviewRegion = null;\n this.unAll();\n }\n\n drawRegions() {\n this.regions = {};\n\n this.wavesurfer.on('region-created', region => {\n this.regions[region.id] = region;\n this.drawer.wrapper && this.renderRegions();\n });\n\n this.wavesurfer.on('region-updated', region => {\n this.regions[region.id] = region;\n this.drawer.wrapper && this.renderRegions();\n });\n\n this.wavesurfer.on('region-removed', region => {\n delete this.regions[region.id];\n this.drawer.wrapper && this.renderRegions();\n });\n }\n\n renderRegions() {\n const regionElements = this.drawer.wrapper.querySelectorAll('region');\n let i;\n for (i = 0; i < regionElements.length; ++i) {\n this.drawer.wrapper.removeChild(regionElements[i]);\n }\n\n Object.keys(this.regions).forEach(id => {\n const region = this.regions[id];\n const width =\n this.getWidth() *\n ((region.end - region.start) / this.wavesurfer.getDuration());\n const left =\n this.getWidth() *\n (region.start / this.wavesurfer.getDuration());\n const regionElement = this.util.style(\n document.createElement('region'),\n {\n height: 'inherit',\n backgroundColor: region.color,\n width: width + 'px',\n left: left + 'px',\n display: 'block',\n position: 'absolute'\n }\n );\n regionElement.classList.add(id);\n this.drawer.wrapper.appendChild(regionElement);\n });\n }\n\n createElements() {\n this.drawer.createElements();\n if (this.params.showOverview) {\n this.overviewRegion = this.util.withOrientation(\n this.drawer.wrapper.appendChild(document.createElement('overview')),\n this.wavesurfer.params.vertical\n );\n\n this.util.style(\n this.overviewRegion,\n {\n top: 0,\n bottom: 0,\n width: '0px',\n display: 'block',\n position: 'absolute',\n cursor: 'move',\n border:\n this.params.overviewBorderSize +\n 'px solid ' +\n this.params.overviewBorderColor,\n zIndex: 2,\n opacity: this.params.overviewOpacity\n }\n );\n }\n }\n\n bindWavesurferEvents() {\n window.addEventListener('resize', this._onResize, true);\n window.addEventListener('orientationchange', this._onResize, true);\n this.wavesurfer.on('audioprocess', this._onAudioprocess);\n this.wavesurfer.on('seek', this._onSeek);\n this.wavesurfer.on('loading', this._onLoading);\n if (this.params.showOverview) {\n this.wavesurfer.on('scroll', this._onScroll);\n this.wavesurfer.drawer.wrapper.addEventListener(\n 'mouseover',\n this._onMouseover\n );\n }\n }\n\n bindMinimapEvents() {\n const positionMouseDown = {\n clientX: 0,\n clientY: 0\n };\n let relativePositionX = 0;\n let seek = true;\n\n // the following event listeners will be destroyed by using\n // this.unAll() and nullifying the DOM node references after\n // removing them\n if (this.params.interact) {\n this.drawer.wrapper.addEventListener('click', event => {\n this.fireEvent('click', event, this.drawer.handleEvent(event));\n });\n\n this.on('click', (event, position) => {\n if (seek) {\n this.drawer.progress(position);\n this.wavesurfer.seekAndCenter(position);\n } else {\n seek = true;\n }\n });\n }\n\n if (this.params.showOverview) {\n this.overviewRegion.domElement.addEventListener('mousedown', e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n this.draggingOverview = true;\n relativePositionX = event.layerX;\n positionMouseDown.clientX = event.clientX;\n positionMouseDown.clientY = event.clientY;\n });\n\n this.drawer.wrapper.addEventListener('mousemove', e => {\n if (this.draggingOverview) {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n this.moveOverviewRegion(\n event.clientX -\n this.drawer.container.getBoundingClientRect().left -\n relativePositionX\n );\n }\n });\n\n this.drawer.wrapper.addEventListener('mouseup', e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n if (\n positionMouseDown.clientX - event.clientX === 0 &&\n positionMouseDown.clientX - event.clientX === 0\n ) {\n seek = true;\n this.draggingOverview = false;\n } else if (this.draggingOverview) {\n seek = false;\n this.draggingOverview = false;\n }\n });\n }\n }\n\n render() {\n const len = this.drawer.getWidth();\n const peaks = this.wavesurfer.backend.getPeaks(len, 0, len);\n this.drawer.drawPeaks(peaks, len, 0, len);\n this.drawer.progress(this.wavesurfer.backend.getPlayedPercents());\n\n if (this.params.showOverview) {\n //get proportional width of overview region considering the respective\n //width of the drawers\n this.ratio = this.wavesurfer.drawer.width / this.drawer.width;\n this.waveShowedWidth = this.wavesurfer.drawer.width / this.ratio;\n this.waveWidth = this.wavesurfer.drawer.width;\n this.overviewWidth = this.drawer.container.offsetWidth / this.ratio;\n this.overviewPosition = 0;\n this.moveOverviewRegion(\n this.wavesurfer.drawer.wrapper.scrollLeft / this.ratio\n );\n this.util.style(this.overviewRegion, {\n width: this.overviewWidth + 'px'\n });\n }\n }\n\n moveOverviewRegion(pixels) {\n if (pixels < 0) {\n this.overviewPosition = 0;\n } else if (\n pixels + this.overviewWidth <\n this.drawer.container.offsetWidth\n ) {\n this.overviewPosition = pixels;\n } else {\n this.overviewPosition =\n this.drawer.container.offsetWidth - this.overviewWidth;\n }\n this.util.style(this.overviewRegion, {\n left: this.overviewPosition + 'px'\n });\n if (this.draggingOverview) {\n this.wavesurfer.drawer.wrapper.scrollLeft =\n this.overviewPosition * this.ratio;\n }\n }\n\n getWidth() {\n return this.drawer.width / this.params.pixelRatio;\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/plugin/minimap/index.js\");\n",""],"names":["MinimapPlugin","params","ws","Object","assign","showRegions","regionsPluginName","showOverview","overviewBorderColor","overviewBorderSize","container","height","Math","max","round","scrollParent","fillParent","el","document","querySelector","console","warn","util","style","createElement","display","drawer","Drawer","wavesurfer","cleared","renderEvent","overviewRegion","regionsPlugin","createWrapper","createElements","isInitialised","_onShouldRender","bindWavesurferEvents","bindMinimapEvents","body","contains","insertBefore","drawRegions","render","_onAudioprocess","currentTime","progress","backend","getPlayedPercents","_onSeek","_onScroll","e","draggingOverview","orientedTarget","withOrientation","target","vertical","moveOverviewRegion","scrollLeft","ratio","_onMouseover","prevWidth","_onResize","debounce","wrapper","clientWidth","_onLoading","percent","len","getWidth","drawPeaks","_onZoom","on","isReady","window","removeEventListener","un","destroy","unAll","regions","region","id","renderRegions","regionElements","querySelectorAll","i","length","removeChild","keys","forEach","width","end","start","getDuration","left","regionElement","backgroundColor","color","position","classList","add","appendChild","top","bottom","cursor","border","zIndex","opacity","overviewOpacity","addEventListener","positionMouseDown","clientX","clientY","relativePositionX","seek","interact","event","fireEvent","handleEvent","seekAndCenter","domElement","layerX","getBoundingClientRect","peaks","getPeaks","waveShowedWidth","waveWidth","overviewWidth","offsetWidth","overviewPosition","pixels","pixelRatio","name","deferInit","staticProps","instance"],"sourceRoot":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wavesurfer.minimap.min.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/minimap/index.js","webpack://WaveSurfer/webpack/bootstrap","webpack://WaveSurfer/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"WaveSurfer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"WaveSurfer\"] = factory();\n\telse\n\t\troot[\"WaveSurfer\"] = root[\"WaveSurfer\"] || {}, root[\"WaveSurfer\"][\"minimap\"] = factory();\n})(self, () => {\nreturn ","/*eslint no-console: [\"error\", { allow: [\"warn\"] }] */\n/**\n * @typedef {Object} MinimapPluginParams\n * @desc Extends the `WavesurferParams` wavesurfer was initialised with\n * @property {?string|HTMLElement} container CSS selector or HTML element where\n * the map should be rendered. By default it is simply appended\n * after the waveform.\n * @property {?boolean} deferInit Set to true to manually call\n * `initPlugin('minimap')`\n */\n\n/**\n * Renders a smaller version waveform as a minimap of the main waveform.\n *\n * @implements {PluginClass}\n * @extends {Observer}\n * @example\n * // es6\n * import MinimapPlugin from 'wavesurfer.minimap.js';\n *\n * // commonjs\n * var MinimapPlugin = require('wavesurfer.minimap.js');\n *\n * // if you are using <script> tags\n * var MinimapPlugin = window.WaveSurfer.minimap;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * MinimapPlugin.create({\n * // plugin options ...\n * })\n * ]\n * });\n */\nexport default class MinimapPlugin {\n /**\n * Minimap plugin definition factory\n *\n * This function must be used to create a plugin definition which can be\n * used by wavesurfer to correctly instantiate the plugin.\n *\n * @param {MinimapPluginParams} params parameters use to initialise the plugin\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'minimap',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n staticProps: {},\n instance: MinimapPlugin\n };\n }\n\n constructor(params, ws) {\n this.params = Object.assign(\n {},\n ws.params,\n {\n showRegions: false,\n regionsPluginName: params.regionsPluginName || 'regions',\n showOverview: false,\n overviewBorderColor: 'green',\n overviewBorderSize: 2,\n // the container should be different\n container: false,\n height: Math.max(Math.round(ws.params.height / 4), 20)\n },\n params,\n {\n scrollParent: false,\n fillParent: true\n }\n );\n // if container is a selector, get the element\n if (typeof params.container === 'string') {\n const el = document.querySelector(params.container);\n if (!el) {\n console.warn(\n `Wavesurfer minimap container ${params.container} was not found! The minimap will be automatically appended below the waveform.`\n );\n }\n this.params.container = el;\n }\n // if no container is specified add a new element and insert it\n if (!params.container) {\n this.params.container = ws.util.style(\n document.createElement('minimap'),\n {\n display: 'block'\n }\n );\n }\n this.drawer = new ws.Drawer(this.params.container, this.params);\n this.wavesurfer = ws;\n this.util = ws.util;\n this.cleared = false;\n this.renderEvent = 'redraw';\n this.overviewRegion = null;\n this.regionsPlugin = this.wavesurfer[this.params.regionsPluginName];\n\n this.drawer.createWrapper();\n this.createElements();\n let isInitialised = false;\n\n // ws ready event listener\n this._onShouldRender = () => {\n // only bind the events in the first run\n if (!isInitialised) {\n this.bindWavesurferEvents();\n this.bindMinimapEvents();\n isInitialised = true;\n }\n // if there is no such element, append it to the container (below\n // the waveform)\n if (!document.body.contains(this.params.container)) {\n ws.container.insertBefore(this.params.container, null);\n }\n\n if (this.regionsPlugin && this.params.showRegions) {\n this.drawRegions();\n }\n this.render();\n };\n\n this._onAudioprocess = currentTime => {\n this.drawer.progress(this.wavesurfer.backend.getPlayedPercents());\n };\n\n // ws seek event listener\n this._onSeek = () =>\n this.drawer.progress(ws.backend.getPlayedPercents());\n\n // event listeners for the overview region\n this._onScroll = e => {\n if (!this.draggingOverview) {\n const orientedTarget = this.util.withOrientation(e.target, this.wavesurfer.params.vertical);\n this.moveOverviewRegion(orientedTarget.scrollLeft / this.ratio);\n }\n };\n this._onMouseover = e => {\n if (this.draggingOverview) {\n this.draggingOverview = false;\n }\n };\n let prevWidth = 0;\n this._onResize = ws.util.debounce(() => {\n if (prevWidth != this.drawer.wrapper.clientWidth) {\n prevWidth = this.drawer.wrapper.clientWidth;\n this.render();\n this.drawer.progress(\n this.wavesurfer.backend.getPlayedPercents()\n );\n }\n });\n this._onLoading = percent => {\n if (percent >= 100) {\n this.cleared = false;\n return;\n }\n if (this.cleared === true) {\n return;\n }\n const len = this.drawer.getWidth();\n this.drawer.drawPeaks([0], len, 0, len);\n this.cleared = true;\n };\n this._onZoom = e => {\n this.render();\n };\n this.wavesurfer.on('zoom', this._onZoom);\n }\n\n init() {\n if (this.wavesurfer.isReady) {\n this._onShouldRender();\n }\n this.wavesurfer.on(this.renderEvent, this._onShouldRender);\n }\n\n destroy() {\n window.removeEventListener('resize', this._onResize, true);\n window.removeEventListener('orientationchange', this._onResize, true);\n this.wavesurfer.drawer.wrapper.removeEventListener(\n 'mouseover',\n this._onMouseover\n );\n this.wavesurfer.un(this.renderEvent, this._onShouldRender);\n this.wavesurfer.un('seek', this._onSeek);\n this.wavesurfer.un('scroll', this._onScroll);\n this.wavesurfer.un('audioprocess', this._onAudioprocess);\n this.wavesurfer.un('zoom', this._onZoom);\n this.wavesurfer.un('loading', this._onLoading);\n this.drawer.destroy();\n this.overviewRegion = null;\n this.unAll();\n }\n\n drawRegions() {\n this.regions = {};\n\n this.wavesurfer.on('region-created', region => {\n this.regions[region.id] = region;\n this.drawer.wrapper && this.renderRegions();\n });\n\n this.wavesurfer.on('region-updated', region => {\n this.regions[region.id] = region;\n this.drawer.wrapper && this.renderRegions();\n });\n\n this.wavesurfer.on('region-removed', region => {\n delete this.regions[region.id];\n this.drawer.wrapper && this.renderRegions();\n });\n }\n\n renderRegions() {\n const regionElements = this.drawer.wrapper.querySelectorAll('region');\n let i;\n for (i = 0; i < regionElements.length; ++i) {\n this.drawer.wrapper.removeChild(regionElements[i]);\n }\n\n Object.keys(this.regions).forEach(id => {\n const region = this.regions[id];\n const width =\n this.getWidth() *\n ((region.end - region.start) / this.wavesurfer.getDuration());\n const left =\n this.getWidth() *\n (region.start / this.wavesurfer.getDuration());\n const regionElement = this.util.style(\n document.createElement('region'),\n {\n height: 'inherit',\n backgroundColor: region.color,\n width: width + 'px',\n left: left + 'px',\n display: 'block',\n position: 'absolute'\n }\n );\n regionElement.classList.add(id);\n this.drawer.wrapper.appendChild(regionElement);\n });\n }\n\n createElements() {\n this.drawer.createElements();\n if (this.params.showOverview) {\n this.overviewRegion = this.util.withOrientation(\n this.drawer.wrapper.appendChild(document.createElement('overview')),\n this.wavesurfer.params.vertical\n );\n\n this.util.style(\n this.overviewRegion,\n {\n top: 0,\n bottom: 0,\n width: '0px',\n display: 'block',\n position: 'absolute',\n cursor: 'move',\n border:\n this.params.overviewBorderSize +\n 'px solid ' +\n this.params.overviewBorderColor,\n zIndex: 2,\n opacity: this.params.overviewOpacity\n }\n );\n }\n }\n\n bindWavesurferEvents() {\n window.addEventListener('resize', this._onResize, true);\n window.addEventListener('orientationchange', this._onResize, true);\n this.wavesurfer.on('audioprocess', this._onAudioprocess);\n this.wavesurfer.on('seek', this._onSeek);\n this.wavesurfer.on('loading', this._onLoading);\n if (this.params.showOverview) {\n this.wavesurfer.on('scroll', this._onScroll);\n this.wavesurfer.drawer.wrapper.addEventListener(\n 'mouseover',\n this._onMouseover\n );\n }\n }\n\n bindMinimapEvents() {\n const positionMouseDown = {\n clientX: 0,\n clientY: 0\n };\n let relativePositionX = 0;\n let seek = true;\n\n // the following event listeners will be destroyed by using\n // this.unAll() and nullifying the DOM node references after\n // removing them\n if (this.params.interact) {\n this.drawer.wrapper.addEventListener('click', event => {\n this.fireEvent('click', event, this.drawer.handleEvent(event));\n });\n\n this.on('click', (event, position) => {\n if (seek) {\n this.drawer.progress(position);\n this.wavesurfer.seekAndCenter(position);\n } else {\n seek = true;\n }\n });\n }\n\n if (this.params.showOverview) {\n this.overviewRegion.domElement.addEventListener('mousedown', e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n this.draggingOverview = true;\n relativePositionX = event.layerX;\n positionMouseDown.clientX = event.clientX;\n positionMouseDown.clientY = event.clientY;\n });\n\n this.drawer.wrapper.addEventListener('mousemove', e => {\n if (this.draggingOverview) {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n this.moveOverviewRegion(\n event.clientX -\n this.drawer.container.getBoundingClientRect().left -\n relativePositionX\n );\n }\n });\n\n this.drawer.wrapper.addEventListener('mouseup', e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n if (\n positionMouseDown.clientX - event.clientX === 0 &&\n positionMouseDown.clientX - event.clientX === 0\n ) {\n seek = true;\n this.draggingOverview = false;\n } else if (this.draggingOverview) {\n seek = false;\n this.draggingOverview = false;\n }\n });\n }\n }\n\n render() {\n const len = this.drawer.getWidth();\n const peaks = this.wavesurfer.backend.getPeaks(len, 0, len);\n this.drawer.drawPeaks(peaks, len, 0, len);\n this.drawer.progress(this.wavesurfer.backend.getPlayedPercents());\n\n if (this.params.showOverview) {\n //get proportional width of overview region considering the respective\n //width of the drawers\n this.ratio = this.wavesurfer.drawer.width / this.drawer.width;\n this.waveShowedWidth = this.wavesurfer.drawer.width / this.ratio;\n this.waveWidth = this.wavesurfer.drawer.width;\n this.overviewWidth = this.drawer.container.offsetWidth / this.ratio;\n this.overviewPosition = 0;\n this.moveOverviewRegion(\n this.wavesurfer.drawer.wrapper.scrollLeft / this.ratio\n );\n this.util.style(this.overviewRegion, {\n width: this.overviewWidth + 'px'\n });\n }\n }\n\n moveOverviewRegion(pixels) {\n if (pixels < 0) {\n this.overviewPosition = 0;\n } else if (\n pixels + this.overviewWidth <\n this.drawer.container.offsetWidth\n ) {\n this.overviewPosition = pixels;\n } else {\n this.overviewPosition =\n this.drawer.container.offsetWidth - this.overviewWidth;\n }\n this.util.style(this.overviewRegion, {\n left: this.overviewPosition + 'px'\n });\n if (this.draggingOverview) {\n this.wavesurfer.drawer.wrapper.scrollLeft =\n this.overviewPosition * this.ratio;\n }\n }\n\n getWidth() {\n return this.drawer.width / this.params.pixelRatio;\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(521);\n"],"names":["root","factory","exports","module","define","amd","self","MinimapPlugin","params","ws","this","Object","assign","showRegions","regionsPluginName","showOverview","overviewBorderColor","overviewBorderSize","container","height","Math","max","round","scrollParent","fillParent","el","document","querySelector","console","warn","util","style","createElement","display","drawer","Drawer","wavesurfer","cleared","renderEvent","overviewRegion","regionsPlugin","createWrapper","createElements","isInitialised","_onShouldRender","bindWavesurferEvents","bindMinimapEvents","body","contains","insertBefore","drawRegions","render","_onAudioprocess","currentTime","progress","backend","getPlayedPercents","_onSeek","_onScroll","e","draggingOverview","orientedTarget","withOrientation","target","vertical","moveOverviewRegion","scrollLeft","ratio","_onMouseover","prevWidth","_onResize","debounce","wrapper","clientWidth","_onLoading","percent","len","getWidth","drawPeaks","_onZoom","on","name","deferInit","staticProps","instance","isReady","window","removeEventListener","un","destroy","unAll","regions","region","id","renderRegions","i","regionElements","querySelectorAll","length","removeChild","keys","forEach","width","end","start","getDuration","left","regionElement","backgroundColor","color","position","classList","add","appendChild","top","bottom","cursor","border","zIndex","opacity","overviewOpacity","addEventListener","positionMouseDown","clientX","clientY","relativePositionX","seek","interact","event","fireEvent","handleEvent","seekAndCenter","domElement","layerX","getBoundingClientRect","peaks","getPeaks","waveShowedWidth","waveWidth","overviewWidth","offsetWidth","overviewPosition","pixels","pixelRatio","__webpack_module_cache__","__webpack_exports__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"wavesurfer.minimap.min.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/minimap/index.js","webpack://WaveSurfer/webpack/bootstrap","webpack://WaveSurfer/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"WaveSurfer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"WaveSurfer\"] = factory();\n\telse\n\t\troot[\"WaveSurfer\"] = root[\"WaveSurfer\"] || {}, root[\"WaveSurfer\"][\"minimap\"] = factory();\n})(self, () => {\nreturn ","/*eslint no-console: [\"error\", { allow: [\"warn\"] }] */\n/**\n * @typedef {Object} MinimapPluginParams\n * @desc Extends the `WavesurferParams` wavesurfer was initialised with\n * @property {?string|HTMLElement} container CSS selector or HTML element where\n * the map should be rendered. By default it is simply appended\n * after the waveform.\n * @property {?boolean} deferInit Set to true to manually call\n * `initPlugin('minimap')`\n */\n\n/**\n * Renders a smaller version waveform as a minimap of the main waveform.\n *\n * @implements {PluginClass}\n * @extends {Observer}\n * @example\n * // es6\n * import MinimapPlugin from 'wavesurfer.minimap.js';\n *\n * // commonjs\n * var MinimapPlugin = require('wavesurfer.minimap.js');\n *\n * // if you are using <script> tags\n * var MinimapPlugin = window.WaveSurfer.minimap;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * MinimapPlugin.create({\n * // plugin options ...\n * })\n * ]\n * });\n */\nexport default class MinimapPlugin {\n /**\n * Minimap plugin definition factory\n *\n * This function must be used to create a plugin definition which can be\n * used by wavesurfer to correctly instantiate the plugin.\n *\n * @param {MinimapPluginParams} params parameters use to initialise the plugin\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'minimap',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n staticProps: {},\n instance: MinimapPlugin\n };\n }\n\n constructor(params, ws) {\n this.params = Object.assign(\n {},\n ws.params,\n {\n showRegions: false,\n regionsPluginName: params.regionsPluginName || 'regions',\n showOverview: false,\n overviewBorderColor: 'green',\n overviewBorderSize: 2,\n // the container should be different\n container: false,\n height: Math.max(Math.round(ws.params.height / 4), 20)\n },\n params,\n {\n scrollParent: false,\n fillParent: true\n }\n );\n // if container is a selector, get the element\n if (typeof params.container === 'string') {\n const el = document.querySelector(params.container);\n if (!el) {\n console.warn(\n `Wavesurfer minimap container ${params.container} was not found! The minimap will be automatically appended below the waveform.`\n );\n }\n this.params.container = el;\n }\n // if no container is specified add a new element and insert it\n if (!params.container) {\n this.params.container = ws.util.style(\n document.createElement('minimap'),\n {\n display: 'block'\n }\n );\n }\n this.drawer = new ws.Drawer(this.params.container, this.params);\n this.wavesurfer = ws;\n this.util = ws.util;\n this.cleared = false;\n this.renderEvent = 'redraw';\n this.overviewRegion = null;\n this.regionsPlugin = this.wavesurfer[this.params.regionsPluginName];\n\n this.drawer.createWrapper();\n this.createElements();\n let isInitialised = false;\n\n // ws ready event listener\n this._onShouldRender = () => {\n // only bind the events in the first run\n if (!isInitialised) {\n this.bindWavesurferEvents();\n this.bindMinimapEvents();\n isInitialised = true;\n }\n // if there is no such element, append it to the container (below\n // the waveform)\n if (!document.body.contains(this.params.container)) {\n ws.container.insertBefore(this.params.container, null);\n }\n\n if (this.regionsPlugin && this.params.showRegions) {\n this.drawRegions();\n }\n this.render();\n };\n\n this._onAudioprocess = currentTime => {\n this.drawer.progress(this.wavesurfer.backend.getPlayedPercents());\n };\n\n // ws seek event listener\n this._onSeek = () =>\n this.drawer.progress(ws.backend.getPlayedPercents());\n\n // event listeners for the overview region\n this._onScroll = e => {\n if (!this.draggingOverview) {\n const orientedTarget = this.util.withOrientation(e.target, this.wavesurfer.params.vertical);\n this.moveOverviewRegion(orientedTarget.scrollLeft / this.ratio);\n }\n };\n this._onMouseover = e => {\n if (this.draggingOverview) {\n this.draggingOverview = false;\n }\n };\n let prevWidth = 0;\n this._onResize = ws.util.debounce(() => {\n if (prevWidth != this.drawer.wrapper.clientWidth) {\n prevWidth = this.drawer.wrapper.clientWidth;\n this.render();\n this.drawer.progress(\n this.wavesurfer.backend.getPlayedPercents()\n );\n }\n });\n this._onLoading = percent => {\n if (percent >= 100) {\n this.cleared = false;\n return;\n }\n if (this.cleared === true) {\n return;\n }\n const len = this.drawer.getWidth();\n this.drawer.drawPeaks([0], len, 0, len);\n this.cleared = true;\n };\n this._onZoom = e => {\n this.render();\n };\n this.wavesurfer.on('zoom', this._onZoom);\n }\n\n init() {\n if (this.wavesurfer.isReady) {\n this._onShouldRender();\n }\n this.wavesurfer.on(this.renderEvent, this._onShouldRender);\n }\n\n destroy() {\n window.removeEventListener('resize', this._onResize, true);\n window.removeEventListener('orientationchange', this._onResize, true);\n this.wavesurfer.drawer.wrapper.removeEventListener(\n 'mouseover',\n this._onMouseover\n );\n this.wavesurfer.un(this.renderEvent, this._onShouldRender);\n this.wavesurfer.un('seek', this._onSeek);\n this.wavesurfer.un('scroll', this._onScroll);\n this.wavesurfer.un('audioprocess', this._onAudioprocess);\n this.wavesurfer.un('zoom', this._onZoom);\n this.wavesurfer.un('loading', this._onLoading);\n this.drawer.destroy();\n this.overviewRegion = null;\n this.unAll();\n }\n\n drawRegions() {\n this.regions = {};\n\n this.wavesurfer.on('region-created', region => {\n this.regions[region.id] = region;\n this.drawer.wrapper && this.renderRegions();\n });\n\n this.wavesurfer.on('region-updated', region => {\n this.regions[region.id] = region;\n this.drawer.wrapper && this.renderRegions();\n });\n\n this.wavesurfer.on('region-removed', region => {\n delete this.regions[region.id];\n this.drawer.wrapper && this.renderRegions();\n });\n }\n\n renderRegions() {\n const regionElements = this.drawer.wrapper.querySelectorAll('region');\n let i;\n for (i = 0; i < regionElements.length; ++i) {\n this.drawer.wrapper.removeChild(regionElements[i]);\n }\n\n Object.keys(this.regions).forEach(id => {\n const region = this.regions[id];\n const width =\n this.getWidth() *\n ((region.end - region.start) / this.wavesurfer.getDuration());\n const left =\n this.getWidth() *\n (region.start / this.wavesurfer.getDuration());\n const regionElement = this.util.style(\n document.createElement('region'),\n {\n height: 'inherit',\n backgroundColor: region.color,\n width: width + 'px',\n left: left + 'px',\n display: 'block',\n position: 'absolute'\n }\n );\n regionElement.classList.add(id);\n this.drawer.wrapper.appendChild(regionElement);\n });\n }\n\n createElements() {\n this.drawer.createElements();\n if (this.params.showOverview) {\n this.overviewRegion = this.util.withOrientation(\n this.drawer.wrapper.appendChild(document.createElement('overview')),\n this.wavesurfer.params.vertical\n );\n\n this.util.style(\n this.overviewRegion,\n {\n top: 0,\n bottom: 0,\n width: '0px',\n display: 'block',\n position: 'absolute',\n cursor: 'move',\n border:\n this.params.overviewBorderSize +\n 'px solid ' +\n this.params.overviewBorderColor,\n zIndex: 2,\n opacity: this.params.overviewOpacity\n }\n );\n }\n }\n\n bindWavesurferEvents() {\n window.addEventListener('resize', this._onResize, true);\n window.addEventListener('orientationchange', this._onResize, true);\n this.wavesurfer.on('audioprocess', this._onAudioprocess);\n this.wavesurfer.on('seek', this._onSeek);\n this.wavesurfer.on('loading', this._onLoading);\n if (this.params.showOverview) {\n this.wavesurfer.on('scroll', this._onScroll);\n this.wavesurfer.drawer.wrapper.addEventListener(\n 'mouseover',\n this._onMouseover\n );\n }\n }\n\n bindMinimapEvents() {\n const positionMouseDown = {\n clientX: 0,\n clientY: 0\n };\n let relativePositionX = 0;\n let seek = true;\n\n // the following event listeners will be destroyed by using\n // this.unAll() and nullifying the DOM node references after\n // removing them\n if (this.params.interact) {\n this.drawer.wrapper.addEventListener('click', event => {\n this.fireEvent('click', event, this.drawer.handleEvent(event));\n });\n\n this.on('click', (event, position) => {\n if (seek) {\n this.drawer.progress(position);\n this.wavesurfer.seekAndCenter(position);\n } else {\n seek = true;\n }\n });\n }\n\n if (this.params.showOverview) {\n this.overviewRegion.domElement.addEventListener('mousedown', e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n this.draggingOverview = true;\n relativePositionX = event.layerX;\n positionMouseDown.clientX = event.clientX;\n positionMouseDown.clientY = event.clientY;\n });\n\n this.drawer.wrapper.addEventListener('mousemove', e => {\n if (this.draggingOverview) {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n this.moveOverviewRegion(\n event.clientX -\n this.drawer.container.getBoundingClientRect().left -\n relativePositionX\n );\n }\n });\n\n this.drawer.wrapper.addEventListener('mouseup', e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n if (\n positionMouseDown.clientX - event.clientX === 0 &&\n positionMouseDown.clientX - event.clientX === 0\n ) {\n seek = true;\n this.draggingOverview = false;\n } else if (this.draggingOverview) {\n seek = false;\n this.draggingOverview = false;\n }\n });\n }\n }\n\n render() {\n const len = this.drawer.getWidth();\n const peaks = this.wavesurfer.backend.getPeaks(len, 0, len);\n this.drawer.drawPeaks(peaks, len, 0, len);\n this.drawer.progress(this.wavesurfer.backend.getPlayedPercents());\n\n if (this.params.showOverview) {\n //get proportional width of overview region considering the respective\n //width of the drawers\n this.ratio = this.wavesurfer.drawer.width / this.drawer.width;\n this.waveShowedWidth = this.wavesurfer.drawer.width / this.ratio;\n this.waveWidth = this.wavesurfer.drawer.width;\n this.overviewWidth = this.drawer.container.offsetWidth / this.ratio;\n this.overviewPosition = 0;\n this.moveOverviewRegion(\n this.wavesurfer.drawer.wrapper.scrollLeft / this.ratio\n );\n this.util.style(this.overviewRegion, {\n width: this.overviewWidth + 'px'\n });\n }\n }\n\n moveOverviewRegion(pixels) {\n if (pixels < 0) {\n this.overviewPosition = 0;\n } else if (\n pixels + this.overviewWidth <\n this.drawer.container.offsetWidth\n ) {\n this.overviewPosition = pixels;\n } else {\n this.overviewPosition =\n this.drawer.container.offsetWidth - this.overviewWidth;\n }\n this.util.style(this.overviewRegion, {\n left: this.overviewPosition + 'px'\n });\n if (this.draggingOverview) {\n this.wavesurfer.drawer.wrapper.scrollLeft =\n this.overviewPosition * this.ratio;\n }\n }\n\n getWidth() {\n return this.drawer.width / this.params.pixelRatio;\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(521);\n"],"names":["root","factory","exports","module","define","amd","self","MinimapPlugin","params","ws","this","Object","assign","showRegions","regionsPluginName","showOverview","overviewBorderColor","overviewBorderSize","container","height","Math","max","round","scrollParent","fillParent","el","document","querySelector","console","warn","util","style","createElement","display","drawer","Drawer","wavesurfer","cleared","renderEvent","overviewRegion","regionsPlugin","createWrapper","createElements","isInitialised","_onShouldRender","bindWavesurferEvents","bindMinimapEvents","body","contains","insertBefore","drawRegions","render","_onAudioprocess","currentTime","progress","backend","getPlayedPercents","_onSeek","_onScroll","e","draggingOverview","orientedTarget","withOrientation","target","vertical","moveOverviewRegion","scrollLeft","ratio","_onMouseover","prevWidth","_onResize","debounce","wrapper","clientWidth","_onLoading","percent","len","getWidth","drawPeaks","_onZoom","on","name","deferInit","staticProps","instance","isReady","window","removeEventListener","un","destroy","unAll","regions","region","id","renderRegions","i","regionElements","querySelectorAll","length","removeChild","keys","forEach","width","end","start","getDuration","left","regionElement","backgroundColor","color","position","classList","add","appendChild","top","bottom","cursor","border","zIndex","opacity","overviewOpacity","addEventListener","positionMouseDown","clientX","clientY","relativePositionX","seek","interact","event","fireEvent","handleEvent","seekAndCenter","domElement","layerX","getBoundingClientRect","peaks","getPeaks","waveShowedWidth","waveWidth","overviewWidth","offsetWidth","overviewPosition","pixels","pixelRatio","__webpack_module_cache__","__webpack_exports__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__"],"sourceRoot":""}
|