{"version":3,"file":"StructuredData.DfiieLyK.mjs","names":[],"sources":["https:/framerusercontent.com/modules/J5ih1pg0Qf4YvvgyTwO8/1u22bYveRJ1fQwKcEwKX/StructuredData.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";// Zet JSON-LD (structured data) in de HTML van een pagina.\n// Onzichtbaar voor bezoekers. Plaats één instance per CMS-sjabloon en koppel de velden.\nconst BASE=\"https://www.broederschap.nl\";const ORG_ID=BASE+\"/#organization\";const LOCATIES={leeffabriek:{\"@type\":\"Place\",name:\"LEEFFabriek\",address:{\"@type\":\"PostalAddress\",streetAddress:\"Meginhardweg 53\",postalCode:\"6841 HB\",addressLocality:\"Arnhem\",addressCountry:\"NL\"}}};function imageUrl(img){if(!img)return undefined;const src=typeof img===\"string\"?img:img.src;if(!src)return undefined;return src.split(\"?\")[0];}function pageUrl(basePath,slug){const base=(basePath||\"/\").replace(/\\/?$/,\"/\");return BASE+base+(slug||\"\");}function clean(obj){if(Array.isArray(obj)){const arr=obj.map(clean).filter(v=>v!==undefined&&v!==\"\");return arr.length?arr:undefined;}if(obj&&typeof obj===\"object\"){const out={};for(const[k,v]of Object.entries(obj)){const c=clean(v);if(c!==undefined&&c!==\"\")out[k]=c;}return Object.keys(out).length?out:undefined;}return obj;}function parsePrice(text){// \"€1.195 incl. btw\" wordt \"1195\"\nconst m=(text||\"\").match(/€\\s*([0-9][0-9.]*)(,[0-9]{2})?/);if(!m)return undefined;return m[1].split(\".\").join(\"\")+(m[2]?\".\"+m[2].slice(1):\"\");}function buildBlog(p){const url=pageUrl(p.basePath,p.slug);return{\"@context\":\"https://schema.org\",\"@type\":(p.basePath||\"\").includes(\"/blog/\")?\"BlogPosting\":\"Article\",\"@id\":url+\"#artikel\",mainEntityOfPage:url,url,headline:p.headline,description:p.description,image:imageUrl(p.image)?[imageUrl(p.image)]:undefined,datePublished:p.datePublished||undefined,dateModified:p.dateModified||p.datePublished||undefined,inLanguage:\"nl-NL\",author:p.authorName?{\"@type\":\"Person\",name:p.authorName,url:p.authorSlug?BASE+\"/team/\"+p.authorSlug:undefined}:undefined,publisher:{\"@id\":ORG_ID}};}function buildProfile(p){const url=pageUrl(p.basePath,p.slug);return{\"@context\":\"https://schema.org\",\"@type\":\"ProfilePage\",\"@id\":url,url,inLanguage:\"nl-NL\",mainEntity:{\"@type\":\"Person\",\"@id\":url+\"#persoon\",name:p.headline,jobTitle:p.jobTitle,description:p.description,image:imageUrl(p.image),url,sameAs:[p.sameAs1,p.sameAs2,p.sameAs3,p.sameAs4].filter(s=>typeof s===\"string\"&&/^https?:\\/\\//.test(s)),worksFor:{\"@id\":ORG_ID}}};}function buildEvent(p){const soort=(p.eventKind||\"\").toLowerCase();// Alleen evenementen op een fysieke locatie. Online mannencirkels krijgen geen Event-markup.\nif(!p.headline||!p.startDate||soort.includes(\"mannencirkel\")||soort===\"alles\")return null;// Locatie uit het CMS: alleen bekende adressen. Onbekende locatie = geen markup, want Google eist een adres.\nconst plek=(p.locationName||\"\").toLowerCase();const locatie=plek.includes(\"leef\")?LOCATIES.leeffabriek:plek?null:LOCATIES[p.location];if(!locatie)return null;const price=parsePrice(p.priceText);return{\"@context\":\"https://schema.org\",\"@type\":\"Event\",name:p.headline,description:p.description,startDate:p.startDate,endDate:p.endDate||undefined,eventStatus:\"https://schema.org/EventScheduled\",eventAttendanceMode:\"https://schema.org/OfflineEventAttendanceMode\",location:locatie,image:imageUrl(p.image)?[imageUrl(p.image)]:undefined,organizer:{\"@id\":ORG_ID,\"@type\":\"Organization\",name:\"Broederschap\",url:BASE+\"/\"},offers:price&&p.ticketUrl?{\"@type\":\"Offer\",url:p.ticketUrl,price,priceCurrency:\"EUR\",availability:p.available?\"https://schema.org/InStock\":\"https://schema.org/SoldOut\"}:undefined};}/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicWidth 1\n * @framerIntrinsicHeight 1\n */export default function StructuredData(props){let data=null;if(props.type===\"blog\")data=buildBlog(props);else if(props.type===\"profiel\")data=buildProfile(props);else if(props.type===\"event\")data=buildEvent(props);data=clean(data);if(!data)return null;const json=JSON.stringify(data).split(\"<\").join(\"\\\\u003c\");return /*#__PURE__*/_jsx(\"script\",{type:\"application/ld+json\",dangerouslySetInnerHTML:{__html:json}});}StructuredData.defaultProps={type:\"blog\",basePath:\"/\",location:\"leeffabriek\",available:true};addPropertyControls(StructuredData,{type:{type:ControlType.Enum,title:\"Soort\",options:[\"blog\",\"profiel\",\"event\"],optionTitles:[\"Blogartikel\",\"Teamprofiel\",\"Evenement\"]},basePath:{type:ControlType.String,title:\"Pad\",description:\"Bijv. /kennisbank/blog/ of /team/\"},slug:{type:ControlType.String,title:\"Slug\"},headline:{type:ControlType.String,title:\"Titel of naam\"},description:{type:ControlType.String,title:\"Omschrijving\"},image:{type:ControlType.ResponsiveImage,title:\"Afbeelding\"},datePublished:{type:ControlType.Date,title:\"Gepubliceerd\",hidden:p=>p.type!==\"blog\"},dateModified:{type:ControlType.Date,title:\"Bijgewerkt\",hidden:p=>p.type!==\"blog\"},authorName:{type:ControlType.String,title:\"Auteur\",hidden:p=>p.type!==\"blog\"},authorSlug:{type:ControlType.String,title:\"Auteur-slug\",hidden:p=>p.type!==\"blog\"},jobTitle:{type:ControlType.String,title:\"Rol\",hidden:p=>p.type!==\"profiel\"},sameAs1:{type:ControlType.Link,title:\"Profiel 1\",hidden:p=>p.type!==\"profiel\"},sameAs2:{type:ControlType.Link,title:\"Profiel 2\",hidden:p=>p.type!==\"profiel\"},sameAs3:{type:ControlType.Link,title:\"Profiel 3\",hidden:p=>p.type!==\"profiel\"},sameAs4:{type:ControlType.Link,title:\"Profiel 4\",hidden:p=>p.type!==\"profiel\"},eventKind:{type:ControlType.String,title:\"Soort evenement\",hidden:p=>p.type!==\"event\"},startDate:{type:ControlType.Date,title:\"Start\",hidden:p=>p.type!==\"event\"},endDate:{type:ControlType.Date,title:\"Einde\",hidden:p=>p.type!==\"event\"},location:{type:ControlType.Enum,title:\"Locatie\",options:[\"leeffabriek\"],optionTitles:[\"LEEFFabriek, Arnhem\"],hidden:p=>p.type!==\"event\"},locationName:{type:ControlType.String,title:\"Locatie (CMS)\",hidden:p=>p.type!==\"event\"},priceText:{type:ControlType.String,title:\"Prijs (tekst)\",hidden:p=>p.type!==\"event\"},ticketUrl:{type:ControlType.Link,title:\"Ticketlink\",hidden:p=>p.type!==\"event\"},available:{type:ControlType.Boolean,title:\"Tickets beschikbaar\",hidden:p=>p.type!==\"event\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"StructuredData\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicHeight\":\"1\",\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./StructuredData.map"],"mappings":"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"}