PageSourceSearch

https://gamis.ma/assets/Contact-BsYvcw0e.js

js gamis.ma collected 2026-10-04 07:03:22 UTC 16,076 bytes, 1 lines download raw bytes

1import{q as y,A as C,d as R,B as F,h as M,C as U,D as A,c,b as e,j as D,F as V,r as L,a as E,u as i,t as k,E as f,G as g,k as N,o as m,n as q,e as _,_ as G}from"./app-JOMuKLsV.js";import{EmailService as S}from"./emailService-Dsr6Z6PO.js";function X(){const p=y(!1),r=y(null),l=y(!1),x=async o=>{if(p.value)return!1;p.value=!0,r.value=null,l.value=!1;try{const n=j(o);if(n)throw new Error(n);const d=await S.sendContactEmail(o);if(!d.success)throw new Error(d.message);try{await S.sendConfirmationEmail(o)}catch(b){console.warn("Erreur lors de l'envoi de la confirmation:",b)}return l.value=!0,!0}catch(n){const d=n instanceof Error?n.message:"Une erreur inattendue s'est produite";return r.value=d,console.error("Erreur lors de l'envoi du formulaire:",n),!1}finally{p.value=!1}},j=o=>{var n,d,b,w;return(n=o.name)!=null&&n.trim()?(d=o.email)!=null&&d.trim()?h(o.email)?(b=o.subject)!=null&&b.trim()?(w=o.message)!=null&&w.trim()?o.name.length<2?"Le nom doit contenir au moins 2 caractères":o.subject.length<5?"Le sujet doit contenir au moins 5 caractères":o.message.length<10?"Le message doit contenir au moins 10 caractères":o.phone&&!t(o.phone)?"Le numéro de téléphone n'est pas valide":null:"Le message est requis":"Le sujet est requis":"L'adresse email n'est pas valide":"L'email est requis":"Le nom est requis"},h=o=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(o.trim()),t=o=>{const n=/^(\+?212|0)[5-7]\d{8}$|^\+?\d{10,15}$/,d=o.replace(/[\s\-\(\)]/g,"");return n.test(d)},u=()=>{r.value=null,l.value=!1};return{isLoading:C(p),error:C(r),success:C(l),sendContactForm:x,clearMessages:u}}const B={class:"contact-page min-h-screen bg-gray-50"},I={class:"relative -mt-16 md:-mt-20 pb-24"},O={class:"container-custom"},P={class:"grid grid-cols-1 md:grid-cols-3 gap-6 md:gap-8 mb-12 md:mb-16 px-4 md:px-0"},T={class:"w-14 h-14 md:w-16 md:h-16 bg-gray-100 rounded-full flex items-center justify-center mx-auto mb-4"},$={class:"text-lg md:text-xl font-semibold mb-2"},H={class:"text-gray-600 text-sm md:text-base"},J={class:"grid grid-cols-1 lg:grid-cols-2 gap-8 md:gap-16"},Q={class:"bg-white rounded-xl shadow-lg p-6 md:p-8"},Z={key:0,class:"mb-6 p-4 bg-red-50 border border-red-200 rounded-lg"},K={class:"flex items-center"},W={class:"text-red-700 text-sm"},Y={class:"grid grid-cols-1 md:grid-cols-2 gap-4 md:gap-6"},ee=["disabled"],se=["disabled"],te={class:"grid grid-cols-1 md:grid-cols-2 gap-4 md:gap-6"},ae=["disabled"],oe=["disabled"],re=["disabled"],le={class:"grid grid-cols-2 md:grid-cols-3 gap-3 md:gap-4"},ne=["id","value","checked","disabled","onChange"],de=["for"],ie=["disabled"],ce=["disabled"],me={key:0,class:"flex items-center"},ue={key:1},be={key:2,class:"text-center py-8 md:py-12"},fe=R({__name:"Contact",setup(p){const r=U(),{isLoading:l,error:x,sendContactForm:j,clearMessages:h}=X(),t=F({name:"",email:"",phone:"",company:"",subject:"",message:"",services:[]}),u=y(!1),o=y(!1),n=[{id:"piscines",label:"Piscines",icon:"fas fa-swimming-pool",color:"#4052B6"},{id:"fitness",label:"Fitness",icon:"fas fa-dumbbell",color:"#E32C40"},{id:"performance",label:"High Performance",icon:"fas fa-chart-line",color:"#F5A623"},{id:"pilates",label:"Pilates",icon:"fas fa-spa",color:"#4CAF50"},{id:"amenagement",label:"Aménagement",icon:"fas fa-building",color:"#E6007E"},{id:"financement",label:"Financement",icon:"fas fa-credit-card",color:"#9333EA"}],d=[{title:"Adresse",content:"50 Rue Oued Sebou, Rabat 10120",icon:"fas fa-map-marker-alt"},{title:"Email",content:"[email protected]",icon:"fas fa-envelope"},{title:"Téléphone",content:"+2125377-76626",icon:"fas fa-phone"}];M(()=>{r.query.name&&(t.name=decodeURIComponent(r.query.name)),r.query.phone&&(t.phone=decodeURIComponent(r.query.phone)),r.query.subject&&(t.subject=decodeURIComponent(r.query.subject)),r.query.message&&(t.message=decodeURIComponent(r.query.message)),r.query.subject&&r.query.subject.toLowerCase().includes("financement")&&(t.services.includes("financement")||t.services.push("financement"))});const b=async v=>{v.preventDefault(),await j(t)?(u.value=!0,o.value=!1):o.value=!0},w=()=>
1{Object.assign(t,{name:"",email:"",phone:"",company:"",subject:"",message:"",services:[]}),u.value=!1,o.value=!1,h()},z=v=>{const s=t.services.indexOf(v);s===-1?t.services.push(v):t.services.splice(s,1)};return A(()=>[t.name,t.email,t.subject,t.message],()=>{x.value&&h()}),(v,s)=>(m(),c("div",B,[s[20]||(s[20]=e("div",{class:"relative h-[400px] md:h-[500px] bg-black overflow-hidden"},[e("div",{class:"absolute inset-0 z-0"},[e("img",{src:"https://images.pexels.com/photos/3182812/pexels-photo-3182812.jpeg?auto=compress&cs=tinysrgb&w=1920",alt:"Contact Gamis",class:"w-full h-full object-cover opacity-50",loading:"eager",fetchpriority:"high",decoding:"async"})]),e("div",{class:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/60"}),e("div",{class:"relative z-10 h-full flex flex-col items-center justify-center text-center"},[e("h1",{class:"text-4xl md:text-6xl font-bold text-white mb-4 md:mb-6"},"Contactez-nous"),e("p",{class:"text-lg md:text-xl text-gray-300 max-w-2xl px-4"}," Vous avez un projet d'équipement sportif ? Besoin d'un devis ou d'un conseil ? Notre équipe d'experts est là pour vous accompagner. ")])],-1)),e("div",I,[e("div",O,[e("div",P,[(m(),c(V,null,L(d,a=>e("div",{key:a.title,class:"bg-white rounded-xl shadow-lg p-6 md:p-8 text-center transform hover:-translate-y-1 transition-transform duration-300"},[e("div",T,[e("i",{class:q([a.icon,"text-xl md:text-2xl text-gray-700"])},null,2)]),e("h3",$,k(a.title),1),e("p",H,k(a.content),1)])),64))]),e("div",J,[e("div",Q,[i(x)?(m(),c("div",Z,[e("div",K,[s[6]||(s[6]=e("i",{class:"fas fa-exclamation-triangle text-red-500 mr-3"},null,-1)),e("p",W,k(i(x)),1)])])):E("",!0),u.value?E("",!0):(m(),c("form",{key:1,onSubmit:b,class:"space-y-6"},[s[15]||(s[15]=e("h2",{class:"text-2xl md:text-3xl font-bold mb-6 md:mb-8"},"Envoyez-nous un message",-1)),e("div",Y,[e("div",null,[s[7]||(s[7]=e("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Nom complet *",-1)),f(e("input",{"onUpdate:modelValue":s[0]||(s[0]=a=>t.name=a),type:"text","aria-label":"Nom complet",autocomplete:"name",required:"",disabled:i(l),class:"w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-colors text-sm md:text-base disabled:bg-gray-100 disabled:cursor-not-allowed",placeholder:"John Doe"},null,8,ee),[[g,t.name]])]),e("div",null,[s[8]||(s[8]=e("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Email *",-1)),f(e("input",{"onUpdate:modelValue":s[1]||(s[1]=a=>t.email=a),type:"email","aria-label":"Email",autocomplete:"email",required:"",disabled:i(l),class:"w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-colors text-sm md:text-base disabled:bg-gray-100 disabled:cursor-not-allowed",placeholder:"[email protected]"},null,8,se),[[g,t.email]])])]),e("div",te,[e("div",null,[s[9]||(s[9]=e("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Téléphone",-1)),f(e("input",{"onUpdate:modelValue":s[2]||(s[2]=a=>t.phone=a),type:"tel","aria-label":"Téléphone",autocomplete:"tel",disabled:i(l),class:"w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-colors text-sm md:text-base disabled:bg-gray-100 disabled:cursor-not-allowed",placeholder:"+212 6XX XXX XXX"},null,8,ae),[[g,t.phone]])]),e("div",null,[s[10]||(s[10]=e("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Société",-1)),f(e("input",{"onUpdate:modelValue":s[3]||(s[3]=a=>t.company=a),type:"text","aria-label":"Société",autocomplete:"organization",disabled:i(l),class:"w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-colors text-sm md:text-base disabled:bg-gray-100 disabled:cursor-not-allowed",placeholder:"Votre société"},null,8,oe),[[g,t.company]])])]),e("div",null,[s[11]||(s[11]=e("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Sujet *",-1)),f(e("input",{"onUpdate:modelValue":s[4]||(s[4]=a=>t.subject=a),type:"text","aria-label":"Sujet",required:"",disabled:i(l),class:"w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-colors text-sm md:text-base disabled:bg-gray-100 disabled:cursor-not-allowed",placeholder:"Comment pouvons-nous vous aider ?"},null,8,re),[[g,t.subject]])]),e("div",null,[s[12]||(s[12]=e("label",{class:"block text-sm font-medium text-gray-700 mb-4"},"Services qui vous intéressent",-1)),e("div",le,[(m(),c(V,null,L(n,a=>e("div",{key:a.id,class:"relative"},[e("input",{id:a.id,type:"checkbox",value:a.id,checked:t.services.includes(a.id),disabled:i(l),onChange:ge=>z(a.id),class:"peer hidden"},null,40,ne),e("label",{for:a.id,class:q(["flex items-center gap-2 md:gap-3 p-2 md:p-3 rounded-lg border border-gray-200 cursor-pointer transition-all duration-300 hover:bg-gray-50 disabled:cursor-not-allowed disabled:opacity-50 text-xs md:text-sm",{"border-opacity-50":!t.services.includes(a.id),"border-2":t.services.includes(a.id)}]),style:_({borderColor:t.services.includes(a.id)?a.color:"",backgroundColor:t.services.includes(a.id)?`${a.color}10`:""})},[e("i",{class:q([a.icon,"text-sm md:text-lg transition-colors duration-300 flex-shrink-0"]),style:_({color:t.services.includes(a.id)?a.color:"rgb(75, 85, 99)"})},null,6),e("span",{class:"transition-colors duration-300 leading-tight",style:_({color:t.services.includes(a.id)?a.color:"rgb(75, 85, 99)"})},k(a.label),5)],14,de)])),64))])]),e("div",null,[s[13]||(s[13]=e("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Message *",-1)),f(e("textarea",{"onUpdate:modelValue":s[5]||(s[5]=a=>t.message=a),"aria-label":"Message",rows:"4",required:"",disabled:i(l),class:"w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-colors text-sm md:text-base disabled:bg-gray-100 disabled:cursor-not-allowed",placeholder:"Décrivez votre projet..."},null,8,ie),[[g,t.message]])]),e("button",{type:"submit",class:"w-full bg-blue-600 text-white py-3 md:py-4 rounded-lg font-medium hover:bg-blue-700 transition-colors flex items-center justify-center text-sm md:text-base disabled:bg-gray-400 disabled:cursor-not-allowed",disabled:i(l)},[i(l)?(m(),c("span",me,[...s[14]||(s[14]=[e("svg",{class:"animate-spin -ml-1 mr-3 h-5 w-5",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})],-1),N(" Envoi en cours... ",-1)])])):(m(),c("span",ue,"Envoyer le message"))],8,ce)],32)),u.value?(m(),c("div",be,[s[16]||(s[16]=e("div",{class:"w-16 h-16 md:w-20 md:h-20 bg-green-100 text-green-500 rounded-full flex items-center justify-center mx-auto mb-4 md:mb-6"},[e("i",{class:"fas fa-check text-2xl md:text-3xl"})],-1)),s[17]||(s[17]=e("h3",{class:"text-xl md:text-2xl font-bold text-gray-800 mb
1-3 md:mb-4"},"Message envoyé avec succès !",-1)),s[18]||(s[18]=e("p",{class:"text-gray-600 mb-6 md:mb-8 text-sm md:text-base"}," Merci de nous avoir contactés. Notre équipe reviendra vers vous dans les plus brefs délais. ",-1)),e("button",{onClick:w,class:"px-6 md:px-8 py-3 bg-gray-100 text-gray-800 rounded-lg hover:bg-gray-200 transition-colors text-sm md:text-base"}," Envoyer un autre message ")])):E("",!0)]),s[19]||(s[19]=e("div",{class:"space-y-6 md:space-y-8"},[e("div",{class:"bg-white rounded-xl shadow-lg overflow-hidden"},[e("iframe",{src:"https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d418.27123272806017!2d-6.846411868421536!3d34.0004357644345!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0xda76c8f5cccc0ff%3A0x8d010ddecd6a4e65!2sGamis!5e1!3m2!1sfr!2sma!4v1751479457115!5m2!1sfr!2sma",title:"Localisation de Gamis à Rabat",width:"100%",height:"250",style:{border:"0"},allowfullscreen:"true",loading:"lazy",class:"w-full md:h-[300px]"})]),e("div",{class:"bg-white rounded-xl shadow-lg p-6 md:p-8"},[e("h3",{class:"text-lg md:text-xl font-bold mb-4 md:mb-6"},"Horaires d'ouverture"),e("div",{class:"space-y-3 md:space-y-4"},[e("div",{class:"flex justify-between items-center py-2 border-b border-gray-100"},[e("span",{class:"text-gray-600 text-sm md:text-base"},"Lundi - Vendredi"),e("span",{class:"font-medium text-sm md:text-base"},"9:00 - 18:00")]),e("div",{class:"flex justify-between items-center py-2"},[e("span",{class:"text-gray-600 text-sm md:text-base"},"Samedi - Dimanche"),e("span",{class:"font-medium text-red-500 text-sm md:text-base"},"Fermé")])])]),e("div",{class:"bg-white rounded-xl shadow-lg p-6 md:p-8"},[e("h3",{class:"text-lg md:text-xl font-bold mb-4 md:mb-6"},"Suivez-nous"),e("div",{class:"flex gap-4"},[e("a",{href:"https://www.linkedin.com/company/gamis/",target:"_blank",rel:"noopener noreferrer",class:"w-12 h-12 bg-gray-100 rounded-lg flex items-center justify-center hover:bg-gray-200 transition-colors","aria-label":"Gamis sur LinkedIn"},[e("i",{class:"fab fa-linkedin-in text-xl text-gray-700"})]),e("a",{href:"https://www.facebook.com/gamisofficial/",target:"_blank",rel:"noopener noreferrer",class:"w-12 h-12 bg-gray-100 rounded-lg flex items-center justify-center hover:bg-gray-200 transition-colors","aria-label":"Gamis sur Facebook"},[e("i",{class:"fab fa-facebook-f text-xl text-gray-700"})]),e("a",{href:"https://www.instagram.com/gamis.ma",target:"_blank",rel:"noopener noreferrer",class:"w-12 h-12 bg-gray-100 rounded-lg flex items-center justify-center hover:bg-gray-200 transition-colors","aria-label":"Gamis sur Instagram"},[e("i",{class:"fab fa-instagram text-xl text-gray-700"})])])])],-1))])])]),s[21]||(s[21]=D('<section class="py-12 bg-gradient-to-b from-white to-gray-50" data-v-31e5fdf3><div class="container mx-auto px-4 md:px-8" data-v-31e5fdf3><div class="max-w-3xl mx-auto text-center mb-12" data-v-31e5fdf3><h2 class="text-3xl font-bold text-gray-900 mb-6" data-v-31e5fdf3> Contactez Gamis pour votre projet sportif </h2><p class="text-lg text-gray-700 leading-relaxed" data-v-31e5fdf3> Vous avez un projet d&#39;<strong data-v-31e5fdf3>infrastructure sportive</strong> au <strong data-v-31e5fdf3>Maroc</strong> ? Notre équipe d&#39;experts est à votre écoute pour vous conseiller et vous accompagner. Que vous soyez un particulier, un hôtel, un club sportif ou une collectivité, nous vous proposons des <strong data-v-31e5fdf3>solutions sur-mesure</strong> adaptées à vos besoins et votre budget. </p><div class="grid md:grid-cols-3 gap-6 mt-10" data-v-31e5fdf3><div class="bg-white p-6 rounded-xl shadow-sm border border-gray-100" data-v-31e5fdf3><div class="text-3xl mb-3" data-v-31e5fdf3>📍</div><h3 class="font-semibold text-gray-900 mb-2" data-v-31e5fdf3>Notre siège</h3><p class="text-sm text-gray-600" data-v-31e5fdf3>50 Rue Oued Sebou<br data-v-31e5fdf3>Rabat 10120</p></div><div class="bg-white p-6 rounded-xl shadow-sm border border-gray-100" data-v-31e5fdf3><div class="text-3xl mb-3" data-v-31e5fdf3>⏰</div><h3 class="font-semibold text-gray-900 mb-2" data-v-31e5fdf3>Disponibilité</h3><p class="text-sm text-gray-600" data-v-31e5fdf3>Lun-Ven : 9h-18h<br data-v-31e5fdf3>Réponse sous 24h</p></div><div class="bg-white p-6 rounded-xl shadow-sm border border-gray-100" data-v-31e5fdf3><div class="text-3xl mb-3" data-v-31e5fdf3>🌍</div><h3 class="font-semibold text-gray-900 mb-2" data-v-31e5fdf3>Zone d&#39;intervention</h3><p class="text-sm text-gray-600" data-v-31e5fdf3>Maroc entier<br data-v-31e5fdf3>+ Export Afrique</p></div></div><p class="text-gray-600 mt-8" data-v-31e5fdf3><strong data-v-31e5fdf3>Devis gratuit</strong> • <strong data-v-31e5fdf3>Visite technique</strong> • <strong data-v-31e5fdf3>Accompagnement personnalisé</strong></p></div></div></section>',1))]))}}),ve=G(fe,[["__scopeId","data-v-31e5fdf3"]]);export{ve as default};

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.