import{d as W,as as I,c as x,z as q,r as L,o as X,a6 as Y,k as Z,e as n,f as c,B as u,t as m,p as U,g as o,a5 as s,m as A,E as $,F as M,A as D,l as F,I as R,C as ee,a3 as te,ao as ae}from"./CQ5rtXCu.js";import{u as se}from"./BfCosJFp.js";const oe={class:"gap-2 grid grid-cols-1 md:grid-cols-2"},re={class:"bg-[#f8f8f8] rounded-lg p-6 md:p-8"},le=["data-content-key"],ne={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},ce={class:"block text-sm font-medium text-gray-700"},ie={key:0,class:"text-red-600 ml-1"},ue=["onUpdate:modelValue","placeholder"],de={key:1,class:"relative","data-select-container":"true"},ye=["value","placeholder","title","onClick"],pe={key:0,class:"absolute z-20 mt-1 w-full rounded border border-gray-200 bg-white shadow-lg max-h-56 overflow-auto"},ve=["title","onClick"],fe=["onUpdate:modelValue","placeholder"],me={class:"pt-2"},ge=["disabled","data-content-key"],be={class:"space-y-4 md:space-y-6 bg-[#f8f8f8] p-6 md:p-8 rounded-lg min-w-0"},ke=["data-content-key"],he=["data-content-key"],Ce=W({__name:"ContactUsFormLayout",props:{content:{default:()=>[]},editable:{type:Boolean,default:!1},activeKey:{default:null},onContentClick:{},textStyle:{},className:{},formItems:{default:()=>[]},onSubmit:{}},setup(g){const i=g,{pick:w,resolveKey:C,interactive:B,isActive:_,resolveTextStyle:S,handleClick:E}=se({content:I(i,"content"),activeKey:I(i,"activeKey"),editable:I(i,"editable"),onContentClick:i.onContentClick,textStyle:i.textStyle}),d=x(()=>w("leftTitle")),y=x(()=>w("sectionTitle")),p=x(()=>w("featuredTitle")),b=x(()=>w("sectionButtonTitle"));function T(e){return e?.attribute?.value??""}const k=x(()=>Array.isArray(i.formItems)&&i.formItems.length>0?i.formItems.map((e,a)=>({key:String(a),name:e?.name||"",placeholder:e?.placeholder,type:typeof e.type=="number"?e.type:1,values:Array.isArray(e.values)?e.values:[],required:!!e.required})):[]),l=q({}),h=L(!1),v=L(null),f=q({visible:!1,type:"success",text:""});let V=null;const z=(e,a)=>{f.text=e,f.type=a,f.visible=!0,V&&clearTimeout(V),V=setTimeout(()=>{f.visible=!1},2500)},j=e=>e==null?!0:typeof e=="string"?e.trim()==="":Array.isArray(e)?e.length===0:!1,O=e=>{const a=l[e.key];return a==null?"":String(a)},G=e=>{const a=l[e.key],t=e.placeholder||e.name||"";return(a??t).toString()},H=e=>{v.value=v.value===e?null:e},J=(e,a)=>{l[e]=a,v.value=null},K=e=>{if(!v.value)return;const a=e.target;a&&(a.closest('[data-select-container="true"]')||(v.value=null))};X(()=>{document.addEventListener("click",K)}),Y(()=>{document.removeEventListener("click",K)});const P=e=>{if(e===!1)return{success:!1,message:"提交失败"};if(e&&typeof e=="object"&&"success"in e){const a=typeof e.message=="string"&&e.message.trim()?e.message:e.success===!1?"提交失败":"提交成功";return{success:e.success!==!1,message:a}}return{success:!0,message:"提交成功"}};Z(k,e=>{e.forEach(a=>{l[a.key]===void 0&&(l[a.key]="")})},{immediate:!0});const Q=async()=>{const e=k.value.find(t=>t.required&&j(l[t.key]));if(e){z(`请填写${e.name}`,"error");return}if(!i.onSubmit||h.value)return;h.value=!0;const a={};k.value.forEach(t=>{a[t.key]=l[t.key]});try{const t=await i.onSubmit(a),r=P(t);z(r.message,r.success?"success":"error"),r.success&&k.value.forEach(N=>{l[N.key]=""})}catch{z("提交失败","error")}finally{h.value=!1}};return(e,a)=>(n(),c("section",{class:u(["py-12 md:py-16 lg:py-20 px-4 md:px-8 lg:px-[12%] font-sans bg-white",g.className])},[f.visible?(n(),c("div",{key:0,class:u(["fixed top-25 left-1/2 -translate-x-1/2 z-[200] px-4 py-2 rounded border shadow bg-white/95 text-sm pointer-events-none",f.type==="success"?"text-green-600 border-green-200":"text-yellow-600 border-yellow-200"]),role:"alert","aria-live":"polite"},m(f.text),3)):U("",!0),o("div",oe,[o("div",re,[o("h3",{class:u(["text-2xl md:text-3xl font-bold text-gray-900 mb-6 whitespace-pre-wrap",[{"cursor-pointer":s(B),mark:g.editable&&s(_)(d.value)}]]),"data-content-key":d.value&&s(C)(d.value)||void 0,style:A(s(S)(d.value)),onClick:a[0]||(a[0]=t=>d.value&&s(E)(d.value))},m(T(d.value)),15,le),o("form",{class:"space-y-4",onSubmit:$(Q,["prevent"])},[o("div",ne,[(n(!0),c(M,null,D(k.value,t=>(n(),c("div",{key:t.key,class:u(["space-y-2",{"md:col-span-2":t.type===3}])},[o("label",ce,[o("span",null,m(t.name),1),t.required?(n(),c("span",ie,"*")):U("",!0)]),t.type!==2&&t.type!==3?F((n(),c("input",{key:0,"onUpdate:modelValue":r=>l[t.key]=r,type:"text",placeholder:t.placeholder||t.name,class:"w-full px-4 py-2.5 border border-gray-300 rounded bg-white focus:outline-none focus:ring-2 focus:ring-[var(--theme-primary-color)] focus:border-transparent text-sm transition-all"},null,8,ue)),[[R,l[t.key]]]):t.type===2?(n(),c("div",de,[o("input",{type:"text",readonly:"",value:O(t),placeholder:t.placeholder||t.name,title:G(t),class:"w-full px-4 py-2.5 border border-gray-300 rounded bg-white focus:outline-none focus:ring-2 focus:ring-[var(--theme-primary-color)] focus:border-transparent text-sm transition-all pr-10 cursor-pointer",onClick:$(r=>H(t.key),["stop"])},null,8,ye),o("span",{class:u(["absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 transition-transform pointer-events-none",{"rotate-180":v.value===t.key}])},[...a[3]||(a[3]=[o("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[o("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"})],-1)])],2),ee(ae,{"enter-active-class":"transition ease-out duration-150","enter-from-class":"opacity-0 scale-95","enter-to-class":"opacity-100 scale-100","leave-active-class":"transition ease-in duration-100","leave-from-class":"opacity-100 scale-100","leave-to-class":"opacity-0 scale-95"},{default:te(()=>[v.value===t.key?(n(),c("div",pe,[(n(!0),c(M,null,D(t.values||[],r=>(n(),c("button",{key:r,type:"button",class:u(["w-full text-left px-3 py-2 text-sm transition truncate",r===l[t.key]?"bg-gray-100 text-gray-900":"text-gray-700 hover:bg-gray-100"]),title:String(r),onClick:$(N=>J(t.key,r),["stop"])},m(r),11,ve))),128))])):U("",!0)]),_:2},1024)])):F((n(),c("textarea",{key:2,"onUpdate:modelValue":r=>l[t.key]=r,placeholder:t.placeholder||t.name,rows:"5",class:"w-full px-4 py-2.5 border border-gray-300 rounded bg-white focus:outline-none focus:ring-2 focus:ring-[var(--theme-primary-color)] focus:border-transparent text-sm resize-none transition-all"},null,8,fe)),[[R,l[t.key]]])],2))),128))]),o("div",me,[o("button",{type:"submit",class:u(["inline-block px-8 md:px-10 py-3 bg-[var(--theme-primary-color)] hover:bg-[var(--theme-primary-color)]/80 text-[var(--theme-primary-contrast)] font-semibold rounded shadow-md transition-colors duration-300",[{mark:g.editable&&s(_)(b.value)},{"opacity-60 cursor-not-allowed":h.value}]]),disabled:h.value,"data-content-key":b.value&&s(C)(b.value)||void 0,style:A(s(S)(b.value))},m(T(b.value)),15,ge)])],32)]),o("div",be,[o("h2",{class:u(["text-3xl md:text-4xl lg:text-5xl font-bold text-gray-900 whitespace-pre-wrap break-words",[{"cursor-pointer":s(B),mark:g.editable&&s(_)(y.value)}]]),"data-content-key":y.value&&s(C)(y.value)||void 0,style:A(s(S)(y.value)),onClick:a[1]||(a[1]=t=>y.value&&s(E)(y.value))},m(T(y.value)),15,ke),o("p",{class:u(["text-sm md:text-base text-gray-600 leading-relaxed whitespace-pre-wrap break-words break-all",[{"cursor-pointer":s(B),mark:g.editable&&s(_)(p.value)}]]),"data-content-key":p.value&&s(C)(p.value)||void 0,style:A(s(S)(p.value)),onClick:a[2]||(a[2]=t=>p.value&&s(E)(p.value))},m(T(p.value)),15,he)])])],2))}});export{Ce as default};
