wavesurfer.js 6.0.1 → 6.0.4

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 (41) hide show
  1. package/CHANGES.md +29 -5
  2. package/dist/plugin/wavesurfer.cursor.js +5 -5
  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 +1 -1
  7. package/dist/plugin/wavesurfer.elan.min.js +1 -1
  8. package/dist/plugin/wavesurfer.markers.js +1 -1
  9. package/dist/plugin/wavesurfer.markers.min.js +1 -1
  10. package/dist/plugin/wavesurfer.mediasession.js +1 -1
  11. package/dist/plugin/wavesurfer.mediasession.min.js +1 -1
  12. package/dist/plugin/wavesurfer.microphone.js +1 -1
  13. package/dist/plugin/wavesurfer.microphone.min.js +1 -1
  14. package/dist/plugin/wavesurfer.minimap.js +1 -1
  15. package/dist/plugin/wavesurfer.minimap.min.js +1 -1
  16. package/dist/plugin/wavesurfer.playhead.js +1 -1
  17. package/dist/plugin/wavesurfer.playhead.min.js +1 -1
  18. package/dist/plugin/wavesurfer.regions.js +1 -1
  19. package/dist/plugin/wavesurfer.regions.js.map +1 -1
  20. package/dist/plugin/wavesurfer.regions.min.js +1 -1
  21. package/dist/plugin/wavesurfer.regions.min.js.map +1 -1
  22. package/dist/plugin/wavesurfer.spectrogram.js +28 -9
  23. package/dist/plugin/wavesurfer.spectrogram.js.map +1 -1
  24. package/dist/plugin/wavesurfer.spectrogram.min.js +2 -2
  25. package/dist/plugin/wavesurfer.spectrogram.min.js.map +1 -1
  26. package/dist/plugin/wavesurfer.timeline.js +5 -3
  27. package/dist/plugin/wavesurfer.timeline.js.map +1 -1
  28. package/dist/plugin/wavesurfer.timeline.min.js +2 -2
  29. package/dist/plugin/wavesurfer.timeline.min.js.map +1 -1
  30. package/dist/wavesurfer-html-init.js +1 -1
  31. package/dist/wavesurfer-html-init.min.js +1 -1
  32. package/dist/wavesurfer.js +11 -8
  33. package/dist/wavesurfer.js.map +1 -1
  34. package/dist/wavesurfer.min.js +2 -2
  35. package/dist/wavesurfer.min.js.map +1 -1
  36. package/package.json +7 -7
  37. package/src/drawer.canvasentry.js +9 -6
  38. package/src/plugin/cursor/index.js +4 -4
  39. package/src/plugin/regions/index.js +1 -1
  40. package/src/plugin/spectrogram/index.js +23 -10
  41. package/src/plugin/timeline/index.js +7 -1
package/CHANGES.md CHANGED
@@ -1,17 +1,41 @@
1
1
  wavesurfer.js changelog
2
2
  =======================
3
3
 
4
+ 6.0.4 (09.03.2022)
5
+ ------------------
6
+ - Spectrogram plugin:
7
+ - Add `frequencyMin`, `frequencyMax` option to scale frequency axis.
8
+ And set default 12kHz range to draw spectrogram like 5.x (#2455)
9
+ - Timeline plugin:
10
+ - Fix rendering issue for negative `offset` values (#2463)
11
+
12
+ 6.0.3 (01.03.2022)
13
+ ------------------
14
+ - Cursor plugin:
15
+ - Fix type documentation for `followCursorY` and `opacity` options (#2459)
16
+ - Fix destroying cursor and showTime dom nodes (#2460)
17
+
18
+ 6.0.2 (20.02.2022)
19
+ ------------------
20
+ - Fix regression and restore support for passing a `CanvasGradient` to
21
+ `setWaveColor()` (#2448)
22
+ - Regions plugin:
23
+ - Fixed the type annotation of `maxRegions` in the regions plugin (#2454)
24
+
4
25
  6.0.1 (13.02.2022)
5
26
  ------------------
6
- - Fixed a regression that broke bars rendering when using a certain format for the peaks array (#2439)
27
+ - Fixed a regression that broke bars rendering when using a certain format for
28
+ the peaks array (#2439)
7
29
 
8
30
  6.0.0 (07.02.2022)
9
31
  ------------------
10
- - Add additional type to `waveColor` and `progressColor` parameters to support linear gradients (#2345)
32
+ - Add additional type to `waveColor` and `progressColor` parameters to support linear
33
+ gradients (#2345)
11
34
  - Add `hideCursor` option to hide the mouse cursor when hovering over the waveform (#2367)
12
- - Add optional `channelIdx` parameter to `setWaveColor`, `getWaveColor`, `setProgressColor` and
13
- `getProgressColor` methods (#2391)
14
- - Improved drawing waveform with bars, now bars height is the maximum peak value in range (#2428)
35
+ - Add optional `channelIdx` parameter to `setWaveColor`, `getWaveColor`, `setProgressColor`
36
+ and `getProgressColor` methods (#2391)
37
+ - Improved drawing waveform with bars, now bars height is the maximum peak value in
38
+ range (#2428)
15
39
  - Workaround for `seekTo` occasionally crashing on Firefox (#1228, #2431)
16
40
  - Markers plugin: Add the ability to set markers as draggable using param `draggable=true`,
17
41
  `marker-drag` and `marker-drop` events will be triggered (#2398)
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * wavesurfer.js cursor plugin 6.0.1 (2022-02-14)
2
+ * wavesurfer.js cursor plugin 6.0.4 (2022-03-08)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */
@@ -45,7 +45,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
45
45
  * waveform
46
46
  * @property {string} width='1px' The width of the cursor
47
47
  * @property {string} color='black' The color of the cursor
48
- * @property {string} opacity='0.25' The opacity of the cursor
48
+ * @property {number|string} opacity='0.25' The opacity of the cursor
49
49
  * @property {string} style='solid' The border style of the cursor
50
50
  * @property {number} zIndex=3 The z-index of the cursor element
51
51
  * @property {object} customStyle An object with custom styles which are applied
@@ -53,7 +53,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
53
53
  * @property {boolean} showTime=false Show the time on the cursor.
54
54
  * @property {object} customShowTimeStyle An object with custom styles which are
55
55
  * applied to the cursor time element.
56
- * @property {string} followCursorY=false Use `true` to make the time on
56
+ * @property {boolean} followCursorY=false Use `true` to make the time on
57
57
  * the cursor follow the x and the y-position of the mouse. Use `false` to make the
58
58
  * it only follow the x-position of the mouse.
59
59
  * @property {function} formatTimeCallback Formats the timestamp on the cursor.
@@ -244,10 +244,10 @@ var CursorPlugin = /*#__PURE__*/function () {
244
244
  key: "destroy",
245
245
  value: function destroy() {
246
246
  if (this.params.showTime) {
247
- this.cursor.parentNode.removeChild(this.showTime);
247
+ this.showTime.remove();
248
248
  }
249
249
 
250
- this.cursor.parentNode.removeChild(this.cursor);
250
+ this.cursor.remove();
251
251
  this.wrapper.removeEventListener('mousemove', this._onMousemove);
252
252
 
253
253
  if (this.params.hideOnBlur) {
@@ -1 +1 @@
1
- {"version":3,"file":"wavesurfer.cursor.js","mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,CAAC;AACD;;;;;;;;;;;;;;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACqBA;AAkEjB;AACJ;AACA;AACA;AACA;AACA;AACA;AACI,wBAAYC,MAAZ,EAAoBC,EAApB,EAAwB;AAAA;;AAAA;;AAAA,2CAjDR;AACZC,MAAAA,UAAU,EAAE,IADA;AAEZC,MAAAA,KAAK,EAAE,KAFK;AAGZC,MAAAA,KAAK,EAAE,OAHK;AAIZC,MAAAA,OAAO,EAAE,MAJG;AAKZC,MAAAA,KAAK,EAAE,OALK;AAMZC,MAAAA,MAAM,EAAE,CANI;AAOZC,MAAAA,WAAW,EAAE,EAPD;AAQZC,MAAAA,mBAAmB,EAAE,EART;AASZC,MAAAA,QAAQ,EAAE,KATE;AAUZC,MAAAA,aAAa,EAAE,KAVH;AAWZC,MAAAA,kBAAkB,EAAE;AAXR,KAiDQ;;AAAA,0CAhCT,UAAAC,CAAC,EAAI;AAChB,UAAMC,KAAK,GAAG,KAAI,CAACC,IAAL,CAAUC,eAAV,CAA0BH,CAA1B,EAA6B,KAAI,CAACI,UAAL,CAAgBjB,MAAhB,CAAuBkB,QAApD,CAAd;;AACA,UAAMC,IAAI,GAAG,KAAI,CAACC,OAAL,CAAaC,qBAAb,EAAb;;AACA,UAAIC,CAAC,GAAG,CAAR;AACA,UAAIC,CAAC,GAAG,KAAI,CAACH,OAAL,CAAaI,UAAb,GAA0BV,KAAK,CAACW,OAAhC,GAA0CN,IAAI,CAACO,IAAvD;;AACA,UAAIC,IAAI,GAAGR,IAAI,CAACS,KAAL,GAAad,KAAK,CAACW,OAAN,GAAgB,KAAI,CAACI,WAAL,CAAiBR,qBAAjB,GAAyClB,KAAjF;;AAEA,UAAI,KAAI,CAACH,MAAL,CAAYU,QAAZ,IAAwB,KAAI,CAACV,MAAL,CAAYW,aAAxC,EAAuD;AACnD;AACAW,QAAAA,CAAC,GAAGR,KAAK,CAACgB,OAAN,IAAiBX,IAAI,CAACY,GAAL,GAAWZ,IAAI,CAACa,MAAL,GAAc,CAA1C,CAAJ;AACH;;AAED,WAAI,CAACC,oBAAL,CAA0BV,CAA1B,EAA6BD,CAA7B,EAAgCK,IAAhC;AACH,KAmBuB;;AAAA,2CAdR;AAAA,aAAM,KAAI,CAACO,UAAL,EAAN;AAAA,KAcQ;;AAAA,2CATR;AAAA,aAAM,KAAI,CAACC,UAAL,EAAN;AAAA,KASQ;;AACpB,SAAKlB,UAAL,GAAkBhB,EAAlB;AACA,SAAKK,KAAL,GAAaL,EAAE,CAACc,IAAH,CAAQT,KAArB;AACA,SAAKS,IAAL,GAAYd,EAAE,CAACc,IAAf;AACA;AACR;AACA;AACA;AACA;;AACQ,SAAKqB,MAAL,GAAc,IAAd;AACA;AACR;AACA;AACA;AACA;;AACQ,SAAK1B,QAAL,GAAgB,IAAhB;AACA;AACR;AACA;AACA;AACA;;AACQ,SAAKmB,WAAL,GAAmB,IAAnB;AAEA,SAAK7B,MAAL,GAAcqC,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkB,KAAKC,aAAvB,EAAsCvC,MAAtC,CAAd;AACH;;;;WAED,oBAAW;AACP,WAAKoB,OAAL,GAAe,KAAKH,UAAL,CAAgBuB,MAAhB,CAAuBpB,OAAtC;AACA,WAAKgB,MAAL,GAAc,KAAKrB,IAAL,CAAUC,eAAV,CAA0B,KAAKI,OAAL,CAAaqB,WAAb,CACpCC,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CADoC,CAA1B,EAEX,KAAK1B,UAAL,CAAgBjB,MAAhB,CAAuBkB,QAFZ,CAAd;AAIA,WAAKZ,KAAL,CAAW,KAAK8B,MAAhB,EACIC,MAAM,CAACC,MAAP,CACI;AACIM,QAAAA,QAAQ,EAAE,UADd;AAEIrC,QAAAA,MAAM,EAAE,KAAKP,MAAL,CAAYO,MAFxB;AAGImB,QAAAA,IAAI,EAAE,CAHV;AAIIK,QAAAA,GAAG,EAAE,CAJT;AAKIc,QAAAA,MAAM,EAAE,CALZ;AAMI1C,QAAAA,KAAK,EAAE,GANX;AAOI2C,QAAAA,OAAO,EAAE,MAPb;AAQIC,QAAAA,gBAAgB,EAAE,KAAK/C,MAAL,CAAYM,KARlC;AASI0C,QAAAA,gBAAgB,EAAE,KAAKhD,MAAL,CAAYG,KATlC;AAUI8C,QAAAA,gBAAgB,EAAE,KAAKjD,MAAL,CAAYI,KAVlC;AAWIC,QAAAA,OAAO,EAAE,KAAKL,MAAL,CAAYK,OAXzB;AAYI6C,QAAAA,aAAa,EAAE;AAZnB,OADJ,EAeI,KAAKlD,MAAL,CAAYQ,WAfhB,CADJ;;AAoBA,UAAI,KAAKR,MAAL,CAAYU,QAAhB,EAA0B;AACtB,aAAKA,QAAL,GAAgB,KAAKK,IAAL,CAAUC,eAAV,CAA0B,KAAKI,OAAL,CAAaqB,WAAb,CACtCC,QAAQ,CAACC,aAAT,CAAuB,WAAvB,CADsC,CAA1B,EAEb,KAAK1B,UAAL,CAAgBjB,MAAhB,CAAuBkB,QAFV,CAAhB;AAGA,aAAKZ,KAAL,CACI,KAAKI,QADT,EAEI2B,MAAM,CAACC,MAAP,CACI;AACIM,UAAAA,QAAQ,EAAE,UADd;AAEIrC,UAAAA,MAAM,EAAE,KAAKP,MAAL,CAAYO,MAFxB;AAGImB,UAAAA,IAAI,EAAE,CAHV;AAIIK,UAAAA,GAAG,EAAE,CAJT;AAKIc,UAAAA,MAAM,EAAE,CALZ;AAMI1C,UAAAA,KAAK,EAAE,MANX;AAOI2C,UAAAA,OAAO,EAAE,MAPb;AAQIzC,UAAAA,OAAO,EAAE,KAAKL,MAAL,CAAYK,OARzB;AASI6C,UAAAA,aAAa,EAAE,MATnB;AAUIlB,UAAAA,MAAM,EAAE;AAVZ,SADJ,EAaI,KAAKhC,MAAL,CAAYQ,WAbhB,CAFJ;AAmBA,aAAKqB,WAAL,GAAmB,KAAKd,IAAL,CAAUC,eAAV,CAA0B,KAAKN,QAAL,CAAc+B,WAAd,CACzCC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CADyC,CAA1B,EAEhB,KAAK1B,UAAL,CAAgBjB,MAAhB,CAAuBkB,QAFP,CAAnB;AAIA,aAAKZ,KAAL,CAAW,KAAKuB,WAAhB,EACIQ,MAAM,CAACC,MAAP,CACI;AACIQ,UAAAA,OAAO,EAAE,QADb;AAEII,UAAAA,aAAa,EAAE,MAFnB;AAGIC,UAAAA,MAAM,EAAE,MAHZ;AAIIC,UAAAA,UAAU,EAAE,QAJhB,CAIyB;;AAJzB,SADJ,EAOI,KAAKpD,MAAL,CAAYS,mBAPhB,CADJ,EA3BsB,CAuCtB;;AACA,aAAKoB,WAAL,CAAiBwB,SAAjB,GAA6B,KAAKC,UAAL,CAAgB,CAAhB,CAA7B;AACH;;AAED,WAAKlC,OAAL,CAAamC,gBAAb,CAA8B,WAA9B,EAA2C,KAAKC,YAAhD;;AACA,UAAI,KAAKxD,MAAL,CAAYE,UAAhB,EAA4B;AACxB;AACA,aAAKiC,UAAL;AACA,aAAKf,OAAL,CAAamC,gBAAb,CAA8B,YAA9B,EAA4C,KAAKE,aAAjD;AACA,aAAKrC,OAAL,CAAamC,gBAAb,CAA8B,YAA9B,EAA4C,KAAKG,aAAjD;AACH;AACJ;AAED;AACJ;AACA;;;;WACI,gBAAO;AAAA;;AACH,UAAI,KAAKzC,UAAL,CAAgB0C,OAApB,EAA6B;AACzB,aAAKC,QAAL;AACH,OAFD,MAEO;AACH,aAAK3C,UAAL,CAAgB4C,IAAhB,CAAqB,OAArB,EAA8B;AAAA,iBAAM,MAAI,CAACD,QAAL,EAAN;AAAA,SAA9B;AACH;AACJ;AAED;AACJ;AACA;;;;WACI,mBAAU;AACN,UAAI,KAAK5D,MAAL,CAAYU,QAAhB,EAA0B;AACtB,aAAK0B,MAAL,CAAY0B,UAAZ,CAAuBC,WAAvB,CAAmC,KAAKrD,QAAxC;AACH;;AACD,WAAK0B,MAAL,CAAY0B,UAAZ,CAAuBC,WAAvB,CAAmC,KAAK3B,MAAxC;AACA,WAAKhB,OAAL,CAAa4C,mBAAb,CAAiC,WAAjC,EAA8C,KAAKR,YAAnD;;AACA,UAAI,KAAKxD,MAAL,CAAYE,UAAhB,EAA4B;AACxB,aAAKkB,OAAL,CAAa4C,mBAAb,CAAiC,YAAjC,EAA+C,KAAKP,aAApD;AACA,aAAKrC,OAAL,CAAa4C,mBAAb,CAAiC,YAAjC,EAA+C,KAAKN,aAApD;AACH;AACJ;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;;WACI,8BAAqBO,IAArB,EAA2BC,IAA3B,EAA+C;AAAA,UAAdvC,IAAc,uEAAP,KAAO;AAC3C,WAAKrB,KAAL,CAAW,KAAK8B,MAAhB,EAAwB;AACpBV,QAAAA,IAAI,YAAKuC,IAAL;AADgB,OAAxB;;AAGA,UAAI,KAAKjE,MAAL,CAAYU,QAAhB,EAA0B;AACtB,YAAMyD,QAAQ,GAAG,KAAKlD,UAAL,CAAgBmD,WAAhB,EAAjB;AACA,YAAMC,YAAY,GACd,KAAKpD,UAAL,CAAgBuB,MAAhB,CAAuBrC,KAAvB,GACA,KAAKc,UAAL,CAAgBjB,MAAhB,CAAuBsE,UAF3B;AAGA,YAAMC,WAAW,GAAG,KAAKtD,UAAL,CAAgBuB,MAAhB,CAAuBgC,UAAvB,EAApB;AAEA,YAAMC,UAAU,GACXN,QAAQ,GAAG,KAAKlD,UAAL,CAAgBuB,MAAhB,CAAuBrC,KAAnC,GAA4CoE,WADhD;AAGA,YAAMG,SAAS,GACXC,IAAI,CAACC,GAAL,CAAS,CAAT,EAAa,CAACX,IAAI,GAAG,KAAK7C,OAAL,CAAaI,UAArB,IAAmC6C,YAApC,GAAoDF,QAAhE,IAA4EM,UADhF;AAEA,YAAMI,WAAW,GAAG,KAAKvB,UAAL,CAAgBoB,SAAhB,CAApB;;AACA,YAAI/C,IAAJ,EAAU;AACN,cAAMmD,UAAU,GAAG,KAAKjD,WAAL,CAAiBR,qBAAjB,GAAyClB,KAA5D;AACA8D,UAAAA,IAAI,IAAIa,UAAR;AACH;;AACD,aAAKxE,KAAL,CAAW,KAAKI,QAAhB,EAA0B;AACtBgB,UAAAA,IAAI,YAAKuC,IAAL,OADkB;AAEtBlC,UAAAA,GAAG,YAAKmC,IAAL;AAFmB,SAA1B;AAIA,aAAK5D,KAAL,CAAW,KAAKuB,WAAhB,EAA6B;AACzBuB,UAAAA,UAAU,EAAE;AADa,SAA7B;AAGA,aAAKvB,WAAL,CAAiBwB,SAAjB,aAAgCwB,WAAhC;AACH;AACJ;AAED;AACJ;AACA;;;;WACI,sBAAa;AACT,WAAKvE,KAAL,CAAW,KAAK8B,MAAhB,EAAwB;AACpBU,QAAAA,OAAO,EAAE;AADW,OAAxB;;AAGA,UAAI,KAAK9C,MAAL,CAAYU,QAAhB,EAA0B;AACtB,aAAKJ,KAAL,CAAW,KAAKI,QAAhB,EAA0B;AACtBoC,UAAAA,OAAO,EAAE;AADa,SAA1B;AAGH;AACJ;AAED;AACJ;AACA;;;;WACI,sBAAa;AACT,WAAKxC,KAAL,CAAW,KAAK8B,MAAhB,EAAwB;AACpBU,QAAAA,OAAO,EAAE;AADW,OAAxB;;AAGA,UAAI,KAAK9C,MAAL,CAAYU,QAAhB,EAA0B;AACtB,aAAKJ,KAAL,CAAW,KAAKI,QAAhB,EAA0B;AACtBoC,UAAAA,OAAO,EAAE;AADa,SAA1B;AAGH;AACJ;AAED;AACJ;AACA;AACA;AACA;AACA;;;;WACI,oBAAWiC,UAAX,EAAuB;AACnBA,MAAAA,UAAU,GAAGC,KAAK,CAACD,UAAD,CAAL,GAAoB,CAApB,GAAwBA,UAArC;;AAEA,UAAI,KAAK/E,MAAL,CAAYY,kBAAhB,EAAoC;AAChC,eAAO,KAAKZ,MAAL,CAAYY,kBAAZ,CAA+BmE,UAA/B,CAAP;AACH;;AACD,aAAO,CAACA,UAAD,EAAaE,GAAb,CAAiB,UAAAC,IAAI;AAAA,eACxB,CACIP,IAAI,CAACQ,KAAL,CAAYD,IAAI,GAAG,IAAR,GAAgB,EAA3B,CADJ,EACoC;AAChC,SAAC,OAAOP,IAAI,CAACQ,KAAL,CAAWD,IAAI,GAAG,EAAlB,CAAR,EAA+BE,KAA/B,CAAqC,CAAC,CAAtC,CAFJ,EAE8C;AAC1C,SAAC,QAAQT,IAAI,CAACQ,KAAL,CAAYD,IAAI,GAAG,CAAR,GAAa,IAAxB,CAAT,EAAwCE,KAAxC,CAA8C,CAAC,CAA/C,CAHJ,CAGsD;AAHtD,UAIEC,IAJF,CAIO,GAJP,CADwB;AAAA,OAArB,CAAP;AAOH;;;;AAhSD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI,oBAAcrF,MAAd,EAAsB;AAClB,aAAO;AACHsF,QAAAA,IAAI,EAAE,QADH;AAEHC,QAAAA,SAAS,EAAEvF,MAAM,IAAIA,MAAM,CAACuF,SAAjB,GAA6BvF,MAAM,CAACuF,SAApC,GAAgD,KAFxD;AAGHvF,QAAAA,MAAM,EAAEA,MAHL;AAIHwF,QAAAA,WAAW,EAAE,EAJV;AAKHC,QAAAA,QAAQ,EAAE1F;AALP,OAAP;AAOH;AAED;AACJ;AACA;;;;;;;;;;;;;;UCrEA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;UEtBA;UACA;UACA;UACA","sources":["webpack://WaveSurfer.[name]/webpack/universalModuleDefinition","webpack://WaveSurfer.[name]/./src/plugin/cursor/index.js","webpack://WaveSurfer.[name]/webpack/bootstrap","webpack://WaveSurfer.[name]/webpack/before-startup","webpack://WaveSurfer.[name]/webpack/startup","webpack://WaveSurfer.[name]/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\"][\"cursor\"] = factory();\n})(self, function() {\nreturn ","/**\n * @typedef {Object} CursorPluginParams\n * @property {?boolean} deferInit Set to true to stop auto init in `addPlugin()`\n * @property {boolean} hideOnBlur=true Hide the cursor when the mouse leaves the\n * waveform\n * @property {string} width='1px' The width of the cursor\n * @property {string} color='black' The color of the cursor\n * @property {string} opacity='0.25' The opacity of the cursor\n * @property {string} style='solid' The border style of the cursor\n * @property {number} zIndex=3 The z-index of the cursor element\n * @property {object} customStyle An object with custom styles which are applied\n * to the cursor element\n * @property {boolean} showTime=false Show the time on the cursor.\n * @property {object} customShowTimeStyle An object with custom styles which are\n * applied to the cursor time element.\n * @property {string} followCursorY=false Use `true` to make the time on\n * the cursor follow the x and the y-position of the mouse. Use `false` to make the\n * it only follow the x-position of the mouse.\n * @property {function} formatTimeCallback Formats the timestamp on the cursor.\n */\n\n/**\n * Displays a thin line at the position of the cursor on the waveform.\n *\n * @implements {PluginClass}\n * @extends {Observer}\n * @example\n * // es6\n * import CursorPlugin from 'wavesurfer.cursor.js';\n *\n * // commonjs\n * var CursorPlugin = require('wavesurfer.cursor.js');\n *\n * // if you are using <script> tags\n * var CursorPlugin = window.WaveSurfer.cursor;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * CursorPlugin.create({\n * // plugin options ...\n * })\n * ]\n * });\n */\nexport default class CursorPlugin {\n /**\n * Cursor 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 {CursorPluginParams} params parameters use to initialise the\n * plugin\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'cursor',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n staticProps: {},\n instance: CursorPlugin\n };\n }\n\n /**\n * @type {CursorPluginParams}\n */\n defaultParams = {\n hideOnBlur: true,\n width: '1px',\n color: 'black',\n opacity: '0.25',\n style: 'solid',\n zIndex: 4,\n customStyle: {},\n customShowTimeStyle: {},\n showTime: false,\n followCursorY: false,\n formatTimeCallback: null\n };\n\n /**\n * @param {object} e Mouse move event\n */\n _onMousemove = e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n const bbox = this.wrapper.getBoundingClientRect();\n let y = 0;\n let x = this.wrapper.scrollLeft + event.clientX - bbox.left;\n let flip = bbox.right < event.clientX + this.displayTime.getBoundingClientRect().width;\n\n if (this.params.showTime && this.params.followCursorY) {\n // follow y-position of the mouse\n y = event.clientY - (bbox.top + bbox.height / 2);\n }\n\n this.updateCursorPosition(x, y, flip);\n };\n\n /**\n * @returns {void}\n */\n _onMouseenter = () => this.showCursor();\n\n /**\n * @returns {void}\n */\n _onMouseleave = () => this.hideCursor();\n\n /**\n * Construct the plugin class. You probably want to use `CursorPlugin.create`\n * instead.\n *\n * @param {CursorPluginParams} params Plugin parameters\n * @param {object} ws Wavesurfer instance\n */\n constructor(params, ws) {\n this.wavesurfer = ws;\n this.style = ws.util.style;\n this.util = ws.util;\n /**\n * The cursor HTML element\n *\n * @type {?HTMLElement}\n */\n this.cursor = null;\n /**\n * displays the time next to the cursor\n *\n * @type {?HTMLElement}\n */\n this.showTime = null;\n /**\n * The html container that will display the time\n *\n * @type {?HTMLElement}\n */\n this.displayTime = null;\n\n this.params = Object.assign({}, this.defaultParams, params);\n }\n\n _onReady() {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n this.cursor = this.util.withOrientation(this.wrapper.appendChild(\n document.createElement('cursor'),\n ), this.wavesurfer.params.vertical);\n\n this.style(this.cursor,\n Object.assign(\n {\n position: 'absolute',\n zIndex: this.params.zIndex,\n left: 0,\n top: 0,\n bottom: 0,\n width: '0',\n display: 'flex',\n borderRightStyle: this.params.style,\n borderRightWidth: this.params.width,\n borderRightColor: this.params.color,\n opacity: this.params.opacity,\n pointerEvents: 'none'\n },\n this.params.customStyle\n )\n );\n\n if (this.params.showTime) {\n this.showTime = this.util.withOrientation(this.wrapper.appendChild(\n document.createElement('showTitle')\n ), this.wavesurfer.params.vertical);\n this.style(\n this.showTime,\n Object.assign(\n {\n position: 'absolute',\n zIndex: this.params.zIndex,\n left: 0,\n top: 0,\n bottom: 0,\n width: 'auto',\n display: 'flex',\n opacity: this.params.opacity,\n pointerEvents: 'none',\n height: '100%'\n },\n this.params.customStyle\n )\n );\n\n this.displayTime = this.util.withOrientation(this.showTime.appendChild(\n document.createElement('div'),\n ), this.wavesurfer.params.vertical);\n\n this.style(this.displayTime,\n Object.assign(\n {\n display: 'inline',\n pointerEvents: 'none',\n margin: 'auto',\n visibility: 'hidden' // initial value will be hidden just for measuring purpose\n },\n this.params.customShowTimeStyle\n )\n );\n\n // initial value to measure display width\n this.displayTime.innerHTML = this.formatTime(0);\n }\n\n this.wrapper.addEventListener('mousemove', this._onMousemove);\n if (this.params.hideOnBlur) {\n // ensure elements are hidden initially\n this.hideCursor();\n this.wrapper.addEventListener('mouseenter', this._onMouseenter);\n this.wrapper.addEventListener('mouseleave', this._onMouseleave);\n }\n }\n\n /**\n * Initialise the plugin (used by the Plugin API)\n */\n init() {\n if (this.wavesurfer.isReady) {\n this._onReady();\n } else {\n this.wavesurfer.once('ready', () => this._onReady());\n }\n }\n\n /**\n * Destroy the plugin (used by the Plugin API)\n */\n destroy() {\n if (this.params.showTime) {\n this.cursor.parentNode.removeChild(this.showTime);\n }\n this.cursor.parentNode.removeChild(this.cursor);\n this.wrapper.removeEventListener('mousemove', this._onMousemove);\n if (this.params.hideOnBlur) {\n this.wrapper.removeEventListener('mouseenter', this._onMouseenter);\n this.wrapper.removeEventListener('mouseleave', this._onMouseleave);\n }\n }\n\n /**\n * Update the cursor position\n *\n * @param {number} xpos The x offset of the cursor in pixels\n * @param {number} ypos The y offset of the cursor in pixels\n * @param {boolean} flip Flag to flip duration text from right to left\n */\n updateCursorPosition(xpos, ypos, flip = false) {\n this.style(this.cursor, {\n left: `${xpos}px`\n });\n if (this.params.showTime) {\n const duration = this.wavesurfer.getDuration();\n const elementWidth =\n this.wavesurfer.drawer.width /\n this.wavesurfer.params.pixelRatio;\n const scrollWidth = this.wavesurfer.drawer.getScrollX();\n\n const scrollTime =\n (duration / this.wavesurfer.drawer.width) * scrollWidth;\n\n const timeValue =\n Math.max(0, ((xpos - this.wrapper.scrollLeft) / elementWidth) * duration) + scrollTime;\n const formatValue = this.formatTime(timeValue);\n if (flip) {\n const textOffset = this.displayTime.getBoundingClientRect().width;\n xpos -= textOffset;\n }\n this.style(this.showTime, {\n left: `${xpos}px`,\n top: `${ypos}px`\n });\n this.style(this.displayTime, {\n visibility: 'visible'\n });\n this.displayTime.innerHTML = `${formatValue}`;\n }\n }\n\n /**\n * Show the cursor\n */\n showCursor() {\n this.style(this.cursor, {\n display: 'flex'\n });\n if (this.params.showTime) {\n this.style(this.showTime, {\n display: 'flex'\n });\n }\n }\n\n /**\n * Hide the cursor\n */\n hideCursor() {\n this.style(this.cursor, {\n display: 'none'\n });\n if (this.params.showTime) {\n this.style(this.showTime, {\n display: 'none'\n });\n }\n }\n\n /**\n * Format the timestamp for `cursorTime`.\n *\n * @param {number} cursorTime Time in seconds\n * @returns {string} Formatted timestamp\n */\n formatTime(cursorTime) {\n cursorTime = isNaN(cursorTime) ? 0 : cursorTime;\n\n if (this.params.formatTimeCallback) {\n return this.params.formatTimeCallback(cursorTime);\n }\n return [cursorTime].map(time =>\n [\n Math.floor((time % 3600) / 60), // minutes\n ('00' + Math.floor(time % 60)).slice(-2), // seconds\n ('000' + Math.floor((time % 1) * 1000)).slice(-3) // milliseconds\n ].join(':')\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/cursor/index.js\");\n",""],"names":["CursorPlugin","params","ws","hideOnBlur","width","color","opacity","style","zIndex","customStyle","customShowTimeStyle","showTime","followCursorY","formatTimeCallback","e","event","util","withOrientation","wavesurfer","vertical","bbox","wrapper","getBoundingClientRect","y","x","scrollLeft","clientX","left","flip","right","displayTime","clientY","top","height","updateCursorPosition","showCursor","hideCursor","cursor","Object","assign","defaultParams","drawer","appendChild","document","createElement","position","bottom","display","borderRightStyle","borderRightWidth","borderRightColor","pointerEvents","margin","visibility","innerHTML","formatTime","addEventListener","_onMousemove","_onMouseenter","_onMouseleave","isReady","_onReady","once","parentNode","removeChild","removeEventListener","xpos","ypos","duration","getDuration","elementWidth","pixelRatio","scrollWidth","getScrollX","scrollTime","timeValue","Math","max","formatValue","textOffset","cursorTime","isNaN","map","time","floor","slice","join","name","deferInit","staticProps","instance"],"sourceRoot":""}
1
+ {"version":3,"file":"wavesurfer.cursor.js","mappings":"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","sources":["webpack://WaveSurfer.[name]/webpack/universalModuleDefinition","webpack://WaveSurfer.[name]/./src/plugin/cursor/index.js","webpack://WaveSurfer.[name]/webpack/bootstrap","webpack://WaveSurfer.[name]/webpack/before-startup","webpack://WaveSurfer.[name]/webpack/startup","webpack://WaveSurfer.[name]/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\"][\"cursor\"] = factory();\n})(self, function() {\nreturn ","/**\n * @typedef {Object} CursorPluginParams\n * @property {?boolean} deferInit Set to true to stop auto init in `addPlugin()`\n * @property {boolean} hideOnBlur=true Hide the cursor when the mouse leaves the\n * waveform\n * @property {string} width='1px' The width of the cursor\n * @property {string} color='black' The color of the cursor\n * @property {number|string} opacity='0.25' The opacity of the cursor\n * @property {string} style='solid' The border style of the cursor\n * @property {number} zIndex=3 The z-index of the cursor element\n * @property {object} customStyle An object with custom styles which are applied\n * to the cursor element\n * @property {boolean} showTime=false Show the time on the cursor.\n * @property {object} customShowTimeStyle An object with custom styles which are\n * applied to the cursor time element.\n * @property {boolean} followCursorY=false Use `true` to make the time on\n * the cursor follow the x and the y-position of the mouse. Use `false` to make the\n * it only follow the x-position of the mouse.\n * @property {function} formatTimeCallback Formats the timestamp on the cursor.\n */\n\n/**\n * Displays a thin line at the position of the cursor on the waveform.\n *\n * @implements {PluginClass}\n * @extends {Observer}\n * @example\n * // es6\n * import CursorPlugin from 'wavesurfer.cursor.js';\n *\n * // commonjs\n * var CursorPlugin = require('wavesurfer.cursor.js');\n *\n * // if you are using <script> tags\n * var CursorPlugin = window.WaveSurfer.cursor;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * CursorPlugin.create({\n * // plugin options ...\n * })\n * ]\n * });\n */\nexport default class CursorPlugin {\n /**\n * Cursor 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 {CursorPluginParams} params parameters use to initialise the\n * plugin\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'cursor',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n staticProps: {},\n instance: CursorPlugin\n };\n }\n\n /**\n * @type {CursorPluginParams}\n */\n defaultParams = {\n hideOnBlur: true,\n width: '1px',\n color: 'black',\n opacity: '0.25',\n style: 'solid',\n zIndex: 4,\n customStyle: {},\n customShowTimeStyle: {},\n showTime: false,\n followCursorY: false,\n formatTimeCallback: null\n };\n\n /**\n * @param {object} e Mouse move event\n */\n _onMousemove = e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n const bbox = this.wrapper.getBoundingClientRect();\n let y = 0;\n let x = this.wrapper.scrollLeft + event.clientX - bbox.left;\n let flip = bbox.right < event.clientX + this.displayTime.getBoundingClientRect().width;\n\n if (this.params.showTime && this.params.followCursorY) {\n // follow y-position of the mouse\n y = event.clientY - (bbox.top + bbox.height / 2);\n }\n\n this.updateCursorPosition(x, y, flip);\n };\n\n /**\n * @returns {void}\n */\n _onMouseenter = () => this.showCursor();\n\n /**\n * @returns {void}\n */\n _onMouseleave = () => this.hideCursor();\n\n /**\n * Construct the plugin class. You probably want to use `CursorPlugin.create`\n * instead.\n *\n * @param {CursorPluginParams} params Plugin parameters\n * @param {object} ws Wavesurfer instance\n */\n constructor(params, ws) {\n this.wavesurfer = ws;\n this.style = ws.util.style;\n this.util = ws.util;\n /**\n * The cursor HTML element\n *\n * @type {?HTMLElement}\n */\n this.cursor = null;\n /**\n * displays the time next to the cursor\n *\n * @type {?HTMLElement}\n */\n this.showTime = null;\n /**\n * The html container that will display the time\n *\n * @type {?HTMLElement}\n */\n this.displayTime = null;\n\n this.params = Object.assign({}, this.defaultParams, params);\n }\n\n _onReady() {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n this.cursor = this.util.withOrientation(this.wrapper.appendChild(\n document.createElement('cursor'),\n ), this.wavesurfer.params.vertical);\n\n this.style(this.cursor,\n Object.assign(\n {\n position: 'absolute',\n zIndex: this.params.zIndex,\n left: 0,\n top: 0,\n bottom: 0,\n width: '0',\n display: 'flex',\n borderRightStyle: this.params.style,\n borderRightWidth: this.params.width,\n borderRightColor: this.params.color,\n opacity: this.params.opacity,\n pointerEvents: 'none'\n },\n this.params.customStyle\n )\n );\n\n if (this.params.showTime) {\n this.showTime = this.util.withOrientation(this.wrapper.appendChild(\n document.createElement('showTitle')\n ), this.wavesurfer.params.vertical);\n this.style(\n this.showTime,\n Object.assign(\n {\n position: 'absolute',\n zIndex: this.params.zIndex,\n left: 0,\n top: 0,\n bottom: 0,\n width: 'auto',\n display: 'flex',\n opacity: this.params.opacity,\n pointerEvents: 'none',\n height: '100%'\n },\n this.params.customStyle\n )\n );\n\n this.displayTime = this.util.withOrientation(this.showTime.appendChild(\n document.createElement('div'),\n ), this.wavesurfer.params.vertical);\n\n this.style(this.displayTime,\n Object.assign(\n {\n display: 'inline',\n pointerEvents: 'none',\n margin: 'auto',\n visibility: 'hidden' // initial value will be hidden just for measuring purpose\n },\n this.params.customShowTimeStyle\n )\n );\n\n // initial value to measure display width\n this.displayTime.innerHTML = this.formatTime(0);\n }\n\n this.wrapper.addEventListener('mousemove', this._onMousemove);\n if (this.params.hideOnBlur) {\n // ensure elements are hidden initially\n this.hideCursor();\n this.wrapper.addEventListener('mouseenter', this._onMouseenter);\n this.wrapper.addEventListener('mouseleave', this._onMouseleave);\n }\n }\n\n /**\n * Initialise the plugin (used by the Plugin API)\n */\n init() {\n if (this.wavesurfer.isReady) {\n this._onReady();\n } else {\n this.wavesurfer.once('ready', () => this._onReady());\n }\n }\n\n /**\n * Destroy the plugin (used by the Plugin API)\n */\n destroy() {\n if (this.params.showTime) {\n this.showTime.remove();\n }\n this.cursor.remove();\n this.wrapper.removeEventListener('mousemove', this._onMousemove);\n if (this.params.hideOnBlur) {\n this.wrapper.removeEventListener('mouseenter', this._onMouseenter);\n this.wrapper.removeEventListener('mouseleave', this._onMouseleave);\n }\n }\n\n /**\n * Update the cursor position\n *\n * @param {number} xpos The x offset of the cursor in pixels\n * @param {number} ypos The y offset of the cursor in pixels\n * @param {boolean} flip Flag to flip duration text from right to left\n */\n updateCursorPosition(xpos, ypos, flip = false) {\n this.style(this.cursor, {\n left: `${xpos}px`\n });\n if (this.params.showTime) {\n const duration = this.wavesurfer.getDuration();\n const elementWidth =\n this.wavesurfer.drawer.width /\n this.wavesurfer.params.pixelRatio;\n const scrollWidth = this.wavesurfer.drawer.getScrollX();\n\n const scrollTime =\n (duration / this.wavesurfer.drawer.width) * scrollWidth;\n\n const timeValue =\n Math.max(0, ((xpos - this.wrapper.scrollLeft) / elementWidth) * duration) + scrollTime;\n const formatValue = this.formatTime(timeValue);\n if (flip) {\n const textOffset = this.displayTime.getBoundingClientRect().width;\n xpos -= textOffset;\n }\n this.style(this.showTime, {\n left: `${xpos}px`,\n top: `${ypos}px`\n });\n this.style(this.displayTime, {\n visibility: 'visible'\n });\n this.displayTime.innerHTML = `${formatValue}`;\n }\n }\n\n /**\n * Show the cursor\n */\n showCursor() {\n this.style(this.cursor, {\n display: 'flex'\n });\n if (this.params.showTime) {\n this.style(this.showTime, {\n display: 'flex'\n });\n }\n }\n\n /**\n * Hide the cursor\n */\n hideCursor() {\n this.style(this.cursor, {\n display: 'none'\n });\n if (this.params.showTime) {\n this.style(this.showTime, {\n display: 'none'\n });\n }\n }\n\n /**\n * Format the timestamp for `cursorTime`.\n *\n * @param {number} cursorTime Time in seconds\n * @returns {string} Formatted timestamp\n */\n formatTime(cursorTime) {\n cursorTime = isNaN(cursorTime) ? 0 : cursorTime;\n\n if (this.params.formatTimeCallback) {\n return this.params.formatTimeCallback(cursorTime);\n }\n return [cursorTime].map(time =>\n [\n Math.floor((time % 3600) / 60), // minutes\n ('00' + Math.floor(time % 60)).slice(-2), // seconds\n ('000' + Math.floor((time % 1) * 1000)).slice(-3) // milliseconds\n ].join(':')\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/cursor/index.js\");\n",""],"names":["CursorPlugin","params","ws","hideOnBlur","width","color","opacity","style","zIndex","customStyle","customShowTimeStyle","showTime","followCursorY","formatTimeCallback","e","event","util","withOrientation","wavesurfer","vertical","bbox","wrapper","getBoundingClientRect","y","x","scrollLeft","clientX","left","flip","right","displayTime","clientY","top","height","updateCursorPosition","showCursor","hideCursor","cursor","Object","assign","defaultParams","drawer","appendChild","document","createElement","position","bottom","display","borderRightStyle","borderRightWidth","borderRightColor","pointerEvents","margin","visibility","innerHTML","formatTime","addEventListener","_onMousemove","_onMouseenter","_onMouseleave","isReady","_onReady","once","remove","removeEventListener","xpos","ypos","duration","getDuration","elementWidth","pixelRatio","scrollWidth","getScrollX","scrollTime","timeValue","Math","max","formatValue","textOffset","cursorTime","isNaN","map","time","floor","slice","join","name","deferInit","staticProps","instance"],"sourceRoot":""}
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * wavesurfer.js cursor plugin 6.0.1 (2022-02-14)
2
+ * wavesurfer.js cursor plugin 6.0.4 (2022-03-08)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */
6
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("WaveSurfer",[],t):"object"==typeof exports?exports.WaveSurfer=t():(e.WaveSurfer=e.WaveSurfer||{},e.WaveSurfer.cursor=t())}(self,(function(){return(()=>{"use strict";var e={178:(e,t)=>{function i(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}function s(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(){function e(t,i){var r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),s(this,"defaultParams",{hideOnBlur:!0,width:"1px",color:"black",opacity:"0.25",style:"solid",zIndex:4,customStyle:{},customShowTimeStyle:{},showTime:!1,followCursorY:!1,formatTimeCallback:null}),s(this,"_onMousemove",(function(e){var t=r.util.withOrientation(e,r.wavesurfer.params.vertical),i=r.wrapper.getBoundingClientRect(),s=0,a=r.wrapper.scrollLeft+t.clientX-i.left,o=i.right<t.clientX+r.displayTime.getBoundingClientRect().width;r.params.showTime&&r.params.followCursorY&&(s=t.clientY-(i.top+i.height/2)),r.updateCursorPosition(a,s,o)})),s(this,"_onMouseenter",(function(){return r.showCursor()})),s(this,"_onMouseleave",(function(){return r.hideCursor()})),this.wavesurfer=i,this.style=i.util.style,this.util=i.util,this.cursor=null,this.showTime=null,this.displayTime=null,this.params=Object.assign({},this.defaultParams,t)}var t,r,a;return t=e,r=[{key:"_onReady",value:function(){this.wrapper=this.wavesurfer.drawer.wrapper,this.cursor=this.util.withOrientation(this.wrapper.appendChild(document.createElement("cursor")),this.wavesurfer.params.vertical),this.style(this.cursor,Object.assign({position:"absolute",zIndex:this.params.zIndex,left:0,top:0,bottom:0,width:"0",display:"flex",borderRightStyle:this.params.style,borderRightWidth:this.params.width,borderRightColor:this.params.color,opacity:this.params.opacity,pointerEvents:"none"},this.params.customStyle)),this.params.showTime&&(this.showTime=this.util.withOrientation(this.wrapper.appendChild(document.createElement("showTitle")),this.wavesurfer.params.vertical),this.style(this.showTime,Object.assign({position:"absolute",zIndex:this.params.zIndex,left:0,top:0,bottom:0,width:"auto",display:"flex",opacity:this.params.opacity,pointerEvents:"none",height:"100%"},this.params.customStyle)),this.displayTime=this.util.withOrientation(this.showTime.appendChild(document.createElement("div")),this.wavesurfer.params.vertical),this.style(this.displayTime,Object.assign({display:"inline",pointerEvents:"none",margin:"auto",visibility:"hidden"},this.params.customShowTimeStyle)),this.displayTime.innerHTML=this.formatTime(0)),this.wrapper.addEventListener("mousemove",this._onMousemove),this.params.hideOnBlur&&(this.hideCursor(),this.wrapper.addEventListener("mouseenter",this._onMouseenter),this.wrapper.addEventListener("mouseleave",this._onMouseleave))}},{key:"init",value:function(){var e=this;this.wavesurfer.isReady?this._onReady():this.wavesurfer.once("ready",(function(){return e._onReady()}))}},{key:"destroy",value:function(){this.params.showTime&&this.cursor.parentNode.removeChild(this.showTime),this.cursor.parentNode.removeChild(this.cursor),this.wrapper.removeEventListener("mousemove",this._onMousemove),this.params.hideOnBlur&&(this.wrapper.removeEventListener("mouseenter",this._onMouseenter),this.wrapper.removeEventListener("mouseleave",this._onMouseleave))}},{key:"updateCursorPosition",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(this.style(this.cursor,{left:"".concat(e,"px")}),this.params.showTime){var s=this.wavesurfer.getDuration(),r=this.wavesurfer.drawer.width/this.wavesurfer.params.pixelRatio,a=this.wavesurfer.drawer.getScrollX(),o=s/this.wavesurfer.drawer.width*a,n=Math.max(0,(e-this.wrapper.scrollLeft)/r*s)+o,h=this.formatTime(n);if(i){var l=this.displayTime.getBoundingClientRect().width;e-=l}this.style(this.showTime,{left:"".concat(e,"px"),top:"".concat(t,"px")}),this.style(this.displayTime,{visibility:"visible"}),this.displayTime.innerHTML="".concat(h)}}},{key:"showCursor",value:function(){this.style(this.cursor,{display:"flex"}),this.params.showTime&&this.style(this.showTime,{display:"flex"})}},{key:"hideCursor",value:function(){this.style(this.cursor,{display:"none"}),this.params.showTime&&this.style(this.showTime,{display:"none"})}},{key:"formatTime",value:function(e){return e=isNaN(e)?0:e,this.params.formatTimeCallback?this.params.formatTimeCallback(e):[e].map((function(e){return[Math.floor(e%3600/60),("00"+Math.floor(e%60)).slice(-2),("000"+Math.floor(e%1*1e3)).slice(-3)].join(":")}))}}],a=[{key:"create",value:function(t){return{name:"cursor",deferInit:!(!t||!t.deferInit)&&t.deferInit,params:t,staticProps:{},instance:e}}}],r&&i(t.prototype,r),a&&i(t,a),Object.defineProperty(t,"prototype",{writable:!1}),e}();t.default=r,e.exports=t.default}},t={};var i=function i(s){var r=t[s];if(void 0!==r)return r.exports;var a=t[s]={exports:{}};return e[s](a,a.exports,i),a.exports}(178);return i})()}));
6
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("WaveSurfer",[],t):"object"==typeof exports?exports.WaveSurfer=t():(e.WaveSurfer=e.WaveSurfer||{},e.WaveSurfer.cursor=t())}(self,(function(){return(()=>{"use strict";var e={178:(e,t)=>{function i(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}function s(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(){function e(t,i){var r=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),s(this,"defaultParams",{hideOnBlur:!0,width:"1px",color:"black",opacity:"0.25",style:"solid",zIndex:4,customStyle:{},customShowTimeStyle:{},showTime:!1,followCursorY:!1,formatTimeCallback:null}),s(this,"_onMousemove",(function(e){var t=r.util.withOrientation(e,r.wavesurfer.params.vertical),i=r.wrapper.getBoundingClientRect(),s=0,a=r.wrapper.scrollLeft+t.clientX-i.left,o=i.right<t.clientX+r.displayTime.getBoundingClientRect().width;r.params.showTime&&r.params.followCursorY&&(s=t.clientY-(i.top+i.height/2)),r.updateCursorPosition(a,s,o)})),s(this,"_onMouseenter",(function(){return r.showCursor()})),s(this,"_onMouseleave",(function(){return r.hideCursor()})),this.wavesurfer=i,this.style=i.util.style,this.util=i.util,this.cursor=null,this.showTime=null,this.displayTime=null,this.params=Object.assign({},this.defaultParams,t)}var t,r,a;return t=e,r=[{key:"_onReady",value:function(){this.wrapper=this.wavesurfer.drawer.wrapper,this.cursor=this.util.withOrientation(this.wrapper.appendChild(document.createElement("cursor")),this.wavesurfer.params.vertical),this.style(this.cursor,Object.assign({position:"absolute",zIndex:this.params.zIndex,left:0,top:0,bottom:0,width:"0",display:"flex",borderRightStyle:this.params.style,borderRightWidth:this.params.width,borderRightColor:this.params.color,opacity:this.params.opacity,pointerEvents:"none"},this.params.customStyle)),this.params.showTime&&(this.showTime=this.util.withOrientation(this.wrapper.appendChild(document.createElement("showTitle")),this.wavesurfer.params.vertical),this.style(this.showTime,Object.assign({position:"absolute",zIndex:this.params.zIndex,left:0,top:0,bottom:0,width:"auto",display:"flex",opacity:this.params.opacity,pointerEvents:"none",height:"100%"},this.params.customStyle)),this.displayTime=this.util.withOrientation(this.showTime.appendChild(document.createElement("div")),this.wavesurfer.params.vertical),this.style(this.displayTime,Object.assign({display:"inline",pointerEvents:"none",margin:"auto",visibility:"hidden"},this.params.customShowTimeStyle)),this.displayTime.innerHTML=this.formatTime(0)),this.wrapper.addEventListener("mousemove",this._onMousemove),this.params.hideOnBlur&&(this.hideCursor(),this.wrapper.addEventListener("mouseenter",this._onMouseenter),this.wrapper.addEventListener("mouseleave",this._onMouseleave))}},{key:"init",value:function(){var e=this;this.wavesurfer.isReady?this._onReady():this.wavesurfer.once("ready",(function(){return e._onReady()}))}},{key:"destroy",value:function(){this.params.showTime&&this.showTime.remove(),this.cursor.remove(),this.wrapper.removeEventListener("mousemove",this._onMousemove),this.params.hideOnBlur&&(this.wrapper.removeEventListener("mouseenter",this._onMouseenter),this.wrapper.removeEventListener("mouseleave",this._onMouseleave))}},{key:"updateCursorPosition",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(this.style(this.cursor,{left:"".concat(e,"px")}),this.params.showTime){var s=this.wavesurfer.getDuration(),r=this.wavesurfer.drawer.width/this.wavesurfer.params.pixelRatio,a=this.wavesurfer.drawer.getScrollX(),o=s/this.wavesurfer.drawer.width*a,n=Math.max(0,(e-this.wrapper.scrollLeft)/r*s)+o,h=this.formatTime(n);if(i){var l=this.displayTime.getBoundingClientRect().width;e-=l}this.style(this.showTime,{left:"".concat(e,"px"),top:"".concat(t,"px")}),this.style(this.displayTime,{visibility:"visible"}),this.displayTime.innerHTML="".concat(h)}}},{key:"showCursor",value:function(){this.style(this.cursor,{display:"flex"}),this.params.showTime&&this.style(this.showTime,{display:"flex"})}},{key:"hideCursor",value:function(){this.style(this.cursor,{display:"none"}),this.params.showTime&&this.style(this.showTime,{display:"none"})}},{key:"formatTime",value:function(e){return e=isNaN(e)?0:e,this.params.formatTimeCallback?this.params.formatTimeCallback(e):[e].map((function(e){return[Math.floor(e%3600/60),("00"+Math.floor(e%60)).slice(-2),("000"+Math.floor(e%1*1e3)).slice(-3)].join(":")}))}}],a=[{key:"create",value:function(t){return{name:"cursor",deferInit:!(!t||!t.deferInit)&&t.deferInit,params:t,staticProps:{},instance:e}}}],r&&i(t.prototype,r),a&&i(t,a),Object.defineProperty(t,"prototype",{writable:!1}),e}();t.default=r,e.exports=t.default}},t={};var i=function i(s){var r=t[s];if(void 0!==r)return r.exports;var a=t[s]={exports:{}};return e[s](a,a.exports,i),a.exports}(178);return i})()}));
7
7
  //# sourceMappingURL=wavesurfer.cursor.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wavesurfer.cursor.min.js","mappings":"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","sources":["webpack://WaveSurfer.[name]/webpack/universalModuleDefinition","webpack://WaveSurfer.[name]/./src/plugin/cursor/index.js","webpack://WaveSurfer.[name]/webpack/bootstrap","webpack://WaveSurfer.[name]/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\"][\"cursor\"] = factory();\n})(self, function() {\nreturn ","/**\n * @typedef {Object} CursorPluginParams\n * @property {?boolean} deferInit Set to true to stop auto init in `addPlugin()`\n * @property {boolean} hideOnBlur=true Hide the cursor when the mouse leaves the\n * waveform\n * @property {string} width='1px' The width of the cursor\n * @property {string} color='black' The color of the cursor\n * @property {string} opacity='0.25' The opacity of the cursor\n * @property {string} style='solid' The border style of the cursor\n * @property {number} zIndex=3 The z-index of the cursor element\n * @property {object} customStyle An object with custom styles which are applied\n * to the cursor element\n * @property {boolean} showTime=false Show the time on the cursor.\n * @property {object} customShowTimeStyle An object with custom styles which are\n * applied to the cursor time element.\n * @property {string} followCursorY=false Use `true` to make the time on\n * the cursor follow the x and the y-position of the mouse. Use `false` to make the\n * it only follow the x-position of the mouse.\n * @property {function} formatTimeCallback Formats the timestamp on the cursor.\n */\n\n/**\n * Displays a thin line at the position of the cursor on the waveform.\n *\n * @implements {PluginClass}\n * @extends {Observer}\n * @example\n * // es6\n * import CursorPlugin from 'wavesurfer.cursor.js';\n *\n * // commonjs\n * var CursorPlugin = require('wavesurfer.cursor.js');\n *\n * // if you are using <script> tags\n * var CursorPlugin = window.WaveSurfer.cursor;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * CursorPlugin.create({\n * // plugin options ...\n * })\n * ]\n * });\n */\nexport default class CursorPlugin {\n /**\n * Cursor 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 {CursorPluginParams} params parameters use to initialise the\n * plugin\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'cursor',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n staticProps: {},\n instance: CursorPlugin\n };\n }\n\n /**\n * @type {CursorPluginParams}\n */\n defaultParams = {\n hideOnBlur: true,\n width: '1px',\n color: 'black',\n opacity: '0.25',\n style: 'solid',\n zIndex: 4,\n customStyle: {},\n customShowTimeStyle: {},\n showTime: false,\n followCursorY: false,\n formatTimeCallback: null\n };\n\n /**\n * @param {object} e Mouse move event\n */\n _onMousemove = e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n const bbox = this.wrapper.getBoundingClientRect();\n let y = 0;\n let x = this.wrapper.scrollLeft + event.clientX - bbox.left;\n let flip = bbox.right < event.clientX + this.displayTime.getBoundingClientRect().width;\n\n if (this.params.showTime && this.params.followCursorY) {\n // follow y-position of the mouse\n y = event.clientY - (bbox.top + bbox.height / 2);\n }\n\n this.updateCursorPosition(x, y, flip);\n };\n\n /**\n * @returns {void}\n */\n _onMouseenter = () => this.showCursor();\n\n /**\n * @returns {void}\n */\n _onMouseleave = () => this.hideCursor();\n\n /**\n * Construct the plugin class. You probably want to use `CursorPlugin.create`\n * instead.\n *\n * @param {CursorPluginParams} params Plugin parameters\n * @param {object} ws Wavesurfer instance\n */\n constructor(params, ws) {\n this.wavesurfer = ws;\n this.style = ws.util.style;\n this.util = ws.util;\n /**\n * The cursor HTML element\n *\n * @type {?HTMLElement}\n */\n this.cursor = null;\n /**\n * displays the time next to the cursor\n *\n * @type {?HTMLElement}\n */\n this.showTime = null;\n /**\n * The html container that will display the time\n *\n * @type {?HTMLElement}\n */\n this.displayTime = null;\n\n this.params = Object.assign({}, this.defaultParams, params);\n }\n\n _onReady() {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n this.cursor = this.util.withOrientation(this.wrapper.appendChild(\n document.createElement('cursor'),\n ), this.wavesurfer.params.vertical);\n\n this.style(this.cursor,\n Object.assign(\n {\n position: 'absolute',\n zIndex: this.params.zIndex,\n left: 0,\n top: 0,\n bottom: 0,\n width: '0',\n display: 'flex',\n borderRightStyle: this.params.style,\n borderRightWidth: this.params.width,\n borderRightColor: this.params.color,\n opacity: this.params.opacity,\n pointerEvents: 'none'\n },\n this.params.customStyle\n )\n );\n\n if (this.params.showTime) {\n this.showTime = this.util.withOrientation(this.wrapper.appendChild(\n document.createElement('showTitle')\n ), this.wavesurfer.params.vertical);\n this.style(\n this.showTime,\n Object.assign(\n {\n position: 'absolute',\n zIndex: this.params.zIndex,\n left: 0,\n top: 0,\n bottom: 0,\n width: 'auto',\n display: 'flex',\n opacity: this.params.opacity,\n pointerEvents: 'none',\n height: '100%'\n },\n this.params.customStyle\n )\n );\n\n this.displayTime = this.util.withOrientation(this.showTime.appendChild(\n document.createElement('div'),\n ), this.wavesurfer.params.vertical);\n\n this.style(this.displayTime,\n Object.assign(\n {\n display: 'inline',\n pointerEvents: 'none',\n margin: 'auto',\n visibility: 'hidden' // initial value will be hidden just for measuring purpose\n },\n this.params.customShowTimeStyle\n )\n );\n\n // initial value to measure display width\n this.displayTime.innerHTML = this.formatTime(0);\n }\n\n this.wrapper.addEventListener('mousemove', this._onMousemove);\n if (this.params.hideOnBlur) {\n // ensure elements are hidden initially\n this.hideCursor();\n this.wrapper.addEventListener('mouseenter', this._onMouseenter);\n this.wrapper.addEventListener('mouseleave', this._onMouseleave);\n }\n }\n\n /**\n * Initialise the plugin (used by the Plugin API)\n */\n init() {\n if (this.wavesurfer.isReady) {\n this._onReady();\n } else {\n this.wavesurfer.once('ready', () => this._onReady());\n }\n }\n\n /**\n * Destroy the plugin (used by the Plugin API)\n */\n destroy() {\n if (this.params.showTime) {\n this.cursor.parentNode.removeChild(this.showTime);\n }\n this.cursor.parentNode.removeChild(this.cursor);\n this.wrapper.removeEventListener('mousemove', this._onMousemove);\n if (this.params.hideOnBlur) {\n this.wrapper.removeEventListener('mouseenter', this._onMouseenter);\n this.wrapper.removeEventListener('mouseleave', this._onMouseleave);\n }\n }\n\n /**\n * Update the cursor position\n *\n * @param {number} xpos The x offset of the cursor in pixels\n * @param {number} ypos The y offset of the cursor in pixels\n * @param {boolean} flip Flag to flip duration text from right to left\n */\n updateCursorPosition(xpos, ypos, flip = false) {\n this.style(this.cursor, {\n left: `${xpos}px`\n });\n if (this.params.showTime) {\n const duration = this.wavesurfer.getDuration();\n const elementWidth =\n this.wavesurfer.drawer.width /\n this.wavesurfer.params.pixelRatio;\n const scrollWidth = this.wavesurfer.drawer.getScrollX();\n\n const scrollTime =\n (duration / this.wavesurfer.drawer.width) * scrollWidth;\n\n const timeValue =\n Math.max(0, ((xpos - this.wrapper.scrollLeft) / elementWidth) * duration) + scrollTime;\n const formatValue = this.formatTime(timeValue);\n if (flip) {\n const textOffset = this.displayTime.getBoundingClientRect().width;\n xpos -= textOffset;\n }\n this.style(this.showTime, {\n left: `${xpos}px`,\n top: `${ypos}px`\n });\n this.style(this.displayTime, {\n visibility: 'visible'\n });\n this.displayTime.innerHTML = `${formatValue}`;\n }\n }\n\n /**\n * Show the cursor\n */\n showCursor() {\n this.style(this.cursor, {\n display: 'flex'\n });\n if (this.params.showTime) {\n this.style(this.showTime, {\n display: 'flex'\n });\n }\n }\n\n /**\n * Hide the cursor\n */\n hideCursor() {\n this.style(this.cursor, {\n display: 'none'\n });\n if (this.params.showTime) {\n this.style(this.showTime, {\n display: 'none'\n });\n }\n }\n\n /**\n * Format the timestamp for `cursorTime`.\n *\n * @param {number} cursorTime Time in seconds\n * @returns {string} Formatted timestamp\n */\n formatTime(cursorTime) {\n cursorTime = isNaN(cursorTime) ? 0 : cursorTime;\n\n if (this.params.formatTimeCallback) {\n return this.params.formatTimeCallback(cursorTime);\n }\n return [cursorTime].map(time =>\n [\n Math.floor((time % 3600) / 60), // minutes\n ('00' + Math.floor(time % 60)).slice(-2), // seconds\n ('000' + Math.floor((time % 1) * 1000)).slice(-3) // milliseconds\n ].join(':')\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__(178);\n"],"names":["root","factory","exports","module","define","amd","self","CursorPlugin","params","ws","hideOnBlur","width","color","opacity","style","zIndex","customStyle","customShowTimeStyle","showTime","followCursorY","formatTimeCallback","e","event","util","withOrientation","wavesurfer","vertical","bbox","wrapper","getBoundingClientRect","y","x","scrollLeft","clientX","left","flip","right","displayTime","clientY","top","height","updateCursorPosition","showCursor","hideCursor","this","cursor","Object","assign","defaultParams","drawer","appendChild","document","createElement","position","bottom","display","borderRightStyle","borderRightWidth","borderRightColor","pointerEvents","margin","visibility","innerHTML","formatTime","addEventListener","_onMousemove","_onMouseenter","_onMouseleave","isReady","_onReady","once","parentNode","removeChild","removeEventListener","xpos","ypos","duration","getDuration","elementWidth","pixelRatio","scrollWidth","getScrollX","scrollTime","timeValue","Math","max","formatValue","textOffset","cursorTime","isNaN","map","time","floor","slice","join","name","deferInit","staticProps","instance","__webpack_module_cache__","__webpack_exports__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__"],"sourceRoot":""}
1
+ {"version":3,"file":"wavesurfer.cursor.min.js","mappings":"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","sources":["webpack://WaveSurfer.[name]/webpack/universalModuleDefinition","webpack://WaveSurfer.[name]/./src/plugin/cursor/index.js","webpack://WaveSurfer.[name]/webpack/bootstrap","webpack://WaveSurfer.[name]/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\"][\"cursor\"] = factory();\n})(self, function() {\nreturn ","/**\n * @typedef {Object} CursorPluginParams\n * @property {?boolean} deferInit Set to true to stop auto init in `addPlugin()`\n * @property {boolean} hideOnBlur=true Hide the cursor when the mouse leaves the\n * waveform\n * @property {string} width='1px' The width of the cursor\n * @property {string} color='black' The color of the cursor\n * @property {number|string} opacity='0.25' The opacity of the cursor\n * @property {string} style='solid' The border style of the cursor\n * @property {number} zIndex=3 The z-index of the cursor element\n * @property {object} customStyle An object with custom styles which are applied\n * to the cursor element\n * @property {boolean} showTime=false Show the time on the cursor.\n * @property {object} customShowTimeStyle An object with custom styles which are\n * applied to the cursor time element.\n * @property {boolean} followCursorY=false Use `true` to make the time on\n * the cursor follow the x and the y-position of the mouse. Use `false` to make the\n * it only follow the x-position of the mouse.\n * @property {function} formatTimeCallback Formats the timestamp on the cursor.\n */\n\n/**\n * Displays a thin line at the position of the cursor on the waveform.\n *\n * @implements {PluginClass}\n * @extends {Observer}\n * @example\n * // es6\n * import CursorPlugin from 'wavesurfer.cursor.js';\n *\n * // commonjs\n * var CursorPlugin = require('wavesurfer.cursor.js');\n *\n * // if you are using <script> tags\n * var CursorPlugin = window.WaveSurfer.cursor;\n *\n * // ... initialising wavesurfer with the plugin\n * var wavesurfer = WaveSurfer.create({\n * // wavesurfer options ...\n * plugins: [\n * CursorPlugin.create({\n * // plugin options ...\n * })\n * ]\n * });\n */\nexport default class CursorPlugin {\n /**\n * Cursor 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 {CursorPluginParams} params parameters use to initialise the\n * plugin\n * @return {PluginDefinition} an object representing the plugin\n */\n static create(params) {\n return {\n name: 'cursor',\n deferInit: params && params.deferInit ? params.deferInit : false,\n params: params,\n staticProps: {},\n instance: CursorPlugin\n };\n }\n\n /**\n * @type {CursorPluginParams}\n */\n defaultParams = {\n hideOnBlur: true,\n width: '1px',\n color: 'black',\n opacity: '0.25',\n style: 'solid',\n zIndex: 4,\n customStyle: {},\n customShowTimeStyle: {},\n showTime: false,\n followCursorY: false,\n formatTimeCallback: null\n };\n\n /**\n * @param {object} e Mouse move event\n */\n _onMousemove = e => {\n const event = this.util.withOrientation(e, this.wavesurfer.params.vertical);\n const bbox = this.wrapper.getBoundingClientRect();\n let y = 0;\n let x = this.wrapper.scrollLeft + event.clientX - bbox.left;\n let flip = bbox.right < event.clientX + this.displayTime.getBoundingClientRect().width;\n\n if (this.params.showTime && this.params.followCursorY) {\n // follow y-position of the mouse\n y = event.clientY - (bbox.top + bbox.height / 2);\n }\n\n this.updateCursorPosition(x, y, flip);\n };\n\n /**\n * @returns {void}\n */\n _onMouseenter = () => this.showCursor();\n\n /**\n * @returns {void}\n */\n _onMouseleave = () => this.hideCursor();\n\n /**\n * Construct the plugin class. You probably want to use `CursorPlugin.create`\n * instead.\n *\n * @param {CursorPluginParams} params Plugin parameters\n * @param {object} ws Wavesurfer instance\n */\n constructor(params, ws) {\n this.wavesurfer = ws;\n this.style = ws.util.style;\n this.util = ws.util;\n /**\n * The cursor HTML element\n *\n * @type {?HTMLElement}\n */\n this.cursor = null;\n /**\n * displays the time next to the cursor\n *\n * @type {?HTMLElement}\n */\n this.showTime = null;\n /**\n * The html container that will display the time\n *\n * @type {?HTMLElement}\n */\n this.displayTime = null;\n\n this.params = Object.assign({}, this.defaultParams, params);\n }\n\n _onReady() {\n this.wrapper = this.wavesurfer.drawer.wrapper;\n this.cursor = this.util.withOrientation(this.wrapper.appendChild(\n document.createElement('cursor'),\n ), this.wavesurfer.params.vertical);\n\n this.style(this.cursor,\n Object.assign(\n {\n position: 'absolute',\n zIndex: this.params.zIndex,\n left: 0,\n top: 0,\n bottom: 0,\n width: '0',\n display: 'flex',\n borderRightStyle: this.params.style,\n borderRightWidth: this.params.width,\n borderRightColor: this.params.color,\n opacity: this.params.opacity,\n pointerEvents: 'none'\n },\n this.params.customStyle\n )\n );\n\n if (this.params.showTime) {\n this.showTime = this.util.withOrientation(this.wrapper.appendChild(\n document.createElement('showTitle')\n ), this.wavesurfer.params.vertical);\n this.style(\n this.showTime,\n Object.assign(\n {\n position: 'absolute',\n zIndex: this.params.zIndex,\n left: 0,\n top: 0,\n bottom: 0,\n width: 'auto',\n display: 'flex',\n opacity: this.params.opacity,\n pointerEvents: 'none',\n height: '100%'\n },\n this.params.customStyle\n )\n );\n\n this.displayTime = this.util.withOrientation(this.showTime.appendChild(\n document.createElement('div'),\n ), this.wavesurfer.params.vertical);\n\n this.style(this.displayTime,\n Object.assign(\n {\n display: 'inline',\n pointerEvents: 'none',\n margin: 'auto',\n visibility: 'hidden' // initial value will be hidden just for measuring purpose\n },\n this.params.customShowTimeStyle\n )\n );\n\n // initial value to measure display width\n this.displayTime.innerHTML = this.formatTime(0);\n }\n\n this.wrapper.addEventListener('mousemove', this._onMousemove);\n if (this.params.hideOnBlur) {\n // ensure elements are hidden initially\n this.hideCursor();\n this.wrapper.addEventListener('mouseenter', this._onMouseenter);\n this.wrapper.addEventListener('mouseleave', this._onMouseleave);\n }\n }\n\n /**\n * Initialise the plugin (used by the Plugin API)\n */\n init() {\n if (this.wavesurfer.isReady) {\n this._onReady();\n } else {\n this.wavesurfer.once('ready', () => this._onReady());\n }\n }\n\n /**\n * Destroy the plugin (used by the Plugin API)\n */\n destroy() {\n if (this.params.showTime) {\n this.showTime.remove();\n }\n this.cursor.remove();\n this.wrapper.removeEventListener('mousemove', this._onMousemove);\n if (this.params.hideOnBlur) {\n this.wrapper.removeEventListener('mouseenter', this._onMouseenter);\n this.wrapper.removeEventListener('mouseleave', this._onMouseleave);\n }\n }\n\n /**\n * Update the cursor position\n *\n * @param {number} xpos The x offset of the cursor in pixels\n * @param {number} ypos The y offset of the cursor in pixels\n * @param {boolean} flip Flag to flip duration text from right to left\n */\n updateCursorPosition(xpos, ypos, flip = false) {\n this.style(this.cursor, {\n left: `${xpos}px`\n });\n if (this.params.showTime) {\n const duration = this.wavesurfer.getDuration();\n const elementWidth =\n this.wavesurfer.drawer.width /\n this.wavesurfer.params.pixelRatio;\n const scrollWidth = this.wavesurfer.drawer.getScrollX();\n\n const scrollTime =\n (duration / this.wavesurfer.drawer.width) * scrollWidth;\n\n const timeValue =\n Math.max(0, ((xpos - this.wrapper.scrollLeft) / elementWidth) * duration) + scrollTime;\n const formatValue = this.formatTime(timeValue);\n if (flip) {\n const textOffset = this.displayTime.getBoundingClientRect().width;\n xpos -= textOffset;\n }\n this.style(this.showTime, {\n left: `${xpos}px`,\n top: `${ypos}px`\n });\n this.style(this.displayTime, {\n visibility: 'visible'\n });\n this.displayTime.innerHTML = `${formatValue}`;\n }\n }\n\n /**\n * Show the cursor\n */\n showCursor() {\n this.style(this.cursor, {\n display: 'flex'\n });\n if (this.params.showTime) {\n this.style(this.showTime, {\n display: 'flex'\n });\n }\n }\n\n /**\n * Hide the cursor\n */\n hideCursor() {\n this.style(this.cursor, {\n display: 'none'\n });\n if (this.params.showTime) {\n this.style(this.showTime, {\n display: 'none'\n });\n }\n }\n\n /**\n * Format the timestamp for `cursorTime`.\n *\n * @param {number} cursorTime Time in seconds\n * @returns {string} Formatted timestamp\n */\n formatTime(cursorTime) {\n cursorTime = isNaN(cursorTime) ? 0 : cursorTime;\n\n if (this.params.formatTimeCallback) {\n return this.params.formatTimeCallback(cursorTime);\n }\n return [cursorTime].map(time =>\n [\n Math.floor((time % 3600) / 60), // minutes\n ('00' + Math.floor(time % 60)).slice(-2), // seconds\n ('000' + Math.floor((time % 1) * 1000)).slice(-3) // milliseconds\n ].join(':')\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__(178);\n"],"names":["root","factory","exports","module","define","amd","self","CursorPlugin","params","ws","hideOnBlur","width","color","opacity","style","zIndex","customStyle","customShowTimeStyle","showTime","followCursorY","formatTimeCallback","e","event","util","withOrientation","wavesurfer","vertical","bbox","wrapper","getBoundingClientRect","y","x","scrollLeft","clientX","left","flip","right","displayTime","clientY","top","height","updateCursorPosition","showCursor","hideCursor","this","cursor","Object","assign","defaultParams","drawer","appendChild","document","createElement","position","bottom","display","borderRightStyle","borderRightWidth","borderRightColor","pointerEvents","margin","visibility","innerHTML","formatTime","addEventListener","_onMousemove","_onMouseenter","_onMouseleave","isReady","_onReady","once","remove","removeEventListener","xpos","ypos","duration","getDuration","elementWidth","pixelRatio","scrollWidth","getScrollX","scrollTime","timeValue","Math","max","formatValue","textOffset","cursorTime","isNaN","map","time","floor","slice","join","name","deferInit","staticProps","instance","__webpack_module_cache__","__webpack_exports__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__"],"sourceRoot":""}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * wavesurfer.js elan plugin 6.0.1 (2022-02-14)
2
+ * wavesurfer.js elan plugin 6.0.4 (2022-03-08)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * wavesurfer.js elan plugin 6.0.1 (2022-02-14)
2
+ * wavesurfer.js elan plugin 6.0.4 (2022-03-08)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * wavesurfer.js markers plugin 6.0.1 (2022-02-14)
2
+ * wavesurfer.js markers plugin 6.0.4 (2022-03-08)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * wavesurfer.js markers plugin 6.0.1 (2022-02-14)
2
+ * wavesurfer.js markers plugin 6.0.4 (2022-03-08)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * wavesurfer.js mediasession plugin 6.0.1 (2022-02-14)
2
+ * wavesurfer.js mediasession plugin 6.0.4 (2022-03-08)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * wavesurfer.js mediasession plugin 6.0.1 (2022-02-14)
2
+ * wavesurfer.js mediasession plugin 6.0.4 (2022-03-08)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * wavesurfer.js microphone plugin 6.0.1 (2022-02-14)
2
+ * wavesurfer.js microphone plugin 6.0.4 (2022-03-08)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * wavesurfer.js microphone plugin 6.0.1 (2022-02-14)
2
+ * wavesurfer.js microphone plugin 6.0.4 (2022-03-08)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * wavesurfer.js minimap plugin 6.0.1 (2022-02-14)
2
+ * wavesurfer.js minimap plugin 6.0.4 (2022-03-08)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * wavesurfer.js minimap plugin 6.0.1 (2022-02-14)
2
+ * wavesurfer.js minimap plugin 6.0.4 (2022-03-08)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * wavesurfer.js playhead plugin 6.0.1 (2022-02-14)
2
+ * wavesurfer.js playhead plugin 6.0.4 (2022-03-08)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * wavesurfer.js playhead plugin 6.0.1 (2022-02-14)
2
+ * wavesurfer.js playhead plugin 6.0.4 (2022-03-08)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * wavesurfer.js regions plugin 6.0.1 (2022-02-14)
2
+ * wavesurfer.js regions plugin 6.0.4 (2022-03-08)
3
3
  * https://wavesurfer-js.org
4
4
  * @license BSD-3-Clause
5
5
  */