define(["require","exports","tslib","react","react-dom","videojs","typescript/libraries/file-viewer/src/preview_audio_video/helper/preview_audio_utils","spectrum/dimensions/index","typescript/libraries/file-viewer/src/css/audio_waveform.module.css"],(function(e,t,o,i,n,r,s,a,u){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AudioWaveformView=t.VjsAudioWaveform=t.AUDIO_WAVEFORM=void 0,i=o.__importStar(i),n=o.__importStar(n),r=o.__importDefault(r),u=o.__importStar(u),t.AUDIO_WAVEFORM="audioWaveform";const l=r.default.getComponent("Component");t.VjsAudioWaveform=class extends l{constructor(e,t){super(e,t),this.setSeekTime=e=>{this.player().currentTime(e)},this.mount=()=>{n.render(i.default.createElement(f,{onSeek:this.setSeekTime,duration:this.player().duration(),player:this.player(),onAudioWaveformLoaded:this.onAudioWaveformLoaded,onAudioWaveformFailed:this.onAudioWaveformFailed,waveformHeights:this.waveformHeights,hideControls:this.hideControls}),this.el())},this.onAudioWaveformLoaded=t.onAudioWaveformLoaded,this.onAudioWaveformFailed=t.onAudioWaveformFailed,this.waveformHeights=t.waveformHeights,this.hideControls=t.hideControls,e.ready(this.mount),this.addClass("vjs-audio-waveform")}dispose(){n.unmountComponentAtNode(this.el())}};const d=({player:e,duration:o,onSeek:n,waveformHeights:r,windowHeight:s,windowWidth:a})=>{const u=i.useRef(!1),l=i.useCallback((function(){f(e.currentTime()/(o||e.duration()||1/0))}),[]),[d,f]=i.useState();function c(t){f(t);const o=t*e.duration();n(o)}return i.useEffect(()=>{e.on("timeupdate",l)},[e,l]),i.default.createElement(t.AudioWaveformView,{height:s,onMouseMove:function(e,t){u.current&&c(t)},onMouseDown:function({},e){u.current=!0,c(e)},onMouseUp:function(){u.current=!1},scrubPercent:d,waveformHeights:r,width:a})};d.displayName="AudioWaveform",t.AudioWaveformView=({onMouseUp:e,height:t,scrubPercent:o,width:n,waveformHeights:r,onMouseDown:a,onMouseMove:l})=>{const d=i.default.useRef(null);i.useEffect(()=>(document.addEventListener("mouseup",h),document.addEventListener("mousemove",m),()=>{document.removeEventListener("mouseup",h),document.removeEventListener("mousemove",m)}),[]);const f=i.useCallback((function(){const{current:e}=d;if(!e)return;const i=e.getContext("2d");if(!i)return;if(!t||!n)return;const a=(function(e){const t=Math.floor((e-2)/4);return s.returnWaveform(r,t,.85)})(n);e.width=1*n,e.height=1*t,i.globalAlpha=0,i.fillStyle="black",i.fillRect(0,0,n,t),i.globalAlpha=1;const u=o*n;let l=0;if(u)for(i.fillStyle="rgba(27, 39, 51, 0.08)",i.fillRect(0,0,u,t),i.fillStyle="#1B2733";l=u){i.fillRect(e,r,u-e,n),i.globalAlpha=.3,i.fillStyle="#637282",i.fillRect(u,r,e+2-u,n),l++;break}i.fillRect(e,r,2,n)}for(i.globalAlpha=.3,i.fillStyle="#637282";l{const t=c(e);t&&l(e,t)})}function h(t){if(e){const o=c(t);o&&e(t,o)}}return i.useEffect(()=>{d.current&&f()},[f]),i.default.createElement("div",{className:u.previewAudioWaveform,style:{width:"100%",height:"100%"},onMouseDown:function(e){const t=e.nativeEvent;if(0===t.button&&a){const e=c(t);e&&a(t,e)}}},i.default.createElement("canvas",{className:u.waveform,ref:d,style:{position:"relative",overflow:"hidden"}}))},t.AudioWaveformView.displayName="AudioWaveformView";const f=e=>i.default.createElement(a.Dimensions,{className:u.previewAudioWrapper},({width:t,height:o})=>{let n;return n=e.hideControls?o:o&&o-51-10,i.default.createElement(d,Object.assign({},e,{windowHeight:n,windowWidth:null!=t?t:void 0}))});f.displayName="AudioWaveformWithDimensions"})); //# sourceMappingURL=audio_waveform.amd.min.js-vflLZfOAJ.map