1import{_ as J,a as X}from"./DvMRuQhr.js";import{_ as P}from"./BJsh9bBL.js";import{s as N,r,f as R,e as B,g as H,A as Q,c as V,o as $,a as e,t as U,i as t,m as Y,B as G,b as h,p as z,D as I,F as K,k as W,j as L,d as Z,E as ee,z as T,n as M}from"./BsPDJMot.js";import{u as O}from"./B7JVLDHN.js";import{_ as te}from"./BKhBBbFz.js";import{_ as se}from"./B-gng95S.js";import{_ as oe}from"./FSLWGB1S.js";import{u as ae}from"./B1ENDjmF.js";import"./u7oVW6lP.js";import"./DD0o8Okc.js";import"./DRhmzE9v.js";const ne={class:"fixed z-50 overflow-y-auto inset-0 bg-black bg-opacity-50 p-4"},le={class:"flex items-center justify-center min-h-screen pt-4 px-4 pb-20 sm:block sm:p-0"},ie={class:"bg-white rounded-lg p-6 w-full max-w-4xl mx-auto my-8"},re={class:"flex justify-between items-center mb-4"},de={class:"text-xl font-bold"},ue={class:"grid grid-cols-4 gap-4"},ce={class:"col-span-2"},me={class:"relative"},pe=["disabled"],fe=["value"],ve={class:"col-span-1"},ge={class:"relative"},_e=["disabled"],ye={class:"flex justify-center space-x-3 pt-6"},be=["disabled"],he=["disabled"],xe={key:0,class:"animate-spin h-4 w-4",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},we={__name:"faq-view",props:{form:{type:String},editData:{type:Object,default:null}},emits:["close","created","updated"],async setup(j,{expose:q,emit:A}){let d,g;const{baseURL:f}=O(),{$auth:u,$notify:_}=N(),p=A,n=r(!1),x=r(!1),w=r(null),y=j,v=R(()=>!!y.editData),o=r({region:"en",reorder:"0",question:"",answer:"",destination_id:"0"}),b=([d,g]=B(()=>fetch(`${f}/contents/destinations`,{headers:{"Content-Type":"application/json","X-Device-Id":u.deviceId,Authorization:`Bearer ${u.getToken()}`}})),d=await d,g(),d),k=([d,g]=B(()=>b.json()),d=await d,g(),d),F=()=>{var s,i;const m=[];return(s=o.value.question)!=null&&s.trim()||m.push("Question is required"),(i=o.value.answer)!=null&&i.trim()||m.push("Answer is required"),m},D=()=>{y.editData&&y.form==="edit"?(o.value={...y.editData},w.value=JSON.stringify(o.value)):l(),x.value=!1},l=()=>{o.value={region:"en",reorder:"0",question:"",answer:"",destination_id:k.data[0].id??"0"},x.value=!1,w.value=null},c=()=>{x.value?confirm("You have unsaved changes. Are you sure you want to close?")&&p("close"):p("close")};H(()=>{D()});const E=async()=>{if(n.value)return;const m=F();if(m.length>0){m.forEach(s=>{_.add({message:s,type:"error",duration:5e3})});return}try{n.value=!0;const s=v.value?`${f}/contents/faq/${y.editData.id}`:`${f}/contents/faq`,i=v.value?"PUT":"POST";o.value={...o.value,reorder:Number(o.value.reorder)};const a=await fetch(s,{method:i,headers:{"Content-Type":"application/json","X-Device-Id":u.deviceId,Authorization:`Bearer ${u.getToken()}`},body:JSON.stringify(o.value)});if(!a.ok){const S=await a.json();throw new Error(S.message||`Failed to ${v.value?"update":"create"} FAQ`)}_.add({title:"Success",message:`FAQ successfully ${v.value?"updated":"created"}!`,type:"success",duration:5e3}),l(),p(v.value?"updated":"created"),p("close")}catch{let i=`Failed to ${v.value?"update":"create"} FAQ`;_.add({title:"Error",message:i,type:"error",duration:5e3})}finally{n.value=!1}};return Q(()=>y.editData,()=>{D()},{immediate:!0}),Q(()=>o.value,m=>{w.value&&(x.value=JSON.stringify(m)!==w.value)},{deep:!0}),q({reset:l}),(m,s)=>{const i=P;return $(),V("div",ne,[e("div",le,[e("div",ie,[e("div",re,[e("h2",de,U(t(v)?"Edit":"Add")+" FAQ",1),e("button",{onClick:c,class:"text-gray-500 hover:text-gray-700"},"â")]),e("form",{onSubmit:G(E,["prevent"]),class:Y(["space-y-6",{"opacity-50 pointer-events-none":t(n)}])},[e("div",ue,[e("div",ce,[s[6]||(s[6]=e("label",{class:"block text-sm font-medium text-gray-700 mb-1"},"Destination",-1)),e("div",me,[z(e("select",{"onUpdate:modelValue":s[0]||(s[0]=a=>t(o).destination_id=a),disabled:t(n),class:"appearance-none w-full pl-3 pr-10 pt-2 py-1 bg-white border border-gray-300 rounded-lg text-gray-700 focus:outline-none focus:ring-2 focus:ring-green-500 cursor-pointer disabled:opacity-50"},[($(!0),V(K,null,W(t(k).data,a=>($(),V("option",{key:a.id,value:a.id},U(a.city),9,fe))),128))],8,pe),[[I,t(o).destination_id]]),s[5]||(s[5]=e("div",{class:"absolute inset-y-0 right-0 flex items-center px-2 pointer-events-none"},[e("svg",{class:"h-5 w-5 text-gray-500",viewBox:"0 0 20 20",fill:"currentColor"},[e("path",{"fill-rule":"evenodd",d:"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z","clip-rule":"evenodd"})])],-1))])]),e("div",ve,[s[9]||(s[9]=e("label",{class:"block text-sm font-medium text-gray-700 mb-1"},"Region (Language)",-1)),e("div",ge,[z(e("select",{"onUpdate:modelValue":s[1]||(s[1]=a=>t(o).region=a),disabled:t(n),class:"appearance-none w-full pl-3 pr-10 pt-2 py-1 bg-white border border-gray-300 rounded-lg text-gray-700 focus:outline-none focus:ring-2 focus:ring-green-500 cursor-pointer disabled:opacity-50"},s[7]||(s[7]=[e("option",{value:"en"},"English",-1),e("option",{value:"id"},"Indonesia",-1),e("option",{value:"my"},"Malaysia",-1),e("option",{value:"cn"},"China",-1)]),8,_e),[[I,t(o).region]]),s[8]||(s[8]=e("div",{class:"absolute inset-y-0 right-0 flex items-center px-2 pointer-events-none"},[e("svg",{class:"h-5 w-5 text-gray-500",viewBox:"0 0 20 20",fill:"currentColor"},[e("path",{"fill-rule":"evenodd",d:"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z","clip-rule":"evenodd"})])],-1))])]),h(i,{class:"col-span-1",label:"Reorder",modelValue:t(o).reorder,"onUpdate:modelValue":s[2]||(s[2]=a=>t(o).reorder=a),required:!1,disabled:t(n)},null,8,["modelValue","disabled"]),h(i,{class:"col-span-4",label:"Question",modelValue:t(o).question,"onUpdate:modelValue":s[3]||(s[3]=a=>t(o).question=a),required:!0,disabled:t(n),maxLength:300},null,8,["modelValue","disabled"]),h(i,{class:"col-span-4",label:"Answer",modelValue:t(o).answer,"onUpdate:modelValue":s[4]||(s[4]=a=>t(o).answer=a),required:!0,disabled:t(n),maxLength:300},null,8,["modelValue","disabled"])]),e("div",ye,[e("button",{type:"button",onClick:c,class:"px-6 py-2 border border-gray-300 rounded-md hover:bg-gray-50 disabled:opacity-50",disabled:t(n)},"Cancel",8,be),e("button",{type:"submit",class:"px-6 py-2 bg-green-600 text-white rounded-md hover:bg-green-700 disabled:opacity-50 flex items-center gap-2",disabled:t(n)},[t(n)?($(),V("svg",xe,s[10]||(s[10]=[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),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"},null,-1)]))):L("",!0),Z(" "+U(t(n)?"Saving...":"Save"),1)],8,he)])],34)])])])}}},$e={class:"container mx-auto max-w-[1300px] px-12 mt-10 pb-10"},Ce={class:"border rounded-2xl p-3 py-7 shadow-md"},Ve={class:"flex justify-between items-center px-5"},qe={class:"flex justify-between items-center space-x-3 px-5 mt-5"},Ae={class:"flex space-x-3 items-center"},Ie={__name:"faq",setup(j){const{$notify:q}=N(),{auth:A}=ae(),{baseURL:d}=O(),g=r(null),f=r(!1),u=r(null),_=r(""),p=r(null),n=()=>{u.value=null,p.value="new"},x=l=>{u.value=l,f.value=!0},w=async()=>{try{await $fetch(`${d}/contents/faq/${u.value.id}`,{method:"DELETE",headers:{"Content-Type":"application/json","X-Device-Id":A.deviceId,Authorization:`Bearer ${A.getToken()}`}}),q.add({title:"Success",message:"FAQ deleted succefully",type:"success"}),M(()=>{g.value.refresh()}),u.value=null,f.value=!1}catch(l){console.error("Delete failed:",l),q.add({title:"Failed",message:"Destination deleted failed",type:"error"})}},y=l=>{u.value=l,p.value="edit"},v=()=>{p.value=null},o=()=>{M(()=>{g.value.refresh()})},b=r("all"),k=r({all:"All Region",en:"English",id:"Indonesia",cn:"China",my:"Malaysia"}),F=R(()=>{const l={};return b.value&&b.value!=="all"&&(l.region=b.value),l}),D=r({dest_city:{text:"Destination"},region:{text:"Region",type:"enum",list:{data:{id:"Indonesia",my:"Malaysia",cn:"China",en:"English"}}},question:{text:"Question"},answer:{text:"Answer"}});return(l,c)=>{const E=J,m=we,s=te,i=se,a=oe,S=X;return $(),V("div",$e,[e("div",Ce,[h(E,{modelValue:t(f),"onUpdate:modelValue":c[0]||(c[0]=C=>T(f)?f.value=C:null),onConfirm:w},null,8,["modelValue"]),t(p)?($(),ee(m,{key:0,form:t(p),"edit-data":t(u),onClose:v,onCreated:o,onUpdated:o},null,8,["form","edit-data"])):L("",!0),e("div",Ve,[c[3]||(c[3]=e("div",null,[e("div",{class:"font-[600] text-lg leading-3"},"FAQ"),e("div",null,"Manage Frequently Asked Question")],-1)),e("div",null,[h(s,{icon:"plus",text:"Add FAQ",onClick:n})])]),e("div",qe,[e("div",Ae,[h(i,{modelValue:t(b),"onUpdate:modelValue":c[1]||(c[1]=C=>T(b)?b.value=C:null),items:t(k)},null,8,["modelValue","items"])]),e("div",null,[h(a,{modelValue:t(_),"onUpdate:modelValue":c[2]||(c[2]=C=>T(_)?_.value=C:null)},null,8,["modelValue"])])]),h(S,{ref_key:"faqTableRef",ref:g,class:"mt-10",index:!0,query:t(F),onDelete:x,onEdit:y,search:t(_),url:`${t(d)}/contents/faq`,columns:t(D)},null,8,["query","search","url","columns"])])])}}};export{Ie 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.