{"version":3,"file":"HLS_Video_component.3UIktEdh.mjs","names":["React.useRef","React.useState","React.useMemo","React.useCallback"],"sources":["https:/framerusercontent.com/modules/N5JiLyuH2d94ySh7wai3/KCbQ2Tg4q277AOfw7ZQi/HLS_Video_component.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";const HLS_JS_URL=\"https://cdn.jsdelivr.net/npm/hls.js@1.6.17/dist/hls.min.js\";let hlsLoader=null;function loadHls(){if(typeof window===\"undefined\"){return Promise.reject(new Error(\"Browser environment required\"));}if(window.Hls){return Promise.resolve(window.Hls);}if(hlsLoader){return hlsLoader;}const loader=new Promise((resolve,reject)=>{const existing=document.querySelector('script[data-bunny-hls=\"true\"]');if(existing){if(window.Hls){resolve(window.Hls);return;}let timeout;const cleanup=()=>{existing.removeEventListener(\"load\",handleLoad);existing.removeEventListener(\"error\",handleError);window.clearTimeout(timeout);};const handleLoad=()=>{cleanup();if(window.Hls){resolve(window.Hls);}else{reject(new Error(\"HLS.js unavailable\"));}};const handleError=()=>{cleanup();reject(new Error(\"Failed to load HLS.js\"));};existing.addEventListener(\"load\",handleLoad);existing.addEventListener(\"error\",handleError);timeout=window.setTimeout(()=>{cleanup();if(window.Hls){resolve(window.Hls);}else{reject(new Error(\"Timed out loading HLS.js\"));}},1e4);return;}const script=document.createElement(\"script\");script.src=HLS_JS_URL;script.async=true;script.dataset.bunnyHls=\"true\";script.onload=()=>{if(window.Hls){resolve(window.Hls);}else{reject(new Error(\"HLS.js unavailable\"));}};script.onerror=()=>{reject(new Error(\"Failed to load HLS.js\"));};document.head.appendChild(script);});hlsLoader=loader;loader.catch(()=>{if(hlsLoader===loader){hlsLoader=null;}});return loader;}function isHlsUrl(url){if(!url){return false;}const clean=url.split(/[?#]/)[0].toLowerCase();return clean.endsWith(\".m3u8\");}function getAutomaticBunnyPoster(source){if(!source){return\"\";}try{const url=new URL(source);const parts=url.pathname.split(\"/\").filter(Boolean);if(!parts.length){return\"\";}const firstPart=parts[0];const lastPart=parts[parts.length-1].toLowerCase();const bunnyHost=url.hostname===\"b-cdn.net\"||url.hostname.endsWith(\".b-cdn.net\");const uuidLike=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(firstPart);const bunnyFile=lastPart===\"playlist.m3u8\"||lastPart===\"original\"||/^play_[^/]+\\.mp4$/i.test(lastPart);if(!bunnyHost&&!(uuidLike&&bunnyFile)){return\"\";}url.pathname=`/${firstPart}/thumbnail.jpg`;url.search=\"\";url.hash=\"\";return url.toString();}catch{return\"\";}}function getQualityOrder(levels){if(!Array.isArray(levels)||levels.length===0){return[];}return levels.map((level,index)=>{const width=Number(level?.width||0);const height=Number(level?.height||0);const area=width*height;const bitrate=Math.max(Number(level?.bitrate||0),Number(level?.averageBitrate||0));return{index,width,height,area,bitrate};}).sort((a,b)=>{if(b.area!==a.area){return b.area-a.area;}if(b.height!==a.height){return b.height-a.height;}if(b.width!==a.width){return b.width-a.width;}return b.bitrate-a.bitrate;}).map(item=>item.index);}function getAspectRatio(value){switch(value){case\"16:9\":return\"16 / 9\";case\"4:3\":return\"4 / 3\";case\"1:1\":return\"1 / 1\";case\"9:16\":return\"9 / 16\";case\"21:9\":return\"21 / 9\";default:return undefined;}}export default function BunnyHLSVideo(props){const{streamUrl,poster,autoplay,muted,loop,controls,lazyLoad,pauseWhenOffscreen,objectFit,aspectRatio,borderRadius,backgroundColor,style}=props;const rootRef=React.useRef(null);const videoRef=React.useRef(null);const hlsRef=React.useRef(null);const loadObserverRef=React.useRef(null);const visibilityObserverRef=React.useRef(null);const mountedRef=React.useRef(false);const initializedRef=React.useRef(false);const generationRef=React.useRef(0);const qualityOrderRef=React.useRef([]);const qualityPositionRef=React.useRef(0);const networkRecoveryRef=React.useRef(0);const mediaRecoveryRef=React.useRef(0);const autoplayRef=React.useRef(autoplay);const pauseWhenOffscreenRef=React.useRef(pauseWhenOffscreen);const visibleRef=React.useRef(true);const videoReadyRef=React.useRef(false);const[videoReady,setVideoReady]=React.useState(false);const[intrinsicAspectRatio,setIntrinsicAspectRatio]=React.useState(undefined);const[error,setError]=React.useState(false);const[posterFailed,setPosterFailed]=React.useState(false);const automaticPoster=React.useMemo(()=>getAutomaticBunnyPoster(streamUrl),[streamUrl]);const resolvedPoster=poster||automaticPoster;React.useEffect(()=>{autoplayRef.current=autoplay;},[autoplay]);React.useEffect(()=>{pauseWhenOffscreenRef.current=pauseWhenOffscreen;},[pauseWhenOffscreen]);React.useEffect(()=>{setPosterFailed(false);},[resolvedPoster]);const destroyHls=React.useCallback(()=>{const hls=hlsRef.current;if(!hls){return;}try{hls.destroy();}catch{}hlsRef.current=null;},[]);const clearVideo=React.useCallback(()=>{const video=videoRef.current;if(!video){return;}try{video.pause();}catch{}try{video.removeAttribute(\"src\");video.load();}catch{}},[]);const resetPlayer=React.useCallback(()=>{generationRef.current+=1;initializedRef.current=false;qualityOrderRef.current=[];qualityPositionRef.current=0;networkRecoveryRef.current=0;mediaRecoveryRef.current=0;videoReadyRef.current=false;loadObserverRef.current?.disconnect();loadObserverRef.current=null;destroyHls();clearVideo();},[destroyHls,clearVideo]);const lockLevel=React.useCallback((hls,index,includeStartLevel=false)=>{if(!hls||!Number.isInteger(index)||index<0){return;}if(includeStartLevel){try{hls.startLevel=index;}catch{}}try{hls.loadLevel=index;}catch{}try{hls.nextLoadLevel=index;}catch{}},[]);const getPreferredLevel=React.useCallback(()=>{const order=qualityOrderRef.current;const position=qualityPositionRef.current;return order[position]??-1;},[]);const tryPlay=React.useCallback(()=>{const video=videoRef.current;if(!video||!autoplayRef.current){return;}if(pauseWhenOffscreenRef.current&&!visibleRef.current){return;}video.play().catch(()=>{});},[]);const markVideoReady=React.useCallback(()=>{if(videoReadyRef.current||!mountedRef.current){return;}videoReadyRef.current=true;const generation=generationRef.current;const finish=()=>{if(!mountedRef.current||generation!==generationRef.current){return;}setVideoReady(true);tryPlay();};if(typeof window!==\"undefined\"){window.requestAnimationFrame(()=>{window.requestAnimationFrame(finish);});}else{finish();}},[tryPlay]);const updateIntrinsicAspectRatio=React.useCallback(()=>{const video=videoRef.current;if(!video){return;}const width=Number(video.videoWidth||0);const height=Number(video.videoHeight||0);if(width>0&&height>0){React.startTransition(()=>{setIntrinsicAspectRatio(`${width} / ${height}`);});}},[]);const loadVideo=React.useCallback(async()=>{const video=videoRef.current;if(!video||!streamUrl||!mountedRef.current||initializedRef.current){return;}initializedRef.current=true;const generation=generationRef.current;const hlsSource=isHlsUrl(streamUrl);setError(false);if(!hlsSource){try{video.src=streamUrl;video.load();tryPlay();}catch(err){if(mountedRef.current&&generation===generationRef.current){initializedRef.current=false;setError(true);}console.error(\"[Video] Native video initialization failed:\",err);}return;}try{const Hls=await loadHls();if(!mountedRef.current||generation!==generationRef.current){return;}if(Hls&&Hls.isSupported()){const hls=new Hls({autoStartLoad:false,startLevel:-1,capLevelToPlayerSize:false,capLevelOnFPSDrop:false,testBandwidth:false,preserveManualLevelOnError:true,enableWorker:true,lowLatencyMode:false,maxBufferLength:30,maxMaxBufferLength:60,maxBufferHole:.5});hlsRef.current=hls;hls.on(Hls.Events.MANIFEST_PARSED,()=>{if(!mountedRef.current||generation!==generationRef.current||hlsRef.current!==hls){return;}const order=getQualityOrder(hls.levels);if(!order.length){setError(true);destroyHls();return;}qualityOrderRef.current=order;qualityPositionRef.current=0;networkRecoveryRef.current=0;mediaRecoveryRef.current=0;const highest=order[0];lockLevel(hls,highest,true);try{hls.startLoad();}catch{}tryPlay();});hls.on(Hls.Events.LEVEL_SWITCHED,(_event,data)=>{if(!mountedRef.current||generation!==generationRef.current||hlsRef.current!==hls){return;}const preferred=getPreferredLevel();if(preferred<0){return;}if(data?.level!==preferred){lockLevel(hls,preferred,false);return;}networkRecoveryRef.current=0;mediaRecoveryRef.current=0;});hls.on(Hls.Events.ERROR,(_event,data)=>{if(!mountedRef.current||generation!==generationRef.current||hlsRef.current!==hls||!data?.fatal){return;}if(data.type===Hls.ErrorTypes.NETWORK_ERROR){const preferred=getPreferredLevel();if(networkRecoveryRef.current<2){networkRecoveryRef.current+=1;const attempt=networkRecoveryRef.current;window.setTimeout(()=>{if(!mountedRef.current||generation!==generationRef.current||hlsRef.current!==hls){return;}if(preferred>=0){lockLevel(hls,preferred,false);}try{hls.startLoad();}catch{}},400*attempt);return;}const nextPosition=qualityPositionRef.current+1;const nextLevel=qualityOrderRef.current[nextPosition];if(typeof nextLevel===\"number\"){qualityPositionRef.current=nextPosition;networkRecoveryRef.current=0;lockLevel(hls,nextLevel,false);try{hls.startLoad();}catch{}return;}}if(data.type===Hls.ErrorTypes.MEDIA_ERROR){if(mediaRecoveryRef.current<2){mediaRecoveryRef.current+=1;try{hls.recoverMediaError();}catch{}const preferred=getPreferredLevel();if(preferred>=0){lockLevel(hls,preferred,false);}return;}}console.error(\"[Video] Fatal HLS error:\",data);setError(true);destroyHls();});hls.loadSource(streamUrl);hls.attachMedia(video);return;}if(video.canPlayType(\"application/vnd.apple.mpegurl\")){video.src=streamUrl;video.load();tryPlay();return;}throw new Error(\"HLS playback is not supported\");}catch(err){if(!mountedRef.current||generation!==generationRef.current){return;}if(video.canPlayType(\"application/vnd.apple.mpegurl\")){try{video.src=streamUrl;video.load();tryPlay();return;}catch{}}initializedRef.current=false;setError(true);console.error(\"[Video] Player initialization failed:\",err);}},[streamUrl,destroyHls,getPreferredLevel,lockLevel,tryPlay]);React.useEffect(()=>{mountedRef.current=true;return()=>{mountedRef.current=false;loadObserverRef.current?.disconnect();visibilityObserverRef.current?.disconnect();resetPlayer();};},[resetPlayer]);React.useEffect(()=>{if(!mountedRef.current){return;}resetPlayer();React.startTransition(()=>{setVideoReady(false);setIntrinsicAspectRatio(undefined);});setError(false);if(!streamUrl){return;}if(!lazyLoad||typeof IntersectionObserver===\"undefined\"){loadVideo();return;}const element=rootRef.current||videoRef.current;if(!element){loadVideo();return;}const observer=new IntersectionObserver(entries=>{const entry=entries[0];if(!entry?.isIntersecting){return;}loadVideo();observer.disconnect();if(loadObserverRef.current===observer){loadObserverRef.current=null;}},{rootMargin:\"600px 0px\",threshold:.01});loadObserverRef.current=observer;observer.observe(element);return()=>{observer.disconnect();if(loadObserverRef.current===observer){loadObserverRef.current=null;}};},[streamUrl,lazyLoad,loadVideo,resetPlayer]);React.useEffect(()=>{visibilityObserverRef.current?.disconnect();visibilityObserverRef.current=null;if(!pauseWhenOffscreen){visibleRef.current=true;tryPlay();return;}const element=rootRef.current||videoRef.current;const video=videoRef.current;if(!element||!video){return;}if(typeof IntersectionObserver===\"undefined\"){visibleRef.current=true;return;}const observer=new IntersectionObserver(entries=>{const visible=entries[0]?.isIntersecting??false;visibleRef.current=visible;if(!visible){video.pause();}else{tryPlay();}},{threshold:.01});visibilityObserverRef.current=observer;observer.observe(element);return()=>{observer.disconnect();if(visibilityObserverRef.current===observer){visibilityObserverRef.current=null;}};},[pauseWhenOffscreen,tryPlay]);React.useEffect(()=>{const video=videoRef.current;autoplayRef.current=autoplay;if(!video){return;}if(autoplay){tryPlay();}else{try{video.pause();}catch{}}},[autoplay,tryPlay]);const reservedAspectRatio=getAspectRatio(aspectRatio);const renderedAspectRatio=intrinsicAspectRatio??reservedAspectRatio;const hasPoster=Boolean(resolvedPoster)&&!posterFailed;return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,style:{width:\"100%\",height:\"auto\",...style,position:\"relative\",aspectRatio:renderedAspectRatio,overflow:\"hidden\",minWidth:0,minHeight:0,borderRadius,background:backgroundColor,contain:\"layout paint\"},children:[/*#__PURE__*/_jsx(\"video\",{ref:videoRef,autoPlay:autoplay,muted:muted,loop:loop,controls:controls,playsInline:true,preload:lazyLoad?\"none\":\"auto\",poster:hasPoster?resolvedPoster:undefined,onLoadedMetadata:updateIntrinsicAspectRatio,onLoadedData:markVideoReady,onCanPlay:markVideoReady,onPlaying:markVideoReady,onError:()=>{if(mountedRef.current&&!hlsRef.current){setError(true);}},style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",display:\"block\",objectFit,background:backgroundColor,zIndex:1}}),hasPoster&&/*#__PURE__*/_jsx(\"img\",{src:resolvedPoster,alt:\"\",draggable:false,loading:\"eager\",decoding:\"async\",onError:()=>setPosterFailed(true),style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",display:\"block\",objectFit,opacity:videoReady?0:1,transition:\"opacity 250ms ease\",zIndex:2,pointerEvents:\"none\"}},resolvedPoster),error&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,zIndex:3,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:\"rgba(255,255,255,0.72)\",background:\"rgba(0,0,0,0.18)\",fontFamily:\"Inter, system-ui, sans-serif\",fontSize:12,pointerEvents:\"none\"},children:\"Unable to load video\"})]});}BunnyHLSVideo.defaultProps={streamUrl:\"\",poster:\"\",autoplay:true,muted:true,loop:true,controls:false,lazyLoad:true,pauseWhenOffscreen:false,objectFit:\"cover\",aspectRatio:\"16:9\",borderRadius:0,backgroundColor:\"#000000\"};addPropertyControls(BunnyHLSVideo,{streamUrl:{type:ControlType.String,title:\"Video URL\",placeholder:\"https://.../playlist.m3u8 or video.mp4\"},poster:{type:ControlType.Image,title:\"Poster Override\"},aspectRatio:{type:ControlType.Enum,title:\"Reserve Ratio\",options:[\"16:9\",\"4:3\",\"1:1\",\"9:16\",\"21:9\",\"frame\"],optionTitles:[\"16:9\",\"4:3\",\"1:1\",\"9:16\",\"21:9\",\"Framer Frame\"],defaultValue:\"16:9\"},autoplay:{type:ControlType.Boolean,title:\"Autoplay\",enabledTitle:\"Yes\",disabledTitle:\"No\"},muted:{type:ControlType.Boolean,title:\"Muted\",enabledTitle:\"Yes\",disabledTitle:\"No\"},loop:{type:ControlType.Boolean,title:\"Loop\",enabledTitle:\"Yes\",disabledTitle:\"No\"},controls:{type:ControlType.Boolean,title:\"Controls\",enabledTitle:\"Show\",disabledTitle:\"Hide\"},lazyLoad:{type:ControlType.Boolean,title:\"Lazy Load\",enabledTitle:\"Yes\",disabledTitle:\"No\"},pauseWhenOffscreen:{type:ControlType.Boolean,title:\"Pause Offscreen\",enabledTitle:\"Yes\",disabledTitle:\"No\"},objectFit:{type:ControlType.Enum,title:\"Fit\",options:[\"cover\",\"contain\",\"fill\"],optionTitles:[\"Cover\",\"Contain\",\"Fill\"]},borderRadius:{type:ControlType.Number,title:\"Radius\",min:0,max:100,step:1,unit:\"px\"},backgroundColor:{type:ControlType.Color,title:\"Background\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BunnyHLSVideo\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HLS_Video_component.map"],"mappings":"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"}