1import{P as xe,r as b,l as ge,k as ke,E as x,a4 as he,O as _e,o as we,I as Y,c as r,b as i,f as t,e as g,u as f,g as y,i as v,n as W,F as Ae,d as Se,t as p,ap as Me,ax as ze,h as Ce,x as z,y as R,a6 as Ve,A as C,U as je,B as m,Y as Pe}from"./index-BAF_Jm8G.js";import{C as De}from"./chevron-left-y7-pIwY_.js";import{P as G}from"./plus-DbCbaAV3.js";import{T as Ne}from"./trash-2-Czf_tecy.js";import{t as Re}from"./tr-CSBw6nC1.js";/** 2 * @license lucide-vue-next v0.509.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const Le=xe("chart-column",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]),Oe={class:"w-full h-full bg-base-100 flex flex-col"},Ee={class:"bg-base-100 h-16 relative border-b border-gray-300"},Te={class:"text-base-content flex flex-row justify-center items-center py-4 relative px-4"},Be={class:"flex-1 w-full overflow-y-auto px-3 py-3 flex flex-col gap-4 h-[calc(100dvh-var(--flutter-safe-bottom)-4rem)]"},Ie={class:"flex-1 flex flex-col gap-2"},Ue={class:"flex flex-col gap-2"},$e={class:"flex items-center justify-between"},Ke={class:"flex items-center gap-2 mt-1"},Fe={key:0,class:"flex justify-center items-center py-6"},He={key:1,class:"text-xs text-gray-400 text-center py-6"},qe={key:2,class:"flex flex-col gap-3 pb-3"},Qe={class:"flex items-start gap-3 pt-1"},Ye={class:"flex-1 min-w-0"},We={class:"flex items-center justify-between gap-2"},Ge={class:"font-semibold text-sm text-gray-900 truncate"},Je={class:"inline-flex items-center px-2 py-0.5 rounded-[7px] bg-sky-50 text-sky-700 text-[11px] whitespace-nowrap"},Xe={key:0,class:"text-xs text-gray-600 mt-1 line-clamp-2"},Ze={key:1,class:"mt-1 flex flex-wrap gap-1.5 items-center"},et={class:"inline-flex items-center gap-1 px-2 py-0.5 rounded-[7px] bg-amber-50 text-amber-700 text-[11px] font-medium"},tt={key:2,class:"text-[11px] text-gray-500 mt-1 line-clamp-2"},at={key:0},st={key:0},lt={key:1},nt={key:0},ot={key:3,class:"text-xs font-semibold text-emerald-700 mt-1"},it={class:"flex flex-col items-end gap-2"},rt=["onClick"],dt=["disabled","onClick"],ut={key:0,class:"loading loading-spinner loading-xs"},ct={key:0,class:"flex items-center justify-between pt-1 border-t border-gray-100 text-[11px] text-gray-500"},pt={class:"flex items-center gap-1"},mt=["disabled"],bt=["disabled"],yt={key:0,class:"fixed inset-0 z-[99999] flex items-end sm:items-center justify-center bg-black/40"},ft={class:"w-full sm:max-w-md bg-base-100 rounded-t-2xl sm:rounded-2xl shadow-lg p-4 pb-[calc(var(--flutter-safe-bottom)+1rem)]"},vt={class:"grid grid-cols-1 gap-3 max-h-[70vh] overflow-y-auto pr-1"},xt={class:"form-control"},gt={class:"form-control"},kt={class:"form-control"},ht={class:"form-control"},_t={class:"grid grid-cols-2 gap-2"},wt={class:"form-control"},At={class:"form-control"},St={class:"form-control"},Mt={class:"form-control"},zt={class:"form-control mt-1"},Ct={class:"label cursor-pointer justify-start gap-2"},Vt=["disabled"],jt={key:0,class:"loading loading-spinner loading-xs"},Pt={key:1,class:"flex items-center gap-1 text-sm"},Dt={key:1,class:"fixed inset-0 z-[99999] flex items-center justify-center bg-black/40"},Nt={class:"w-full max-w-sm bg-base-100 rounded-2xl shadow-lg p-4 mx-4"},Rt={class:"text-xs text-gray-500 mb-4"},Lt={key:0},Ot={class:"flex justify-end gap-2"},Et=["disabled"],Tt=["disabled"],Bt={key:0,class:"loading loading-spinner loading-xs"},It={key:1},I=1,Ut="Akıllı Rota Servisi",U=10,Yt={__name:"OrderBookPanel",props:{emit:{type:Object,required:!1}},setup($t){const V=b(!1),j=b(!1),k=b(null),L=b(!1),P=b(!1),h=b(null),A=b([]),J=b(!0),D=b(!1),O=b(null),{openPanel:$}=ge(),{openModal:K}=ke(),c=b({current_page:1,last_page:1,per_page:10,total:0,from:0,to:0}),_=x(()=>c.value&&c.value.total>0),X=x(()=>_.value&&c.value.current_page>1),Z=x(()=>_.value&&c.value.current_page<c.value.last_page),ee=x(()=>_.value?c.value.from:0),te=x(()=>_.value?c.value.to:0),n=b({date:null,name:"",detail:"",city_id:null,district_id:null,
6sector:"",city:"",district:"",address:"",price:"",notification:!0}),w=he(),ae=x(()=>w.data.filter(a=>!a.parent_id)),se=x(()=>w.data.filter(a=>a.parent_id===n.value.city_id&&a.type==="district")),E=b([]),F=b(!1),le=x(()=>E.value.map(a=>a==null?void 0:a.name).filter(a=>typeof a=="string"&&a.trim().length>0)),ne=a=>{if(!a)return null;const e=a instanceof Date?a:new Date(a);if(Number.isNaN(e.getTime()))return null;const l=B=>String(B).padStart(2,"0"),o=e.getFullYear(),u=l(e.getMonth()+1),s=l(e.getDate()),S=l(e.getHours()),M=l(e.getMinutes()),N=l(e.getSeconds());return`${o}-${u}-${s} ${S}:${M}:${N}`},oe=()=>{n.value={date:null,name:"",detail:"",sector:"",city_id:null,district_id:null,city:"",district:"",address:"",price:"",notification:!0}};_e(()=>n.value.city_id,()=>{n.value.district_id=null});const ie=async()=>{F.value=!0;try{const{data:{data:a}}=await C.get("sectors",{params:{filter:{parent_id:"selectable"}}});E.value=a}finally{F.value=!1}},T=async(a=1)=>{var e;V.value=!0;try{const{data:l}=await C.get("order-books",{params:{"page[size]":U,"page[number]":a}}),o=Array.isArray(l.data)?l.data:((e=l.data)==null?void 0:e.data)??[];A.value=o,l&&l.meta?c.value={current_page:l.meta.current_page??1,last_page:l.meta.last_page??1,per_page:l.meta.per_page??U,total:l.meta.total??o.length,from:l.meta.from??0,to:l.meta.to??0}:c.value={current_page:1,last_page:1,per_page:U,total:o.length,from:o.length?1:0,to:o.length}}catch{}finally{V.value=!1}},re=async()=>{try{const{data:a}=await C.get("qss-modules"),e=(a==null?void 0:a.data)??a??{},l=Array.isArray(e==null?void 0:e.user_modules)?e.user_modules:Array.isArray(e)?e:[],o=Array.isArray(e==null?void 0:e.modules)?e.modules:[],u=l.some(d=>Number((d==null?void 0:d.id)??(d==null?void 0:d.qss_module_id))===I),s=o.find(d=>Number(d==null?void 0:d.id)===I),S=(s==null?void 0:s.price)??null,M=o.find(d=>String((d==null?void 0:d.name)??"").trim()===Ut);O.value=M||null;const N=M?Number(M.id):null,B=N?l.some(d=>Number((d==null?void 0:d.id)??(d==null?void 0:d.qss_module_id))===N):!1;J.value=u,D.value=B,u||K("QssModulePurchaseModal",{moduleId:I,moduleKey:"order-book",title:"QSS Ajanda / Hatırlatıcı Modülü",description:"Ajandaya notlar ekleyin, müÅterilerinizi ve yapılacak iÅlerinizi organize edin; tarihi yaklaÅan kayıtlar için otomatik bildirimler alın.",price:S})}catch{}},H=a=>!!(a&&a.city&&a.district&&a.address),de=({module:a})=>{D.value=!0,a&&a.id!=null&&(O.value=a)},ue=()=>{const a=O.value;if(!a||a.id==null){m.error("Akıllı Rota Servisi modülü yapılandırması bulunamadı. Lütfen destek ile iletiÅime geçin.");return}K("QssModulePurchaseModal",{moduleId:Number(a.id),moduleKey:"smart-route",title:"Akıllı Rota Servisi",description:"Ajanda kayıtlarınız için en verimli ziyaret rotasını otomatik hesaplayın; zaman ve maliyet tasarrufu saÄlayın.",price:a.price??null,emit:{onPurchased:de}})},ce=a=>{if(!H(a))return;if(!D.value){ue();return}const e=l=>{const{latitude:o,longitude:u,accuracy:s}=(l==null?void 0:l.coords)||l||{};if(o==null||u==null){m.error("Canlı konum alınamadı. Lütfen tekrar deneyin.");return}$("QssSmartRoute",{currentPosition:{latitude:o,longitude:u,accuracy:s??null},order:a})};if(je()){if(typeof window>"u"){m.error("Canlı konum servisine eriÅilemiyor.");return}const l=o=>{if(!o||typeof o.data!="string")return;let u;try{u=JSON.parse(o.data)}catch{return}if((u==null?void 0:u.type)==="locationPermissionResult"){if(window.removeEventListener("message",l),!u.granted){m.error("Konum izni verilmediÄi için Akıllı Rota özelliÄini kullanamazsınız.");return}if(!u.position){m.error("Canlı konum bilgisi alınamadı. Lütfen tekrar deneyin.");return}e(u.position)}};if(window.addEventListener("message",l),window.WVChannel)try{Pe({type:"requestLocationPermission"})}catch{window.removeEventListener("message",l),m.error("Konum izni istenirken bir hata oluÅtu.");return}else{window.removeEventListener("message",l),m.error("Native kanal bulunamadı.");return}return}if(typeof window>"u"||!("geolocation"in navigator)){m.error("Cihazınızda canlı konum servisi desteklenmiyor.");return}navigator.geolocation.getCurrentPosition(l=>{e(l)},l=>{(l==null?void 0:l.code)===l.PERMISSION_DENIED?m.error("Canlı konum izni verilmediÄi
6için Akıllı Rota özelliÄini kullanamazsınız."):(l==null?void 0:l.code)===l.POSITION_UNAVAILABLE?m.error("Canlı konum bilgisine Åu anda ulaÅılamıyor. Lütfen tekrar deneyin."):(l==null?void 0:l.code)===l.TIMEOUT?m.error("Canlı konum alınırken zaman aÅımı oluÅtu. Lütfen tekrar deneyin."):m.error("Canlı konum alınırken bir hata oluÅtu.")},{enableHighAccuracy:!0,timeout:1e4,maximumAge:0})},pe=()=>{w.data.length||w.get(),E.value.length||ie(),L.value=!0},q=()=>{L.value=!1},me=async()=>{if(!n.value.date||!n.value.name){m.error("Tarih ve İŠAdı alanları zorunludur.");return}j.value=!0;try{const a=w.data.find(o=>!o.parent_id&&o.id===n.value.city_id),e=w.data.find(o=>o.parent_id===n.value.city_id&&o.id===n.value.district_id&&o.type==="district"),l={date:ne(n.value.date),name:n.value.name,detail:n.value.detail||null,sector:n.value.sector||null,city_id:n.value.city_id,district_id:n.value.district_id,city:(a==null?void 0:a.name)??null,district:(e==null?void 0:e.name)??null,address:n.value.address||null,price:n.value.price===""||n.value.price===null?null:Number(n.value.price),notification:!!n.value.notification};await C.post("order-books",l),m.success("Ajanda kaydı oluÅturuldu."),oe(),q(),await T()}catch{}finally{j.value=!1}},be=a=>{a!=null&&a.id&&(h.value=a,P.value=!0)},ye=async()=>{const a=h.value;if(a!=null&&a.id){k.value=a.id;try{await C.delete(`order-books/${a.id}`),m.success("Ajanda kaydı silindi."),A.value=A.value.filter(e=>e.id!==a.id)}catch{}finally{k.value=null,P.value=!1,h.value=null}}},fe=()=>{P.value=!1,h.value=null},Q=a=>{_.value&&(a<1||a>c.value.last_page||T(a))};return we(()=>{T(),re()}),(a,e)=>{var u;const l=Y("VueDatePicker"),o=Y("v-select");return i(),r("div",Oe,[t("header",Ee,[t("div",Te,[t("button",{class:"absolute top-1/2 -translate-y-1/2 left-4 border border-gray-300 rounded-box w-8 h-8 flex items-center justify-center",onClick:e[0]||(e[0]=s=>a.$emit("close")),type:"button"},[g(f(De),{class:"w-5 h-5 text-base-content"})]),e[13]||(e[13]=t("h1",{class:"text-lg font-medium"},"Ajanda",-1))])]),t("main",Be,[e[34]||(e[34]=t("section",{class:"p-3 rounded-box border border-amber-200 bg-amber-50 text-xs text-amber-900"},[t("p",{class:"font-semibold mb-1"}," Hatırlatıcı Modülü "),t("p",null," Ajandaya notlar alabilir ve bu notların tarihi yaklaÅtıkça bildirimler alabilirsiniz. ")],-1)),t("section",Ie,[t("div",Ue,[t("div",$e,[e[15]||(e[15]=t("h2",{class:"text-sm font-semibold"}," Ajanda ",-1)),t("button",{type:"button",class:"btn btn-cep btn-xs rounded-[7px] px-3 h-8 min-h-0 flex items-center gap-1",onClick:pe},[g(f(G),{class:"w-4 h-4"}),e[14]||(e[14]=v(" Yeni Kayıt "))])]),t("div",Ke,[t("button",{type:"button",class:W(["flex-1 py-1.5 text-xs font-medium rounded-[7px] border transition-colors","bg-primary text-white border-primary"]),disabled:""}," Kayıtlar "),t("button",{type:"button",class:"flex-1 py-1.5 text-xs font-medium rounded-[7px] border border-gray-200 text-gray-600 hover:bg-gray-50 flex items-center justify-center gap-1",onClick:e[1]||(e[1]=s=>f($)("QSSStatisticPanel"))},[g(f(Le),{class:"w-3 h-3"}),e[16]||(e[16]=v(" İstatistik "))])])]),V.value?(i(),r("div",Fe,e[17]||(e[17]=[t("span",{class:"loading loading-spinner"},null,-1)]))):!V.value&&A.value.length===0?(i(),r("div",He," Henüz ajanda kaydı bulunmuyor. Yukarıdan ilk kaydınızı ekleyebilirsiniz. ")):(i(),r("div",qe,[(i(!0),r(Ae,null,Se(A.value,s=>(i(),r("article",{key:s.id,class:"relative overflow-hidden rounded-[10px] border border-gray-100 bg-white/90 shadow-sm hover:shadow-md transition-shadow flex flex-col gap-2 p-3"},[e[19]||(e[19]=t("div",{class:"absolute inset-x-0 top-0 h-1 bg-gradient-to-r from-primary via-sky-400 to-emerald-400"},null,-1)),t("div",Qe,[t("div",Ye,[t("div",We,[t("h3",Ge,p(s.name),1),t("span",Je,p(f(Me)(s.date)),1)]),s.detail?(i(),r("p",Xe,p(s.detail),1)):y("",!0),s.sector?(i(),r("div",Ze,[t("span",et,[e[18]||(e[18]=t("span",{class:"w-1.5 h-1.5 rounded-[7px] bg-amber-500"},null,-1)),v(" "+p(s.sector),1)])])):y("",!0),s.city||s.district||s.address?(i(),r("p",tt,[s.city||s.district?(i(),r("span",at,[v(p(s.city),1),s.city&&s.district?(i(),r("span",st," / ")):y("",!0),v(p(s.district),1)])):y("",!0),s.address?(i(),r("span",lt,[s.city||s.district?(i(),r("span",nt," - ")):y("",!0),v(p(s.address),1)])):y("",!0)])):y("",!0),s.price!==null&&s.price!==void 0?(i(),r("p",ot,p(f(ze)(s.price,0)),1)):y("",!0)]),t("div",it,[H(s)?(i(),r("button",{key:0,t
6ype:"button",class:"btn btn-cep btn-xs rounded-[7px] px-3 h-7 min-h-0",onClick:S=>ce(s)},p(D.value?"Akıllı rota hesapla":"Akıllı rota modülü"),9,rt)):y("",!0),t("button",{type:"button",class:"btn btn-ghost btn-xs text-red-500 hover:text-red-600 hover:bg-red-50 rounded-[7px] w-7 h-7 min-h-0 flex items-center justify-center",disabled:k.value===s.id,onClick:S=>be(s)},[k.value===s.id?(i(),r("span",ut)):(i(),Ce(f(Ne),{key:1,class:"w-4 h-4"}))],8,dt)])])]))),128)),_.value?(i(),r("div",ct,[t("span",null,p(ee.value)+"â"+p(te.value)+" / "+p(c.value.total),1),t("div",pt,[t("button",{type:"button",class:"btn btn-ghost btn-xs h-6 min-h-0 px-2",disabled:!X.value,onClick:e[2]||(e[2]=s=>Q(c.value.current_page-1))}," Ãnceki ",8,mt),t("span",null,p(c.value.current_page)+" / "+p(c.value.last_page),1),t("button",{type:"button",class:"btn btn-ghost btn-xs h-6 min-h-0 px-2",disabled:!Z.value,onClick:e[3]||(e[3]=s=>Q(c.value.current_page+1))}," Sonraki ",8,bt)])])):y("",!0)]))]),L.value?(i(),r("div",yt,[t("div",ft,[t("div",{class:"flex items-center justify-between mb-2"},[e[20]||(e[20]=t("h2",{class:"text-sm font-semibold"}," Yeni Ajanda Kaydı ",-1)),t("button",{type:"button",class:"btn btn-ghost btn-xs rounded-[7px] w-7 h-7 min-h-0",onClick:q}," â ")]),t("div",vt,[t("div",xt,[e[21]||(e[21]=t("label",{class:"label py-1 text-xs"}," Tarih ",-1)),g(l,{modelValue:n.value.date,"onUpdate:modelValue":e[4]||(e[4]=s=>n.value.date=s),locale:"tr","cancel-text":"İptal","format-locale":f(Re),format:"dd.MM.yyyy HH:mm","select-text":"Seç","time-picker-inline":"",placeholder:"Tarih ve saat",class:W(["date-picker-range-mode",{"date-picker-empty":!n.value.date}])},null,8,["modelValue","format-locale","class"])]),t("div",gt,[e[22]||(e[22]=t("label",{class:"label py-1 text-xs"}," İŠAdı ",-1)),z(t("input",{type:"text",class:"input input-bordered input-sm w-full text-sm","onUpdate:modelValue":e[5]||(e[5]=s=>n.value.name=s),placeholder:"Ãrn: Perde montajı"},null,512),[[R,n.value.name]])]),t("div",kt,[e[23]||(e[23]=t("label",{class:"label py-1 text-xs"}," İŠDetayı ",-1)),z(t("textarea",{class:"textarea textarea-bordered textarea-sm min-h-20 w-full resize-none text-sm","onUpdate:modelValue":e[6]||(e[6]=s=>n.value.detail=s),placeholder:"Ãrn: Saat 10:00'da ölçü ve montaj"},null,512),[[R,n.value.detail]])]),t("div",ht,[e[24]||(e[24]=t("label",{class:"label py-1 text-xs"}," Sektör (opsiyonel) ",-1)),g(o,{class:"w-full bg-white rounded text-sm",options:le.value,modelValue:n.value.sector,"onUpdate:modelValue":e[7]||(e[7]=s=>n.value.sector=s),taggable:!0,"push-tags":"",placeholder:"Sektör seçin veya yazın",clearable:!0},null,8,["options","modelValue"])]),t("div",_t,[t("div",wt,[e[25]||(e[25]=t("label",{class:"label py-1 text-xs"}," İl (opsiyonel) ",-1)),g(o,{class:"w-full bg-white rounded text-sm",placeholder:"İl",options:ae.value,modelValue:n.value.city_id,"onUpdate:modelValue":e[8]||(e[8]=s=>n.value.city_id=s),label:"name",reduce:s=>s.id,clearable:!0},null,8,["options","modelValue","reduce"])]),t("div",At,[e[26]||(e[26]=t("label",{class:"label py-1 text-xs"}," İlçe (opsiyonel) ",-1)),g(o,{class:"w-full bg-white rounded text-sm",placeholder:n.value.city_id?"İlçe":"Ãnce il seçin",options:se.value,modelValue:n.value.district_id,"onUpdate:modelValue":e[9]||(e[9]=s=>n.value.district_id=s),label:"name",reduce:s=>s.id,disabled:!n.value.city_id,clearable:!0},null,8,["placeholder","options","modelValue","reduce","disabled"])])]),t("div",St,[e[27]||(e[27]=t("label",{class:"label py-1 text-xs"}," Adres (opsiyonel) ",-1)),z(t("textarea",{class:"textarea textarea-bordered textarea-sm min-h-16 w-full resize-none text-sm","onUpdate:modelValue":e[10]||(e[10]=s=>n.value.address=s),placeholder:"Adres bilgisi"},null,512),[[R,n.value.address]])]),t("div",Mt,[e[28]||(e[28]=t("label",{class:"label py-1 text-xs"}," Fiyat (opsiyonel) ",-1)),z(t("input",{type:"number",min:"0",step:"1",class:"input input-bordered input-sm w-full text-sm","onUpdate:modelValue":e[11]||(e[11]=s=>n.value.price=s),placeholder:"Ãrn: 3500"},null,512),[[R,n.value.price]])]),t("div",zt,[t("label",Ct,[z(t("input",{type:"checkbox",class:"checkbox checkbox-sm checkbox-primary","onUpdate:modelValue":e[12]||(e[12]=s=>n.value.notification=s)},null,512),[[Ve,n.value.notification]]),e[29]||(e[29]=t("span",{class:"label-text text-xs"},"Bildirim almak ister misiniz?",-1))])])]),t("button",{class:"btn btn-cep btn-sm w-full mt-3 flex items-center justify-center gap-1",type:"button",disabled:j.value,onClick:me},[j.value?(i(),r("span",jt)):(i(),r("span",Pt,[g(f(G),{class:"w-4 h-4"}),e[30]||(e[30]=v(" Kaydı OluÅtur "))]))],8,Vt)])])):y("",!0),P.value?(i(),r("div",Dt,[t("div",Nt,[e[33]||(e[33]=t("h3",{class:"text-sm font-semibold mb-2"},"Kaydı silmek istiyor musunuz?",-1)),t("p",Rt,[e[31]||(e[31]=v(" Bu iÅlem geri alınamaz. ")),(u=h.value)!=null&&u.name?(i(),r("span",Lt,'"'+p(h.value.name)+'"',1)):y("",!0),e[32]||(e[32]=v(" ajanda kaydı kalıcı olarak silinecektir. "))]),t("div",Ot,[t("button",{type:"button",class:"btn btn-ghost btn-xs px-3",onClick:fe,disabled:!!k.value}," Vazgeç ",8,Et),t("button",{type:"button",class:"btn btn-error bt
6n-xs px-3 text-white",onClick:ye,disabled:!!k.value},[k.value?(i(),r("span",Bt)):(i(),r("span",It,"Sil"))],8,Tt)])])])):y("",!0)])])}}};export{Yt 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.