{"version":3,"file":"VideoDataLayerEvents.cf_CranR.mjs","names":["useRef","useCallback"],"sources":["https:/framerusercontent.com/modules/uSgAZEbiHrJPocrkyBkl/64vWprXWj5VFX22SjohY/VideoDataLayerEvents.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useCallback,useEffect,useRef}from\"react\";function pushDataLayerEvent(eventObject){if(typeof window===\"undefined\")return;if(!Array.isArray(window.dataLayer))return;window.dataLayer.push(eventObject);}function dispatchVimeoInteraction(action,source){if(typeof window===\"undefined\")return;window.dispatchEvent(new CustomEvent(\"elm:vimeo-interaction\",{detail:{action,source}}));}function composeHandlers(original,added){if(!original&&!added)return undefined;return(...args)=>{added?.(...args);original?.(...args);};}function assignRef(ref,value){if(!ref)return;if(typeof ref===\"function\"){ref(value);return;}if(typeof ref===\"object\"){ref.current=value;}}function getInteractionKey(event){if(!event||typeof event!==\"object\")return null;const source=event.nativeEvent&&typeof event.nativeEvent===\"object\"?event.nativeEvent:event;const timeStamp=typeof source.timeStamp===\"number\"?Math.round(source.timeStamp):null;const pointerId=typeof source.pointerId===\"number\"?source.pointerId:\"na\";const clientX=typeof source.clientX===\"number\"?Math.round(source.clientX):\"na\";const clientY=typeof source.clientY===\"number\"?Math.round(source.clientY):\"na\";if(timeStamp===null)return null;return`${timeStamp}:${pointerId}:${clientX}:${clientY}`;}function shouldTrackInteractionOnce(state,event,nowMs){const key=getInteractionKey(event)??\"__fallback__\";const withinWindow=nowMs-state.lastAt<700;if(withinWindow&&state.lastKey===key)return false;if(key===\"__fallback__\"&&withinWindow)return false;state.lastKey=key;state.lastAt=nowMs;return true;}function resolveInteractionSource(event){if(!event||typeof event!==\"object\")return null;const source=event.currentTarget??event.target??null;return source instanceof HTMLElement?source:null;}function clampPercent(value){if(!Number.isFinite(value))return 0;if(value<0)return 0;if(value>100)return 100;return value;}function getPagePath(){if(typeof window===\"undefined\")return\"\";const{pathname,search,hash}=window.location;return`${pathname}${search}${hash}`;}function extractVimeoIdFromUrl(url){if(!url)return\"\";const matches=url.match(/(?:video\\/|vimeo\\.com\\/)(\\d+)/i);return matches?.[1]??\"\";}function parseMessageData(data){if(!data)return null;if(typeof data===\"string\"){try{const parsed=JSON.parse(data);if(parsed&&typeof parsed===\"object\")return parsed;return null;}catch(_error){return null;}}if(typeof data===\"object\"){return data;}return null;}function getPercentFromVimeoPayload(payload){const data=payload.data&&typeof payload.data===\"object\"?payload.data:null;const directPercent=typeof payload.percent===\"number\"?payload.percent:null;const nestedPercent=data&&typeof data.percent===\"number\"?data.percent:null;if(nestedPercent!==null)return clampPercent(nestedPercent*100);if(directPercent!==null)return clampPercent(directPercent*100);const seconds=data&&typeof data.seconds===\"number\"?data.seconds:null;const duration=data&&typeof data.duration===\"number\"?data.duration:null;if(seconds!==null&&duration&&duration>0){return clampPercent(seconds/duration*100);}return null;}function isVimeoIframe(iframe){if(!iframe)return false;const src=iframe.getAttribute(\"src\")??\"\";return/vimeo\\.com/i.test(src);}function findNearbyVimeoIframeFromSource(source){if(!source||typeof document===\"undefined\")return null;let current=source;while(current){const iframe=current.querySelector(\"iframe\");if(iframe instanceof HTMLIFrameElement&&isVimeoIframe(iframe))return iframe;current=current.parentElement;}return null;}function listAllVimeoIframes(){if(typeof document===\"undefined\")return[];const iframes=Array.from(document.querySelectorAll(\"iframe\"));return iframes.filter(node=>{return node instanceof HTMLIFrameElement&&isVimeoIframe(node);});}export function VideoPlayDataLayerEvent(Component){return /*#__PURE__*/forwardRef(function VideoPlayDataLayerEventOverride(props,ref){const dedupRef=useRef({lastKey:\"\",lastAt:0});const elementRef=useRef(null);const mergedRef=useCallback(node=>{elementRef.current=node instanceof HTMLElement?node:null;assignRef(ref,node);},[ref]);const trackPlayClick=useCallback(event=>{const nowMs=Date.now();if(!shouldTrackInteractionOnce(dedupRef.current,event,nowMs))return;const source=resolveInteractionSource(event)??elementRef.current;dispatchVimeoInteraction(\"play\",source);},[]);const onClick=composeHandlers(props.onClick,event=>{trackPlayClick(event);});const onTap=composeHandlers(props.onTap,event=>{trackPlayClick(event);});return /*#__PURE__*/_jsx(Component,{ref:mergedRef,...props,onClick:onClick,onTap:onTap});});}export function VideoUnmuteDataLayerEvent(Component){return /*#__PURE__*/forwardRef(function VideoUnmuteDataLayerEventOverride(props,ref){const dedupRef=useRef({lastKey:\"\",lastAt:0});const elementRef=useRef(null);const mergedRef=useCallback(node=>{elementRef.current=node instanceof HTMLElement?node:null;assignRef(ref,node);},[ref]);const trackUnmuteClick=useCallback(event=>{const nowMs=Date.now();if(!shouldTrackInteractionOnce(dedupRef.current,event,nowMs))return;const source=resolveInteractionSource(event)??elementRef.current;dispatchVimeoInteraction(\"sound_play\",source);},[]);const onClick=composeHandlers(props.onClick,event=>{trackUnmuteClick(event);});const onTap=composeHandlers(props.onTap,event=>{trackUnmuteClick(event);});return /*#__PURE__*/_jsx(Component,{ref:mergedRef,...props,onClick:onClick,onTap:onTap});});}export function VimeoEngagementDataLayerEvent(Component){return /*#__PURE__*/forwardRef(function VimeoEngagementDataLayerEventOverride(props,ref){const statesRef=useRef(new Map);const pendingIntentRef=useRef({armed:false,hasPlayEvent:false,hasSoundPlayEvent:false});const emitVideoEvent=useCallback((state,videoAction,percent)=>{pushDataLayerEvent({event:\"video_interaction\",video_action:videoAction,video_percent:clampPercent(percent),video_provider:\"vimeo\",video_id:state.videoId,video_title:state.videoTitle,page_path:getPagePath()});},[]);const emitFallbackInteractionEvent=useCallback(videoAction=>{pushDataLayerEvent({event:\"video_interaction\",video_action:videoAction,video_percent:0,video_provider:\"vimeo\",video_id:\"\",video_title:\"\",page_path:getPagePath()});},[]);const applyPendingIntentToState=useCallback(state=>{const pending=pendingIntentRef.current;if(!pending.armed&&!pending.hasPlayEvent&&!pending.hasSoundPlayEvent)return;state.armed=state.armed||pending.armed;state.hasPlayEvent=state.hasPlayEvent||pending.hasPlayEvent;state.hasSoundPlayEvent=state.hasSoundPlayEvent||pending.hasSoundPlayEvent;pendingIntentRef.current={armed:false,hasPlayEvent:false,hasSoundPlayEvent:false};},[]);const requestTitle=useCallback(async state=>{if(state.titleRequested)return;const src=state.iframe.getAttribute(\"src\")??\"\";if(!src)return;state.titleRequested=true;try{const endpoint=`https://vimeo.com/api/oembed.json?url=${encodeURIComponent(src)}`;const response=await fetch(endpoint,{method:\"GET\"});if(!response.ok){state.videoTitle=\"\";return;}const data=await response.json();state.videoTitle=typeof data?.title===\"string\"?data.title:\"\";if(!state.videoId&&typeof data?.video_id===\"number\"){state.videoId=String(data.video_id);}}catch(_error){state.videoTitle=\"\";}},[]);const ensureStateForIframe=useCallback(iframe=>{const existing=statesRef.current.get(iframe);if(existing)return existing;const src=iframe.getAttribute(\"src\")??\"\";const created={iframe,contentWindow:iframe.contentWindow,videoId:extractVimeoIdFromUrl(src),videoTitle:\"\",lastPercent:0,armed:false,hasPlayEvent:false,hasSoundPlayEvent:false,thresholdsSent:new Set,titleRequested:false};statesRef.current.set(iframe,created);applyPendingIntentToState(created);void requestTitle(created);return created;},[applyPendingIntentToState,requestTitle]);const syncKnownIframes=useCallback(()=>{const activeIframes=listAllVimeoIframes();const activeSet=new Set(activeIframes);for(const iframe of activeIframes){const state=ensureStateForIframe(iframe);state.contentWindow=iframe.contentWindow;}for(const[iframe]of statesRef.current){if(!activeSet.has(iframe)){statesRef.current.delete(iframe);}}},[ensureStateForIframe]);const subscribeToVimeoEvents=useCallback(()=>{for(const state of statesRef.current.values()){const targetWindow=state.iframe.contentWindow;if(!targetWindow)continue;state.contentWindow=targetWindow;const methods=[\"timeupdate\",\"playProgress\",\"ended\"];for(const method of methods){targetWindow.postMessage(JSON.stringify({method:\"addEventListener\",value:method}),\"*\");}}},[]);const maybeEmitProgress=useCallback((state,percent)=>{if(!state.armed)return;const normalized=clampPercent(percent);state.lastPercent=normalized;const thresholds=[25,50,75,100];for(const threshold of thresholds){if(normalized<threshold)continue;if(state.thresholdsSent.has(threshold))continue;state.thresholdsSent.add(threshold);if(threshold===100){emitVideoEvent(state,\"complete\",100);}else{emitVideoEvent(state,\"progress\",threshold);}}},[emitVideoEvent]);useEffect(()=>{if(typeof window===\"undefined\"||typeof document===\"undefined\")return;subscribeToVimeoEvents();syncKnownIframes();subscribeToVimeoEvents();const handleDocumentLoad=()=>{syncKnownIframes();subscribeToVimeoEvents();};document.addEventListener(\"load\",handleDocumentLoad,true);const observer=new MutationObserver(()=>{syncKnownIframes();subscribeToVimeoEvents();});observer.observe(document.body,{childList:true,subtree:true,attributes:true,attributeFilter:[\"src\"]});const handleVimeoMessage=messageEvent=>{if(typeof messageEvent.origin!==\"string\")return;try{const host=new URL(messageEvent.origin).hostname;if(!/vimeo\\.com$/i.test(host))return;}catch(_error){return;}const matchingState=Array.from(statesRef.current.values()).find(state=>{return Boolean(state.contentWindow&&messageEvent.source===state.contentWindow);});if(!matchingState)return;const payload=parseMessageData(messageEvent.data);if(!payload)return;const eventName=typeof payload.event===\"string\"?payload.event:\"\";if(eventName===\"ended\"){maybeEmitProgress(matchingState,100);return;}if(eventName!==\"timeupdate\"&&eventName!==\"playProgress\")return;const percent=getPercentFromVimeoPayload(payload);if(percent===null)return;maybeEmitProgress(matchingState,percent);};const handleElmInteraction=event=>{const customEvent=event;const action=customEvent.detail?.action;const source=customEvent.detail?.source??null;let iframe=findNearbyVimeoIframeFromSource(source);if(!iframe){const knownIframes=Array.from(statesRef.current.keys()).filter(node=>{return isVimeoIframe(node);});const currentIframes=listAllVimeoIframes();const uniqueIframes=new Set([...knownIframes,...currentIframes]);if(uniqueIframes.size===1){iframe=Array.from(uniqueIframes)[0]??null;}}if(!iframe){const pending=pendingIntentRef.current;if(action===\"play\"){pending.armed=true;if(pending.hasPlayEvent)return;pending.hasPlayEvent=true;emitFallbackInteractionEvent(\"play\");return;}if(action===\"sound_play\"){pending.armed=true;if(pending.hasSoundPlayEvent)return;pending.hasSoundPlayEvent=true;emitFallbackInteractionEvent(\"sound_play\");}return;}const state=ensureStateForIframe(iframe);if(action===\"play\"){if(!state.hasPlayEvent){state.hasPlayEvent=true;state.armed=true;emitVideoEvent(state,\"play\",0);}else{state.armed=true;}return;}if(action===\"sound_play\"){if(!state.armed){state.armed=true;if(!state.hasSoundPlayEvent){state.hasSoundPlayEvent=true;emitVideoEvent(state,\"sound_play\",0);}return;}if(state.hasSoundPlayEvent)return;state.hasSoundPlayEvent=true;emitVideoEvent(state,\"sound_play\",state.lastPercent);}};window.addEventListener(\"message\",handleVimeoMessage);window.addEventListener(\"elm:vimeo-interaction\",handleElmInteraction);return()=>{window.removeEventListener(\"message\",handleVimeoMessage);window.removeEventListener(\"elm:vimeo-interaction\",handleElmInteraction);observer.disconnect();document.removeEventListener(\"load\",handleDocumentLoad,true);statesRef.current.clear();pendingIntentRef.current={armed:false,hasPlayEvent:false,hasSoundPlayEvent:false};};},[emitVideoEvent,ensureStateForIframe,maybeEmitProgress,subscribeToVimeoEvents,syncKnownIframes]);return /*#__PURE__*/_jsx(Component,{ref:ref,...props});});}\nexport const __FramerMetadata__ = {\"exports\":{\"VideoUnmuteDataLayerEvent\":{\"type\":\"reactHoc\",\"name\":\"VideoUnmuteDataLayerEvent\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"VimeoEngagementDataLayerEvent\":{\"type\":\"reactHoc\",\"name\":\"VimeoEngagementDataLayerEvent\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"VideoPlayDataLayerEvent\":{\"type\":\"reactHoc\",\"name\":\"VideoPlayDataLayerEvent\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./VideoDataLayerEvents.map"],"mappings":"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"}