define(["require","exports","tslib","lodash","react","react-redux","typescript/libraries/file-viewer/src/core/data/actions","typescript/libraries/file-viewer/src/core/data/selectors","typescript/libraries/file-viewer/src/hooks/useStabilizedCallback","typescript/libraries/file-viewer/src/preview_audio_video/audio_waveform","typescript/libraries/file-viewer/src/preview_audio_video/frame_steppers","typescript/libraries/file-viewer/src/preview_audio_video/helper/constants","typescript/libraries/file-viewer/src/preview_audio_video/helper/image_size","typescript/libraries/file-viewer/src/preview_audio_video/helper/uri","typescript/libraries/file-viewer/src/preview_audio_video/helper/utils","typescript/libraries/file-viewer/src/preview_audio_video/settings_menu/settings_menu","typescript/libraries/file-viewer/src/preview_audio_video/video_thumbnails","typescript/libraries/file-viewer/src/preview_audio_video/vjs_media_icon","typescript/libraries/file-viewer/src/preview_audio_video/vjs_portal","typescript/libraries/file-viewer/src/preview_audio_video/vjs_title","videojs","typescript/libraries/file-viewer/src/core/utils/browser_detection","typescript/libraries/file-viewer/src/core/logging/constants","typescript/libraries/file-viewer/src/core/logging/actions","typescript/libraries/file-viewer/src/core/logging/video"],(function(e,i,t,r,o,l,n,a,s,d,u,c,v,p,f,_,m,g,C,h,S,y,b,w,T){"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.useVideoJs=i.videoType=i.VIDEOJS_LOADING_SPINNER_CLASSNAME=i.VIDEOJS_BIG_PLAY_BUTTON_CLASSNAME=i.VIDEOJS_POSTER_CLASSNAME=void 0,S=t.__importDefault(S);const E={preload:"auto",controls:!0,playbackRates:[.5,1,1.25,1.5,2],nativeControlsForTouch:!!(y=t.__importStar(y)).is_mobile_or_tablet(),controlBar:{children:["progressControl","playToggle","currentTimeDisplay","remainingTimeDisplay","timeDivider","durationDisplay"]},html5:{hls:{overrideNative:!0,withCredentials:!0}}},V={preload:"auto",controls:!0,playbackRates:[.5,1,1.25,1.5,2],nativeControlsForTouch:!!y.is_mobile_or_tablet(),controlBar:{children:["remainingTimeDisplay"]},html5:{hls:{overrideNative:!0,withCredentials:!0}}};i.VIDEOJS_POSTER_CLASSNAME=".vjs-poster",i.VIDEOJS_BIG_PLAY_BUTTON_CLASSNAME=".vjs-big-play-button",i.VIDEOJS_LOADING_SPINNER_CLASSNAME=".vjs-loading-spinner",i.videoType="application/vnd.apple.mpegurl",i.useVideoJs=function(e,I,P,A,k,O,D,M,R,N,B,F){var L,J,j,U,x;const[q,G]=o.useState(),[H,z]=o.useState(0),Y=o.useRef(null),Q=o.useRef(null),W=o.useRef(0),K=o.useRef(void 0),X=o.useRef(0),$=o.useRef({}),Z="video"===(null===(L=null==P?void 0:P.content)||void 0===L?void 0:L[".tag"])||"audio"===(null===(J=null==P?void 0:P.content)||void 0===J?void 0:J[".tag"])?P.content:null,ee="video"===(null===(j=null==P?void 0:P.content)||void 0===j?void 0:j[".tag"])?P.content:null,ie=l.useSelector(e=>a.getFileContentMetadata(e,k)),te="video"===(null==ie?void 0:ie.metadata[".tag"])?ie.metadata:null,re=l.useSelector(e=>a.getFilePreviewSessionId(e,O)),oe="loaded"===(null===(U=null==A?void 0:A.waveformData)||void 0===U?void 0:U.state)?A.waveformData.data:void 0,le="loaded"===(null===(x=null==A?void 0:A.isTruncated)||void 0===x?void 0:x.state)?A.isTruncated.data:void 0,ne=o.useRef(T.VideoPreviewEvent.VideoStartsPlaying),ae=o.useRef(),se=o.useRef(),de=o.useRef(),ue=o.useRef(1),ce=null==Z?void 0:Z.transcode_url,ve=null==ee?void 0:ee.transcode_urls_separate_resolutions,pe=(null==ee?void 0:ee.poster_url_tmpl)?f.tagCriticalPathContentRequest((fe=ee.poster_url_tmpl,p.URI.parse(fe).updateQuery({size:v.imageBestFitSize(window.innerWidth,window.innerHeight),size_mode:"2"}).toString()),re):void 0;var fe;const _e=null==ee?void 0:ee.thumb_scrubber_vtt_url,me=null==te?void 0:te.frame_rate,ge=D.showVideoFrameSteppers,Ce=o.useCallback((i,t)=>{null!=re&&ae.current!==i&&(ae.current=i,e(w.logSessionEvent({event:i,fileViewerId:O,previewSessionId:re,extra:t})))},[e,O,re]),he=o.useCallback((i,t)=>{null!=re&&ae.current!==i&&(ae.current=i,e(w.logPreviewEvent({event:i,fileViewerId:O,previewSessionId:re,extra:t})))},[e,O,re]),Se=o.useCallback((i,t)=>{null!=re&&e(w.logVideoEvent({eventName:i,fileViewerId:O,previewSessionId:re,videoTruncated:le,videoDuration:H,extra:t}))},[e,O,re,H,le]),ye=o.useCallback(r.once(()=>{Se(T.VideoPreviewEvent.FirstClickPlay)}),[Se]),be=o.useCallback(i=>{e(n.updateAudioVideoPlaybackState(Object.assign({fileViewerId:O,previewKey:k},i)))},[e,k,O]),we=o.useCallback(e=>{be({currentTimestamp:e})},[be]),Te=o.useCallback(e=>{de.current=e,be({currentTimestamp:e,isPlaying:!1}),Se(T.VideoPreviewEvent.VideoPaused,{video_timestamp:e.toString()})},[Se,be]),Ee=o.useCallback(e=>{be({currentTimestamp:e,isPlaying:!0}),ye()},[ye,be]),Ve=o.useCallback((e,i)=>{se.current&&de.current&&(Se(T.VideoPreviewEvent.SeekVideo,{old_video_time:de.current.toString(),new_video_time:se.current.toString()}),de.current=void 0,se.current=void 0),be({currentTimestamp:e,isPlaying:!0}),Se(ne.current,{play_latency:i.latency.toString(),play_latency_since:i.trigger.toString()}),ne.current=T.VideoPreviewEvent.VideoResumesPlaying},[Se,be]),Ie=o.useCallback(()=>{Se(T.VideoPreviewEvent.MediaEnded)},[Se]),Pe=o.useCallback(e=>{e!==ue.current&&(ue.current=e,he(b.EventType.VideoPlaybackRateChanged,{playback_rate:e.toString()}))},[he]),Ae=o.useCallback(e=>{be({currentTimestamp:e,isPlaying:!1})},[be]),ke=o.useCallback(e=>{e&&(Se(T.VideoPreviewEvent.MediaError,{errorCode:e.code?e.code.toString():"",errorMessage:e.message||""}),"needflash"===e.message)?Ce(b.SessionEventType.FilePreviewSupportDenied):(e&&"No compatible source was found for this media."!==e.message&&Ce(b.SessionEventType.FilePreviewDownloadFailed),B())},[Ce,Se,B]),Oe=o.useCallback((e,i)=>{Se(T.VideoPreviewEvent.ChangePlaybackRate,{old_playback_rate:e.toString(),new_playback_rate:i.toString()})},[Se]),De=o.useCallback((e,i)=>{se.current=i},[]),Me=o.useCallback((e,i)=>{Se(T.VideoPreviewEvent.VideoStalled,{video_timestamp:e.toString(),playback_rate:i.toString()})},[Se]),Re=o.useCallback(e=>{Se(e?T.VideoPreviewEvent.ScrubberThumbnailsLoaded:T.VideoPreviewEvent.ScrubberThumbnailsFailed)},[Se]),Ne=o.useCallback((e,i,t)=>{Se(T.VideoPreviewEvent.ChangeVideoQuality,{old_video_quality:e,new_video_quality:i,video_quality_changer:t?"user_selected":"auto_resolution_picker"})},[Se]),Be=o.useCallback(e=>{Se(T.VideoPreviewEvent.TimeToLoad,{time_to_load:e.toString()})},[Se]),Fe=o.useCallback(()=>e(n.clearVideoRequests()),[e]),Le=s.useStabilizedCallback(()=>{q&&(null==F||F(),B(),N(),Se(T.VideoPreviewEvent.PlayerRendered)),y.ipad}),Je=s.useStabilizedCallback(()=>{const i={fileViewerId:O,previewKey:k,sourceContext:b.UserActionContext.SurfaceGesture};D.isFullScreen?(e(n.exitFullScreen(Object.assign(Object.assign({},i),{isFromOutsideSDK:!1}))),e(w.logUserActionEvent({userAction:b.UserAction.ToggleFullscreenOff,fileViewerId:O,actionContext:b.UserActionContext.SurfaceGesture}))):(e(n.enterFullScreen(i)),e(w.logUserActionEvent({userAction:b.UserAction.ToggleFullscreenOn,fileViewerId:O,actionContext:b.UserActionContext.SurfaceGesture})))}),je=o.useMemo(()=>Object.assign(Object.assign({},V),{userActions:{doubleClick:Je}}),[Je]);o.useEffect(()=>{if(!Y.current)return;const e=R?je:E,i=S.default(Y.current,Object.assign(Object.assign({},e),{language:I.locale,languages:{[I.locale]:{"Play Video":I.formatMessage({id:"UYH9A3",defaultMessage:"Play Video"})}}}),Le);return G(i),()=>{(function(e){if(e)try{e.trigger("shutdown"),e.dispose()}catch(e){}})(i),G(void 0)}},[Le,je,R,I]);const Ue=l.useSelector(e=>a.getVideoRequests(e));function xe(e){W.current=Date.now(),Q.current=e}return o.useEffect(()=>{null!=pe&&(null==q||q.poster(pe))},[pe,q]),o.useEffect(()=>{if(q){const e=()=>{z(q.duration())};return q.on("loadedmetadata",e),()=>q.off("loadedmetadata",e)}}),o.useEffect(()=>{if(q){const e=()=>{we(q.currentTime())};return q.on("timeupdate",e),()=>q.off("timeupdate",e)}},[we,q]),o.useEffect(()=>{if(q){const e=()=>{null==Q.current&&xe(T.VideoPreviewEvent.VideoStartsPlaying),Ee(q.currentTime());const e=document.querySelector(i.VIDEOJS_POSTER_CLASSNAME);e&&(e.style.display="none");const t=document.querySelector(i.VIDEOJS_BIG_PLAY_BUTTON_CLASSNAME);t&&(t.style.display="none")},t=()=>{Ve(q.currentTime(),(function(){const e=Date.now(),i=Q.current;if(null==i)throw new Error("Expected non-null playLatencyTrigger");return{latency:e-W.current,trigger:i}})())},r=()=>{xe(T.VideoPreviewEvent.VideoPaused),q.currentTime(q.currentTime()),Te(q.currentTime())},o=()=>{Ie()};return q.on("play",e),q.on("playing",t),q.on("pause",r),q.on("ended",o),()=>{q.off("play",e),q.off("playing",t),q.off("pause",r),q.off("ended",o)}}},[Te,Ee,Ve,q,Ie]),o.useEffect(()=>{if(q){const e=()=>{Pe(q.playbackRate())};return q.on("userinactive",e),()=>q.off("userinactive",e)}},[Pe,q]),o.useEffect(()=>{if(q){const e=()=>{Ae(q.currentTime())};return q.on("waiting",e),()=>q.off("waiting",e)}},[Ae,q]),o.useEffect(()=>{if(q){const e=()=>{(null==K?void 0:K.current)&&Be(Date.now()-K.current)};return q.one("canplaythrough",e),()=>q.off("canplaythrough",e)}},[Be,q]),o.useEffect(()=>{if(q){const e=e=>{var i;const t=null!==(i=null==q?void 0:q.error())&&void 0!==i?i:e;ke(t)};return q.on("error",e),()=>q.off("error",e)}},[ke,q]),o.useEffect(()=>{if(q&&!R){const e=()=>{Oe(1,q.playbackRate())};return q.on("ratechange",e),()=>q.off("ratechange",e)}},[Oe,R,q]),o.useEffect(()=>{if(q){const e=()=>{X.current=q.currentTime()},i=()=>{var e,i;De(X.current,q.currentTime()),null===(i=null===(e=q.getChild("controlBar"))||void 0===e?void 0:e.getChild("currentTimeDisplay"))||void 0===i||i.updateContent()};return q.on("seeked",i),q.on("seeking",e),()=>{q.off("seeked",i),q.off("seeking",e)}}},[De,q]),o.useEffect(()=>{q&&q.on("stalled",()=>{xe(T.VideoPreviewEvent.VideoStalled),Me(q.currentTime(),q.playbackRate())})},[Me,q]),o.useEffect(()=>{q&&(q.one("loadstart",()=>{K.current=Date.now();const e=f.getTechFromPlayer(q);e&&e.on("retryplaylist",()=>{const i=e.vhs.selectPlaylist();let t;if(!e.vhs||!i||!(t=i.resolvedUri))return;const r=$.current;(++r[t]||(r[t]=1))>c.VideoPlayerTypes.VIDEOJS_PLAYLIST_RETRY_THRESHOLD&&q.error(`Maximum retry limit reached for ${t}`)})}),q.on("mouseleave",()=>{null==q||q.userActive(!1)}),q.one("play",()=>{q.controlBar.on("mouseleave",()=>{q.options({inactivityTimeout:2e3})})}))},[q]),o.useEffect(()=>{Ue.length>0&&q&&(Ue.forEach(e=>{switch(e.videoRequestType){case"seek":(function(e,i){t.__awaiter(this,void 0,void 0,(function*(){e.currentTime(i/100),e.pause()}))})(q,e.time);break;case"seekRelative":(function(e,i){0===e.currentTime()&&(e.play(),e.pause()),e.currentTime(e.currentTime()+i),e.pause()})(q,e.delta);break;case"pause":q.pause()}}),Fe())},[Ue,Fe,q]),o.useEffect(()=>{S.default.registerComponent(h.VJS_TITLE,h.VjsTitle),S.default.registerComponent(g.VJS_MEDIA_ICON,g.VjsMediaIcon),S.default.registerComponent(d.AUDIO_WAVEFORM,d.VjsAudioWaveform),S.default.registerComponent(_.VJS_SETTINGS_MENU,_.VjsSettingsMenu),S.default.registerComponent(C.VJS_PORTAL,C.VjsPortalDestination),S.default.getComponent("FrameStepper")||(S.default.registerComponent("FrameStepper",u.FrameStepper),S.default.registerComponent("BackStepper",u.BackStepper),S.default.registerComponent("ForwardStepper",u.ForwardStepper)),R||S.default.registerComponent(m.VTT_THUMBNAILS,m.VttThumbnails)},[R]),o.useEffect(()=>{if(!S.default.getComponent("TruncatedBar")){const e=S.default.getComponent("Component"),i=S.default.extend(e,{createEl(i="div",t={},r={}){t=Object.assign(Object.assign({},t),{className:"truncated-bar"});const o=e.prototype.createEl.call(this,i,t,r);return o.innerText=I.formatMessage({id:"X/6mDh",defaultMessage:"You’re watching a preview. To watch the full video, download or add it to your Dropbox."}),o}});S.default.registerComponent("TruncatedBar",i)}if(q){const e=q.addChild("TruncatedBar");return()=>q.removeChild(e)}},[I,q]),o.useEffect(()=>{if(M&&q){const e=q.addChild(d.AUDIO_WAVEFORM,{waveformHeights:oe,hideControls:R});return()=>q.removeChild(e)}return()=>{}},[q,ce,oe]),o.useEffect(()=>{if(!q)return;const e=[],t=null==q?void 0:q.getChild("ControlBar"),o=null==t?void 0:t.getChild("progressControl"),l=null==o?void 0:o.getChild("seekBar"),n=null==l?void 0:l.getChild("playProgressBar"),a=null==n?void 0:n.getChild("timeTooltip");if(null!=l&&!R){const i=l.addChild(C.VJS_PORTAL);e.push(()=>q.removeChild(i))}if(a&&(null==n||n.removeChild(a)),null!=t&&!R){if(null!=me&&ge){const i=t.addChild("BackStepper",{frameRate:me}),r=t.addChild("ForwardStepper",{frameRate:me});e.push(()=>{q.controlBar.removeChild(i),q.controlBar.removeChild(r)})}const r=t.addChild(h.VJS_TITLE,{title:""}),o=t.addChild(C.VJS_PORTAL,{elementAttrs:{class:"onboarding-indicator"}}),l=t.addChild("volumePanel");e.push(()=>{t.removeChild(r),t.removeChild(o),t.removeChild(l)});const n=null==l?void 0:l.getChild("muteToggle");if(null!=n){const i=n.addChild(g.VJS_MEDIA_ICON,{iconId:c.MediaIcons.Volume}),t=n.addChild(g.VJS_MEDIA_ICON,{iconId:c.MediaIcons.VolumeMuted});e.push(()=>{n.removeChild(i),n.removeChild(t)})}if(!y.is_mobile_or_tablet()){const r=t.addChild(_.VJS_SETTINGS_MENU,{initialSrc:{src:ce,type:i.videoType},srcMap:ve,showQualityNativeHls:f.showQualityNativeHls(),onSelectQuality:Ne});e.push(()=>t.removeChild(r))}}if(!M){const i=q.getChild("BigPlayButton");if(null!=i){const t=i.addChild(g.VJS_MEDIA_ICON,{iconId:c.MediaIcons.Play});e.push(()=>{i.removeChild(t)})}if(null!=t&&!R){const i=t.addChild("fullscreenToggle"),r=i.addChild(g.VJS_MEDIA_ICON,{iconId:c.MediaIcons.FullScreen}),o=i.addChild(g.VJS_MEDIA_ICON,{iconId:c.MediaIcons.FullScreenExit});e.push(()=>{i.removeChild(r),i.removeChild(o),t.removeChild(i)})}}if(M){const i=null==q?void 0:q.getChild("BigPlayButton");null!=i&&(q.removeChild(i),e.push(()=>{q.isDisposed()||q.addChild(i)}))}if(!y.is_mobile_or_tablet()&&!M&&null!=l&&!R){const i=l.getChild("mouseTimeDisplay");null!=i&&(l.removeChild(i),e.push(()=>{l.isDisposed()||l.addChild(i)}));const t=l.addChild(m.VTT_THUMBNAILS,{componentClass:m.VTT_THUMBNAILS,src:_e,onScrubberThumbnailsLoaded:r.once(Re)});e.push(()=>{l.removeChild(t)})}if(null!=t&&!R){const i=t.getChild("playToggle");if(null!=i){const t=i.addChild(g.VJS_MEDIA_ICON,{iconId:c.MediaIcons.Play}),r=i.addChild(g.VJS_MEDIA_ICON,{iconId:c.MediaIcons.Pause});e.push(()=>{i.removeChild(t),i.removeChild(r)})}}return()=>{for(const i of e)i()}},[ce,q]),{player:q,audioVideoRef:Y,duration:H,videoTruncated:le||!1,src:ce}}})); //# sourceMappingURL=useVideoJS.amd.min.js-vflbmKtDl.map