@paroicms/contact-form-plugin 0.28.0 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ {
2
+ "defaultSubject": "Kontakt von $1",
3
+ "nameIs": "<b>Name:</b> $1",
4
+ "emailIs": "<b>E-Mail:</b> $1",
5
+ "sendUsAnEmailTo": "senden Sie uns eine E-Mail an: $1",
6
+ "sorryMessage": "entschuldigung, die website ist falsch konfiguriert"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "defaultSubject": "Contacto desde $1",
3
+ "nameIs": "<b>Nombre:</b> $1",
4
+ "emailIs": "<b>E-mail:</b> $1",
5
+ "sendUsAnEmailTo": "envíenos un e-mail a: $1",
6
+ "sorryMessage": "lo sentimos, el sitio web está mal configurado"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "defaultSubject": "Contatto da $1",
3
+ "nameIs": "<b>Nome:</b> $1",
4
+ "emailIs": "<b>E-mail:</b> $1",
5
+ "sendUsAnEmailTo": "inviaci un'e-mail a: $1",
6
+ "sorryMessage": "spiacenti, il sito web è configurato in modo errato"
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "defaultSubject": "Contato de $1",
3
+ "nameIs": "<b>Nome:</b> $1",
4
+ "emailIs": "<b>E-mail:</b> $1",
5
+ "sendUsAnEmailTo": "envie-nos um e-mail para: $1",
6
+ "sorryMessage": "desculpe, o site está configurado incorretamente"
7
+ }
@@ -1 +1 @@
1
- import{template as $,insert as c,setAttribute as h,createComponent as C,effect as P,render as ae}from"https://esm.sh/solid-js@1.9.7/web";import{createMemo as re,createSignal as i,Show as B,onMount as oe,onCleanup as ce}from"https://esm.sh/solid-js@1.9.7";const le={en:{en:"English",fr:"French"},fr:{en:"Anglais",fr:"Français"}},J=Object.keys(le);function ie(e,{pluginLanguages:t,siteLanguages:n=[]}){if(t.includes(e)||J.includes(e)&&t.includes(e))return e;const a=n.find((r=>J.includes(r)&&t.includes(r)));return a||(t.includes("en")?"en":t[0]??"en")}const V=e=>e!=null&&(e=Object.getPrototypeOf(e),e===Array.prototype||e===Object.prototype);function Y(e,t,n){for(const[a,r]of Object.entries(t)){const d=`${n}.${a}`;e[d]=r,V(r)&&Y(e,r,d)}}function de(e){const t={...e};for(const[n,a]of Object.entries(e))V(a)&&Y(t,a,n);return t}const ue=(e,t)=>{if(t)for(const[n,a]of Object.entries(t))e=e.replace(new RegExp(`{{\\s*${n}\\s*}}`,"g"),a);return e},me=e=>e;function pe(e,t=me){return(n,...a)=>{n[0]==="."&&(n=n.slice(1));const r=e()?.[n];switch(typeof r){case"function":return r(...a);case"string":return t(r,a[0]);default:return r}}}const fe="Name",he="Email",ge="Subject",be="Message",ve="Send",Pe="johndoe@gmail.com",$e="John Doe",ye="The subject of your message",Ee="Enter your message here…",we="Unexpected error, the message could not be sent.",Fe="Return Home",Se="Your message has been sent. If there is a response, it will be sent to the address:",xe={name:fe,email:he,subject:ge,message:be,send:ve,emailPlaceholder:Pe,namePlaceholder:$e,subjectPlaceholder:ye,messagePlaceholder:Ee,unexpectedErrorMessage:we,returnHome:Fe,successMessage:Se},je="Nom",_e="Courriel",Ce="Sujet",Me="Message",Re="Envoyer",ke="johndoe@gmail.com",Oe="John Doe",Le="Le sujet de votre message",He="Saisissez votre message…",Te="Erreur inattendue, le message n'a pas pu être envoyé.",Ae="Retourner à l'accueil",De="Votre message a été envoyé. S'il y a une réponse, elle sera envoyée à l'adresse :",Ie={name:je,email:_e,subject:Ce,message:Me,send:Re,emailPlaceholder:ke,namePlaceholder:Oe,subjectPlaceholder:Le,messagePlaceholder:He,unexpectedErrorMessage:Te,returnHome:Ae,successMessage:De},z={en:xe,fr:Ie};function Ne(e,t){const n=re((()=>{const r=Object.keys(z),y=ie(e,{pluginLanguages:r,siteLanguages:t});return de(z[y])}));return{t:pe(n,ue)}}async function Ue(e,t,n){n(!0);try{const a=await Be(e);return t.reset(),a}finally{n(!1)}}async function Be(e){const t=await fetch("/api/plugin/contact-form",{headers:{"Content-Type":"application/json"},body:JSON.stringify(e),method:"POST"});if(t.status!==200){const a=await t.text();throw new Error(`Unexpected error: ${a}`)}return await t.json()}var Je=$("<div class=PaForm-error>"),ze=$('<div class=PaForm-ended><div class=PaForm-message><p> <i></i></p></div><div class=PaForm-action><a class="PaForm-button PaButton">'),Ge=$('<form class=PaForm><div class=PaForm-fields><label class=PaField><span class=PaField-label></span><input class=PaField-input type=text name=name required></label><label class=PaField><span class=PaField-label></span><input class=PaField-input type=email name=email required></label><label class=PaField><span class=PaField-label></span><textarea class=PaField-input rows=5 name=message required></textarea></label></div><div class=PaForm-action><button class="PaForm-button PaButton"type=submit>'),Ve=$("<div class=PaForm-captcha><div class=g-recaptcha data-callback=onRecaptchaSubmitted data-expired-callback=onRecaptchaExpired>");function Ye({googleRecaptchaSiteKey:e,language:t,homeUrl:n}){const[a,r]=i(""),[d,y]=i(""),[R,q]=i(""),[Q,W]=i(),[k,O]=i(!e),[L,E]=i(),[X,H]=i(""),[Z,K]=i(!1),{t:o}=Ne(t),ee=async l=>{try{if(l.preventDefault(),!k()||!g)throw new Error("Recaptcha error");const u=await Ue({language:t,name:a(),message:R(),email:d(),gRecaptchaResponse:Q()},g,K);u.success?E(!0):(E(!1),H(u.message??o("unexpectedErrorMessage")))}catch{E(!1),H(o("unexpectedErrorMessage"))}},g=(()=>{var l=Ge(),u=l.firstChild,T=u.firstChild,A=T.firstChild,w=A.nextSibling,D=T.nextSibling,I=D.firstChild,F=I.nextSibling,ne=D.nextSibling,N=ne.firstChild,S=N.nextSibling,x=u.nextSibling,j=x.firstChild;return l.addEventListener("submit",ee),c(A,(()=>o("name"))),w.addEventListener("change",(s=>r(s.currentTarget.value))),c(I,(()=>o("email"))),F.addEventListener("change",(s=>{y(s.currentTarget.value)})),c(N,(()=>o("message"))),S.addEventListener("change",(s=>q(s.currentTarget.value))),c(l,e&&(()=>{var s=Ve(),m=s.firstChild;return h(m,"data-sitekey",e),s})(),x),c(l,C(B,{get when(){return L()===!1},get children(){var s=Je();return c(s,X),s}}),x),c(j,(()=>o("send"))),c(l,C(B,{get when(){return L()===!0},get children(){var s=ze(),m=s.firstChild,p=m.firstChild,f=p.firstChild,b=f.nextSibling,v=m.nextSibling,U=v.firstChild;return c(p,(()=>o("successMessage")),f),c(b,d),h(U,"href",n),c(U,(()=>o("returnHome"))),s}}),null),P((s=>{var m=o("namePlaceholder"),p=o("emailPlaceholder"),f=o("messagePlaceholder"),b=!!Z(),v=!k();return m!==s.e&&h(w,"placeholder",s.e=m),p!==s.t&&h(F,"placeholder",s.t=p),f!==s.a&&h(S,"placeholder",s.a=f),b!==s.o&&j.classList.toggle("inProgress",s.o=b),v!==s.i&&(j.disabled=s.i=v),s}),{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),P((()=>w.value=a())),P((()=>F.value=d())),P((()=>S.value=R())),l})();return oe((()=>{e&&(window.onRecaptchaSubmitted=te,window.onRecaptchaExpired=se)})),ce((()=>{e&&(window.onRecaptchaSubmitted=void 0,window.onRecaptchaExpired=void 0)})),g;function te(l){if(!l)return;O(!0);const u=g?.elements.namedItem("g-recaptcha-response");W(u.value)}function se(){O(!1)}}let M;const[_]=document.getElementsByClassName("js-script-contact-form");_&&_ instanceof HTMLScriptElement&&(M=_.dataset.googleRecaptchaSiteKey);if(!M)throw new Error('Missing "data-google-recaptcha-site-key" or the script element "js-script-contact-form"');function qe(e,{language:t}){if(!t)throw new Error("Missing language");e.dataset.recaptchaKey&&console.warn('Remove "data-recaptcha-key" attribute, it is not needed anymore.');const n=e.dataset.homeUrl;if(!n)throw new Error('Missing "data-home-url"');const a=document.createElement("script");a.setAttribute("src","https://www.google.com/recaptcha/api.js"),document.head.appendChild(a),ae((()=>C(Ye,{googleRecaptchaSiteKey:M,language:t,homeUrl:n})),e)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",G):G();function G(){const e=document.documentElement.lang,t=document.querySelector("[data-effect='paContactForm']");t&&qe(t,{language:e})}
1
+ import{template as v,insert as c,setAttribute as p,createComponent as I,effect as b,render as ae}from"https://esm.sh/solid-js@1.9.7/web";import{createMemo as oe,createSignal as i,Show as U,onMount as re,onCleanup as ce}from"https://esm.sh/solid-js@1.9.7";const le={en:{en:"English",fr:"French",es:"Spanish",de:"German",it:"Italian",pt:"Portuguese"},fr:{en:"Anglais",fr:"Français",es:"Espagnol",de:"Allemand",it:"Italien",pt:"Portugais"},es:{en:"Inglés",fr:"Francés",es:"Español",de:"Alemán",it:"Italiano",pt:"Portugués"},de:{en:"Englisch",fr:"Französisch",es:"Spanisch",de:"Deutsch",it:"Italienisch",pt:"Portugiesisch"},it:{en:"Inglese",fr:"Francese",es:"Spagnolo",de:"Tedesco",it:"Italiano",pt:"Portoghese"},pt:{en:"Inglês",fr:"Francês",es:"Espanhol",de:"Alemão",it:"Italiano",pt:"Português"}},z=Object.keys(le);function ie(e,{pluginLanguages:s,siteLanguages:n=[]}){if(s.includes(e)||z.includes(e)&&s.includes(e))return e;const a=n.find((o=>z.includes(o)&&s.includes(o)));return a||(s.includes("en")?"en":s[0]??"en")}const G=e=>e!=null&&(e=Object.getPrototypeOf(e),e===Array.prototype||e===Object.prototype);function V(e,s,n){for(const[a,o]of Object.entries(s)){const d=`${n}.${a}`;e[d]=o,G(o)&&V(e,o,d)}}function de(e){const s={...e};for(const[n,a]of Object.entries(e))G(a)&&V(s,a,n);return s}const me=(e,s)=>{if(s)for(const[n,a]of Object.entries(s))e=e.replace(new RegExp(`{{\\s*${n}\\s*}}`,"g"),a);return e},ue=e=>e;function he(e,s=ue){return(n,...a)=>{n[0]==="."&&(n=n.slice(1));const o=e()?.[n];switch(typeof o){case"function":return o(...a);case"string":return s(o,a[0]);default:return o}}}const ge="Name",pe="E-Mail",fe="Betreff",$e="Nachricht",Pe="Senden",be="johndoe@gmail.com",ve="John Doe",Ee="Der Betreff Ihrer Nachricht",je="Geben Sie hier Ihre Nachricht ein…",Me="Unerwarteter Fehler, die Nachricht konnte nicht gesendet werden.",Se="Zur Startseite zurückkehren",we="Ihre Nachricht wurde gesendet. Falls es eine Antwort gibt, wird sie an diese Adresse gesendet:",ye={name:ge,email:pe,subject:fe,message:$e,send:Pe,emailPlaceholder:be,namePlaceholder:ve,subjectPlaceholder:Ee,messagePlaceholder:je,unexpectedErrorMessage:Me,returnHome:Se,successMessage:we},Fe="Name",xe="Email",Ie="Subject",_e="Message",Ce="Send",Re="johndoe@gmail.com",He="John Doe",ke="The subject of your message",Ae="Enter your message here…",Ne="Unexpected error, the message could not be sent.",De="Return Home",Oe="Your message has been sent. If there is a response, it will be sent to the address:",Le={name:Fe,email:xe,subject:Ie,message:_e,send:Ce,emailPlaceholder:Re,namePlaceholder:He,subjectPlaceholder:ke,messagePlaceholder:Ae,unexpectedErrorMessage:Ne,returnHome:De,successMessage:Oe},Te="Nombre",Je="Email",Ue="Asunto",ze="Mensaje",Be="Enviar",qe="johndoe@gmail.com",Ge="John Doe",Ve="El asunto de su mensaje",Ye="Ingrese su mensaje aquí…",Ze="Error inesperado, no se pudo enviar el mensaje.",Qe="Volver al Inicio",We="Su mensaje ha sido enviado. Si hay una respuesta, será enviada a la dirección:",Xe={name:Te,email:Je,subject:Ue,message:ze,send:Be,emailPlaceholder:qe,namePlaceholder:Ge,subjectPlaceholder:Ve,messagePlaceholder:Ye,unexpectedErrorMessage:Ze,returnHome:Qe,successMessage:We},Ke="Nom",es="Courriel",ss="Sujet",ts="Message",ns="Envoyer",as="johndoe@gmail.com",os="John Doe",rs="Le sujet de votre message",cs="Saisissez votre message…",ls="Erreur inattendue, le message n'a pas pu être envoyé.",is="Retourner à l'accueil",ds="Votre message a été envoyé. S'il y a une réponse, elle sera envoyée à l'adresse :",ms={name:Ke,email:es,subject:ss,message:ts,send:ns,emailPlaceholder:as,namePlaceholder:os,subjectPlaceholder:rs,messagePlaceholder:cs,unexpectedErrorMessage:ls,returnHome:is,successMessage:ds},us="Nome",hs="Email",gs="Oggetto",ps="Messaggio",fs="Invia",$s="johndoe@gmail.com",Ps="John Doe",bs="L'oggetto del tuo messaggio",vs="Inserisci qui il tuo messaggio…",Es="Errore imprevisto, il messaggio non è stato inviato.",js="Torna alla Home",Ms="Il tuo messaggio è stato inviato. Se c'è una risposta, sarà inviata all'indirizzo:",Ss={name:us,email:hs,subject:gs,message:ps,send:fs,emailPlaceholder:$s,namePlaceholder:Ps,subjectPlaceholder:bs,messagePlaceholder:vs,unexpectedErrorMessage:Es,returnHome:js,successMessage:Ms},ws="Nome",ys="Email",Fs="Assunto",xs="Mensagem",Is="Enviar",_s="johndoe@gmail.com",Cs="John Doe",Rs="O assunto da sua mensagem",Hs="Digite sua mensagem aqui…",ks="Erro inesperado, a mensagem não pôde ser enviada.",As="Voltar ao Início",Ns="Sua mensagem foi enviada. Se houver uma resposta, ela será enviada para o endereço:",Ds={name:ws,email:ys,subject:Fs,message:xs,send:Is,emailPlaceholder:_s,namePlaceholder:Cs,subjectPlaceholder:Rs,messagePlaceholder:Hs,unexpectedErrorMessage:ks,returnHome:As,successMessage:Ns},B={en:Le,fr:ms,es:Xe,de:ye,it:Ss,pt:Ds};function Os(e,s){const n=oe((()=>{const o=Object.keys(B),E=ie(e,{pluginLanguages:o,siteLanguages:s});return de(B[E])}));return{t:he(n,me)}}async function Ls(e,s,n){n(!0);try{const a=await Ts(e);return s.reset(),a}finally{n(!1)}}async function Ts(e){const s=await fetch("/api/plugin/contact-form",{headers:{"Content-Type":"application/json"},body:JSON.stringify(e),method:"POST"});if(s.status!==200){const a=await s.text();throw new Error(`Unexpected error: ${a}`)}return await s.json()}var Js=v("<div class=PaForm-error>"),Us=v('<div class=PaForm-ended><div class=PaForm-message><p> <i></i></p></div><div class=PaForm-action><a class="PaForm-button PaButton">'),zs=v('<form class=PaForm><div class=PaForm-fields><label class=PaField><span class=PaField-label></span><input class=PaField-input type=text name=name required></label><label class=PaField><span class=PaField-label></span><input class=PaField-input type=email name=email required></label><label class=PaField><span class=PaField-label></span><textarea class=PaField-input rows=5 name=message required></textarea></label></div><div class=PaForm-action><button class="PaForm-button PaButton"type=submit>'),Bs=v("<div class=PaForm-captcha><div class=g-recaptcha data-callback=onRecaptchaSubmitted data-expired-callback=onRecaptchaExpired>");function qs({googleRecaptchaSiteKey:e,language:s,homeUrl:n}){const[a,o]=i(""),[d,E]=i(""),[C,Y]=i(""),[Z,Q]=i(),[R,H]=i(!e),[k,j]=i(),[W,A]=i(""),[X,K]=i(!1),{t:r}=Os(s),ee=async l=>{try{if(l.preventDefault(),!R()||!f)throw new Error("Recaptcha error");const m=await Ls({language:s,name:a(),message:C(),email:d(),gRecaptchaResponse:Z()},f,K);m.success?j(!0):(j(!1),A(m.message??r("unexpectedErrorMessage")))}catch{j(!1),A(r("unexpectedErrorMessage"))}},f=(()=>{var l=zs(),m=l.firstChild,N=m.firstChild,D=N.firstChild,M=D.nextSibling,O=N.nextSibling,L=O.firstChild,S=L.nextSibling,ne=O.nextSibling,T=ne.firstChild,w=T.nextSibling,y=m.nextSibling,F=y.firstChild;return l.addEventListener("submit",ee),c(D,(()=>r("name"))),M.addEventListener("change",(t=>o(t.currentTarget.value))),c(L,(()=>r("email"))),S.addEventListener("change",(t=>{E(t.currentTarget.value)})),c(T,(()=>r("message"))),w.addEventListener("change",(t=>Y(t.currentTarget.value))),c(l,e&&(()=>{var t=Bs(),u=t.firstChild;return p(u,"data-sitekey",e),t})(),y),c(l,I(U,{get when(){return k()===!1},get children(){var t=Js();return c(t,W),t}}),y),c(F,(()=>r("send"))),c(l,I(U,{get when(){return k()===!0},get children(){var t=Us(),u=t.firstChild,h=u.firstChild,g=h.firstChild,$=g.nextSibling,P=u.nextSibling,J=P.firstChild;return c(h,(()=>r("successMessage")),g),c($,d),p(J,"href",n),c(J,(()=>r("returnHome"))),t}}),null),b((t=>{var u=r("namePlaceholder"),h=r("emailPlaceholder"),g=r("messagePlaceholder"),$=!!X(),P=!R();return u!==t.e&&p(M,"placeholder",t.e=u),h!==t.t&&p(S,"placeholder",t.t=h),g!==t.a&&p(w,"placeholder",t.a=g),$!==t.o&&F.classList.toggle("inProgress",t.o=$),P!==t.i&&(F.disabled=t.i=P),t}),{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),b((()=>M.value=a())),b((()=>S.value=d())),b((()=>w.value=C())),l})();return re((()=>{e&&(window.onRecaptchaSubmitted=se,window.onRecaptchaExpired=te)})),ce((()=>{e&&(window.onRecaptchaSubmitted=void 0,window.onRecaptchaExpired=void 0)})),f;function se(l){if(!l)return;H(!0);const m=f?.elements.namedItem("g-recaptcha-response");Q(m.value)}function te(){H(!1)}}let _;const[x]=document.getElementsByClassName("js-script-contact-form");x&&x instanceof HTMLScriptElement&&(_=x.dataset.googleRecaptchaSiteKey);if(!_)throw new Error('Missing "data-google-recaptcha-site-key" or the script element "js-script-contact-form"');function Gs(e,{language:s}){if(!s)throw new Error("Missing language");e.dataset.recaptchaKey&&console.warn('Remove "data-recaptcha-key" attribute, it is not needed anymore.');const n=e.dataset.homeUrl;if(!n)throw new Error('Missing "data-home-url"');const a=document.createElement("script");a.setAttribute("src","https://www.google.com/recaptcha/api.js"),document.head.appendChild(a),ae((()=>I(qs,{googleRecaptchaSiteKey:_,language:s,homeUrl:n})),e)}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",q):q();function q(){const e=document.documentElement.lang,s=document.querySelector("[data-effect='paContactForm']");s&&Gs(s,{language:e})}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paroicms/contact-form-plugin",
3
- "version": "0.28.0",
3
+ "version": "0.30.0",
4
4
  "description": "Contact form plugin for ParoiCMS",
5
5
  "keywords": [
6
6
  "paroicms",
@@ -34,8 +34,8 @@
34
34
  "@paroicms/public-server-lib": "0"
35
35
  },
36
36
  "devDependencies": {
37
- "@paroicms/public-anywhere-lib": "0.27.0",
38
- "@paroicms/public-server-lib": "0.38.0",
37
+ "@paroicms/public-anywhere-lib": "0.32.0",
38
+ "@paroicms/public-server-lib": "0.41.0",
39
39
  "@solid-primitives/i18n": "~2.2.1",
40
40
  "@types/node": "~24.0.1",
41
41
  "rimraf": "~6.0.1",