{"version":3,"file":"TickerComponent.Bj91dGQD.mjs","names":["useState","__esmMin","init_npm_react_18_3_1","init_jsx_runtime","c","p","_e","addPropertyControls","init_framer_DymZktPS","ControlType","PartnerTicker","props","isPaused","setIsPaused","rawCopies","items","minCopies","duplicatedItems","i","uid","speed","itemWidth","itemHeight","gap","animName","direction","backgroundColor","fadeWidth","pauseOnHover","hasLink","item","Tag","imgValue","imgSrc","imgSrcSet","openInNewTab","hoverScale","index","init_TickerComponent"],"sources":["https:/framerusercontent.com/modules/ZPWt35nj2nxCAQekSK4N/gbtPXZWZwNwHYk0lPovY/TickerComponent.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState}from\"react\";/**\n * PARTNER TICKER\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicHeight 80\n * @framerIntrinsicWidth 800\n */export default function PartnerTicker(props){const{items,speed,direction,itemHeight,itemWidth,gap,fadeWidth,backgroundColor,hoverScale,pauseOnHover,borderRadius,openInNewTab,objectFit}=props;const[isPaused,setIsPaused]=useState(false);// Items mindestens einmal duplizieren für nahtlosen Loop.\n// Bei sehr wenigen Items mehrfach duplizieren, damit der Track\n// immer breiter ist als der Container.\nconst rawCopies=items&&items.length>0?Math.max(2,Math.ceil(8/items.length)):2;// Damit translateX(-50%) pixelgenau auf einer Item-Grenze landet,\n// muss die Gesamt-Anzahl der Items im Track gerade sein.\n// Sonst springt es beim Loop-Reset um einen halben Item-Versatz.\nconst totalItems=rawCopies*(items?.length||0);const minCopies=totalItems%2===0?rawCopies:rawCopies+1;const duplicatedItems=[];for(let i=0;i<minCopies;i++){duplicatedItems.push(...items||[]);}// Eindeutige Animations-Namen, damit mehrere Ticker auf einer Seite\n// sich nicht in die Quere kommen.\nconst uid=\"ticker_\"+Math.abs(speed+itemWidth+itemHeight+gap+(items?.length||0)|0);const animName=direction===\"left\"?`${uid}_left`:`${uid}_right`;// Empty-State im Canvas\nif(!items||items.length===0){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:itemHeight,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:\"#999\",fontFamily:\"Inter, sans-serif\",fontSize:13,border:\"1px dashed #ddd\",borderRadius:8,background:\"transparent\"},children:\"F\\xfcge Partner im Properties-Panel hinzu\"});}return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",height:itemHeight,overflow:\"hidden\",background:backgroundColor,// Fade-Maske an beiden Seiten\nWebkitMaskImage:`linear-gradient(to right, transparent 0, black ${fadeWidth}px, black calc(100% - ${fadeWidth}px), transparent 100%)`,maskImage:`linear-gradient(to right, transparent 0, black ${fadeWidth}px, black calc(100% - ${fadeWidth}px), transparent 100%)`},onMouseEnter:()=>{if(pauseOnHover)setIsPaused(true);},onMouseLeave:()=>{if(pauseOnHover)setIsPaused(false);},children:[/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",width:\"max-content\",height:\"100%\",willChange:\"transform\",animation:`${animName} ${speed}s linear infinite`,animationPlayState:isPaused?\"paused\":\"running\"},children:duplicatedItems.map((item,index)=>{const hasLink=item&&item.link&&item.link.length>0;const Tag=hasLink?\"a\":\"div\";// ResponsiveImage von Framer ist ein Objekt { src, srcSet },\n// kann aber theoretisch auch ein String sein.\nconst imgValue=item&&item.image;const imgSrc=typeof imgValue===\"string\"?imgValue:imgValue&&imgValue.src;const imgSrcSet=imgValue&&typeof imgValue===\"object\"?imgValue.srcSet:undefined;return /*#__PURE__*/_jsx(Tag,{href:hasLink?item.link:undefined,target:hasLink&&openInNewTab?\"_blank\":undefined,rel:hasLink&&openInNewTab?\"noopener noreferrer\":undefined,style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexShrink:0,width:itemWidth,height:itemHeight,// Statt flex gap nutzen wir marginRight an JEDEM\n// Item. So ist die Track-Breite N*(w+gap) und\n// -50% trifft pixelgenau die Kopie -> nahtlos.\nmarginRight:gap,borderRadius:borderRadius,overflow:\"hidden\",cursor:hasLink?\"pointer\":\"default\",textDecoration:\"none\",transition:\"transform 0.3s ease\",transformOrigin:\"center center\"},onMouseEnter:e=>{e.currentTarget.style.transform=`scale(${hoverScale})`;},onMouseLeave:e=>{e.currentTarget.style.transform=\"scale(1)\";},children:imgSrc?/*#__PURE__*/_jsx(\"img\",{src:imgSrc,srcSet:imgSrcSet,alt:item.alt||`Partner ${index+1}`,draggable:false,style:{width:\"100%\",height:\"100%\",objectFit:objectFit,userSelect:\"none\",pointerEvents:\"none\"}}):/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",background:\"repeating-linear-gradient(45deg, #eee, #eee 6px, #f7f7f7 6px, #f7f7f7 12px)\"}})},index);})}),/*#__PURE__*/_jsx(\"style\",{children:`\n                @keyframes ${uid}_left {\n                    from { transform: translate3d(0, 0, 0); }\n                    to   { transform: translate3d(-50%, 0, 0); }\n                }\n                @keyframes ${uid}_right {\n                    from { transform: translate3d(-50%, 0, 0); }\n                    to   { transform: translate3d(0, 0, 0); }\n                }\n            `})]});}PartnerTicker.defaultProps={speed:30,direction:\"left\",itemHeight:80,itemWidth:160,gap:40,fadeWidth:80,backgroundColor:\"rgba(0,0,0,0)\",hoverScale:1.1,pauseOnHover:true,borderRadius:0,openInNewTab:true,objectFit:\"contain\"};addPropertyControls(PartnerTicker,{items:{type:ControlType.Array,title:\"Partner\",control:{type:ControlType.Object,controls:{image:{type:ControlType.ResponsiveImage,title:\"Bild\"},link:{type:ControlType.Link,title:\"Link\"},alt:{type:ControlType.String,title:\"Alt-Text\",defaultValue:\"\",placeholder:\"Partner-Name\"}}},defaultValue:[{image:\"\",link:\"\",alt:\"\"},{image:\"\",link:\"\",alt:\"\"},{image:\"\",link:\"\",alt:\"\"},{image:\"\",link:\"\",alt:\"\"},{image:\"\",link:\"\",alt:\"\"},{image:\"\",link:\"\",alt:\"\"}]},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:30,min:5,max:200,step:1,unit:\"s\",description:\"Dauer eines Durchlaufs (h\\xf6her = langsamer)\"},direction:{type:ControlType.Enum,title:\"Richtung\",options:[\"left\",\"right\"],optionTitles:[\"← Links\",\"Rechts →\"],defaultValue:\"left\",displaySegmentedControl:true},pauseOnHover:{type:ControlType.Boolean,title:\"Hover-Pause\",defaultValue:true,enabledTitle:\"An\",disabledTitle:\"Aus\"},itemWidth:{type:ControlType.Number,title:\"Item-Breite\",defaultValue:160,min:20,max:600,step:1,unit:\"px\"},itemHeight:{type:ControlType.Number,title:\"Item-H\\xf6he\",defaultValue:80,min:20,max:400,step:1,unit:\"px\"},gap:{type:ControlType.Number,title:\"Abstand\",defaultValue:40,min:0,max:300,step:1,unit:\"px\"},objectFit:{type:ControlType.Enum,title:\"Bild-Fit\",options:[\"contain\",\"cover\",\"fill\",\"scale-down\",\"none\"],optionTitles:[\"Contain\",\"Cover\",\"Fill\",\"Scale Down\",\"None\"],defaultValue:\"contain\"},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:0,min:0,max:200,step:1,unit:\"px\"},hoverScale:{type:ControlType.Number,title:\"Hover-Scale\",defaultValue:1.1,min:1,max:2,step:.05,description:\"Vergr\\xf6\\xdferung beim Hover \\xfcber ein Element\"},fadeWidth:{type:ControlType.Number,title:\"Fade-Breite\",defaultValue:80,min:0,max:400,step:1,unit:\"px\",description:\"Weicher \\xdcbergang an den R\\xe4ndern\"},backgroundColor:{type:ControlType.Color,title:\"Hintergrund\",defaultValue:\"rgba(0,0,0,0)\"},openInNewTab:{type:ControlType.Boolean,title:\"Neuer Tab\",defaultValue:true,enabledTitle:\"An\",disabledTitle:\"Aus\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PartnerTicker\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicHeight\":\"80\",\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicWidth\":\"800\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TickerComponent.map"],"mappings":"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"}