{"version":3,"file":"Youtube_embed.TgUqoO2M.mjs","names":["React.useState","React.useId","p","React.useMemo"],"sources":["https:/framerusercontent.com/modules/gnbCSNTRafB2aLFG8az8/j00tymnS6QiT7uwTMzBM/Youtube_embed.js"],"sourcesContent":["// YouTubeEmbed.tsx — Framer Code Component (GTM-friendly, no duplicate events)\n// - Adds enablejsapi=1 & origin automatically (GTM YouTube Trigger requirement)\n// - Pushes a single \"youtube_embed_view\" to dataLayer on mount/url change\n// - Lets GTM's built-in YouTube trigger handle start/pause/progress/complete\n// - Supports youtube.com, youtu.be, /embed/, and /shorts/ URLs + raw video ID\nimport{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";const DEFAULT_COMPONENT_ID=\"komunite-youtube-embed\";export default function YouTubeEmbed(props){const{videoUrl,autoplay,muted,controls,startTime,endTime,privacyMode,trackView,showSkeleton,borderRadius,componentId}=props;const[isLoaded,setIsLoaded]=React.useState(false);const instanceId=React.useId();// ---------- Utils ----------\nfunction pushWhenGtmReady(obj){try{window.dataLayer=window.dataLayer||[];const send=()=>window.dataLayer.push(obj);if(window.google_tag_manager)return send();let tries=0;const timer=setInterval(()=>{tries++;if(window.google_tag_manager||tries>40){clearInterval(timer);send();}},100);}catch{/* no-op */}}function extractVideoId(url){if(!url)return null;// Raw ID (11 chars, no separators)\nif(url.length===11&&!/[\\/\\?\\&]/.test(url))return url;const patterns=[/(?:youtube\\.com\\/watch\\?v=|youtu\\.be\\/|youtube\\.com\\/embed\\/)([^&\\n?#]+)/i,/youtube\\.com\\/watch\\?.*v=([^&\\n?#]+)/i,/youtube\\.com\\/shorts\\/([^&\\n?#/]+)/i];for(const p of patterns){const m=url.match(p);if(m)return m[1];}return null;}function buildEmbedUrl(){const id=extractVideoId(videoUrl);if(!id)return\"\";const base=privacyMode?\"https://www.youtube-nocookie.com/embed/\":\"https://www.youtube.com/embed/\";const params=new URLSearchParams;// Required for GTM's YouTube trigger\nparams.set(\"enablejsapi\",\"1\");// Origin parameter - güçlendirilmiş detection\nlet origin=\"\";try{origin=window?.location?.origin||(typeof location!==\"undefined\"?location.origin:\"\")||\"https://komunite.com.tr\"// fallback\n;}catch{origin=\"https://komunite.com.tr\"// hard-coded fallback\n;}if(origin){params.set(\"origin\",origin);// Debug log (geçici - GTM kontrol için)\nconsole.log(\"YouTube Embed Origin:\",origin);}// Autoplay → always mute to satisfy browser policies\nif(autoplay){params.set(\"autoplay\",\"1\");params.set(\"mute\",\"1\");}else if(muted){params.set(\"mute\",\"1\");}if(!controls)params.set(\"controls\",\"0\");if(Number.isFinite(startTime)&&startTime>0){params.set(\"start\",String(Math.floor(startTime)));}if(Number.isFinite(endTime)&&endTime>0){params.set(\"end\",String(Math.floor(endTime)));}// Best practices\nparams.set(\"playsinline\",\"1\");params.set(\"rel\",\"0\");params.set(\"modestbranding\",\"1\");const qs=params.toString();return`${base}${id}${qs?`?${qs}`:\"\"}`;}const embedUrl=React.useMemo(buildEmbedUrl,[videoUrl,autoplay,muted,controls,startTime,endTime,privacyMode]);// Push a single \"view\" event; let GTM handle play/pause/etc.\nReact.useEffect(()=>{if(!trackView)return;const id=extractVideoId(videoUrl);if(!id)return;pushWhenGtmReady({event:\"youtube_embed_view\",component_id:componentId||DEFAULT_COMPONENT_ID,instance_id:instanceId,video_id:id,page_path:window.location.pathname,page_title:typeof document!==\"undefined\"?document.title||\"\":\"\"});// only when URL changes\n// eslint-disable-next-line react-hooks/exhaustive-deps\n},[videoUrl]);// ---------- Render ----------\nif(!embedUrl){return /*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",height:200,backgroundColor:\"#f5f5f5\",borderRadius,color:\"#666\",fontFamily:\"Inter, system-ui, -apple-system, Segoe UI, Roboto\",fontSize:14},children:\"Ge\\xe7erli bir YouTube URL’i ya da Video ID girin\"});}return /*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:\"100%\",height:0,paddingBottom:\"56.25%\",overflow:\"hidden\",borderRadius,background:showSkeleton&&!isLoaded?\"#f5f5f5\":\"transparent\"},children:/*#__PURE__*/_jsx(\"iframe\",{src:embedUrl,title:\"YouTube video\",loading:\"lazy\",allow:\"autoplay; encrypted-media; accelerometer; gyroscope; picture-in-picture; web-share\",allowFullScreen:true,// Optional: uncomment if needed for stricter referrer behavior\n// referrerPolicy=\"strict-origin-when-cross-origin\"\nstyle:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",border:0,opacity:showSkeleton?isLoaded?1:.001:1,transition:\"opacity 200ms ease\"},onLoad:()=>setIsLoaded(true)},embedUrl)});}// ---------- Framer Property Controls ----------\naddPropertyControls(YouTubeEmbed,{videoUrl:{title:\"YouTube URL / ID\",type:ControlType.Link,defaultValue:\"https://youtu.be/2KEQaKEbFIA?si=r6WBVxCFC8CR9_Od\",placeholder:\"https://www.youtube.com/watch?v=dQw4w9WgXcQ • youtu.be/... • shorts/... • or raw ID\"},autoplay:{title:\"Autoplay\",type:ControlType.Boolean,defaultValue:false},muted:{title:\"Muted\",type:ControlType.Boolean,defaultValue:false,hidden:p=>!!p.autoplay},controls:{title:\"Show Controls\",type:ControlType.Boolean,defaultValue:true},startTime:{title:\"Start (s)\",type:ControlType.Number,defaultValue:0,min:0,displayStepper:true},endTime:{title:\"End (s)\",type:ControlType.Number,defaultValue:0,min:0,displayStepper:true},privacyMode:{title:\"Privacy (nocookie)\",type:ControlType.Boolean,defaultValue:true},trackView:{title:\"Track Embed View\",type:ControlType.Boolean,defaultValue:true},showSkeleton:{title:\"Show Skeleton\",type:ControlType.Boolean,defaultValue:true},borderRadius:{title:\"Radius\",type:ControlType.Number,defaultValue:8,min:0,max:48,unit:\"px\",displayStepper:true},componentId:{title:\"Component ID\",type:ControlType.String,defaultValue:DEFAULT_COMPONENT_ID,placeholder:DEFAULT_COMPONENT_ID}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"YouTubeEmbed\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Youtube_embed.map"],"mappings":"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"}