{"version":3,"file":"VideoWidget.D7vtGMjL.mjs","names":["React.useRef"],"sources":["https:/framerusercontent.com/modules/UZrQF75sHqDXnpAHNbNj/q2OEMyi5TtdbEYsukEgS/VideoWidget.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";const VIDEOJS_VERSION=\"10.0.0-beta.24\";const VIDEOJS_VIDEO_SCRIPT_ID=\"video-js-v10-video-preset\";const VIDEOJS_LIVE_VIDEO_SCRIPT_ID=\"video-js-v10-live-video-preset\";const VIDEOJS_BACKGROUND_SCRIPT_ID=\"video-js-v10-background-preset\";const VIDEOJS_VIDEO_JS=`https://cdn.jsdelivr.net/npm/@videojs/html@${VIDEOJS_VERSION}/cdn/video.js`;const VIDEOJS_LIVE_VIDEO_JS=`https://cdn.jsdelivr.net/npm/@videojs/html@${VIDEOJS_VERSION}/cdn/live-video.js`;const VIDEOJS_BACKGROUND_JS=`https://cdn.jsdelivr.net/npm/@videojs/html@${VIDEOJS_VERSION}/cdn/background.js`;const DEFAULT_MP4=\"https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM/highest.mp4\";function loadModuleOnce(id,src,key){if(typeof window===\"undefined\"){return Promise.reject(new Error(\"Video.js can only load in a browser.\"));}const existingPromise=window[key];if(existingPromise)return existingPromise;const promise=new Promise((resolve,reject)=>{const existingScript=document.getElementById(id);const resolveWhenReady=()=>resolve();if(existingScript){if(existingScript.dataset.loaded===\"true\"){resolve();return;}existingScript.addEventListener(\"load\",resolveWhenReady,{once:true});existingScript.addEventListener(\"error\",()=>reject(new Error(`Failed to load Video.js from ${src}`)),{once:true});return;}const script=document.createElement(\"script\");script.id=id;script.type=\"module\";script.src=src;script.async=true;script.onload=()=>{script.dataset.loaded=\"true\";resolve();};script.onerror=()=>{reject(new Error(`Failed to load Video.js from ${src}`));};document.head.appendChild(script);});window[key]=promise;return promise;}function getPreset(props){if(!props.controls){return{loaderKey:\"__videoJsV10BackgroundLoader\",scriptId:VIDEOJS_BACKGROUND_SCRIPT_ID,scriptSrc:VIDEOJS_BACKGROUND_JS,playerTag:\"background-video-player\",skinTag:\"background-video-skin\"};}if(props.sourceType===\"hlsLive\"){return{loaderKey:\"__videoJsV10LiveVideoLoader\",scriptId:VIDEOJS_LIVE_VIDEO_SCRIPT_ID,scriptSrc:VIDEOJS_LIVE_VIDEO_JS,playerTag:\"live-video-player\",skinTag:\"live-video-skin\"};}return{loaderKey:\"__videoJsV10VideoLoader\",scriptId:VIDEOJS_VIDEO_SCRIPT_ID,scriptSrc:VIDEOJS_VIDEO_JS,playerTag:\"video-player\",skinTag:\"video-skin\"};}function loadVideoPreset(preset){return loadModuleOnce(preset.scriptId,preset.scriptSrc,preset.loaderKey);}function inferMimeType(src,sourceType){if(sourceType===\"mp4\")return\"video/mp4\";if(sourceType===\"hls\"||sourceType===\"hlsLive\"){return\"application/x-mpegURL\";}const normalizedSrc=src.split(\"?\")[0]?.toLowerCase()??\"\";if(normalizedSrc.endsWith(\".m3u8\"))return\"application/x-mpegURL\";if(normalizedSrc.endsWith(\".mp4\"))return\"video/mp4\";if(normalizedSrc.endsWith(\".webm\"))return\"video/webm\";if(normalizedSrc.endsWith(\".ogg\")||normalizedSrc.endsWith(\".ogv\")){return\"video/ogg\";}return undefined;}function applyMediaProps(video,props){const sourceType=inferMimeType(props.src,props.sourceType);video.src=props.src;if(sourceType)video.setAttribute(\"type\",sourceType);else video.removeAttribute(\"type\");video.poster=props.poster;video.autoplay=props.autoplay;video.muted=props.muted;video.loop=props.loop;video.preload=props.preload;video.playsInline=props.playsInline;video.toggleAttribute(\"autoplay\",props.autoplay);video.toggleAttribute(\"muted\",props.muted);video.toggleAttribute(\"loop\",props.loop);video.toggleAttribute(\"playsinline\",props.playsInline);video.style.width=\"100%\";video.style.height=\"100%\";video.style.objectFit=props.fit;video.style.display=\"block\";}function isCanvas(){return RenderTarget.current()===RenderTarget.canvas;}export default function VideoJS(props){const{src=DEFAULT_MP4,sourceType=\"auto\",poster=\"\",controls=true,autoplay=false,muted=false,loop=false,playsInline=true,preload=\"metadata\",aspectRatio=\"16:9\",fit=\"contain\",backgroundColor=\"#000000\",borderRadius=0}=props;const preset=getPreset({controls,sourceType});const hostRef=React.useRef(null);const videoRef=React.useRef(null);const latestPropsRef=React.useRef({src,sourceType,poster,controls,autoplay,muted,loop,playsInline,preload,aspectRatio,fit,backgroundColor,borderRadius});latestPropsRef.current={src,sourceType,poster,controls,autoplay,muted,loop,playsInline,preload,aspectRatio,fit,backgroundColor,borderRadius};React.useEffect(()=>{const host=hostRef.current;if(!host)return;let cancelled=false;host.textContent=\"\";videoRef.current=null;loadVideoPreset(preset).then(()=>{if(cancelled)return;const current=latestPropsRef.current;const nextPreset=getPreset(current);const player=document.createElement(nextPreset.playerTag);const skin=document.createElement(nextPreset.skinTag);const video=document.createElement(\"video\");player.style.display=\"block\";player.style.width=\"100%\";player.style.height=\"100%\";skin.style.display=\"block\";skin.style.width=\"100%\";skin.style.height=\"100%\";skin.style.setProperty(\"--media-object-fit\",current.fit);skin.style.setProperty(\"--media-border-radius\",`${current.borderRadius}px`);video.slot=\"media\";applyMediaProps(video,current);if(current.poster){const posterImage=document.createElement(\"img\");posterImage.slot=\"poster\";posterImage.src=current.poster;posterImage.alt=\"\";posterImage.style.width=\"100%\";posterImage.style.height=\"100%\";posterImage.style.objectFit=current.fit;skin.appendChild(posterImage);}skin.appendChild(video);player.appendChild(skin);host.appendChild(player);videoRef.current=video;}).catch(error=>{console.error(error);});return()=>{cancelled=true;videoRef.current?.pause();videoRef.current?.removeAttribute(\"src\");videoRef.current?.load();videoRef.current=null;host.textContent=\"\";};},[preset.loaderKey]);React.useEffect(()=>{const video=videoRef.current;const host=hostRef.current;if(!video||!host)return;applyMediaProps(video,{src,sourceType,poster,controls,autoplay,muted,loop,playsInline,preload,aspectRatio,fit,backgroundColor,borderRadius});const skin=video.parentElement;skin?.style.setProperty(\"--media-object-fit\",fit);skin?.style.setProperty(\"--media-border-radius\",`${borderRadius}px`);const posterImage=skin?.querySelector('img[slot=\"poster\"]');if(posterImage&&poster){posterImage.src=poster;posterImage.style.objectFit=fit;}else if(skin&&poster&&!posterImage){const nextPosterImage=document.createElement(\"img\");nextPosterImage.slot=\"poster\";nextPosterImage.src=poster;nextPosterImage.alt=\"\";nextPosterImage.style.width=\"100%\";nextPosterImage.style.height=\"100%\";nextPosterImage.style.objectFit=fit;skin.insertBefore(nextPosterImage,video);}else if(posterImage&&!poster){posterImage.remove();}},[src,sourceType,poster,autoplay,muted,loop,playsInline,preload,aspectRatio,fit,backgroundColor,borderRadius,controls]);return /*#__PURE__*/_jsx(\"div\",{ref:hostRef,style:{width:\"100%\",height:\"100%\",minHeight:isCanvas()?180:undefined,aspectRatio,overflow:\"hidden\",backgroundColor,borderRadius}});}addPropertyControls(VideoJS,{src:{type:ControlType.String,title:\"Source\",defaultValue:DEFAULT_MP4,placeholder:\"https://.../video.mp4 or stream.m3u8\"},sourceType:{type:ControlType.Enum,title:\"Type\",options:[\"auto\",\"mp4\",\"hls\",\"hlsLive\"],optionTitles:[\"Auto\",\"MP4\",\"HLS VOD\",\"HLS Live\"],defaultValue:\"auto\"},poster:{type:ControlType.Image,title:\"Poster\"},controls:{type:ControlType.Boolean,title:\"Controls\",defaultValue:true},autoplay:{type:ControlType.Boolean,title:\"Autoplay\",defaultValue:false},muted:{type:ControlType.Boolean,title:\"Muted\",defaultValue:false},loop:{type:ControlType.Boolean,title:\"Loop\",defaultValue:false},playsInline:{type:ControlType.Boolean,title:\"Inline\",defaultValue:true},preload:{type:ControlType.Enum,title:\"Preload\",options:[\"auto\",\"metadata\",\"none\"],optionTitles:[\"Auto\",\"Metadata\",\"None\"],defaultValue:\"metadata\"},aspectRatio:{type:ControlType.String,title:\"Ratio\",defaultValue:\"16:9\",placeholder:\"16:9\"},fit:{type:ControlType.Enum,title:\"Fit\",options:[\"contain\",\"cover\",\"fill\"],optionTitles:[\"Contain\",\"Cover\",\"Fill\"],defaultValue:\"contain\"},backgroundColor:{type:ControlType.Color,title:\"Bg\",defaultValue:\"#000000\"},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:0,min:0,max:64,step:1,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"VideoJS\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./VideoWidget.map"],"mappings":"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"}