frontend admin refakctorálás

This commit is contained in:
Roo
2026-07-08 08:03:57 +00:00
parent 07b59032ce
commit 2e0abc62a7
455 changed files with 14428 additions and 21651 deletions

View File

@@ -1,5 +1,5 @@
{
"date": "2026-07-01T23:33:48.876Z",
"date": "2026-07-08T00:48:23.113Z",
"preset": "node-server",
"framework": {
"name": "nuxt",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{ac as _,l as u,m as a}from"./BsgqXOrB.js";const h=_("region",()=>{const t=u([]),n=u(null),c=u(!1),l=u(null),o=a(()=>t.value.find(e=>e.country_code==="DEFAULT")||null),s=a(()=>{const e=new Map;for(const r of t.value)e.set(r.country_code,r);return e}),i=a(()=>n.value?.currency||o.value?.currency||"EUR"),v=a(()=>n.value?.locale_code||o.value?.locale_code||"en-EU"),f=a(()=>n.value?.default_vat_rate??o.value?.default_vat_rate??0),d=a(()=>n.value?.timezone||o.value?.timezone||"Europe/Brussels");async function g(){if(!(t.value.length>0)){c.value=!0,l.value=null;try{const e=await $fetch("/api/v1/system/regions");t.value=e||[]}catch(e){l.value=e?.data?.detail||e?.message||"Failed to load regions",console.error("[RegionStore] Fetch error:",e)}finally{c.value=!1}}}function m(e){const r=t.value.find(R=>R.country_code===e);n.value=r||o.value}function y(e){return s.value.get(e)}return{regions:t,activeRegion:n,isLoading:c,error:l,defaultRegion:o,regionMap:s,activeCurrency:i,activeLocale:v,activeVatRate:f,activeTimezone:d,fetchRegions:g,setActiveRegion:m,getRegion:y}});export{h as u};
import{ab as _,l as u,m as a}from"./CQHa_U7G.js";const h=_("region",()=>{const t=u([]),n=u(null),c=u(!1),l=u(null),o=a(()=>t.value.find(e=>e.country_code==="DEFAULT")||null),s=a(()=>{const e=new Map;for(const r of t.value)e.set(r.country_code,r);return e}),i=a(()=>n.value?.currency||o.value?.currency||"EUR"),v=a(()=>n.value?.locale_code||o.value?.locale_code||"en-EU"),f=a(()=>n.value?.default_vat_rate??o.value?.default_vat_rate??0),d=a(()=>n.value?.timezone||o.value?.timezone||"Europe/Brussels");async function g(){if(!(t.value.length>0)){c.value=!0,l.value=null;try{const e=await $fetch("/api/v1/system/regions");t.value=e||[]}catch(e){l.value=e?.data?.detail||e?.message||"Failed to load regions",console.error("[RegionStore] Fetch error:",e)}finally{c.value=!1}}}function m(e){const r=t.value.find(R=>R.country_code===e);n.value=r||o.value}function y(e){return s.value.get(e)}return{regions:t,activeRegion:n,isLoading:c,error:l,defaultRegion:o,regionMap:s,activeCurrency:i,activeLocale:v,activeVatRate:f,activeTimezone:d,fetchRegions:g,setActiveRegion:m,getRegion:y}});export{h as u};

View File

@@ -1 +1 @@
import{S as a,h as i,G as o,s as l,U as c}from"./BsgqXOrB.js";const h=a(async(s,f)=>{let t,r;if(s.path==="/login")return;if(!i("access_token").value)return o("/login");const e=l();if(!e.user)try{[t,r]=c(()=>e.fetchUser()),await t,r()}catch{return e.logout(),o("/login")}if(!e.user)return e.logout(),o("/login");const n=["SUPERADMIN","ADMIN","MODERATOR","SALES_REP","SERVICE_MGR"],u=(e.user.role||"").toUpperCase();if(!n.includes(u))return e.logout(),o("/login")});export{h as default};
import{S as a,h as i,G as o,s as l,U as c}from"./CQHa_U7G.js";const h=a(async(s,f)=>{let t,r;if(s.path==="/login")return;if(!i("access_token").value)return o("/login");const e=l();if(!e.user)try{[t,r]=c(()=>e.fetchUser()),await t,r()}catch{return e.logout(),o("/login")}if(!e.user)return e.logout(),o("/login");const n=["SUPERADMIN","ADMIN","MODERATOR","SALES_REP","SERVICE_MGR"],u=(e.user.role||"").toUpperCase();if(!n.includes(u))return e.logout(),o("/login")});export{h as default};

View File

@@ -1 +1 @@
import{_ as y}from"./8DBoKuB3.js";import{p as v,e as h,q as _,s as k,c as r,a as t,v as S,i as s,t as c,j as u,x as V,y as p,z as m,A as x,b as L,w as C,l as f,o as i,d as N}from"./BsgqXOrB.js";const A=v("/sf_logo.png"),B={class:"min-h-screen bg-slate-900 flex items-center justify-center px-4"},E={class:"w-full max-w-md"},R={class:"bg-slate-800 rounded-xl shadow-2xl border border-slate-700 p-8"},j={key:0,class:"mb-6 p-3 rounded-lg bg-red-900/40 border border-red-700 text-red-300 text-sm"},q=["disabled"],D={key:0,class:"animate-spin h-5 w-5 text-white",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},F={class:"mt-6 text-center"},z=h({__name:"login",setup(I){const a=f(""),l=f(""),b=_(),o=k();async function g(){try{await o.login(a.value,l.value),b.push("/")}catch(d){console.error("Login failed:",d)}}return(d,e)=>{const w=y;return i(),r("div",B,[t("div",E,[e[6]||(e[6]=S('<div class="text-center mb-8"><div class="flex items-center justify-center gap-3 mb-4"><img src="'+A+'" class="h-12 w-auto drop-shadow-md" alt="ServiceFinder Logo"><span class="text-3xl font-extrabold tracking-wider"><span class="text-white">SERVICE</span><span class="text-cyan-400">FINDER</span></span></div><h1 class="text-xl font-semibold text-slate-300">Staff Portal</h1><p class="text-sm text-slate-500 mt-1">Authorised personnel only</p></div>',1)),t("div",R,[s(o).error?(i(),r("div",j,c(s(o).error),1)):u("",!0),t("form",{onSubmit:V(g,["prevent"]),class:"space-y-5"},[t("div",null,[e[2]||(e[2]=t("label",{for:"email",class:"block text-sm font-medium text-slate-300 mb-1.5"}," Email Address ",-1)),p(t("input",{id:"email","onUpdate:modelValue":e[0]||(e[0]=n=>x(a)?a.value=n:null),type:"email",autocomplete:"email",required:"",placeholder:"admin@example.com",class:"w-full px-4 py-2.5 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-cyan-500 focus:border-transparent transition"},null,512),[[m,s(a)]])]),t("div",null,[e[3]||(e[3]=t("label",{for:"password",class:"block text-sm font-medium text-slate-300 mb-1.5"}," Password ",-1)),p(t("input",{id:"password","onUpdate:modelValue":e[1]||(e[1]=n=>x(l)?l.value=n:null),type:"password",autocomplete:"current-password",required:"",placeholder:"••••••••",class:"w-full px-4 py-2.5 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-cyan-500 focus:border-transparent transition"},null,512),[[m,s(l)]])]),t("button",{type:"submit",disabled:s(o).isLoading,class:"w-full py-2.5 px-4 bg-cyan-600 hover:bg-cyan-500 disabled:bg-cyan-800 disabled:cursor-not-allowed text-white font-semibold rounded-lg transition duration-200 flex items-center justify-center gap-2"},[s(o).isLoading?(i(),r("svg",D,[...e[4]||(e[4]=[t("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),t("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"},null,-1)])])):u("",!0),t("span",null,c(s(o).isLoading?"Signing in...":"Sign In"),1)],8,q)],32),t("div",F,[L(w,{to:"/",class:"text-sm text-slate-500 hover:text-cyan-400 transition"},{default:C(()=>[...e[5]||(e[5]=[N(" ← Back to ServiceFinder ",-1)])]),_:1})])])])])}}});export{z as default};
import{_ as y}from"./DRkNpQ1P.js";import{p as v,e as h,q as _,s as k,c as r,a as t,v as S,i as s,t as c,j as u,x as V,y as p,z as m,A as x,b as L,w as C,l as f,o as i,d as N}from"./CQHa_U7G.js";const A=v("/sf_logo.png"),B={class:"min-h-screen bg-slate-900 flex items-center justify-center px-4"},E={class:"w-full max-w-md"},R={class:"bg-slate-800 rounded-xl shadow-2xl border border-slate-700 p-8"},j={key:0,class:"mb-6 p-3 rounded-lg bg-red-900/40 border border-red-700 text-red-300 text-sm"},q=["disabled"],D={key:0,class:"animate-spin h-5 w-5 text-white",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},F={class:"mt-6 text-center"},z=h({__name:"login",setup(I){const a=f(""),l=f(""),b=_(),o=k();async function g(){try{await o.login(a.value,l.value),b.push("/")}catch(d){console.error("Login failed:",d)}}return(d,e)=>{const w=y;return i(),r("div",B,[t("div",E,[e[6]||(e[6]=S('<div class="text-center mb-8"><div class="flex items-center justify-center gap-3 mb-4"><img src="'+A+'" class="h-12 w-auto drop-shadow-md" alt="ServiceFinder Logo"><span class="text-3xl font-extrabold tracking-wider"><span class="text-white">SERVICE</span><span class="text-cyan-400">FINDER</span></span></div><h1 class="text-xl font-semibold text-slate-300">Staff Portal</h1><p class="text-sm text-slate-500 mt-1">Authorised personnel only</p></div>',1)),t("div",R,[s(o).error?(i(),r("div",j,c(s(o).error),1)):u("",!0),t("form",{onSubmit:V(g,["prevent"]),class:"space-y-5"},[t("div",null,[e[2]||(e[2]=t("label",{for:"email",class:"block text-sm font-medium text-slate-300 mb-1.5"}," Email Address ",-1)),p(t("input",{id:"email","onUpdate:modelValue":e[0]||(e[0]=n=>x(a)?a.value=n:null),type:"email",autocomplete:"email",required:"",placeholder:"admin@example.com",class:"w-full px-4 py-2.5 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-cyan-500 focus:border-transparent transition"},null,512),[[m,s(a)]])]),t("div",null,[e[3]||(e[3]=t("label",{for:"password",class:"block text-sm font-medium text-slate-300 mb-1.5"}," Password ",-1)),p(t("input",{id:"password","onUpdate:modelValue":e[1]||(e[1]=n=>x(l)?l.value=n:null),type:"password",autocomplete:"current-password",required:"",placeholder:"••••••••",class:"w-full px-4 py-2.5 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-cyan-500 focus:border-transparent transition"},null,512),[[m,s(l)]])]),t("button",{type:"submit",disabled:s(o).isLoading,class:"w-full py-2.5 px-4 bg-cyan-600 hover:bg-cyan-500 disabled:bg-cyan-800 disabled:cursor-not-allowed text-white font-semibold rounded-lg transition duration-200 flex items-center justify-center gap-2"},[s(o).isLoading?(i(),r("svg",D,[...e[4]||(e[4]=[t("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),t("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"},null,-1)])])):u("",!0),t("span",null,c(s(o).isLoading?"Signing in...":"Sign In"),1)],8,q)],32),t("div",F,[L(w,{to:"/",class:"text-sm text-slate-500 hover:text-cyan-400 transition"},{default:C(()=>[...e[5]||(e[5]=[N(" ← Back to ServiceFinder ",-1)])]),_:1})])])])])}}});export{z as default};

View File

@@ -1 +0,0 @@
import{_ as s}from"./DlAUqK2U.js";import{o,c as t,V as r}from"./BsgqXOrB.js";const c={},n={class:"bg-slate-900 min-h-screen"};function a(e,l){return o(),t("div",n,[r(e.$slots,"default")])}const d=s(c,[["render",a]]);export{d as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{_ as a}from"./8DBoKuB3.js";import{_ as i}from"./DlAUqK2U.js";import{u,o as c,c as l,a as e,t as r,b as d,w as p,d as f}from"./BsgqXOrB.js";const m={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},g={class:"max-w-520px text-center z-20"},b=["textContent"],h=["textContent"],x={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},status:{type:Number,default:404},statusText:{type:String,default:"Not Found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(t){const n=t;return u({title:`${n.status} - ${n.statusText} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,o)=>{const s=a;return c(),l("div",m,[o[0]||(o[0]=e("div",{class:"fixed left-0 right-0 spotlight z-10"},null,-1)),e("div",g,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:r(t.status)},null,8,b),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:r(t.description)},null,8,h),e("div",x,[d(s,{to:"/",class:"cursor-pointer gradient-border px-4 py-2 sm:px-6 sm:py-3 sm:text-xl text-md"},{default:p(()=>[f(r(t.backHome),1)]),_:1})])])])}}},z=i(y,[["__scopeId","data-v-1bd9e11a"]]);export{z as default};
import{_ as a}from"./DRkNpQ1P.js";import{_ as i}from"./DlAUqK2U.js";import{u,o as c,c as l,a as e,t as r,b as d,w as p,d as f}from"./CQHa_U7G.js";const m={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},g={class:"max-w-520px text-center z-20"},b=["textContent"],h=["textContent"],x={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},status:{type:Number,default:404},statusText:{type:String,default:"Not Found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(t){const n=t;return u({title:`${n.status} - ${n.statusText} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,o)=>{const s=a;return c(),l("div",m,[o[0]||(o[0]=e("div",{class:"fixed left-0 right-0 spotlight z-10"},null,-1)),e("div",g,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:r(t.status)},null,8,b),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:r(t.description)},null,8,h),e("div",x,[d(s,{to:"/",class:"cursor-pointer gradient-border px-4 py-2 sm:px-6 sm:py-3 sm:text-xl text-md"},{default:p(()=>[f(r(t.backHome),1)]),_:1})])])])}}},z=i(y,[["__scopeId","data-v-1bd9e11a"]]);export{z as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{_ as s}from"./DlAUqK2U.js";import{u as a,o as i,c as u,a as e,t as o}from"./BsgqXOrB.js";const l={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},c={class:"max-w-520px text-center"},d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},status:{type:Number,default:500},statusText:{type:String,default:"Server error"},description:{type:String,default:"This page is temporarily unavailable."}},setup(t){const r=t;return a({title:`${r.status} - ${r.statusText} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(g,n)=>(i(),u("div",l,[n[0]||(n[0]=e("div",{class:"-bottom-1/2 fixed h-1/2 left-0 right-0 spotlight"},null,-1)),e("div",c,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:o(t.status)},null,8,d),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:o(t.description)},null,8,p)])]))}},h=s(f,[["__scopeId","data-v-a01dd0ba"]]);export{h as default};
import{_ as s}from"./DlAUqK2U.js";import{u as a,o as i,c as u,a as e,t as o}from"./CQHa_U7G.js";const l={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},c={class:"max-w-520px text-center"},d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},status:{type:Number,default:500},statusText:{type:String,default:"Server error"},description:{type:String,default:"This page is temporarily unavailable."}},setup(t){const r=t;return a({title:`${r.status} - ${r.statusText} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(g,n)=>(i(),u("div",l,[n[0]||(n[0]=e("div",{class:"-bottom-1/2 fixed h-1/2 left-0 right-0 spotlight"},null,-1)),e("div",c,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:o(t.status)},null,8,d),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:o(t.description)},null,8,p)])]))}},h=s(f,[["__scopeId","data-v-a01dd0ba"]]);export{h as default};

View File

@@ -0,0 +1 @@
import{_ as s}from"./DlAUqK2U.js";import{o,c as t,ac as c}from"./CQHa_U7G.js";const r={},n={class:"bg-slate-900 min-h-screen"};function a(e,l){return o(),t("div",n,[c(e.$slots,"default")])}const d=s(r,[["render",a]]);export{d as default};

View File

@@ -1 +1 @@
import{u as v}from"./VE1TOSQ_.js";function h(){const o=v();function u(t,e){const r=o.activeLocale||"en-EU";try{return new Intl.NumberFormat(r,e).format(t)}catch{return new Intl.NumberFormat("en-EU",e).format(t)}}function a(t,e,r){const c=o.activeLocale||"en-EU",n=e||o.activeCurrency||"EUR";try{return new Intl.NumberFormat(c,{style:"currency",currency:n,minimumFractionDigits:2,maximumFractionDigits:2,...r}).format(t)}catch{return`${t.toFixed(2)} ${n}`}}function s(t,e){const r=o.activeLocale||"en-EU",c=o.activeTimezone||"Europe/Brussels",n=typeof t=="string"||typeof t=="number"?new Date(t):t;try{return new Intl.DateTimeFormat(r,{timezone:c,year:"numeric",month:"2-digit",day:"2-digit",...e}).format(n)}catch{return n.toLocaleDateString("en-GB")}}function l(t,e){const r=o.activeLocale||"en-EU",c=o.activeTimezone||"Europe/Brussels",n=typeof t=="string"||typeof t=="number"?new Date(t):t;try{return new Intl.DateTimeFormat(r,{timezone:c,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",...e}).format(n)}catch{return n.toLocaleString("en-GB")}}function f(t,e){const r=o.activeLocale||"en-EU";try{return new Intl.NumberFormat(r,{style:"percent",minimumFractionDigits:0,maximumFractionDigits:1,...e}).format(t/100)}catch{return`${t}%`}}function m(t,e){const r=e??o.activeVatRate??0,c=t*(r/100),n=t+c;return{net:t,vat:c,gross:n,vatRate:r}}function y(t,e,r){const{net:c,vat:n,gross:g,vatRate:F}=m(t,e),i=r||o.activeCurrency||"EUR";return`Net: ${a(c,i)} | VAT: ${a(n,i)} (${F}%) | Gross: ${a(g,i)}`}return{formatNumber:u,formatCurrency:a,formatDate:s,formatDateTime:l,formatPercent:f,calculatePriceWithVat:m,formatPriceWithVat:y}}export{h as u};
import{u as v}from"./BJMSi7ez.js";function h(){const o=v();function u(t,e){const r=o.activeLocale||"en-EU";try{return new Intl.NumberFormat(r,e).format(t)}catch{return new Intl.NumberFormat("en-EU",e).format(t)}}function a(t,e,r){const c=o.activeLocale||"en-EU",n=e||o.activeCurrency||"EUR";try{return new Intl.NumberFormat(c,{style:"currency",currency:n,minimumFractionDigits:2,maximumFractionDigits:2,...r}).format(t)}catch{return`${t.toFixed(2)} ${n}`}}function s(t,e){const r=o.activeLocale||"en-EU",c=o.activeTimezone||"Europe/Brussels",n=typeof t=="string"||typeof t=="number"?new Date(t):t;try{return new Intl.DateTimeFormat(r,{timezone:c,year:"numeric",month:"2-digit",day:"2-digit",...e}).format(n)}catch{return n.toLocaleDateString("en-GB")}}function l(t,e){const r=o.activeLocale||"en-EU",c=o.activeTimezone||"Europe/Brussels",n=typeof t=="string"||typeof t=="number"?new Date(t):t;try{return new Intl.DateTimeFormat(r,{timezone:c,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",...e}).format(n)}catch{return n.toLocaleString("en-GB")}}function f(t,e){const r=o.activeLocale||"en-EU";try{return new Intl.NumberFormat(r,{style:"percent",minimumFractionDigits:0,maximumFractionDigits:1,...e}).format(t/100)}catch{return`${t}%`}}function m(t,e){const r=e??o.activeVatRate??0,c=t*(r/100),n=t+c;return{net:t,vat:c,gross:n,vatRate:r}}function y(t,e,r){const{net:c,vat:n,gross:g,vatRate:F}=m(t,e),i=r||o.activeCurrency||"EUR";return`Net: ${a(c,i)} | VAT: ${a(n,i)} (${F}%) | Gross: ${a(g,i)}`}return{formatNumber:u,formatCurrency:a,formatDate:s,formatDateTime:l,formatPercent:f,calculatePriceWithVat:m,formatPriceWithVat:y}}export{h as u};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.overflow-y-auto[data-v-b43e13ca]::-webkit-scrollbar{width:6px}.overflow-y-auto[data-v-b43e13ca]::-webkit-scrollbar-track{background:transparent}.overflow-y-auto[data-v-b43e13ca]::-webkit-scrollbar-thumb{background-color:#64748b80;border-radius:3px}

View File

@@ -1 +1 @@
{"id":"6f9d2fef-185e-4f12-92a6-0576fbf7c7d7","timestamp":1782948802731}
{"id":"bef3a16a-9c78-4db9-a4d6-ffacc52b99bc","timestamp":1783471677331}

View File

@@ -1 +0,0 @@
{"id":"6f9d2fef-185e-4f12-92a6-0576fbf7c7d7","timestamp":1782948802731,"prerendered":[]}

View File

@@ -0,0 +1 @@
{"id":"bef3a16a-9c78-4db9-a4d6-ffacc52b99bc","timestamp":1783471677331,"prerendered":[]}

View File

@@ -1 +1 @@
{"id":"dev","timestamp":1782948803075,"prerendered":[]}
{"id":"dev","timestamp":1783471677704,"prerendered":[]}

View File

@@ -0,0 +1 @@
.overflow-y-auto[data-v-1a169f11]::-webkit-scrollbar{width:4px}.overflow-y-auto[data-v-1a169f11]::-webkit-scrollbar-track{background:transparent}.overflow-y-auto[data-v-1a169f11]::-webkit-scrollbar-thumb{background:#64748b4d;border-radius:2px}

View File

@@ -1 +0,0 @@
.overflow-y-auto[data-v-b43e13ca]::-webkit-scrollbar{width:6px}.overflow-y-auto[data-v-b43e13ca]::-webkit-scrollbar-track{background:transparent}.overflow-y-auto[data-v-b43e13ca]::-webkit-scrollbar-thumb{background-color:#64748b80;border-radius:3px}.overflow-y-auto[data-v-ab22d560]::-webkit-scrollbar{width:6px}.overflow-y-auto[data-v-ab22d560]::-webkit-scrollbar-track{background:transparent}.overflow-y-auto[data-v-ab22d560]::-webkit-scrollbar-thumb{background-color:#64748b80;border-radius:3px}.overflow-y-auto[data-v-ab22d560]::-webkit-scrollbar-thumb:hover{background-color:#64748bb3}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
.animate-slide-up[data-v-c684092a]{animation:slideUp-c684092a .3s ease-out}@keyframes slideUp-c684092a{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}

View File

@@ -0,0 +1 @@
.timeline-enter-active[data-v-c3cb1099]{transition:all .3s ease-out}.timeline-enter-from[data-v-c3cb1099]{opacity:0;transform:translate(-10px)}

View File

@@ -1 +0,0 @@
input[type=range][data-v-5941cb1d]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#6366f1;border:2px solid #1e293b;border-radius:50%;cursor:pointer;height:16px;width:16px}input[type=range][data-v-5941cb1d]::-moz-range-thumb{background:#6366f1;border:2px solid #1e293b;border-radius:50%;cursor:pointer;height:16px;width:16px}.timeline-enter-active[data-v-5941cb1d]{transition:all .3s ease-out}.timeline-enter-from[data-v-5941cb1d]{opacity:0;transform:translate(-10px)}

View File

@@ -0,0 +1 @@
.animate-slide-up[data-v-aee9c48f]{animation:slideUp-aee9c48f .3s ease-out}@keyframes slideUp-aee9c48f{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}

View File

@@ -1 +0,0 @@
.animate-slide-up[data-v-9dff1238]{animation:slideUp-9dff1238 .3s ease-out}@keyframes slideUp-9dff1238{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}

View File

@@ -0,0 +1 @@
.animate-slide-up[data-v-7dd923ab]{animation:slideUp-7dd923ab .3s ease-out}@keyframes slideUp-7dd923ab{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}

View File

@@ -0,0 +1 @@
.animate-slide-up[data-v-4522f6a1]{animation:slideUp-4522f6a1 .3s ease-out}@keyframes slideUp-4522f6a1{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}

View File

@@ -1 +0,0 @@
.animate-slide-up[data-v-956f226d]{animation:slideUp-956f226d .3s ease-out}@keyframes slideUp-956f226d{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}

View File

@@ -0,0 +1 @@
.animate-slide-up[data-v-7a2ac5d4]{animation:slideUp-7a2ac5d4 .3s ease-out}@keyframes slideUp-7a2ac5d4{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,154 @@
import { defineComponent, computed, ref, watch, mergeProps, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderAttr, ssrInterpolate, ssrRenderList, ssrRenderClass } from 'vue/server-renderer';
import { _ as _export_sfc } from './_plugin-vue_export-helper-1tPrXgE0.mjs';
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
__name: "SmartLocationInput",
__ssrInlineRender: true,
props: {
modelValue: { default: null },
label: { default: "" },
placeholder: { default: "Kezdj el g\xE9pelni (ir\xE1ny\xEDt\xF3sz\xE1m vagy v\xE1ros)..." },
minChars: { default: 2 },
countryCode: { default: "HU" },
debounceMs: { default: 300 }
},
emits: ["update:modelValue", "select"],
setup(__props, { emit: __emit }) {
const props = __props;
ref(null);
const query = ref("");
const selectedItem = ref(props.modelValue);
const items = ref([]);
const searching = ref(false);
const showDropdown = ref(false);
const highlightedIndex = ref(0);
const displayText = computed(() => {
if (selectedItem.value) {
return `${selectedItem.value.zip_code} ${selectedItem.value.city}`;
}
return query.value;
});
const filteredItems = computed(() => {
if (!query.value || query.value.length < props.minChars) return [];
const q = query.value.toLowerCase();
return items.value.filter(
(item) => item.zip_code.toLowerCase().includes(q) || item.city.toLowerCase().includes(q)
);
});
watch(
() => props.modelValue,
(val) => {
selectedItem.value = val;
}
);
return (_ctx, _push, _parent, _attrs) => {
_push(`<div${ssrRenderAttrs(mergeProps({ class: "relative" }, _attrs))} data-v-b43e13ca>`);
if (__props.label) {
_push(`<label class="block text-sm font-medium text-slate-300 mb-1" data-v-b43e13ca>${ssrInterpolate(__props.label)}</label>`);
} else {
_push(`<!---->`);
}
_push(`<div class="relative" data-v-b43e13ca><input${ssrRenderAttr("value", displayText.value)}${ssrRenderAttr("placeholder", __props.placeholder)} class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-b43e13ca>`);
if (searching.value) {
_push(`<svg class="absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 animate-spin text-slate-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-b43e13ca><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-b43e13ca></path></svg>`);
} else {
_push(`<!---->`);
}
if (selectedItem.value && !searching.value) {
_push(`<button class="absolute right-3 top-1/2 -translate-y-1/2 text-slate-500 hover:text-white transition" type="button" data-v-b43e13ca><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-b43e13ca><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" data-v-b43e13ca></path></svg></button>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
if (showDropdown.value && filteredItems.value.length > 0) {
_push(`<div class="absolute z-50 mt-1 w-full bg-slate-800 border border-slate-600 rounded-lg shadow-xl max-h-60 overflow-y-auto" data-v-b43e13ca><!--[-->`);
ssrRenderList(filteredItems.value, (item, index) => {
_push(`<button class="${ssrRenderClass([index === highlightedIndex.value ? "bg-indigo-500/20 text-white" : "text-slate-300 hover:bg-slate-700", "w-full text-left px-3 py-2 text-sm transition flex items-center gap-2"])}" data-v-b43e13ca><span class="font-mono text-indigo-400" data-v-b43e13ca>${ssrInterpolate(item.zip_code)}</span><span data-v-b43e13ca>${ssrInterpolate(item.city)}</span><span class="text-xs text-slate-500 ml-auto" data-v-b43e13ca>${ssrInterpolate(item.country_code)}</span></button>`);
});
_push(`<!--]--></div>`);
} else {
_push(`<!---->`);
}
if (showDropdown.value && query.value.length >= __props.minChars && filteredItems.value.length === 0 && !searching.value) {
_push(`<div class="absolute z-50 mt-1 w-full bg-slate-800 border border-slate-600 rounded-lg shadow-xl p-3 text-sm text-slate-400" data-v-b43e13ca> Nincs tal\xE1lat </div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
};
}
});
const _sfc_setup$1 = _sfc_main$1.setup;
_sfc_main$1.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/SmartLocationInput.vue");
return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
};
const __nuxt_component_0 = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-b43e13ca"]]);
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "SharedAddressForm",
__ssrInlineRender: true,
props: {
modelValue: { default: () => ({
zip: null,
city: null,
street_name: null,
street_type: null,
house_number: null,
stairwell: null,
floor: null,
door: null,
parcel_id: null,
full_address_text: null,
latitude: null,
longitude: null
}) }
},
emits: ["update:modelValue"],
setup(__props, { emit: __emit }) {
const props = __props;
const emit = __emit;
const selectedLocation = computed(() => {
var _a, _b;
if (((_a = props.modelValue) == null ? void 0 : _a.zip) && ((_b = props.modelValue) == null ? void 0 : _b.city)) {
return {
id: 0,
// We don't have the DB id here, but SmartLocationInput handles this
zip_code: props.modelValue.zip,
city: props.modelValue.city,
country_code: "HU"
};
}
return null;
});
function onLocationSelected(location) {
if (location) {
const updated = { ...props.modelValue };
updated.zip = location.zip_code;
updated.city = location.city;
emit("update:modelValue", updated);
}
}
return (_ctx, _push, _parent, _attrs) => {
const _component_SmartLocationInput = __nuxt_component_0;
_push(`<div${ssrRenderAttrs(_attrs)}><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 mb-6"><h2 class="text-lg font-semibold text-white mb-4">C\xEDm adatok</h2><div class="grid grid-cols-1 md:grid-cols-2 gap-4"><div class="md:col-span-2">`);
_push(ssrRenderComponent(_component_SmartLocationInput, {
"model-value": selectedLocation.value,
"onUpdate:modelValue": onLocationSelected,
label: "Ir\xE1ny\xEDt\xF3sz\xE1m / V\xE1ros",
placeholder: "Kezdj el g\xE9pelni (pl. 1011 vagy Budapest)..."
}, null, _parent));
_push(`<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mt-3"><div><label class="block text-xs font-medium text-slate-400 mb-1">Ir\xE1ny\xEDt\xF3sz\xE1m (k\xE9zi)</label><input${ssrRenderAttr("value", __props.modelValue.zip)} placeholder="pl. 1151" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm"></div><div><label class="block text-xs font-medium text-slate-400 mb-1">V\xE1ros (k\xE9zi)</label><input${ssrRenderAttr("value", __props.modelValue.city)} placeholder="pl. Budapest" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm"></div></div></div><div><label class="block text-sm font-medium text-slate-300 mb-1">Utca neve</label><input${ssrRenderAttr("value", __props.modelValue.street_name)} placeholder="pl. Egressy" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm"></div><div><label class="block text-sm font-medium text-slate-300 mb-1">K\xF6zter\xFClet jellege</label><select${ssrRenderAttr("value", __props.modelValue.street_type)} class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm"><option value="">V\xE1lassz...</option><option value="utca">utca</option><option value="\xFAt">\xFAt</option><option value="t\xE9r">t\xE9r</option><option value="k\xF6r\xFAt">k\xF6r\xFAt</option><option value="sug\xE1r\xFAt">sug\xE1r\xFAt</option><option value="k\xF6z">k\xF6z</option><option value="s\xE9t\xE1ny">s\xE9t\xE1ny</option><option value="lak\xF3park">lak\xF3park</option><option value="liget">liget</option><option value="erd\u0151">erd\u0151</option><option value="d\u0171l\u0151">d\u0171l\u0151</option><option value="major">major</option><option value="puszta">puszta</option><option value="sziget">sziget</option><option value="telep">telep</option></select></div><div><label class="block text-sm font-medium text-slate-300 mb-1">H\xE1zsz\xE1m</label><input${ssrRenderAttr("value", __props.modelValue.house_number)} placeholder="pl. 4/b" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm"></div><div><label class="block text-sm font-medium text-slate-300 mb-1">L\xE9pcs\u0151h\xE1z</label><input${ssrRenderAttr("value", __props.modelValue.stairwell)} placeholder="pl. 1" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm"></div><div><label class="block text-sm font-medium text-slate-300 mb-1">Emelet</label><input${ssrRenderAttr("value", __props.modelValue.floor)} placeholder="pl. 3" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm"></div><div><label class="block text-sm font-medium text-slate-300 mb-1">Ajt\xF3</label><input${ssrRenderAttr("value", __props.modelValue.door)} placeholder="pl. A" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm"></div><div><label class="block text-sm font-medium text-slate-300 mb-1">Helyrajzi sz\xE1m (hrsz)</label><input${ssrRenderAttr("value", __props.modelValue.parcel_id)} placeholder="pl. 12345/6" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm"></div></div></div></div>`);
};
}
});
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/SharedAddressForm.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
export { _sfc_main as _ };
//# sourceMappingURL=SharedAddressForm-rsg7wrlQ.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -1,8 +0,0 @@
import { S as SmartLocationInput_vue_vue_type_style_index_0_scoped_b43e13ca_lang } from './edit-styles-1.mjs-J0c-7dzy.mjs';
const SmartLocationInputStyles_D3314zoG = [
SmartLocationInput_vue_vue_type_style_index_0_scoped_b43e13ca_lang
];
export { SmartLocationInputStyles_D3314zoG as default };
//# sourceMappingURL=SmartLocationInput-styles.D3314zoG.mjs.map

View File

@@ -1 +0,0 @@
{"version":3,"file":"SmartLocationInput-styles.D3314zoG.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/SmartLocationInput-styles.D3314zoG.mjs"],"names":["style_0"],"mappings":";;AACA,0CAAe;AACf,EAAEA;AACF;;;;"}

View File

@@ -1,4 +1,8 @@
const SmartLocationInput_vue_vue_type_style_index_0_scoped_b43e13ca_lang = ".overflow-y-auto[data-v-b43e13ca]::-webkit-scrollbar{width:6px}.overflow-y-auto[data-v-b43e13ca]::-webkit-scrollbar-track{background:transparent}.overflow-y-auto[data-v-b43e13ca]::-webkit-scrollbar-thumb{background-color:#64748b80;border-radius:3px}";
export { SmartLocationInput_vue_vue_type_style_index_0_scoped_b43e13ca_lang as S };
//# sourceMappingURL=edit-styles-1.mjs-J0c-7dzy.mjs.map
const SmartLocationInputStyles_Dznnqi4V = [
SmartLocationInput_vue_vue_type_style_index_0_scoped_b43e13ca_lang
];
export { SmartLocationInputStyles_Dznnqi4V as default };
//# sourceMappingURL=SmartLocationInput-styles.Dznnqi4V.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"SmartLocationInput-styles.Dznnqi4V.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/SmartLocationInput-styles-1.mjs-J0c-7dzy.js","../../../../.nuxt/dist/server/_nuxt/SmartLocationInput-styles.Dznnqi4V.mjs"],"names":["style_0"],"mappings":"AAAA,MAAM,kEAAA,GAAqE,2PAAA;;ACC3E,0CAAe;AACf,EAAEA;AACF;;;;"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
import { _ as __nuxt_component_0 } from './nuxt-link-1NBbHb-h.mjs';
import { defineComponent, ref, computed, mergeProps, withCtx, createVNode, toDisplayString, unref, openBlock, createBlock, createTextVNode, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrRenderClass, ssrRenderComponent, ssrRenderAttr, ssrRenderList, ssrRenderStyle, ssrInterpolate, ssrRenderSlot } from 'vue/server-renderer';
import { b as useRouter, c as useAuthStore, a as useI18n } from './server.mjs';
import { ssrRenderAttrs, ssrRenderClass, ssrRenderComponent, ssrRenderAttr, ssrInterpolate, ssrRenderList, ssrRenderStyle, ssrRenderSlot } from 'vue/server-renderer';
import { a as useI18n, b as useRouter, c as useAuthStore } from './server.mjs';
import { p as publicAssetsURL } from '../nitro/nitro.mjs';
import { useRoute } from 'vue-router';
import { u as useRegionStore } from './region-0mvXqaMM.mjs';
@@ -83,6 +83,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "default",
__ssrInlineRender: true,
setup(__props) {
const { t } = useI18n();
const route = useRoute();
useRouter();
const authStore = useAuthStore();
@@ -91,8 +92,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
const sidebarCollapsed = ref(false);
const dropdownOpen = ref(false);
ref(null);
const expandedGroups = ref(/* @__PURE__ */ new Set(["K\xF6zpont"]));
const userEmail = computed(() => authStore.userEmail || "Ismeretlen Felhaszn\xE1l\xF3");
const expandedGroups = ref(/* @__PURE__ */ new Set(["menu.center"]));
const userEmail = computed(() => authStore.userEmail || t("common.unknown_user"));
const userInitials = computed(() => {
const email = authStore.userEmail;
if (!email) return "??";
@@ -100,30 +101,30 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
});
const menuGroups = [
{
title: "K\xF6zpont",
title: "menu.center",
items: [
{
path: "/",
label: "Dashboard",
label: "menu.dashboard",
icon: '<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" /></svg>'
}
]
},
{
title: "Szolg\xE1ltat\xF3k",
title: "menu.providers_title",
items: [
{
label: "Szolg\xE1ltat\xF3k",
label: "menu.providers",
icon: '<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4" /></svg>',
children: [
{
path: "/providers",
label: "\xD6sszes szolg\xE1ltat\xF3",
label: "menu.all_providers",
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" /></svg>'
},
{
path: "/providers/pending",
label: "J\xF3v\xE1hagy\xE1sra v\xE1r\xF3",
label: "menu.pending_providers",
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" /></svg>'
}
]
@@ -131,31 +132,31 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
]
},
{
title: "Felhaszn\xE1l\xF3k & Partnerek",
title: "menu.users_and_partners",
items: [
{
label: "Gar\xE1zsok",
label: "menu.garages",
icon: '<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4" /></svg>',
children: [
{
path: "/garages",
label: "Gar\xE1zsok list\xE1ja",
label: "menu.garage_list",
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" /></svg>'
}
]
},
{
label: "Felhaszn\xE1l\xF3k",
label: "menu.users",
icon: '<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197m13.5-9a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0z" /></svg>',
children: [
{
path: "/users",
label: "Felhaszn\xE1l\xF3k list\xE1ja",
label: "menu.user_list",
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197m13.5-9a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0z" /></svg>'
},
{
path: "/persons",
label: "Szem\xE9lyek",
label: "menu.persons",
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z" /></svg>'
}
]
@@ -163,109 +164,114 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
]
},
{
title: "P\xE9nz\xFCgyek",
title: "menu.finance",
items: [
{
path: "/packages",
label: "Csomagok",
label: "menu.packages",
icon: '<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20.25 7.5l-.625 10.632a2.25 2.25 0 01-2.247 2.118H6.622a2.25 2.25 0 01-2.247-2.118L3.75 7.5m8.25 3v6.75m0 0l-3-3m3 3l3-3M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z" /></svg>'
}
]
},
{
title: "Gamification",
title: "menu.gamification",
items: [
{
label: "J\xE1t\xE9kmenet Be\xE1ll\xEDt\xE1sok",
label: "menu.game_settings",
icon: '<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" /><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z" /></svg>',
children: [
{
path: "/gamification/point-rules",
label: "Pontszab\xE1lyok",
label: "menu.point_rules",
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" /></svg>'
},
{
path: "/gamification/levels",
label: "Szintek",
label: "menu.levels",
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6" /></svg>'
},
{
path: "/gamification/badges",
label: "Kit\xFCntet\xE9sek",
label: "menu.badges",
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z" /></svg>'
},
{
path: "/gamification/validation-rules",
label: "menu.validation_rules",
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z" /></svg>'
}
]
},
{
label: "Esem\xE9nyek & Szezonok",
label: "menu.events_and_seasons",
icon: '<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" /></svg>',
children: [
{
path: "/gamification/seasons",
label: "Szezonok",
label: "menu.seasons",
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" /></svg>'
},
{
path: "/gamification/competitions",
label: "Versenyek",
label: "menu.competitions",
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 100 4 2 2 0 000-4z" /></svg>'
}
]
},
{
label: "Felhaszn\xE1l\xF3i Adatok",
label: "menu.user_data",
icon: '<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0z" /></svg>',
children: [
{
path: "/gamification/users",
label: "Statisztik\xE1k",
label: "menu.statistics",
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" /></svg>'
},
{
path: "/gamification/leaderboard",
label: "Ranglista",
label: "menu.leaderboard",
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z" /></svg>'
},
{
path: "/gamification/ledger",
label: "Pontnapl\xF3",
label: "menu.ledger",
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" /></svg>'
}
]
},
{
path: "/gamification",
label: "Gamification HQ",
label: "menu.gamification_hq",
icon: '<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z" /></svg>'
},
{
path: "/gamification/config",
label: "Rendszer Konfig",
label: "menu.system_config",
icon: '<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" /><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z" /></svg>'
},
{
path: "/gamification/parameters",
label: "Rendszerparam\xE9terek",
label: "menu.system_parameters",
icon: '<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4" /></svg>'
}
]
},
{
title: "Rendszer",
title: "menu.system",
items: [
{
path: "/permissions",
label: "Jogosults\xE1gok",
label: "menu.permissions",
icon: '<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z" /></svg>'
},
{
label: "Rendszernapl\xF3k",
label: "menu.system_logs",
icon: '<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" /></svg>',
children: [
{
path: "/",
/* P0 HOTFIX: placeholder until /logs page is built */
label: "Rendszernapl\xF3k",
label: "menu.system_logs",
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" /></svg>'
}
]
@@ -274,34 +280,35 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}
];
const pageTitle = computed(() => {
if (route.path === "/") return "Dashboard";
if (route.path.startsWith("/permissions")) return "Jogosults\xE1g Kezel\xE9s";
if (route.path.startsWith("/garages")) return "Gar\xE1zsok";
if (route.path.startsWith("/persons")) return "Szem\xE9lyek";
if (route.path.startsWith("/users")) return "Felhaszn\xE1l\xF3k";
if (route.path.startsWith("/logs")) return "Rendszernapl\xF3k";
if (route.path.startsWith("/packages")) return "Csomagok";
if (route.path === "/") return "menu.dashboard";
if (route.path.startsWith("/permissions")) return "permissions.title";
if (route.path.startsWith("/garages")) return "menu.garages";
if (route.path.startsWith("/persons")) return "menu.persons";
if (route.path.startsWith("/users")) return "menu.users";
if (route.path.startsWith("/logs")) return "menu.system_logs";
if (route.path.startsWith("/packages")) return "menu.packages";
if (route.path.startsWith("/providers")) {
if (route.path === "/providers/pending") return "J\xF3v\xE1hagy\xE1sra v\xE1r\xF3 szolg\xE1ltat\xF3k";
if (route.path.startsWith("/providers/")) return "Szolg\xE1ltat\xF3 r\xE9szletek";
return "Szolg\xE1ltat\xF3k";
if (route.path === "/providers/pending") return "providers.pending_title";
if (route.path.startsWith("/providers/")) return "providers.provider_detail";
return "providers.title";
}
if (route.path.startsWith("/gamification")) {
if (route.path === "/gamification") return "Gamification HQ";
if (route.path === "/gamification/point-rules") return "Pontszab\xE1lyok";
if (route.path === "/gamification/levels") return "Szintek";
if (route.path === "/gamification/badges") return "Kit\xFCntet\xE9sek";
if (route.path === "/gamification/seasons") return "Szezonok";
if (route.path === "/gamification/competitions") return "Versenyek";
if (route.path === "/gamification/users") return "Gamification Felhaszn\xE1l\xF3k";
if (route.path.startsWith("/gamification/users/")) return "Felhaszn\xE1l\xF3 Gamification";
if (route.path === "/gamification/leaderboard") return "Ranglista";
if (route.path === "/gamification/config") return "Rendszer Konfig";
if (route.path === "/gamification/parameters") return "Rendszerparam\xE9terek";
if (route.path === "/gamification/ledger") return "Pontnapl\xF3";
return "Gamification";
if (route.path === "/gamification") return "menu.gamification_hq";
if (route.path === "/gamification/point-rules") return "menu.point_rules";
if (route.path === "/gamification/levels") return "menu.levels";
if (route.path === "/gamification/badges") return "menu.badges";
if (route.path === "/gamification/seasons") return "menu.seasons";
if (route.path === "/gamification/competitions") return "menu.competitions";
if (route.path === "/gamification/users") return "gamification.users.title";
if (route.path.startsWith("/gamification/users/")) return "gamification.users.user_detail_title";
if (route.path === "/gamification/leaderboard") return "menu.leaderboard";
if (route.path === "/gamification/config") return "menu.system_config";
if (route.path === "/gamification/parameters") return "menu.system_parameters";
if (route.path === "/gamification/ledger") return "menu.points_ledger";
if (route.path === "/gamification/validation-rules") return "menu.validation_rules";
return "menu.gamification";
}
return "Admin Panel";
return "common.admin_panel";
});
function isActive(path) {
if (path === "/") return route.path === "/";
@@ -330,7 +337,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<div class="flex items-center gap-3 min-w-0"${_scopeId}><img${ssrRenderAttr("src", _imports_0)} class="h-8 w-auto flex-shrink-0" alt="SF Logo"${_scopeId}><div class="${ssrRenderClass([sidebarOpen.value || !sidebarCollapsed.value ? "opacity-100 max-w-[200px]" : "opacity-0 max-w-0", "transition-all duration-300 ease-in-out overflow-hidden whitespace-nowrap"])}"${_scopeId}><div class="text-sm font-bold text-white leading-tight"${_scopeId}>Service Finder</div><div class="text-[10px] font-semibold uppercase tracking-wider text-indigo-400 leading-tight"${_scopeId}>Admin</div></div></div>`);
_push2(`<div class="flex items-center gap-3 min-w-0"${_scopeId}><img${ssrRenderAttr("src", _imports_0)} class="h-8 w-auto flex-shrink-0" alt="SF Logo"${_scopeId}><div class="${ssrRenderClass([sidebarOpen.value || !sidebarCollapsed.value ? "opacity-100 max-w-[200px]" : "opacity-0 max-w-0", "transition-all duration-300 ease-in-out overflow-hidden whitespace-nowrap"])}"${_scopeId}><div class="text-sm font-bold text-white leading-tight"${_scopeId}>${ssrInterpolate(_ctx.$t("common.service_finder"))}</div><div class="text-[10px] font-semibold uppercase tracking-wider text-indigo-400 leading-tight"${_scopeId}>${ssrInterpolate(_ctx.$t("common.admin"))}</div></div></div>`);
} else {
return [
createVNode("div", { class: "flex items-center gap-3 min-w-0" }, [
@@ -342,8 +349,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
createVNode("div", {
class: ["transition-all duration-300 ease-in-out overflow-hidden whitespace-nowrap", sidebarOpen.value || !sidebarCollapsed.value ? "opacity-100 max-w-[200px]" : "opacity-0 max-w-0"]
}, [
createVNode("div", { class: "text-sm font-bold text-white leading-tight" }, "Service Finder"),
createVNode("div", { class: "text-[10px] font-semibold uppercase tracking-wider text-indigo-400 leading-tight" }, "Admin")
createVNode("div", { class: "text-sm font-bold text-white leading-tight" }, toDisplayString(_ctx.$t("common.service_finder")), 1),
createVNode("div", { class: "text-[10px] font-semibold uppercase tracking-wider text-indigo-400 leading-tight" }, toDisplayString(_ctx.$t("common.admin")), 1)
], 2)
])
];
@@ -353,12 +360,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}, _parent));
_push(`<button class="hidden lg:flex items-center justify-center h-10 mx-2 mt-2 rounded-lg text-slate-400 hover:text-white hover:bg-slate-700 transition flex-shrink-0"><svg class="${ssrRenderClass([{ "rotate-180": sidebarCollapsed.value }, "w-5 h-5 transition-transform duration-300"])}" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 19l-7-7 7-7m8 14l-7-7 7-7"></path></svg></button><nav class="flex-1 px-2 py-4 space-y-2 overflow-y-auto overflow-x-hidden"><!--[-->`);
ssrRenderList(menuGroups, (group) => {
_push(`<!--[--><div class="px-3 py-1 text-xs font-semibold uppercase tracking-wider text-slate-500 whitespace-nowrap overflow-hidden" style="${ssrRenderStyle(sidebarOpen.value || !sidebarCollapsed.value ? null : { display: "none" })}">${ssrInterpolate(group.title)}</div><!--[-->`);
_push(`<!--[--><div class="px-3 py-1 text-xs font-semibold uppercase tracking-wider text-slate-500 whitespace-nowrap overflow-hidden" style="${ssrRenderStyle(sidebarOpen.value || !sidebarCollapsed.value ? null : { display: "none" })}">${ssrInterpolate(_ctx.$t(group.title))}</div><!--[-->`);
ssrRenderList(group.items, (item) => {
var _a;
_push(`<!--[-->`);
if (item.children) {
_push(`<div><button class="${ssrRenderClass([isGroupActive(item) ? "bg-indigo-600/20 text-indigo-300" : "text-slate-300 hover:bg-slate-700 hover:text-white", "flex items-center w-full gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition"])}"><span class="flex-shrink-0 w-5 h-5">${(_a = item.icon) != null ? _a : ""}</span><span class="${ssrRenderClass([sidebarOpen.value || !sidebarCollapsed.value ? "opacity-100 max-w-[200px]" : "opacity-0 max-w-0", "flex-1 text-left whitespace-nowrap overflow-hidden transition-all duration-300 ease-in-out"])}">${ssrInterpolate(item.label)}</span><svg class="${ssrRenderClass([{
_push(`<div><button class="${ssrRenderClass([isGroupActive(item) ? "bg-indigo-600/20 text-indigo-300" : "text-slate-300 hover:bg-slate-700 hover:text-white", "flex items-center w-full gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition"])}"><span class="flex-shrink-0 w-5 h-5">${(_a = item.icon) != null ? _a : ""}</span><span class="${ssrRenderClass([sidebarOpen.value || !sidebarCollapsed.value ? "opacity-100 max-w-[200px]" : "opacity-0 max-w-0", "flex-1 text-left whitespace-nowrap overflow-hidden transition-all duration-300 ease-in-out"])}">${ssrInterpolate(_ctx.$t(item.label))}</span><svg class="${ssrRenderClass([{
"rotate-90": expandedGroups.value.has(item.label),
"opacity-100": sidebarOpen.value || !sidebarCollapsed.value,
"opacity-0": sidebarCollapsed.value && !sidebarOpen.value
@@ -373,14 +380,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
default: withCtx((_, _push2, _parent2, _scopeId) => {
var _a2;
if (_push2) {
_push2(`<span class="flex-shrink-0 w-4 h-4"${_scopeId}>${(_a2 = child.icon) != null ? _a2 : ""}</span><span class="whitespace-nowrap overflow-hidden"${_scopeId}>${ssrInterpolate(child.label)}</span>`);
_push2(`<span class="flex-shrink-0 w-4 h-4"${_scopeId}>${(_a2 = child.icon) != null ? _a2 : ""}</span><span class="whitespace-nowrap overflow-hidden"${_scopeId}>${ssrInterpolate(_ctx.$t(child.label))}</span>`);
} else {
return [
createVNode("span", {
class: "flex-shrink-0 w-4 h-4",
innerHTML: child.icon
}, null, 8, ["innerHTML"]),
createVNode("span", { class: "whitespace-nowrap overflow-hidden" }, toDisplayString(child.label), 1)
createVNode("span", { class: "whitespace-nowrap overflow-hidden" }, toDisplayString(_ctx.$t(child.label)), 1)
];
}
}),
@@ -397,7 +404,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
default: withCtx((_, _push2, _parent2, _scopeId) => {
var _a2;
if (_push2) {
_push2(`<span class="flex-shrink-0 w-5 h-5"${_scopeId}>${(_a2 = item.icon) != null ? _a2 : ""}</span><span class="${ssrRenderClass([sidebarOpen.value || !sidebarCollapsed.value ? "opacity-100 max-w-[200px]" : "opacity-0 max-w-0", "whitespace-nowrap overflow-hidden transition-all duration-300 ease-in-out"])}"${_scopeId}>${ssrInterpolate(item.label)}</span>`);
_push2(`<span class="flex-shrink-0 w-5 h-5"${_scopeId}>${(_a2 = item.icon) != null ? _a2 : ""}</span><span class="${ssrRenderClass([sidebarOpen.value || !sidebarCollapsed.value ? "opacity-100 max-w-[200px]" : "opacity-0 max-w-0", "whitespace-nowrap overflow-hidden transition-all duration-300 ease-in-out"])}"${_scopeId}>${ssrInterpolate(_ctx.$t(item.label))}</span>`);
} else {
return [
createVNode("span", {
@@ -406,7 +413,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}, null, 8, ["innerHTML"]),
createVNode("span", {
class: ["whitespace-nowrap overflow-hidden transition-all duration-300 ease-in-out", sidebarOpen.value || !sidebarCollapsed.value ? "opacity-100 max-w-[200px]" : "opacity-0 max-w-0"]
}, toDisplayString(item.label), 3)
}, toDisplayString(_ctx.$t(item.label)), 3)
];
}
}),
@@ -417,11 +424,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
});
_push(`<!--]--><!--]-->`);
});
_push(`<!--]--></nav><div class="p-4 border-t border-slate-700 overflow-hidden"><div class="${ssrRenderClass([sidebarOpen.value || !sidebarCollapsed.value ? "opacity-100 max-w-[200px]" : "opacity-0 max-w-0", "text-xs text-slate-500 whitespace-nowrap transition-all duration-300 ease-in-out"])}"> ServiceFinder v2.0 </div></div></aside><div class="flex-1 flex flex-col min-w-0 transition-all duration-300 ease-in-out"><header class="sticky top-0 z-10 bg-slate-800/95 backdrop-blur-sm border-b border-slate-700"><div class="flex items-center justify-between h-16 px-4 lg:px-6"><div class="flex items-center gap-3"><button class="lg:hidden p-2 rounded-lg text-slate-400 hover:text-white hover:bg-slate-700 transition"><svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path></svg></button><h1 class="text-lg font-semibold text-white truncate">${ssrInterpolate(pageTitle.value)}</h1></div><div class="flex items-center gap-3">`);
_push(`<!--]--></nav><div class="p-4 border-t border-slate-700 overflow-hidden"><div class="${ssrRenderClass([sidebarOpen.value || !sidebarCollapsed.value ? "opacity-100 max-w-[200px]" : "opacity-0 max-w-0", "text-xs text-slate-500 whitespace-nowrap transition-all duration-300 ease-in-out"])}">${ssrInterpolate(_ctx.$t("common.service_finder"))} ${ssrInterpolate(_ctx.$t("common.version"))}</div></div></aside><div class="flex-1 flex flex-col min-w-0 transition-all duration-300 ease-in-out"><header class="sticky top-0 z-10 bg-slate-800/95 backdrop-blur-sm border-b border-slate-700"><div class="flex items-center justify-between h-16 px-4 lg:px-6"><div class="flex items-center gap-3"><button class="lg:hidden p-2 rounded-lg text-slate-400 hover:text-white hover:bg-slate-700 transition"><svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path></svg></button><h1 class="text-lg font-semibold text-white truncate">${ssrInterpolate(_ctx.$t(pageTitle.value))}</h1></div><div class="flex items-center gap-3">`);
_push(ssrRenderComponent(_component_LanguageSwitcher, null, null, _parent));
_push(`<div class="relative"><button class="flex items-center gap-2 p-1.5 rounded-lg hover:bg-slate-700 transition"><div class="w-8 h-8 rounded-full bg-indigo-600 flex items-center justify-center text-sm font-bold text-white">${ssrInterpolate(userInitials.value)}</div><span class="hidden sm:block text-sm text-slate-300">${ssrInterpolate(userEmail.value)}</span><svg class="w-4 h-4 text-slate-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></button>`);
if (dropdownOpen.value) {
_push(`<div class="absolute right-0 mt-2 w-56 bg-slate-800 border border-slate-700 rounded-xl shadow-xl py-1 z-50"><div class="px-4 py-3 border-b border-slate-700"><p class="text-sm font-medium text-white">${ssrInterpolate(userEmail.value)}</p><p class="text-xs text-slate-400 mt-0.5">${ssrInterpolate(unref(authStore).userRole === "SUPERADMIN" ? "Super Administrator" : unref(authStore).userRole || "Administrator")}</p></div>`);
_push(`<div class="absolute right-0 mt-2 w-56 bg-slate-800 border border-slate-700 rounded-xl shadow-xl py-1 z-50"><div class="px-4 py-3 border-b border-slate-700"><p class="text-sm font-medium text-white">${ssrInterpolate(userEmail.value)}</p><p class="text-xs text-slate-400 mt-0.5">${ssrInterpolate(unref(authStore).userRole === "SUPERADMIN" ? _ctx.$t("common.super_administrator") : _ctx.$t("common.administrator"))}</p></div>`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/profile",
class: "flex items-center gap-3 px-4 py-2.5 text-sm text-slate-300 hover:bg-slate-700 hover:text-white transition",
@@ -429,7 +436,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"${_scopeId}><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"${_scopeId}></path></svg> Profile Settings `);
_push2(`<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"${_scopeId}><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"${_scopeId}></path></svg> ${ssrInterpolate(_ctx.$t("common.profile_settings"))}`);
} else {
return [
(openBlock(), createBlock("svg", {
@@ -445,13 +452,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
d: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"
})
])),
createTextVNode(" Profile Settings ")
createTextVNode(" " + toDisplayString(_ctx.$t("common.profile_settings")), 1)
];
}
}),
_: 1
}, _parent));
_push(`<button class="flex items-center gap-3 w-full px-4 py-2.5 text-sm text-red-400 hover:bg-slate-700 hover:text-red-300 transition"><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1"></path></svg> Sign Out </button></div>`);
_push(`<button class="flex items-center gap-3 w-full px-4 py-2.5 text-sm text-red-400 hover:bg-slate-700 hover:text-red-300 transition"><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1"></path></svg> ${ssrInterpolate(_ctx.$t("common.sign_out"))}</button></div>`);
} else {
_push(`<!---->`);
}
@@ -469,4 +476,4 @@ _sfc_main.setup = (props, ctx) => {
};
export { _sfc_main as default };
//# sourceMappingURL=default-BU4PyScw.mjs.map
//# sourceMappingURL=default-Fh6lSdpd.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,436 @@
import { defineComponent, computed, ref, reactive, createVNode, resolveDynamicComponent, unref, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrInterpolate, ssrRenderList, ssrRenderClass, ssrRenderVNode, ssrRenderAttr, ssrIncludeBooleanAttr, ssrRenderComponent, ssrLooseContain, ssrRenderTeleport, ssrRenderStyle } from 'vue/server-renderer';
import { a as useI18n } from './server.mjs';
import { _ as _sfc_main$2 } from './SharedAddressForm-rsg7wrlQ.mjs';
import { u as useCategories, _ as _sfc_main$3 } from './useCategories-CDBFMe6d.mjs';
import { useRoute, useRouter } from 'vue-router';
import { _ as _export_sfc } from './_plugin-vue_export-helper-1tPrXgE0.mjs';
import '../nitro/nitro.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'node:url';
import 'pinia';
import '../routes/renderer.mjs';
import 'vue-bundle-renderer/runtime';
import 'unhead/server';
import 'devalue';
import 'unhead/utils';
import 'unhead/plugins';
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
__name: "TreeNode",
__ssrInlineRender: true,
props: {
node: {},
selectedIds: {},
expandedIds: {}
},
emits: ["toggle", "toggle-expand"],
setup(__props) {
var _a;
let currentLocale = "hu";
try {
const i18n = useI18n();
currentLocale = ((_a = i18n.locale) == null ? void 0 : _a.value) || i18n.locale || "hu";
} catch {
}
function resolveNodeLabel(node) {
var _a2, _b;
if ((_a2 = node.name_i18n) == null ? void 0 : _a2[currentLocale]) {
return node.name_i18n[currentLocale];
}
if ((_b = node.name_i18n) == null ? void 0 : _b.hu) {
return node.name_i18n.hu;
}
if (node.name_hu) {
return node.name_hu;
}
return node.key;
}
return (_ctx, _push, _parent, _attrs) => {
var _a2;
const _component_TreeNode = _sfc_main$1;
_push(`<div${ssrRenderAttrs(_attrs)}><div class="flex items-center gap-2 py-1"><button class="text-slate-500 hover:text-slate-300 transition w-4 h-4 flex items-center justify-center"><svg class="${ssrRenderClass([__props.expandedIds.has(__props.node.id) ? "rotate-90" : "", "w-3 h-3 transition-transform"])}" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path></svg></button><label class="flex items-center gap-2 cursor-pointer flex-1"><input type="checkbox"${ssrIncludeBooleanAttr(__props.selectedIds.includes(__props.node.id)) ? " checked" : ""} class="w-4 h-4 rounded border-slate-500 bg-slate-700 text-indigo-500 focus:ring-indigo-500/50"><span class="text-sm text-slate-300">${ssrInterpolate(resolveNodeLabel(__props.node))}</span><span class="text-xs text-slate-500">(Szint ${ssrInterpolate(__props.node.level)})</span></label></div>`);
if (__props.expandedIds.has(__props.node.id) && ((_a2 = __props.node.children) == null ? void 0 : _a2.length)) {
_push(`<div class="ml-6 border-l border-slate-700 pl-3"><!--[-->`);
ssrRenderList(__props.node.children, (child) => {
_push(`<div>`);
_push(ssrRenderComponent(_component_TreeNode, {
node: child,
"selected-ids": __props.selectedIds,
"expanded-ids": __props.expandedIds,
onToggle: (id) => _ctx.$emit("toggle", id),
onToggleExpand: (id) => _ctx.$emit("toggle-expand", id)
}, null, _parent));
_push(`</div>`);
});
_push(`<!--]--></div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
};
}
});
const _sfc_setup$1 = _sfc_main$1.setup;
_sfc_main$1.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/TreeNode.vue");
return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
};
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "edit",
__ssrInlineRender: true,
setup(__props) {
var _a;
const { t } = useI18n();
let currentLocale = "hu";
try {
const i18n = useI18n();
currentLocale = ((_a = i18n.locale) == null ? void 0 : _a.value) || i18n.locale || "hu";
} catch {
}
function resolveNodeLabel(node) {
var _a2, _b;
if ((_a2 = node.name_i18n) == null ? void 0 : _a2[currentLocale]) {
return node.name_i18n[currentLocale];
}
if ((_b = node.name_i18n) == null ? void 0 : _b.hu) {
return node.name_i18n.hu;
}
if (node.name_hu) {
return node.name_hu;
}
return node.key;
}
const VEHICLE_CLASSES = [
{ key: "car", label: t("providers.detail_vehicle_class_car") },
{ key: "motorcycle", label: t("providers.detail_vehicle_class_motorcycle") },
{ key: "truck", label: t("providers.detail_vehicle_class_truck") },
{ key: "hgv", label: t("providers.detail_vehicle_class_hgv") },
{ key: "light_commercial", label: t("providers.detail_vehicle_class_light_commercial") },
{ key: "personal", label: t("providers.detail_vehicle_class_personal") },
{ key: "boat", label: t("providers.detail_vehicle_class_boat") },
{ key: "other", label: t("providers.detail_vehicle_class_other") }
];
const route = useRoute();
useRouter();
const providerId = computed(() => Number(route.params.id));
const { getCategoryName, getCategoryParentId } = useCategories();
const loading = ref(true);
const error = ref(false);
const provider = ref(null);
const saveLoading = ref(false);
const toast = ref(null);
const isRawDataDrawerOpen = ref(false);
const drawerWidth = ref(512);
ref(false);
const activeTab = ref("basic");
const tabs = [
{ key: "basic", label: t("providers.edit_tab_basic"), icon: "svg" },
{ key: "matrix", label: t("providers.edit_tab_matrix"), icon: "svg" },
{ key: "location", label: t("providers.edit_tab_location"), icon: "svg" },
{ key: "hours", label: t("providers.edit_tab_hours"), icon: "svg" }
];
const categoryTree = ref([]);
const treeLoading = ref(false);
const expandedNodes = ref(/* @__PURE__ */ new Set());
const brandInput = ref("");
const propulsionInput = ref("");
const form = reactive({
name: "",
category: "",
contact_phone: "",
contact_email: "",
website: "",
plus_code: "",
status: "active",
supported_vehicle_classes: [],
category_ids: [],
/** CRITICAL: specializations MUST be an object with brands and propulsion arrays */
specializations: {
brands: [],
propulsion: []
},
/** CRITICAL: opening_hours MUST be an object (not null) */
opening_hours: {},
/** CRITICAL: address MUST be a fully initialized object */
address: {
zip: null,
city: null,
street_name: null,
street_type: null,
house_number: null,
stairwell: null,
floor: null,
door: null,
parcel_id: null,
full_address_text: null,
latitude: null,
longitude: null
},
is_always_open: false
});
const DAYS = [
{ key: "monday", label: t("providers.detail_day_monday") },
{ key: "tuesday", label: t("providers.detail_day_tuesday") },
{ key: "wednesday", label: t("providers.detail_day_wednesday") },
{ key: "thursday", label: t("providers.detail_day_thursday") },
{ key: "friday", label: t("providers.detail_day_friday") },
{ key: "saturday", label: t("providers.detail_day_saturday") },
{ key: "sunday", label: t("providers.detail_day_sunday") }
];
const trustScoreBadgeClass = computed(() => {
var _a2;
const score = (_a2 = provider.value) == null ? void 0 : _a2.trust_score;
if (score === null || score === void 0) return "bg-slate-700 text-slate-400";
if (score > 80) return "bg-emerald-500/20 text-emerald-400 border border-emerald-500/30";
if (score > 50) return "bg-amber-500/20 text-amber-400 border border-amber-500/30";
return "bg-rose-500/20 text-rose-400 border border-rose-500/30";
});
const hasChanges = computed(() => {
var _a2, _b;
if (!provider.value) return false;
const p = provider.value;
if (form.name !== p.name) return true;
if (form.category !== (p.category || "")) return true;
if (form.contact_phone !== (p.contact_phone || "")) return true;
if (form.contact_email !== (p.contact_email || "")) return true;
if (form.website !== (p.website || "")) return true;
if (form.plus_code !== (p.plus_code || "")) return true;
const origClasses = p.supported_vehicle_classes || [];
if (JSON.stringify(form.supported_vehicle_classes.slice().sort()) !== JSON.stringify([...origClasses].sort())) return true;
const origCats = p.category_ids || [];
if (JSON.stringify(form.category_ids.slice().sort()) !== JSON.stringify([...origCats].sort())) return true;
const origSpec = p.specializations || {};
const formSpec = form.specializations || {};
if (JSON.stringify(formSpec.brands || []) !== JSON.stringify(origSpec.brands || [])) return true;
if (JSON.stringify(formSpec.propulsion || []) !== JSON.stringify(origSpec.propulsion || [])) return true;
const origHours = p.opening_hours || {};
const formHours = form.opening_hours || {};
const allDays = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"];
for (const day of allDays) {
const o = origHours[day];
const f = formHours[day];
if (!o && !f) continue;
if (!o || !f) return true;
if (o.open !== f.open || o.close !== f.close) return true;
}
const addr = p.address_detail || {};
const fAddr = form.address;
if (fAddr.zip !== (addr.zip || addr.address_zip || null)) return true;
if (fAddr.city !== (addr.city || null)) return true;
if (fAddr.street_name !== (addr.street_name || addr.address_street_name || null)) return true;
if (fAddr.street_type !== (addr.street_type || addr.address_street_type || null)) return true;
if (fAddr.house_number !== (addr.house_number || addr.address_house_number || null)) return true;
if (fAddr.stairwell !== (addr.stairwell || null)) return true;
if (fAddr.floor !== (addr.floor || null)) return true;
if (fAddr.door !== (addr.door || null)) return true;
if (fAddr.parcel_id !== (addr.parcel_id || null)) return true;
if (fAddr.full_address_text !== (addr.full_address_text || null)) return true;
if (fAddr.latitude !== ((_a2 = addr.latitude) != null ? _a2 : null)) return true;
if (fAddr.longitude !== ((_b = addr.longitude) != null ? _b : null)) return true;
return false;
});
function isCategorySelected(id) {
return form.category_ids.includes(id);
}
function toggleCategory(id) {
const idx = form.category_ids.indexOf(id);
if (idx === -1) {
form.category_ids.push(id);
const parentId = getCategoryParentId(id);
if (parentId !== null && parentId !== void 0 && !form.category_ids.includes(parentId)) {
form.category_ids.push(parentId);
console.log(
"P0 AUTO-PARENT: Child category #" + id + " selected, auto-added parent #" + parentId
);
}
} else {
form.category_ids.splice(idx, 1);
}
}
function toggleTreeNode(id) {
const newSet = new Set(expandedNodes.value);
if (newSet.has(id)) {
newSet.delete(id);
} else {
newSet.add(id);
}
expandedNodes.value = newSet;
}
return (_ctx, _push, _parent, _attrs) => {
var _a2, _b, _c;
const _component_TreeNode = _sfc_main$1;
const _component_SharedAddressForm = _sfc_main$2;
const _component_RawDataViewer = _sfc_main$3;
_push(`<div${ssrRenderAttrs(_attrs)} data-v-1a169f11><div class="mb-8" data-v-1a169f11><button class="inline-flex items-center gap-1.5 text-sm text-slate-400 hover:text-white transition mb-4" data-v-1a169f11><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-1a169f11><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7" data-v-1a169f11></path></svg> ${ssrInterpolate(_ctx.$t("providers.edit_back"))}</button><h1 class="text-2xl font-bold text-white" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_title"))}</h1><p class="text-slate-400 mt-1" data-v-1a169f11>${ssrInterpolate(((_a2 = provider.value) == null ? void 0 : _a2.name) || _ctx.$t("providers.detail_provider_number", { id: providerId.value }))}</p></div>`);
if (loading.value) {
_push(`<div class="flex items-center justify-center py-20" data-v-1a169f11><div class="text-slate-400 flex items-center gap-3" data-v-1a169f11><svg class="w-5 h-5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-1a169f11><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-1a169f11></path></svg><span data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_loading"))}</span></div></div>`);
} else if (error.value) {
_push(`<div class="bg-rose-500/10 border border-rose-500/30 rounded-xl p-6 mb-8" data-v-1a169f11><p class="text-rose-400" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_error"))}</p><button class="mt-3 text-sm text-rose-300 hover:text-rose-200 underline" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.retry"))}</button></div>`);
} else if (!provider.value) {
_push(`<div class="bg-slate-800 rounded-xl border border-slate-700 p-6" data-v-1a169f11><p class="text-slate-400 text-center py-12" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_not_found"))}</p></div>`);
} else {
_push(`<!--[--><div class="border-b border-slate-700 mb-6 flex items-center justify-between" data-v-1a169f11><nav class="flex gap-6 -mb-px" data-v-1a169f11><!--[-->`);
ssrRenderList(tabs, (tab) => {
_push(`<button class="${ssrRenderClass([activeTab.value === tab.key ? "text-indigo-400 border-indigo-400" : "text-slate-400 border-transparent hover:text-slate-300", "pb-3 text-sm font-medium border-b-2 transition flex items-center gap-2"])}" data-v-1a169f11>`);
ssrRenderVNode(_push, createVNode(resolveDynamicComponent(tab.icon), { class: "w-4 h-4" }, null), _parent);
_push(` ${ssrInterpolate(tab.label)}</button>`);
});
_push(`<!--]--></nav><button class="${ssrRenderClass([isRawDataDrawerOpen.value ? "bg-indigo-600 text-white shadow-lg shadow-indigo-500/25" : "bg-slate-700 text-slate-300 hover:bg-slate-600 hover:text-white", "flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded-lg transition"])}" data-v-1a169f11><svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-1a169f11><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" data-v-1a169f11></path></svg> \u{1F916} ${ssrInterpolate(_ctx.$t("providers.edit_raw_data"))}</button></div>`);
if (activeTab.value === "basic") {
_push(`<div class="max-w-3xl" data-v-1a169f11><form data-v-1a169f11><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 mb-6" data-v-1a169f11><h2 class="text-lg font-semibold text-white mb-4" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_section_basic"))}</h2><div class="grid grid-cols-1 md:grid-cols-2 gap-4" data-v-1a169f11><div class="md:col-span-2" data-v-1a169f11><label class="block text-sm font-medium text-slate-300 mb-1" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_field_name"))}</label><input${ssrRenderAttr("value", form.name)} required class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-1a169f11></div><div data-v-1a169f11><label class="block text-sm font-medium text-slate-300 mb-1" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_field_category"))}</label><input${ssrRenderAttr("value", form.category)}${ssrRenderAttr("placeholder", _ctx.$t("providers.edit_field_category_placeholder"))} class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-1a169f11></div><div data-v-1a169f11><label class="block text-sm font-medium text-slate-300 mb-1" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_field_source"))}</label><div class="w-full px-3 py-2 bg-slate-700/50 border border-slate-600 rounded-lg text-slate-400 text-sm" data-v-1a169f11>${ssrInterpolate(provider.value.source)}</div></div></div></div><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 mb-6" data-v-1a169f11><h2 class="text-lg font-semibold text-white mb-4" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_section_contact"))}</h2><div class="grid grid-cols-1 md:grid-cols-2 gap-4" data-v-1a169f11><div data-v-1a169f11><label class="block text-sm font-medium text-slate-300 mb-1" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_field_phone"))}</label><input${ssrRenderAttr("value", form.contact_phone)}${ssrRenderAttr("placeholder", _ctx.$t("providers.edit_field_phone_placeholder"))} class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-1a169f11></div><div data-v-1a169f11><label class="block text-sm font-medium text-slate-300 mb-1" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_field_email"))}</label><input${ssrRenderAttr("value", form.contact_email)} type="email"${ssrRenderAttr("placeholder", _ctx.$t("providers.edit_field_email_placeholder"))} class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-1a169f11></div><div class="md:col-span-2" data-v-1a169f11><label class="block text-sm font-medium text-slate-300 mb-1" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_field_website"))}</label><input${ssrRenderAttr("value", form.website)}${ssrRenderAttr("placeholder", _ctx.$t("providers.edit_field_website_placeholder"))} class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-1a169f11></div></div></div></form></div>`);
} else {
_push(`<!---->`);
}
if (activeTab.value === "matrix") {
_push(`<div class="max-w-4xl" data-v-1a169f11><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 mb-6" data-v-1a169f11><h2 class="text-lg font-semibold text-white mb-2" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_section_matrix"))}</h2><p class="text-sm text-slate-400 mb-6" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_section_matrix_desc"))}</p><div class="mb-8" data-v-1a169f11><h3 class="text-md font-medium text-white mb-3 flex items-center gap-2" data-v-1a169f11><span class="w-6 h-6 rounded-full bg-indigo-500/20 text-indigo-400 flex items-center justify-center text-xs font-bold" data-v-1a169f11>A</span> ${ssrInterpolate(_ctx.$t("providers.edit_section_vehicle_classes"))}</h3><p class="text-xs text-slate-500 mb-3" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_section_vehicle_classes_desc"))}</p><div class="grid grid-cols-2 md:grid-cols-4 gap-3" data-v-1a169f11><!--[-->`);
ssrRenderList(VEHICLE_CLASSES, (vc) => {
_push(`<label class="${ssrRenderClass([form.supported_vehicle_classes.includes(vc.key) ? "bg-indigo-500/10 border-indigo-500/40 text-indigo-300" : "bg-slate-700/50 border-slate-600 hover:border-slate-500 text-slate-300", "flex items-center gap-3 p-3 rounded-lg border cursor-pointer transition"])}" data-v-1a169f11><input type="checkbox"${ssrRenderAttr("value", vc.key)}${ssrIncludeBooleanAttr(form.supported_vehicle_classes.includes(vc.key)) ? " checked" : ""} class="w-4 h-4 rounded border-slate-500 bg-slate-700 text-indigo-500 focus:ring-indigo-500/50" data-v-1a169f11><span class="text-sm" data-v-1a169f11>${ssrInterpolate(vc.label)}</span></label>`);
});
_push(`<!--]--></div></div><div class="mb-8" data-v-1a169f11><h3 class="text-md font-medium text-white mb-3 flex items-center gap-2" data-v-1a169f11><span class="w-6 h-6 rounded-full bg-emerald-500/20 text-emerald-400 flex items-center justify-center text-xs font-bold" data-v-1a169f11>B</span> ${ssrInterpolate(_ctx.$t("providers.edit_section_expertise_tags"))}</h3><p class="text-xs text-slate-500 mb-3" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_section_expertise_tags_desc"))}</p>`);
if (treeLoading.value) {
_push(`<div class="flex items-center gap-2 text-sm text-slate-400 py-4" data-v-1a169f11><svg class="w-4 h-4 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-1a169f11><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-1a169f11></path></svg><span data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_categories_loading"))}</span></div>`);
} else {
_push(`<div class="space-y-1 max-h-96 overflow-y-auto pr-2" data-v-1a169f11><!--[-->`);
ssrRenderList(categoryTree.value, (node) => {
var _a3;
_push(`<div class="ml-0" data-v-1a169f11><div class="flex items-center gap-2 py-1" data-v-1a169f11><button class="text-slate-500 hover:text-slate-300 transition w-4 h-4 flex items-center justify-center" data-v-1a169f11><svg class="${ssrRenderClass([expandedNodes.value.has(node.id) ? "rotate-90" : "", "w-3 h-3 transition-transform"])}" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-1a169f11><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" data-v-1a169f11></path></svg></button><label class="flex items-center gap-2 cursor-pointer flex-1" data-v-1a169f11><input type="checkbox"${ssrIncludeBooleanAttr(isCategorySelected(node.id)) ? " checked" : ""} class="w-4 h-4 rounded border-slate-500 bg-slate-700 text-indigo-500 focus:ring-indigo-500/50" data-v-1a169f11><span class="text-sm font-medium text-white" data-v-1a169f11>${ssrInterpolate(resolveNodeLabel(node))}</span><span class="text-xs text-slate-500" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_level_label", { level: node.level }))}</span></label></div>`);
if (expandedNodes.value.has(node.id) && ((_a3 = node.children) == null ? void 0 : _a3.length)) {
_push(`<div class="ml-6 border-l border-slate-700 pl-3" data-v-1a169f11><!--[-->`);
ssrRenderList(node.children, (child) => {
_push(`<div data-v-1a169f11>`);
_push(ssrRenderComponent(_component_TreeNode, {
node: child,
"selected-ids": form.category_ids,
"expanded-ids": expandedNodes.value,
onToggle: toggleCategory,
onToggleExpand: toggleTreeNode
}, null, _parent));
_push(`</div>`);
});
_push(`<!--]--></div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
});
_push(`<!--]--></div>`);
}
if (form.category_ids.length > 0) {
_push(`<div class="mt-4 flex flex-wrap gap-2" data-v-1a169f11><!--[-->`);
ssrRenderList(form.category_ids, (id) => {
_push(`<span class="inline-flex items-center gap-1 px-2 py-1 bg-indigo-500/10 text-indigo-300 rounded-full text-xs" data-v-1a169f11>${ssrInterpolate(unref(getCategoryName)(id))} <button class="hover:text-white transition" data-v-1a169f11><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-1a169f11><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" data-v-1a169f11></path></svg></button></span>`);
});
_push(`<!--]--></div>`);
} else {
_push(`<!---->`);
}
_push(`</div><div class="mb-4" data-v-1a169f11><h3 class="text-md font-medium text-white mb-3 flex items-center gap-2" data-v-1a169f11><span class="w-6 h-6 rounded-full bg-amber-500/20 text-amber-400 flex items-center justify-center text-xs font-bold" data-v-1a169f11>C</span> ${ssrInterpolate(_ctx.$t("providers.edit_section_specializations"))}</h3><p class="text-xs text-slate-500 mb-3" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_section_specializations_desc"))}</p><div class="grid grid-cols-1 md:grid-cols-2 gap-6" data-v-1a169f11><div data-v-1a169f11><label class="block text-sm font-medium text-slate-300 mb-1" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_field_brands"))}</label><div class="flex flex-wrap gap-2 mb-2" data-v-1a169f11><!--[-->`);
ssrRenderList(((_b = form.specializations) == null ? void 0 : _b.brands) || [], (brand, idx) => {
_push(`<span class="inline-flex items-center gap-1 px-2 py-1 bg-amber-500/10 text-amber-300 rounded-full text-xs" data-v-1a169f11>${ssrInterpolate(brand)} <button class="hover:text-white transition" data-v-1a169f11><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-1a169f11><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" data-v-1a169f11></path></svg></button></span>`);
});
_push(`<!--]--></div><div class="flex gap-2" data-v-1a169f11><input${ssrRenderAttr("value", brandInput.value)}${ssrRenderAttr("placeholder", _ctx.$t("providers.edit_field_brands_placeholder"))} class="flex-1 px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-1a169f11><button${ssrIncludeBooleanAttr(!brandInput.value.trim()) ? " disabled" : ""} class="px-3 py-2 bg-indigo-600 hover:bg-indigo-500 disabled:bg-indigo-600/50 text-white rounded-lg text-sm transition" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_field_add"))}</button></div></div><div data-v-1a169f11><label class="block text-sm font-medium text-slate-300 mb-1" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_field_propulsion"))}</label><div class="flex flex-wrap gap-2 mb-2" data-v-1a169f11><!--[-->`);
ssrRenderList(((_c = form.specializations) == null ? void 0 : _c.propulsion) || [], (prop, idx) => {
_push(`<span class="inline-flex items-center gap-1 px-2 py-1 bg-emerald-500/10 text-emerald-300 rounded-full text-xs" data-v-1a169f11>${ssrInterpolate(prop)} <button class="hover:text-white transition" data-v-1a169f11><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-1a169f11><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" data-v-1a169f11></path></svg></button></span>`);
});
_push(`<!--]--></div><div class="flex gap-2" data-v-1a169f11><input${ssrRenderAttr("value", propulsionInput.value)}${ssrRenderAttr("placeholder", _ctx.$t("providers.edit_field_propulsion_placeholder"))} class="flex-1 px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-1a169f11><button${ssrIncludeBooleanAttr(!propulsionInput.value.trim()) ? " disabled" : ""} class="px-3 py-2 bg-indigo-600 hover:bg-indigo-500 disabled:bg-indigo-600/50 text-white rounded-lg text-sm transition" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_field_add"))}</button></div></div></div></div></div></div>`);
} else {
_push(`<!---->`);
}
if (activeTab.value === "location") {
_push(`<div class="max-w-3xl" data-v-1a169f11><form data-v-1a169f11>`);
if (form.address) {
_push(ssrRenderComponent(_component_SharedAddressForm, {
modelValue: form.address,
"onUpdate:modelValue": ($event) => form.address = $event
}, null, _parent));
} else {
_push(`<!---->`);
}
_push(`<div class="bg-slate-800 rounded-xl border border-slate-700 p-6 mb-6" data-v-1a169f11><h2 class="text-lg font-semibold text-white mb-4" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_section_location_extra"))}</h2><div class="grid grid-cols-1 md:grid-cols-2 gap-4" data-v-1a169f11><div class="md:col-span-2" data-v-1a169f11><label class="block text-sm font-medium text-slate-300 mb-1" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_field_full_address"))}</label><input${ssrRenderAttr("value", form.address.full_address_text)}${ssrRenderAttr("placeholder", _ctx.$t("providers.edit_field_full_address_placeholder"))} class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-1a169f11></div><div class="md:col-span-2" data-v-1a169f11><label class="block text-sm font-medium text-slate-300 mb-1" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_field_plus_code"))}</label><input${ssrRenderAttr("value", form.plus_code)}${ssrRenderAttr("placeholder", _ctx.$t("providers.edit_field_plus_code_placeholder"))} class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-1a169f11></div></div></div></form></div>`);
} else {
_push(`<!---->`);
}
if (activeTab.value === "hours") {
_push(`<div class="max-w-3xl" data-v-1a169f11><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 mb-6" data-v-1a169f11><h2 class="text-lg font-semibold text-white mb-2" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_section_opening_hours"))}</h2><p class="text-sm text-slate-400 mb-6" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_section_opening_hours_desc"))}</p><div class="mb-6 p-4 rounded-lg border bg-indigo-500/5 border-indigo-500/20" data-v-1a169f11><label class="flex items-center gap-3 cursor-pointer" data-v-1a169f11><input type="checkbox"${ssrIncludeBooleanAttr(Array.isArray(form.is_always_open) ? ssrLooseContain(form.is_always_open, null) : form.is_always_open) ? " checked" : ""} class="w-5 h-5 rounded border-slate-500 bg-slate-700 text-indigo-500 focus:ring-indigo-500/50" data-v-1a169f11><div data-v-1a169f11><span class="text-sm font-medium text-white" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_always_open"))}</span><p class="text-xs text-slate-400 mt-0.5" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_always_open_desc"))}</p></div></label></div><div class="${ssrRenderClass([{ "opacity-50 pointer-events-none": form.is_always_open }, "flex flex-wrap gap-2 mb-6"])}" data-v-1a169f11><button class="px-3 py-1.5 text-xs font-medium rounded-lg border border-emerald-600/30 text-emerald-400 hover:bg-emerald-600/10 transition" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_btn_24_7"))}</button><button class="px-3 py-1.5 text-xs font-medium rounded-lg border border-indigo-600/30 text-indigo-400 hover:bg-indigo-600/10" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_btn_copy_weekdays"))}</button><button class="px-3 py-1.5 text-xs font-medium rounded-lg border border-rose-600/30 text-rose-400 hover:bg-rose-600/10" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_btn_clear_all"))}</button></div><div class="${ssrRenderClass([{ "opacity-50 pointer-events-none": form.is_always_open }, "space-y-3"])}" data-v-1a169f11><!--[-->`);
ssrRenderList(DAYS, (day) => {
var _a3, _b2, _c2, _d, _e, _f, _g;
_push(`<div class="${ssrRenderClass([((_a3 = form.opening_hours) == null ? void 0 : _a3[day.key]) ? "bg-indigo-500/5 border-indigo-500/20" : "bg-slate-700/30 border-slate-600", "flex items-center gap-4 p-4 rounded-lg border"])}" data-v-1a169f11><label class="flex items-center gap-2 w-36 flex-shrink-0 cursor-pointer" data-v-1a169f11><input type="checkbox"${ssrIncludeBooleanAttr(!!((_b2 = form.opening_hours) == null ? void 0 : _b2[day.key])) ? " checked" : ""}${ssrIncludeBooleanAttr(form.is_always_open) ? " disabled" : ""} class="w-4 h-4 rounded border-slate-500 bg-slate-700 text-indigo-500 focus:ring-indigo-500/50" data-v-1a169f11><span class="text-sm font-medium text-white" data-v-1a169f11>${ssrInterpolate(day.label)}</span></label>`);
if ((_c2 = form.opening_hours) == null ? void 0 : _c2[day.key]) {
_push(`<div class="flex items-center gap-2" data-v-1a169f11><input type="time"${ssrRenderAttr("value", ((_e = (_d = form.opening_hours) == null ? void 0 : _d[day.key]) == null ? void 0 : _e.open) || "08:00")}${ssrIncludeBooleanAttr(form.is_always_open) ? " disabled" : ""} class="w-28 px-2 py-1.5 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 disabled:opacity-50" data-v-1a169f11><span class="text-slate-500 text-sm" data-v-1a169f11>\u2013</span><input type="time"${ssrRenderAttr("value", ((_g = (_f = form.opening_hours) == null ? void 0 : _f[day.key]) == null ? void 0 : _g.close) || "17:00")}${ssrIncludeBooleanAttr(form.is_always_open) ? " disabled" : ""} class="w-28 px-2 py-1.5 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 disabled:opacity-50" data-v-1a169f11></div>`);
} else {
_push(`<span class="text-sm text-slate-500 italic" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_closed"))}</span>`);
}
_push(`</div>`);
});
_push(`<!--]--></div></div></div>`);
} else {
_push(`<!---->`);
}
_push(`<div class="sticky bottom-0 bg-slate-900/90 backdrop-blur-sm border-t border-slate-700 -mx-6 px-6 py-4 mt-8" data-v-1a169f11><div class="flex items-center justify-between max-w-4xl" data-v-1a169f11><div class="text-sm text-slate-400" data-v-1a169f11>`);
if (hasChanges.value) {
_push(`<span class="text-amber-400" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_has_changes"))}</span>`);
} else {
_push(`<span class="text-slate-500" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_no_changes"))}</span>`);
}
_push(`</div><div class="flex gap-3" data-v-1a169f11><button class="px-4 py-2 text-sm text-slate-400 hover:text-white transition" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_cancel"))}</button><button${ssrIncludeBooleanAttr(saveLoading.value || !hasChanges.value) ? " disabled" : ""} class="px-6 py-2 bg-indigo-600 hover:bg-indigo-500 disabled:bg-indigo-600/50 text-white rounded-lg text-sm font-medium transition flex items-center gap-2" data-v-1a169f11>`);
if (saveLoading.value) {
_push(`<svg class="w-4 h-4 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-1a169f11><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-1a169f11></path></svg>`);
} else {
_push(`<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-1a169f11><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" data-v-1a169f11></path></svg>`);
}
_push(` ${ssrInterpolate(_ctx.$t("providers.edit_save"))}</button></div></div></div><!--]-->`);
}
if (toast.value) {
_push(`<div class="${ssrRenderClass([toast.value.type === "success" ? "bg-emerald-600 text-white" : "bg-rose-600 text-white", "fixed top-4 right-4 z-50 px-4 py-3 rounded-lg shadow-xl text-sm font-medium transition-all duration-300"])}" data-v-1a169f11>${ssrInterpolate(toast.value.message)}</div>`);
} else {
_push(`<!---->`);
}
ssrRenderTeleport(_push, (_push2) => {
var _a3, _b2, _c2, _d, _e, _f, _g;
if (isRawDataDrawerOpen.value) {
_push2(`<div class="fixed inset-y-0 right-0 bg-slate-900 border-l border-slate-700 shadow-2xl z-40 overflow-y-auto" style="${ssrRenderStyle({ width: drawerWidth.value + "px", minWidth: "320px", maxWidth: "80vw" })}" data-v-1a169f11><div class="absolute left-0 top-0 bottom-0 w-2 cursor-col-resize hover:bg-primary-500/50 active:bg-primary-500/70 transition-colors z-50 group" data-v-1a169f11><div class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 w-0.5 h-8 rounded-full bg-slate-600 group-hover:bg-primary-400 transition-colors" data-v-1a169f11></div></div><div class="sticky top-0 z-10 bg-slate-900/95 backdrop-blur-sm border-b border-slate-700 px-6 py-4 flex items-center justify-between" data-v-1a169f11><div class="flex items-center gap-2" data-v-1a169f11><svg class="w-5 h-5 text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-1a169f11><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" data-v-1a169f11></path></svg><h2 class="text-lg font-semibold text-white" data-v-1a169f11>\u{1F916} ${ssrInterpolate(_ctx.$t("providers.edit_raw_data"))}</h2></div><button class="p-1.5 rounded-lg text-slate-400 hover:text-white hover:bg-slate-700 transition" data-v-1a169f11><svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-1a169f11><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" data-v-1a169f11></path></svg></button></div><div class="p-6 space-y-6" data-v-1a169f11><div class="flex flex-wrap gap-3" data-v-1a169f11><div class="inline-flex items-center gap-1.5 px-3 py-1.5 bg-slate-800 rounded-lg text-xs font-medium" data-v-1a169f11><span class="text-slate-400" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_source_label"))}</span><code class="text-cyan-300 font-mono" data-v-1a169f11>${ssrInterpolate(((_a3 = provider.value) == null ? void 0 : _a3.source) || "\u2014")}</code></div><div class="${ssrRenderClass([trustScoreBadgeClass.value, "inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium"])}" data-v-1a169f11><span class="text-slate-400" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_trust_score_label"))}</span><span class="font-semibold" data-v-1a169f11>${ssrInterpolate((_c2 = (_b2 = provider.value) == null ? void 0 : _b2.trust_score) != null ? _c2 : "\u2014")}</span></div></div><div data-v-1a169f11><h3 class="text-sm font-medium text-slate-300 mb-3" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_raw_data_title"))}</h3><div class="bg-slate-800/50 rounded-lg border border-slate-700 p-4 overflow-x-auto" data-v-1a169f11>`);
_push2(ssrRenderComponent(_component_RawDataViewer, {
data: (_d = provider.value) == null ? void 0 : _d.raw_data
}, null, _parent));
_push2(`</div></div>`);
if (((_e = provider.value) == null ? void 0 : _e.audit_trail) && Object.keys(provider.value.audit_trail).length > 0) {
_push2(`<div data-v-1a169f11><h3 class="text-sm font-medium text-slate-300 mb-3" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_audit_trail_title"))}</h3><div class="bg-slate-800/50 rounded-lg border border-slate-700 p-4 overflow-x-auto" data-v-1a169f11>`);
_push2(ssrRenderComponent(_component_RawDataViewer, {
data: (_f = provider.value) == null ? void 0 : _f.audit_trail
}, null, _parent));
_push2(`</div></div>`);
} else {
_push2(`<!---->`);
}
if ((_g = provider.value) == null ? void 0 : _g.rejection_reason) {
_push2(`<div class="flex items-start gap-3 p-4 bg-rose-500/10 border border-rose-500/30 rounded-lg" data-v-1a169f11><svg class="w-5 h-5 text-rose-400 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-1a169f11><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z" data-v-1a169f11></path></svg><div data-v-1a169f11><p class="text-sm font-medium text-rose-300" data-v-1a169f11>${ssrInterpolate(_ctx.$t("providers.edit_rejection_reason_title"))}</p><p class="text-sm text-rose-200/70 mt-0.5" data-v-1a169f11>${ssrInterpolate(provider.value.rejection_reason)}</p></div></div>`);
} else {
_push2(`<!---->`);
}
_push2(`</div></div>`);
} else {
_push2(`<!---->`);
}
}, "body", false, _parent);
_push(`</div>`);
};
}
});
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/providers/[id]/edit.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
const edit = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-1a169f11"]]);
export { edit as default };
//# sourceMappingURL=edit-DI1cu9GQ.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -1,494 +0,0 @@
import { defineComponent, computed, ref, reactive, createVNode, resolveDynamicComponent, watch, mergeProps, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrInterpolate, ssrRenderList, ssrRenderClass, ssrRenderVNode, ssrRenderAttr, ssrIncludeBooleanAttr, ssrRenderComponent, ssrLooseContain } from 'vue/server-renderer';
import { _ as _export_sfc } from './_plugin-vue_export-helper-1tPrXgE0.mjs';
import { useRoute, useRouter } from 'vue-router';
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
__name: "TreeNode",
__ssrInlineRender: true,
props: {
node: {},
selectedIds: {},
expandedIds: {}
},
emits: ["toggle", "toggle-expand"],
setup(__props) {
return (_ctx, _push, _parent, _attrs) => {
var _a;
const _component_TreeNode = _sfc_main$3;
_push(`<div${ssrRenderAttrs(_attrs)}><div class="flex items-center gap-2 py-1"><button class="text-slate-500 hover:text-slate-300 transition w-4 h-4 flex items-center justify-center"><svg class="${ssrRenderClass([__props.expandedIds.has(__props.node.id) ? "rotate-90" : "", "w-3 h-3 transition-transform"])}" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path></svg></button><label class="flex items-center gap-2 cursor-pointer flex-1"><input type="checkbox"${ssrIncludeBooleanAttr(__props.selectedIds.includes(__props.node.id)) ? " checked" : ""} class="w-4 h-4 rounded border-slate-500 bg-slate-700 text-indigo-500 focus:ring-indigo-500/50"><span class="text-sm text-slate-300">${ssrInterpolate(__props.node.name_hu || __props.node.name_en || __props.node.key)}</span><span class="text-xs text-slate-500">(Szint ${ssrInterpolate(__props.node.level)})</span></label></div>`);
if (__props.expandedIds.has(__props.node.id) && ((_a = __props.node.children) == null ? void 0 : _a.length)) {
_push(`<div class="ml-6 border-l border-slate-700 pl-3"><!--[-->`);
ssrRenderList(__props.node.children, (child) => {
_push(`<div>`);
_push(ssrRenderComponent(_component_TreeNode, {
node: child,
"selected-ids": __props.selectedIds,
"expanded-ids": __props.expandedIds,
onToggle: (id) => _ctx.$emit("toggle", id),
onToggleExpand: (id) => _ctx.$emit("toggle-expand", id)
}, null, _parent));
_push(`</div>`);
});
_push(`<!--]--></div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
};
}
});
const _sfc_setup$3 = _sfc_main$3.setup;
_sfc_main$3.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/TreeNode.vue");
return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
};
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
__name: "SmartLocationInput",
__ssrInlineRender: true,
props: {
modelValue: { default: null },
label: { default: "" },
placeholder: { default: "Kezdj el g\xE9pelni (ir\xE1ny\xEDt\xF3sz\xE1m vagy v\xE1ros)..." },
minChars: { default: 2 },
countryCode: { default: "HU" },
debounceMs: { default: 300 }
},
emits: ["update:modelValue", "select"],
setup(__props, { emit: __emit }) {
const props = __props;
ref(null);
const query = ref("");
const selectedItem = ref(props.modelValue);
const items = ref([]);
const searching = ref(false);
const showDropdown = ref(false);
const highlightedIndex = ref(0);
const displayText = computed(() => {
if (selectedItem.value) {
return `${selectedItem.value.zip_code} ${selectedItem.value.city}`;
}
return query.value;
});
const filteredItems = computed(() => {
if (!query.value || query.value.length < props.minChars) return [];
const q = query.value.toLowerCase();
return items.value.filter(
(item) => item.zip_code.toLowerCase().includes(q) || item.city.toLowerCase().includes(q)
);
});
watch(
() => props.modelValue,
(val) => {
selectedItem.value = val;
}
);
return (_ctx, _push, _parent, _attrs) => {
_push(`<div${ssrRenderAttrs(mergeProps({ class: "relative" }, _attrs))} data-v-b43e13ca>`);
if (__props.label) {
_push(`<label class="block text-sm font-medium text-slate-300 mb-1" data-v-b43e13ca>${ssrInterpolate(__props.label)}</label>`);
} else {
_push(`<!---->`);
}
_push(`<div class="relative" data-v-b43e13ca><input${ssrRenderAttr("value", displayText.value)}${ssrRenderAttr("placeholder", __props.placeholder)} class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-b43e13ca>`);
if (searching.value) {
_push(`<svg class="absolute right-3 top-1/2 -translate-y-1/2 w-4 h-4 animate-spin text-slate-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-b43e13ca><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-b43e13ca></path></svg>`);
} else {
_push(`<!---->`);
}
if (selectedItem.value && !searching.value) {
_push(`<button class="absolute right-3 top-1/2 -translate-y-1/2 text-slate-500 hover:text-white transition" type="button" data-v-b43e13ca><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-b43e13ca><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" data-v-b43e13ca></path></svg></button>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
if (showDropdown.value && filteredItems.value.length > 0) {
_push(`<div class="absolute z-50 mt-1 w-full bg-slate-800 border border-slate-600 rounded-lg shadow-xl max-h-60 overflow-y-auto" data-v-b43e13ca><!--[-->`);
ssrRenderList(filteredItems.value, (item, index) => {
_push(`<button class="${ssrRenderClass([index === highlightedIndex.value ? "bg-indigo-500/20 text-white" : "text-slate-300 hover:bg-slate-700", "w-full text-left px-3 py-2 text-sm transition flex items-center gap-2"])}" data-v-b43e13ca><span class="font-mono text-indigo-400" data-v-b43e13ca>${ssrInterpolate(item.zip_code)}</span><span data-v-b43e13ca>${ssrInterpolate(item.city)}</span><span class="text-xs text-slate-500 ml-auto" data-v-b43e13ca>${ssrInterpolate(item.country_code)}</span></button>`);
});
_push(`<!--]--></div>`);
} else {
_push(`<!---->`);
}
if (showDropdown.value && query.value.length >= __props.minChars && filteredItems.value.length === 0 && !searching.value) {
_push(`<div class="absolute z-50 mt-1 w-full bg-slate-800 border border-slate-600 rounded-lg shadow-xl p-3 text-sm text-slate-400" data-v-b43e13ca> Nincs tal\xE1lat </div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
};
}
});
const _sfc_setup$2 = _sfc_main$2.setup;
_sfc_main$2.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/SmartLocationInput.vue");
return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
};
const __nuxt_component_0 = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-b43e13ca"]]);
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
__name: "SharedAddressForm",
__ssrInlineRender: true,
props: {
modelValue: { default: () => ({
zip: null,
city: null,
street_name: null,
street_type: null,
house_number: null,
stairwell: null,
floor: null,
door: null,
parcel_id: null,
full_address_text: null,
latitude: null,
longitude: null
}) }
},
emits: ["update:modelValue"],
setup(__props, { emit: __emit }) {
const props = __props;
const emit = __emit;
const selectedLocation = computed(() => {
var _a, _b;
if (((_a = props.modelValue) == null ? void 0 : _a.zip) && ((_b = props.modelValue) == null ? void 0 : _b.city)) {
return {
id: 0,
// We don't have the DB id here, but SmartLocationInput handles this
zip_code: props.modelValue.zip,
city: props.modelValue.city,
country_code: "HU"
};
}
return null;
});
function onLocationSelected(location) {
const updated = { ...props.modelValue };
if (location) {
updated.zip = location.zip_code;
updated.city = location.city;
} else {
updated.zip = null;
updated.city = null;
}
emit("update:modelValue", updated);
}
return (_ctx, _push, _parent, _attrs) => {
const _component_SmartLocationInput = __nuxt_component_0;
_push(`<div${ssrRenderAttrs(_attrs)}><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 mb-6"><h2 class="text-lg font-semibold text-white mb-4">C\xEDm adatok</h2><div class="grid grid-cols-1 md:grid-cols-2 gap-4"><div class="md:col-span-2">`);
_push(ssrRenderComponent(_component_SmartLocationInput, {
"model-value": selectedLocation.value,
"onUpdate:modelValue": onLocationSelected,
label: "Ir\xE1ny\xEDt\xF3sz\xE1m / V\xE1ros",
placeholder: "Kezdj el g\xE9pelni (pl. 1011 vagy Budapest)..."
}, null, _parent));
_push(`</div><div><label class="block text-sm font-medium text-slate-300 mb-1">Utca neve</label><input${ssrRenderAttr("value", __props.modelValue.street_name)} placeholder="pl. Egressy" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm"></div><div><label class="block text-sm font-medium text-slate-300 mb-1">K\xF6zter\xFClet jellege</label><select${ssrRenderAttr("value", __props.modelValue.street_type)} class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm"><option value="">V\xE1lassz...</option><option value="utca">utca</option><option value="\xFAt">\xFAt</option><option value="t\xE9r">t\xE9r</option><option value="k\xF6r\xFAt">k\xF6r\xFAt</option><option value="sug\xE1r\xFAt">sug\xE1r\xFAt</option><option value="k\xF6z">k\xF6z</option><option value="s\xE9t\xE1ny">s\xE9t\xE1ny</option><option value="lak\xF3park">lak\xF3park</option><option value="liget">liget</option><option value="erd\u0151">erd\u0151</option><option value="d\u0171l\u0151">d\u0171l\u0151</option><option value="major">major</option><option value="puszta">puszta</option><option value="sziget">sziget</option><option value="telep">telep</option></select></div><div><label class="block text-sm font-medium text-slate-300 mb-1">H\xE1zsz\xE1m</label><input${ssrRenderAttr("value", __props.modelValue.house_number)} placeholder="pl. 4/b" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm"></div><div><label class="block text-sm font-medium text-slate-300 mb-1">L\xE9pcs\u0151h\xE1z</label><input${ssrRenderAttr("value", __props.modelValue.stairwell)} placeholder="pl. 1" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm"></div><div><label class="block text-sm font-medium text-slate-300 mb-1">Emelet</label><input${ssrRenderAttr("value", __props.modelValue.floor)} placeholder="pl. 3" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm"></div><div><label class="block text-sm font-medium text-slate-300 mb-1">Ajt\xF3</label><input${ssrRenderAttr("value", __props.modelValue.door)} placeholder="pl. A" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm"></div><div><label class="block text-sm font-medium text-slate-300 mb-1">Helyrajzi sz\xE1m (hrsz)</label><input${ssrRenderAttr("value", __props.modelValue.parcel_id)} placeholder="pl. 12345/6" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm"></div></div></div></div>`);
};
}
});
const _sfc_setup$1 = _sfc_main$1.setup;
_sfc_main$1.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/SharedAddressForm.vue");
return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
};
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "edit",
__ssrInlineRender: true,
setup(__props) {
const VEHICLE_CLASSES = [
{ key: "car", label: "Szem\xE9lyaut\xF3" },
{ key: "motorcycle", label: "Motorker\xE9kp\xE1r" },
{ key: "truck", label: "Teheraut\xF3" },
{ key: "hgv", label: "Neh\xE9zg\xE9pj\xE1rm\u0171 (HGV)" },
{ key: "light_commercial", label: "Kishaszonj\xE1rm\u0171" },
{ key: "personal", label: "Szem\xE9lyes" },
{ key: "boat", label: "Cs\xF3nak/V\xEDzi" },
{ key: "other", label: "Egy\xE9b" }
];
const route = useRoute();
useRouter();
computed(() => Number(route.params.id));
const loading = ref(true);
const error = ref(false);
const provider = ref(null);
const saveLoading = ref(false);
const toast = ref(null);
const activeTab = ref("basic");
const tabs = [
{ key: "basic", label: "Alapadatok & Kapcsolat", icon: "svg" },
{ key: "matrix", label: "Szolg\xE1ltat\xE1sok & J\xE1rm\u0171vek", icon: "svg" },
{ key: "location", label: "Helysz\xEDn & Lok\xE1ci\xF3", icon: "svg" },
{ key: "hours", label: "Nyitvatart\xE1s", icon: "svg" }
];
const categoryTree = ref([]);
const treeLoading = ref(false);
const expandedNodes = ref(/* @__PURE__ */ new Set());
const brandInput = ref("");
const propulsionInput = ref("");
const form = reactive({
name: "",
address: "",
city: "",
address_zip: "",
address_street_name: "",
address_street_type: "",
address_house_number: "",
plus_code: "",
contact_phone: "",
contact_email: "",
website: "",
category: "",
category_ids: [],
supported_vehicle_classes: [],
specializations: {
brands: [],
propulsion: []
},
opening_hours: {},
is_always_open: false,
// Nested address object matching AddressIn schema (used by SharedAddressForm)
address: {
zip: "",
city: "",
street_name: "",
street_type: "",
house_number: "",
stairwell: "",
floor: "",
door: "",
parcel_id: "",
full_address_text: "",
latitude: null,
longitude: null
}
});
const hasChanges = computed(() => {
var _a;
if (!provider.value) return false;
const p = provider.value;
if (form.name !== (p.name || "")) return true;
if (form.address !== (p.address || "")) return true;
if (form.plus_code !== (p.plus_code || "")) return true;
if (form.address.zip !== (p.address_zip || "")) return true;
if (form.address.city !== (p.city || "")) return true;
if (form.address.street_name !== (p.address_street_name || "")) return true;
if (form.address.street_type !== (p.address_street_type || "")) return true;
if (form.address.house_number !== (p.address_house_number || "")) return true;
if (form.contact_phone !== (p.contact_phone || "")) return true;
if (form.contact_email !== (p.contact_email || "")) return true;
if (form.website !== (p.website || "")) return true;
if (form.category !== (p.category || "")) return true;
const sortedFormCategories = [...form.category_ids].sort();
const sortedOrigCategories = [...p.category_ids || []].sort();
if (JSON.stringify(sortedFormCategories) !== JSON.stringify(sortedOrigCategories)) return true;
const sortedFormClasses = [...form.supported_vehicle_classes].sort();
const sortedOrigClasses = [...p.supported_vehicle_classes || []].sort();
if (JSON.stringify(sortedFormClasses) !== JSON.stringify(sortedOrigClasses)) return true;
const normalizeSpec = (spec) => ({
brands: Array.isArray(spec == null ? void 0 : spec.brands) ? [...spec.brands].sort() : [],
propulsion: Array.isArray(spec == null ? void 0 : spec.propulsion) ? [...spec.propulsion].sort() : []
});
if (JSON.stringify(normalizeSpec(form.specializations)) !== JSON.stringify(normalizeSpec(p.specializations))) return true;
const DAYS2 = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"];
const normalizeHours = (hours) => {
const result = {};
const daysSource = (hours == null ? void 0 : hours.days) || hours;
for (const day of DAYS2) {
const slot = daysSource == null ? void 0 : daysSource[day];
if (slot && typeof slot === "object" && slot.open && slot.close) {
result[day] = { open: slot.open, close: slot.close };
} else {
result[day] = null;
}
}
return result;
};
if (JSON.stringify(normalizeHours(form.opening_hours)) !== JSON.stringify(normalizeHours(p.opening_hours))) return true;
if (form.is_always_open !== (((_a = p.opening_hours) == null ? void 0 : _a.always_open) === true)) return true;
return false;
});
function findCategoryById(id, nodes) {
var _a;
for (const node of nodes) {
if (node.id === id) return node;
if ((_a = node.children) == null ? void 0 : _a.length) {
const found = findCategoryById(id, node.children);
if (found) return found;
}
}
return null;
}
function getCategoryName(id) {
const node = findCategoryById(id, categoryTree.value);
if (!node) return `#${id}`;
return node.name_hu || node.name_en || node.key;
}
function toggleCategory(id) {
const idx = form.category_ids.indexOf(id);
if (idx >= 0) {
form.category_ids.splice(idx, 1);
} else {
form.category_ids.push(id);
}
}
function toggleTreeNode(id) {
const newSet = new Set(expandedNodes.value);
if (newSet.has(id)) {
newSet.delete(id);
} else {
newSet.add(id);
}
expandedNodes.value = newSet;
}
function isCategorySelected(id) {
return form.category_ids.includes(id);
}
const DAYS = [
{ key: "monday", label: "H\xE9tf\u0151" },
{ key: "tuesday", label: "Kedd" },
{ key: "wednesday", label: "Szerda" },
{ key: "thursday", label: "Cs\xFCt\xF6rt\xF6k" },
{ key: "friday", label: "P\xE9ntek" },
{ key: "saturday", label: "Szombat" },
{ key: "sunday", label: "Vas\xE1rnap" }
];
return (_ctx, _push, _parent, _attrs) => {
const _component_TreeNode = _sfc_main$3;
const _component_SharedAddressForm = _sfc_main$1;
_push(`<div${ssrRenderAttrs(_attrs)} data-v-ab22d560><div class="mb-8" data-v-ab22d560><button class="inline-flex items-center gap-1.5 text-sm text-slate-400 hover:text-white transition mb-4" data-v-ab22d560><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-ab22d560><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7" data-v-ab22d560></path></svg> Vissza a szolg\xE1ltat\xF3hoz </button><h1 class="text-2xl font-bold text-white" data-v-ab22d560>Szolg\xE1ltat\xF3 szerkeszt\xE9se</h1><p class="text-slate-400 mt-1" data-v-ab22d560>Szolg\xE1ltat\xF3 #${ssrInterpolate(_ctx.$route.params.id)}</p></div>`);
if (loading.value) {
_push(`<div class="flex items-center justify-center py-20" data-v-ab22d560><div class="text-slate-400 flex items-center gap-3" data-v-ab22d560><svg class="w-5 h-5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-ab22d560><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-ab22d560></path></svg><span data-v-ab22d560>Szolg\xE1ltat\xF3 bet\xF6lt\xE9se...</span></div></div>`);
} else if (error.value) {
_push(`<div class="bg-rose-500/10 border border-rose-500/30 rounded-xl p-6 mb-8" data-v-ab22d560><p class="text-rose-400" data-v-ab22d560>Hiba t\xF6rt\xE9nt a szolg\xE1ltat\xF3 bet\xF6lt\xE9se k\xF6zben.</p><button class="mt-3 text-sm text-rose-300 hover:text-rose-200 underline" data-v-ab22d560>\xDAjrapr\xF3b\xE1lkoz\xE1s</button></div>`);
} else if (!provider.value) {
_push(`<div class="bg-slate-800 rounded-xl border border-slate-700 p-6" data-v-ab22d560><p class="text-slate-400 text-center py-12" data-v-ab22d560>A szolg\xE1ltat\xF3 nem tal\xE1lhat\xF3.</p></div>`);
} else {
_push(`<!--[--><div class="border-b border-slate-700 mb-6" data-v-ab22d560><nav class="flex gap-6 -mb-px" data-v-ab22d560><!--[-->`);
ssrRenderList(tabs, (tab) => {
_push(`<button class="${ssrRenderClass([activeTab.value === tab.key ? "text-indigo-400 border-indigo-400" : "text-slate-400 border-transparent hover:text-slate-300", "pb-3 text-sm font-medium border-b-2 transition flex items-center gap-2"])}" data-v-ab22d560>`);
ssrRenderVNode(_push, createVNode(resolveDynamicComponent(tab.icon), { class: "w-4 h-4" }, null), _parent);
_push(` ${ssrInterpolate(tab.label)}</button>`);
});
_push(`<!--]--></nav></div>`);
if (activeTab.value === "basic") {
_push(`<div class="max-w-3xl" data-v-ab22d560><form data-v-ab22d560><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 mb-6" data-v-ab22d560><h2 class="text-lg font-semibold text-white mb-4" data-v-ab22d560>Alapadatok</h2><div class="grid grid-cols-1 md:grid-cols-2 gap-4" data-v-ab22d560><div class="md:col-span-2" data-v-ab22d560><label class="block text-sm font-medium text-slate-300 mb-1" data-v-ab22d560>N\xE9v *</label><input${ssrRenderAttr("value", form.name)} required class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-ab22d560></div><div data-v-ab22d560><label class="block text-sm font-medium text-slate-300 mb-1" data-v-ab22d560>Kateg\xF3ria</label><input${ssrRenderAttr("value", form.category)} placeholder="pl. Aut\xF3szerviz, Gumiszerviz" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-ab22d560></div><div data-v-ab22d560><label class="block text-sm font-medium text-slate-300 mb-1" data-v-ab22d560>Forr\xE1s</label><div class="w-full px-3 py-2 bg-slate-700/50 border border-slate-600 rounded-lg text-slate-400 text-sm" data-v-ab22d560>${ssrInterpolate(provider.value.source)}</div></div></div></div><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 mb-6" data-v-ab22d560><h2 class="text-lg font-semibold text-white mb-4" data-v-ab22d560>El\xE9rhet\u0151s\xE9g</h2><div class="grid grid-cols-1 md:grid-cols-2 gap-4" data-v-ab22d560><div data-v-ab22d560><label class="block text-sm font-medium text-slate-300 mb-1" data-v-ab22d560>Telefon</label><input${ssrRenderAttr("value", form.contact_phone)} placeholder="+36 30 123 4567" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-ab22d560></div><div data-v-ab22d560><label class="block text-sm font-medium text-slate-300 mb-1" data-v-ab22d560>Email</label><input${ssrRenderAttr("value", form.contact_email)} type="email" placeholder="info@example.com" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-ab22d560></div><div class="md:col-span-2" data-v-ab22d560><label class="block text-sm font-medium text-slate-300 mb-1" data-v-ab22d560>Weboldal</label><input${ssrRenderAttr("value", form.website)} placeholder="https://..." class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-ab22d560></div></div></div></form></div>`);
} else {
_push(`<!---->`);
}
if (activeTab.value === "matrix") {
_push(`<div class="max-w-4xl" data-v-ab22d560><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 mb-6" data-v-ab22d560><h2 class="text-lg font-semibold text-white mb-2" data-v-ab22d560>3D K\xE9pess\xE9g M\xE1trix</h2><p class="text-sm text-slate-400 mb-6" data-v-ab22d560> \xC1ll\xEDtsd be, hogy a szolg\xE1ltat\xF3 milyen j\xE1rm\u0171oszt\xE1lyokhoz, szolg\xE1ltat\xE1si kateg\xF3ri\xE1khoz \xE9s specializ\xE1ci\xF3khoz tartozik. </p><div class="mb-8" data-v-ab22d560><h3 class="text-md font-medium text-white mb-3 flex items-center gap-2" data-v-ab22d560><span class="w-6 h-6 rounded-full bg-indigo-500/20 text-indigo-400 flex items-center justify-center text-xs font-bold" data-v-ab22d560>A</span> J\xE1rm\u0171oszt\xE1lyok (Vehicle Classes) </h3><p class="text-xs text-slate-500 mb-3" data-v-ab22d560>Mely j\xE1rm\u0171t\xEDpusokat szervizeli a szolg\xE1ltat\xF3?</p><div class="grid grid-cols-2 md:grid-cols-4 gap-3" data-v-ab22d560><!--[-->`);
ssrRenderList(VEHICLE_CLASSES, (vc) => {
_push(`<label class="${ssrRenderClass([form.supported_vehicle_classes.includes(vc.key) ? "bg-indigo-500/10 border-indigo-500/40 text-indigo-300" : "bg-slate-700/50 border-slate-600 hover:border-slate-500 text-slate-300", "flex items-center gap-3 p-3 rounded-lg border cursor-pointer transition"])}" data-v-ab22d560><input type="checkbox"${ssrRenderAttr("value", vc.key)}${ssrIncludeBooleanAttr(form.supported_vehicle_classes.includes(vc.key)) ? " checked" : ""} class="w-4 h-4 rounded border-slate-500 bg-slate-700 text-indigo-500 focus:ring-indigo-500/50" data-v-ab22d560><span class="text-sm" data-v-ab22d560>${ssrInterpolate(vc.label)}</span></label>`);
});
_push(`<!--]--></div></div><div class="mb-8" data-v-ab22d560><h3 class="text-md font-medium text-white mb-3 flex items-center gap-2" data-v-ab22d560><span class="w-6 h-6 rounded-full bg-emerald-500/20 text-emerald-400 flex items-center justify-center text-xs font-bold" data-v-ab22d560>B</span> Szolg\xE1ltat\xE1si Kateg\xF3ri\xE1k (Expertise Tags) </h3><p class="text-xs text-slate-500 mb-3" data-v-ab22d560>V\xE1laszd ki a szolg\xE1ltat\xF3hoz tartoz\xF3 kateg\xF3ri\xE1kat a hierarchikus f\xE1b\xF3l.</p>`);
if (treeLoading.value) {
_push(`<div class="flex items-center gap-2 text-sm text-slate-400 py-4" data-v-ab22d560><svg class="w-4 h-4 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-ab22d560><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-ab22d560></path></svg><span data-v-ab22d560>Kateg\xF3ri\xE1k bet\xF6lt\xE9se...</span></div>`);
} else {
_push(`<div class="space-y-1 max-h-96 overflow-y-auto pr-2" data-v-ab22d560><!--[-->`);
ssrRenderList(categoryTree.value, (node) => {
var _a;
_push(`<div class="ml-0" data-v-ab22d560><div class="flex items-center gap-2 py-1" data-v-ab22d560><button class="text-slate-500 hover:text-slate-300 transition w-4 h-4 flex items-center justify-center" data-v-ab22d560><svg class="${ssrRenderClass([expandedNodes.value.has(node.id) ? "rotate-90" : "", "w-3 h-3 transition-transform"])}" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-ab22d560><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" data-v-ab22d560></path></svg></button><label class="flex items-center gap-2 cursor-pointer flex-1" data-v-ab22d560><input type="checkbox"${ssrIncludeBooleanAttr(isCategorySelected(node.id)) ? " checked" : ""} class="w-4 h-4 rounded border-slate-500 bg-slate-700 text-indigo-500 focus:ring-indigo-500/50" data-v-ab22d560><span class="text-sm font-medium text-white" data-v-ab22d560>${ssrInterpolate(node.name_hu || node.name_en || node.key)}</span><span class="text-xs text-slate-500" data-v-ab22d560>(Szint ${ssrInterpolate(node.level)})</span></label></div>`);
if (expandedNodes.value.has(node.id) && ((_a = node.children) == null ? void 0 : _a.length)) {
_push(`<div class="ml-6 border-l border-slate-700 pl-3" data-v-ab22d560><!--[-->`);
ssrRenderList(node.children, (child) => {
_push(`<div data-v-ab22d560>`);
_push(ssrRenderComponent(_component_TreeNode, {
node: child,
"selected-ids": form.category_ids,
"expanded-ids": expandedNodes.value,
onToggle: toggleCategory,
onToggleExpand: toggleTreeNode
}, null, _parent));
_push(`</div>`);
});
_push(`<!--]--></div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
});
_push(`<!--]--></div>`);
}
if (form.category_ids.length > 0) {
_push(`<div class="mt-4 flex flex-wrap gap-2" data-v-ab22d560><!--[-->`);
ssrRenderList(form.category_ids, (id) => {
_push(`<span class="inline-flex items-center gap-1 px-2 py-1 bg-indigo-500/10 text-indigo-300 rounded-full text-xs" data-v-ab22d560>${ssrInterpolate(getCategoryName(id))} <button class="hover:text-white transition" data-v-ab22d560><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-ab22d560><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" data-v-ab22d560></path></svg></button></span>`);
});
_push(`<!--]--></div>`);
} else {
_push(`<!---->`);
}
_push(`</div><div class="mb-4" data-v-ab22d560><h3 class="text-md font-medium text-white mb-3 flex items-center gap-2" data-v-ab22d560><span class="w-6 h-6 rounded-full bg-amber-500/20 text-amber-400 flex items-center justify-center text-xs font-bold" data-v-ab22d560>C</span> Specializ\xE1ci\xF3k </h3><p class="text-xs text-slate-500 mb-3" data-v-ab22d560>Adj meg speci\xE1lis m\xE1rk\xE1kat, hajt\xE1sl\xE1nc t\xEDpusokat vagy egy\xE9b c\xEDmk\xE9ket.</p><div class="grid grid-cols-1 md:grid-cols-2 gap-6" data-v-ab22d560><div data-v-ab22d560><label class="block text-sm font-medium text-slate-300 mb-1" data-v-ab22d560>M\xE1rk\xE1k (Brands)</label><div class="flex flex-wrap gap-2 mb-2" data-v-ab22d560><!--[-->`);
ssrRenderList(form.specializations.brands, (brand, idx) => {
_push(`<span class="inline-flex items-center gap-1 px-2 py-1 bg-amber-500/10 text-amber-300 rounded-full text-xs" data-v-ab22d560>${ssrInterpolate(brand)} <button class="hover:text-white transition" data-v-ab22d560><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-ab22d560><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" data-v-ab22d560></path></svg></button></span>`);
});
_push(`<!--]--></div><div class="flex gap-2" data-v-ab22d560><input${ssrRenderAttr("value", brandInput.value)} placeholder="pl. Volvo, Scania" class="flex-1 px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-ab22d560><button${ssrIncludeBooleanAttr(!brandInput.value.trim()) ? " disabled" : ""} class="px-3 py-2 bg-indigo-600 hover:bg-indigo-500 disabled:bg-indigo-600/50 text-white rounded-lg text-sm transition" data-v-ab22d560> Hozz\xE1ad </button></div></div><div data-v-ab22d560><label class="block text-sm font-medium text-slate-300 mb-1" data-v-ab22d560>Hajt\xE1sl\xE1nc (Propulsion)</label><div class="flex flex-wrap gap-2 mb-2" data-v-ab22d560><!--[-->`);
ssrRenderList(form.specializations.propulsion, (prop, idx) => {
_push(`<span class="inline-flex items-center gap-1 px-2 py-1 bg-emerald-500/10 text-emerald-300 rounded-full text-xs" data-v-ab22d560>${ssrInterpolate(prop)} <button class="hover:text-white transition" data-v-ab22d560><svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-ab22d560><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" data-v-ab22d560></path></svg></button></span>`);
});
_push(`<!--]--></div><div class="flex gap-2" data-v-ab22d560><input${ssrRenderAttr("value", propulsionInput.value)} placeholder="pl. EV, Hybrid, Diesel" class="flex-1 px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-ab22d560><button${ssrIncludeBooleanAttr(!propulsionInput.value.trim()) ? " disabled" : ""} class="px-3 py-2 bg-indigo-600 hover:bg-indigo-500 disabled:bg-indigo-600/50 text-white rounded-lg text-sm transition" data-v-ab22d560> Hozz\xE1ad </button></div></div></div></div></div></div>`);
} else {
_push(`<!---->`);
}
if (activeTab.value === "location") {
_push(`<div class="max-w-3xl" data-v-ab22d560><form data-v-ab22d560>`);
_push(ssrRenderComponent(_component_SharedAddressForm, {
modelValue: form.address,
"onUpdate:modelValue": ($event) => form.address = $event
}, null, _parent));
_push(`<div class="bg-slate-800 rounded-xl border border-slate-700 p-6 mb-6" data-v-ab22d560><h2 class="text-lg font-semibold text-white mb-4" data-v-ab22d560>Tov\xE1bbi helysz\xEDn adatok</h2><div class="grid grid-cols-1 md:grid-cols-2 gap-4" data-v-ab22d560><div class="md:col-span-2" data-v-ab22d560><label class="block text-sm font-medium text-slate-300 mb-1" data-v-ab22d560>Teljes c\xEDm sz\xF6vege</label><input${ssrRenderAttr("value", form.address.full_address_text)} placeholder="Teljes c\xEDm sz\xF6vege" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-ab22d560></div><div class="md:col-span-2" data-v-ab22d560><label class="block text-sm font-medium text-slate-300 mb-1" data-v-ab22d560>Plus Code</label><input${ssrRenderAttr("value", form.plus_code)} placeholder="8FVC9X8V+XV" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-ab22d560></div></div></div></form></div>`);
} else {
_push(`<!---->`);
}
if (activeTab.value === "hours") {
_push(`<div class="max-w-3xl" data-v-ab22d560><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 mb-6" data-v-ab22d560><h2 class="text-lg font-semibold text-white mb-2" data-v-ab22d560>Nyitvatart\xE1s</h2><p class="text-sm text-slate-400 mb-6" data-v-ab22d560> \xC1ll\xEDtsd be a szolg\xE1ltat\xF3 nyitvatart\xE1si idej\xE9t napokra bontva. </p><div class="mb-6 p-4 rounded-lg border bg-indigo-500/5 border-indigo-500/20" data-v-ab22d560><label class="flex items-center gap-3 cursor-pointer" data-v-ab22d560><input type="checkbox"${ssrIncludeBooleanAttr(Array.isArray(form.is_always_open) ? ssrLooseContain(form.is_always_open, null) : form.is_always_open) ? " checked" : ""} class="w-5 h-5 rounded border-slate-500 bg-slate-700 text-indigo-500 focus:ring-indigo-500/50" data-v-ab22d560><div data-v-ab22d560><span class="text-sm font-medium text-white" data-v-ab22d560>Folyamatos (0-24) nyitvatart\xE1s</span><p class="text-xs text-slate-400 mt-0.5" data-v-ab22d560>A szolg\xE1ltat\xF3 a h\xE9t minden napj\xE1n 0-24 \xF3r\xE1ig nyitva van</p></div></label></div><div class="${ssrRenderClass([{ "opacity-50 pointer-events-none": form.is_always_open }, "flex flex-wrap gap-2 mb-6"])}" data-v-ab22d560><button class="px-3 py-1.5 text-xs font-medium rounded-lg border border-emerald-600/30 text-emerald-400 hover:bg-emerald-600/10 transition" data-v-ab22d560> 24/7 Folyamatos nyitvatart\xE1s </button><button class="px-3 py-1.5 text-xs font-medium rounded-lg border border-indigo-600/30 text-indigo-400 hover:bg-indigo-600/10" data-v-ab22d560> H\xE9tk\xF6znapok m\xE1sol\xE1sa (H\xE9tf\u0151 \u2192 K-P) </button><button class="px-3 py-1.5 text-xs font-medium rounded-lg border border-rose-600/30 text-rose-400 hover:bg-rose-600/10" data-v-ab22d560> \xD6sszes t\xF6rl\xE9se </button></div><div class="${ssrRenderClass([{ "opacity-50 pointer-events-none": form.is_always_open }, "space-y-3"])}" data-v-ab22d560><!--[-->`);
ssrRenderList(DAYS, (day) => {
var _a, _b;
_push(`<div class="${ssrRenderClass([form.opening_hours[day.key] ? "bg-indigo-500/5 border-indigo-500/20" : "bg-slate-700/30 border-slate-600", "flex items-center gap-4 p-4 rounded-lg border"])}" data-v-ab22d560><label class="flex items-center gap-2 w-36 flex-shrink-0 cursor-pointer" data-v-ab22d560><input type="checkbox"${ssrIncludeBooleanAttr(!!form.opening_hours[day.key]) ? " checked" : ""}${ssrIncludeBooleanAttr(form.is_always_open) ? " disabled" : ""} class="w-4 h-4 rounded border-slate-500 bg-slate-700 text-indigo-500 focus:ring-indigo-500/50" data-v-ab22d560><span class="text-sm font-medium text-white" data-v-ab22d560>${ssrInterpolate(day.label)}</span></label>`);
if (form.opening_hours[day.key]) {
_push(`<div class="flex items-center gap-2" data-v-ab22d560><input type="time"${ssrRenderAttr("value", ((_a = form.opening_hours[day.key]) == null ? void 0 : _a.open) || "08:00")}${ssrIncludeBooleanAttr(form.is_always_open) ? " disabled" : ""} class="w-28 px-2 py-1.5 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 disabled:opacity-50" data-v-ab22d560><span class="text-slate-500 text-sm" data-v-ab22d560>\u2013</span><input type="time"${ssrRenderAttr("value", ((_b = form.opening_hours[day.key]) == null ? void 0 : _b.close) || "17:00")}${ssrIncludeBooleanAttr(form.is_always_open) ? " disabled" : ""} class="w-28 px-2 py-1.5 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 disabled:opacity-50" data-v-ab22d560></div>`);
} else {
_push(`<span class="text-sm text-slate-500 italic" data-v-ab22d560>Z\xE1rva</span>`);
}
_push(`</div>`);
});
_push(`<!--]--></div></div></div>`);
} else {
_push(`<!---->`);
}
_push(`<div class="sticky bottom-0 bg-slate-900/90 backdrop-blur-sm border-t border-slate-700 -mx-6 px-6 py-4 mt-8" data-v-ab22d560><div class="flex items-center justify-between max-w-4xl" data-v-ab22d560><div class="text-sm text-slate-400" data-v-ab22d560>`);
if (hasChanges.value) {
_push(`<span class="text-amber-400" data-v-ab22d560>\u25CF M\xF3dos\xEDt\xE1sok el nem mentve</span>`);
} else {
_push(`<span class="text-slate-500" data-v-ab22d560>Nincs v\xE1ltoz\xE1s</span>`);
}
_push(`</div><div class="flex gap-3" data-v-ab22d560><button class="px-4 py-2 text-sm text-slate-400 hover:text-white transition" data-v-ab22d560> M\xE9gse </button><button${ssrIncludeBooleanAttr(saveLoading.value || !hasChanges.value) ? " disabled" : ""} class="px-6 py-2 bg-indigo-600 hover:bg-indigo-500 disabled:bg-indigo-600/50 text-white rounded-lg text-sm font-medium transition flex items-center gap-2" data-v-ab22d560>`);
if (saveLoading.value) {
_push(`<svg class="w-4 h-4 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-ab22d560><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-ab22d560></path></svg>`);
} else {
_push(`<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-ab22d560><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" data-v-ab22d560></path></svg>`);
}
_push(` Ment\xE9s </button></div></div></div><!--]-->`);
}
if (toast.value) {
_push(`<div class="${ssrRenderClass([toast.value.type === "success" ? "bg-emerald-600 text-white" : "bg-rose-600 text-white", "fixed top-4 right-4 z-50 px-4 py-3 rounded-lg shadow-xl text-sm font-medium transition-all duration-300"])}" data-v-ab22d560>${ssrInterpolate(toast.value.message)}</div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
};
}
});
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/providers/[id]/edit.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
const edit = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-ab22d560"]]);
export { edit as default };
//# sourceMappingURL=edit-ZNmjSMhu.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
{"version":3,"file":"edit-styles-1.mjs-J0c-7dzy.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/edit-styles-1.mjs-J0c-7dzy.js"],"names":[],"mappings":"AAAA,MAAM,kEAAA,GAAqE;;;;"}

View File

@@ -1,11 +0,0 @@
import { S as SmartLocationInput_vue_vue_type_style_index_0_scoped_b43e13ca_lang } from './edit-styles-1.mjs-J0c-7dzy.mjs';
const edit_vue_vue_type_style_index_0_scoped_ab22d560_lang = ".overflow-y-auto[data-v-ab22d560]::-webkit-scrollbar{width:6px}.overflow-y-auto[data-v-ab22d560]::-webkit-scrollbar-track{background:transparent}.overflow-y-auto[data-v-ab22d560]::-webkit-scrollbar-thumb{background-color:#64748b80;border-radius:3px}.overflow-y-auto[data-v-ab22d560]::-webkit-scrollbar-thumb:hover{background-color:#64748bb3}";
const editStyles_BU1rQqCP = [
SmartLocationInput_vue_vue_type_style_index_0_scoped_b43e13ca_lang,
edit_vue_vue_type_style_index_0_scoped_ab22d560_lang
];
export { editStyles_BU1rQqCP as default };
//# sourceMappingURL=edit-styles.BU1rQqCP.mjs.map

View File

@@ -1 +0,0 @@
{"version":3,"file":"edit-styles.BU1rQqCP.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/edit-styles-2.mjs-BLAWo_jb.js","../../../../.nuxt/dist/server/_nuxt/edit-styles.BU1rQqCP.mjs"],"names":["style_0","style_1"],"mappings":";;AAAA,MAAM,oDAAA,GAAuD,uVAAA;;ACE7D,4BAAe;AACf,EAAEA,kEAAO;AACT,EAAEC;AACF;;;;"}

View File

@@ -0,0 +1,8 @@
const edit_vue_vue_type_style_index_0_scoped_1a169f11_lang = ".overflow-y-auto[data-v-1a169f11]::-webkit-scrollbar{width:4px}.overflow-y-auto[data-v-1a169f11]::-webkit-scrollbar-track{background:transparent}.overflow-y-auto[data-v-1a169f11]::-webkit-scrollbar-thumb{background:#64748b4d;border-radius:2px}";
const editStyles_C9NGzRJd = [
edit_vue_vue_type_style_index_0_scoped_1a169f11_lang
];
export { editStyles_C9NGzRJd as default };
//# sourceMappingURL=edit-styles.C9NGzRJd.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"edit-styles.C9NGzRJd.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/edit-styles-1.mjs-DofYNHvJ.js","../../../../.nuxt/dist/server/_nuxt/edit-styles.C9NGzRJd.mjs"],"names":["style_0"],"mappings":"AAAA,MAAM,oDAAA,GAAuD,qPAAA;;ACC7D,4BAAe;AACf,EAAEA;AACF;;;;"}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"version":3,"file":"entry-styles.5eyoLahJ.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/entry-styles-1.mjs-CYrHVAgL.js","../../../../.nuxt/dist/server/_nuxt/entry-styles-2.mjs-CRsudmfW.js","../../../../.nuxt/dist/server/_nuxt/entry-styles.5eyoLahJ.mjs"],"names":["style_0","style_1","style_2"],"mappings":";;AAAA,MAAM,QAAA,GAAW,CAAA,ux+CAAA,CAAA;;ACAjB,MAAM,IAAA,GAAO,CAAA,y0iDAAA,CAAA;;ACGb,6BAAe;AACf,EAAEA,QAAO;AACT,EAAEC,IAAO;AACT,EAAEC;AACF;;;;"}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
{"version":3,"file":"entry-styles.BrYI8OxV.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/entry-styles-1.mjs-BSzsbuA-.js","../../../../.nuxt/dist/server/_nuxt/entry-styles-2.mjs-6hMhRapZ.js","../../../../.nuxt/dist/server/_nuxt/entry-styles.BrYI8OxV.mjs"],"names":["style_0","style_1","style_2"],"mappings":";;AAAA,MAAM,QAAA,GAAW,CAAA,yk9CAAA,CAAA;;ACAjB,MAAM,IAAA,GAAO,CAAA,6ghDAAA,CAAA;;ACGb,6BAAe;AACf,EAAEA,QAAO;AACT,EAAEC,IAAO;AACT,EAAEC;AACF;;;;"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -191,6 +191,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}
_push(`<div class="bg-slate-800/50 border border-slate-700 rounded-xl overflow-hidden"><div class="overflow-x-auto"><table class="w-full text-sm"><thead><tr class="border-b border-slate-700 bg-slate-800/80"><th class="text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400">ID</th><th class="text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400">${ssrInterpolate(_ctx.$t("garages.company_name"))}</th><th class="text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400">${ssrInterpolate(_ctx.$t("common.status"))}</th><th class="text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400">${ssrInterpolate(_ctx.$t("garages.current_package"))}</th><th class="text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400">${ssrInterpolate(_ctx.$t("garages.expiration_date"))}</th><th class="text-left py-3.5 px-4 text-xs font-semibold uppercase tracking-wider text-slate-400">${ssrInterpolate(_ctx.$t("common.actions"))}</th></tr></thead><tbody><!--[-->`);
ssrRenderList(filteredGarages.value, (garage) => {
var _a2;
_push(`<tr class="border-b border-slate-700/50 hover:bg-slate-700/30 transition"><td class="py-3.5 px-4 text-slate-400 font-mono text-xs">${ssrInterpolate(garage.id)}</td><td class="py-3.5 px-4"><div class="flex items-center gap-3"><div class="${ssrRenderClass([getInitialsColor(garageDisplayName(garage)), "w-8 h-8 rounded-lg flex items-center justify-center text-sm font-bold text-white"])}">${ssrInterpolate(getInitials(garageDisplayName(garage)))}</div><div>`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/garages/" + garage.id,
@@ -207,7 +208,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}),
_: 2
}, _parent));
_push(`<p class="text-xs text-slate-500">${ssrInterpolate(garage.city || "\u2014")} \xB7 ${ssrInterpolate(garage.member_count)} ${ssrInterpolate(_ctx.$t("garages.members"))}</p></div></div></td><td class="py-3.5 px-4"><span class="${ssrRenderClass([statusBadgeClass(garage.status), "inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium"])}"><span class="${ssrRenderClass([statusDotClass(garage.status), "w-1.5 h-1.5 rounded-full mr-1.5"])}"></span> ${ssrInterpolate(statusLabel(garage.status))}</span></td><td class="py-3.5 px-4"><span class="${ssrRenderClass([tierBadgeClass(garage.subscription_tier_name), "px-2.5 py-0.5 rounded-full text-xs font-medium"])}">${ssrInterpolate(garage.subscription_tier_name)}</span></td><td class="py-3.5 px-4">`);
_push(`<p class="text-xs text-slate-500">${ssrInterpolate(((_a2 = garage.address_detail) == null ? void 0 : _a2.city) || "\u2014")} \xB7 ${ssrInterpolate(garage.member_count)} ${ssrInterpolate(_ctx.$t("garages.members"))}</p></div></div></td><td class="py-3.5 px-4"><span class="${ssrRenderClass([statusBadgeClass(garage.status), "inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium"])}"><span class="${ssrRenderClass([statusDotClass(garage.status), "w-1.5 h-1.5 rounded-full mr-1.5"])}"></span> ${ssrInterpolate(statusLabel(garage.status))}</span></td><td class="py-3.5 px-4"><span class="${ssrRenderClass([tierBadgeClass(garage.subscription_tier_name), "px-2.5 py-0.5 rounded-full text-xs font-medium"])}">${ssrInterpolate(garage.subscription_tier_name)}</span></td><td class="py-3.5 px-4">`);
if (garage.subscription_expires_at) {
_push(`<span class="text-slate-300 text-xs">${ssrInterpolate(formatDate(garage.subscription_expires_at))}</span>`);
} else {
@@ -267,4 +268,4 @@ _sfc_main.setup = (props, ctx) => {
};
export { _sfc_main as default };
//# sourceMappingURL=index-Bi2XSDbq.mjs.map
//# sourceMappingURL=index-D4rBlILa.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,7 @@
import { defineComponent, ref, computed, watch, unref, mergeProps, reactive, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrInterpolate, ssrRenderList, ssrRenderClass, ssrRenderComponent, ssrRenderStyle, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual } from 'vue/server-renderer';
import { c as useAuthStore, d as useCookie } from './server.mjs';
import { _ as _sfc_main$4 } from './SharedAddressForm-rsg7wrlQ.mjs';
import { useRoute, useRouter } from 'vue-router';
import '../nitro/nitro.mjs';
import 'node:http';
@@ -18,6 +19,7 @@ import 'unhead/server';
import 'devalue';
import 'unhead/utils';
import 'unhead/plugins';
import './_plugin-vue_export-helper-1tPrXgE0.mjs';
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
__name: "GarageGeneralTab",
@@ -52,38 +54,39 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
return dateStr;
}
}
const formattedAddress = computed(() => {
if (!props.garage) return "";
const parts = [
props.garage.address_zip,
props.garage.address_city,
props.garage.address_street_name,
props.garage.address_street_type,
props.garage.address_house_number
function formatAddress(addr, flatPrefix = "address") {
if (!props.garage) return "-";
if (addr && typeof addr === "object") {
const parts = [
addr.zip,
addr.city,
addr.street_name,
addr.street_type,
addr.house_number
].filter(Boolean);
if (parts.length > 0) return parts.join(" ");
if (addr.full_address_text) return addr.full_address_text;
}
const flatParts = [
props.garage[`${flatPrefix}_zip`],
props.garage[`${flatPrefix}_city`],
props.garage[`${flatPrefix}_street_name`],
props.garage[`${flatPrefix}_street_type`],
props.garage[`${flatPrefix}_house_number`]
].filter(Boolean);
return parts.join(" ") || "-";
return flatParts.join(" ") || "-";
}
const formattedAddress = computed(() => {
var _a;
return formatAddress((_a = props.garage) == null ? void 0 : _a.address_detail, "address");
});
const formattedBillingAddress = computed(() => {
if (!props.garage) return "";
const parts = [
props.garage.billing_zip,
props.garage.billing_city,
props.garage.billing_street_name,
props.garage.billing_street_type,
props.garage.billing_house_number
].filter(Boolean);
return parts.join(" ") || "";
var _a;
return formatAddress((_a = props.garage) == null ? void 0 : _a.billing_address_detail, "billing");
});
const formattedNotificationAddress = computed(() => {
if (!props.garage) return "";
const parts = [
props.garage.notification_zip,
props.garage.notification_city,
props.garage.notification_street_name,
props.garage.notification_street_type,
props.garage.notification_house_number
].filter(Boolean);
return parts.join(" ") || "";
var _a;
return formatAddress((_a = props.garage) == null ? void 0 : _a.notification_address_detail, "notification");
});
return (_ctx, _push, _parent, _attrs) => {
var _a, _b, _c, _d, _e, _f, _g, _h;
@@ -561,11 +564,21 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
tax_number: "",
reg_number: "",
org_type: "",
address_zip: "",
address_city: "",
address_street_name: "",
address_street_type: "",
address_house_number: "",
/** P0 BUGFIX: Use address_detail object instead of flat address fields */
address_detail: {
zip: null,
city: null,
street_name: null,
street_type: null,
house_number: null,
stairwell: null,
floor: null,
door: null,
parcel_id: null,
full_address_text: null,
latitude: null,
longitude: null
},
contact_person_name: "",
contact_email: "",
contact_phone: "",
@@ -824,6 +837,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
const _component_GaragesGarageGeneralTab = _sfc_main$3;
const _component_GaragesGarageFleetTab = _sfc_main$2;
const _component_GaragesGarageSubscriptionTab = _sfc_main$1;
const _component_SharedAddressForm = _sfc_main$4;
_push(`<div${ssrRenderAttrs(_attrs)}>`);
if (loading.value) {
_push(`<div class="flex items-center justify-center py-20"><div class="flex flex-col items-center gap-3"><svg class="w-8 h-8 text-indigo-400 animate-spin" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"></path></svg><p class="text-slate-400 text-sm">${ssrInterpolate(_ctx.$t("garages.details.loading"))}</p></div></div>`);
@@ -939,7 +953,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
});
_push(`<!--]--></nav></div><div class="flex-1 overflow-y-auto p-6 space-y-6">`);
if (editModalTab.value === "basic") {
_push(`<div class="space-y-5"><div class="grid grid-cols-1 md:grid-cols-2 gap-4"><div><label class="block text-xs font-medium text-slate-400 mb-1.5">${ssrInterpolate(_ctx.$t("garages.details.company_name"))}</label><input${ssrRenderAttr("value", editForm.value.full_name)} type="text" class="w-full px-3 py-2 text-sm bg-slate-700/50 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500"></div><div><label class="block text-xs font-medium text-slate-400 mb-1.5">${ssrInterpolate(_ctx.$t("garages.details.display_name"))}</label><input${ssrRenderAttr("value", editForm.value.display_name)} type="text" class="w-full px-3 py-2 text-sm bg-slate-700/50 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500"></div></div><div class="grid grid-cols-1 md:grid-cols-2 gap-4"><div><label class="block text-xs font-medium text-slate-400 mb-1.5">${ssrInterpolate(_ctx.$t("garages.details.tax_number"))}</label><input${ssrRenderAttr("value", editForm.value.tax_number)} type="text" class="w-full px-3 py-2 text-sm bg-slate-700/50 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500"></div><div><label class="block text-xs font-medium text-slate-400 mb-1.5">${ssrInterpolate(_ctx.$t("garages.details.reg_number"))}</label><input${ssrRenderAttr("value", editForm.value.reg_number)} type="text" class="w-full px-3 py-2 text-sm bg-slate-700/50 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500"></div></div><div class="grid grid-cols-1 md:grid-cols-2 gap-4"><div><label class="block text-xs font-medium text-slate-400 mb-1.5">${ssrInterpolate(_ctx.$t("garages.details.zip"))}</label><input${ssrRenderAttr("value", editForm.value.address_zip)} type="text" class="w-full px-3 py-2 text-sm bg-slate-700/50 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500"></div><div><label class="block text-xs font-medium text-slate-400 mb-1.5">${ssrInterpolate(_ctx.$t("garages.details.city"))}</label><input${ssrRenderAttr("value", editForm.value.address_city)} type="text" class="w-full px-3 py-2 text-sm bg-slate-700/50 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500"></div></div><div class="grid grid-cols-1 md:grid-cols-2 gap-4"><div><label class="block text-xs font-medium text-slate-400 mb-1.5">${ssrInterpolate(_ctx.$t("garages.details.street_name"))}</label><input${ssrRenderAttr("value", editForm.value.address_street_name)} type="text" class="w-full px-3 py-2 text-sm bg-slate-700/50 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500"></div><div><label class="block text-xs font-medium text-slate-400 mb-1.5">${ssrInterpolate(_ctx.$t("garages.details.street_type"))}</label><input${ssrRenderAttr("value", editForm.value.address_street_type)} type="text" class="w-full px-3 py-2 text-sm bg-slate-700/50 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500"></div></div><div class="grid grid-cols-1 md:grid-cols-2 gap-4"><div><label class="block text-xs font-medium text-slate-400 mb-1.5">${ssrInterpolate(_ctx.$t("garages.details.house_number"))}</label><input${ssrRenderAttr("value", editForm.value.address_house_number)} type="text" class="w-full px-3 py-2 text-sm bg-slate-700/50 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500"></div></div></div>`);
_push(`<div class="space-y-5"><div class="grid grid-cols-1 md:grid-cols-2 gap-4"><div><label class="block text-xs font-medium text-slate-400 mb-1.5">${ssrInterpolate(_ctx.$t("garages.details.company_name"))}</label><input${ssrRenderAttr("value", editForm.value.full_name)} type="text" class="w-full px-3 py-2 text-sm bg-slate-700/50 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500"></div><div><label class="block text-xs font-medium text-slate-400 mb-1.5">${ssrInterpolate(_ctx.$t("garages.details.display_name"))}</label><input${ssrRenderAttr("value", editForm.value.display_name)} type="text" class="w-full px-3 py-2 text-sm bg-slate-700/50 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500"></div></div><div class="grid grid-cols-1 md:grid-cols-2 gap-4"><div><label class="block text-xs font-medium text-slate-400 mb-1.5">${ssrInterpolate(_ctx.$t("garages.details.tax_number"))}</label><input${ssrRenderAttr("value", editForm.value.tax_number)} type="text" class="w-full px-3 py-2 text-sm bg-slate-700/50 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500"></div><div><label class="block text-xs font-medium text-slate-400 mb-1.5">${ssrInterpolate(_ctx.$t("garages.details.reg_number"))}</label><input${ssrRenderAttr("value", editForm.value.reg_number)} type="text" class="w-full px-3 py-2 text-sm bg-slate-700/50 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500"></div></div><div class="border-t border-slate-700/50 pt-4 mt-4"><h4 class="text-sm font-semibold text-white mb-3">${ssrInterpolate(_ctx.$t("garages.details.address"))}</h4>`);
if (editForm.value.address_detail) {
_push(ssrRenderComponent(_component_SharedAddressForm, {
modelValue: editForm.value.address_detail,
"onUpdate:modelValue": ($event) => editForm.value.address_detail = $event
}, null, _parent));
} else {
_push(`<!---->`);
}
_push(`</div></div>`);
} else {
_push(`<!---->`);
}
@@ -1028,4 +1051,4 @@ _sfc_main.setup = (props, ctx) => {
};
export { _sfc_main as default };
//# sourceMappingURL=index-CKl-ge5n.mjs.map
//# sourceMappingURL=index-DEHPSD4s.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -1,707 +0,0 @@
import { _ as __nuxt_component_0 } from './nuxt-link-1NBbHb-h.mjs';
import { defineComponent, ref, computed, watch, createVNode, resolveDynamicComponent, withCtx, openBlock, createBlock, createTextVNode, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrInterpolate, ssrRenderClass, ssrRenderList, ssrRenderVNode, ssrRenderStyle, ssrRenderAttr, ssrIncludeBooleanAttr, ssrRenderComponent, ssrLooseContain, ssrLooseEqual } from 'vue/server-renderer';
import { useRoute, useRouter } from 'vue-router';
import { d as useCookie } from './server.mjs';
import { _ as _export_sfc } from './_plugin-vue_export-helper-1tPrXgE0.mjs';
import '../nitro/nitro.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'node:url';
import 'pinia';
import '../routes/renderer.mjs';
import 'vue-bundle-renderer/runtime';
import 'unhead/server';
import 'devalue';
import 'unhead/utils';
import 'unhead/plugins';
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
__name: "RawDataViewer",
__ssrInlineRender: true,
props: {
data: {}
},
setup(__props) {
function isEmpty(obj) {
if (!obj || typeof obj !== "object") return true;
return Object.keys(obj).length === 0;
}
function objectKeys(obj) {
if (!obj || typeof obj !== "object") return "{ }";
const keys = Object.keys(obj);
if (keys.length === 0) return "{ \xFCres }";
return `{ ${keys.length} kulcs }`;
}
return (_ctx, _push, _parent, _attrs) => {
const _component_RawDataViewer = _sfc_main$1;
_push(`<div${ssrRenderAttrs(_attrs)}>`);
if (!__props.data || isEmpty(__props.data)) {
_push(`<div class="text-center py-8"><svg class="w-10 h-10 mx-auto mb-3 text-slate-600" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4"></path></svg><p class="text-sm text-slate-500">Nincs nyers adat</p></div>`);
} else {
_push(`<div class="space-y-1 font-mono text-xs"><!--[-->`);
ssrRenderList(__props.data, (value, key) => {
_push(`<div class="border-b border-slate-700/50 last:border-0"><div class="flex items-start gap-3 py-2"><span class="text-indigo-400 font-semibold whitespace-nowrap min-w-[140px] flex-shrink-0">${ssrInterpolate(key)}</span><div class="flex-1 min-w-0">`);
if (value === null || value === void 0) {
_push(`<span class="text-slate-500 italic">null</span>`);
} else if (typeof value === "string") {
_push(`<span class="text-emerald-300 break-words"> &quot;${ssrInterpolate(value)}&quot; </span>`);
} else if (typeof value === "number" || typeof value === "boolean") {
_push(`<span class="text-amber-300">${ssrInterpolate(value)}</span>`);
} else if (Array.isArray(value)) {
_push(`<div>`);
if (value.length === 0) {
_push(`<span class="text-slate-500 italic">[]</span>`);
} else {
_push(`<details class="group"><summary class="cursor-pointer text-slate-400 hover:text-slate-300 list-none flex items-center gap-1.5"><svg class="w-3 h-3 transition-transform group-open:rotate-90" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path></svg><span class="text-slate-400">Array [${ssrInterpolate(value.length)}]</span></summary><div class="ml-4 mt-1 space-y-1 border-l border-slate-700 pl-3"><!--[-->`);
ssrRenderList(value, (item, idx) => {
_push(`<div class="py-1"><span class="text-slate-500 mr-2">[${ssrInterpolate(idx)}]</span>`);
if (typeof item === "object" && item !== null) {
_push(`<span class="text-slate-400">`);
_push(ssrRenderComponent(_component_RawDataViewer, { data: item }, null, _parent));
_push(`</span>`);
} else if (typeof item === "string") {
_push(`<span class="text-emerald-300">&quot;${ssrInterpolate(item)}&quot;</span>`);
} else {
_push(`<span class="text-amber-300">${ssrInterpolate(item)}</span>`);
}
_push(`</div>`);
});
_push(`<!--]--></div></details>`);
}
_push(`</div>`);
} else if (typeof value === "object") {
_push(`<div><details class="group"><summary class="cursor-pointer text-slate-400 hover:text-slate-300 list-none flex items-center gap-1.5"><svg class="w-3 h-3 transition-transform group-open:rotate-90" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path></svg><span class="text-slate-400">Object ${ssrInterpolate(objectKeys(value))}</span></summary><div class="ml-4 mt-1 border-l border-slate-700 pl-3">`);
_push(ssrRenderComponent(_component_RawDataViewer, { data: value }, null, _parent));
_push(`</div></details></div>`);
} else {
_push(`<span class="text-slate-400">${ssrInterpolate(String(value))}</span>`);
}
_push(`</div></div></div>`);
});
_push(`<!--]--></div>`);
}
_push(`</div>`);
};
}
});
const _sfc_setup$1 = _sfc_main$1.setup;
_sfc_main$1.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/RawDataViewer.vue");
return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
};
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "index",
__ssrInlineRender: true,
setup(__props) {
const route = useRoute();
useRouter();
const loading = ref(true);
const error = ref(false);
const provider = ref(null);
const actionLoading = ref(false);
ref(null);
const showRejectModal = ref(false);
const rejectReason = ref("");
const showFlagModal = ref(false);
const flagReason = ref("");
const activeTab = ref("data");
const validations = ref([]);
const validationsLoading = ref(false);
const history = ref([]);
const historyLoading = ref(false);
const statusForm = ref({
status: "pending",
validation_score: 0,
reason: ""
});
const statusLoading = ref(false);
const tabs = [
{ key: "data", label: "Adatok", icon: "svg" },
{ key: "status", label: "St\xE1tusz", icon: "svg" },
{ key: "validations", label: "Valid\xE1ci\xF3k", icon: "svg" },
{ key: "crawler", label: "Crawler / Nyers Adatok", icon: "svg" },
{ key: "history", label: "El\u0151zm\xE9nyek", icon: "svg" }
];
const statusBannerClass = computed(() => {
var _a;
switch ((_a = provider.value) == null ? void 0 : _a.status) {
case "approved":
return "bg-emerald-500/10 border-emerald-500/30";
case "pending":
return "bg-amber-500/10 border-amber-500/30";
default:
return "bg-rose-500/10 border-rose-500/30";
}
});
const statusIconClass = computed(() => {
var _a;
switch ((_a = provider.value) == null ? void 0 : _a.status) {
case "approved":
return "bg-emerald-500/20 text-emerald-400";
case "pending":
return "bg-amber-500/20 text-amber-400";
default:
return "bg-rose-500/20 text-rose-400";
}
});
const statusTextClass = computed(() => {
var _a;
switch ((_a = provider.value) == null ? void 0 : _a.status) {
case "approved":
return "text-emerald-400";
case "pending":
return "text-amber-400";
default:
return "text-rose-400";
}
});
const statusSubtextClass = computed(() => {
var _a;
switch ((_a = provider.value) == null ? void 0 : _a.status) {
case "approved":
return "text-emerald-400/60";
case "pending":
return "text-amber-400/60";
default:
return "text-rose-400/60";
}
});
const hasOpeningHours = computed(() => {
var _a;
const hours = (_a = provider.value) == null ? void 0 : _a.opening_hours;
if (!hours || typeof hours !== "object") return false;
return DAYS.some((day) => {
const slot = hours[day.key];
return slot && typeof slot === "object" && slot.open && slot.close;
});
});
const hasSpecializations = computed(() => {
var _a;
const spec = (_a = provider.value) == null ? void 0 : _a.specializations;
if (!spec || typeof spec !== "object") return false;
return Array.isArray(spec.brands) && spec.brands.length > 0 || Array.isArray(spec.propulsion) && spec.propulsion.length > 0;
});
const trustScoreBadgeClass = computed(() => {
var _a;
const score = (_a = provider.value) == null ? void 0 : _a.trust_score;
if (score === null || score === void 0) return "bg-slate-700 text-slate-400";
if (score > 80) return "bg-emerald-500/20 text-emerald-400 border border-emerald-500/30";
if (score > 50) return "bg-amber-500/20 text-amber-400 border border-amber-500/30";
return "bg-rose-500/20 text-rose-400 border border-rose-500/30";
});
const DAYS = [
{ key: "monday", label: "H\xE9tf\u0151" },
{ key: "tuesday", label: "Kedd" },
{ key: "wednesday", label: "Szerda" },
{ key: "thursday", label: "Cs\xFCt\xF6rt\xF6k" },
{ key: "friday", label: "P\xE9ntek" },
{ key: "saturday", label: "Szombat" },
{ key: "sunday", label: "Vas\xE1rnap" }
];
function getDayHours(dayKey) {
var _a;
const hours = (_a = provider.value) == null ? void 0 : _a.opening_hours;
if (!hours || typeof hours !== "object") return null;
const slot = hours[dayKey];
if (slot && typeof slot === "object" && slot.open && slot.close) {
return { open: slot.open, close: slot.close };
}
return null;
}
function statusLabel(status) {
switch (status) {
case "approved":
return "J\xF3v\xE1hagyva";
case "pending":
return "F\xFCgg\u0151ben";
case "rejected":
return "Elutas\xEDtva";
default:
return "Ismeretlen";
}
}
function statusDescription(status) {
switch (status) {
case "approved":
return "A szolg\xE1ltat\xF3 akt\xEDv \xE9s l\xE1that\xF3 a felhaszn\xE1l\xF3k sz\xE1m\xE1ra.";
case "pending":
return "A szolg\xE1ltat\xF3 m\xE9g nem lett j\xF3v\xE1hagyva, moder\xE1l\xE1sra v\xE1r.";
case "rejected":
return "A szolg\xE1ltat\xF3 elutas\xEDt\xE1sra ker\xFClt, nem l\xE1that\xF3 a felhaszn\xE1l\xF3k sz\xE1m\xE1ra.";
default:
return "";
}
}
function vehicleClassLabel(key) {
const labels = {
car: "Szem\xE9lyaut\xF3",
motorcycle: "Motorker\xE9kp\xE1r",
truck: "Teheraut\xF3",
hgv: "Neh\xE9zg\xE9pj\xE1rm\u0171 (HGV)",
light_commercial: "Kishaszonj\xE1rm\u0171",
personal: "Szem\xE9lyes",
boat: "Cs\xF3nak/V\xEDzi",
other: "Egy\xE9b"
};
return labels[key] || key;
}
function validationTypeLabel(type) {
const labels = {
phone_verified: "Telefon igazolt",
email_verified: "Email igazolt",
address_verified: "C\xEDm igazolt",
website_verified: "Weboldal igazolt",
manual_review: "K\xE9zi ellen\u0151rz\xE9s",
community_vouch: "K\xF6z\xF6ss\xE9gi aj\xE1nl\xE1s",
business_hours: "Nyitvatart\xE1s ellen\u0151rz\xF6tt",
photo_evidence: "F\xE9nyk\xE9p bizony\xEDt\xE9k"
};
return labels[type] || type;
}
function validationTypeClass(type) {
const classes = {
phone_verified: "bg-emerald-500/20 text-emerald-400",
email_verified: "bg-blue-500/20 text-blue-400",
address_verified: "bg-amber-500/20 text-amber-400",
website_verified: "bg-purple-500/20 text-purple-400",
manual_review: "bg-indigo-500/20 text-indigo-400",
community_vouch: "bg-pink-500/20 text-pink-400",
business_hours: "bg-cyan-500/20 text-cyan-400",
photo_evidence: "bg-orange-500/20 text-orange-400"
};
return classes[type] || "bg-slate-500/20 text-slate-400";
}
function historyActionLabel(action) {
const labels = {
approve: "J\xF3v\xE1hagy\xE1s",
reject: "Elutas\xEDt\xE1s",
restore: "Vissza\xE1ll\xEDt\xE1s",
flag: "Megjel\xF6l\xE9s",
update: "M\xF3dos\xEDt\xE1s",
delete: "T\xF6rl\xE9s",
create: "L\xE9trehoz\xE1s"
};
return labels[action] || action;
}
function historyActionClass(action) {
const classes = {
approve: "bg-emerald-500/20 text-emerald-400",
reject: "bg-rose-500/20 text-rose-400",
restore: "bg-blue-500/20 text-blue-400",
flag: "bg-purple-500/20 text-purple-400",
update: "bg-amber-500/20 text-amber-400",
delete: "bg-red-500/20 text-red-400",
create: "bg-green-500/20 text-green-400"
};
return classes[action] || "bg-slate-500/20 text-slate-400";
}
function historyDotClass(action) {
const classes = {
approve: "border-emerald-500 bg-emerald-500/30",
reject: "border-rose-500 bg-rose-500/30",
restore: "border-blue-500 bg-blue-500/30",
flag: "border-purple-500 bg-purple-500/30",
update: "border-amber-500 bg-amber-500/30",
delete: "border-red-500 bg-red-500/30",
create: "border-green-500 bg-green-500/30"
};
return classes[action] || "border-slate-500 bg-slate-500/30";
}
function formatDate(dateStr) {
if (!dateStr) return "\u2014";
try {
const d = new Date(dateStr);
return d.toLocaleDateString("hu-HU", {
year: "numeric",
month: "short",
day: "numeric",
hour: "2-digit",
minute: "2-digit"
});
} catch {
return dateStr;
}
}
function getHeaders() {
const token = useCookie("access_token").value;
const headers = { "Content-Type": "application/json" };
if (token) headers["Authorization"] = `Bearer ${token}`;
return headers;
}
async function fetchValidations() {
validationsLoading.value = true;
try {
const res = await $fetch(`/api/v1/admin/providers/${route.params.id}/validations`, {
headers: getHeaders()
});
validations.value = res || [];
} catch (err) {
console.error("Failed to fetch validations:", err);
validations.value = [];
} finally {
validationsLoading.value = false;
}
}
async function fetchHistory() {
historyLoading.value = true;
try {
const res = await $fetch(`/api/v1/admin/providers/${route.params.id}/history`, {
headers: getHeaders()
});
history.value = res || [];
} catch (err) {
console.error("Failed to fetch history:", err);
history.value = [];
} finally {
historyLoading.value = false;
}
}
function onTabChange(tab) {
if (tab === "validations" && validations.value.length === 0) {
fetchValidations();
}
if (tab === "history" && history.value.length === 0) {
fetchHistory();
}
}
watch(activeTab, onTabChange);
return (_ctx, _push, _parent, _attrs) => {
var _a, _b, _c, _d, _e, _f, _g;
const _component_NuxtLink = __nuxt_component_0;
const _component_RawDataViewer = _sfc_main$1;
_push(`<div${ssrRenderAttrs(_attrs)} data-v-5941cb1d><div class="mb-8" data-v-5941cb1d><button class="inline-flex items-center gap-1.5 text-sm text-slate-400 hover:text-white transition mb-4" data-v-5941cb1d><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7" data-v-5941cb1d></path></svg> Vissza a szolg\xE1ltat\xF3khoz </button><h1 class="text-2xl font-bold text-white" data-v-5941cb1d>Szolg\xE1ltat\xF3 r\xE9szletek</h1><p class="text-slate-400 mt-1" data-v-5941cb1d>Szolg\xE1ltat\xF3 #${ssrInterpolate(_ctx.$route.params.id)}</p></div>`);
if (loading.value) {
_push(`<div class="flex items-center justify-center py-20" data-v-5941cb1d><div class="text-slate-400 flex items-center gap-3" data-v-5941cb1d><svg class="w-5 h-5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-5941cb1d></path></svg><span data-v-5941cb1d>Szolg\xE1ltat\xF3 bet\xF6lt\xE9se...</span></div></div>`);
} else if (error.value) {
_push(`<div class="bg-rose-500/10 border border-rose-500/30 rounded-xl p-6 mb-8" data-v-5941cb1d><p class="text-rose-400" data-v-5941cb1d>Hiba t\xF6rt\xE9nt a szolg\xE1ltat\xF3 bet\xF6lt\xE9se k\xF6zben.</p><button class="mt-3 text-sm text-rose-300 hover:text-rose-200 underline" data-v-5941cb1d>\xDAjrapr\xF3b\xE1lkoz\xE1s</button></div>`);
} else if (!provider.value) {
_push(`<div class="bg-slate-800 rounded-xl border border-slate-700 p-6" data-v-5941cb1d><p class="text-slate-400 text-center py-12" data-v-5941cb1d>A szolg\xE1ltat\xF3 nem tal\xE1lhat\xF3.</p></div>`);
} else {
_push(`<!--[--><div class="${ssrRenderClass([statusBannerClass.value, "rounded-xl border p-4 mb-6 flex items-center gap-3"])}" data-v-5941cb1d><span class="${ssrRenderClass([statusIconClass.value, "flex-shrink-0 w-8 h-8 rounded-full flex items-center justify-center"])}" data-v-5941cb1d>`);
if (provider.value.status === "approved") {
_push(`<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" data-v-5941cb1d></path></svg>`);
} else if (provider.value.status === "pending") {
_push(`<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" data-v-5941cb1d></path></svg>`);
} else {
_push(`<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" data-v-5941cb1d></path></svg>`);
}
_push(`</span><div data-v-5941cb1d><p class="${ssrRenderClass([statusTextClass.value, "text-sm font-medium"])}" data-v-5941cb1d>${ssrInterpolate(statusLabel(provider.value.status))}</p><p class="${ssrRenderClass([statusSubtextClass.value, "text-xs mt-0.5"])}" data-v-5941cb1d>${ssrInterpolate(statusDescription(provider.value.status))}</p></div></div><div class="border-b border-slate-700 mb-6" data-v-5941cb1d><nav class="flex gap-6 -mb-px" data-v-5941cb1d><!--[-->`);
ssrRenderList(tabs, (tab) => {
_push(`<button class="${ssrRenderClass([activeTab.value === tab.key ? "text-indigo-400 border-indigo-400" : "text-slate-400 border-transparent hover:text-slate-300", "pb-3 text-sm font-medium border-b-2 transition flex items-center gap-2"])}" data-v-5941cb1d>`);
ssrRenderVNode(_push, createVNode(resolveDynamicComponent(tab.icon), { class: "w-4 h-4" }, null), _parent);
_push(` ${ssrInterpolate(tab.label)}</button>`);
});
_push(`<!--]--></nav></div>`);
if (activeTab.value === "data") {
_push(`<div class="grid grid-cols-1 lg:grid-cols-3 gap-6" data-v-5941cb1d><div class="lg:col-span-2 space-y-6" data-v-5941cb1d><div class="bg-slate-800 rounded-xl border border-slate-700 p-6" data-v-5941cb1d><h2 class="text-lg font-semibold text-white mb-4" data-v-5941cb1d>Alapadatok</h2><dl class="grid grid-cols-1 md:grid-cols-2 gap-4" data-v-5941cb1d><div data-v-5941cb1d><dt class="text-xs text-slate-500 uppercase tracking-wider" data-v-5941cb1d>N\xE9v</dt><dd class="text-sm text-white mt-1 font-medium" data-v-5941cb1d>${ssrInterpolate(provider.value.name)}</dd></div><div data-v-5941cb1d><dt class="text-xs text-slate-500 uppercase tracking-wider" data-v-5941cb1d>Kateg\xF3ria</dt><dd class="text-sm text-white mt-1" data-v-5941cb1d>${ssrInterpolate(provider.value.category || "\u2014")}</dd></div><div data-v-5941cb1d><dt class="text-xs text-slate-500 uppercase tracking-wider" data-v-5941cb1d>Forr\xE1s</dt><dd class="mt-1" data-v-5941cb1d><code class="text-sm font-mono text-amber-300 bg-amber-500/10 px-2 py-0.5 rounded" data-v-5941cb1d>${ssrInterpolate(provider.value.source)}</code></dd></div><div data-v-5941cb1d><dt class="text-xs text-slate-500 uppercase tracking-wider" data-v-5941cb1d>Valid\xE1ci\xF3s pontsz\xE1m</dt><dd class="mt-1" data-v-5941cb1d><div class="flex items-center gap-2" data-v-5941cb1d><div class="w-24 h-2 bg-slate-700 rounded-full overflow-hidden" data-v-5941cb1d><div class="${ssrRenderClass([provider.value.validation_score >= 50 ? "bg-emerald-500" : provider.value.validation_score >= 20 ? "bg-amber-500" : "bg-slate-500", "h-full rounded-full transition-all"])}" style="${ssrRenderStyle({ width: Math.min(provider.value.validation_score, 100) + "%" })}" data-v-5941cb1d></div></div><span class="text-sm text-white font-medium" data-v-5941cb1d>${ssrInterpolate(provider.value.validation_score)}</span></div></dd></div><div data-v-5941cb1d><dt class="text-xs text-slate-500 uppercase tracking-wider" data-v-5941cb1d>L\xE9trehozva</dt><dd class="text-sm text-white mt-1" data-v-5941cb1d>${ssrInterpolate(formatDate(provider.value.created_at))}</dd></div><div data-v-5941cb1d><dt class="text-xs text-slate-500 uppercase tracking-wider" data-v-5941cb1d>Bek\xFCld\u0151 user ID</dt><dd class="text-sm text-white mt-1" data-v-5941cb1d>${ssrInterpolate(provider.value.added_by_user_id || "\u2014")}</dd></div></dl></div><div class="bg-slate-800 rounded-xl border border-slate-700 p-6" data-v-5941cb1d><h2 class="text-lg font-semibold text-white mb-4" data-v-5941cb1d>C\xEDm adatok</h2><dl class="grid grid-cols-1 md:grid-cols-2 gap-4" data-v-5941cb1d><div class="md:col-span-2" data-v-5941cb1d><dt class="text-xs text-slate-500 uppercase tracking-wider" data-v-5941cb1d>Teljes c\xEDm</dt><dd class="text-sm text-white mt-1" data-v-5941cb1d>${ssrInterpolate(provider.value.address || "\u2014")}</dd></div><div data-v-5941cb1d><dt class="text-xs text-slate-500 uppercase tracking-wider" data-v-5941cb1d>V\xE1ros</dt><dd class="text-sm text-white mt-1" data-v-5941cb1d>${ssrInterpolate(provider.value.city || "\u2014")}</dd></div><div data-v-5941cb1d><dt class="text-xs text-slate-500 uppercase tracking-wider" data-v-5941cb1d>Ir\xE1ny\xEDt\xF3sz\xE1m</dt><dd class="text-sm text-white mt-1" data-v-5941cb1d>${ssrInterpolate(provider.value.address_zip || "\u2014")}</dd></div><div data-v-5941cb1d><dt class="text-xs text-slate-500 uppercase tracking-wider" data-v-5941cb1d>Utca</dt><dd class="text-sm text-white mt-1" data-v-5941cb1d>${ssrInterpolate(provider.value.address_street_name || "\u2014")}</dd></div><div data-v-5941cb1d><dt class="text-xs text-slate-500 uppercase tracking-wider" data-v-5941cb1d>H\xE1zsz\xE1m</dt><dd class="text-sm text-white mt-1" data-v-5941cb1d>${ssrInterpolate(provider.value.address_house_number || "\u2014")}</dd></div><div data-v-5941cb1d><dt class="text-xs text-slate-500 uppercase tracking-wider" data-v-5941cb1d>Plus Code</dt><dd class="text-sm text-white mt-1" data-v-5941cb1d>${ssrInterpolate(provider.value.plus_code || "\u2014")}</dd></div></dl></div><div class="bg-slate-800 rounded-xl border border-slate-700 p-6" data-v-5941cb1d><h2 class="text-lg font-semibold text-white mb-4" data-v-5941cb1d>El\xE9rhet\u0151s\xE9g</h2><dl class="grid grid-cols-1 md:grid-cols-2 gap-4" data-v-5941cb1d><div data-v-5941cb1d><dt class="text-xs text-slate-500 uppercase tracking-wider" data-v-5941cb1d>Telefon</dt><dd class="text-sm text-white mt-1" data-v-5941cb1d>${ssrInterpolate(provider.value.contact_phone || "\u2014")}</dd></div><div data-v-5941cb1d><dt class="text-xs text-slate-500 uppercase tracking-wider" data-v-5941cb1d>Email</dt><dd class="text-sm text-white mt-1" data-v-5941cb1d>${ssrInterpolate(provider.value.contact_email || "\u2014")}</dd></div><div data-v-5941cb1d><dt class="text-xs text-slate-500 uppercase tracking-wider" data-v-5941cb1d>Weboldal</dt><dd class="text-sm text-white mt-1" data-v-5941cb1d>`);
if (provider.value.website) {
_push(`<a${ssrRenderAttr("href", provider.value.website)} target="_blank" class="text-indigo-400 hover:text-indigo-300 underline" data-v-5941cb1d>${ssrInterpolate(provider.value.website)}</a>`);
} else {
_push(`<span data-v-5941cb1d>\u2014</span>`);
}
_push(`</dd></div></dl></div><div class="bg-slate-800 rounded-xl border border-slate-700 p-6" data-v-5941cb1d><h2 class="text-lg font-semibold text-white mb-4" data-v-5941cb1d>Szolg\xE1ltat\xE1sok</h2>`);
if (provider.value.category_ids && provider.value.category_ids.length > 0) {
_push(`<div class="flex flex-wrap gap-2" data-v-5941cb1d><!--[-->`);
ssrRenderList(provider.value.category_ids, (catId) => {
_push(`<span class="inline-flex items-center gap-1 px-3 py-1.5 bg-indigo-500/10 text-indigo-300 rounded-full text-xs font-medium" data-v-5941cb1d> #${ssrInterpolate(catId)}</span>`);
});
_push(`<!--]--></div>`);
} else {
_push(`<p class="text-sm text-slate-500 italic" data-v-5941cb1d>Nincsenek kateg\xF3ri\xE1k be\xE1ll\xEDtva</p>`);
}
_push(`</div><div class="bg-slate-800 rounded-xl border border-slate-700 p-6" data-v-5941cb1d><h2 class="text-lg font-semibold text-white mb-4" data-v-5941cb1d>J\xE1rm\u0171oszt\xE1lyok</h2>`);
if (provider.value.supported_vehicle_classes && provider.value.supported_vehicle_classes.length > 0) {
_push(`<div class="flex flex-wrap gap-2" data-v-5941cb1d><!--[-->`);
ssrRenderList(provider.value.supported_vehicle_classes, (vc) => {
_push(`<span class="inline-flex items-center gap-1 px-3 py-1.5 bg-emerald-500/10 text-emerald-300 rounded-full text-xs font-medium" data-v-5941cb1d>${ssrInterpolate(vehicleClassLabel(vc))}</span>`);
});
_push(`<!--]--></div>`);
} else {
_push(`<p class="text-sm text-slate-500 italic" data-v-5941cb1d>Nincsenek j\xE1rm\u0171oszt\xE1lyok be\xE1ll\xEDtva</p>`);
}
_push(`</div><div class="bg-slate-800 rounded-xl border border-slate-700 p-6" data-v-5941cb1d><h2 class="text-lg font-semibold text-white mb-4" data-v-5941cb1d>Specializ\xE1ci\xF3k</h2>`);
if (hasSpecializations.value) {
_push(`<div class="space-y-3" data-v-5941cb1d>`);
if ((_b = (_a = provider.value.specializations) == null ? void 0 : _a.brands) == null ? void 0 : _b.length) {
_push(`<div data-v-5941cb1d><h3 class="text-xs text-slate-500 uppercase tracking-wider mb-2" data-v-5941cb1d>M\xE1rk\xE1k</h3><div class="flex flex-wrap gap-2" data-v-5941cb1d><!--[-->`);
ssrRenderList(provider.value.specializations.brands, (brand) => {
_push(`<span class="inline-flex items-center gap-1 px-3 py-1.5 bg-amber-500/10 text-amber-300 rounded-full text-xs font-medium" data-v-5941cb1d>${ssrInterpolate(brand)}</span>`);
});
_push(`<!--]--></div></div>`);
} else {
_push(`<!---->`);
}
if ((_d = (_c = provider.value.specializations) == null ? void 0 : _c.propulsion) == null ? void 0 : _d.length) {
_push(`<div data-v-5941cb1d><h3 class="text-xs text-slate-500 uppercase tracking-wider mb-2" data-v-5941cb1d>Hajt\xE1sl\xE1nc</h3><div class="flex flex-wrap gap-2" data-v-5941cb1d><!--[-->`);
ssrRenderList(provider.value.specializations.propulsion, (prop) => {
_push(`<span class="inline-flex items-center gap-1 px-3 py-1.5 bg-cyan-500/10 text-cyan-300 rounded-full text-xs font-medium" data-v-5941cb1d>${ssrInterpolate(prop)}</span>`);
});
_push(`<!--]--></div></div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
} else {
_push(`<p class="text-sm text-slate-500 italic" data-v-5941cb1d>Nincsenek specializ\xE1ci\xF3k be\xE1ll\xEDtva</p>`);
}
_push(`</div><div class="bg-slate-800 rounded-xl border border-slate-700 p-6" data-v-5941cb1d><h2 class="text-lg font-semibold text-white mb-4" data-v-5941cb1d>Nyitvatart\xE1s</h2>`);
if (hasOpeningHours.value) {
_push(`<div class="overflow-hidden" data-v-5941cb1d><table class="w-full text-sm" data-v-5941cb1d><thead data-v-5941cb1d><tr class="border-b border-slate-700" data-v-5941cb1d><th class="text-left text-xs text-slate-500 uppercase tracking-wider pb-2 pr-4" data-v-5941cb1d>Nap</th><th class="text-left text-xs text-slate-500 uppercase tracking-wider pb-2" data-v-5941cb1d>Nyitva</th></tr></thead><tbody data-v-5941cb1d><!--[-->`);
ssrRenderList(DAYS, (day) => {
var _a2, _b2;
_push(`<tr class="border-b border-slate-700/50 last:border-0" data-v-5941cb1d><td class="py-2 pr-4 text-white font-medium" data-v-5941cb1d>${ssrInterpolate(day.label)}</td><td class="py-2" data-v-5941cb1d>`);
if (getDayHours(day.key)) {
_push(`<!--[--><span class="text-white" data-v-5941cb1d>${ssrInterpolate((_a2 = getDayHours(day.key)) == null ? void 0 : _a2.open)}</span><span class="text-slate-500 mx-1" data-v-5941cb1d>\u2013</span><span class="text-white" data-v-5941cb1d>${ssrInterpolate((_b2 = getDayHours(day.key)) == null ? void 0 : _b2.close)}</span><!--]-->`);
} else {
_push(`<span class="text-slate-500 italic" data-v-5941cb1d>Z\xE1rva</span>`);
}
_push(`</td></tr>`);
});
_push(`<!--]--></tbody></table></div>`);
} else {
_push(`<div data-v-5941cb1d><p class="text-sm text-slate-500 italic" data-v-5941cb1d>Nincs be\xE1ll\xEDtva nyitvatart\xE1s</p></div>`);
}
_push(`</div></div><div class="space-y-4" data-v-5941cb1d><div class="bg-slate-800 rounded-xl border border-slate-700 p-6" data-v-5941cb1d><h2 class="text-lg font-semibold text-white mb-4" data-v-5941cb1d>Moder\xE1ci\xF3s m\u0171veletek</h2>`);
if (provider.value.status === "pending") {
_push(`<div class="space-y-3" data-v-5941cb1d><button${ssrIncludeBooleanAttr(actionLoading.value) ? " disabled" : ""} class="w-full px-4 py-3 bg-emerald-600 hover:bg-emerald-500 disabled:bg-emerald-600/50 text-white rounded-lg text-sm font-medium transition flex items-center justify-center gap-2" data-v-5941cb1d>`);
if (actionLoading.value) {
_push(`<svg class="w-4 h-4 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-5941cb1d></path></svg>`);
} else {
_push(`<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" data-v-5941cb1d></path></svg>`);
}
_push(` J\xF3v\xE1hagy\xE1s </button><button${ssrIncludeBooleanAttr(actionLoading.value) ? " disabled" : ""} class="w-full px-4 py-3 bg-rose-600/20 hover:bg-rose-600/40 disabled:opacity-50 text-rose-400 rounded-lg text-sm font-medium transition flex items-center justify-center gap-2" data-v-5941cb1d><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" data-v-5941cb1d></path></svg> Elutas\xEDt\xE1s </button></div>`);
} else if (provider.value.status === "approved") {
_push(`<div class="space-y-3" data-v-5941cb1d>`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: `/providers/${provider.value.id}/edit`,
class: "w-full px-4 py-3 bg-indigo-600 hover:bg-indigo-500 text-white rounded-lg text-sm font-medium transition flex items-center justify-center gap-2"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d${_scopeId}><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z" data-v-5941cb1d${_scopeId}></path></svg> Szerkeszt\xE9s `);
} else {
return [
(openBlock(), createBlock("svg", {
class: "w-4 h-4",
fill: "none",
stroke: "currentColor",
viewBox: "0 0 24 24"
}, [
createVNode("path", {
"stroke-linecap": "round",
"stroke-linejoin": "round",
"stroke-width": "2",
d: "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
})
])),
createTextVNode(" Szerkeszt\xE9s ")
];
}
}),
_: 1
}, _parent));
_push(`<button${ssrIncludeBooleanAttr(actionLoading.value) ? " disabled" : ""} class="w-full px-4 py-3 bg-purple-600/20 hover:bg-purple-600/40 disabled:opacity-50 text-purple-400 rounded-lg text-sm font-medium transition flex items-center justify-center gap-2" data-v-5941cb1d><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 21v-4m0 0V5a2 2 0 012-2h6.5l1 1H21l-3 6 3 6h-8.5l-1-1H5a2 2 0 00-2 2zm9-13.5V9" data-v-5941cb1d></path></svg> Megjel\xF6l\xE9s (Flag) </button><button${ssrIncludeBooleanAttr(actionLoading.value) ? " disabled" : ""} class="w-full px-4 py-3 bg-rose-600/20 hover:bg-rose-600/40 disabled:opacity-50 text-rose-400 rounded-lg text-sm font-medium transition flex items-center justify-center gap-2" data-v-5941cb1d><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" data-v-5941cb1d></path></svg> T\xF6rl\xE9s (Soft Delete) </button></div>`);
} else {
_push(`<div class="space-y-3" data-v-5941cb1d><p class="text-sm text-slate-400 text-center py-2" data-v-5941cb1d> A szolg\xE1ltat\xF3 ${ssrInterpolate(provider.value.status === "rejected" ? "elutas\xEDt\xE1sra" : "megjel\xF6l\xE9sre")} ker\xFClt. </p>`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: `/providers/${provider.value.id}/edit`,
class: "w-full px-4 py-3 bg-indigo-600 hover:bg-indigo-500 text-white rounded-lg text-sm font-medium transition flex items-center justify-center gap-2"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d${_scopeId}><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z" data-v-5941cb1d${_scopeId}></path></svg> Szerkeszt\xE9s `);
} else {
return [
(openBlock(), createBlock("svg", {
class: "w-4 h-4",
fill: "none",
stroke: "currentColor",
viewBox: "0 0 24 24"
}, [
createVNode("path", {
"stroke-linecap": "round",
"stroke-linejoin": "round",
"stroke-width": "2",
d: "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
})
])),
createTextVNode(" Szerkeszt\xE9s ")
];
}
}),
_: 1
}, _parent));
if (provider.value.status === "rejected") {
_push(`<button${ssrIncludeBooleanAttr(actionLoading.value) ? " disabled" : ""} class="w-full px-4 py-3 bg-emerald-600 hover:bg-emerald-500 disabled:bg-emerald-600/50 text-white rounded-lg text-sm font-medium transition flex items-center justify-center gap-2" data-v-5941cb1d><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-5941cb1d></path></svg> Vissza\xE1ll\xEDt\xE1s </button>`);
} else {
_push(`<!---->`);
}
_push(`<button${ssrIncludeBooleanAttr(actionLoading.value) ? " disabled" : ""} class="w-full px-4 py-3 bg-rose-600/20 hover:bg-rose-600/40 disabled:opacity-50 text-rose-400 rounded-lg text-sm font-medium transition flex items-center justify-center gap-2" data-v-5941cb1d><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" data-v-5941cb1d></path></svg> T\xF6rl\xE9s </button></div>`);
}
_push(`</div>`);
if (provider.value.evidence_image_path) {
_push(`<div class="bg-slate-800 rounded-xl border border-slate-700 p-6" data-v-5941cb1d><h2 class="text-lg font-semibold text-white mb-4" data-v-5941cb1d>Bizony\xEDt\xE9k k\xE9p</h2><img${ssrRenderAttr("src", provider.value.evidence_image_path)} alt="Evidence" class="w-full rounded-lg border border-slate-600" data-v-5941cb1d></div>`);
} else {
_push(`<!---->`);
}
_push(`</div></div>`);
} else {
_push(`<!---->`);
}
if (activeTab.value === "status") {
_push(`<div class="max-w-2xl" data-v-5941cb1d><div class="bg-slate-800 rounded-xl border border-slate-700 p-6" data-v-5941cb1d><h2 class="text-lg font-semibold text-white mb-4" data-v-5941cb1d>St\xE1tusz kezel\xE9s</h2><p class="text-sm text-slate-400 mb-6" data-v-5941cb1d>M\xF3dos\xEDtsd a szolg\xE1ltat\xF3 st\xE1tusz\xE1t \xE9s valid\xE1ci\xF3s pontsz\xE1m\xE1t.</p><form data-v-5941cb1d><div class="space-y-4 mb-6" data-v-5941cb1d><div data-v-5941cb1d><label class="block text-sm font-medium text-slate-300 mb-1" data-v-5941cb1d>St\xE1tusz</label><select class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm" data-v-5941cb1d><option value="pending" data-v-5941cb1d${ssrIncludeBooleanAttr(Array.isArray(statusForm.value.status) ? ssrLooseContain(statusForm.value.status, "pending") : ssrLooseEqual(statusForm.value.status, "pending")) ? " selected" : ""}>F\xFCgg\u0151ben</option><option value="approved" data-v-5941cb1d${ssrIncludeBooleanAttr(Array.isArray(statusForm.value.status) ? ssrLooseContain(statusForm.value.status, "approved") : ssrLooseEqual(statusForm.value.status, "approved")) ? " selected" : ""}>J\xF3v\xE1hagyott</option><option value="rejected" data-v-5941cb1d${ssrIncludeBooleanAttr(Array.isArray(statusForm.value.status) ? ssrLooseContain(statusForm.value.status, "rejected") : ssrLooseEqual(statusForm.value.status, "rejected")) ? " selected" : ""}>Elutas\xEDtott</option></select></div><div data-v-5941cb1d><label class="block text-sm font-medium text-slate-300 mb-1" data-v-5941cb1d> Valid\xE1ci\xF3s pontsz\xE1m (0-100) </label><div class="flex items-center gap-3" data-v-5941cb1d><input${ssrRenderAttr("value", statusForm.value.validation_score)} type="range" min="0" max="100" class="w-full h-2 bg-slate-700 rounded-lg appearance-none cursor-pointer accent-indigo-500" data-v-5941cb1d><span class="text-sm text-white font-medium w-8 text-right" data-v-5941cb1d>${ssrInterpolate(statusForm.value.validation_score)}</span></div></div><div data-v-5941cb1d><label class="block text-sm font-medium text-slate-300 mb-1" data-v-5941cb1d>Indokl\xE1s (opcion\xE1lis)</label><textarea rows="3" placeholder="Add meg a st\xE1tuszv\xE1ltoztat\xE1s ok\xE1t..." class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-indigo-500/50 focus:border-indigo-500 text-sm resize-none" data-v-5941cb1d>${ssrInterpolate(statusForm.value.reason)}</textarea></div></div><div class="flex justify-end gap-3" data-v-5941cb1d><button type="button" class="px-4 py-2 text-sm text-slate-400 hover:text-white transition" data-v-5941cb1d>M\xE9gsem</button><button type="submit"${ssrIncludeBooleanAttr(statusLoading.value) ? " disabled" : ""} class="px-4 py-2 bg-indigo-600 hover:bg-indigo-500 disabled:bg-indigo-600/50 text-white rounded-lg text-sm font-medium transition flex items-center gap-2" data-v-5941cb1d>`);
if (statusLoading.value) {
_push(`<svg class="w-4 h-4 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-5941cb1d></path></svg>`);
} else {
_push(`<!---->`);
}
_push(` St\xE1tusz ment\xE9se </button></div></form></div></div>`);
} else {
_push(`<!---->`);
}
if (activeTab.value === "validations") {
_push(`<div data-v-5941cb1d><div class="bg-slate-800 rounded-xl border border-slate-700 p-6" data-v-5941cb1d><h2 class="text-lg font-semibold text-white mb-4" data-v-5941cb1d>Gamification Valid\xE1ci\xF3k</h2><p class="text-sm text-slate-400 mb-6" data-v-5941cb1d>A szolg\xE1ltat\xF3hoz tartoz\xF3 gamification valid\xE1ci\xF3s bejegyz\xE9sek list\xE1ja.</p>`);
if (validationsLoading.value) {
_push(`<div class="flex items-center justify-center py-8" data-v-5941cb1d><svg class="w-5 h-5 animate-spin text-slate-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-5941cb1d></path></svg></div>`);
} else if (validations.value.length === 0) {
_push(`<div class="text-center py-8" data-v-5941cb1d><p class="text-slate-500" data-v-5941cb1d>Nincsenek valid\xE1ci\xF3s bejegyz\xE9sek ehhez a szolg\xE1ltat\xF3hoz.</p></div>`);
} else {
_push(`<div class="space-y-3" data-v-5941cb1d><!--[-->`);
ssrRenderList(validations.value, (v) => {
var _a2;
_push(`<div class="bg-slate-700/50 rounded-lg border border-slate-600 p-4" data-v-5941cb1d><div class="flex items-start justify-between gap-4" data-v-5941cb1d><div class="flex-1" data-v-5941cb1d><div class="flex items-center gap-2 mb-1" data-v-5941cb1d><span class="${ssrRenderClass([validationTypeClass(v.validation_type), "text-xs font-medium px-2 py-0.5 rounded-full"])}" data-v-5941cb1d>${ssrInterpolate(validationTypeLabel(v.validation_type))}</span><span class="text-xs text-slate-500" data-v-5941cb1d>s\xFAly: ${ssrInterpolate(v.weight)}</span></div><p class="text-sm text-slate-300" data-v-5941cb1d><span class="text-slate-400" data-v-5941cb1d>Szavaz\xF3:</span> ${ssrInterpolate(v.voter_name || `User #${v.voter_user_id}`)}</p>`);
if ((_a2 = v.validation_metadata) == null ? void 0 : _a2.reason) {
_push(`<p class="text-xs text-slate-500 mt-1" data-v-5941cb1d> Indokl\xE1s: ${ssrInterpolate(v.validation_metadata.reason)}</p>`);
} else {
_push(`<!---->`);
}
_push(`</div><div class="text-xs text-slate-500 whitespace-nowrap" data-v-5941cb1d>${ssrInterpolate(formatDate(v.created_at))}</div></div></div>`);
});
_push(`<!--]--></div>`);
}
_push(`</div></div>`);
} else {
_push(`<!---->`);
}
if (activeTab.value === "crawler") {
_push(`<div class="max-w-4xl" data-v-5941cb1d><div class="bg-slate-800 rounded-xl border border-slate-700 p-6" data-v-5941cb1d><h2 class="text-lg font-semibold text-white mb-4" data-v-5941cb1d>Crawler / Nyers Adatok</h2><p class="text-sm text-slate-400 mb-6" data-v-5941cb1d>A robot \xE1ltal begy\u0171jt\xF6tt nyers adatok \xE9s metaadatok.</p><div class="flex flex-wrap gap-3 mb-6" data-v-5941cb1d><div class="inline-flex items-center gap-1.5 px-3 py-1.5 bg-slate-700 rounded-lg text-xs font-medium" data-v-5941cb1d><span class="text-slate-400" data-v-5941cb1d>Forr\xE1s:</span><code class="text-cyan-300 font-mono" data-v-5941cb1d>${ssrInterpolate(provider.value.source || "\u2014")}</code></div><div class="${ssrRenderClass([trustScoreBadgeClass.value, "inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium"])}" data-v-5941cb1d><span class="text-slate-400" data-v-5941cb1d>Trust Score:</span><span class="font-semibold" data-v-5941cb1d>${ssrInterpolate((_e = provider.value.trust_score) != null ? _e : "\u2014")}</span></div></div>`);
if (provider.value.rejection_reason) {
_push(`<div class="flex items-start gap-3 p-4 mb-6 bg-rose-500/10 border border-rose-500/30 rounded-lg" data-v-5941cb1d><svg class="w-5 h-5 text-rose-400 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z" data-v-5941cb1d></path></svg><div data-v-5941cb1d><p class="text-sm font-medium text-rose-300" data-v-5941cb1d>Elutas\xEDt\xE1s indokl\xE1sa</p><p class="text-sm text-rose-200/70 mt-0.5" data-v-5941cb1d>${ssrInterpolate(provider.value.rejection_reason)}</p></div></div>`);
} else {
_push(`<!---->`);
}
_push(`<div class="mb-6" data-v-5941cb1d><h3 class="text-sm font-medium text-slate-300 mb-3" data-v-5941cb1d>Nyers adatok (raw_data)</h3><div class="bg-slate-900/50 rounded-lg border border-slate-700 p-4 overflow-x-auto" data-v-5941cb1d>`);
_push(ssrRenderComponent(_component_RawDataViewer, {
data: provider.value.raw_data
}, null, _parent));
_push(`</div></div>`);
if (provider.value.audit_trail && Object.keys(provider.value.audit_trail).length > 0) {
_push(`<div data-v-5941cb1d><h3 class="text-sm font-medium text-slate-300 mb-3" data-v-5941cb1d>Audit Trail</h3><div class="bg-slate-900/50 rounded-lg border border-slate-700 p-4 overflow-x-auto" data-v-5941cb1d>`);
_push(ssrRenderComponent(_component_RawDataViewer, {
data: provider.value.audit_trail
}, null, _parent));
_push(`</div></div>`);
} else {
_push(`<!---->`);
}
_push(`</div></div>`);
} else {
_push(`<!---->`);
}
if (activeTab.value === "history") {
_push(`<div data-v-5941cb1d><div class="bg-slate-800 rounded-xl border border-slate-700 p-6" data-v-5941cb1d><h2 class="text-lg font-semibold text-white mb-4" data-v-5941cb1d>\xC1llapotv\xE1ltoztat\xE1sok el\u0151zm\xE9nyei</h2><p class="text-sm text-slate-400 mb-6" data-v-5941cb1d>Id\u0151vonal: ki, mikor \xE9s mit v\xE1ltoztatott a szolg\xE1ltat\xF3val kapcsolatban.</p>`);
if (historyLoading.value) {
_push(`<div class="flex items-center justify-center py-8" data-v-5941cb1d><svg class="w-5 h-5 animate-spin text-slate-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-5941cb1d></path></svg></div>`);
} else if (history.value.length === 0) {
_push(`<div class="text-center py-8" data-v-5941cb1d><p class="text-slate-500" data-v-5941cb1d>Nincsenek el\u0151zm\xE9nyek ehhez a szolg\xE1ltat\xF3hoz.</p></div>`);
} else {
_push(`<div class="relative" data-v-5941cb1d><div class="absolute left-4 top-0 bottom-0 w-0.5 bg-slate-700" data-v-5941cb1d></div><!--[-->`);
ssrRenderList(history.value, (entry, index2) => {
_push(`<div class="relative pl-10 pb-6 last:pb-0" data-v-5941cb1d><div class="${ssrRenderClass([historyDotClass(entry.action), "absolute left-2.5 w-3 h-3 rounded-full border-2 mt-1.5"])}" data-v-5941cb1d></div><div class="bg-slate-700/50 rounded-lg border border-slate-600 p-4" data-v-5941cb1d><div class="flex items-start justify-between gap-4 mb-2" data-v-5941cb1d><div data-v-5941cb1d><span class="${ssrRenderClass([historyActionClass(entry.action), "text-xs font-medium px-2 py-0.5 rounded-full"])}" data-v-5941cb1d>${ssrInterpolate(historyActionLabel(entry.action))}</span><span class="text-xs text-slate-500 ml-2" data-v-5941cb1d> User #${ssrInterpolate(entry.user_id || "?")}</span></div><div class="text-xs text-slate-500 whitespace-nowrap" data-v-5941cb1d>${ssrInterpolate(formatDate(entry.timestamp))}</div></div>`);
if (entry.new_data) {
_push(`<div class="text-xs text-slate-400 space-y-1 mt-2" data-v-5941cb1d>`);
if (entry.new_data.old_status || entry.new_data.new_status) {
_push(`<div class="flex items-center gap-2" data-v-5941cb1d><span class="text-slate-500" data-v-5941cb1d>St\xE1tusz:</span><span class="text-rose-400" data-v-5941cb1d>${ssrInterpolate(entry.new_data.old_status || "?")}</span><svg class="w-3 h-3 text-slate-500" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" data-v-5941cb1d></path></svg><span class="text-emerald-400" data-v-5941cb1d>${ssrInterpolate(entry.new_data.new_status || "?")}</span></div>`);
} else {
_push(`<!---->`);
}
if (entry.new_data.reason && entry.new_data.reason !== "Admin edit") {
_push(`<div data-v-5941cb1d><span class="text-slate-500" data-v-5941cb1d>Indokl\xE1s:</span> ${ssrInterpolate(entry.new_data.reason)}</div>`);
} else {
_push(`<!---->`);
}
if (entry.new_data.changes) {
_push(`<div class="mt-2" data-v-5941cb1d><details class="text-xs" data-v-5941cb1d><summary class="text-slate-500 cursor-pointer hover:text-slate-400" data-v-5941cb1d>R\xE9szletes v\xE1ltoz\xE1sok</summary><div class="mt-2 space-y-1" data-v-5941cb1d><!--[-->`);
ssrRenderList(entry.new_data.changes, (value, key) => {
_push(`<div class="flex gap-2" data-v-5941cb1d><span class="text-slate-500 w-28 flex-shrink-0" data-v-5941cb1d>${ssrInterpolate(key)}:</span><span class="text-slate-300 truncate" data-v-5941cb1d>${ssrInterpolate(value != null ? value : "\u2014")}</span></div>`);
});
_push(`<!--]--></div></details></div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
} else {
_push(`<!---->`);
}
if (entry.old_data) {
_push(`<div class="mt-2" data-v-5941cb1d><details class="text-xs" data-v-5941cb1d><summary class="text-slate-500 cursor-pointer hover:text-slate-400" data-v-5941cb1d>R\xE9gi adatok</summary><div class="mt-2 space-y-1" data-v-5941cb1d><!--[-->`);
ssrRenderList(entry.old_data, (value, key) => {
_push(`<div class="flex gap-2" data-v-5941cb1d><span class="text-slate-500 w-28 flex-shrink-0" data-v-5941cb1d>${ssrInterpolate(key)}:</span><span class="text-slate-300 truncate" data-v-5941cb1d>${ssrInterpolate(value != null ? value : "\u2014")}</span></div>`);
});
_push(`<!--]--></div></details></div>`);
} else {
_push(`<!---->`);
}
_push(`</div></div>`);
});
_push(`<!--]--></div>`);
}
_push(`</div></div>`);
} else {
_push(`<!---->`);
}
_push(`<!--]-->`);
}
if (showRejectModal.value) {
_push(`<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm" data-v-5941cb1d><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 w-full max-w-lg mx-4 shadow-2xl" data-v-5941cb1d><h2 class="text-lg font-semibold text-white mb-2" data-v-5941cb1d>Szolg\xE1ltat\xF3 elutas\xEDt\xE1sa</h2><p class="text-sm text-slate-400 mb-6" data-v-5941cb1d> Biztosan elutas\xEDtod a(z) <strong class="text-white" data-v-5941cb1d>${ssrInterpolate((_f = provider.value) == null ? void 0 : _f.name)}</strong> szolg\xE1ltat\xF3t? </p><form data-v-5941cb1d><div class="mb-4" data-v-5941cb1d><label class="block text-sm font-medium text-slate-300 mb-1" data-v-5941cb1d>Indokl\xE1s (opcion\xE1lis)</label><textarea rows="3" placeholder="Add meg az elutas\xEDt\xE1s ok\xE1t..." class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-rose-500/50 focus:border-rose-500 text-sm resize-none" data-v-5941cb1d>${ssrInterpolate(rejectReason.value)}</textarea></div><div class="flex justify-end gap-3" data-v-5941cb1d><button type="button" class="px-4 py-2 text-sm text-slate-400 hover:text-white transition" data-v-5941cb1d>M\xE9gse</button><button type="submit"${ssrIncludeBooleanAttr(actionLoading.value) ? " disabled" : ""} class="px-4 py-2 bg-rose-600 hover:bg-rose-500 disabled:bg-rose-600/50 text-white rounded-lg text-sm font-medium transition flex items-center gap-2" data-v-5941cb1d>`);
if (actionLoading.value) {
_push(`<svg class="w-4 h-4 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-5941cb1d></path></svg>`);
} else {
_push(`<!---->`);
}
_push(` Elutas\xEDt\xE1s </button></div></form></div></div>`);
} else {
_push(`<!---->`);
}
if (showFlagModal.value) {
_push(`<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm" data-v-5941cb1d><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 w-full max-w-lg mx-4 shadow-2xl" data-v-5941cb1d><h2 class="text-lg font-semibold text-white mb-2" data-v-5941cb1d>Szolg\xE1ltat\xF3 megjel\xF6l\xE9se</h2><p class="text-sm text-slate-400 mb-6" data-v-5941cb1d> Biztosan megjel\xF6l\xF6d a(z) <strong class="text-white" data-v-5941cb1d>${ssrInterpolate((_g = provider.value) == null ? void 0 : _g.name)}</strong> szolg\xE1ltat\xF3t? </p><form data-v-5941cb1d><div class="mb-4" data-v-5941cb1d><label class="block text-sm font-medium text-slate-300 mb-1" data-v-5941cb1d>Indokl\xE1s (opcion\xE1lis)</label><textarea rows="3" placeholder="Add meg a megjel\xF6l\xE9s ok\xE1t..." class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-purple-500/50 focus:border-purple-500 text-sm resize-none" data-v-5941cb1d>${ssrInterpolate(flagReason.value)}</textarea></div><div class="flex justify-end gap-3" data-v-5941cb1d><button type="button" class="px-4 py-2 text-sm text-slate-400 hover:text-white transition" data-v-5941cb1d>M\xE9gse</button><button type="submit"${ssrIncludeBooleanAttr(actionLoading.value) ? " disabled" : ""} class="px-4 py-2 bg-purple-600 hover:bg-purple-500 disabled:bg-purple-600/50 text-white rounded-lg text-sm font-medium transition flex items-center gap-2" data-v-5941cb1d>`);
if (actionLoading.value) {
_push(`<svg class="w-4 h-4 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5941cb1d><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-5941cb1d></path></svg>`);
} else {
_push(`<!---->`);
}
_push(` Megjel\xF6l\xE9s </button></div></form></div></div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
};
}
});
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/providers/[id]/index.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5941cb1d"]]);
export { index as default };
//# sourceMappingURL=index-DX46mH0u.mjs.map

Some files were not shown because too many files have changed in this diff Show More