2021-08-13 16:48:38 +02:00
/ * !
* wavesurfer . js 5.1 . 0 ( 2021 - 08 - 06 )
* https : //wavesurfer-js.org
* @ license BSD - 3 - Clause
* /
! 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 = t ( )
} ( this , ( function ( ) {
return e = {
427 : ( e , t , r ) => {
"use strict" ;
Object . defineProperty ( t , "__esModule" , { value : ! 0 } ) , t . default = void 0 ;
var n = a ( r ( 138 ) ) , i = a ( r ( 56 ) ) ;
function a ( e ) {
return e && e . _ _esModule ? e : { default : e }
}
function s ( e , t ) {
for ( var r = 0 ; r < t . length ; r ++ ) {
var n = t [ r ] ;
n . enumerable = n . enumerable || ! 1 , n . configurable = ! 0 , "value" in n && ( n . writable = ! 0 ) , Object . defineProperty ( e , n . key , n )
}
}
var o = function ( ) {
function e ( ) {
! function ( e , t ) {
if ( ! ( e instanceof t ) ) throw new TypeError ( "Cannot call a class as a function" )
} ( this , e ) , this . wave = null , this . waveCtx = null , this . progress = null , this . progressCtx = null , this . start = 0 , this . end = 1 , this . id = ( 0 , i . default ) ( void 0 !== this . constructor . name ? this . constructor . name . toLowerCase ( ) + "_" : "canvasentry_" ) , this . canvasContextAttributes = { }
}
var t , r , a ;
return t = e , ( r = [ {
key : "initWave" , value : function ( e ) {
this . wave = e , this . waveCtx = this . wave . getContext ( "2d" , this . canvasContextAttributes )
}
} , {
key : "initProgress" , value : function ( e ) {
this . progress = e , this . progressCtx = this . progress . getContext ( "2d" , this . canvasContextAttributes )
}
} , {
key : "updateDimensions" , value : function ( e , t , r , i ) {
this . start = this . wave . offsetLeft / t || 0 , this . end = this . start + e / t , this . wave . width = r , this . wave . height = i ;
var a = { width : e + "px" } ;
( 0 , n . default ) ( this . wave , a ) , this . hasProgressCanvas && ( this . progress . width = r , this . progress . height = i , ( 0 , n . default ) ( this . progress , a ) )
}
} , {
key : "clearWave" , value : function ( ) {
this . waveCtx . clearRect ( 0 , 0 , this . waveCtx . canvas . width , this . waveCtx . canvas . height ) , this . hasProgressCanvas && this . progressCtx . clearRect ( 0 , 0 , this . progressCtx . canvas . width , this . progressCtx . canvas . height )
}
} , {
key : "setFillStyles" , value : function ( e , t ) {
this . waveCtx . fillStyle = e , this . hasProgressCanvas && ( this . progressCtx . fillStyle = t )
}
} , {
key : "applyCanvasTransforms" , value : function ( e ) {
e && ( this . waveCtx . setTransform ( 0 , 1 , 1 , 0 , 0 , 0 ) , this . hasProgressCanvas && this . progressCtx . setTransform ( 0 , 1 , 1 , 0 , 0 , 0 ) )
}
} , {
key : "fillRects" , value : function ( e , t , r , n , i ) {
this . fillRectToContext ( this . waveCtx , e , t , r , n , i ) , this . hasProgressCanvas && this . fillRectToContext ( this . progressCtx , e , t , r , n , i )
}
} , {
key : "fillRectToContext" , value : function ( e , t , r , n , i , a ) {
e && ( a ? this . drawRoundedRect ( e , t , r , n , i , a ) : e . fillRect ( t , r , n , i ) )
}
} , {
key : "drawRoundedRect" , value : function ( e , t , r , n , i , a ) {
0 !== i && ( i < 0 && ( r -= i *= - 1 ) , e . beginPath ( ) , e . moveTo ( t + a , r ) , e . lineTo ( t + n - a , r ) , e . quadraticCurveTo ( t + n , r , t + n , r + a ) , e . lineTo ( t + n , r + i - a ) , e . quadraticCurveTo ( t + n , r + i , t + n - a , r + i ) , e . lineTo ( t + a , r + i ) , e . quadraticCurveTo ( t , r + i , t , r + i - a ) , e . lineTo ( t , r + a ) , e . quadraticCurveTo ( t , r , t + a , r ) , e . closePath ( ) , e . fill ( ) )
}
} , {
key : "drawLines" , value : function ( e , t , r , n , i , a ) {
this . drawLineToContext ( this . waveCtx , e , t , r , n , i , a ) , this . hasProgressCanvas && this . drawLineToContext ( this . progressCtx , e , t , r , n , i , a )
}
} , {
key : "drawLineToContext" , value : function ( e , t , r , n , i , a , s ) {
if ( e ) {
var o , u , l , c = t . length / 2 , f = Math . round ( c * this . start ) , h = f ,
d = Math . round ( c * this . end ) + 1 , p = this . wave . width / ( d - h - 1 ) , v = n + i ,
y = r / n ;
for ( e . beginPath ( ) , e . moveTo ( ( h - f ) * p , v ) , e . lineTo ( ( h - f ) * p , v - Math . round ( ( t [ 2 * h ] || 0 ) / y ) ) , o = h ; o < d ; o ++ ) u = t [ 2 * o ] || 0 , l = Math . round ( u / y ) , e . lineTo ( ( o - f ) * p + this . halfPixel , v - l ) ;
for ( var m = d - 1 ; m >= h ; m -- ) u = t [ 2 * m + 1 ] || 0 , l = Math . round ( u / y ) , e . lineTo ( ( m - f ) * p + this . halfPixel , v - l ) ;
e . lineTo ( ( h - f ) * p , v - Math . round ( ( t [ 2 * h + 1 ] || 0 ) / y ) ) , e . closePath ( ) , e . fill ( )
}
}
} , {
key : "destroy" , value : function ( ) {
this . waveCtx = null , this . wave = null , this . progressCtx = null , this . progress = null
}
} , {
key : "getImage" , value : function ( e , t , r ) {
var n = this ;
return "blob" === r ? new Promise ( ( function ( r ) {
n . wave . toBlob ( r , e , t )
} ) ) : "dataURL" === r ? this . wave . toDataURL ( e , t ) : void 0
}
} ] ) && s ( t . prototype , r ) , a && s ( t , a ) , e
} ( ) ;
t . default = o , e . exports = t . default
} , 276 : ( e , t , r ) => {
"use strict" ;
function n ( e ) {
return ( n = "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 ( t , "__esModule" , { value : ! 0 } ) , t . default = void 0 ;
var i = function ( e , t ) {
if ( ! t && e && e . _ _esModule ) return e ;
if ( null === e || "object" !== n ( e ) && "function" != typeof e ) return { default : e } ;
var r = a ( t ) ;
if ( r && r . has ( e ) ) return r . get ( e ) ;
var i = { } , s = Object . defineProperty && Object . getOwnPropertyDescriptor ;
for ( var o in e ) if ( "default" !== o && Object . prototype . hasOwnProperty . call ( e , o ) ) {
var u = s ? Object . getOwnPropertyDescriptor ( e , o ) : null ;
u && ( u . get || u . set ) ? Object . defineProperty ( i , o , u ) : i [ o ] = e [ o ]
}
return i . default = e , r && r . set ( e , i ) , i
} ( r ( 241 ) ) ;
function a ( e ) {
if ( "function" != typeof WeakMap ) return null ;
var t = new WeakMap , r = new WeakMap ;
return ( a = function ( e ) {
return e ? r : t
} ) ( e )
}
function s ( e , t ) {
for ( var r = 0 ; r < t . length ; r ++ ) {
var n = t [ r ] ;
n . enumerable = n . enumerable || ! 1 , n . configurable = ! 0 , "value" in n && ( n . writable = ! 0 ) , Object . defineProperty ( e , n . key , n )
}
}
function o ( e , t ) {
return ( o = Object . setPrototypeOf || function ( e , t ) {
return e . _ _proto _ _ = t , e
} ) ( e , t )
}
function u ( 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 , n = c ( e ) ;
if ( t ) {
var i = c ( this ) . constructor ;
r = Reflect . construct ( n , arguments , i )
} else r = n . apply ( this , arguments ) ;
return l ( this , r )
}
}
function l ( e , t ) {
return ! t || "object" !== n ( t ) && "function" != typeof t ? function ( e ) {
if ( void 0 === e ) throw new ReferenceError ( "this hasn't been initialised - super() hasn't been called" ) ;
return e
} ( e ) : t
}
function c ( e ) {
return ( c = Object . setPrototypeOf ? Object . getPrototypeOf : function ( e ) {
return e . _ _proto _ _ || Object . getPrototypeOf ( e )
} ) ( e )
}
var f = 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 && o ( e , t )
} ( l , e ) ;
var t , r , n , a = u ( l ) ;
function l ( e , t ) {
var r ;
return function ( e , t ) {
if ( ! ( e instanceof t ) ) throw new TypeError ( "Cannot call a class as a function" )
} ( this , l ) , ( r = a . call ( this ) ) . container = i . withOrientation ( e , t . vertical ) , r . params = t , r . width = 0 , r . height = t . height * r . params . pixelRatio , r . lastPos = 0 , r . wrapper = null , r
}
return t = l , ( r = [ {
key : "style" , value : function ( e , t ) {
return i . style ( e , t )
}
} , {
key : "createWrapper" , value : function ( ) {
this . wrapper = i . withOrientation ( this . container . appendChild ( document . createElement ( "wave" ) ) , this . params . vertical ) , this . style ( this . wrapper , {
display : "block" ,
position : "relative" ,
userSelect : "none" ,
webkitUserSelect : "none" ,
height : this . params . height + "px"
} ) , ( this . params . fillParent || this . params . scrollParent ) && this . style ( this . wrapper , {
width : "100%" ,
overflowX : this . params . hideScrollbar ? "hidden" : "auto" ,
overflowY : "hidden"
} ) , this . setupWrapperEvents ( )
}
} , {
key : "handleEvent" , value : function ( e , t ) {
! t && e . preventDefault ( ) ;
var r ,
n = i . withOrientation ( e . targetTouches ? e . targetTouches [ 0 ] : e , this . params . vertical ) . clientX ,
a = this . wrapper . getBoundingClientRect ( ) , s = this . width , o = this . getWidth ( ) ,
u = this . getProgressPixels ( a , n ) ;
return r = ! this . params . fillParent && s < o ? u * ( this . params . pixelRatio / s ) || 0 : ( u + this . wrapper . scrollLeft ) / this . wrapper . scrollWidth || 0 , i . clamp ( r , 0 , 1 )
}
} , {
key : "getProgressPixels" , value : function ( e , t ) {
return this . params . rtl ? e . right - t : t - e . left
}
} , {
key : "setupWrapperEvents" , value : function ( ) {
var e = this ;
this . wrapper . addEventListener ( "click" , ( function ( t ) {
var r = i . withOrientation ( t , e . params . vertical ) ,
n = e . wrapper . offsetHeight - e . wrapper . clientHeight ;
if ( 0 !== n ) {
var a = e . wrapper . getBoundingClientRect ( ) ;
if ( r . clientY >= a . bottom - n ) return
}
e . params . interact && e . fireEvent ( "click" , t , e . handleEvent ( t ) )
} ) ) , this . wrapper . addEventListener ( "dblclick" , ( function ( t ) {
e . params . interact && e . fireEvent ( "dblclick" , t , e . handleEvent ( t ) )
} ) ) , this . wrapper . addEventListener ( "scroll" , ( function ( t ) {
return e . fireEvent ( "scroll" , t )
} ) )
}
} , {
key : "drawPeaks" , value : function ( e , t , r , n ) {
this . setWidth ( t ) || this . clearWave ( ) , this . params . barWidth ? this . drawBars ( e , 0 , r , n ) : this . drawWave ( e , 0 , r , n )
}
} , {
key : "resetScroll" , value : function ( ) {
null !== this . wrapper && ( this . wrapper . scrollLeft = 0 )
}
} , {
key : "recenter" , value : function ( e ) {
var t = this . wrapper . scrollWidth * e ;
this . recenterOnPosition ( t , ! 0 )
}
} , {
key : "recenterOnPosition" , value : function ( e , t ) {
var r = this . wrapper . scrollLeft , n = ~ ~ ( this . wrapper . clientWidth / 2 ) ,
i = this . wrapper . scrollWidth - this . wrapper . clientWidth , a = e - n , s = a - r ;
if ( 0 != i ) {
if ( ! t && - n <= s && s < n ) {
var o = this . params . autoCenterRate ;
o /= n , o *= i , a = r + ( s = Math . max ( - o , Math . min ( o , s ) ) )
}
( a = Math . max ( 0 , Math . min ( i , a ) ) ) != r && ( this . wrapper . scrollLeft = a )
}
}
} , {
key : "getScrollX" , value : function ( ) {
var e = 0 ;
if ( this . wrapper ) {
var t = this . params . pixelRatio ;
if ( e = Math . round ( this . wrapper . scrollLeft * t ) , this . params . scrollParent ) {
var r = ~ ~ ( this . wrapper . scrollWidth * t - this . getWidth ( ) ) ;
e = Math . min ( r , Math . max ( 0 , e ) )
}
}
return e
}
} , {
key : "getWidth" , value : function ( ) {
return Math . round ( this . container . clientWidth * this . params . pixelRatio )
}
} , {
key : "setWidth" , value : function ( e ) {
if ( this . width == e ) return ! 1 ;
if ( this . width = e , this . params . fillParent || this . params . scrollParent ) this . style ( this . wrapper , { width : "" } ) ; else {
var t = ~ ~ ( this . width / this . params . pixelRatio ) + "px" ;
this . style ( this . wrapper , { width : t } )
}
return this . updateSize ( ) , ! 0
}
} , {
key : "setHeight" , value : function ( e ) {
return e != this . height && ( this . height = e , this . style ( this . wrapper , { height : ~ ~ ( this . height / this . params . pixelRatio ) + "px" } ) , this . updateSize ( ) , ! 0 )
}
} , {
key : "progress" , value : function ( e ) {
var t = 1 / this . params . pixelRatio , r = Math . round ( e * this . width ) * t ;
if ( r < this . lastPos || r - this . lastPos >= t ) {
if ( this . lastPos = r , this . params . scrollParent && this . params . autoCenter ) {
var n = ~ ~ ( this . wrapper . scrollWidth * e ) ;
this . recenterOnPosition ( n , this . params . autoCenterImmediately )
}
this . updateProgress ( r )
}
}
} , {
key : "destroy" , value : function ( ) {
this . unAll ( ) , this . wrapper && ( this . wrapper . parentNode == this . container . domElement && this . container . removeChild ( this . wrapper . domElement ) , this . wrapper = null )
}
} , {
key : "updateCursor" , value : function ( ) {
}
} , {
key : "updateSize" , value : function ( ) {
}
} , {
key : "drawBars" , value : function ( e , t , r , n ) {
}
} , {
key : "drawWave" , value : function ( e , t , r , n ) {
}
} , {
key : "clearWave" , value : function ( ) {
}
} , {
key : "updateProgress" , value : function ( e ) {
}
} ] ) && s ( t . prototype , r ) , n && s ( t , n ) , l
} ( i . Observer ) ;
t . default = f , e . exports = t . default
} , 646 : ( e , t , r ) => {
"use strict" ;
function n ( e ) {
return ( n = "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 ( t , "__esModule" , { value : ! 0 } ) , t . default = void 0 ;
var i = u ( r ( 276 ) ) , a = function ( e , t ) {
if ( ! t && e && e . _ _esModule ) return e ;
if ( null === e || "object" !== n ( e ) && "function" != typeof e ) return { default : e } ;
var r = o ( t ) ;
if ( r && r . has ( e ) ) return r . get ( e ) ;
var i = { } , a = Object . defineProperty && Object . getOwnPropertyDescriptor ;
for ( var s in e ) if ( "default" !== s && Object . prototype . hasOwnProperty . call ( e , s ) ) {
var u = a ? Object . getOwnPropertyDescriptor ( e , s ) : null ;
u && ( u . get || u . set ) ? Object . defineProperty ( i , s , u ) : i [ s ] = e [ s ]
}
return i . default = e , r && r . set ( e , i ) , i
} ( r ( 241 ) ) , s = u ( r ( 427 ) ) ;
function o ( e ) {
if ( "function" != typeof WeakMap ) return null ;
var t = new WeakMap , r = new WeakMap ;
return ( o = function ( e ) {
return e ? r : t
} ) ( e )
}
function u ( e ) {
return e && e . _ _esModule ? e : { default : e }
}
function l ( e , t ) {
for ( var r = 0 ; r < t . length ; r ++ ) {
var n = t [ r ] ;
n . enumerable = n . enumerable || ! 1 , n . configurable = ! 0 , "value" in n && ( n . writable = ! 0 ) , Object . defineProperty ( e , n . key , n )
}
}
function c ( e , t ) {
return ( c = Object . setPrototypeOf || function ( e , t ) {
return e . _ _proto _ _ = t , e
} ) ( e , t )
}
function f ( 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 , n = d ( e ) ;
if ( t ) {
var i = d ( this ) . constructor ;
r = Reflect . construct ( n , arguments , i )
} else r = n . apply ( this , arguments ) ;
return h ( this , r )
}
}
function h ( e , t ) {
return ! t || "object" !== n ( t ) && "function" != typeof t ? function ( e ) {
if ( void 0 === e ) throw new ReferenceError ( "this hasn't been initialised - super() hasn't been called" ) ;
return e
} ( e ) : t
}
function d ( e ) {
return ( d = Object . setPrototypeOf ? Object . getPrototypeOf : function ( e ) {
return e . _ _proto _ _ || Object . getPrototypeOf ( e )
} ) ( e )
}
var p = 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 && c ( e , t )
} ( o , e ) ;
var t , r , n , i = f ( o ) ;
function o ( e , t ) {
var r ;
return function ( e , t ) {
if ( ! ( e instanceof t ) ) throw new TypeError ( "Cannot call a class as a function" )
} ( this , o ) , ( r = i . call ( this , e , t ) ) . maxCanvasWidth = t . maxCanvasWidth , r . maxCanvasElementWidth = Math . round ( t . maxCanvasWidth / t . pixelRatio ) , r . hasProgressCanvas = t . waveColor != t . progressColor , r . halfPixel = . 5 / t . pixelRatio , r . canvases = [ ] , r . progressWave = null , r . EntryClass = s . default , r . canvasContextAttributes = t . drawingContextAttributes , r . overlap = 2 * Math . ceil ( t . pixelRatio / 2 ) , r . barRadius = t . barRadius || 0 , r . vertical = t . vertical , r
}
return t = o , ( r = [ {
key : "init" , value : function ( ) {
this . createWrapper ( ) , this . createElements ( )
}
} , {
key : "createElements" , value : function ( ) {
this . progressWave = a . withOrientation ( this . wrapper . appendChild ( document . createElement ( "wave" ) ) , this . params . vertical ) , this . style ( this . progressWave , {
position : "absolute" ,
zIndex : 3 ,
left : 0 ,
top : 0 ,
bottom : 0 ,
overflow : "hidden" ,
width : "0" ,
display : "none" ,
boxSizing : "border-box" ,
borderRightStyle : "solid" ,
pointerEvents : "none"
} ) , this . addCanvas ( ) , this . updateCursor ( )
}
} , {
key : "updateCursor" , value : function ( ) {
this . style ( this . progressWave , {
borderRightWidth : this . params . cursorWidth + "px" ,
borderRightColor : this . params . cursorColor
} )
}
} , {
key : "updateSize" , value : function ( ) {
for ( var e = this , t = Math . round ( this . width / this . params . pixelRatio ) , r = Math . ceil ( t / ( this . maxCanvasElementWidth + this . overlap ) ) ; this . canvases . length < r ; ) this . addCanvas ( ) ;
for ( ; this . canvases . length > r ; ) this . removeCanvas ( ) ;
var n = this . maxCanvasWidth + this . overlap , i = this . canvases . length - 1 ;
this . canvases . forEach ( ( function ( t , r ) {
r == i && ( n = e . width - e . maxCanvasWidth * i ) , e . updateDimensions ( t , n , e . height ) , t . clearWave ( )
} ) )
}
} , {
key : "addCanvas" , value : function ( ) {
var e = new this . EntryClass ;
e . canvasContextAttributes = this . canvasContextAttributes , e . hasProgressCanvas = this . hasProgressCanvas , e . halfPixel = this . halfPixel ;
var t = this . maxCanvasElementWidth * this . canvases . length ,
r = a . withOrientation ( this . wrapper . appendChild ( document . createElement ( "canvas" ) ) , this . params . vertical ) ;
if ( this . style ( r , {
position : "absolute" ,
zIndex : 2 ,
left : t + "px" ,
top : 0 ,
bottom : 0 ,
height : "100%" ,
pointerEvents : "none"
} ) , e . initWave ( r ) , this . hasProgressCanvas ) {
var n = a . withOrientation ( this . progressWave . appendChild ( document . createElement ( "canvas" ) ) , this . params . vertical ) ;
this . style ( n , {
position : "absolute" ,
left : t + "px" ,
top : 0 ,
bottom : 0 ,
height : "100%"
} ) , e . initProgress ( n )
}
this . canvases . push ( e )
}
} , {
key : "removeCanvas" , value : function ( ) {
var e = this . canvases [ this . canvases . length - 1 ] ;
e . wave . parentElement . removeChild ( e . wave . domElement ) , this . hasProgressCanvas && e . progress . parentElement . removeChild ( e . progress . domElement ) , e && ( e . destroy ( ) , e = null ) , this . canvases . pop ( )
}
} , {
key : "updateDimensions" , value : function ( e , t , r ) {
var n = Math . round ( t / this . params . pixelRatio ) ,
i = Math . round ( this . width / this . params . pixelRatio ) ;
e . updateDimensions ( n , i , t , r ) , this . style ( this . progressWave , { display : "block" } )
}
} , {
key : "clearWave" , value : function ( ) {
var e = this ;
a . frame ( ( function ( ) {
e . canvases . forEach ( ( function ( e ) {
return e . clearWave ( )
} ) )
} ) ) ( )
}
} , {
key : "drawBars" , value : function ( e , t , r , n ) {
var i = this ;
return this . prepareDraw ( e , t , r , n , ( function ( e ) {
var t = e . absmax , a = e . hasMinVals , s = ( e . height , e . offsetY ) , o = e . halfH , u = e . peaks ,
l = e . channelIndex ;
if ( void 0 !== r ) for ( var c = a ? 2 : 1 , f = u . length / c , h = i . params . barWidth * i . params . pixelRatio , d = h + ( null === i . params . barGap ? Math . max ( i . params . pixelRatio , ~ ~ ( h / 2 ) ) : Math . max ( i . params . pixelRatio , i . params . barGap * i . params . pixelRatio ) ) , p = f / i . width , v = n , y = r ; y < v ; y += d ) {
var m = u [ Math . floor ( y * p * c ) ] || 0 , b = Math . round ( m / t * o ) ;
0 == b && i . params . barMinHeight && ( b = i . params . barMinHeight ) , i . fillRect ( y + i . halfPixel , o - b + s , h + i . halfPixel , 2 * b , i . barRadius , l )
}
} ) )
}
} , {
key : "drawWave" , value : function ( e , t , r , n ) {
var i = this ;
return this . prepareDraw ( e , t , r , n , ( function ( e ) {
var t = e . absmax , a = e . hasMinVals , s = ( e . height , e . offsetY ) , o = e . halfH , u = e . peaks ,
l = e . channelIndex ;
if ( ! a ) {
for ( var c = [ ] , f = u . length , h = 0 ; h < f ; h ++ ) c [ 2 * h ] = u [ h ] , c [ 2 * h + 1 ] = - u [ h ] ;
u = c
}
void 0 !== r && i . drawLine ( u , t , o , s , r , n , l ) , i . fillRect ( 0 , o + s - i . halfPixel , i . width , i . halfPixel , i . barRadius , l )
} ) )
}
} , {
key : "drawLine" , value : function ( e , t , r , n , i , a , s ) {
var o = this , u = this . params . splitChannelsOptions . channelColors [ s ] || { } , l = u . waveColor ,
c = u . progressColor ;
this . canvases . forEach ( ( function ( s , u ) {
o . setFillStyles ( s , l , c ) , o . applyCanvasTransforms ( s , o . params . vertical ) , s . drawLines ( e , t , r , n , i , a )
} ) )
}
} , {
key : "fillRect" , value : function ( e , t , r , n , i , a ) {
for ( var s = Math . floor ( e / this . maxCanvasWidth ) , o = Math . min ( Math . ceil ( ( e + r ) / this . maxCanvasWidth ) + 1 , this . canvases . length ) , u = s ; u < o ; u ++ ) {
var l = this . canvases [ u ] , c = u * this . maxCanvasWidth , f = {
x1 : Math . max ( e , u * this . maxCanvasWidth ) ,
y1 : t ,
x2 : Math . min ( e + r , u * this . maxCanvasWidth + l . wave . width ) ,
y2 : t + n
} ;
if ( f . x1 < f . x2 ) {
var h = this . params . splitChannelsOptions . channelColors [ a ] || { } , d = h . waveColor ,
p = h . progressColor ;
this . setFillStyles ( l , d , p ) , this . applyCanvasTransforms ( l , this . params . vertical ) , l . fillRects ( f . x1 - c , f . y1 , f . x2 - f . x1 , f . y2 - f . y1 , i )
}
}
}
} , {
key : "hideChannel" , value : function ( e ) {
return this . params . splitChannels && this . params . splitChannelsOptions . filterChannels . includes ( e )
}
} , {
key : "prepareDraw" , value : function ( e , t , r , n , i , s , o ) {
var u = this ;
return a . frame ( ( function ( ) {
if ( e [ 0 ] instanceof Array ) {
var l = e ;
if ( u . params . splitChannels ) {
var c , f = l . filter ( ( function ( e , t ) {
return ! u . hideChannel ( t )
} ) ) ;
return u . params . splitChannelsOptions . overlay || u . setHeight ( Math . max ( f . length , 1 ) * u . params . height * u . params . pixelRatio ) , u . params . splitChannelsOptions && u . params . splitChannelsOptions . relativeNormalization && ( c = a . max ( l . map ( ( function ( e ) {
return a . absMax ( e )
} ) ) ) ) , l . forEach ( ( function ( e , t ) {
return u . prepareDraw ( e , t , r , n , i , f . indexOf ( e ) , c )
} ) )
}
e = l [ 0 ]
}
if ( ! u . hideChannel ( t ) ) {
var h = 1 / u . params . barHeight ;
u . params . normalize && ( h = void 0 === o ? a . absMax ( e ) : o ) ;
var d = [ ] . some . call ( e , ( function ( e ) {
return e < 0
} ) ) , p = u . params . height * u . params . pixelRatio , v = p / 2 , y = p * s || 0 ;
return u . params . splitChannelsOptions && u . params . splitChannelsOptions . overlay && ( y = 0 ) , i ( {
absmax : h ,
hasMinVals : d ,
height : p ,
offsetY : y ,
halfH : v ,
peaks : e ,
channelIndex : t
} )
}
} ) ) ( )
}
} , {
key : "setFillStyles" , value : function ( e ) {
var t = arguments . length > 1 && void 0 !== arguments [ 1 ] ? arguments [ 1 ] : this . params . waveColor ,
r = arguments . length > 2 && void 0 !== arguments [ 2 ] ? arguments [ 2 ] : this . params . progressColor ;
e . setFillStyles ( t , r )
}
} , {
key : "applyCanvasTransforms" , value : function ( e ) {
var t = arguments . length > 1 && void 0 !== arguments [ 1 ] && arguments [ 1 ] ;
e . applyCanvasTransforms ( t )
}
} , {
key : "getImage" , value : function ( e , t , r ) {
if ( "blob" === r ) return Promise . all ( this . canvases . map ( ( function ( n ) {
return n . getImage ( e , t , r )
} ) ) ) ;
if ( "dataURL" === r ) {
var n = this . canvases . map ( ( function ( n ) {
return n . getImage ( e , t , r )
} ) ) ;
return n . length > 1 ? n : n [ 0 ]
}
}
} , {
key : "updateProgress" , value : function ( e ) {
this . style ( this . progressWave , { width : e + "px" } )
}
} ] ) && l ( t . prototype , r ) , n && l ( t , n ) , o
} ( i . default ) ;
t . default = p , e . exports = t . default
} , 328 : ( e , t , r ) => {
"use strict" ;
function n ( e ) {
return ( n = "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 )
}
var i ;
function a ( e , t ) {
for ( var r = 0 ; r < t . length ; r ++ ) {
var n = t [ r ] ;
n . enumerable = n . enumerable || ! 1 , n . configurable = ! 0 , "value" in n && ( n . writable = ! 0 ) , Object . defineProperty ( e , n . key , n )
}
}
function s ( e , t , r ) {
return ( s = "undefined" != typeof Reflect && Reflect . get ? Reflect . get : function ( e , t , r ) {
var n = function ( e , t ) {
for ( ; ! Object . prototype . hasOwnProperty . call ( e , t ) && null !== ( e = c ( e ) ) ; ) ;
return e
} ( e , t ) ;
if ( n ) {
var i = Object . getOwnPropertyDescriptor ( n , t ) ;
return i . get ? i . get . call ( r ) : i . value
}
} ) ( e , t , r || e )
}
function o ( e , t ) {
return ( o = Object . setPrototypeOf || function ( e , t ) {
return e . _ _proto _ _ = t , e
} ) ( e , t )
}
function u ( 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 , n = c ( e ) ;
if ( t ) {
var i = c ( this ) . constructor ;
r = Reflect . construct ( n , arguments , i )
} else r = n . apply ( this , arguments ) ;
return l ( this , r )
}
}
function l ( e , t ) {
return ! t || "object" !== n ( t ) && "function" != typeof t ? function ( e ) {
if ( void 0 === e ) throw new ReferenceError ( "this hasn't been initialised - super() hasn't been called" ) ;
return e
} ( e ) : t
}
function c ( e ) {
return ( c = Object . setPrototypeOf ? Object . getPrototypeOf : function ( e ) {
return e . _ _proto _ _ || Object . getPrototypeOf ( e )
} ) ( e )
}
Object . defineProperty ( t , "__esModule" , { value : ! 0 } ) , t . default = void 0 ;
var f = 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 && o ( e , t )
} ( l , e ) ;
var t , r , n , i = u ( l ) ;
function l ( e ) {
var t ;
return function ( e , t ) {
if ( ! ( e instanceof t ) ) throw new TypeError ( "Cannot call a class as a function" )
} ( this , l ) , ( t = i . call ( this , e ) ) . params = e , t . sourceMediaElement = null , t
}
return t = l , ( r = [ {
key : "init" , value : function ( ) {
this . setPlaybackRate ( this . params . audioRate ) , this . createTimer ( ) , this . createVolumeNode ( ) , this . createScriptNode ( ) , this . createAnalyserNode ( )
}
} , {
key : "_load" , value : function ( e , t , r ) {
s ( c ( l . prototype ) , "_load" , this ) . call ( this , e , t , r ) , this . createMediaElementSource ( e )
}
} , {
key : "createMediaElementSource" , value : function ( e ) {
this . sourceMediaElement = this . ac . createMediaElementSource ( e ) , this . sourceMediaElement . connect ( this . analyser )
}
} , {
key : "play" , value : function ( e , t ) {
return this . resumeAudioContext ( ) , s ( c ( l . prototype ) , "play" , this ) . call ( this , e , t )
}
} , {
key : "destroy" , value : function ( ) {
s ( c ( l . prototype ) , "destroy" , this ) . call ( this ) , this . destroyWebAudio ( )
}
} ] ) && a ( t . prototype , r ) , n && a ( t , n ) , l
} ( ( ( i = r ( 743 ) ) && i . _ _esModule ? i : { default : i } ) . default ) ;
t . default = f , e . exports = t . default
} , 743 : ( e , t , r ) => {
"use strict" ;
function n ( e ) {
return ( n = "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 ( t , "__esModule" , { value : ! 0 } ) , t . default = void 0 ;
var i , a = ( i = r ( 379 ) ) && i . _ _esModule ? i : { default : i } , s = function ( e , t ) {
if ( ! t && e && e . _ _esModule ) return e ;
if ( null === e || "object" !== n ( e ) && "function" != typeof e ) return { default : e } ;
var r = o ( t ) ;
if ( r && r . has ( e ) ) return r . get ( e ) ;
var i = { } , a = Object . defineProperty && Object . getOwnPropertyDescriptor ;
for ( var s in e ) if ( "default" !== s && Object . prototype . hasOwnProperty . call ( e , s ) ) {
var u = a ? Object . getOwnPropertyDescriptor ( e , s ) : null ;
u && ( u . get || u . set ) ? Object . defineProperty ( i , s , u ) : i [ s ] = e [ s ]
}
return i . default = e , r && r . set ( e , i ) , i
} ( r ( 241 ) ) ;
function o ( e ) {
if ( "function" != typeof WeakMap ) return null ;
var t = new WeakMap , r = new WeakMap ;
return ( o = function ( e ) {
return e ? r : t
} ) ( e )
}
function u ( e , t ) {
for ( var r = 0 ; r < t . length ; r ++ ) {
var n = t [ r ] ;
n . enumerable = n . enumerable || ! 1 , n . configurable = ! 0 , "value" in n && ( n . writable = ! 0 ) , Object . defineProperty ( e , n . key , n )
}
}
function l ( e , t , r ) {
return ( l = "undefined" != typeof Reflect && Reflect . get ? Reflect . get : function ( e , t , r ) {
var n = function ( e , t ) {
for ( ; ! Object . prototype . hasOwnProperty . call ( e , t ) && null !== ( e = d ( e ) ) ; ) ;
return e
} ( e , t ) ;
if ( n ) {
var i = Object . getOwnPropertyDescriptor ( n , t ) ;
return i . get ? i . get . call ( r ) : i . value
}
} ) ( e , t , r || e )
}
function c ( e , t ) {
return ( c = Object . setPrototypeOf || function ( e , t ) {
return e . _ _proto _ _ = t , e
} ) ( e , t )
}
function f ( 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 , n = d ( e ) ;
if ( t ) {
var i = d ( this ) . constructor ;
r = Reflect . construct ( n , arguments , i )
} else r = n . apply ( this , arguments ) ;
return h ( this , r )
}
}
function h ( e , t ) {
return ! t || "object" !== n ( t ) && "function" != typeof t ? function ( e ) {
if ( void 0 === e ) throw new ReferenceError ( "this hasn't been initialised - super() hasn't been called" ) ;
return e
} ( e ) : t
}
function d ( e ) {
return ( d = Object . setPrototypeOf ? Object . getPrototypeOf : function ( e ) {
return e . _ _proto _ _ || Object . getPrototypeOf ( e )
} ) ( e )
}
var p = 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 && c ( e , t )
} ( a , e ) ;
var t , r , n , i = f ( a ) ;
function a ( e ) {
var t ;
return function ( e , t ) {
if ( ! ( e instanceof t ) ) throw new TypeError ( "Cannot call a class as a function" )
} ( this , a ) , ( t = i . call ( this , e ) ) . params = e , t . media = {
currentTime : 0 ,
duration : 0 ,
paused : ! 0 ,
playbackRate : 1 ,
play : function ( ) {
} ,
pause : function ( ) {
} ,
volume : 0
} , t . mediaType = e . mediaType . toLowerCase ( ) , t . elementPosition = e . elementPosition , t . peaks = null , t . playbackRate = 1 , t . volume = 1 , t . isMuted = ! 1 , t . buffer = null , t . onPlayEnd = null , t . mediaListeners = { } , t
}
return t = a , ( r = [ {
key : "init" , value : function ( ) {
this . setPlaybackRate ( this . params . audioRate ) , this . createTimer ( )
}
} , {
key : "_setupMediaListeners" , value : function ( ) {
var e = this ;
this . mediaListeners . error = function ( ) {
e . fireEvent ( "error" , "Error loading media element" )
} , this . mediaListeners . canplay = function ( ) {
e . fireEvent ( "canplay" )
} , this . mediaListeners . ended = function ( ) {
e . fireEvent ( "finish" )
} , this . mediaListeners . play = function ( ) {
e . fireEvent ( "play" )
} , this . mediaListeners . pause = function ( ) {
e . fireEvent ( "pause" )
} , this . mediaListeners . seeked = function ( t ) {
e . fireEvent ( "seek" )
} , this . mediaListeners . volumechange = function ( t ) {
e . isMuted = e . media . muted , e . isMuted ? e . volume = 0 : e . volume = e . media . volume , e . fireEvent ( "volume" )
} , Object . keys ( this . mediaListeners ) . forEach ( ( function ( t ) {
e . media . removeEventListener ( t , e . mediaListeners [ t ] ) , e . media . addEventListener ( t , e . mediaListeners [ t ] )
} ) )
}
} , {
key : "createTimer" , value : function ( ) {
var e = this ;
this . on ( "play" , ( function t ( ) {
e . isPaused ( ) || ( e . fireEvent ( "audioprocess" , e . getCurrentTime ( ) ) , s . frame ( t ) ( ) )
} ) ) , this . on ( "pause" , ( function ( ) {
e . fireEvent ( "audioprocess" , e . getCurrentTime ( ) )
} ) )
}
} , {
key : "load" , value : function ( e , t , r , n ) {
var i = document . createElement ( this . mediaType ) ;
i . controls = this . params . mediaControls , i . autoplay = this . params . autoplay || ! 1 , i . preload = null == n ? "auto" : n , i . src = e , i . style . width = "100%" ;
var a = t . querySelector ( this . mediaType ) ;
a && t . removeChild ( a ) , t . appendChild ( i ) , this . _load ( i , r , n )
}
} , {
key : "loadElt" , value : function ( e , t ) {
e . controls = this . params . mediaControls , e . autoplay = this . params . autoplay || ! 1 , this . _load ( e , t , e . preload )
}
} , {
key : "_load" , value : function ( e , t , r ) {
if ( ! ( e instanceof HTMLMediaElement ) || void 0 === e . addEventListener ) throw new Error ( "media parameter is not a valid media element" ) ;
"function" != typeof e . load || t && "none" == r || e . load ( ) , this . media = e , this . _setupMediaListeners ( ) , this . peaks = t , this . onPlayEnd = null , this . buffer = null , this . isMuted = e . muted , this . setPlaybackRate ( this . playbackRate ) , this . setVolume ( this . volume )
}
} , {
key : "isPaused" , value : function ( ) {
return ! this . media || this . media . paused
}
} , {
key : "getDuration" , value : function ( ) {
if ( this . explicitDuration ) return this . explicitDuration ;
var e = ( this . buffer || this . media ) . duration ;
return e >= 1 / 0 && ( e = this . media . seekable . end ( 0 ) ) , e
}
} , {
key : "getCurrentTime" , value : function ( ) {
return this . media && this . media . currentTime
}
} , {
key : "getPlayedPercents" , value : function ( ) {
return this . getCurrentTime ( ) / this . getDuration ( ) || 0
}
} , {
key : "getPlaybackRate" , value : function ( ) {
return this . playbackRate || this . media . playbackRate
}
} , {
key : "setPlaybackRate" , value : function ( e ) {
this . playbackRate = e || 1 , this . media . playbackRate = this . playbackRate
}
} , {
key : "seekTo" , value : function ( e ) {
null != e && ( this . media . currentTime = e ) , this . clearPlayEnd ( )
}
} , {
key : "play" , value : function ( e , t ) {
this . seekTo ( e ) ;
var r = this . media . play ( ) ;
return t && this . setPlayEnd ( t ) , r
}
} , {
key : "pause" , value : function ( ) {
var e ;
return this . media && ( e = this . media . pause ( ) ) , this . clearPlayEnd ( ) , e
}
} , {
key : "setPlayEnd" , value : function ( e ) {
var t = this ;
this . clearPlayEnd ( ) , this . _onPlayEnd = function ( r ) {
r >= e && ( t . pause ( ) , t . seekTo ( e ) )
} , this . on ( "audioprocess" , this . _onPlayEnd )
}
} , {
key : "clearPlayEnd" , value : function ( ) {
this . _onPlayEnd && ( this . un ( "audioprocess" , this . _onPlayEnd ) , this . _onPlayEnd = null )
}
} , {
key : "getPeaks" , value : function ( e , t , r ) {
return this . buffer ? l ( d ( a . prototype ) , "getPeaks" , this ) . call ( this , e , t , r ) : this . peaks || [ ]
}
} , {
key : "setSinkId" , value : function ( e ) {
return e ? this . media . setSinkId ? this . media . setSinkId ( e ) : Promise . reject ( new Error ( "setSinkId is not supported in your browser" ) ) : Promise . reject ( new Error ( "Invalid deviceId: " + e ) )
}
} , {
key : "getVolume" , value : function ( ) {
return this . volume
}
} , {
key : "setVolume" , value : function ( e ) {
this . volume = e , this . media . volume !== this . volume && ( this . media . volume = this . volume )
}
} , {
key : "setMute" , value : function ( e ) {
this . isMuted = this . media . muted = e
}
} , {
key : "destroy" , value : function ( ) {
var e = this ;
this . pause ( ) , this . unAll ( ) , this . destroyed = ! 0 , Object . keys ( this . mediaListeners ) . forEach ( ( function ( t ) {
e . media && e . media . removeEventListener ( t , e . mediaListeners [ t ] )
} ) ) , this . params . removeMediaElementOnDestroy && this . media && this . media . parentNode && this . media . parentNode . removeChild ( this . media ) , this . media = null
}
} ] ) && u ( t . prototype , r ) , n && u ( t , n ) , a
} ( a . default ) ;
t . default = p , e . exports = t . default
} , 227 : ( e , t ) => {
"use strict" ;
function r ( e , t ) {
for ( var r = 0 ; r < t . length ; r ++ ) {
var n = t [ r ] ;
n . enumerable = n . enumerable || ! 1 , n . configurable = ! 0 , "value" in n && ( n . writable = ! 0 ) , Object . defineProperty ( e , n . key , n )
}
}
Object . defineProperty ( t , "__esModule" , { value : ! 0 } ) , t . default = void 0 ;
var n = function ( ) {
function e ( ) {
! function ( e , t ) {
if ( ! ( e instanceof t ) ) throw new TypeError ( "Cannot call a class as a function" )
} ( this , e ) , this . clearPeakCache ( )
}
var t , n , i ;
return t = e , ( n = [ {
key : "clearPeakCache" , value : function ( ) {
this . peakCacheRanges = [ ] , this . peakCacheLength = - 1
}
} , {
key : "addRangeToPeakCache" , value : function ( e , t , r ) {
e != this . peakCacheLength && ( this . clearPeakCache ( ) , this . peakCacheLength = e ) ;
for ( var n = [ ] , i = 0 ; i < this . peakCacheRanges . length && this . peakCacheRanges [ i ] < t ; ) i ++ ;
for ( i % 2 == 0 && n . push ( t ) ; i < this . peakCacheRanges . length && this . peakCacheRanges [ i ] <= r ; ) n . push ( this . peakCacheRanges [ i ] ) , i ++ ;
i % 2 == 0 && n . push ( r ) , n = n . filter ( ( function ( e , t , r ) {
return 0 == t ? e != r [ t + 1 ] : t == r . length - 1 ? e != r [ t - 1 ] : e != r [ t - 1 ] && e != r [ t + 1 ]
} ) ) , this . peakCacheRanges = this . peakCacheRanges . concat ( n ) , this . peakCacheRanges = this . peakCacheRanges . sort ( ( function ( e , t ) {
return e - t
} ) ) . filter ( ( function ( e , t , r ) {
return 0 == t ? e != r [ t + 1 ] : t == r . length - 1 ? e != r [ t - 1 ] : e != r [ t - 1 ] && e != r [ t + 1 ]
} ) ) ;
var a = [ ] ;
for ( i = 0 ; i < n . length ; i += 2 ) a . push ( [ n [ i ] , n [ i + 1 ] ] ) ;
return a
}
} , {
key : "getCacheRanges" , value : function ( ) {
var e , t = [ ] ;
for ( e = 0 ; e < this . peakCacheRanges . length ; e += 2 ) t . push ( [ this . peakCacheRanges [ e ] , this . peakCacheRanges [ e + 1 ] ] ) ;
return t
}
} ] ) && r ( t . prototype , n ) , i && r ( t , i ) , e
} ( ) ;
t . default = n , e . exports = t . default
} , 765 : ( e , t , r ) => {
"use strict" ;
Object . defineProperty ( t , "__esModule" , { value : ! 0 } ) , t . default = function ( e ) {
var t = ( 0 , n . default ) ( e ) , r = ( 0 , i . default ) ( e ) ;
return - r > t ? - r : t
} ;
var n = a ( r ( 178 ) ) , i = a ( r ( 706 ) ) ;
function a ( e ) {
return e && e . _ _esModule ? e : { default : e }
}
e . exports = t . default
} , 694 : ( e , t ) => {
"use strict" ;
Object . defineProperty ( t , "__esModule" , { value : ! 0 } ) , t . default = function ( e , t , r ) {
return Math . min ( Math . max ( t , e ) , r )
} , e . exports = t . default
} , 342 : ( e , t , r ) => {
"use strict" ;
Object . defineProperty ( t , "__esModule" , { value : ! 0 } ) , t . default = function ( e ) {
if ( ! e ) throw new Error ( "fetch options missing" ) ;
if ( ! e . url ) throw new Error ( "fetch url missing" ) ;
var t = new i . default , r = new Headers , n = new Request ( e . url ) ;
t . controller = new AbortController , e && e . requestHeaders && e . requestHeaders . forEach ( ( function ( e ) {
r . append ( e . key , e . value )
} ) ) ;
var a = e . responseType || "json" , o = {
method : e . method || "GET" ,
headers : r ,
mode : e . mode || "cors" ,
credentials : e . credentials || "same-origin" ,
cache : e . cache || "default" ,
redirect : e . redirect || "follow" ,
referrer : e . referrer || "client" ,
signal : t . controller . signal
} ;
return fetch ( n , o ) . then ( ( function ( e ) {
t . response = e ;
var r = ! 0 ;
e . body || ( r = ! 1 ) ;
var n = e . headers . get ( "content-length" ) ;
return null === n && ( r = ! 1 ) , r ? ( t . onProgress = function ( e ) {
t . fireEvent ( "progress" , e )
} , new Response ( new ReadableStream ( new s ( t , n , e ) ) , o ) ) : e
} ) ) . then ( ( function ( e ) {
var t ;
if ( e . ok ) switch ( a ) {
case "arraybuffer" :
return e . arrayBuffer ( ) ;
case "json" :
return e . json ( ) ;
case "blob" :
return e . blob ( ) ;
case "text" :
return e . text ( ) ;
default :
t = "Unknown responseType: " + a
}
throw t || ( t = "HTTP error status: " + e . status ) , new Error ( t )
} ) ) . then ( ( function ( e ) {
t . fireEvent ( "success" , e )
} ) ) . catch ( ( function ( e ) {
t . fireEvent ( "error" , e )
} ) ) , t . fetchRequest = n , t
} ;
var n , i = ( n = r ( 399 ) ) && n . _ _esModule ? n : { default : n } ;
function a ( e , t ) {
for ( var r = 0 ; r < t . length ; r ++ ) {
var n = t [ r ] ;
n . enumerable = n . enumerable || ! 1 , n . configurable = ! 0 , "value" in n && ( n . writable = ! 0 ) , Object . defineProperty ( e , n . key , n )
}
}
var s = function ( ) {
function e ( t , r , n ) {
! function ( e , t ) {
if ( ! ( e instanceof t ) ) throw new TypeError ( "Cannot call a class as a function" )
} ( this , e ) , this . instance = t , this . instance . _reader = n . body . getReader ( ) , this . total = parseInt ( r , 10 ) , this . loaded = 0
}
var t , r , n ;
return t = e , ( r = [ {
key : "start" , value : function ( e ) {
var t = this ;
! function r ( ) {
t . instance . _reader . read ( ) . then ( ( function ( n ) {
var i = n . done , a = n . value ;
if ( i ) return 0 === t . total && t . instance . onProgress . call ( t . instance , {
loaded : t . loaded ,
total : t . total ,
lengthComputable : ! 1
} ) , void e . close ( ) ;
t . loaded += a . byteLength , t . instance . onProgress . call ( t . instance , {
loaded : t . loaded ,
total : t . total ,
lengthComputable : ! ( 0 === t . total )
} ) , e . enqueue ( a ) , r ( )
} ) ) . catch ( ( function ( t ) {
e . error ( t )
} ) )
} ( )
}
} ] ) && a ( t . prototype , r ) , n && a ( t , n ) , e
} ( ) ;
e . exports = t . default
} , 412 : ( e , t , r ) => {
"use strict" ;
Object . defineProperty ( t , "__esModule" , { value : ! 0 } ) , t . default = function ( e ) {
return function ( ) {
for ( var t = arguments . length , r = new Array ( t ) , n = 0 ; n < t ; n ++ ) r [ n ] = arguments [ n ] ;
return ( 0 , i . default ) ( ( function ( ) {
return e . apply ( void 0 , r )
} ) )
}
} ;
var n , i = ( n = r ( 779 ) ) && n . _ _esModule ? n : { default : n } ;
e . exports = t . default
} , 56 : ( e , t ) => {
"use strict" ;
Object . defineProperty ( t , "__esModule" , { value : ! 0 } ) , t . default = function ( e ) {
return void 0 === e && ( e = "wavesurfer_" ) , e + Math . random ( ) . toString ( 32 ) . substring ( 2 )
} , e . exports = t . default
} , 241 : ( e , t , r ) => {
"use strict" ;
Object . defineProperty ( t , "__esModule" , { value : ! 0 } ) , Object . defineProperty ( t , "getId" , {
enumerable : ! 0 ,
get : function ( ) {
return n . default
}
} ) , Object . defineProperty ( t , "max" , {
enumerable : ! 0 , get : function ( ) {
return i . default
}
} ) , Object . defineProperty ( t , "min" , {
enumerable : ! 0 , get : function ( ) {
return a . default
}
} ) , Object . defineProperty ( t , "absMax" , {
enumerable : ! 0 , get : function ( ) {
return s . default
}
} ) , Object . defineProperty ( t , "Observer" , {
enumerable : ! 0 , get : function ( ) {
return o . default
}
} ) , Object . defineProperty ( t , "style" , {
enumerable : ! 0 , get : function ( ) {
return u . default
}
} ) , Object . defineProperty ( t , "requestAnimationFrame" , {
enumerable : ! 0 , get : function ( ) {
return l . default
}
} ) , Object . defineProperty ( t , "frame" , {
enumerable : ! 0 , get : function ( ) {
return c . default
}
} ) , Object . defineProperty ( t , "debounce" , {
enumerable : ! 0 , get : function ( ) {
return f . default
}
} ) , Object . defineProperty ( t , "preventClick" , {
enumerable : ! 0 , get : function ( ) {
return h . default
}
} ) , Object . defineProperty ( t , "fetchFile" , {
enumerable : ! 0 , get : function ( ) {
return d . default
}
} ) , Object . defineProperty ( t , "clamp" , {
enumerable : ! 0 , get : function ( ) {
return p . default
}
} ) , Object . defineProperty ( t , "withOrientation" , {
enumerable : ! 0 , get : function ( ) {
return v . default
}
} ) ;
var n = y ( r ( 56 ) ) , i = y ( r ( 178 ) ) , a = y ( r ( 706 ) ) , s = y ( r ( 765 ) ) , o = y ( r ( 399 ) ) , u = y ( r ( 138 ) ) , l = y ( r ( 779 ) ) ,
c = y ( r ( 412 ) ) , f = y ( r ( 296 ) ) , h = y ( r ( 529 ) ) , d = y ( r ( 342 ) ) , p = y ( r ( 694 ) ) , v = y ( r ( 713 ) ) ;
function y ( e ) {
return e && e . _ _esModule ? e : { default : e }
}
} , 178 : ( e , t ) => {
"use strict" ;
Object . defineProperty ( t , "__esModule" , { value : ! 0 } ) , t . default = function ( e ) {
var t = - 1 / 0 ;
return Object . keys ( e ) . forEach ( ( function ( r ) {
e [ r ] > t && ( t = e [ r ] )
} ) ) , t
} , e . exports = t . default
} , 706 : ( e , t ) => {
"use strict" ;
Object . defineProperty ( t , "__esModule" , { value : ! 0 } ) , t . default = function ( e ) {
var t = Number ( 1 / 0 ) ;
return Object . keys ( e ) . forEach ( ( function ( r ) {
e [ r ] < t && ( t = e [ r ] )
} ) ) , t
} , e . exports = t . default
} , 399 : ( e , t ) => {
"use strict" ;
function r ( e , t ) {
for ( var r = 0 ; r < t . length ; r ++ ) {
var n = t [ r ] ;
n . enumerable = n . enumerable || ! 1 , n . configurable = ! 0 , "value" in n && ( n . writable = ! 0 ) , Object . defineProperty ( e , n . key , n )
}
}
Object . defineProperty ( t , "__esModule" , { value : ! 0 } ) , t . default = void 0 ;
var n = function ( ) {
function e ( ) {
! function ( e , t ) {
if ( ! ( e instanceof t ) ) throw new TypeError ( "Cannot call a class as a function" )
} ( this , e ) , this . _disabledEventEmissions = [ ] , this . handlers = null
}
var t , n , i ;
return t = e , ( n = [ {
key : "on" , value : function ( e , t ) {
var r = this ;
this . handlers || ( this . handlers = { } ) ;
var n = this . handlers [ e ] ;
return n || ( n = this . handlers [ e ] = [ ] ) , n . push ( t ) , {
name : e , callback : t , un : function ( e , t ) {
return r . un ( e , t )
}
}
}
} , {
key : "un" , value : function ( e , t ) {
if ( this . handlers ) {
var r , n = this . handlers [ e ] ;
if ( n ) if ( t ) for ( r = n . length - 1 ; r >= 0 ; r -- ) n [ r ] == t && n . splice ( r , 1 ) ; else n . length = 0
}
}
} , {
key : "unAll" , value : function ( ) {
this . handlers = null
}
} , {
key : "once" , value : function ( e , t ) {
var r = this ;
return this . on ( e , ( function n ( ) {
for ( var i = arguments . length , a = new Array ( i ) , s = 0 ; s < i ; s ++ ) a [ s ] = arguments [ s ] ;
t . apply ( r , a ) , setTimeout ( ( function ( ) {
r . un ( e , n )
} ) , 0 )
} ) )
}
} , {
key : "setDisabledEventEmissions" , value : function ( e ) {
this . _disabledEventEmissions = e
}
} , {
key : "_isDisabledEventEmission" , value : function ( e ) {
return this . _disabledEventEmissions && this . _disabledEventEmissions . includes ( e )
}
} , {
key : "fireEvent" , value : function ( e ) {
for ( var t = arguments . length , r = new Array ( t > 1 ? t - 1 : 0 ) , n = 1 ; n < t ; n ++ ) r [ n - 1 ] = arguments [ n ] ;
if ( this . handlers && ! this . _isDisabledEventEmission ( e ) ) {
var i = this . handlers [ e ] ;
i && i . forEach ( ( function ( e ) {
e . apply ( void 0 , r )
} ) )
}
}
} ] ) && r ( t . prototype , n ) , i && r ( t , i ) , e
} ( ) ;
t . default = n , e . exports = t . default
} , 713 : ( e , t ) => {
"use strict" ;
Object . defineProperty ( t , "__esModule" , { value : ! 0 } ) , t . default = function e ( t , r ) {
return t [ i ] ? t : new Proxy ( t , {
get : function ( t , a , s ) {
if ( a === i ) return ! 0 ;
if ( "domElement" === a ) return t ;
if ( "style" === a ) return e ( t . style , r ) ;
if ( "canvas" === a ) return e ( t . canvas , r ) ;
if ( "getBoundingClientRect" === a ) return function ( ) {
return e ( t . getBoundingClientRect . apply ( t , arguments ) , r )
} ;
if ( "getContext" === a ) return function ( ) {
return e ( t . getContext . apply ( t , arguments ) , r )
} ;
var o = t [ n ( a , r ) ] ;
return "function" == typeof o ? o . bind ( t ) : o
} , set : function ( e , t , i ) {
return e [ n ( t , r ) ] = i , ! 0
}
} )
} ;
var r = {
width : "height" ,
height : "width" ,
overflowX : "overflowY" ,
overflowY : "overflowX" ,
clientWidth : "clientHeight" ,
clientHeight : "clientWidth" ,
clientX : "clientY" ,
clientY : "clientX" ,
scrollWidth : "scrollHeight" ,
scrollLeft : "scrollTop" ,
offsetLeft : "offsetTop" ,
offsetTop : "offsetLeft" ,
offsetHeight : "offsetWidth" ,
offsetWidth : "offsetHeight" ,
left : "top" ,
right : "bottom" ,
top : "left" ,
bottom : "right" ,
borderRightStyle : "borderBottomStyle" ,
borderRightWidth : "borderBottomWidth" ,
borderRightColor : "borderBottomColor"
} ;
function n ( e , t ) {
return Object . prototype . hasOwnProperty . call ( r , e ) && t ? r [ e ] : e
}
var i = Symbol ( "isProxy" ) ;
e . exports = t . default
} , 529 : ( e , t ) => {
"use strict" ;
function r ( e ) {
e . stopPropagation ( ) , document . body . removeEventListener ( "click" , r , ! 0 )
}
Object . defineProperty ( t , "__esModule" , { value : ! 0 } ) , t . default = function ( e ) {
document . body . addEventListener ( "click" , r , ! 0 )
} , e . exports = t . default
} , 779 : ( e , t ) => {
"use strict" ;
Object . defineProperty ( t , "__esModule" , { value : ! 0 } ) , t . default = void 0 ;
var r = ( window . requestAnimationFrame || window . webkitRequestAnimationFrame || window . mozRequestAnimationFrame || window . oRequestAnimationFrame || window . msRequestAnimationFrame || function ( e , t ) {
return setTimeout ( e , 1e3 / 60 )
} ) . bind ( window ) ;
t . default = r , e . exports = t . default
} , 138 : ( e , t ) => {
"use strict" ;
Object . defineProperty ( t , "__esModule" , { value : ! 0 } ) , t . default = function ( e , t ) {
return Object . keys ( t ) . forEach ( ( function ( r ) {
e . style [ r ] !== t [ r ] && ( e . style [ r ] = t [ r ] )
} ) ) , e
} , e . exports = t . default
} , 631 : ( e , t , r ) => {
"use strict" ;
function n ( e ) {
return ( n = "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 ( t , "__esModule" , { value : ! 0 } ) , t . default = void 0 ;
var i = function ( e , t ) {
if ( ! t && e && e . _ _esModule ) return e ;
if ( null === e || "object" !== n ( e ) && "function" != typeof e ) return { default : e } ;
var r = f ( t ) ;
if ( r && r . has ( e ) ) return r . get ( e ) ;
var i = { } , a = Object . defineProperty && Object . getOwnPropertyDescriptor ;
for ( var s in e ) if ( "default" !== s && Object . prototype . hasOwnProperty . call ( e , s ) ) {
var o = a ? Object . getOwnPropertyDescriptor ( e , s ) : null ;
o && ( o . get || o . set ) ? Object . defineProperty ( i , s , o ) : i [ s ] = e [ s ]
}
return i . default = e , r && r . set ( e , i ) , i
} ( r ( 241 ) ) , a = c ( r ( 646 ) ) , s = c ( r ( 379 ) ) , o = c ( r ( 743 ) ) , u = c ( r ( 227 ) ) , l = c ( r ( 328 ) ) ;
function c ( e ) {
return e && e . _ _esModule ? e : { default : e }
}
function f ( e ) {
if ( "function" != typeof WeakMap ) return null ;
var t = new WeakMap , r = new WeakMap ;
return ( f = function ( e ) {
return e ? r : t
} ) ( e )
}
function h ( e , t ) {
return ( h = Object . setPrototypeOf || function ( e , t ) {
return e . _ _proto _ _ = t , e
} ) ( e , t )
}
function d ( 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 , n = y ( e ) ;
if ( t ) {
var i = y ( this ) . constructor ;
r = Reflect . construct ( n , arguments , i )
} else r = n . apply ( this , arguments ) ;
return p ( this , r )
}
}
function p ( e , t ) {
return ! t || "object" !== n ( t ) && "function" != typeof t ? v ( e ) : t
}
function v ( e ) {
if ( void 0 === e ) throw new ReferenceError ( "this hasn't been initialised - super() hasn't been called" ) ;
return e
}
function y ( e ) {
return ( y = Object . setPrototypeOf ? Object . getPrototypeOf : function ( e ) {
return e . _ _proto _ _ || Object . getPrototypeOf ( e )
} ) ( e )
}
function m ( e , t ) {
if ( ! ( e instanceof t ) ) throw new TypeError ( "Cannot call a class as a function" )
}
function b ( e , t ) {
for ( var r = 0 ; r < t . length ; r ++ ) {
var n = t [ r ] ;
n . enumerable = n . enumerable || ! 1 , n . configurable = ! 0 , "value" in n && ( n . writable = ! 0 ) , Object . defineProperty ( e , n . key , n )
}
}
function g ( e , t , r ) {
return t && b ( e . prototype , t ) , r && b ( e , r ) , e
}
var k = 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 && h ( e , t )
} ( r , e ) ;
var t = d ( r ) ;
function r ( e ) {
var n ;
if ( m ( this , r ) , ( n = t . call ( this ) ) . defaultParams = {
audioContext : null ,
audioScriptProcessor : null ,
audioRate : 1 ,
autoCenter : ! 0 ,
autoCenterRate : 5 ,
autoCenterImmediately : ! 1 ,
backend : "WebAudio" ,
backgroundColor : null ,
barHeight : 1 ,
barRadius : 0 ,
barGap : null ,
barMinHeight : null ,
container : null ,
cursorColor : "#333" ,
cursorWidth : 1 ,
dragSelection : ! 0 ,
drawingContextAttributes : { desynchronized : ! 1 } ,
duration : null ,
fillParent : ! 0 ,
forceDecode : ! 1 ,
height : 128 ,
hideScrollbar : ! 1 ,
interact : ! 0 ,
loopSelection : ! 0 ,
maxCanvasWidth : 4e3 ,
mediaContainer : null ,
mediaControls : ! 1 ,
mediaType : "audio" ,
minPxPerSec : 20 ,
normalize : ! 1 ,
partialRender : ! 1 ,
pixelRatio : window . devicePixelRatio || screen . deviceXDPI / screen . logicalXDPI ,
plugins : [ ] ,
progressColor : "#555" ,
removeMediaElementOnDestroy : ! 0 ,
renderer : a . default ,
responsive : ! 1 ,
rtl : ! 1 ,
scrollParent : ! 1 ,
skipLength : 2 ,
splitChannels : ! 1 ,
splitChannelsOptions : {
overlay : ! 1 ,
channelColors : { } ,
filterChannels : [ ] ,
relativeNormalization : ! 1
} ,
vertical : ! 1 ,
waveColor : "#999" ,
xhr : { }
} , n . backends = {
MediaElement : o . default ,
WebAudio : s . default ,
MediaElementWebAudio : l . default
} , n . util = i , n . params = Object . assign ( { } , n . defaultParams , e ) , n . params . splitChannelsOptions = Object . assign ( { } , n . defaultParams . splitChannelsOptions , e . splitChannelsOptions ) , n . container = "string" == typeof e . container ? document . querySelector ( n . params . container ) : n . params . container , ! n . container ) throw new Error ( "Container element not found" ) ;
if ( null == n . params . mediaContainer ? n . mediaContainer = n . container : "string" == typeof n . params . mediaContainer ? n . mediaContainer = document . querySelector ( n . params . mediaContainer ) : n . mediaContainer = n . params . mediaContainer , ! n . mediaContainer ) throw new Error ( "Media Container element not found" ) ;
if ( n . params . maxCanvasWidth <= 1 ) throw new Error ( "maxCanvasWidth must be greater than 1" ) ;
if ( n . params . maxCanvasWidth % 2 == 1 ) throw new Error ( "maxCanvasWidth must be an even number" ) ;
if ( ! 0 === n . params . rtl && ( ! 0 === n . params . vertical ? i . style ( n . container , { transform : "rotateX(180deg)" } ) : i . style ( n . container , { transform : "rotateY(180deg)" } ) ) , n . params . backgroundColor && n . setBackgroundColor ( n . params . backgroundColor ) , n . savedVolume = 0 , n . isMuted = ! 1 , n . tmpEvents = [ ] , n . currentRequest = null , n . arraybuffer = null , n . drawer = null , n . backend = null , n . peakCache = null , "function" != typeof n . params . renderer ) throw new Error ( "Renderer parameter is invalid" ) ;
n . Drawer = n . params . renderer , "AudioElement" == n . params . backend && ( n . params . backend = "MediaElement" ) , "WebAudio" != n . params . backend && "MediaElementWebAudio" !== n . params . backend || s . default . prototype . supportsWebAudio . call ( null ) || ( n . params . backend = "MediaElement" ) , n . Backend = n . backends [ n . params . backend ] , n . initialisedPluginList = { } , n . isDestroyed = ! 1 , n . isReady = ! 1 ;
var u = 0 ;
return n . _onResize = i . debounce ( ( function ( ) {
u == n . drawer . wrapper . clientWidth || n . params . scrollParent || ( u = n . drawer . wrapper . clientWidth , n . drawer . fireEvent ( "redraw" ) )
} ) , "number" == typeof n . params . responsive ? n . params . responsive : 100 ) , p ( n , v ( n ) )
}
return g ( r , [ {
key : "init" , value : function ( ) {
return this . registerPlugins ( this . params . plugins ) , this . createDrawer ( ) , this . createBackend ( ) , this . createPeakCache ( ) , this
}
} , {
key : "registerPlugins" , value : function ( e ) {
var t = this ;
return e . forEach ( ( function ( e ) {
return t . addPlugin ( e )
} ) ) , e . forEach ( ( function ( e ) {
e . deferInit || t . initPlugin ( e . name )
} ) ) , this . fireEvent ( "plugins-registered" , e ) , this
}
} , {
key : "getActivePlugins" , value : function ( ) {
return this . initialisedPluginList
}
} , {
key : "addPlugin" , value : function ( e ) {
var t = this ;
if ( ! e . name ) throw new Error ( "Plugin does not have a name!" ) ;
if ( ! e . instance ) throw new Error ( "Plugin " . concat ( e . name , " does not have an instance property!" ) ) ;
e . staticProps && Object . keys ( e . staticProps ) . forEach ( ( function ( r ) {
t [ r ] = e . staticProps [ r ]
} ) ) ;
var r = e . instance ;
return Object . getOwnPropertyNames ( i . Observer . prototype ) . forEach ( ( function ( e ) {
r . prototype [ e ] = i . Observer . prototype [ e ]
} ) ) , this [ e . name ] = new r ( e . params || { } , this ) , this . fireEvent ( "plugin-added" , e . name ) , this
}
} , {
key : "initPlugin" , value : function ( e ) {
if ( ! this [ e ] ) throw new Error ( "Plugin " . concat ( e , " has not been added yet!" ) ) ;
return this . initialisedPluginList [ e ] && this . destroyPlugin ( e ) , this [ e ] . init ( ) , this . initialisedPluginList [ e ] = ! 0 , this . fireEvent ( "plugin-initialised" , e ) , this
}
} , {
key : "destroyPlugin" , value : function ( e ) {
if ( ! this [ e ] ) throw new Error ( "Plugin " . concat ( e , " has not been added yet and cannot be destroyed!" ) ) ;
if ( ! this . initialisedPluginList [ e ] ) throw new Error ( "Plugin " . concat ( e , " is not active and cannot be destroyed!" ) ) ;
if ( "function" != typeof this [ e ] . destroy ) throw new Error ( "Plugin " . concat ( e , " does not have a destroy function!" ) ) ;
return this [ e ] . destroy ( ) , delete this . initialisedPluginList [ e ] , this . fireEvent ( "plugin-destroyed" , e ) , this
}
} , {
key : "destroyAllPlugins" , value : function ( ) {
var e = this ;
Object . keys ( this . initialisedPluginList ) . forEach ( ( function ( t ) {
return e . destroyPlugin ( t )
} ) )
}
} , {
key : "createDrawer" , value : function ( ) {
var e = this ;
this . drawer = new this . Drawer ( this . container , this . params ) , this . drawer . init ( ) , this . fireEvent ( "drawer-created" , this . drawer ) , ! 1 !== this . params . responsive && ( window . addEventListener ( "resize" , this . _onResize , ! 0 ) , window . addEventListener ( "orientationchange" , this . _onResize , ! 0 ) ) , this . drawer . on ( "redraw" , ( function ( ) {
e . drawBuffer ( ) , e . drawer . progress ( e . backend . getPlayedPercents ( ) )
} ) ) , this . drawer . on ( "click" , ( function ( t , r ) {
setTimeout ( ( function ( ) {
return e . seekTo ( r )
} ) , 0 )
} ) ) , this . drawer . on ( "scroll" , ( function ( t ) {
e . params . partialRender && e . drawBuffer ( ) , e . fireEvent ( "scroll" , t )
} ) )
}
} , {
key : "createBackend" , value : function ( ) {
var e = this ;
this . backend && this . backend . destroy ( ) , this . backend = new this . Backend ( this . params ) , this . backend . init ( ) , this . fireEvent ( "backend-created" , this . backend ) , this . backend . on ( "finish" , ( function ( ) {
e . drawer . progress ( e . backend . getPlayedPercents ( ) ) , e . fireEvent ( "finish" )
} ) ) , this . backend . on ( "play" , ( function ( ) {
return e . fireEvent ( "play" )
} ) ) , this . backend . on ( "pause" , ( function ( ) {
return e . fireEvent ( "pause" )
} ) ) , this . backend . on ( "audioprocess" , ( function ( t ) {
e . drawer . progress ( e . backend . getPlayedPercents ( ) ) , e . fireEvent ( "audioprocess" , t )
} ) ) , "MediaElement" !== this . params . backend && "MediaElementWebAudio" !== this . params . backend || ( this . backend . on ( "seek" , ( function ( ) {
e . drawer . progress ( e . backend . getPlayedPercents ( ) )
} ) ) , this . backend . on ( "volume" , ( function ( ) {
var t = e . getVolume ( ) ;
e . fireEvent ( "volume" , t ) , e . backend . isMuted !== e . isMuted && ( e . isMuted = e . backend . isMuted , e . fireEvent ( "mute" , e . isMuted ) )
} ) ) )
}
} , {
key : "createPeakCache" , value : function ( ) {
this . params . partialRender && ( this . peakCache = new u . default )
}
} , {
key : "getDuration" , value : function ( ) {
return this . backend . getDuration ( )
}
} , {
key : "getCurrentTime" , value : function ( ) {
return this . backend . getCurrentTime ( )
}
} , {
key : "setCurrentTime" , value : function ( e ) {
e >= this . getDuration ( ) ? this . seekTo ( 1 ) : this . seekTo ( e / this . getDuration ( ) )
}
} , {
key : "play" , value : function ( e , t ) {
var r = this ;
return this . fireEvent ( "interaction" , ( function ( ) {
return r . play ( e , t )
} ) ) , this . backend . play ( e , t )
}
} , {
key : "setPlayEnd" , value : function ( e ) {
this . backend . setPlayEnd ( e )
}
} , {
key : "pause" , value : function ( ) {
if ( ! this . backend . isPaused ( ) ) return this . backend . pause ( )
}
} , {
key : "playPause" , value : function ( ) {
return this . backend . isPaused ( ) ? this . play ( ) : this . pause ( )
}
} , {
key : "isPlaying" , value : function ( ) {
return ! this . backend . isPaused ( )
}
} , {
key : "skipBackward" , value : function ( e ) {
this . skip ( - e || - this . params . skipLength )
}
} , {
key : "skipForward" , value : function ( e ) {
this . skip ( e || this . params . skipLength )
}
} , {
key : "skip" , value : function ( e ) {
var t = this . getDuration ( ) || 1 , r = this . getCurrentTime ( ) || 0 ;
r = Math . max ( 0 , Math . min ( t , r + ( e || 0 ) ) ) , this . seekAndCenter ( r / t )
}
} , {
key : "seekAndCenter" , value : function ( e ) {
this . seekTo ( e ) , this . drawer . recenter ( e )
}
} , {
key : "seekTo" , value : function ( e ) {
var t = this ;
if ( "number" != typeof e || ! isFinite ( e ) || e < 0 || e > 1 ) throw new Error ( "Error calling wavesurfer.seekTo, parameter must be a number between 0 and 1!" ) ;
this . fireEvent ( "interaction" , ( function ( ) {
return t . seekTo ( e )
} ) ) ;
var r = "WebAudio" === this . params . backend , n = this . backend . isPaused ( ) ;
r && ! n && this . backend . pause ( ) ;
var i = this . params . scrollParent ;
this . params . scrollParent = ! 1 , this . backend . seekTo ( e * this . getDuration ( ) ) , this . drawer . progress ( e ) , r && ! n && this . backend . play ( ) , this . params . scrollParent = i , this . fireEvent ( "seek" , e )
}
} , {
key : "stop" , value : function ( ) {
this . pause ( ) , this . seekTo ( 0 ) , this . drawer . progress ( 0 )
}
} , {
key : "setSinkId" , value : function ( e ) {
return this . backend . setSinkId ( e )
}
} , {
key : "setVolume" , value : function ( e ) {
this . backend . setVolume ( e ) , this . fireEvent ( "volume" , e )
}
} , {
key : "getVolume" , value : function ( ) {
return this . backend . getVolume ( )
}
} , {
key : "setPlaybackRate" , value : function ( e ) {
this . backend . setPlaybackRate ( e )
}
} , {
key : "getPlaybackRate" , value : function ( ) {
return this . backend . getPlaybackRate ( )
}
} , {
key : "toggleMute" , value : function ( ) {
this . setMute ( ! this . isMuted )
}
} , {
key : "setMute" , value : function ( e ) {
e !== this . isMuted ? ( this . backend . setMute ? ( this . backend . setMute ( e ) , this . isMuted = e ) : e ? ( this . savedVolume = this . backend . getVolume ( ) , this . backend . setVolume ( 0 ) , this . isMuted = ! 0 , this . fireEvent ( "volume" , 0 ) ) : ( this . backend . setVolume ( this . savedVolume ) , this . isMuted = ! 1 , this . fireEvent ( "volume" , this . savedVolume ) ) , this . fireEvent ( "mute" , this . isMuted ) ) : this . fireEvent ( "mute" , this . isMuted )
}
} , {
key : "getMute" , value : function ( ) {
return this . isMuted
}
} , {
key : "getFilters" , value : function ( ) {
return this . backend . filters || [ ]
}
} , {
key : "toggleScroll" , value : function ( ) {
this . params . scrollParent = ! this . params . scrollParent , this . drawBuffer ( )
}
} , {
key : "toggleInteraction" , value : function ( ) {
this . params . interact = ! this . params . interact
}
} , {
key : "getWaveColor" , value : function ( ) {
return this . params . waveColor
}
} , {
key : "setWaveColor" , value : function ( e ) {
this . params . waveColor = e , this . drawBuffer ( )
}
} , {
key : "getProgressColor" , value : function ( ) {
return this . params . progressColor
}
} , {
key : "setProgressColor" , value : function ( e ) {
this . params . progressColor = e , this . drawBuffer ( )
}
} , {
key : "getBackgroundColor" , value : function ( ) {
return this . params . backgroundColor
}
} , {
key : "setBackgroundColor" , value : function ( e ) {
this . params . backgroundColor = e , i . style ( this . container , { background : this . params . backgroundColor } )
}
} , {
key : "getCursorColor" , value : function ( ) {
return this . params . cursorColor
}
} , {
key : "setCursorColor" , value : function ( e ) {
this . params . cursorColor = e , this . drawer . updateCursor ( )
}
} , {
key : "getHeight" , value : function ( ) {
return this . params . height
}
} , {
key : "setHeight" , value : function ( e ) {
this . params . height = e , this . drawer . setHeight ( e * this . params . pixelRatio ) , this . drawBuffer ( )
}
} , {
key : "setFilteredChannels" , value : function ( e ) {
this . params . splitChannelsOptions . filterChannels = e , this . drawBuffer ( )
}
} , {
key : "drawBuffer" , value : function ( ) {
var e , t = Math . round ( this . getDuration ( ) * this . params . minPxPerSec * this . params . pixelRatio ) ,
r = this . drawer . getWidth ( ) , n = t , i = 0 , a = Math . max ( i + r , n ) ;
if ( this . params . fillParent && ( ! this . params . scrollParent || t < r ) && ( i = 0 , a = n = r ) , this . params . partialRender ) {
var s , o = this . peakCache . addRangeToPeakCache ( n , i , a ) ;
for ( s = 0 ; s < o . length ; s ++ ) e = this . backend . getPeaks ( n , o [ s ] [ 0 ] , o [ s ] [ 1 ] ) , this . drawer . drawPeaks ( e , n , o [ s ] [ 0 ] , o [ s ] [ 1 ] )
} else e = this . backend . getPeaks ( n , i , a ) , this . drawer . drawPeaks ( e , n , i , a ) ;
this . fireEvent ( "redraw" , e , n )
}
} , {
key : "zoom" , value : function ( e ) {
e ? ( this . params . minPxPerSec = e , this . params . scrollParent = ! 0 ) : ( this . params . minPxPerSec = this . defaultParams . minPxPerSec , this . params . scrollParent = ! 1 ) , this . drawBuffer ( ) , this . drawer . progress ( this . backend . getPlayedPercents ( ) ) , this . drawer . recenter ( this . getCurrentTime ( ) / this . getDuration ( ) ) , this . fireEvent ( "zoom" , e )
}
} , {
key : "loadArrayBuffer" , value : function ( e ) {
var t = this ;
this . decodeArrayBuffer ( e , ( function ( e ) {
t . isDestroyed || t . loadDecodedBuffer ( e )
} ) )
}
} , {
key : "loadDecodedBuffer" , value : function ( e ) {
this . backend . load ( e ) , this . drawBuffer ( ) , this . isReady = ! 0 , this . fireEvent ( "ready" )
}
} , {
key : "loadBlob" , value : function ( e ) {
var t = this , r = new FileReader ;
r . addEventListener ( "progress" , ( function ( e ) {
return t . onProgress ( e )
} ) ) , r . addEventListener ( "load" , ( function ( e ) {
return t . loadArrayBuffer ( e . target . result )
} ) ) , r . addEventListener ( "error" , ( function ( ) {
return t . fireEvent ( "error" , "Error reading file" )
} ) ) , r . readAsArrayBuffer ( e ) , this . empty ( )
}
} , {
key : "load" , value : function ( e , t , r , n ) {
if ( ! e ) throw new Error ( "url parameter cannot be empty" ) ;
if ( this . empty ( ) , r ) {
var i = {
"Preload is not 'auto', 'none' or 'metadata'" : - 1 === [ "auto" , "metadata" , "none" ] . indexOf ( r ) ,
"Peaks are not provided" : ! t ,
"Backend is not of type 'MediaElement' or 'MediaElementWebAudio'" : - 1 === [ "MediaElement" , "MediaElementWebAudio" ] . indexOf ( this . params . backend ) ,
"Url is not of type string" : "string" != typeof e
} , a = Object . keys ( i ) . filter ( ( function ( e ) {
return i [ e ]
} ) ) ;
a . length && ( console . warn ( "Preload parameter of wavesurfer.load will be ignored because:\n\t- " + a . join ( "\n\t- " ) ) , r = null )
}
switch ( "WebAudio" === this . params . backend && e instanceof HTMLMediaElement && ( e = e . src ) , this . params . backend ) {
case "WebAudio" :
return this . loadBuffer ( e , t , n ) ;
case "MediaElement" :
case "MediaElementWebAudio" :
return this . loadMediaElement ( e , t , r , n )
}
}
} , {
key : "loadBuffer" , value : function ( e , t , r ) {
var n = this , i = function ( t ) {
return t && n . tmpEvents . push ( n . once ( "ready" , t ) ) , n . getArrayBuffer ( e , ( function ( e ) {
return n . loadArrayBuffer ( e )
} ) )
} ;
if ( ! t ) return i ( ) ;
this . backend . setPeaks ( t , r ) , this . drawBuffer ( ) , this . fireEvent ( "waveform-ready" ) , this . tmpEvents . push ( this . once ( "interaction" , i ) )
}
} , {
key : "loadMediaElement" , value : function ( e , t , r , n ) {
var i = this , a = e ;
if ( "string" == typeof e ) this . backend . load ( a , this . mediaContainer , t , r ) ; else {
var s = e ;
this . backend . loadElt ( s , t ) , a = s . src
}
this . tmpEvents . push ( this . backend . once ( "canplay" , ( function ( ) {
i . backend . destroyed || ( i . drawBuffer ( ) , i . isReady = ! 0 , i . fireEvent ( "ready" ) )
} ) ) , this . backend . once ( "error" , ( function ( e ) {
return i . fireEvent ( "error" , e )
} ) ) ) , t && ( this . backend . setPeaks ( t , n ) , this . drawBuffer ( ) , this . fireEvent ( "waveform-ready" ) ) , t && ! this . params . forceDecode || ! this . backend . supportsWebAudio ( ) || this . getArrayBuffer ( a , ( function ( e ) {
i . decodeArrayBuffer ( e , ( function ( e ) {
i . backend . buffer = e , i . backend . setPeaks ( null ) , i . drawBuffer ( ) , i . fireEvent ( "waveform-ready" )
} ) )
} ) )
}
} , {
key : "decodeArrayBuffer" , value : function ( e , t ) {
var r = this ;
this . arraybuffer = e , this . backend . decodeArrayBuffer ( e , ( function ( n ) {
r . isDestroyed || r . arraybuffer != e || ( t ( n ) , r . arraybuffer = null )
} ) , ( function ( ) {
return r . fireEvent ( "error" , "Error decoding audiobuffer" )
} ) )
}
} , {
key : "getArrayBuffer" , value : function ( e , t ) {
var r = this , n = Object . assign ( { url : e , responseType : "arraybuffer" } , this . params . xhr ) ,
a = i . fetchFile ( n ) ;
return this . currentRequest = a , this . tmpEvents . push ( a . on ( "progress" , ( function ( e ) {
r . onProgress ( e )
} ) ) , a . on ( "success" , ( function ( e ) {
t ( e ) , r . currentRequest = null
} ) ) , a . on ( "error" , ( function ( e ) {
r . fireEvent ( "error" , e ) , r . currentRequest = null
} ) ) ) , a
}
} , {
key : "onProgress" , value : function ( e ) {
var t ;
t = e . lengthComputable ? e . loaded / e . total : e . loaded / ( e . loaded + 1e6 ) , this . fireEvent ( "loading" , Math . round ( 100 * t ) , e . target )
}
} , {
key : "exportPCM" , value : function ( e , t , r , n , i ) {
e = e || 1024 , n = n || 0 , t = t || 1e4 , r = r || ! 1 ;
var a = this . backend . getPeaks ( e , n , i ) , s = [ ] . map . call ( a , ( function ( e ) {
return Math . round ( e * t ) / t
} ) ) ;
return new Promise ( ( function ( e , t ) {
if ( ! r ) {
var n = new Blob ( [ JSON . stringify ( s ) ] , { type : "application/json;charset=utf-8" } ) ,
i = URL . createObjectURL ( n ) ;
window . open ( i ) , URL . revokeObjectURL ( i )
}
e ( s )
} ) )
}
} , {
key : "exportImage" , value : function ( e , t , r ) {
return e || ( e = "image/png" ) , t || ( t = 1 ) , r || ( r = "dataURL" ) , this . drawer . getImage ( e , t , r )
}
} , {
key : "cancelAjax" , value : function ( ) {
this . currentRequest && this . currentRequest . controller && ( this . currentRequest . _reader && this . currentRequest . _reader . cancel ( ) . catch ( ( function ( e ) {
} ) ) , this . currentRequest . controller . abort ( ) , this . currentRequest = null )
}
} , {
key : "clearTmpEvents" , value : function ( ) {
this . tmpEvents . forEach ( ( function ( e ) {
return e . un ( )
} ) )
}
} , {
key : "empty" , value : function ( ) {
this . backend . isPaused ( ) || ( this . stop ( ) , this . backend . disconnectSource ( ) ) , this . isReady = ! 1 , this . cancelAjax ( ) , this . clearTmpEvents ( ) , this . drawer . progress ( 0 ) , this . drawer . setWidth ( 0 ) , this . drawer . drawPeaks ( { length : this . drawer . getWidth ( ) } , 0 )
}
} , {
key : "destroy" , value : function ( ) {
this . destroyAllPlugins ( ) , this . fireEvent ( "destroy" ) , this . cancelAjax ( ) , this . clearTmpEvents ( ) , this . unAll ( ) , ! 1 !== this . params . responsive && ( window . removeEventListener ( "resize" , this . _onResize , ! 0 ) , window . removeEventListener ( "orientationchange" , this . _onResize , ! 0 ) ) , this . backend && ( this . backend . destroy ( ) , this . backend = null ) , this . drawer && this . drawer . destroy ( ) , this . isDestroyed = ! 0 , this . isReady = ! 1 , this . arraybuffer = null
}
} ] , [ {
key : "create" , value : function ( e ) {
return new r ( e ) . init ( )
}
} ] ) , r
} ( i . Observer ) ;
t . default = k , k . VERSION = "5.1.0" , k . util = i , e . exports = t . default
} , 379 : ( e , t , r ) => {
"use strict" ;
function n ( e ) {
return ( n = "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 ( t , "__esModule" , { value : ! 0 } ) , t . default = void 0 ;
var i = function ( e , t ) {
if ( ! t && e && e . _ _esModule ) return e ;
if ( null === e || "object" !== n ( e ) && "function" != typeof e ) return { default : e } ;
var r = a ( t ) ;
if ( r && r . has ( e ) ) return r . get ( e ) ;
var i = { } , s = Object . defineProperty && Object . getOwnPropertyDescriptor ;
for ( var o in e ) if ( "default" !== o && Object . prototype . hasOwnProperty . call ( e , o ) ) {
var u = s ? Object . getOwnPropertyDescriptor ( e , o ) : null ;
u && ( u . get || u . set ) ? Object . defineProperty ( i , o , u ) : i [ o ] = e [ o ]
}
return i . default = e , r && r . set ( e , i ) , i
} ( r ( 241 ) ) ;
function a ( e ) {
if ( "function" != typeof WeakMap ) return null ;
var t = new WeakMap , r = new WeakMap ;
return ( a = function ( e ) {
return e ? r : t
} ) ( e )
}
function s ( e , t , r ) {
return t in e ? Object . defineProperty ( e , t , {
value : r ,
enumerable : ! 0 ,
configurable : ! 0 ,
writable : ! 0
} ) : e [ t ] = r , e
}
function o ( e , t ) {
for ( var r = 0 ; r < t . length ; r ++ ) {
var n = t [ r ] ;
n . enumerable = n . enumerable || ! 1 , n . configurable = ! 0 , "value" in n && ( n . writable = ! 0 ) , Object . defineProperty ( e , n . key , n )
}
}
function u ( e , t ) {
return ( u = Object . setPrototypeOf || function ( e , t ) {
return e . _ _proto _ _ = t , e
} ) ( e , t )
}
function l ( 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 , n = f ( e ) ;
if ( t ) {
var i = f ( this ) . constructor ;
r = Reflect . construct ( n , arguments , i )
} else r = n . apply ( this , arguments ) ;
return c ( this , r )
}
}
function c ( e , t ) {
return ! t || "object" !== n ( t ) && "function" != typeof t ? function ( e ) {
if ( void 0 === e ) throw new ReferenceError ( "this hasn't been initialised - super() hasn't been called" ) ;
return e
} ( e ) : t
}
function f ( e ) {
return ( f = Object . setPrototypeOf ? Object . getPrototypeOf : function ( e ) {
return e . _ _proto _ _ || Object . getPrototypeOf ( e )
} ) ( e )
}
var h = "playing" , d = "paused" , p = "finished" , v = 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 && u ( e , t )
} ( a , e ) ;
var t , r , n , i = l ( a ) ;
function a ( e ) {
var t , r , n ;
return function ( e , t ) {
if ( ! ( e instanceof t ) ) throw new TypeError ( "Cannot call a class as a function" )
} ( this , a ) , ( n = i . call ( this ) ) . audioContext = null , n . offlineAudioContext = null , n . stateBehaviors = ( s ( t = { } , h , {
init : function ( ) {
this . addOnAudioProcess ( )
} , getPlayedPercents : function ( ) {
var e = this . getDuration ( ) ;
return this . getCurrentTime ( ) / e || 0
} , getCurrentTime : function ( ) {
return this . startPosition + this . getPlayedTime ( )
}
} ) , s ( t , d , {
init : function ( ) {
this . removeOnAudioProcess ( )
} , getPlayedPercents : function ( ) {
var e = this . getDuration ( ) ;
return this . getCurrentTime ( ) / e || 0
} , getCurrentTime : function ( ) {
return this . startPosition
}
} ) , s ( t , p , {
init : function ( ) {
this . removeOnAudioProcess ( ) , this . fireEvent ( "finish" )
} , getPlayedPercents : function ( ) {
return 1
} , getCurrentTime : function ( ) {
return this . getDuration ( )
}
} ) , t ) , n . params = e , n . ac = e . audioContext || ( n . supportsWebAudio ( ) ? n . getAudioContext ( ) : { } ) , n . lastPlay = n . ac . currentTime , n . startPosition = 0 , n . scheduledPause = null , n . states = ( s ( r = { } , h , Object . create ( n . stateBehaviors . playing ) ) , s ( r , d , Object . create ( n . stateBehaviors . paused ) ) , s ( r , p , Object . create ( n . stateBehaviors . finished ) ) , r ) , n . buffer = null , n . filters = [ ] , n . gainNode = null , n . mergedPeaks = null , n . offlineAc = null , n . peaks = null , n . playbackRate = 1 , n . analyser = null , n . scriptNode = null , n . source = null , n . splitPeaks = [ ] , n . state = null , n . explicitDuration = e . duration , n . destroyed = ! 1 , n
}
return t = a , ( r = [ {
key : "supportsWebAudio" , value : function ( ) {
return ! ( ! window . AudioContext && ! window . webkitAudioContext )
}
} , {
key : "getAudioContext" , value : function ( ) {
return window . WaveSurferAudioContext || ( window . WaveSurferAudioContext = new ( window . AudioContext || window . webkitAudioContext ) ) , window . WaveSurferAudioContext
}
} , {
key : "getOfflineAudioContext" , value : function ( e ) {
return window . WaveSurferOfflineAudioContext || ( window . WaveSurferOfflineAudioContext = new ( window . OfflineAudioContext || window . webkitOfflineAudioContext ) ( 1 , 2 , e ) ) , window . WaveSurferOfflineAudioContext
}
} , {
key : "init" , value : function ( ) {
this . createVolumeNode ( ) , this . createScriptNode ( ) , this . createAnalyserNode ( ) , this . setState ( d ) , this . setPlaybackRate ( this . params . audioRate ) , this . setLength ( 0 )
}
} , {
key : "disconnectFilters" , value : function ( ) {
this . filters && ( this . filters . forEach ( ( function ( e ) {
e && e . disconnect ( )
} ) ) , this . filters = null , this . analyser . connect ( this . gainNode ) )
}
} , {
key : "setState" , value : function ( e ) {
this . state !== this . states [ e ] && ( this . state = this . states [ e ] , this . state . init . call ( this ) )
}
} , {
key : "setFilter" , value : function ( ) {
for ( var e = arguments . length , t = new Array ( e ) , r = 0 ; r < e ; r ++ ) t [ r ] = arguments [ r ] ;
this . setFilters ( t )
}
} , {
key : "setFilters" , value : function ( e ) {
this . disconnectFilters ( ) , e && e . length && ( this . filters = e , this . analyser . disconnect ( ) , e . reduce ( ( function ( e , t ) {
return e . connect ( t ) , t
} ) , this . analyser ) . connect ( this . gainNode ) )
}
} , {
key : "createScriptNode" , value : function ( ) {
this . params . audioScriptProcessor ? this . scriptNode = this . params . audioScriptProcessor : this . ac . createScriptProcessor ? this . scriptNode = this . ac . createScriptProcessor ( a . scriptBufferSize ) : this . scriptNode = this . ac . createJavaScriptNode ( a . scriptBufferSize ) , this . scriptNode . connect ( this . ac . destination )
}
} , {
key : "addOnAudioProcess" , value : function ( ) {
var e = this ;
this . scriptNode . onaudioprocess = function ( ) {
var t = e . getCurrentTime ( ) ;
t >= e . getDuration ( ) ? ( e . setState ( p ) , e . fireEvent ( "pause" ) ) : t >= e . scheduledPause ? e . pause ( ) : e . state === e . states . playing && e . fireEvent ( "audioprocess" , t )
}
}
} , {
key : "removeOnAudioProcess" , value : function ( ) {
this . scriptNode . onaudioprocess = null
}
} , {
key : "createAnalyserNode" , value : function ( ) {
this . analyser = this . ac . createAnalyser ( ) , this . analyser . connect ( this . gainNode )
}
} , {
key : "createVolumeNode" , value : function ( ) {
this . ac . createGain ? this . gainNode = this . ac . createGain ( ) : this . gainNode = this . ac . createGainNode ( ) , this . gainNode . connect ( this . ac . destination )
}
} , {
key : "setSinkId" , value : function ( e ) {
if ( e ) {
var t = new window . Audio ;
if ( ! t . setSinkId ) return Promise . reject ( new Error ( "setSinkId is not supported in your browser" ) ) ;
t . autoplay = ! 0 ;
var r = this . ac . createMediaStreamDestination ( ) ;
return this . gainNode . disconnect ( ) , this . gainNode . connect ( r ) , t . srcObject = r . stream , t . setSinkId ( e )
}
return Promise . reject ( new Error ( "Invalid deviceId: " + e ) )
}
} , {
key : "setVolume" , value : function ( e ) {
this . gainNode . gain . setValueAtTime ( e , this . ac . currentTime )
}
} , {
key : "getVolume" , value : function ( ) {
return this . gainNode . gain . value
}
} , {
key : "decodeArrayBuffer" , value : function ( e , t , r ) {
this . offlineAc || ( this . offlineAc = this . getOfflineAudioContext ( this . ac && this . ac . sampleRate ? this . ac . sampleRate : 44100 ) ) , "webkitAudioContext" in window ? this . offlineAc . decodeAudioData ( e , ( function ( e ) {
return t ( e )
} ) , r ) : this . offlineAc . decodeAudioData ( e ) . then ( ( function ( e ) {
return t ( e )
} ) ) . catch ( ( function ( e ) {
return r ( e )
} ) )
}
} , {
key : "setPeaks" , value : function ( e , t ) {
null != t && ( this . explicitDuration = t ) , this . peaks = e
}
} , {
key : "setLength" , value : function ( e ) {
if ( ! this . mergedPeaks || e != 2 * this . mergedPeaks . length - 1 + 2 ) {
this . splitPeaks = [ ] , this . mergedPeaks = [ ] ;
var t , r = this . buffer ? this . buffer . numberOfChannels : 1 ;
for ( t = 0 ; t < r ; t ++ ) this . splitPeaks [ t ] = [ ] , this . splitPeaks [ t ] [ 2 * ( e - 1 ) ] = 0 , this . splitPeaks [ t ] [ 2 * ( e - 1 ) + 1 ] = 0 ;
this . mergedPeaks [ 2 * ( e - 1 ) ] = 0 , this . mergedPeaks [ 2 * ( e - 1 ) + 1 ] = 0
}
}
} , {
key : "getPeaks" , value : function ( e , t , r ) {
if ( this . peaks ) return this . peaks ;
if ( ! this . buffer ) return [ ] ;
if ( t = t || 0 , r = r || e - 1 , this . setLength ( e ) , ! this . buffer ) return this . params . splitChannels ? this . splitPeaks : this . mergedPeaks ;
if ( ! this . buffer . length ) {
var n = this . createBuffer ( 1 , 4096 , this . sampleRate ) ;
this . buffer = n . buffer
}
var i , a = this . buffer . length / e , s = ~ ~ ( a / 10 ) || 1 , o = this . buffer . numberOfChannels ;
for ( i = 0 ; i < o ; i ++ ) {
var u = this . splitPeaks [ i ] , l = this . buffer . getChannelData ( i ) , c = void 0 ;
for ( c = t ; c <= r ; c ++ ) {
var f = ~ ~ ( c * a ) , h = ~ ~ ( f + a ) , d = l [ f ] , p = d , v = void 0 ;
for ( v = f ; v < h ; v += s ) {
var y = l [ v ] ;
y > p && ( p = y ) , y < d && ( d = y )
}
u [ 2 * c ] = p , u [ 2 * c + 1 ] = d , ( 0 == i || p > this . mergedPeaks [ 2 * c ] ) && ( this . mergedPeaks [ 2 * c ] = p ) , ( 0 == i || d < this . mergedPeaks [ 2 * c + 1 ] ) && ( this . mergedPeaks [ 2 * c + 1 ] = d )
}
}
return this . params . splitChannels ? this . splitPeaks : this . mergedPeaks
}
} , {
key : "getPlayedPercents" , value : function ( ) {
return this . state . getPlayedPercents . call ( this )
}
} , {
key : "disconnectSource" , value : function ( ) {
this . source && this . source . disconnect ( )
}
} , {
key : "destroyWebAudio" , value : function ( ) {
this . disconnectFilters ( ) , this . disconnectSource ( ) , this . gainNode . disconnect ( ) , this . scriptNode . disconnect ( ) , this . analyser . disconnect ( ) , this . params . closeAudioContext && ( "function" == typeof this . ac . close && "closed" != this . ac . state && this . ac . close ( ) , this . ac = null , this . params . audioContext ? this . params . audioContext = null : window . WaveSurferAudioContext = null , window . WaveSurferOfflineAudioContext = null )
}
} , {
key : "destroy" , value : function ( ) {
this . isPaused ( ) || this . pause ( ) , this . unAll ( ) , this . buffer = null , this . destroyed = ! 0 , this . destroyWebAudio ( )
}
} , {
key : "load" , value : function ( e ) {
this . startPosition = 0 , this . lastPlay = this . ac . currentTime , this . buffer = e , this . createSource ( )
}
} , {
key : "createSource" , value : function ( ) {
this . disconnectSource ( ) , this . source = this . ac . createBufferSource ( ) , this . source . start = this . source . start || this . source . noteGrainOn , this . source . stop = this . source . stop || this . source . noteOff , this . setPlaybackRate ( this . playbackRate ) , this . source . buffer = this . buffer , this . source . connect ( this . analyser )
}
} , {
key : "resumeAudioContext" , value : function ( ) {
"suspended" == this . ac . state && this . ac . resume && this . ac . resume ( )
}
} , {
key : "isPaused" , value : function ( ) {
return this . state !== this . states . playing
}
} , {
key : "getDuration" , value : function ( ) {
return this . explicitDuration ? this . explicitDuration : this . buffer ? this . buffer . duration : 0
}
} , {
key : "seekTo" , value : function ( e , t ) {
if ( this . buffer ) return this . scheduledPause = null , null == e && ( e = this . getCurrentTime ( ) ) >= this . getDuration ( ) && ( e = 0 ) , null == t && ( t = this . getDuration ( ) ) , this . startPosition = e , this . lastPlay = this . ac . currentTime , this . state === this . states . finished && this . setState ( d ) , {
start : e ,
end : t
}
}
} , {
key : "getPlayedTime" , value : function ( ) {
return ( this . ac . currentTime - this . lastPlay ) * this . playbackRate
}
} , {
key : "play" , value : function ( e , t ) {
if ( this . buffer ) {
this . createSource ( ) ;
var r = this . seekTo ( e , t ) ;
e = r . start , t = r . end , this . scheduledPause = t , this . source . start ( 0 , e ) , this . resumeAudioContext ( ) , this . setState ( h ) , this . fireEvent ( "play" )
}
}
} , {
key : "pause" , value : function ( ) {
this . scheduledPause = null , this . startPosition += this . getPlayedTime ( ) , this . source && this . source . stop ( 0 ) , this . setState ( d ) , this . fireEvent ( "pause" )
}
} , {
key : "getCurrentTime" , value : function ( ) {
return this . state . getCurrentTime . call ( this )
}
} , {
key : "getPlaybackRate" , value : function ( ) {
return this . playbackRate
}
} , {
key : "setPlaybackRate" , value : function ( e ) {
this . playbackRate = e || 1 , this . source && this . source . playbackRate . setValueAtTime ( this . playbackRate , this . ac . currentTime )
}
} , {
key : "setPlayEnd" , value : function ( e ) {
this . scheduledPause = e
}
} ] ) && o ( t . prototype , r ) , n && o ( t , n ) , a
} ( i . Observer ) ;
t . default = v , v . scriptBufferSize = 256 , e . exports = t . default
} , 296 : e => {
function t ( e , t , r ) {
var n , i , a , s , o ;
function u ( ) {
var l = Date . now ( ) - s ;
l < t && l >= 0 ? n = setTimeout ( u , t - l ) : ( n = null , r || ( o = e . apply ( a , i ) , a = i = null ) )
}
null == t && ( t = 100 ) ;
var l = function ( ) {
a = this , i = arguments , s = Date . now ( ) ;
var l = r && ! n ;
return n || ( n = setTimeout ( u , t ) ) , l && ( o = e . apply ( a , i ) , a = i = null ) , o
} ;
return l . clear = function ( ) {
n && ( clearTimeout ( n ) , n = null )
} , l . flush = function ( ) {
n && ( o = e . apply ( a , i ) , a = i = null , clearTimeout ( n ) , n = null )
} , l
}
t . debounce = t , e . exports = t
}
} , t = { } , function r ( n ) {
var i = t [ n ] ;
if ( void 0 !== i ) return i . exports ;
var a = t [ n ] = { exports : { } } ;
return e [ n ] ( a , a . exports , r ) , a . exports
} ( 631 ) ;
var e , t
} ) ) ;
2021-08-06 12:39:59 +02:00
//# sourceMappingURL=wavesurfer.min.js.map