/*! * videojs-wavesurfer * @version 3.8.0 * @see https://github.com/collab-project/videojs-wavesurfer * @copyright 2014-2021 Collab * @license MIT */ !(function (e, t) { "object" == typeof exports && "object" == typeof module ? (module.exports = t(require("video.js"), require("wavesurfer.js"))) : "function" == typeof define && define.amd ? define("VideojsWavesurfer", ["video.js", "wavesurfer.js"], t) : "object" == typeof exports ? (exports.VideojsWavesurfer = t( require("video.js"), require("wavesurfer.js") )) : (e.VideojsWavesurfer = t(e.videojs, e.WaveSurfer)); })(self, function (e, t) { return (() => { var r = { 21: function (e, t, r) { var i; !(function (t) { "use strict"; function a(e, t) { t = t || 2; var r, i = Number(e) < 0, a = e.toString(); return ( i && (a = a.slice(1)), (r = t - a.length + 1), (i ? "-" : "") + (a = new Array(r).join("0").concat(a)) ); } void 0 === (i = function () { return a; }.call(t, r, t, e)) || (e.exports = i); })(this); }, 997: (e, t) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); var r = { debug: !1, displayMilliseconds: !0 }; (t.default = r), (e.exports = t.default); }, 537: (e, t) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); var r = function e() { !(function (e, t) { if (!(e instanceof t)) throw new TypeError( "Cannot call a class as a function" ); })(this, e); }; (r.READY = "ready"), (r.ERROR = "error"), (r.VOLUMECHANGE = "volumechange"), (r.FULLSCREENCHANGE = "fullscreenchange"), (r.TIMEUPDATE = "timeupdate"), (r.ENDED = "ended"), (r.PAUSE = "pause"), (r.FINISH = "finish"), (r.SEEK = "seek"), (r.REDRAW = "redraw"), (r.AUDIOPROCESS = "audioprocess"), (r.DEVICE_READY = "deviceReady"), (r.DEVICE_ERROR = "deviceError"), (r.AUDIO_OUTPUT_READY = "audioOutputReady"), (r.WAVE_READY = "waveReady"), (r.PLAYBACK_FINISH = "playbackFinish"), (r.ABORT = "abort"), (r.RESIZE = "resize"), Object.freeze(r); var i = r; (t.default = i), (e.exports = t.default); }, 200: (e, t) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); var r = { setSource: function (e, t) { if (this.player.usingPlugin("wavesurfer")) { var r = this.player.wavesurfer().surfer.params .backend, i = e.src, a = e.peaks; switch (r) { case "WebAudio": this.player.wavesurfer().load(i); break; default: t(null, e); var o = this.player.tech_.el(); void 0 === a ? this.player.wavesurfer().load(o) : this.player .wavesurfer() .load(o, a); } } else t(null, e); }, }; (t.default = r), (e.exports = t.default); }, 518: (e, t, r) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); var i = o(r(21)), a = o(r(455)); function o(e) { return e && e.__esModule ? e : { default: e }; } var s = function (e, t) { var r = !( arguments.length > 2 && void 0 !== arguments[2] ) || arguments[2]; (e = e < 0 ? 0 : e), (isNaN(e) || e === 1 / 0) && (e = 0); var o = (0, a.default)(1e3 * e), s = o; void 0 !== t && (s = (0, a.default)(1e3 * t)); var n = (0, i.default)(o.hours), l = (0, i.default)(o.minutes), u = (0, i.default)(o.seconds), h = (0, i.default)(o.milliseconds, 3); if (o.days > 0 || s.days > 0) { var c = (0, i.default)(o.days); return "" .concat(c, ":") .concat(n, ":") .concat(l, ":") .concat(u); } return o.hours > 0 || s.hours > 0 ? "".concat(n, ":").concat(l, ":").concat(u) : r ? "".concat(l, ":").concat(u, ":").concat(h) : "".concat(l, ":").concat(u); }; (t.default = s), (e.exports = t.default); }, 456: (e, t, r) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); var i, a = (i = r(390)) && i.__esModule ? i : { default: i }; var o = function (e, t, r) { !0 === r && ("error" === t ? a.default.log.error(e) : "warn" === t ? a.default.log.warn(e) : a.default.log(e)); }; (t.default = o), (e.exports = t.default); }, 908: (e, t, r) => { var i; (i = "undefined" != typeof window ? window : void 0 !== r.g ? r.g : "undefined" != typeof self ? self : {}), (e.exports = i); }, 455: (e, t, r) => { "use strict"; function i(e) { if ("number" != typeof e) throw new TypeError("Expected a number"); const t = e > 0 ? Math.floor : Math.ceil; return { days: t(e / 864e5), hours: t(e / 36e5) % 24, minutes: t(e / 6e4) % 60, seconds: t(e / 1e3) % 60, milliseconds: t(e) % 1e3, microseconds: t(1e3 * e) % 1e3, nanoseconds: t(1e6 * e) % 1e3, }; } r.r(t), r.d(t, { default: () => i }); }, 390: (t) => { "use strict"; t.exports = e; }, 410: (e) => { "use strict"; e.exports = t; }, }, i = {}; function a(e) { var t = i[e]; if (void 0 !== t) return t.exports; var o = (i[e] = { exports: {} }); return r[e].call(o.exports, o, o.exports, a), o.exports; } (a.d = (e, t) => { for (var r in t) a.o(t, r) && !a.o(e, r) && Object.defineProperty(e, r, { enumerable: !0, get: t[r] }); }), (a.g = (function () { if ("object" == typeof globalThis) return globalThis; try { return this || new Function("return this")(); } catch (e) { if ("object" == typeof window) return window; } })()), (a.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)), (a.r = (e) => { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module", }), Object.defineProperty(e, "__esModule", { value: !0 }); }); var o = {}; return ( (() => { "use strict"; var e = o; function t(e) { return (t = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e; } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; })(e); } Object.defineProperty(e, "__esModule", { value: !0 }), (e.Wavesurfer = void 0); var r = c(a(537)), i = c(a(456)), s = c(a(518)), n = c(a(997)), l = c(a(200)), u = (c(a(908)), c(a(390))), h = c(a(410)); function c(e) { return e && e.__esModule ? e : { default: e }; } function d(e, t) { for (var r = 0; r < t.length; r++) { var i = t[r]; (i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i); } } function f(e, t) { return (f = Object.setPrototypeOf || function (e, t) { return (e.__proto__ = t), e; })(e, t); } function p(e) { var t = (function () { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; if ("function" == typeof Proxy) return !0; try { return ( Boolean.prototype.valueOf.call( Reflect.construct( Boolean, [], function () {} ) ), !0 ); } catch (e) { return !1; } })(); return function () { var r, i = g(e); if (t) { var a = g(this).constructor; r = Reflect.construct(i, arguments, a); } else r = i.apply(this, arguments); return y(this, r); }; } function y(e, r) { return !r || ("object" !== t(r) && "function" != typeof r) ? v(e) : r; } function v(e) { if (void 0 === e) throw new ReferenceError( "this hasn't been initialised - super() hasn't been called" ); return e; } function g(e) { return (g = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) { return e.__proto__ || Object.getPrototypeOf(e); })(e); } var m = u.default.getPlugin("plugin"), b = "wavesurfer", E = "vjs-wavedisplay", k = "WebAudio", w = "MediaElement", T = (function (e) { !(function (e, t) { if ("function" != typeof t && null !== t) throw new TypeError( "Super expression must either be null or a function" ); (e.prototype = Object.create(t && t.prototype, { constructor: { value: e, writable: !0, configurable: !0, }, })), t && f(e, t); })(c, e); var t, a, o, l = p(c); function c(e, t) { var i; return ( (function (e, t) { if (!(e instanceof t)) throw new TypeError( "Cannot call a class as a function" ); })(this, c), (i = l.call(this, e, t)), e.addClass("vjs-wavesurfer"), (t = u.default.mergeOptions(n.default, t)), (i.waveReady = !1), (i.waveFinished = !1), (i.liveMode = !1), (i.backend = null), (i.debug = "true" === t.debug.toString()), (i.textTracksEnabled = i.player.options_.tracks.length > 0), (i.displayMilliseconds = t.displayMilliseconds), t.formatTime && "function" == typeof t.formatTime ? i.setFormatTime(t.formatTime) : i.setFormatTime(function (e, t) { return (0, s.default)(e, t, i.displayMilliseconds); }), i.player.one( r.default.READY, i.initialize.bind(v(i)) ), i ); } return ( (t = c), (a = [ { key: "initialize", value: function () { var e = this; void 0 !== this.player.bigPlayButton && this.player.bigPlayButton.hide(); var t = this.parseOptions( this.player.options_.plugins .wavesurfer ); !0 === this.player.options_.controls && (this.player.controlBar.show(), (this.player.controlBar.el_.style.display = "flex"), this.backend === k && void 0 !== this.player.controlBar .progressControl && this.player.controlBar.progressControl.hide(), void 0 !== this.player.controlBar .pictureInPictureToggle && this.player.controlBar.pictureInPictureToggle.hide(), [ "currentTimeDisplay", "timeDivider", "durationDisplay", ].forEach(function (t) { void 0 !== (t = e.player.controlBar[ t ]) && ((t.el_.style.display = "block"), t.show()); }), void 0 !== this.player.controlBar .remainingTimeDisplay && this.player.controlBar.remainingTimeDisplay.hide(), this.backend === k && void 0 !== this.player.controlBar .playToggle && (this.player.controlBar.playToggle.on( ["tap", "click"], this.onPlayToggle.bind(this) ), this.player.controlBar.playToggle.hide())), (this.surfer = h.default.create(t)), this.surfer.on( r.default.ERROR, this.onWaveError.bind(this) ), this.surfer.on( r.default.FINISH, this.onWaveFinish.bind(this) ), (this.backend = this.surfer.params.backend), this.log( "Using wavesurfer.js " + this.backend + " backend." ), "microphone" in this.player .wavesurfer() .surfer.getActivePlugins() && ((this.liveMode = !0), (this.waveReady = !0), this.log( "wavesurfer.js microphone plugin enabled." ), this.player.controlBar.playToggle.show(), this.surfer.microphone.on( r.default.DEVICE_ERROR, this.onWaveError.bind(this) )), (this.surferReady = this.onWaveReady.bind(this)), this.backend === k && ((this.surferProgress = this.onWaveProgress.bind( this )), (this.surferSeek = this.onWaveSeek.bind(this)), this.player.muted() && this.setVolume(0)), this.liveMode || this.setupPlaybackEvents(!0), this.player.on( r.default.VOLUMECHANGE, this.onVolumeChange.bind(this) ), this.player.on( r.default.FULLSCREENCHANGE, this.onScreenChange.bind(this) ), !0 === this.player.options_.fluid && (this.surfer.drawer.wrapper.className = E); }, }, { key: "parseOptions", value: function () { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = this.player.el_.getBoundingClientRect(); (this.originalWidth = this.player.options_.width || t.width), (this.originalHeight = this.player.options_.height || t.height); var r = this.player.controlBar.height(); if ( (!0 === this.player.options_.controls && 0 === r && (r = 30), void 0 === e.container && (e.container = this.player.el_), void 0 === e.waveformHeight) ) { var i = t.height; e.height = i - r; } else e.height = e.waveformHeight; return ( e.splitChannels && !0 === e.splitChannels && (e.height /= 2), "backend" in e ? (this.backend = e.backend) : (e.backend = this.backend = w), e ); }, }, { key: "setupPlaybackEvents", value: function (e) { !1 === e ? (this.surfer.un( r.default.READY, this.surferReady ), this.backend === k && (this.surfer.un( r.default.AUDIOPROCESS, this.surferProgress ), this.surfer.un( r.default.SEEK, this.surferSeek ))) : !0 === e && (this.surfer.on( r.default.READY, this.surferReady ), this.backend === k && (this.surfer.on( r.default.AUDIOPROCESS, this.surferProgress ), this.surfer.on( r.default.SEEK, this.surferSeek ))); }, }, { key: "load", value: function (e, t) { e instanceof Blob || e instanceof File ? (this.log( "Loading object: " + JSON.stringify(e) ), this.surfer.loadBlob(e)) : void 0 !== t ? this.loadPeaks(e, t) : ("string" == typeof e ? this.log( "Loading URL: " + e ) : this.log( "Loading element: " + e ), this.surfer.load(e)); }, }, { key: "loadPeaks", value: function (e, t) { var i = this; if (Array.isArray(t)) this.log( "Loading URL with array of peaks: " + e ), this.surfer.load(e, t); else { var a = { url: t, responseType: "json", }; void 0 !== this.player.options_.plugins .wavesurfer.xhr && (a.xhr = this.player.options_.plugins.wavesurfer.xhr); var o = h.default.util.fetchFile(a); o.once("success", function (a) { i.log( "Loaded Peak Data URL: " + t ), a && a.data ? i.surfer.load( e, a.data ) : (i.player.trigger( r.default.ERROR, "Could not load peaks data from " + t ), i.log(err, "error")); }), o.once("error", function (e) { i.player.trigger( r.default.ERROR, "Unable to retrieve peak data from " + t + ". Status code: " + o.response.status ); }); } }, }, { key: "play", value: function () { void 0 !== this.player.controlBar.playToggle && this.player.controlBar.playToggle.contentEl() && this.player.controlBar.playToggle.handlePlay(), this.liveMode ? this.surfer.microphone.active ? this.surfer.microphone .paused ? (this.log( "Resume microphone" ), this.surfer.microphone.play()) : this.pause() : (this.log( "Start microphone" ), this.surfer.microphone.start()) : (this.log("Start playback"), this.player.play(), this.surfer.play()); }, }, { key: "pause", value: function () { void 0 !== this.player.controlBar.playToggle && this.player.controlBar.playToggle.contentEl() && this.player.controlBar.playToggle.handlePause(), this.liveMode ? (this.log("Pause microphone"), this.surfer.microphone.pause()) : (this.log("Pause playback"), this.waveFinished ? (this.waveFinished = !1) : this.surfer.pause(), this.setCurrentTime()); }, }, { key: "dispose", value: function () { this.surfer && (this.liveMode && this.surfer.microphone && (this.surfer.microphone.destroy(), this.log( "Destroyed microphone plugin" )), this.surfer.destroy()), this.log("Destroyed plugin"); }, }, { key: "isDestroyed", value: function () { return ( this.player && null === this.player.children() ); }, }, { key: "destroy", value: function () { this.player.dispose(); }, }, { key: "setVolume", value: function (e) { void 0 !== e && (this.log( "Changing volume to: " + e ), this.player.volume(e)); }, }, { key: "exportImage", value: function (e, t) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "blob"; return this.surfer.exportImage(e, t, r); }, }, { key: "setAudioOutput", value: function (e) { var t = this; e && this.surfer .setSinkId(e) .then(function (e) { t.player.trigger( r.default .AUDIO_OUTPUT_READY ); }) .catch(function (e) { t.player.trigger( r.default.ERROR, e ), t.log(e, "error"); }); }, }, { key: "getCurrentTime", value: function () { var e = this.surfer.getCurrentTime(); return (e = isNaN(e) ? 0 : e); }, }, { key: "setCurrentTime", value: function (e, t) { if ( (void 0 === e && (e = this.surfer.getCurrentTime()), void 0 === t && (t = this.surfer.getDuration()), (e = isNaN(e) ? 0 : e), (t = isNaN(t) ? 0 : t), this.player.controlBar .currentTimeDisplay && this.player.controlBar.currentTimeDisplay.contentEl() && this.player.controlBar.currentTimeDisplay.contentEl() .lastChild) ) { var r = Math.min(e, t); this.player.controlBar.currentTimeDisplay.formattedTime_ = this.player.controlBar.currentTimeDisplay.contentEl().lastChild.textContent = this._formatTime( r, t, this.displayMilliseconds ); } this.textTracksEnabled && this.player.tech_ && this.player.tech_.el_ && this.player.tech_.setCurrentTime(e); }, }, { key: "getDuration", value: function () { var e = this.surfer.getDuration(); return (e = isNaN(e) ? 0 : e); }, }, { key: "setDuration", value: function (e) { void 0 === e && (e = this.surfer.getDuration()), (e = isNaN(e) ? 0 : e), this.player.controlBar .durationDisplay && this.player.controlBar.durationDisplay.contentEl() && this.player.controlBar.durationDisplay.contentEl() .lastChild && (this.player.controlBar.durationDisplay.formattedTime_ = this.player.controlBar.durationDisplay.contentEl().lastChild.textContent = this._formatTime( e, e, this .displayMilliseconds )); }, }, { key: "onWaveReady", value: function () { var e = this; (this.waveReady = !0), (this.waveFinished = !1), (this.liveMode = !1), this.log("Waveform is ready"), this.player.trigger( r.default.WAVE_READY ), this.backend === k && (this.setCurrentTime(), this.setDuration(), void 0 !== this.player.controlBar .playToggle && this.player.controlBar.playToggle.contentEl() && this.player.controlBar.playToggle.show()), this.player.loadingSpinner.contentEl() && this.player.loadingSpinner.hide(), !0 === this.player.options_.autoplay && (this.setVolume(0), this.backend === k ? this.play() : this.player .play() .catch(function (t) { e.onWaveError(t); })); }, }, { key: "onWaveFinish", value: function () { var e = this; this.log("Finished playback"), this.player.trigger( r.default.PLAYBACK_FINISH ), !0 === this.player.options_.loop ? this.backend === k && (this.surfer.stop(), this.play()) : ((this.waveFinished = !0), this.backend === k && (this.pause(), this.player.trigger( r.default.ENDED ), this.surfer.once( r.default.SEEK, function () { void 0 !== e.player .controlBar .playToggle && e.player.controlBar.playToggle.removeClass( "vjs-ended" ), e.player.trigger( r.default .PAUSE ); } ))); }, }, { key: "onWaveProgress", value: function (e) { this.setCurrentTime(); }, }, { key: "onWaveSeek", value: function () { this.setCurrentTime(); }, }, { key: "onWaveError", value: function (e) { (e.name && "AbortError" === e.name) || ("DOMException" === e.name && e.message.startsWith( "The operation was aborted" )) ? this.player.trigger( r.default.ABORT, e ) : (this.player.trigger( r.default.ERROR, e ), this.log(e, "error")); }, }, { key: "onPlayToggle", value: function () { void 0 !== this.player.controlBar.playToggle && this.player.controlBar.playToggle.hasClass( "vjs-ended" ) && this.player.controlBar.playToggle.removeClass( "vjs-ended" ), this.surfer.isPlaying() ? this.pause() : this.play(); }, }, { key: "onVolumeChange", value: function () { var e = this.player.volume(); this.player.muted() && (e = 0), this.surfer.setVolume(e); }, }, { key: "onScreenChange", value: function () { var e = this, t = this.player.setInterval( function () { var r, i; if ( (e.player.isFullscreen() || ((r = e.originalWidth), (i = e.originalHeight)), e.waveReady) ) { if ( e.liveMode && !e.surfer.microphone .active ) return; e.redrawWaveform(r, i); } e.player.clearInterval(t); }, 100 ); }, }, { key: "redrawWaveform", value: function (e, t) { if (!this.isDestroyed()) { if (this.player.el_) { var r = this.player.el_.getBoundingClientRect(); void 0 === e && (e = r.width), void 0 === t && (t = r.height); } this.surfer.drawer.destroy(), (this.surfer.params.width = e), (this.surfer.params.height = t - this.player.controlBar.height()), this.surfer.createDrawer(), (this.surfer.drawer.wrapper.className = E), this.surfer.drawBuffer(), this.surfer.drawer.progress( this.surfer.backend.getPlayedPercents() ); } }, }, { key: "log", value: function (e, t) { (0, i.default)(e, t, this.debug); }, }, { key: "setFormatTime", value: function (e) { (this._formatTime = e), u.default.setFormatTime( this._formatTime ); }, }, ]) && d(t.prototype, a), o && d(t, o), c ); })(m); (e.Wavesurfer = T), (T.VERSION = "3.8.0"), (u.default.Wavesurfer = T), void 0 === u.default.getPlugin(b) && u.default.registerPlugin(b, T), u.default.use("*", function (e) { return (l.default.player = e), l.default; }); })(), o ); })(); }); /*! * videojs-wavesurfer * @version 3.8.0 * @see https://github.com/collab-project/videojs-wavesurfer * @copyright 2014-2021 Collab * @license MIT */ !(function (e, t) { "object" == typeof exports && "object" == typeof module ? (module.exports = t(require("video.js"), require("wavesurfer.js"))) : "function" == typeof define && define.amd ? define("VideojsWavesurfer", ["video.js", "wavesurfer.js"], t) : "object" == typeof exports ? (exports.VideojsWavesurfer = t( require("video.js"), require("wavesurfer.js") )) : (e.VideojsWavesurfer = t(e.videojs, e.WaveSurfer)); })(self, function (e, t) { return (() => { var r = { 21: function (e, t, r) { var i; !(function (t) { "use strict"; function a(e, t) { t = t || 2; var r, i = Number(e) < 0, a = e.toString(); return ( i && (a = a.slice(1)), (r = t - a.length + 1), (i ? "-" : "") + (a = new Array(r).join("0").concat(a)) ); } void 0 === (i = function () { return a; }.call(t, r, t, e)) || (e.exports = i); })(this); }, 997: (e, t) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); var r = { debug: !1, displayMilliseconds: !0 }; (t.default = r), (e.exports = t.default); }, 537: (e, t) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); var r = function e() { !(function (e, t) { if (!(e instanceof t)) throw new TypeError( "Cannot call a class as a function" ); })(this, e); }; (r.READY = "ready"), (r.ERROR = "error"), (r.VOLUMECHANGE = "volumechange"), (r.FULLSCREENCHANGE = "fullscreenchange"), (r.TIMEUPDATE = "timeupdate"), (r.ENDED = "ended"), (r.PAUSE = "pause"), (r.FINISH = "finish"), (r.SEEK = "seek"), (r.REDRAW = "redraw"), (r.AUDIOPROCESS = "audioprocess"), (r.DEVICE_READY = "deviceReady"), (r.DEVICE_ERROR = "deviceError"), (r.AUDIO_OUTPUT_READY = "audioOutputReady"), (r.WAVE_READY = "waveReady"), (r.PLAYBACK_FINISH = "playbackFinish"), (r.ABORT = "abort"), (r.RESIZE = "resize"), Object.freeze(r); var i = r; (t.default = i), (e.exports = t.default); }, 200: (e, t) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); var r = { setSource: function (e, t) { if (this.player.usingPlugin("wavesurfer")) { var r = this.player.wavesurfer().surfer.params .backend, i = e.src, a = e.peaks; switch (r) { case "WebAudio": this.player.wavesurfer().load(i); break; default: t(null, e); var o = this.player.tech_.el(); void 0 === a ? this.player.wavesurfer().load(o) : this.player .wavesurfer() .load(o, a); } } else t(null, e); }, }; (t.default = r), (e.exports = t.default); }, 518: (e, t, r) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); var i = o(r(21)), a = o(r(455)); function o(e) { return e && e.__esModule ? e : { default: e }; } var s = function (e, t) { var r = !( arguments.length > 2 && void 0 !== arguments[2] ) || arguments[2]; (e = e < 0 ? 0 : e), (isNaN(e) || e === 1 / 0) && (e = 0); var o = (0, a.default)(1e3 * e), s = o; void 0 !== t && (s = (0, a.default)(1e3 * t)); var n = (0, i.default)(o.hours), l = (0, i.default)(o.minutes), u = (0, i.default)(o.seconds), h = (0, i.default)(o.milliseconds, 3); if (o.days > 0 || s.days > 0) { var c = (0, i.default)(o.days); return "" .concat(c, ":") .concat(n, ":") .concat(l, ":") .concat(u); } return o.hours > 0 || s.hours > 0 ? "".concat(n, ":").concat(l, ":").concat(u) : r ? "".concat(l, ":").concat(u, ":").concat(h) : "".concat(l, ":").concat(u); }; (t.default = s), (e.exports = t.default); }, 456: (e, t, r) => { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), (t.default = void 0); var i, a = (i = r(390)) && i.__esModule ? i : { default: i }; var o = function (e, t, r) { !0 === r && ("error" === t ? a.default.log.error(e) : "warn" === t ? a.default.log.warn(e) : a.default.log(e)); }; (t.default = o), (e.exports = t.default); }, 908: (e, t, r) => { var i; (i = "undefined" != typeof window ? window : void 0 !== r.g ? r.g : "undefined" != typeof self ? self : {}), (e.exports = i); }, 455: (e, t, r) => { "use strict"; function i(e) { if ("number" != typeof e) throw new TypeError("Expected a number"); const t = e > 0 ? Math.floor : Math.ceil; return { days: t(e / 864e5), hours: t(e / 36e5) % 24, minutes: t(e / 6e4) % 60, seconds: t(e / 1e3) % 60, milliseconds: t(e) % 1e3, microseconds: t(1e3 * e) % 1e3, nanoseconds: t(1e6 * e) % 1e3, }; } r.r(t), r.d(t, { default: () => i }); }, 390: (t) => { "use strict"; t.exports = e; }, 410: (e) => { "use strict"; e.exports = t; }, }, i = {}; function a(e) { var t = i[e]; if (void 0 !== t) return t.exports; var o = (i[e] = { exports: {} }); return r[e].call(o.exports, o, o.exports, a), o.exports; } (a.d = (e, t) => { for (var r in t) a.o(t, r) && !a.o(e, r) && Object.defineProperty(e, r, { enumerable: !0, get: t[r] }); }), (a.g = (function () { if ("object" == typeof globalThis) return globalThis; try { return this || new Function("return this")(); } catch (e) { if ("object" == typeof window) return window; } })()), (a.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t)), (a.r = (e) => { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module", }), Object.defineProperty(e, "__esModule", { value: !0 }); }); var o = {}; return ( (() => { "use strict"; var e = o; function t(e) { return (t = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e; } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e; })(e); } Object.defineProperty(e, "__esModule", { value: !0 }), (e.Wavesurfer = void 0); var r = c(a(537)), i = c(a(456)), s = c(a(518)), n = c(a(997)), l = c(a(200)), u = (c(a(908)), c(a(390))), h = c(a(410)); function c(e) { return e && e.__esModule ? e : { default: e }; } function d(e, t) { for (var r = 0; r < t.length; r++) { var i = t[r]; (i.enumerable = i.enumerable || !1), (i.configurable = !0), "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i); } } function f(e, t) { return (f = Object.setPrototypeOf || function (e, t) { return (e.__proto__ = t), e; })(e, t); } function p(e) { var t = (function () { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; if ("function" == typeof Proxy) return !0; try { return ( Boolean.prototype.valueOf.call( Reflect.construct( Boolean, [], function () {} ) ), !0 ); } catch (e) { return !1; } })(); return function () { var r, i = g(e); if (t) { var a = g(this).constructor; r = Reflect.construct(i, arguments, a); } else r = i.apply(this, arguments); return y(this, r); }; } function y(e, r) { return !r || ("object" !== t(r) && "function" != typeof r) ? v(e) : r; } function v(e) { if (void 0 === e) throw new ReferenceError( "this hasn't been initialised - super() hasn't been called" ); return e; } function g(e) { return (g = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) { return e.__proto__ || Object.getPrototypeOf(e); })(e); } var m = u.default.getPlugin("plugin"), b = "wavesurfer", E = "vjs-wavedisplay", k = "WebAudio", w = "MediaElement", T = (function (e) { !(function (e, t) { if ("function" != typeof t && null !== t) throw new TypeError( "Super expression must either be null or a function" ); (e.prototype = Object.create(t && t.prototype, { constructor: { value: e, writable: !0, configurable: !0, }, })), t && f(e, t); })(c, e); var t, a, o, l = p(c); function c(e, t) { var i; return ( (function (e, t) { if (!(e instanceof t)) throw new TypeError( "Cannot call a class as a function" ); })(this, c), (i = l.call(this, e, t)), e.addClass("vjs-wavesurfer"), (t = u.default.mergeOptions(n.default, t)), (i.waveReady = !1), (i.waveFinished = !1), (i.liveMode = !1), (i.backend = null), (i.debug = "true" === t.debug.toString()), (i.textTracksEnabled = i.player.options_.tracks.length > 0), (i.displayMilliseconds = t.displayMilliseconds), t.formatTime && "function" == typeof t.formatTime ? i.setFormatTime(t.formatTime) : i.setFormatTime(function (e, t) { return (0, s.default)(e, t, i.displayMilliseconds); }), i.player.one( r.default.READY, i.initialize.bind(v(i)) ), i ); } return ( (t = c), (a = [ { key: "initialize", value: function () { var e = this; void 0 !== this.player.bigPlayButton && this.player.bigPlayButton.hide(); var t = this.parseOptions( this.player.options_.plugins .wavesurfer ); !0 === this.player.options_.controls && (this.player.controlBar.show(), (this.player.controlBar.el_.style.display = "flex"), this.backend === k && void 0 !== this.player.controlBar .progressControl && this.player.controlBar.progressControl.hide(), void 0 !== this.player.controlBar .pictureInPictureToggle && this.player.controlBar.pictureInPictureToggle.hide(), [ "currentTimeDisplay", "timeDivider", "durationDisplay", ].forEach(function (t) { void 0 !== (t = e.player.controlBar[ t ]) && ((t.el_.style.display = "block"), t.show()); }), void 0 !== this.player.controlBar .remainingTimeDisplay && this.player.controlBar.remainingTimeDisplay.hide(), this.backend === k && void 0 !== this.player.controlBar .playToggle && (this.player.controlBar.playToggle.on( ["tap", "click"], this.onPlayToggle.bind(this) ), this.player.controlBar.playToggle.hide())), (this.surfer = h.default.create(t)), this.surfer.on( r.default.ERROR, this.onWaveError.bind(this) ), this.surfer.on( r.default.FINISH, this.onWaveFinish.bind(this) ), (this.backend = this.surfer.params.backend), this.log( "Using wavesurfer.js " + this.backend + " backend." ), "microphone" in this.player .wavesurfer() .surfer.getActivePlugins() && ((this.liveMode = !0), (this.waveReady = !0), this.log( "wavesurfer.js microphone plugin enabled." ), this.player.controlBar.playToggle.show(), this.surfer.microphone.on( r.default.DEVICE_ERROR, this.onWaveError.bind(this) )), (this.surferReady = this.onWaveReady.bind(this)), this.backend === k && ((this.surferProgress = this.onWaveProgress.bind( this )), (this.surferSeek = this.onWaveSeek.bind(this)), this.player.muted() && this.setVolume(0)), this.liveMode || this.setupPlaybackEvents(!0), this.player.on( r.default.VOLUMECHANGE, this.onVolumeChange.bind(this) ), this.player.on( r.default.FULLSCREENCHANGE, this.onScreenChange.bind(this) ), !0 === this.player.options_.fluid && (this.surfer.drawer.wrapper.className = E); }, }, { key: "parseOptions", value: function () { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = this.player.el_.getBoundingClientRect(); (this.originalWidth = this.player.options_.width || t.width), (this.originalHeight = this.player.options_.height || t.height); var r = this.player.controlBar.height(); if ( (!0 === this.player.options_.controls && 0 === r && (r = 30), void 0 === e.container && (e.container = this.player.el_), void 0 === e.waveformHeight) ) { var i = t.height; e.height = i - r; } else e.height = e.waveformHeight; return ( e.splitChannels && !0 === e.splitChannels && (e.height /= 2), "backend" in e ? (this.backend = e.backend) : (e.backend = this.backend = w), e ); }, }, { key: "setupPlaybackEvents", value: function (e) { !1 === e ? (this.surfer.un( r.default.READY, this.surferReady ), this.backend === k && (this.surfer.un( r.default.AUDIOPROCESS, this.surferProgress ), this.surfer.un( r.default.SEEK, this.surferSeek ))) : !0 === e && (this.surfer.on( r.default.READY, this.surferReady ), this.backend === k && (this.surfer.on( r.default.AUDIOPROCESS, this.surferProgress ), this.surfer.on( r.default.SEEK, this.surferSeek ))); }, }, { key: "load", value: function (e, t) { e instanceof Blob || e instanceof File ? (this.log( "Loading object: " + JSON.stringify(e) ), this.surfer.loadBlob(e)) : void 0 !== t ? this.loadPeaks(e, t) : ("string" == typeof e ? this.log( "Loading URL: " + e ) : this.log( "Loading element: " + e ), this.surfer.load(e)); }, }, { key: "loadPeaks", value: function (e, t) { var i = this; if (Array.isArray(t)) this.log( "Loading URL with array of peaks: " + e ), this.surfer.load(e, t); else { var a = { url: t, responseType: "json", }; void 0 !== this.player.options_.plugins .wavesurfer.xhr && (a.xhr = this.player.options_.plugins.wavesurfer.xhr); var o = h.default.util.fetchFile(a); o.once("success", function (a) { i.log( "Loaded Peak Data URL: " + t ), a && a.data ? i.surfer.load( e, a.data ) : (i.player.trigger( r.default.ERROR, "Could not load peaks data from " + t ), i.log(err, "error")); }), o.once("error", function (e) { i.player.trigger( r.default.ERROR, "Unable to retrieve peak data from " + t + ". Status code: " + o.response.status ); }); } }, }, { key: "play", value: function () { void 0 !== this.player.controlBar.playToggle && this.player.controlBar.playToggle.contentEl() && this.player.controlBar.playToggle.handlePlay(), this.liveMode ? this.surfer.microphone.active ? this.surfer.microphone .paused ? (this.log( "Resume microphone" ), this.surfer.microphone.play()) : this.pause() : (this.log( "Start microphone" ), this.surfer.microphone.start()) : (this.log("Start playback"), this.player.play(), this.surfer.play()); }, }, { key: "pause", value: function () { void 0 !== this.player.controlBar.playToggle && this.player.controlBar.playToggle.contentEl() && this.player.controlBar.playToggle.handlePause(), this.liveMode ? (this.log("Pause microphone"), this.surfer.microphone.pause()) : (this.log("Pause playback"), this.waveFinished ? (this.waveFinished = !1) : this.surfer.pause(), this.setCurrentTime()); }, }, { key: "dispose", value: function () { this.surfer && (this.liveMode && this.surfer.microphone && (this.surfer.microphone.destroy(), this.log( "Destroyed microphone plugin" )), this.surfer.destroy()), this.log("Destroyed plugin"); }, }, { key: "isDestroyed", value: function () { return ( this.player && null === this.player.children() ); }, }, { key: "destroy", value: function () { this.player.dispose(); }, }, { key: "setVolume", value: function (e) { void 0 !== e && (this.log( "Changing volume to: " + e ), this.player.volume(e)); }, }, { key: "exportImage", value: function (e, t) { var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "blob"; return this.surfer.exportImage(e, t, r); }, }, { key: "setAudioOutput", value: function (e) { var t = this; e && this.surfer .setSinkId(e) .then(function (e) { t.player.trigger( r.default .AUDIO_OUTPUT_READY ); }) .catch(function (e) { t.player.trigger( r.default.ERROR, e ), t.log(e, "error"); }); }, }, { key: "getCurrentTime", value: function () { var e = this.surfer.getCurrentTime(); return (e = isNaN(e) ? 0 : e); }, }, { key: "setCurrentTime", value: function (e, t) { if ( (void 0 === e && (e = this.surfer.getCurrentTime()), void 0 === t && (t = this.surfer.getDuration()), (e = isNaN(e) ? 0 : e), (t = isNaN(t) ? 0 : t), this.player.controlBar .currentTimeDisplay && this.player.controlBar.currentTimeDisplay.contentEl() && this.player.controlBar.currentTimeDisplay.contentEl() .lastChild) ) { var r = Math.min(e, t); this.player.controlBar.currentTimeDisplay.formattedTime_ = this.player.controlBar.currentTimeDisplay.contentEl().lastChild.textContent = this._formatTime( r, t, this.displayMilliseconds ); } this.textTracksEnabled && this.player.tech_ && this.player.tech_.el_ && this.player.tech_.setCurrentTime(e); }, }, { key: "getDuration", value: function () { var e = this.surfer.getDuration(); return (e = isNaN(e) ? 0 : e); }, }, { key: "setDuration", value: function (e) { void 0 === e && (e = this.surfer.getDuration()), (e = isNaN(e) ? 0 : e), this.player.controlBar .durationDisplay && this.player.controlBar.durationDisplay.contentEl() && this.player.controlBar.durationDisplay.contentEl() .lastChild && (this.player.controlBar.durationDisplay.formattedTime_ = this.player.controlBar.durationDisplay.contentEl().lastChild.textContent = this._formatTime( e, e, this .displayMilliseconds )); }, }, { key: "onWaveReady", value: function () { var e = this; (this.waveReady = !0), (this.waveFinished = !1), (this.liveMode = !1), this.log("Waveform is ready"), this.player.trigger( r.default.WAVE_READY ), this.backend === k && (this.setCurrentTime(), this.setDuration(), void 0 !== this.player.controlBar .playToggle && this.player.controlBar.playToggle.contentEl() && this.player.controlBar.playToggle.show()), this.player.loadingSpinner.contentEl() && this.player.loadingSpinner.hide(), !0 === this.player.options_.autoplay && (this.setVolume(0), this.backend === k ? this.play() : this.player .play() .catch(function (t) { e.onWaveError(t); })); }, }, { key: "onWaveFinish", value: function () { var e = this; this.log("Finished playback"), this.player.trigger( r.default.PLAYBACK_FINISH ), !0 === this.player.options_.loop ? this.backend === k && (this.surfer.stop(), this.play()) : ((this.waveFinished = !0), this.backend === k && (this.pause(), this.player.trigger( r.default.ENDED ), this.surfer.once( r.default.SEEK, function () { void 0 !== e.player .controlBar .playToggle && e.player.controlBar.playToggle.removeClass( "vjs-ended" ), e.player.trigger( r.default .PAUSE ); } ))); }, }, { key: "onWaveProgress", value: function (e) { this.setCurrentTime(); }, }, { key: "onWaveSeek", value: function () { this.setCurrentTime(); }, }, { key: "onWaveError", value: function (e) { (e.name && "AbortError" === e.name) || ("DOMException" === e.name && e.message.startsWith( "The operation was aborted" )) ? this.player.trigger( r.default.ABORT, e ) : (this.player.trigger( r.default.ERROR, e ), this.log(e, "error")); }, }, { key: "onPlayToggle", value: function () { void 0 !== this.player.controlBar.playToggle && this.player.controlBar.playToggle.hasClass( "vjs-ended" ) && this.player.controlBar.playToggle.removeClass( "vjs-ended" ), this.surfer.isPlaying() ? this.pause() : this.play(); }, }, { key: "onVolumeChange", value: function () { var e = this.player.volume(); this.player.muted() && (e = 0), this.surfer.setVolume(e); }, }, { key: "onScreenChange", value: function () { var e = this, t = this.player.setInterval( function () { var r, i; if ( (e.player.isFullscreen() || ((r = e.originalWidth), (i = e.originalHeight)), e.waveReady) ) { if ( e.liveMode && !e.surfer.microphone .active ) return; e.redrawWaveform(r, i); } e.player.clearInterval(t); }, 100 ); }, }, { key: "redrawWaveform", value: function (e, t) { if (!this.isDestroyed()) { if (this.player.el_) { var r = this.player.el_.getBoundingClientRect(); void 0 === e && (e = r.width), void 0 === t && (t = r.height); } this.surfer.drawer.destroy(), (this.surfer.params.width = e), (this.surfer.params.height = t - this.player.controlBar.height()), this.surfer.createDrawer(), (this.surfer.drawer.wrapper.className = E), this.surfer.drawBuffer(), this.surfer.drawer.progress( this.surfer.backend.getPlayedPercents() ); } }, }, { key: "log", value: function (e, t) { (0, i.default)(e, t, this.debug); }, }, { key: "setFormatTime", value: function (e) { (this._formatTime = e), u.default.setFormatTime( this._formatTime ); }, }, ]) && d(t.prototype, a), o && d(t, o), c ); })(m); (e.Wavesurfer = T), (T.VERSION = "3.8.0"), (u.default.Wavesurfer = T), void 0 === u.default.getPlugin(b) && u.default.registerPlugin(b, T), u.default.use("*", function (e) { return (l.default.player = e), l.default; }); })(), o ); })(); });