1import{gt as e,ht as t}from"./DzgzMDuw.js";import{t as n}from"./BdWpfCVT.js";import{n as r}from"./B8mC0F0e2.js";import{t as i}from"./CcAd-9Hp2.js";import{t as a}from"./DcHGjRNI.js";import{t as o}from"./V8EHPlAO.js";var s={SENDER_TEXT:400,SENDER_ADDRESS:45,SENDER_ADDRESS_FIRSTNAME:75,SENDER_ADDRESS_LASTNAME:75,SENDER_ADDRESS_COMPANY:39,SENDER_ADDRESS_STREET:50,SENDER_ADDRESS_HOUSENR:5,SENDER_ADDRESS_ZIP:39,SENDER_ADDRESS_CITY:30,RECIPIENT_ADDRESS_TITLE:30,RECIPIENT_ADDRESS_FIRSTNAME:75,RECIPIENT_ADDRESS_LASTNAME:75,RECIPIENT_ADDRESS_COMPANY:39,RECIPIENT_ADDRESS_STREET:50,RECIPIENT_ADDRESS_HOUSENR:5,RECIPIENT_ADDRESS_ZIP:39,RECIPIENT_ADDRESS_CITY:30,RECIPIENT_ADDRESS_POBOX:5,RECIPIENT_ADDRESS_ADDITIONAL_ADR_INFO:75,BRANDING_TEXT_TEXT:250,BRANDING_TEXT_TEXTCOLOR:7,BRANDING_TEXT_BLOCK_COLOR:7,BRANDING_QR_ENCODED_TEXT:100,BRANDING_QR_ACCOMPANYING_TEXT:250,BRANDING_QR_TEXTCOLOR:7,BRANDING_QR_BLOCK_COLOR:7},c=[[32,126],[128,255]];function l(e){let t=e.charCodeAt(0);if(t===10||t===13)return!0;for(let[e,n]of c)if(e&&n&&t>=e&&t<=n)return!0;return!1}function u(e){let t=new Set;for(let n of e)l(n)||t.add(n);return Array.from(t)}function d(e){let t=new Set,n=``;for(let r of e)l(r)?n+=r:t.add(r);return{sanitized:n,removed:Array.from(t)}}async function f(e){let t=new URL(e,window.location.origin),n=t.pathname.includes(`/sites/default/files/`)?`${t.pathname}${t.search}`:e,r=await fetch(n,{cache:`no-store`});if(!r.ok)throw Error(`Failed to fetch image: ${r.status}`);let i=await r.blob(),a=t.pathname.split(`/`).pop()?.split(`?`)[0]||`image.jpg`,o=[`image/jpeg`,`image/png`].includes(i.type)?i.type:`image/jpeg`;return new File([i],a,{type:o})}var p={blockColor:`#a30d65`,textColor:`#ffffff`},m={design:``,receiving:{firstname:``,lastname:``,street:``,number:``,city:``,postalCode:``},message:``,sender:{firstname:``,lastname:``,street:``,number:``,city:``,postalCode:``,email:``},consentPrivacy:!1,consentMarketing:!1,consentContest:!1,branding:{brandingQRCode:{encodedText:``,accompanyingText:``,...p}}},h=e=>{if(!e)return!1;let t={value:e.trim()},n=r(t);return n instanceof Promise?!1:n},g=()=>{let{trackEvent:r}=i(),c=n(`campaignData`,()=>JSON.parse(JSON.stringify(m))),l=n(`campaignKey`,()=>``),u=n(`postcardCampaignText`,()=>``),p=n(`postcardQrLink`,()=>``),g=n(`postcardStampImageUrl`,()=>``),_=n(`postcardWebformId`,()=>``),v=n(`postcard`,()=>null),y=n(`campaignStats`,()=>null),b=n(`postcardApproved`,()=>!1),x=n(`postcardDesignLocked`,()=>!1),S=e(!1),C=e(null),w=n(`postcardStepValidationTriggered`,()=>({design:!1,receiving:!1,message:!1,sender:!1,review:!1})),{createPostcard:T,uploadImage:E,setStampImage:D,getPostcardPreviewFront:O,getPostcardPreviewBack:k,updateSenderAddress:A,setSenderText:j,approvePostcard:ee,getCampaignStats:te,clearError:ne}=o({onError:e=>{C.value=e.message||`An error occurred`,console.error(`Postcard API Error:`,e)},onSuccess:e=>{C.value=null,console.log(`Success:`,e)}}),M=n(`postcardDesigns`,()=>[]),N=e=>{l.value=e},P=e=>{u.value=e},F=e=>{p.value=e},I=e=>{g.value=e},L=e=>{_.value=e},R=e=>{M.value=e},z=()=>M.value.find(e=>e.id===c.value.design),B=e=>{w.value[e]||(w.value={...w.value,[e]:!0})},V=e=>{w.value[e]&&Q(e)&&(w.value={...w.value,[e]:!1})},H=async()=>{if(v.value)return console.log(`Postcard already exists:`,v.value.cardKey),v.value;if(!l.value)throw Error(`Cannot create postcard: campaignKey is not set`);if(!Q(`receiving`))throw B(`receiving`),Error(`Cannot create postcard: receiving data is incomplete`);S.value=!0;try{let e=c.value.receiving,t=await T(l.value,{recipientAddress:{firstname:e.firstname,lastname:e.lastname,street:e.street,houseNr:e.number,zip:e.postalCode,city:e.city},branding:c.value.branding});if(!t)throw Error(`Failed to create postcard`);return v.value=t,console.log(`Postcard created successfully:`,t.cardKey),t}catch(e){throw console.error(`Failed to create postcard:`,e),e}finally{S.value=!1}},U=async()=>{if(!v.value)throw Error(`No postcard to approve`);if(!Q(`review`))throw B(`review`),Error(`Cannot approve postcard: consent is required`);S.value=!0;try{if(!await ee(v.value.cardKey))throw Error(`Failed to approve postc
1ard`);return b.value=!0,console.log(`Postcard approved and submitted`),await ue(),r(`finish_postcard_contest`),await Z(),console.log(`Campaign data reset after approval`),!0}catch(e){throw console.error(`Failed to approve postcard:`,e),e}finally{S.value=!1}},W=async e=>{if(!v.value)throw Error(`No postcard exists to upload image to`);S.value=!0;try{let t=typeof e==`string`?await f(e):e;if(!await E(v.value.cardKey,t))throw Error(C.value||`Image upload failed`);console.log(`Image uploaded successfully`)}catch(e){throw console.error(`Failed to upload image:`,e),e}finally{S.value=!1}},G=async e=>{if(!v.value)throw Error(`No postcard exists to upload stamp image to`);S.value=!0;try{let t=typeof e==`string`?await f(e):e;if(!await D(v.value.cardKey,t))throw Error(C.value||`Stamp image upload failed`);console.log(`Stamp image uploaded successfully`)}catch(e){throw console.error(`Failed to upload stamp image:`,e),e}finally{S.value=!1}},K=async()=>{if(!v.value)throw Error(`No postcard exists to update sender information`);if(!Q(`sender`))throw B(`sender`),Error(`Cannot update sender: sender data is incomplete`);S.value=!0;try{let e=c.value.sender;if(!await A(v.value.cardKey,{firstname:e.firstname,lastname:e.lastname,street:e.street,houseNr:e.number,zip:e.postalCode,city:e.city}))throw Error(`Failed to update sender address`);console.log(`Sender information updated successfully`)}catch(e){throw console.error(`Failed to update sender information:`,e),e}finally{S.value=!1}},q=async()=>{if(!v.value)throw Error(`No postcard exists to update message`);if(!Q(`message`))throw B(`message`),Error(`Cannot update message: message is required`);S.value=!0;try{let{sanitized:e,removed:t}=d(c.value.message);if(t.length>0&&console.warn(`Removed unsupported characters from message:`,t.join(`, `)),console.log(`updatePostcardMessage - Debug info:`,{cardKey:v.value.cardKey,originalMessage:c.value.message,sanitizedMessage:e,messageLength:e.length,removedCharacters:t}),!await j(v.value.cardKey,e))throw Error(`Failed to update sender text`);console.log(`Message updated successfully`)}catch(e){throw console.error(`Failed to update message:`,e),e}finally{S.value=!1}},J=e=>{c.value={...c.value,...e},console.log(`Campaign data updated:`,e)},Y=e=>{c.value.receiving={...c.value.receiving,...e},V(`receiving`)},X=e=>{c.value.sender={...c.value.sender,...e},V(`sender`)},re=e=>{c.value.message=e,V(`message`)},ie=e=>{if(x.value&&c.value.design!==e){console.warn(`Ignored attempt to modify locked postcard design`);return}console.log(`Updating design to:`,e),c.value.design=e,V(`design`)},ae=(e,t,n)=>{e!==void 0&&(c.value.consentPrivacy=e),t!==void 0&&(c.value.consentMarketing=t),n!==void 0&&(c.value.consentContest=n),V(`review`)},Z=async()=>{c.value=JSON.parse(JSON.stringify(m)),v.value=null,b.value=!1,x.value=!1,C.value=null,w.value={design:!1,receiving:!1,message:!1,sender:!1,review:!1}},Q=e=>{switch(e){case`design`:return!!c.value.design;case`receiving`:{let e=c.value.receiving;return!!(e.firstname&&e.lastname&&e.street&&e.city&&e.postalCode)}case`message`:return!!c.value.message&&c.value.message.trim().length>0&&c.value.message.length<=s.SENDER_TEXT;case`sender`:{let e=c.value.sender;return!!(e.firstname?.trim()&&e.lastname?.trim()&&e.street?.trim()&&e.postalCode?.trim()&&e.city?.trim()&&h(e.email))}case`review`:return c.value.consentPrivacy&&c.value.consentContest;default:return!0}},oe=async e=>{try{switch(e){case`10-design`:return console.log(`Design step: validating design selection`),c.value.design?(x.value=!0,console.log(`Postcard design locked at value:`,c.value.design),!0):(console.error(`Please select a design`),!1);case`20-receiving`:return console.log(`Receiving step: validating recipient data and creating postcard`),Q(`receiving`)?(v.value||await H(),!0):(B(`receiving`),console.error(`Missing required recipient information`),!1);case`30-message`:return console.log(`Message step: validating message`),Q(`message`)?(v.value&&await q(),!0):(B(`message`),console.error(`Message is required`),!1);case`40-sender`:return console.log(`Sender step: validating sender data`),Q(`sender`)?(v.value&&await K(),!0):(B(`sender`),console.error(`Missing required sender information`),!1);case`50-review`:return console.log(`Review step: validating and submitting postcard`),Q(`review`)?(await U(),!0):(B(`review`),console.error(`Privacy consent is required`),!1);default:return!0}}catch(t){return console.error(`Step ${e} failed:`,t),!1}},$=async e=>{if(!e)throw Error(`campaignKey is not set`);S.value=!0;try{let t=await te(e);return y.value=t,console.log(`Campaign stats fetched successfully:`,t),t}catch(e){throw console.error(`Failed to fetch campaign stats:`,e),e}finally{S.value=!1}},se=async()=>
1{if(!v.value)throw Error(`No postcard exists to get preview for`);S.value=!0;try{let e=await O(v.value.cardKey);return console.log(`Front preview fetched successfully`),e}catch(e){throw console.error(`Failed to fetch front preview:`,e),e}finally{S.value=!1}},ce=async()=>{if(!v.value)throw Error(`No postcard exists to get preview for`);S.value=!0;try{let e=await k(v.value.cardKey);return console.log(`Back preview fetched successfully`),e}catch(e){throw console.error(`Failed to fetch back preview:`,e),e}finally{S.value=!1}},le=e=>{c.value.branding=e,console.log(`Branding updated successfully:`,e)},ue=async()=>{try{if(!_.value)throw Error(`Cannot store postcard: webformId is not set`);let e=z(),t=e?.imageUrl?.split(`/`).pop()?.split(`?`)[0]||e?.id||``,{sanitized:n}=d(c.value.message);await a(`submitWebform`,{id:_.value,elements:[{element:`card_key`,value:v.value?.cardKey},{element:`card_design`,value:t},{element:`message`,value:n},{element:`recipient_firstname`,value:c.value.receiving.firstname},{element:`recipient_lastname`,value:c.value.receiving.lastname},{element:`recipient_street`,value:c.value.receiving.street},{element:`recipient_number`,value:c.value.receiving.number},{element:`recipient_postal_code`,value:c.value.receiving.postalCode},{element:`recipient_city`,value:c.value.receiving.city},{element:`sender_firstname`,value:c.value.sender.firstname},{element:`sender_lastname`,value:c.value.sender.lastname},{element:`sender_street`,value:c.value.sender.street},{element:`sender_number`,value:c.value.sender.number},{element:`sender_postal_code`,value:c.value.sender.postalCode},{element:`sender_city`,value:c.value.sender.city},{element:`sender_email`,value:c.value.sender.email},{element:`consent_privacy`,value:c.value.consentPrivacy?`1`:`0`},{element:`consent_marketing`,value:c.value.consentMarketing?`1`:`0`},{element:`consent_contest`,value:c.value.consentContest?`1`:`0`}],files:[],sourceEntityType:``,sourceEntityId:``}),console.log(`Postcard data stored via webform`)}catch(e){throw console.error(`Failed to store postcard data via webform:`,e),e}};return{campaignKey:t(l),campaignText:t(u),qrLink:t(p),stampImageUrl:t(g),webformId:t(_),campaignData:t(c),designs:t(M),postcard:t(v),campaignStats:t(y),isLoading:t(S),error:t(C),isApproved:t(b),designLocked:t(x),stepValidationTriggered:t(w),setCampaignKey:N,setCampaignText:P,setQrLink:F,setStampImageUrl:I,setWebformId:L,setDesigns:R,getSelectedDesign:z,updateCampaignData:J,updateReceiving:Y,updateSender:X,updateMessage:re,updateDesign:ie,updateConsent:ae,resetCampaignData:Z,validateStep:Q,createPostcard:H,approvePostcard:U,uploadPostcardImage:W,uploadPostcardStamp:G,updatePostcardSender:K,updatePostcardMessage:q,fetchCampaignStats:$,getPostcardFrontPreview:se,getPostcardBackPreview:ce,executeStepLogic:oe,setBranding:le,showStepValidationErrors:B,clearError:()=>{C.value=null,ne()}}};export{s as i,p as n,u as r,g as t}; 2//# sourceMappingURL=CvRoqUtA.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.