wavesurfer.js 6.3.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.
Files changed (53) hide show
  1. package/README.md +1 -0
  2. package/dist/plugin/wavesurfer.cursor.js +29 -49
  3. package/dist/plugin/wavesurfer.cursor.js.map +1 -1
  4. package/dist/plugin/wavesurfer.cursor.min.js +2 -2
  5. package/dist/plugin/wavesurfer.cursor.min.js.map +1 -1
  6. package/dist/plugin/wavesurfer.elan.js +19 -49
  7. package/dist/plugin/wavesurfer.elan.js.map +1 -1
  8. package/dist/plugin/wavesurfer.elan.min.js +1 -1
  9. package/dist/plugin/wavesurfer.elan.min.js.map +1 -1
  10. package/dist/plugin/wavesurfer.markers.js +57 -72
  11. package/dist/plugin/wavesurfer.markers.js.map +1 -1
  12. package/dist/plugin/wavesurfer.markers.min.js +2 -2
  13. package/dist/plugin/wavesurfer.markers.min.js.map +1 -1
  14. package/dist/plugin/wavesurfer.mediasession.js +5 -15
  15. package/dist/plugin/wavesurfer.mediasession.js.map +1 -1
  16. package/dist/plugin/wavesurfer.mediasession.min.js +1 -1
  17. package/dist/plugin/wavesurfer.mediasession.min.js.map +1 -1
  18. package/dist/plugin/wavesurfer.microphone.js +44 -62
  19. package/dist/plugin/wavesurfer.microphone.js.map +1 -1
  20. package/dist/plugin/wavesurfer.microphone.min.js +1 -1
  21. package/dist/plugin/wavesurfer.microphone.min.js.map +1 -1
  22. package/dist/plugin/wavesurfer.minimap.js +16 -68
  23. package/dist/plugin/wavesurfer.minimap.js.map +1 -1
  24. package/dist/plugin/wavesurfer.minimap.min.js +1 -1
  25. package/dist/plugin/wavesurfer.minimap.min.js.map +1 -1
  26. package/dist/plugin/wavesurfer.playhead.js +2 -29
  27. package/dist/plugin/wavesurfer.playhead.js.map +1 -1
  28. package/dist/plugin/wavesurfer.playhead.min.js +1 -1
  29. package/dist/plugin/wavesurfer.playhead.min.js.map +1 -1
  30. package/dist/plugin/wavesurfer.regions.js +98 -252
  31. package/dist/plugin/wavesurfer.regions.js.map +1 -1
  32. package/dist/plugin/wavesurfer.regions.min.js +1 -1
  33. package/dist/plugin/wavesurfer.regions.min.js.map +1 -1
  34. package/dist/plugin/wavesurfer.spectrogram.js +51 -146
  35. package/dist/plugin/wavesurfer.spectrogram.js.map +1 -1
  36. package/dist/plugin/wavesurfer.spectrogram.min.js +1 -1
  37. package/dist/plugin/wavesurfer.spectrogram.min.js.map +1 -1
  38. package/dist/plugin/wavesurfer.timeline.js +42 -85
  39. package/dist/plugin/wavesurfer.timeline.js.map +1 -1
  40. package/dist/plugin/wavesurfer.timeline.min.js +1 -1
  41. package/dist/plugin/wavesurfer.timeline.min.js.map +1 -1
  42. package/dist/wavesurfer-html-init.js +31 -53
  43. package/dist/wavesurfer-html-init.js.map +1 -1
  44. package/dist/wavesurfer-html-init.min.js +1 -1
  45. package/dist/wavesurfer-html-init.min.js.map +1 -1
  46. package/dist/wavesurfer.js +419 -982
  47. package/dist/wavesurfer.js.map +1 -1
  48. package/dist/wavesurfer.min.js +2 -2
  49. package/dist/wavesurfer.min.js.map +1 -1
  50. package/package.json +6 -6
  51. package/src/plugin/cursor/index.js +15 -3
  52. package/src/plugin/markers/index.js +39 -0
  53. package/CHANGES.md +0 -482
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * wavesurfer.js playhead plugin 6.3.0 (2022-10-03)
2
+ * wavesurfer.js playhead plugin 6.4.0 (2022-11-05)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */
@@ -29,13 +29,9 @@ 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
  /**
40
36
  * The playhead plugin separates the notion of the currently playing position from
41
37
  * a 'play-start' position. Having a playhead enables a listening pattern
@@ -62,14 +58,12 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
62
58
  * ]
63
59
  * });
64
60
  */
65
- var DEFAULT_FILL_COLOR = '#CF2F00';
66
61
 
62
+ var DEFAULT_FILL_COLOR = '#CF2F00';
67
63
  var PlayheadPlugin = /*#__PURE__*/function () {
68
64
  function PlayheadPlugin(params, ws) {
69
65
  var _this = this;
70
-
71
66
  _classCallCheck(this, PlayheadPlugin);
72
-
73
67
  this.params = params;
74
68
  this.options = {};
75
69
  ['draw', 'moveOnSeek', 'returnOnPause'].forEach(function (opt) {
@@ -86,33 +80,25 @@ var PlayheadPlugin = /*#__PURE__*/function () {
86
80
  this.markerHeight = 16;
87
81
  this.playheadTime = 0;
88
82
  this.unFuns = [];
89
-
90
83
  this._onResize = function () {
91
84
  _this._updatePlayheadPosition();
92
85
  };
93
-
94
86
  this._onReady = function () {
95
87
  _this.wrapper = _this.wavesurfer.drawer.wrapper;
96
-
97
88
  _this._updatePlayheadPosition();
98
89
  };
99
90
  }
100
-
101
91
  _createClass(PlayheadPlugin, [{
102
92
  key: "_onBackendCreated",
103
93
  value: function _onBackendCreated() {
104
94
  var _this2 = this;
105
-
106
95
  this.wrapper = this.wavesurfer.drawer.wrapper;
107
-
108
96
  if (this.options.draw) {
109
97
  this._createPlayheadElement();
110
-
111
98
  window.addEventListener('resize', this._onResize, true);
112
99
  window.addEventListener('orientationchange', this._onResize, true);
113
100
  this.wavesurferOn('zoom', this._onResize);
114
101
  }
115
-
116
102
  this.wavesurferOn('pause', function () {
117
103
  if (_this2.options.returnOnPause) {
118
104
  _this2.wavesurfer.setCurrentTime(_this2.playheadTime);
@@ -121,7 +107,6 @@ var PlayheadPlugin = /*#__PURE__*/function () {
121
107
  this.wavesurferOn('seek', function () {
122
108
  if (_this2.options.moveOnSeek) {
123
109
  _this2.playheadTime = _this2.wavesurfer.getCurrentTime();
124
-
125
110
  _this2._updatePlayheadPosition();
126
111
  }
127
112
  });
@@ -131,7 +116,6 @@ var PlayheadPlugin = /*#__PURE__*/function () {
131
116
  key: "wavesurferOn",
132
117
  value: function wavesurferOn(ev, fn) {
133
118
  var _this3 = this;
134
-
135
119
  var ret = this.wavesurfer.on(ev, fn);
136
120
  this.unFuns.push(function () {
137
121
  _this3.wavesurfer.un(ev, fn);
@@ -142,10 +126,8 @@ var PlayheadPlugin = /*#__PURE__*/function () {
142
126
  key: "init",
143
127
  value: function init() {
144
128
  var _this4 = this;
145
-
146
129
  if (this.wavesurfer.isReady) {
147
130
  this._onBackendCreated();
148
-
149
131
  this._onReady();
150
132
  } else {
151
133
  var r;
@@ -172,11 +154,9 @@ var PlayheadPlugin = /*#__PURE__*/function () {
172
154
  key: "setPlayheadTime",
173
155
  value: function setPlayheadTime(time) {
174
156
  this.playheadTime = time;
175
-
176
157
  if (!this.wavesurfer.isPlaying()) {
177
158
  this.wavesurfer.setCurrentTime(time);
178
159
  }
179
-
180
160
  this._updatePlayheadPosition();
181
161
  }
182
162
  }, {
@@ -202,7 +182,6 @@ var PlayheadPlugin = /*#__PURE__*/function () {
202
182
  key: "_createPlayheadElement",
203
183
  value: function _createPlayheadElement() {
204
184
  var _this5 = this;
205
-
206
185
  var el = document.createElement('playhead');
207
186
  el.className = 'wavesurfer-playhead';
208
187
  this.style(el, {
@@ -211,13 +190,10 @@ var PlayheadPlugin = /*#__PURE__*/function () {
211
190
  display: 'flex',
212
191
  'flex-direction': 'column'
213
192
  });
214
-
215
193
  var pointer = this._createPointerSVG();
216
-
217
194
  el.appendChild(pointer);
218
195
  pointer.addEventListener('click', function (e) {
219
196
  e.stopPropagation();
220
-
221
197
  _this5.wavesurfer.setCurrentTime(_this5.playheadTime);
222
198
  });
223
199
  var line = document.createElement('div');
@@ -238,7 +214,6 @@ var PlayheadPlugin = /*#__PURE__*/function () {
238
214
  if (!this.element) {
239
215
  return;
240
216
  }
241
-
242
217
  var duration = this.wavesurfer.getDuration();
243
218
  var elementWidth = this.wavesurfer.drawer.width / this.wavesurfer.params.pixelRatio;
244
219
  var positionPct = this.playheadTime / duration;
@@ -275,10 +250,8 @@ var PlayheadPlugin = /*#__PURE__*/function () {
275
250
  };
276
251
  }
277
252
  }]);
278
-
279
253
  return PlayheadPlugin;
280
254
  }();
281
-
282
255
  exports["default"] = PlayheadPlugin;
283
256
  module.exports = exports.default;
284
257
 
@@ -1 +1 @@
1
- {"version":3,"file":"wavesurfer.playhead.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/playhead/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\"][\"playhead\"] = factory();\n})(self, () => {\nreturn ","\n/**\n * The playhead plugin separates the notion of the currently playing position from\n * a 'play-start' position. Having a playhead enables a listening pattern\n * (commonly found in DAWs) that involves listening to a section of a track\n * repeatedly, rather than listening to an entire track in a linear fashion.\n *\n * @implements {PluginClass}\n *\n * @example\n * import PlayheadPlugin from 'wavesurfer.playhead.js';\n *\n * // if you are using <script> tags\n * var PlayheadPlugin = window.WaveSurfer.playhead;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * PlayheadPlugin.create({\n * movePlayheadOnSeek: true,\n * drawPlayhead: false,\n * movePlayheadOnPause: false\n * })\n * ]\n * });\n */\n\nconst DEFAULT_FILL_COLOR = '#CF2F00';\n\nexport default class PlayheadPlugin {\n /**\n * @typedef {Object} PlayheadPluginParams\n * @property {?boolean} draw=true Draw the playhead as a triangle/line\n * @property {?boolean} moveOnSeek=true Seeking (via clicking) while playing moves the playhead\n * @property {?boolean} returnOnPause=true Pausing the track returns the seek position to the playhead\n */\n\n /**\n * Playhead 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 {PlayheadPluginParams} params parameters use to initialise the plugin\n * @since 5.0.0\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'playhead',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n instance: PlayheadPlugin\n };\n }\n\n constructor(params, ws) {\n this.params = params;\n this.options = {};\n\n ['draw', 'moveOnSeek', 'returnOnPause'].forEach(opt => {\n if (opt in params) {\n this.options[opt] = params[opt];\n } else {\n this.options[opt] = true;\n }\n });\n\n\n this.wavesurfer = ws;\n this.util = ws.util;\n this.style = this.util.style;\n this.markerWidth = 21;\n this.markerHeight = 16;\n this.playheadTime = 0;\n this.unFuns = [];\n\n this._onResize = () => {\n this._updatePlayheadPosition();\n };\n\n this._onReady = () => {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n this._updatePlayheadPosition();\n };\n }\n\n _onBackendCreated() {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n\n if (this.options.draw) {\n this._createPlayheadElement();\n window.addEventListener('resize', this._onResize, true);\n window.addEventListener('orientationchange', this._onResize, true);\n\n this.wavesurferOn('zoom', this._onResize);\n }\n\n this.wavesurferOn('pause', () => {\n if ( this.options.returnOnPause ) {\n this.wavesurfer.setCurrentTime(this.playheadTime);\n }\n });\n\n this.wavesurferOn('seek', () => {\n if ( this.options.moveOnSeek ) {\n this.playheadTime = this.wavesurfer.getCurrentTime();\n this._updatePlayheadPosition();\n }\n });\n\n this.playheadTime = this.wavesurfer.getCurrentTime();\n }\n\n wavesurferOn(ev, fn) {\n let ret = this.wavesurfer.on(ev, fn);\n this.unFuns.push(() => {\n this.wavesurfer.un(ev, fn);\n });\n return ret;\n }\n\n init() {\n if (this.wavesurfer.isReady) {\n this._onBackendCreated();\n this._onReady();\n } else {\n let r;\n\n this.wavesurfer.once('ready', () => this._onReady());\n this.wavesurfer.once('backend-created', () => this._onBackendCreated());\n }\n }\n\n destroy() {\n this.unFuns.forEach(f => f());\n this.unFuns = [];\n\n this.wrapper.removeChild(this.element);\n\n window.removeEventListener('resize', this._onResize, true);\n window.removeEventListener('orientationchange', this._onResize, true);\n }\n\n setPlayheadTime(time) {\n this.playheadTime = time;\n\n if (!this.wavesurfer.isPlaying()) {\n this.wavesurfer.setCurrentTime(time);\n }\n this._updatePlayheadPosition();\n }\n\n _createPointerSVG() {\n const svgNS = 'http://www.w3.org/2000/svg';\n\n const el = document.createElementNS(svgNS, 'svg');\n const path = document.createElementNS(svgNS, 'path');\n\n el.setAttribute('viewBox', '0 0 33 30');\n path.setAttribute('d', 'M16.75 31 31.705 5.566A3 3 0 0 0 29.146 1H4.354a3 3 0 0 0-2.56 4.566L16.75 31z');\n path.setAttribute('stroke', '#979797');\n path.setAttribute('fill', DEFAULT_FILL_COLOR);\n\n el.appendChild(path);\n\n this.style(el, {\n width: this.markerWidth + 'px',\n height: this.markerHeight + 'px',\n cursor: 'pointer',\n 'z-index': 5\n });\n return el;\n }\n\n _createPlayheadElement() {\n const el = document.createElement('playhead');\n el.className = 'wavesurfer-playhead';\n\n this.style(el, {\n position: 'absolute',\n height: '100%',\n display: 'flex',\n 'flex-direction': 'column'\n });\n\n const pointer = this._createPointerSVG();\n el.appendChild(pointer);\n\n pointer.addEventListener('click', e => {\n e.stopPropagation();\n this.wavesurfer.setCurrentTime(this.playheadTime);\n });\n\n const line = document.createElement('div');\n this.style(line, {\n 'flex-grow': 1,\n 'margin-left': (this.markerWidth / 2 - 0.5) + 'px',\n background: 'black',\n width: '1px',\n opacity: 0.1\n });\n\n el.appendChild(line);\n\n this.element = el;\n this.wrapper.appendChild(el);\n }\n\n _updatePlayheadPosition() {\n if (!this.element) {\n return;\n }\n\n const duration = this.wavesurfer.getDuration();\n const elementWidth =\n this.wavesurfer.drawer.width /\n this.wavesurfer.params.pixelRatio;\n\n const positionPct = this.playheadTime / duration;\n this.style(this.element, {\n left: ((elementWidth * positionPct) - (this.markerWidth / 2)) + 'px'\n });\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/playhead/index.js\");\n",""],"names":["DEFAULT_FILL_COLOR","PlayheadPlugin","params","ws","options","forEach","opt","wavesurfer","util","style","markerWidth","markerHeight","playheadTime","unFuns","_onResize","_updatePlayheadPosition","_onReady","wrapper","drawer","draw","_createPlayheadElement","window","addEventListener","wavesurferOn","returnOnPause","setCurrentTime","moveOnSeek","getCurrentTime","ev","fn","ret","on","push","un","isReady","_onBackendCreated","r","once","f","removeChild","element","removeEventListener","time","isPlaying","svgNS","el","document","createElementNS","path","setAttribute","appendChild","width","height","cursor","createElement","className","position","display","pointer","_createPointerSVG","e","stopPropagation","line","background","opacity","duration","getDuration","elementWidth","pixelRatio","positionPct","left","name","deferInit","instance"],"sourceRoot":""}
1
+ {"version":3,"file":"wavesurfer.playhead.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/playhead/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\"][\"playhead\"] = factory();\n})(self, () => {\nreturn ","\n/**\n * The playhead plugin separates the notion of the currently playing position from\n * a 'play-start' position. Having a playhead enables a listening pattern\n * (commonly found in DAWs) that involves listening to a section of a track\n * repeatedly, rather than listening to an entire track in a linear fashion.\n *\n * @implements {PluginClass}\n *\n * @example\n * import PlayheadPlugin from 'wavesurfer.playhead.js';\n *\n * // if you are using <script> tags\n * var PlayheadPlugin = window.WaveSurfer.playhead;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * PlayheadPlugin.create({\n * movePlayheadOnSeek: true,\n * drawPlayhead: false,\n * movePlayheadOnPause: false\n * })\n * ]\n * });\n */\n\nconst DEFAULT_FILL_COLOR = '#CF2F00';\n\nexport default class PlayheadPlugin {\n /**\n * @typedef {Object} PlayheadPluginParams\n * @property {?boolean} draw=true Draw the playhead as a triangle/line\n * @property {?boolean} moveOnSeek=true Seeking (via clicking) while playing moves the playhead\n * @property {?boolean} returnOnPause=true Pausing the track returns the seek position to the playhead\n */\n\n /**\n * Playhead 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 {PlayheadPluginParams} params parameters use to initialise the plugin\n * @since 5.0.0\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'playhead',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n instance: PlayheadPlugin\n };\n }\n\n constructor(params, ws) {\n this.params = params;\n this.options = {};\n\n ['draw', 'moveOnSeek', 'returnOnPause'].forEach(opt => {\n if (opt in params) {\n this.options[opt] = params[opt];\n } else {\n this.options[opt] = true;\n }\n });\n\n\n this.wavesurfer = ws;\n this.util = ws.util;\n this.style = this.util.style;\n this.markerWidth = 21;\n this.markerHeight = 16;\n this.playheadTime = 0;\n this.unFuns = [];\n\n this._onResize = () => {\n this._updatePlayheadPosition();\n };\n\n this._onReady = () => {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n this._updatePlayheadPosition();\n };\n }\n\n _onBackendCreated() {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n\n if (this.options.draw) {\n this._createPlayheadElement();\n window.addEventListener('resize', this._onResize, true);\n window.addEventListener('orientationchange', this._onResize, true);\n\n this.wavesurferOn('zoom', this._onResize);\n }\n\n this.wavesurferOn('pause', () => {\n if ( this.options.returnOnPause ) {\n this.wavesurfer.setCurrentTime(this.playheadTime);\n }\n });\n\n this.wavesurferOn('seek', () => {\n if ( this.options.moveOnSeek ) {\n this.playheadTime = this.wavesurfer.getCurrentTime();\n this._updatePlayheadPosition();\n }\n });\n\n this.playheadTime = this.wavesurfer.getCurrentTime();\n }\n\n wavesurferOn(ev, fn) {\n let ret = this.wavesurfer.on(ev, fn);\n this.unFuns.push(() => {\n this.wavesurfer.un(ev, fn);\n });\n return ret;\n }\n\n init() {\n if (this.wavesurfer.isReady) {\n this._onBackendCreated();\n this._onReady();\n } else {\n let r;\n\n this.wavesurfer.once('ready', () => this._onReady());\n this.wavesurfer.once('backend-created', () => this._onBackendCreated());\n }\n }\n\n destroy() {\n this.unFuns.forEach(f => f());\n this.unFuns = [];\n\n this.wrapper.removeChild(this.element);\n\n window.removeEventListener('resize', this._onResize, true);\n window.removeEventListener('orientationchange', this._onResize, true);\n }\n\n setPlayheadTime(time) {\n this.playheadTime = time;\n\n if (!this.wavesurfer.isPlaying()) {\n this.wavesurfer.setCurrentTime(time);\n }\n this._updatePlayheadPosition();\n }\n\n _createPointerSVG() {\n const svgNS = 'http://www.w3.org/2000/svg';\n\n const el = document.createElementNS(svgNS, 'svg');\n const path = document.createElementNS(svgNS, 'path');\n\n el.setAttribute('viewBox', '0 0 33 30');\n path.setAttribute('d', 'M16.75 31 31.705 5.566A3 3 0 0 0 29.146 1H4.354a3 3 0 0 0-2.56 4.566L16.75 31z');\n path.setAttribute('stroke', '#979797');\n path.setAttribute('fill', DEFAULT_FILL_COLOR);\n\n el.appendChild(path);\n\n this.style(el, {\n width: this.markerWidth + 'px',\n height: this.markerHeight + 'px',\n cursor: 'pointer',\n 'z-index': 5\n });\n return el;\n }\n\n _createPlayheadElement() {\n const el = document.createElement('playhead');\n el.className = 'wavesurfer-playhead';\n\n this.style(el, {\n position: 'absolute',\n height: '100%',\n display: 'flex',\n 'flex-direction': 'column'\n });\n\n const pointer = this._createPointerSVG();\n el.appendChild(pointer);\n\n pointer.addEventListener('click', e => {\n e.stopPropagation();\n this.wavesurfer.setCurrentTime(this.playheadTime);\n });\n\n const line = document.createElement('div');\n this.style(line, {\n 'flex-grow': 1,\n 'margin-left': (this.markerWidth / 2 - 0.5) + 'px',\n background: 'black',\n width: '1px',\n opacity: 0.1\n });\n\n el.appendChild(line);\n\n this.element = el;\n this.wrapper.appendChild(el);\n }\n\n _updatePlayheadPosition() {\n if (!this.element) {\n return;\n }\n\n const duration = this.wavesurfer.getDuration();\n const elementWidth =\n this.wavesurfer.drawer.width /\n this.wavesurfer.params.pixelRatio;\n\n const positionPct = this.playheadTime / duration;\n this.style(this.element, {\n left: ((elementWidth * positionPct) - (this.markerWidth / 2)) + 'px'\n });\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/playhead/index.js\");\n",""],"names":["DEFAULT_FILL_COLOR","PlayheadPlugin","params","ws","options","forEach","opt","wavesurfer","util","style","markerWidth","markerHeight","playheadTime","unFuns","_onResize","_updatePlayheadPosition","_onReady","wrapper","drawer","draw","_createPlayheadElement","window","addEventListener","wavesurferOn","returnOnPause","setCurrentTime","moveOnSeek","getCurrentTime","ev","fn","ret","on","push","un","isReady","_onBackendCreated","r","once","f","removeChild","element","removeEventListener","time","isPlaying","svgNS","el","document","createElementNS","path","setAttribute","appendChild","width","height","cursor","createElement","className","position","display","pointer","_createPointerSVG","e","stopPropagation","line","background","opacity","duration","getDuration","elementWidth","pixelRatio","positionPct","left","name","deferInit","instance"],"sourceRoot":""}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * wavesurfer.js playhead plugin 6.3.0 (2022-10-03)
2
+ * wavesurfer.js playhead plugin 6.4.0 (2022-11-05)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"wavesurfer.playhead.min.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/playhead/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\"][\"playhead\"] = factory();\n})(self, () => {\nreturn ","\n/**\n * The playhead plugin separates the notion of the currently playing position from\n * a 'play-start' position. Having a playhead enables a listening pattern\n * (commonly found in DAWs) that involves listening to a section of a track\n * repeatedly, rather than listening to an entire track in a linear fashion.\n *\n * @implements {PluginClass}\n *\n * @example\n * import PlayheadPlugin from 'wavesurfer.playhead.js';\n *\n * // if you are using <script> tags\n * var PlayheadPlugin = window.WaveSurfer.playhead;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * PlayheadPlugin.create({\n * movePlayheadOnSeek: true,\n * drawPlayhead: false,\n * movePlayheadOnPause: false\n * })\n * ]\n * });\n */\n\nconst DEFAULT_FILL_COLOR = '#CF2F00';\n\nexport default class PlayheadPlugin {\n /**\n * @typedef {Object} PlayheadPluginParams\n * @property {?boolean} draw=true Draw the playhead as a triangle/line\n * @property {?boolean} moveOnSeek=true Seeking (via clicking) while playing moves the playhead\n * @property {?boolean} returnOnPause=true Pausing the track returns the seek position to the playhead\n */\n\n /**\n * Playhead 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 {PlayheadPluginParams} params parameters use to initialise the plugin\n * @since 5.0.0\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'playhead',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n instance: PlayheadPlugin\n };\n }\n\n constructor(params, ws) {\n this.params = params;\n this.options = {};\n\n ['draw', 'moveOnSeek', 'returnOnPause'].forEach(opt => {\n if (opt in params) {\n this.options[opt] = params[opt];\n } else {\n this.options[opt] = true;\n }\n });\n\n\n this.wavesurfer = ws;\n this.util = ws.util;\n this.style = this.util.style;\n this.markerWidth = 21;\n this.markerHeight = 16;\n this.playheadTime = 0;\n this.unFuns = [];\n\n this._onResize = () => {\n this._updatePlayheadPosition();\n };\n\n this._onReady = () => {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n this._updatePlayheadPosition();\n };\n }\n\n _onBackendCreated() {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n\n if (this.options.draw) {\n this._createPlayheadElement();\n window.addEventListener('resize', this._onResize, true);\n window.addEventListener('orientationchange', this._onResize, true);\n\n this.wavesurferOn('zoom', this._onResize);\n }\n\n this.wavesurferOn('pause', () => {\n if ( this.options.returnOnPause ) {\n this.wavesurfer.setCurrentTime(this.playheadTime);\n }\n });\n\n this.wavesurferOn('seek', () => {\n if ( this.options.moveOnSeek ) {\n this.playheadTime = this.wavesurfer.getCurrentTime();\n this._updatePlayheadPosition();\n }\n });\n\n this.playheadTime = this.wavesurfer.getCurrentTime();\n }\n\n wavesurferOn(ev, fn) {\n let ret = this.wavesurfer.on(ev, fn);\n this.unFuns.push(() => {\n this.wavesurfer.un(ev, fn);\n });\n return ret;\n }\n\n init() {\n if (this.wavesurfer.isReady) {\n this._onBackendCreated();\n this._onReady();\n } else {\n let r;\n\n this.wavesurfer.once('ready', () => this._onReady());\n this.wavesurfer.once('backend-created', () => this._onBackendCreated());\n }\n }\n\n destroy() {\n this.unFuns.forEach(f => f());\n this.unFuns = [];\n\n this.wrapper.removeChild(this.element);\n\n window.removeEventListener('resize', this._onResize, true);\n window.removeEventListener('orientationchange', this._onResize, true);\n }\n\n setPlayheadTime(time) {\n this.playheadTime = time;\n\n if (!this.wavesurfer.isPlaying()) {\n this.wavesurfer.setCurrentTime(time);\n }\n this._updatePlayheadPosition();\n }\n\n _createPointerSVG() {\n const svgNS = 'http://www.w3.org/2000/svg';\n\n const el = document.createElementNS(svgNS, 'svg');\n const path = document.createElementNS(svgNS, 'path');\n\n el.setAttribute('viewBox', '0 0 33 30');\n path.setAttribute('d', 'M16.75 31 31.705 5.566A3 3 0 0 0 29.146 1H4.354a3 3 0 0 0-2.56 4.566L16.75 31z');\n path.setAttribute('stroke', '#979797');\n path.setAttribute('fill', DEFAULT_FILL_COLOR);\n\n el.appendChild(path);\n\n this.style(el, {\n width: this.markerWidth + 'px',\n height: this.markerHeight + 'px',\n cursor: 'pointer',\n 'z-index': 5\n });\n return el;\n }\n\n _createPlayheadElement() {\n const el = document.createElement('playhead');\n el.className = 'wavesurfer-playhead';\n\n this.style(el, {\n position: 'absolute',\n height: '100%',\n display: 'flex',\n 'flex-direction': 'column'\n });\n\n const pointer = this._createPointerSVG();\n el.appendChild(pointer);\n\n pointer.addEventListener('click', e => {\n e.stopPropagation();\n this.wavesurfer.setCurrentTime(this.playheadTime);\n });\n\n const line = document.createElement('div');\n this.style(line, {\n 'flex-grow': 1,\n 'margin-left': (this.markerWidth / 2 - 0.5) + 'px',\n background: 'black',\n width: '1px',\n opacity: 0.1\n });\n\n el.appendChild(line);\n\n this.element = el;\n this.wrapper.appendChild(el);\n }\n\n _updatePlayheadPosition() {\n if (!this.element) {\n return;\n }\n\n const duration = this.wavesurfer.getDuration();\n const elementWidth =\n this.wavesurfer.drawer.width /\n this.wavesurfer.params.pixelRatio;\n\n const positionPct = this.playheadTime / duration;\n this.style(this.element, {\n left: ((elementWidth * positionPct) - (this.markerWidth / 2)) + 'px'\n });\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__(374);\n"],"names":["root","factory","exports","module","define","amd","self","PlayheadPlugin","params","ws","this","options","forEach","opt","wavesurfer","util","style","markerWidth","markerHeight","playheadTime","unFuns","_onResize","_updatePlayheadPosition","_onReady","wrapper","drawer","name","deferInit","instance","draw","_createPlayheadElement","window","addEventListener","wavesurferOn","returnOnPause","setCurrentTime","moveOnSeek","getCurrentTime","ev","fn","ret","on","push","un","isReady","_onBackendCreated","once","f","removeChild","element","removeEventListener","time","isPlaying","svgNS","el","document","createElementNS","path","setAttribute","appendChild","width","height","cursor","createElement","className","position","display","pointer","_createPointerSVG","e","stopPropagation","line","background","opacity","duration","getDuration","elementWidth","pixelRatio","positionPct","left","__webpack_module_cache__","__webpack_exports__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__"],"sourceRoot":""}
1
+ {"version":3,"file":"wavesurfer.playhead.min.js","mappings":"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","sources":["webpack://WaveSurfer/webpack/universalModuleDefinition","webpack://WaveSurfer/./src/plugin/playhead/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\"][\"playhead\"] = factory();\n})(self, () => {\nreturn ","\n/**\n * The playhead plugin separates the notion of the currently playing position from\n * a 'play-start' position. Having a playhead enables a listening pattern\n * (commonly found in DAWs) that involves listening to a section of a track\n * repeatedly, rather than listening to an entire track in a linear fashion.\n *\n * @implements {PluginClass}\n *\n * @example\n * import PlayheadPlugin from 'wavesurfer.playhead.js';\n *\n * // if you are using <script> tags\n * var PlayheadPlugin = window.WaveSurfer.playhead;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * PlayheadPlugin.create({\n * movePlayheadOnSeek: true,\n * drawPlayhead: false,\n * movePlayheadOnPause: false\n * })\n * ]\n * });\n */\n\nconst DEFAULT_FILL_COLOR = '#CF2F00';\n\nexport default class PlayheadPlugin {\n /**\n * @typedef {Object} PlayheadPluginParams\n * @property {?boolean} draw=true Draw the playhead as a triangle/line\n * @property {?boolean} moveOnSeek=true Seeking (via clicking) while playing moves the playhead\n * @property {?boolean} returnOnPause=true Pausing the track returns the seek position to the playhead\n */\n\n /**\n * Playhead 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 {PlayheadPluginParams} params parameters use to initialise the plugin\n * @since 5.0.0\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'playhead',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n instance: PlayheadPlugin\n };\n }\n\n constructor(params, ws) {\n this.params = params;\n this.options = {};\n\n ['draw', 'moveOnSeek', 'returnOnPause'].forEach(opt => {\n if (opt in params) {\n this.options[opt] = params[opt];\n } else {\n this.options[opt] = true;\n }\n });\n\n\n this.wavesurfer = ws;\n this.util = ws.util;\n this.style = this.util.style;\n this.markerWidth = 21;\n this.markerHeight = 16;\n this.playheadTime = 0;\n this.unFuns = [];\n\n this._onResize = () => {\n this._updatePlayheadPosition();\n };\n\n this._onReady = () => {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n this._updatePlayheadPosition();\n };\n }\n\n _onBackendCreated() {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n\n if (this.options.draw) {\n this._createPlayheadElement();\n window.addEventListener('resize', this._onResize, true);\n window.addEventListener('orientationchange', this._onResize, true);\n\n this.wavesurferOn('zoom', this._onResize);\n }\n\n this.wavesurferOn('pause', () => {\n if ( this.options.returnOnPause ) {\n this.wavesurfer.setCurrentTime(this.playheadTime);\n }\n });\n\n this.wavesurferOn('seek', () => {\n if ( this.options.moveOnSeek ) {\n this.playheadTime = this.wavesurfer.getCurrentTime();\n this._updatePlayheadPosition();\n }\n });\n\n this.playheadTime = this.wavesurfer.getCurrentTime();\n }\n\n wavesurferOn(ev, fn) {\n let ret = this.wavesurfer.on(ev, fn);\n this.unFuns.push(() => {\n this.wavesurfer.un(ev, fn);\n });\n return ret;\n }\n\n init() {\n if (this.wavesurfer.isReady) {\n this._onBackendCreated();\n this._onReady();\n } else {\n let r;\n\n this.wavesurfer.once('ready', () => this._onReady());\n this.wavesurfer.once('backend-created', () => this._onBackendCreated());\n }\n }\n\n destroy() {\n this.unFuns.forEach(f => f());\n this.unFuns = [];\n\n this.wrapper.removeChild(this.element);\n\n window.removeEventListener('resize', this._onResize, true);\n window.removeEventListener('orientationchange', this._onResize, true);\n }\n\n setPlayheadTime(time) {\n this.playheadTime = time;\n\n if (!this.wavesurfer.isPlaying()) {\n this.wavesurfer.setCurrentTime(time);\n }\n this._updatePlayheadPosition();\n }\n\n _createPointerSVG() {\n const svgNS = 'http://www.w3.org/2000/svg';\n\n const el = document.createElementNS(svgNS, 'svg');\n const path = document.createElementNS(svgNS, 'path');\n\n el.setAttribute('viewBox', '0 0 33 30');\n path.setAttribute('d', 'M16.75 31 31.705 5.566A3 3 0 0 0 29.146 1H4.354a3 3 0 0 0-2.56 4.566L16.75 31z');\n path.setAttribute('stroke', '#979797');\n path.setAttribute('fill', DEFAULT_FILL_COLOR);\n\n el.appendChild(path);\n\n this.style(el, {\n width: this.markerWidth + 'px',\n height: this.markerHeight + 'px',\n cursor: 'pointer',\n 'z-index': 5\n });\n return el;\n }\n\n _createPlayheadElement() {\n const el = document.createElement('playhead');\n el.className = 'wavesurfer-playhead';\n\n this.style(el, {\n position: 'absolute',\n height: '100%',\n display: 'flex',\n 'flex-direction': 'column'\n });\n\n const pointer = this._createPointerSVG();\n el.appendChild(pointer);\n\n pointer.addEventListener('click', e => {\n e.stopPropagation();\n this.wavesurfer.setCurrentTime(this.playheadTime);\n });\n\n const line = document.createElement('div');\n this.style(line, {\n 'flex-grow': 1,\n 'margin-left': (this.markerWidth / 2 - 0.5) + 'px',\n background: 'black',\n width: '1px',\n opacity: 0.1\n });\n\n el.appendChild(line);\n\n this.element = el;\n this.wrapper.appendChild(el);\n }\n\n _updatePlayheadPosition() {\n if (!this.element) {\n return;\n }\n\n const duration = this.wavesurfer.getDuration();\n const elementWidth =\n this.wavesurfer.drawer.width /\n this.wavesurfer.params.pixelRatio;\n\n const positionPct = this.playheadTime / duration;\n this.style(this.element, {\n left: ((elementWidth * positionPct) - (this.markerWidth / 2)) + 'px'\n });\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__(374);\n"],"names":["root","factory","exports","module","define","amd","self","PlayheadPlugin","params","ws","this","options","forEach","opt","wavesurfer","util","style","markerWidth","markerHeight","playheadTime","unFuns","_onResize","_updatePlayheadPosition","_onReady","wrapper","drawer","name","deferInit","instance","draw","_createPlayheadElement","window","addEventListener","wavesurferOn","returnOnPause","setCurrentTime","moveOnSeek","getCurrentTime","ev","fn","ret","on","push","un","isReady","_onBackendCreated","once","f","removeChild","element","removeEventListener","time","isPlaying","svgNS","el","document","createElementNS","path","setAttribute","appendChild","width","height","cursor","createElement","className","position","display","pointer","_createPointerSVG","e","stopPropagation","line","background","opacity","duration","getDuration","elementWidth","pixelRatio","positionPct","left","__webpack_module_cache__","__webpack_exports__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__"],"sourceRoot":""}