{"version":3,"file":"Image_Optimizer.DaBitbCM.mjs","names":["useRef","useState","useMemo","useCallback"],"sources":["https:/framerusercontent.com/modules/jRJmHf3DgvQ0yR11qakn/DgQlXlyoR02K68KyYzln/Image_Optimizer.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useCallback,useEffect,useMemo,useRef,useState}from\"react\";const FRAMER_CDN_URL=\"https://framerusercontent.com/images/\";function createImageUrl(src,scale){if(!src.startsWith(FRAMER_CDN_URL))return src;try{const url=new URL(src);url.searchParams.delete(\"width\");url.searchParams.delete(\"height\");url.searchParams.set(\"scale-down-to\",scale);return url.toString();}catch{return`${src.split(\"?\")[0]}?scale-down-to=${scale}`;}}function Spinner({size,color}){return /*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",\"aria-hidden\":\"true\",style:{display:\"block\",animation:\"optimizedImageSpin 0.8s linear infinite\"},children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"9\",fill:\"none\",stroke:color,strokeWidth:\"2\",opacity:\"0.2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M12 3a9 9 0 0 1 9 9\",fill:\"none\",stroke:color,strokeWidth:\"2\",strokeLinecap:\"round\"})]});}/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function SimpleImage(props){const{imageUrl,image,objectFit=\"cover\",scaleTarget=\"512\",loading=\"lazy\",spinnerDelay=150,placeholderColor=\"#F2F2F2\",spinnerColor=\"#999999\",spinnerSize=24,radius=\"0px\",alt=\"\",style}=props;const containerRef=useRef(null);const[loadedSrc,setLoadedSrc]=useState(\"\");const[failedSrc,setFailedSrc]=useState(\"\");const[isVisible,setIsVisible]=useState(false);const[showSpinner,setShowSpinner]=useState(false);const srcBase=imageUrl?.trim()||image?.src||\"\";const src=useMemo(()=>{if(!srcBase)return\"\";return createImageUrl(srcBase,scaleTarget);},[srcBase,scaleTarget]);const isLoaded=src!==\"\"&&loadedSrc===src;const hasFailed=src!==\"\"&&failedSrc===src;const markAsLoaded=useCallback(()=>{if(!src)return;setLoadedSrc(current=>current===src?current:src);setFailedSrc(current=>current===src?\"\":current);setShowSpinner(false);},[src]);const handleImageRef=useCallback(element=>{if(element?.complete&&element.naturalWidth>0){markAsLoaded();}},[markAsLoaded]);useEffect(()=>{const element=containerRef.current;if(!element)return;if(typeof IntersectionObserver===\"undefined\"){setIsVisible(true);return;}const observer=new IntersectionObserver(([entry])=>{setIsVisible(entry.isIntersecting);},{threshold:.01});observer.observe(element);return()=>observer.disconnect();},[]);useEffect(()=>{setShowSpinner(false);if(!src||!isVisible||isLoaded||hasFailed){return;}const timer=window.setTimeout(()=>{setShowSpinner(true);},spinnerDelay);return()=>window.clearTimeout(timer);},[src,isVisible,isLoaded,hasFailed,spinnerDelay]);const objectPosition=`${image?.positionX||\"center\"} ${image?.positionY||\"center\"}`;return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{...style,position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",borderRadius:radius,backgroundColor:placeholderColor},children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                @keyframes optimizedImageSpin {\n                    to {\n                        transform: rotate(360deg);\n                    }\n                }\n\n                @media (prefers-reduced-motion: reduce) {\n                    svg {\n                        animation-duration: 1.6s !important;\n                    }\n                }\n            `}),src&&!hasFailed&&/*#__PURE__*/_jsx(\"img\",{ref:handleImageRef,src:src,alt:alt,loading:loading,fetchPriority:loading===\"eager\"?\"high\":\"auto\",decoding:\"async\",draggable:false,onLoad:event=>{if(event.currentTarget.naturalWidth>0){markAsLoaded();}},onError:()=>{setFailedSrc(src);setShowSpinner(false);},style:{position:\"relative\",zIndex:1,width:\"100%\",height:\"100%\",display:\"block\",objectFit,objectPosition,userSelect:\"none\"}},src),showSpinner&&isVisible&&!isLoaded&&!hasFailed&&/*#__PURE__*/_jsx(\"div\",{role:\"status\",\"aria-label\":\"K\\xe9p bet\\xf6lt\\xe9se\",style:{position:\"absolute\",inset:0,zIndex:2,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",backgroundColor:placeholderColor,pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(Spinner,{size:spinnerSize,color:spinnerColor})})]});}addPropertyControls(SimpleImage,{imageUrl:{type:ControlType.String,title:\"Image URL\",defaultValue:\"\"},image:{type:ControlType.ResponsiveImage,title:\"Image\"},objectFit:{type:ControlType.Enum,title:\"Fit\",options:[\"cover\",\"contain\",\"scale-down\"],optionTitles:[\"Cover\",\"Contain\",\"Scale Down\"],defaultValue:\"cover\"},scaleTarget:{type:ControlType.Enum,title:\"Scale\",options:[\"256\",\"512\",\"1024\",\"2048\"],optionTitles:[\"256 px\",\"512 px\",\"1024 px\",\"2048 px\"],defaultValue:\"512\"},loading:{type:ControlType.Enum,title:\"Loading\",options:[\"lazy\",\"eager\"],optionTitles:[\"Lazy\",\"Eager\"],defaultValue:\"lazy\"},spinnerDelay:{type:ControlType.Number,title:\"Spinner Delay\",defaultValue:150,min:0,max:1e3,step:50,unit:\"ms\"},placeholderColor:{type:ControlType.Color,title:\"Placeholder\",defaultValue:\"#F2F2F2\"},spinnerColor:{type:ControlType.Color,title:\"Spinner\",defaultValue:\"#999999\"},spinnerSize:{type:ControlType.Number,title:\"Spinner Size\",defaultValue:24,min:12,max:64,step:1,unit:\"px\"},alt:{type:ControlType.String,title:\"Alt Text\",defaultValue:\"\"},radius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"0px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SimpleImage\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Image_Optimizer.map"],"mappings":"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"}