admin felület bekötése. pontosítások2

This commit is contained in:
Roo
2026-06-27 09:08:18 +00:00
parent c75c7b2270
commit 1e6f79ca22
189 changed files with 4624 additions and 1116 deletions

View File

@@ -1,5 +1,5 @@
{
"date": "2026-06-25T19:22:04.389Z",
"date": "2026-06-26T13:42:18.143Z",
"preset": "node-server",
"framework": {
"name": "nuxt",

View File

@@ -1 +0,0 @@
import{_ as s}from"./DlAUqK2U.js";import{o,c as t,J as r}from"./CHWHIiGB.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 +0,0 @@
import{_ as h}from"./qc1uPXiA.js";import{p as v,e as y,g as _,c as n,a as t,f as k,h as s,t as c,i as u,j as S,k as p,v as m,l as x,b as V,w as L,m as f,o as i,d as C}from"./CHWHIiGB.js";import{u as N}from"./DKEj_yij.js";const B=v("/sf_logo.png"),E={class:"min-h-screen bg-slate-900 flex items-center justify-center px-4"},R={class:"w-full max-w-md"},j={class:"bg-slate-800 rounded-xl shadow-2xl border border-slate-700 p-8"},A={key:0,class:"mb-6 p-3 rounded-lg bg-red-900/40 border border-red-700 text-red-300 text-sm"},D=["disabled"],F={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"},I={class:"mt-6 text-center"},T=y({__name:"login",setup(M){const a=f(""),l=f(""),b=_(),o=N();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=h;return i(),n("div",E,[t("div",R,[e[6]||(e[6]=k('<div class="text-center mb-8"><div class="flex items-center justify-center gap-3 mb-4"><img src="'+B+'" 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",j,[s(o).error?(i(),n("div",A,c(s(o).error),1)):u("",!0),t("form",{onSubmit:S(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]=r=>x(a)?a.value=r: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]=r=>x(l)?l.value=r: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(),n("svg",F,[...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,D)],32),t("div",I,[V(w,{to:"/",class:"text-sm text-slate-500 hover:text-cyan-400 transition"},{default:L(()=>[...e[5]||(e[5]=[C(" ← Back to ServiceFinder ",-1)])]),_:1})])])])])}}});export{T as default};

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 @@
import{K as a,B as i,C as o,h as l,L as c}from"./CGTxeHv7.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 s}from"./DlAUqK2U.js";import{u as a,o as i,c as u,a as e,t as o}from"./CHWHIiGB.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"./CGTxeHv7.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

@@ -1 +0,0 @@
import{a3 as C,m as u,x as l,z as r}from"./CHWHIiGB.js";const g=C("auth",()=>{const t=u(null),o=u(null),c=u(!1),s=u(null),v=u(!1),h=l(()=>!!o.value&&!!t.value),k=l(()=>{const e=t.value?.role;return e?["SUPERADMIN","ADMIN","MODERATOR","SALES_REP","SERVICE_MGR"].includes(e.toUpperCase()):!1}),m=l(()=>{if(!t.value)return"";const{first_name:e,last_name:n}=t.value;return e&&n?`${e} ${n}`:e||n||t.value.email}),p=l(()=>t.value?.email??""),w=l(()=>t.value?.role??"guest");async function R(e,n){c.value=!0,s.value=null;try{const a=new URLSearchParams;a.append("username",e),a.append("password",n);const d=await $fetch("/api/v1/auth/login",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:a}),A=r("access_token",{maxAge:3600*24*7,path:"/",sameSite:"lax",secure:!0});A.value=d.access_token,o.value=d.access_token,await i()}catch(a){throw s.value=a?.data?.detail||a?.message||"Login failed",a}finally{c.value=!1}}async function i(){const n=r("access_token").value||o.value;if(n)try{const a=await $fetch("/api/v1/auth/me",{headers:{Authorization:`Bearer ${n}`}});t.value=a}catch(a){throw a?.response?.status===401&&f(),a}}function f(){o.value=null,t.value=null,s.value=null;const e=r("access_token");e.value=null}async function _(){const e=r("access_token");if(e.value){o.value=e.value;try{await i()}catch{f()}}v.value=!0}function y(){s.value=null}return{user:t,token:o,isLoading:c,error:s,isInitialized:v,isAuthenticated:h,isAdmin:k,userName:m,userEmail:p,userRole:w,login:R,fetchUser:i,logout:f,init:_,clearError:y}});export{g as u};

View File

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

View File

@@ -0,0 +1 @@
import{_ as s}from"./DlAUqK2U.js";import{o,c as t,M as r}from"./CGTxeHv7.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

View File

@@ -0,0 +1 @@
import{_ as h}from"./BPZZgRgP.js";import{p as v,e as y,g as _,h as k,c as r,a as t,f as S,i as s,t as c,j as u,k as V,l as p,v as m,m as x,b as L,w as C,q as f,o as i,d as N}from"./CGTxeHv7.js";const B=v("/sf_logo.png"),E={class:"min-h-screen bg-slate-900 flex items-center justify-center px-4"},R={class:"w-full max-w-md"},j={class:"bg-slate-800 rounded-xl shadow-2xl border border-slate-700 p-8"},A={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"},P=y({__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=h;return i(),r("div",E,[t("div",R,[e[6]||(e[6]=S('<div class="text-center mb-8"><div class="flex items-center justify-center gap-3 mb-4"><img src="'+B+'" 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",j,[s(o).error?(i(),r("div",A,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{P 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 @@
{"id":"e6a51bf7-9efc-4598-aa2a-be03bd94fdda","timestamp":1782415310321}
{"id":"9bec55ba-4ecf-449d-9a96-4f3ecc37770a","timestamp":1782481322592}

View File

@@ -0,0 +1 @@
{"id":"9bec55ba-4ecf-449d-9a96-4f3ecc37770a","timestamp":1782481322592,"prerendered":[]}

View File

@@ -1 +1 @@
{"id":"dev","timestamp":1782415310671,"prerendered":[]}
{"id":"dev","timestamp":1782481322931,"prerendered":[]}

View File

@@ -1 +0,0 @@
{"id":"e6a51bf7-9efc-4598-aa2a-be03bd94fdda","timestamp":1782415310321,"prerendered":[]}

View File

@@ -1 +1 @@
import{_ as a}from"./qc1uPXiA.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"./CHWHIiGB.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"./BPZZgRgP.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"./CGTxeHv7.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};

View File

@@ -1 +1 @@
import{a3 as _,m as u,x as a}from"./CHWHIiGB.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{a7 as _,q as u,z as a}from"./CGTxeHv7.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 y(e){const r=t.value.find(R=>R.country_code===e);n.value=r||o.value}function m(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:y,getRegion:m}});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

View File

@@ -1 +0,0 @@
{"version":3,"file":"auth-9ekP0oPk.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/auth-9ekP0oPk.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAmBA,MAAM,IAAA,GAAO,yBAAA,CAA0B,OAAO,EAAA,EAAI,IAAA,KAAS;AACzD,EAAA,IAAI,MAAA,EAAQ,SAAA;AACZ,EAAA,IAAI,EAAA,CAAG,SAAS,QAAA,EAAU;AACxB,IAAA;AAAA,EACF;AACA,EAAA,MAAM,WAAA,GAAc,UAAU,cAAc,CAAA;AAC5C,EAAA,IAAI,CAAC,YAAY,KAAA,EAAO;AACtB,IAAA,OAAO,WAAW,QAAQ,CAAA;AAAA,EAC5B;AACA,EAAA,MAAM,YAAY,YAAA,EAAa;AAC/B,EAAA,IAAI,CAAC,UAAU,IAAA,EAAM;AACnB,IAAA,IAAI;AACF,MAAA;AACA,MAAA,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,YAAA,CAAa,MAAM,SAAA,CAAU,SAAA,EAAW,CAAA,EAAG,MAAM,MAAA,EAAQ,SAAA,EAAU;AACzF,MAAA;AAAA,IACF,CAAA,CAAA,MAAQ;AACN,MAAA,SAAA,CAAU,MAAA,EAAO;AACjB,MAAA,OAAO,WAAW,QAAQ,CAAA;AAAA,IAC5B;AAAA,EACF;AACA,EAAA,IAAI,CAAC,UAAU,IAAA,EAAM;AACnB,IAAA,SAAA,CAAU,MAAA,EAAO;AACjB,IAAA,OAAO,WAAW,QAAQ,CAAA;AAAA,EAC5B;AACA,EAAA,MAAM,eAAe,CAAC,YAAA,EAAc,OAAA,EAAS,WAAA,EAAa,aAAa,aAAa,CAAA;AACpF,EAAA,MAAM,QAAA,GAAA,CAAY,SAAA,CAAU,IAAA,CAAK,IAAA,IAAQ,IAAI,WAAA,EAAY;AACzD,EAAA,IAAI,CAAC,YAAA,CAAa,QAAA,CAAS,QAAQ,CAAA,EAAG;AACpC,IAAA,SAAA,CAAU,MAAA,EAAO;AACjB,IAAA,OAAO,WAAW,QAAQ,CAAA;AAAA,EAC5B;AACF,CAAC;;;;"}

View File

@@ -1,6 +1,5 @@
import { K as executeAsync } from '../nitro/nitro.mjs';
import { d as defineNuxtRouteMiddleware, c as useCookie, n as navigateTo } from './server.mjs';
import { u as useAuthStore } from './auth-RwMj9LdV.mjs';
import { e as defineNuxtRouteMiddleware, c as useCookie, n as navigateTo, b as useAuthStore } from './server.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
@@ -53,4 +52,4 @@ const auth = defineNuxtRouteMiddleware(async (to, from) => {
});
export { auth as default };
//# sourceMappingURL=auth-9ekP0oPk.mjs.map
//# sourceMappingURL=auth-B3jrOAhu.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"auth-B3jrOAhu.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/auth-B3jrOAhu.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,IAAA,GAAO,yBAAA,CAA0B,OAAO,EAAA,EAAI,IAAA,KAAS;AACzD,EAAA,IAAI,MAAA,EAAQ,SAAA;AACZ,EAAA,IAAI,EAAA,CAAG,SAAS,QAAA,EAAU;AACxB,IAAA;AAAA,EACF;AACA,EAAA,MAAM,WAAA,GAAc,UAAU,cAAc,CAAA;AAC5C,EAAA,IAAI,CAAC,YAAY,KAAA,EAAO;AACtB,IAAA,OAAO,WAAW,QAAQ,CAAA;AAAA,EAC5B;AACA,EAAA,MAAM,YAAY,YAAA,EAAa;AAC/B,EAAA,IAAI,CAAC,UAAU,IAAA,EAAM;AACnB,IAAA,IAAI;AACF,MAAA;AACA,MAAA,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,YAAA,CAAa,MAAM,SAAA,CAAU,SAAA,EAAW,CAAA,EAAG,MAAM,MAAA,EAAQ,SAAA,EAAU;AACzF,MAAA;AAAA,IACF,CAAA,CAAA,MAAQ;AACN,MAAA,SAAA,CAAU,MAAA,EAAO;AACjB,MAAA,OAAO,WAAW,QAAQ,CAAA;AAAA,IAC5B;AAAA,EACF;AACA,EAAA,IAAI,CAAC,UAAU,IAAA,EAAM;AACnB,IAAA,SAAA,CAAU,MAAA,EAAO;AACjB,IAAA,OAAO,WAAW,QAAQ,CAAA;AAAA,EAC5B;AACA,EAAA,MAAM,eAAe,CAAC,YAAA,EAAc,OAAA,EAAS,WAAA,EAAa,aAAa,aAAa,CAAA;AACpF,EAAA,MAAM,QAAA,GAAA,CAAY,SAAA,CAAU,IAAA,CAAK,IAAA,IAAQ,IAAI,WAAA,EAAY;AACzD,EAAA,IAAI,CAAC,YAAA,CAAa,QAAA,CAAS,QAAQ,CAAA,EAAG;AACpC,IAAA,SAAA,CAAU,MAAA,EAAO;AACjB,IAAA,OAAO,WAAW,QAAQ,CAAA;AAAA,EAC5B;AACF,CAAC;;;;"}

View File

@@ -1,125 +0,0 @@
import { defineStore } from 'pinia';
import { ref, computed } from 'vue';
import { c as useCookie } from './server.mjs';
const useAuthStore = defineStore("auth", () => {
const user = ref(null);
const token = ref(null);
const isLoading = ref(false);
const error = ref(null);
const isInitialized = ref(false);
const isAuthenticated = computed(() => !!token.value && !!user.value);
const isAdmin = computed(() => {
var _a;
const role = (_a = user.value) == null ? void 0 : _a.role;
if (!role) return false;
const staffRoles = ["SUPERADMIN", "ADMIN", "MODERATOR", "SALES_REP", "SERVICE_MGR"];
return staffRoles.includes(role.toUpperCase());
});
const userName = computed(() => {
if (!user.value) return "";
const { first_name, last_name } = user.value;
if (first_name && last_name) return `${first_name} ${last_name}`;
return first_name || last_name || user.value.email;
});
const userEmail = computed(() => {
var _a, _b;
return (_b = (_a = user.value) == null ? void 0 : _a.email) != null ? _b : "";
});
const userRole = computed(() => {
var _a, _b;
return (_b = (_a = user.value) == null ? void 0 : _a.role) != null ? _b : "guest";
});
async function login(email, password) {
var _a;
isLoading.value = true;
error.value = null;
try {
const body = new URLSearchParams();
body.append("username", email);
body.append("password", password);
const res = await $fetch("/api/v1/auth/login", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body
});
const tokenCookie = useCookie("access_token", {
maxAge: 60 * 60 * 24 * 7,
// 7 days
path: "/",
sameSite: "lax",
secure: true
});
tokenCookie.value = res.access_token;
token.value = res.access_token;
await fetchUser();
} catch (err) {
error.value = ((_a = err == null ? void 0 : err.data) == null ? void 0 : _a.detail) || (err == null ? void 0 : err.message) || "Login failed";
throw err;
} finally {
isLoading.value = false;
}
}
async function fetchUser() {
var _a;
const tokenCookie = useCookie("access_token");
const currentToken = tokenCookie.value || token.value;
if (!currentToken) return;
try {
const res = await $fetch("/api/v1/auth/me", {
headers: { Authorization: `Bearer ${currentToken}` }
});
user.value = res;
} catch (err) {
if (((_a = err == null ? void 0 : err.response) == null ? void 0 : _a.status) === 401) {
logout();
}
throw err;
}
}
function logout() {
token.value = null;
user.value = null;
error.value = null;
const tokenCookie = useCookie("access_token");
tokenCookie.value = null;
}
async function init() {
const tokenCookie = useCookie("access_token");
if (tokenCookie.value) {
token.value = tokenCookie.value;
try {
await fetchUser();
} catch {
logout();
}
}
isInitialized.value = true;
}
function clearError() {
error.value = null;
}
return {
// State
user,
token,
isLoading,
error,
isInitialized,
// Getters
isAuthenticated,
isAdmin,
userName,
userEmail,
userRole,
// Actions
login,
fetchUser,
logout,
init,
clearError
};
});
export { useAuthStore as u };
//# sourceMappingURL=auth-RwMj9LdV.mjs.map

View File

@@ -1 +0,0 @@
{"version":3,"file":"auth-RwMj9LdV.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/auth-RwMj9LdV.js"],"names":[],"mappings":"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"}

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,11 +1,10 @@
import { _ as __nuxt_component_0 } from './nuxt-link-Cp-CAJwR.mjs';
import { _ as __nuxt_component_0 } from './nuxt-link-C5PnX__I.mjs';
import { defineComponent, computed, ref, 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 { p as publicAssetsURL } from '../nitro/nitro.mjs';
import { useRoute } from 'vue-router';
import { u as useRegionStore } from './region-0mvXqaMM.mjs';
import { a as useRouter, b as useI18n } from './server.mjs';
import { u as useAuthStore } from './auth-RwMj9LdV.mjs';
import { a as useRouter, b as useAuthStore, d as useI18n } from './server.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
@@ -75,7 +74,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
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",
path: "/",
/* P0 HOTFIX: placeholder until /users page is built */
label: "Felhaszn\xE1l\xF3k list\xE1ja",
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>'
}
@@ -106,7 +106,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
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: "/logs",
path: "/",
/* P0 HOTFIX: placeholder until /logs page is built */
label: "Rendszernapl\xF3k",
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>'
}
@@ -291,4 +292,4 @@ _sfc_main.setup = (props, ctx) => {
};
export { _sfc_main as default };
//# sourceMappingURL=default-DOjdWE8b.mjs.map
//# sourceMappingURL=default-C9mWt9Pc.mjs.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -98,11 +98,13 @@ const resource = {
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garages CRM" } },
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garage list, package management and status changes" } },
"total_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Total Garages" } },
"active_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Active Garages" } },
"premium_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Premium Garages" } },
"enterprise_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Enterprise Garages" } },
"private_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Private Garages" } },
"corporate_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Corporate Garages" } },
"search_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Search by name, contact or email..." } },
"all_tiers": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "All packages" } },
"all_types": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "All types" } },
"type_individual": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Private (Individual)" } },
"type_corporate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Corporate" } },
"company_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Company Name" } },
"email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Email" } },
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Status" } },
@@ -160,10 +162,138 @@ const resource = {
"contact_department": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Department" } },
"contact_phone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Phone" } },
"no_contact": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No primary contact person" } },
"coming_soon": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "This feature will be available soon..." } }
"edit_details": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Edit Details" } },
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Save" } },
"generalTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "General" } },
"employeesTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Employees" } },
"fleetTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Fleet" } },
"analyticsTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Analytics" } },
"subscriptionTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Subscription" } },
"editBasicTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Basic Info" } },
"editContactTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Contact" } },
"editAddressTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Addresses" } },
"zip": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "ZIP Code" } },
"city": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "City" } },
"street_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Street" } },
"street_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Street Type" } },
"house_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "House Number" } },
"coming_soon": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "This feature will be available soon..." } },
"missing_data_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Missing Data" } },
"missing_data_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "The garage profile is incomplete. Please fill in the missing fields." } },
"missing_data_activation_required": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "To activate the garage, the following data must be provided:" } },
"missing_tax_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tax Number" } },
"missing_billing": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Billing Address" } },
"missing_contact_email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Contact Email" } },
"missing_contact_phone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Contact Phone" } },
"missing_data_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "count" }, { "t": 3, "v": " fields missing" }] } },
"contact_person_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Contact Person Name" } },
"contact_email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Contact Email" } },
"contact_phone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Contact Phone" } },
"billing_address": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Billing Address" } },
"billing_zip": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "ZIP Code" } },
"billing_city": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "City" } },
"billing_street_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Street" } },
"billing_street_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Street Type" } },
"billing_house_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "House Number" } },
"notification_address": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Notification Address" } },
"notification_zip": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "ZIP Code" } },
"notification_city": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "City" } },
"notification_street_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Street" } },
"notification_street_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Street Type" } },
"notification_house_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "House Number" } },
"tab_basic": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Basic Info" } },
"tab_contact": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Contact" } },
"tab_addresses": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Addresses" } },
"basic_info": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Basic Info" } },
"contact_section": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Contact Person" } },
"addresses_section": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Addresses" } },
"vehicles_used": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Vehicles" } },
"branches_used": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Branches" } },
"employees_used": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Employees" } },
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Status" } },
"subscription_history": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Subscription History" } },
"history_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Date" } },
"history_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Package" } },
"history_action": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Action" } },
"history_status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Status" } },
"no_subscription_history": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No subscription history yet." } }
},
"analytics": {
"ltv": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Lifetime Value (LTV)" } },
"mrr": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Monthly Revenue (MRR)" } },
"monthly_recurring": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Monthly recurring revenue" } },
"outstanding": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Outstanding" } },
"all_settled": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "All invoices settled" } },
"earned_credits": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Earned Credits" } },
"contribution_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "XP earned from platform contributions" } },
"invited_companies": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Invited Companies" } },
"companies_joined": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Companies joined via your invite" } },
"validated_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Validated Garages" } },
"garages_confirmed": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garages successfully verified" } },
"utilization": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utilization" } },
"vehicle_quota": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Vehicle Quota" } },
"employee_quota": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Employee Quota" } },
"utilized": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "utilized" } },
"marketplace_engagement": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Marketplace & Engagement" } },
"avg_rating": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Average Rating" } },
"reviews": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Reviews" } },
"reviews_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "reviews" } },
"last_activity": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Last Activity" } },
"last_login_mock": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "2 hours ago" } },
"services_30d": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Services Completed (30 days)" } }
},
"employees": {
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Employees" } },
"total_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "count" }, { "t": 3, "v": " employees" }] } },
"name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Name" } },
"email_phone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Email / Phone" } },
"role": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Role" } },
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Status" } },
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Actions" } },
"edit_role": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Edit" } },
"remove": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Remove" } },
"no_employees": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No employees assigned to this garage." } },
"edit_role_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Edit Employee Role" } },
"editRoleTitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Edit Employee Role" } },
"editRoleFor": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Change role for " }, { "t": 4, "k": "name" }] } },
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cancel" } },
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Save Changes" } },
"saveRole": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Save Role" } },
"saving": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Saving..." } },
"status_active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Active" } },
"status_inactive": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Inactive" } },
"remove_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Remove Employee" } },
"removeTitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Remove Employee" } },
"remove_confirm": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": 'Are you sure you want to remove "' }, { "t": 4, "k": "name" }, { "t": 3, "v": '" from this garage?' }] } },
"removeConfirm": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": 'Are you sure you want to remove "' }, { "t": 4, "k": "name" }, { "t": 3, "v": '" from this garage?' }] } },
"remove_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Remove" } },
"removing": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Removing..." } },
"add_employee": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Add Employee" } },
"addTitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Add New Employee" } },
"email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Email Address" } },
"emailPlaceholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Enter email address..." } },
"roleMember": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Member" } },
"roleManager": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Manager" } },
"roleAdmin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Admin" } },
"roleOwner": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Owner" } },
"add": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Add Employee" } },
"adding": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Adding..." } }
},
"fleet": {
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Fleet" } },
"total_vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "count" }, { "t": 3, "v": " vehicles total" }] } },
"plate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Plate" } },
"brand": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Brand" } },
"model": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Model" } },
"brand_model": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Brand & Model" } },
"year": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Year" } },
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Status" } },
"vin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "VIN" } },
"no_vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No vehicles assigned to this garage yet." } },
"no_fleet_access": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "You don't have permission to view fleet data." } }
}
}
};
export { resource as default };
//# sourceMappingURL=en-WIj2pBfh.mjs.map
//# sourceMappingURL=en-BI6r-iRW.mjs.map

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 +0,0 @@
{"version":3,"file":"entry-styles.C2WXX8iB.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/entry-styles-1.mjs-B2hfTmd6.js","../../../../.nuxt/dist/server/_nuxt/entry-styles-2.mjs-rU9a7bNs.js","../../../../.nuxt/dist/server/_nuxt/entry-styles.C2WXX8iB.mjs"],"names":["style_0","style_1","style_2"],"mappings":";;AAAA,MAAM,QAAA,GAAW,CAAA,y14BAAA,CAAA;;ACAjB,MAAM,IAAA,GAAO,CAAA,2i8BAAA,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

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

View File

@@ -1,4 +1,4 @@
import { _ as __nuxt_component_0 } from './nuxt-link-Cp-CAJwR.mjs';
import { _ as __nuxt_component_0 } from './nuxt-link-C5PnX__I.mjs';
import { mergeProps, withCtx, createTextVNode, toDisplayString, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent } from 'vue/server-renderer';
import { _ as _export_sfc } from './_plugin-vue_export-helper-1tPrXgE0.mjs';
@@ -96,4 +96,4 @@ _sfc_main.setup = (props, ctx) => {
const error404 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-1bd9e11a"]]);
export { error404 as default };
//# sourceMappingURL=error-404-Bkg5lg69.mjs.map
//# sourceMappingURL=error-404-DPt4byml.mjs.map

View File

@@ -1 +1 @@
{"version":3,"file":"error-404-Bkg5lg69.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/error-404-Bkg5lg69.js"],"names":[],"mappings":"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"}
{"version":3,"file":"error-404-DPt4byml.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/error-404-DPt4byml.js"],"names":[],"mappings":"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"}

File diff suppressed because one or more lines are too long

View File

@@ -98,11 +98,13 @@ const resource = {
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gar\xE1zsok CRM" } },
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gar\xE1zsok list\xE1ja, csomagkezel\xE9s \xE9s st\xE1tuszm\xF3dos\xEDt\xE1s" } },
"total_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xD6sszes Gar\xE1zs" } },
"active_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Akt\xEDv Gar\xE1zsok" } },
"premium_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Premium Gar\xE1zsok" } },
"enterprise_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Enterprise Gar\xE1zsok" } },
"private_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Priv\xE1t Gar\xE1zsok" } },
"corporate_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "C\xE9ges Gar\xE1zsok" } },
"search_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Keres\xE9s n\xE9v, kapcsolattart\xF3 vagy e-mail alapj\xE1n..." } },
"all_tiers": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xD6sszes csomag" } },
"all_types": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xD6sszes t\xEDpus" } },
"type_individual": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Priv\xE1t (Egy\xE9ni)" } },
"type_corporate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "C\xE9ges (V\xE1llalati)" } },
"company_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "C\xE9gn\xE9v" } },
"email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "E-mail" } },
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "St\xE1tusz" } },
@@ -160,10 +162,138 @@ const resource = {
"contact_department": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Oszt\xE1ly" } },
"contact_phone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Telefonsz\xE1m" } },
"no_contact": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs els\u0151dleges kapcsolattart\xF3" } },
"coming_soon": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ez a funkci\xF3 hamarosan el\xE9rhet\u0151 lesz..." } }
"edit_details": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Adatok Szerkeszt\xE9se" } },
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ment\xE9s" } },
"generalTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xC1ltal\xE1nos" } },
"employeesTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Dolgoz\xF3k" } },
"fleetTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Flotta" } },
"analyticsTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Analitika" } },
"subscriptionTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "El\u0151fizet\xE9s" } },
"editBasicTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alapadatok" } },
"editContactTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolat" } },
"editAddressTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "C\xEDmek" } },
"zip": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ir\xE1ny\xEDt\xF3sz\xE1m" } },
"city": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "V\xE1ros" } },
"street_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utca" } },
"street_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utca t\xEDpusa" } },
"house_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "H\xE1zsz\xE1m" } },
"coming_soon": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ez a funkci\xF3 hamarosan el\xE9rhet\u0151 lesz..." } },
"missing_data_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hi\xE1nyz\xF3 adatok" } },
"missing_data_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "A gar\xE1zs profilja hi\xE1nyos. K\xE9rj\xFCk, eg\xE9sz\xEDtse ki a hi\xE1nyz\xF3 adatokat." } },
"missing_data_activation_required": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "A gar\xE1zs aktiv\xE1l\xE1s\xE1hoz az al\xE1bbi adatok p\xF3tl\xE1sa k\xF6telez\u0151:" } },
"missing_tax_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ad\xF3sz\xE1m" } },
"missing_billing": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Sz\xE1ml\xE1z\xE1si c\xEDm" } },
"missing_contact_email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattart\xF3 e-mail" } },
"missing_contact_phone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattart\xF3 telefon" } },
"missing_data_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "count" }, { "t": 3, "v": " mez\u0151 hi\xE1nyzik" }] } },
"contact_person_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattart\xF3 neve" } },
"contact_email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattart\xF3 e-mail" } },
"contact_phone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattart\xF3 telefon" } },
"billing_address": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Sz\xE1ml\xE1z\xE1si c\xEDm" } },
"billing_zip": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ir\xE1ny\xEDt\xF3sz\xE1m" } },
"billing_city": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "V\xE1ros" } },
"billing_street_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utca" } },
"billing_street_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utca t\xEDpusa" } },
"billing_house_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "H\xE1zsz\xE1m" } },
"notification_address": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xC9rtes\xEDt\xE9si c\xEDm" } },
"notification_zip": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ir\xE1ny\xEDt\xF3sz\xE1m" } },
"notification_city": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "V\xE1ros" } },
"notification_street_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utca" } },
"notification_street_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utca t\xEDpusa" } },
"notification_house_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "H\xE1zsz\xE1m" } },
"tab_basic": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alapadatok" } },
"tab_contact": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolat" } },
"tab_addresses": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "C\xEDmek" } },
"basic_info": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alapadatok" } },
"contact_section": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattart\xF3" } },
"addresses_section": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "C\xEDmek" } },
"vehicles_used": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "J\xE1rm\u0171vek" } },
"branches_used": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Telephelyek" } },
"employees_used": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Dolgoz\xF3k" } },
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "St\xE1tusz" } },
"subscription_history": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "El\u0151fizet\xE9si El\u0151zm\xE9nyek" } },
"history_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "D\xE1tum" } },
"history_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag" } },
"history_action": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "M\u0171velet" } },
"history_status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "St\xE1tusz" } },
"no_subscription_history": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "M\xE9g nincsenek el\u0151fizet\xE9si el\u0151zm\xE9nyek." } }
},
"analytics": {
"ltv": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xC9lettartam \xC9rt\xE9k (LTV)" } },
"mrr": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Havi Bev\xE9tel (MRR)" } },
"monthly_recurring": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Havi ism\xE9tl\u0151d\u0151 bev\xE9tel" } },
"outstanding": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kintl\xE9v\u0151s\xE9g" } },
"all_settled": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Minden sz\xE1mla rendezve" } },
"earned_credits": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerzett Kreditek" } },
"contribution_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Platform \xE9p\xEDt\xE9s\xE9vel gy\u0171jt\xF6tt XP" } },
"invited_companies": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Megh\xEDvott C\xE9gek" } },
"companies_joined": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "C\xE9g csatlakozott a megh\xEDv\xE1sodra" } },
"validated_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Valid\xE1lt Gar\xE1zsok" } },
"garages_confirmed": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gar\xE1zs sikeresen hiteles\xEDtve" } },
"utilization": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kihaszn\xE1lts\xE1g" } },
"vehicle_quota": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "J\xE1rm\u0171 Kv\xF3ta" } },
"employee_quota": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alkalmazotti Kv\xF3ta" } },
"utilized": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "kihaszn\xE1lva" } },
"marketplace_engagement": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Piact\xE9r & Aktivit\xE1s" } },
"avg_rating": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xC1tlagos \xC9rt\xE9kel\xE9s" } },
"reviews": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xC9rt\xE9kel\xE9sek" } },
"reviews_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xE9rt\xE9kel\xE9s" } },
"last_activity": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utols\xF3 Aktivit\xE1s" } },
"last_login_mock": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "2 \xF3r\xE1ja" } },
"services_30d": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Elv\xE9gzett Szervizek (30 nap)" } }
},
"employees": {
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Dolgoz\xF3k" } },
"total_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "\xD6sszesen " }, { "t": 4, "k": "count" }, { "t": 3, "v": " f\u0151" }] } },
"name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "N\xE9v" } },
"email_phone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "E-mail / Telefon" } },
"role": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepk\xF6r" } },
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "St\xE1tusz" } },
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "M\u0171veletek" } },
"edit_role": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepk\xF6r szerkeszt\xE9se" } },
"remove": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Elt\xE1vol\xEDt\xE1s" } },
"no_employees": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "M\xE9g nincsenek tagok ehhez a gar\xE1zshoz." } },
"edit_role_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tag szerepk\xF6r\xE9nek szerkeszt\xE9se" } },
"editRoleTitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tag szerepk\xF6r\xE9nek szerkeszt\xE9se" } },
"editRoleFor": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "name" }, { "t": 3, "v": " szerepk\xF6r\xE9nek m\xF3dos\xEDt\xE1sa" }] } },
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "M\xE9gse" } },
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ment\xE9s" } },
"saveRole": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepk\xF6r ment\xE9se" } },
"saving": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ment\xE9s..." } },
"status_active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Akt\xEDv" } },
"status_inactive": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Inakt\xEDv" } },
"remove_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tag elt\xE1vol\xEDt\xE1sa" } },
"removeTitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tag elt\xE1vol\xEDt\xE1sa" } },
"remove_confirm": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Biztosan elt\xE1vol\xEDtod " }, { "t": 4, "k": "name" }, { "t": 3, "v": " tagot a gar\xE1zsb\xF3l?" }] } },
"removeConfirm": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Biztosan elt\xE1vol\xEDtod " }, { "t": 4, "k": "name" }, { "t": 3, "v": " tagot a gar\xE1zsb\xF3l?" }] } },
"remove_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Elt\xE1vol\xEDt\xE1s" } },
"removing": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Elt\xE1vol\xEDt\xE1s..." } },
"add_employee": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xDAj dolgoz\xF3 hozz\xE1ad\xE1sa" } },
"addTitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xDAj dolgoz\xF3 hozz\xE1ad\xE1sa" } },
"email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "E-mail c\xEDm" } },
"emailPlaceholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Add meg az e-mail c\xEDmet..." } },
"roleMember": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tag" } },
"roleManager": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Menedzser" } },
"roleAdmin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Admin" } },
"roleOwner": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tulajdonos" } },
"add": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hozz\xE1ad\xE1s" } },
"adding": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hozz\xE1ad\xE1s..." } }
},
"fleet": {
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Flotta" } },
"total_vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "\xD6sszesen " }, { "t": 4, "k": "count" }, { "t": 3, "v": " j\xE1rm\u0171" }] } },
"plate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Rendsz\xE1m" } },
"brand": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "M\xE1rka" } },
"model": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Modell" } },
"brand_model": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "M\xE1rka & Modell" } },
"year": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xC9vj\xE1rat" } },
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "St\xE1tusz" } },
"vin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alv\xE1zsz\xE1m" } },
"no_vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ehhez a gar\xE1zshoz m\xE9g nincsenek j\xE1rm\u0171vek rendelve." } },
"no_fleet_access": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs jogosults\xE1god a flotta adatok megtekint\xE9s\xE9hez." } }
}
}
};
export { resource as default };
//# sourceMappingURL=hu-B3JxlqZo.mjs.map
//# sourceMappingURL=hu-Ck1VzT5S.mjs.map

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,6 +1,6 @@
import { defineComponent, ref, computed, unref, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrInterpolate, ssrRenderClass, ssrRenderList, ssrIncludeBooleanAttr, ssrRenderAttr } from 'vue/server-renderer';
import { b as useI18n } from './server.mjs';
import { d as useI18n } from './server.mjs';
import '../nitro/nitro.mjs';
import 'node:http';
import 'node:https';
@@ -82,13 +82,30 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
return colorMap[domain] || "text-slate-400";
}
function getCellClass(role, perm) {
if (isRoleLocked(role)) return "bg-purple-900/5";
if (isRoleLocked(role)) {
return isPermEnabled(role.id, perm.id) ? "bg-purple-900/10" : "bg-purple-900/5";
}
if (isPermEnabled(role.id, perm.id)) return "bg-emerald-900/10";
return "";
}
function formatPermissionLabel(perm) {
return perm.code.replace(/:/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
}
function getToggleClass(role, perm) {
const enabled = isPermEnabled(role.id, perm.id);
const locked = isRoleLocked(role);
const baseClasses = "peer-focus:outline-none peer-focus:ring-2";
if (locked) {
if (enabled) {
return `${baseClasses} bg-emerald-600 peer-focus:ring-emerald-500/50 after:translate-x-full after:border-white`;
}
return `${baseClasses} bg-slate-600`;
}
if (enabled) {
return `${baseClasses} bg-emerald-600 peer-focus:ring-emerald-500/50 peer-checked:after:translate-x-full peer-checked:after:border-white`;
}
return `${baseClasses} bg-slate-600 peer-focus:ring-indigo-500/50 peer-checked:after:translate-x-full peer-checked:after:border-white peer-checked:bg-indigo-600`;
}
function getDomainPermissions(domain) {
return filteredPermissions.value.filter((p) => p.domain === domain);
}
@@ -162,7 +179,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
}
_push(`</div></td><!--[-->`);
ssrRenderList(filteredRoles.value, (role) => {
_push(`<td class="${ssrRenderClass([getCellClass(role, perm), "p-3 text-center border-l border-slate-700/30"])}"><label class="${ssrRenderClass([{ "cursor-not-allowed opacity-40": isRoleLocked(role) }, "relative inline-flex items-center justify-center cursor-pointer"])}"><input type="checkbox"${ssrIncludeBooleanAttr(isPermEnabled(role.id, perm.id)) ? " checked" : ""} class="sr-only peer"${ssrIncludeBooleanAttr(isRoleLocked(role)) ? " disabled" : ""}><div class="${ssrRenderClass([isRoleLocked(role) ? "bg-slate-600" : isPermEnabled(role.id, perm.id) ? "bg-emerald-600 peer-focus:ring-emerald-500/50 peer-checked:after:translate-x-full peer-checked:after:border-white" : "bg-slate-600 peer-focus:ring-indigo-500/50 peer-checked:after:translate-x-full peer-checked:after:border-white peer-checked:bg-indigo-600", "w-9 h-5 rounded-full peer peer-focus:outline-none peer-focus:ring-2 transition-all after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-slate-300 after:border after:rounded-full after:h-4 after:w-4 after:transition-all"])}"></div></label></td>`);
_push(`<td class="${ssrRenderClass([getCellClass(role, perm), "p-3 text-center border-l border-slate-700/30"])}"><label class="${ssrRenderClass([isRoleLocked(role) ? "cursor-not-allowed" : "cursor-pointer", "relative inline-flex items-center justify-center"])}"><input type="checkbox"${ssrIncludeBooleanAttr(isPermEnabled(role.id, perm.id)) ? " checked" : ""} class="sr-only peer"${ssrIncludeBooleanAttr(isRoleLocked(role)) ? " disabled" : ""}><div class="${ssrRenderClass([getToggleClass(role, perm), "w-9 h-5 rounded-full transition-all duration-200 after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-slate-300 after:border after:rounded-full after:h-4 after:w-4 after:transition-all after:duration-200"])}"></div></label></td>`);
});
_push(`<!--]--></tr>`);
});
@@ -194,4 +211,4 @@ _sfc_main.setup = (props, ctx) => {
};
export { _sfc_main as default };
//# sourceMappingURL=index-D2n0yf-2.mjs.map
//# sourceMappingURL=index-DgwDY6Ie.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -1,167 +0,0 @@
import { defineComponent, ref, computed, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrInterpolate, ssrRenderClass, ssrRenderList } from 'vue/server-renderer';
import { useRoute, useRouter } from 'vue-router';
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "index",
__ssrInlineRender: true,
setup(__props) {
useRoute();
useRouter();
const loading = ref(true);
const error = ref(null);
const garage = ref(null);
const activeTab = ref("general");
const tabs = [
{ key: "general", label: "\xC1ltal\xE1nos" },
{ key: "employees", label: "Dolgoz\xF3k" },
{ key: "fleet", label: "Flotta" },
{ key: "analytics", label: "Analitika" }
];
const formattedAddress = computed(() => {
if (!garage.value) return "\u2014";
const parts = [];
if (garage.value.address_zip) parts.push(garage.value.address_zip);
if (garage.value.address_city) parts.push(garage.value.address_city);
const streetParts = [];
if (garage.value.address_street_name) streetParts.push(garage.value.address_street_name);
if (garage.value.address_street_type) streetParts.push(garage.value.address_street_type);
if (garage.value.address_house_number) streetParts.push(garage.value.address_house_number);
if (streetParts.length > 0) parts.push(streetParts.join(" "));
return parts.length > 0 ? parts.join(", ") : "\u2014";
});
function garageDisplayName(g) {
return g.display_name || g.name || g.full_name;
}
function getInitials(name) {
return name.split(" ").map((w) => w.charAt(0)).join("").toUpperCase().slice(0, 2);
}
function getInitialsColor(name) {
const colors = [
"bg-amber-600",
"bg-purple-600",
"bg-slate-600",
"bg-indigo-600",
"bg-emerald-600",
"bg-rose-600",
"bg-cyan-600",
"bg-orange-600",
"bg-teal-600"
];
let hash = 0;
for (let i = 0; i < name.length; i++) {
hash = name.charCodeAt(i) + ((hash << 5) - hash);
}
return colors[Math.abs(hash) % colors.length];
}
function statusBadgeClass(status) {
if (status === "active") return "bg-emerald-500/10 text-emerald-400";
if (status === "suspended") return "bg-red-500/10 text-red-400";
if (status === "pending_verification") return "bg-amber-500/10 text-amber-400";
return "bg-slate-500/10 text-slate-400";
}
function statusDotClass(status) {
if (status === "active") return "bg-emerald-400";
if (status === "suspended") return "bg-red-400";
if (status === "pending_verification") return "bg-amber-400";
return "bg-slate-400";
}
function statusLabel(status) {
if (status === "active") return "Akt\xEDv";
if (status === "suspended") return "Felf\xFCggesztve";
if (status === "pending_verification") return "F\xFCgg\u0151ben";
return "Inakt\xEDv";
}
function tierBadgeClass(tierName) {
const name = tierName.toLowerCase();
if (name.includes("enterprise") || name.includes("vip") || name.includes("corp")) return "bg-purple-500/20 text-purple-300";
if (name.includes("premium") || name.includes("pro")) return "bg-amber-500/20 text-amber-300";
return "bg-slate-500/20 text-slate-300";
}
function orgTypeLabel(type) {
const labels = {
individual: "Mag\xE1nszem\xE9ly",
service: "Szerviz",
service_provider: "Szolg\xE1ltat\xF3",
fleet_owner: "Flottatulajdonos",
club: "Klub",
business: "V\xE1llalkoz\xE1s"
};
return labels[type] || type;
}
function formatDate(dateStr) {
if (!dateStr) return "\u2014";
try {
const d = new Date(dateStr);
return d.toLocaleDateString("hu-HU", {
year: "numeric",
month: "short",
day: "numeric"
});
} catch {
return dateStr;
}
}
return (_ctx, _push, _parent, _attrs) => {
_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>`);
} else if (error.value) {
_push(`<div class="flex flex-col items-center justify-center py-20 text-center"><svg class="w-12 h-12 text-red-500 mb-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" 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"></path></svg><p class="text-red-400 text-sm mb-2">${ssrInterpolate(error.value)}</p><button class="px-4 py-2 text-sm bg-indigo-600/20 text-indigo-300 hover:bg-indigo-600/30 rounded-lg transition">${ssrInterpolate(_ctx.$t("garages.details.retry"))}</button></div>`);
} else if (garage.value) {
_push(`<!--[--><div class="mb-8"><button class="inline-flex items-center gap-1.5 text-sm text-slate-400 hover:text-white transition mb-4"><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="M15 19l-7-7 7-7"></path></svg> ${ssrInterpolate(_ctx.$t("garages.details.back"))}</button><div class="flex items-center justify-between"><div class="flex items-center gap-4"><div class="${ssrRenderClass([getInitialsColor(garageDisplayName(garage.value)), "w-12 h-12 rounded-xl flex items-center justify-center text-lg font-bold text-white"])}">${ssrInterpolate(getInitials(garageDisplayName(garage.value)))}</div><div><h1 class="text-2xl font-bold text-white">${ssrInterpolate(garageDisplayName(garage.value))}</h1><p class="text-sm text-slate-400 mt-0.5">${ssrInterpolate(garage.value.full_name)} `);
if (garage.value.tax_number) {
_push(`<span class="ml-2 text-slate-500">\xB7 ${ssrInterpolate(_ctx.$t("garages.details.tax_number"))}: ${ssrInterpolate(garage.value.tax_number)}</span>`);
} else {
_push(`<!---->`);
}
_push(`</p></div></div><span class="${ssrRenderClass([statusBadgeClass(garage.value.status), "inline-flex items-center px-3 py-1 rounded-full text-xs font-medium"])}"><span class="${ssrRenderClass([statusDotClass(garage.value.status), "w-1.5 h-1.5 rounded-full mr-1.5"])}"></span> ${ssrInterpolate(statusLabel(garage.value.status))}</span></div></div><div class="border-b border-slate-700 mb-6"><nav class="flex gap-6"><!--[-->`);
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 transition border-b-2 -mb-px"])}">${ssrInterpolate(tab.label)}</button>`);
});
_push(`<!--]--></nav></div>`);
if (activeTab.value === "general") {
_push(`<div class="space-y-6"><div class="bg-slate-800/50 border border-slate-700 rounded-xl overflow-hidden"><div class="px-6 py-4 border-b border-slate-700 flex items-center gap-3"><div class="p-2 rounded-lg bg-indigo-500/10 text-indigo-400"><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"></path></svg></div><h3 class="text-base font-semibold text-white">${ssrInterpolate(_ctx.$t("garages.details.company_info"))}</h3></div><div class="px-6 py-5"><div class="grid grid-cols-1 md:grid-cols-2 gap-6"><div class="space-y-4"><div><p class="text-xs text-slate-500 uppercase tracking-wider">${ssrInterpolate(_ctx.$t("garages.details.company_name"))}</p><p class="text-sm text-white mt-1">${ssrInterpolate(garage.value.full_name)}</p></div><div><p class="text-xs text-slate-500 uppercase tracking-wider">${ssrInterpolate(_ctx.$t("garages.details.display_name"))}</p><p class="text-sm text-white mt-1">${ssrInterpolate(garage.value.display_name || "\u2014")}</p></div><div><p class="text-xs text-slate-500 uppercase tracking-wider">${ssrInterpolate(_ctx.$t("garages.details.org_type"))}</p><p class="text-sm text-white mt-1">${ssrInterpolate(orgTypeLabel(garage.value.org_type))}</p></div></div><div class="space-y-4"><div><p class="text-xs text-slate-500 uppercase tracking-wider">${ssrInterpolate(_ctx.$t("garages.details.tax_number"))}</p><p class="text-sm text-white mt-1">${ssrInterpolate(garage.value.tax_number || "\u2014")}</p></div><div><p class="text-xs text-slate-500 uppercase tracking-wider">${ssrInterpolate(_ctx.$t("garages.details.reg_number"))}</p><p class="text-sm text-white mt-1">${ssrInterpolate(garage.value.reg_number || "\u2014")}</p></div><div><p class="text-xs text-slate-500 uppercase tracking-wider">${ssrInterpolate(_ctx.$t("garages.details.created_at"))}</p><p class="text-sm text-white mt-1">${ssrInterpolate(formatDate(garage.value.created_at))}</p></div></div></div><div class="mt-6 pt-6 border-t border-slate-700/50"><p class="text-xs text-slate-500 uppercase tracking-wider mb-3">${ssrInterpolate(_ctx.$t("garages.details.address"))}</p><p class="text-sm text-white">${ssrInterpolate(formattedAddress.value)}</p></div></div></div><div class="bg-slate-800/50 border border-slate-700 rounded-xl overflow-hidden"><div class="px-6 py-4 border-b border-slate-700 flex items-center gap-3"><div class="p-2 rounded-lg bg-amber-500/10 text-amber-400"><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 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"></path></svg></div><h3 class="text-base font-semibold text-white">${ssrInterpolate(_ctx.$t("garages.details.subscription_info"))}</h3></div><div class="px-6 py-5">`);
if (garage.value.subscription) {
_push(`<div class="grid grid-cols-1 md:grid-cols-2 gap-6"><div class="space-y-4"><div><p class="text-xs text-slate-500 uppercase tracking-wider">${ssrInterpolate(_ctx.$t("garages.details.tier_name"))}</p><span class="${ssrRenderClass([tierBadgeClass(garage.value.subscription.tier_name), "inline-flex mt-1 px-2.5 py-0.5 rounded-full text-xs font-medium"])}">${ssrInterpolate(garage.value.subscription.tier_name)}</span></div><div><p class="text-xs text-slate-500 uppercase tracking-wider">${ssrInterpolate(_ctx.$t("garages.details.tier_level"))}</p><p class="text-sm text-white mt-1">${ssrInterpolate(_ctx.$t("garages.details.level_n", { n: garage.value.subscription.tier_level }))}</p></div></div><div class="space-y-4"><div><p class="text-xs text-slate-500 uppercase tracking-wider">${ssrInterpolate(_ctx.$t("garages.details.expires_at"))}</p>`);
if (garage.value.subscription.expires_at) {
_push(`<p class="text-sm text-white mt-1">${ssrInterpolate(formatDate(garage.value.subscription.expires_at))}</p>`);
} else {
_push(`<p class="text-sm text-slate-400 mt-1 italic">${ssrInterpolate(_ctx.$t("garages.indefinite"))}</p>`);
}
_push(`</div><div><p class="text-xs text-slate-500 uppercase tracking-wider">${ssrInterpolate(_ctx.$t("garages.details.asset_limit"))}</p><p class="text-sm text-white mt-1">${ssrInterpolate(garage.value.subscription.asset_limit)} ${ssrInterpolate(_ctx.$t("garages.details.vehicles"))}</p></div></div></div>`);
} else {
_push(`<div class="text-center py-4"><p class="text-sm text-slate-400">${ssrInterpolate(_ctx.$t("garages.details.no_subscription"))}</p></div>`);
}
_push(`</div></div><div class="bg-slate-800/50 border border-slate-700 rounded-xl overflow-hidden"><div class="px-6 py-4 border-b border-slate-700 flex items-center gap-3"><div class="p-2 rounded-lg bg-emerald-500/10 text-emerald-400"><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"></path></svg></div><h3 class="text-base font-semibold text-white">${ssrInterpolate(_ctx.$t("garages.details.contact_info"))}</h3></div><div class="px-6 py-5">`);
if (garage.value.primary_contact) {
_push(`<div class="grid grid-cols-1 md:grid-cols-2 gap-6"><div class="space-y-4"><div><p class="text-xs text-slate-500 uppercase tracking-wider">${ssrInterpolate(_ctx.$t("garages.details.contact_name"))}</p><p class="text-sm text-white mt-1">${ssrInterpolate(garage.value.primary_contact.full_name)}</p></div><div><p class="text-xs text-slate-500 uppercase tracking-wider">${ssrInterpolate(_ctx.$t("garages.details.contact_role"))}</p><p class="text-sm text-white mt-1">${ssrInterpolate(garage.value.primary_contact.role)}</p></div></div><div class="space-y-4"><div><p class="text-xs text-slate-500 uppercase tracking-wider">${ssrInterpolate(_ctx.$t("garages.details.contact_department"))}</p><p class="text-sm text-white mt-1">${ssrInterpolate(garage.value.primary_contact.department || "\u2014")}</p></div><div><p class="text-xs text-slate-500 uppercase tracking-wider">${ssrInterpolate(_ctx.$t("garages.details.contact_phone"))}</p><p class="text-sm text-white mt-1">${ssrInterpolate(garage.value.primary_contact.phone || "\u2014")}</p></div></div></div>`);
} else {
_push(`<div class="text-center py-4"><p class="text-sm text-slate-400">${ssrInterpolate(_ctx.$t("garages.details.no_contact"))}</p></div>`);
}
_push(`</div></div></div>`);
} else {
_push(`<!---->`);
}
if (activeTab.value !== "general") {
_push(`<div class="flex items-center justify-center py-20"><p class="text-slate-500 text-sm">${ssrInterpolate(_ctx.$t("garages.details.coming_soon"))}</p></div>`);
} else {
_push(`<!---->`);
}
_push(`<!--]-->`);
} 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/garages/[id]/index.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
export { _sfc_main as default };
//# sourceMappingURL=index-JpXwtL-Z.mjs.map

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,9 +1,8 @@
import { _ as __nuxt_component_0 } from './nuxt-link-Cp-CAJwR.mjs';
import { _ as __nuxt_component_0 } from './nuxt-link-C5PnX__I.mjs';
import { defineComponent, ref, mergeProps, unref, withCtx, createTextVNode, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrRenderAttr, ssrInterpolate, ssrIncludeBooleanAttr, ssrRenderComponent } from 'vue/server-renderer';
import { p as publicAssetsURL } from '../nitro/nitro.mjs';
import { a as useRouter } from './server.mjs';
import { u as useAuthStore } from './auth-RwMj9LdV.mjs';
import { a as useRouter, b as useAuthStore } from './server.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
@@ -72,4 +71,4 @@ _sfc_main.setup = (props, ctx) => {
};
export { _sfc_main as default };
//# sourceMappingURL=login-Dx4mHuUH.mjs.map
//# sourceMappingURL=login-DOiXgKDi.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"login-DOiXgKDi.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/login-DOiXgKDi.js"],"names":[],"mappings":"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"}

View File

@@ -1 +0,0 @@
{"version":3,"file":"login-Dx4mHuUH.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/login-Dx4mHuUH.js"],"names":[],"mappings":"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"}

View File

@@ -1,6 +1,6 @@
import { defineComponent, shallowRef, h, resolveComponent, computed, unref } from 'vue';
import { O as parseQuery, t as hasProtocol, w as joinURL, v as isScriptProtocol, Q as withTrailingSlash, P as withoutTrailingSlash } from '../nitro/nitro.mjs';
import { a as useRouter, e as encodeRoutePath, r as resolveRouteObject, n as navigateTo, f as useNuxtApp, g as useRuntimeConfig, h as nuxtLinkDefaults } from './server.mjs';
import { a as useRouter, f as encodeRoutePath, r as resolveRouteObject, n as navigateTo, g as useNuxtApp, h as useRuntimeConfig, i as nuxtLinkDefaults } from './server.mjs';
const firstNonUndefined = (...args) => args.find((arg) => arg !== void 0);
function sanitizeExternalHref(value) {
@@ -307,4 +307,4 @@ function applyTrailingSlashBehavior(to, trailingSlash) {
}
export { __nuxt_component_0 as _ };
//# sourceMappingURL=nuxt-link-Cp-CAJwR.mjs.map
//# sourceMappingURL=nuxt-link-C5PnX__I.mjs.map

View File

@@ -1,7 +1,7 @@
import process from 'node:process';globalThis._importMeta_=globalThis._importMeta_||{url:"file:///_entry.js",env:process.env};import * as Vue from 'vue';
import { getCurrentScope, onScopeDispose, ref, inject, computed, hasInjectionContext, getCurrentInstance as getCurrentInstance$1, shallowRef, defineComponent, createElementBlock, provide, cloneVNode, h, defineAsyncComponent, unref, shallowReactive, Suspense, Fragment, useSSRContext, createApp, createVNode, Text, withCtx, onErrorCaptured, onServerPrefetch, resolveDynamicComponent, reactive, effectScope, nextTick, mergeProps, toRef, isReadonly, toRaw, isRef, isShallow, isReactive } from 'vue';
import { ref, computed, getCurrentScope, onScopeDispose, inject, hasInjectionContext, getCurrentInstance as getCurrentInstance$1, shallowRef, defineComponent, createElementBlock, provide, cloneVNode, h, defineAsyncComponent, unref, shallowReactive, Suspense, Fragment, useSSRContext, createApp, createVNode, Text, withCtx, onErrorCaptured, onServerPrefetch, resolveDynamicComponent, reactive, effectScope, nextTick, mergeProps, toRef, isReadonly, toRaw, isRef, isShallow, isReactive } from 'vue';
import { q as klona, r as parseURL, e as encodePath, s as decodePath, t as hasProtocol, v as isScriptProtocol, w as joinURL, x as withQuery, y as parse$1, z as getRequestHeader, A as destr, B as isEqual, C as sanitizeStatusCode, D as setCookie, E as getCookie, F as deleteCookie, G as getContext, $ as $fetch$1, H as baseURL, I as defu, J as createHooks, j as createError$1, K as executeAsync, L as getRequestURL, M as createDefu, N as parsePath, O as parseQuery, P as withoutTrailingSlash } from '../nitro/nitro.mjs';
import { setActivePinia, createPinia, shouldHydrate } from 'pinia';
import { defineStore, setActivePinia, createPinia, shouldHydrate } from 'pinia';
import { useRoute as useRoute$1, RouterView, createMemoryHistory, createRouter, START_LOCATION } from 'vue-router';
import { ssrRenderComponent, ssrRenderSuspense, ssrRenderVNode } from 'vue/server-renderer';
import { u as useHead$1, h as headSymbol } from '../routes/renderer.mjs';
@@ -473,13 +473,13 @@ const _routes = [
name: "login",
path: "/login",
meta: __nuxt_page_meta || {},
component: () => import('./login-Dx4mHuUH.mjs')
component: () => import('./login-DOiXgKDi.mjs')
},
{
name: "garages",
path: "/garages",
meta: { "middleware": "auth" },
component: () => import('./index-o-V5Lz0_.mjs')
component: () => import('./index-CzKBE-M2.mjs')
},
{
name: "packages",
@@ -491,13 +491,12 @@ const _routes = [
name: "permissions",
path: "/permissions",
meta: { "middleware": "auth" },
component: () => import('./index-D2n0yf-2.mjs')
component: () => import('./index-DgwDY6Ie.mjs')
},
{
name: "garages-id",
path: "/garages/:id()",
meta: { "middleware": "auth" },
component: () => import('./index-JpXwtL-Z.mjs')
component: () => import('./index-1I7UC9HP.mjs')
}
];
const _wrapInTransition = (props, children) => {
@@ -642,7 +641,7 @@ const globalMiddleware = [
manifest_45route_45rule
];
const namedMiddleware = {
auth: () => import('./auth-9ekP0oPk.mjs')
auth: () => import('./auth-B3jrOAhu.mjs')
};
Object.assign(/* @__PURE__ */ Object.create(null), {});
const pageIslandRoutes = Object.assign(/* @__PURE__ */ Object.create(null), {});
@@ -1427,7 +1426,7 @@ const localeLoaders = {
{
key: "locale_hu_46json_ee06c965",
load: () => import(
'./hu-B3JxlqZo.mjs'
'./hu-Ck1VzT5S.mjs'
/* webpackChunkName: "locale_hu_46json_ee06c965" */
),
cache: true
@@ -1437,7 +1436,7 @@ const localeLoaders = {
{
key: "locale_en_46json_0b63539c",
load: () => import(
'./en-WIj2pBfh.mjs'
'./en-BI6r-iRW.mjs'
/* webpackChunkName: "locale_en_46json_0b63539c" */
),
cache: true
@@ -1577,7 +1576,7 @@ function getDefaultLocaleForDomain(host) {
}
const isSupportedLocale = (locale) => localeCodes.includes(locale || "");
const resolveSupportedLocale = (locale) => isSupportedLocale(locale) ? locale : void 0;
var define_I18N_LOCALE_HASHES_default$1 = { hu: "bb1d6803", en: "bb1d6803" };
var define_I18N_LOCALE_HASHES_default$1 = { hu: "4ec99847", en: "4ec99847" };
const useLocaleConfigs = () => useState(
"i18n:cached-locale-configs",
() => void 0
@@ -5907,7 +5906,7 @@ const setupVueI18nOptions = async (defaultLocale) => {
}
return options;
};
var define_I18N_LOCALE_HASHES_default = { hu: "bb1d6803", en: "bb1d6803" };
var define_I18N_LOCALE_HASHES_default = { hu: "4ec99847", en: "4ec99847" };
const i18n_EI7LsD1KYQADczz5hrChviGQCdVM8yUkvFEZLJpmnvM = /* @__PURE__ */ defineNuxtPlugin({
name: "i18n:plugin",
parallel: false,
@@ -5990,6 +5989,138 @@ const i18n_EI7LsD1KYQADczz5hrChviGQCdVM8yUkvFEZLJpmnvM = /* @__PURE__ */ defineN
nuxt.provide("switchLocalePath", useSwitchLocalePath(nuxt));
}
});
const useAuthStore = defineStore("auth", () => {
const user = ref(null);
const token = ref(null);
const isLoading = ref(false);
const error = ref(null);
const isInitialized = ref(false);
const isAuthenticated = computed(() => !!token.value && !!user.value);
const isAdmin = computed(() => {
const role = user.value?.role;
if (!role) return false;
const staffRoles = ["SUPERADMIN", "ADMIN", "MODERATOR", "SALES_REP", "SERVICE_MGR"];
return staffRoles.includes(role.toUpperCase());
});
const userName = computed(() => {
if (!user.value) return "";
const { first_name, last_name } = user.value;
if (first_name && last_name) return `${first_name} ${last_name}`;
return first_name || last_name || user.value.email;
});
const userEmail = computed(() => user.value?.email ?? "");
const userRole = computed(() => user.value?.role ?? "guest");
async function login(email, password) {
isLoading.value = true;
error.value = null;
try {
const body = new URLSearchParams();
body.append("username", email);
body.append("password", password);
const res = await $fetch("/api/v1/auth/login", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body
});
const tokenCookie = useCookie("access_token", {
maxAge: 60 * 60 * 24 * 7,
// 7 days
path: "/",
sameSite: "lax",
secure: true
});
tokenCookie.value = res.access_token;
token.value = res.access_token;
await fetchUser();
} catch (err) {
error.value = err?.data?.detail || err?.message || "Login failed";
throw err;
} finally {
isLoading.value = false;
}
}
async function fetchUser() {
const tokenCookie = useCookie("access_token");
const currentToken = tokenCookie.value || token.value;
if (!currentToken) return;
try {
const res = await $fetch("/api/v1/auth/me", {
headers: { Authorization: `Bearer ${currentToken}` }
});
user.value = res;
} catch (err) {
if (err?.response?.status === 401) {
logout();
}
throw err;
}
}
function logout() {
token.value = null;
user.value = null;
error.value = null;
const tokenCookie = useCookie("access_token");
tokenCookie.value = null;
}
async function init() {
const tokenCookie = useCookie("access_token");
if (tokenCookie.value) {
token.value = tokenCookie.value;
try {
await fetchUser();
} catch {
logout();
}
}
isInitialized.value = true;
}
function clearError() {
error.value = null;
}
return {
// State
user,
token,
isLoading,
error,
isInitialized,
// Getters
isAuthenticated,
isAdmin,
userName,
userEmail,
userRole,
// Actions
login,
fetchUser,
logout,
init,
clearError
};
});
const api_jy9dy79pM_nYQuRKPrcfNg56p_gKkzw9SekUTZgAenc = /* @__PURE__ */ defineNuxtPlugin(() => {
const originalFetch = globalThis.fetch;
globalThis.fetch = async (input, init) => {
const response = await originalFetch(input, init);
if (response.status === 401) {
const url = typeof input === "string" ? input : input instanceof URL ? input.href : input.url;
if (url.includes("/auth/login") || url.includes("/auth/refresh")) {
return response;
}
try {
const authStore = useAuthStore();
authStore.logout();
} catch {
const tokenCookie = useCookie("access_token");
tokenCookie.value = null;
}
{
await navigateTo("/login");
}
}
return response;
};
});
const ssg_detect_IpHCGcQQ_IR5Rl99qyukWoMA9fJGfuTYyoksTzy81cs = /* @__PURE__ */ defineNuxtPlugin({
name: "i18n:plugin:ssg-detect",
dependsOn: ["i18n:plugin", "i18n:plugin:route-locale-detect"],
@@ -6011,11 +6142,12 @@ const plugins = [
route_locale_detect__HPHJq3Jg7gwhwgKEI8tQavopSAjmrCSPXl9HgL2h9U,
preload_30FByJAs5vQa4mNNQLX15KPGCCVjIGrzdTjh6ve5W24,
i18n_EI7LsD1KYQADczz5hrChviGQCdVM8yUkvFEZLJpmnvM,
api_jy9dy79pM_nYQuRKPrcfNg56p_gKkzw9SekUTZgAenc,
ssg_detect_IpHCGcQQ_IR5Rl99qyukWoMA9fJGfuTYyoksTzy81cs
];
const layouts = {
blank: defineAsyncComponent(() => import('./blank-DWT4RB69.mjs').then((m) => m.default || m)),
default: defineAsyncComponent(() => import('./default-DOjdWE8b.mjs').then((m) => m.default || m))
default: defineAsyncComponent(() => import('./default-C9mWt9Pc.mjs').then((m) => m.default || m))
};
const routeRulesMatcher = _routeRulesMatcher;
const LayoutLoader = defineComponent({
@@ -6299,7 +6431,7 @@ const _sfc_main$1 = {
const statusText = _error.statusMessage ?? (is404 ? "Page Not Found" : "Internal Server Error");
const description = _error.message || _error.toString();
const stack = void 0;
const _Error404 = defineAsyncComponent(() => import('./error-404-Bkg5lg69.mjs'));
const _Error404 = defineAsyncComponent(() => import('./error-404-DPt4byml.mjs'));
const _Error = defineAsyncComponent(() => import('./error-500-DfEH3Z64.mjs'));
const ErrorTemplate = is404 ? _Error404 : _Error;
return (_ctx, _push, _parent, _attrs) => {
@@ -6392,5 +6524,5 @@ let entry;
}
const entry_default = ((ssrContext) => entry(ssrContext));
export { useRouter as a, useI18n as b, useCookie as c, defineNuxtRouteMiddleware as d, entry_default as default, encodeRoutePath as e, useNuxtApp as f, useRuntimeConfig as g, nuxtLinkDefaults as h, navigateTo as n, resolveRouteObject as r, useHead as u };
export { useRouter as a, useAuthStore as b, useCookie as c, useI18n as d, entry_default as default, defineNuxtRouteMiddleware as e, encodeRoutePath as f, useNuxtApp as g, useRuntimeConfig as h, nuxtLinkDefaults as i, navigateTo as n, resolveRouteObject as r, useHead as u };
//# sourceMappingURL=server.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -1,9 +1,9 @@
const interopDefault = r => r.default || r || [];
const styles = {
"node_modules/nuxt/dist/app/entry.js": () => import('./entry-styles.C2WXX8iB.mjs').then(interopDefault),
"node_modules/nuxt/dist/app/entry.js": () => import('./entry-styles.DW_zlACo.mjs').then(interopDefault),
"app.vue": () => import('./app-styles.BKebClGy.mjs').then(interopDefault),
"node_modules/nuxt/dist/app/components/error-404.vue": () => import('./error-404-styles.CiJjK6WX.mjs').then(interopDefault),
"node_modules/nuxt/dist/app/components/error-500.vue": () => import('./error-500-styles.ulHNpcF1.mjs').then(interopDefault)
"node_modules/nuxt/dist/app/components/error-500.vue": () => import('./error-500-styles.ulHNpcF1.mjs').then(interopDefault),
"node_modules/nuxt/dist/app/components/error-404.vue": () => import('./error-404-styles.CiJjK6WX.mjs').then(interopDefault)
};
export { styles as default };

View File

@@ -4301,7 +4301,7 @@ function _expandFromEnv(value) {
const _inlineRuntimeConfig = {
"app": {
"baseURL": "/",
"buildId": "e6a51bf7-9efc-4598-aa2a-be03bd94fdda",
"buildId": "9bec55ba-4ecf-449d-9a96-4f3ecc37770a",
"buildAssetsDir": "/_nuxt/",
"cdnURL": ""
},
@@ -5029,11 +5029,13 @@ var garages$1 = {
title: "Garázsok CRM",
subtitle: "Garázsok listája, csomagkezelés és státuszmódosítás",
total_garages: "Összes Garázs",
active_garages: "Aktív Garázsok",
premium_garages: "Premium Garázsok",
enterprise_garages: "Enterprise Garázsok",
private_garages: "Privát Garázsok",
corporate_garages: "Céges Garázsok",
search_placeholder: "Keresés név, kapcsolattartó vagy e-mail alapján...",
all_tiers: "Összes csomag",
all_types: "Összes típus",
type_individual: "Privát (Egyéni)",
type_corporate: "Céges (Vállalati)",
company_name: "Cégnév",
email: "E-mail",
status: "Státusz",
@@ -5089,9 +5091,136 @@ var garages$1 = {
contact_name: "Kapcsolattartó neve",
contact_role: "Szerepkör",
contact_department: "Osztály",
contact_phone: "Telefonszám",
contact_phone: "Kapcsolattartó telefon",
no_contact: "Nincs elsődleges kapcsolattartó",
coming_soon: "Ez a funkció hamarosan elérhető lesz..."
edit_details: "Adatok Szerkesztése",
save: "Mentés",
generalTab: "Általános",
employeesTab: "Dolgozók",
fleetTab: "Flotta",
analyticsTab: "Analitika",
subscriptionTab: "Előfizetés",
editBasicTab: "Alapadatok",
editContactTab: "Kapcsolat",
editAddressTab: "Címek",
zip: "Irányítószám",
city: "Város",
street_name: "Utca",
street_type: "Utca típusa",
house_number: "Házszám",
coming_soon: "Ez a funkció hamarosan elérhető lesz...",
missing_data_title: "Hiányzó adatok",
missing_data_desc: "A garázs profilja hiányos. Kérjük, egészítse ki a hiányzó adatokat.",
missing_data_activation_required: "A garázs aktiválásához az alábbi adatok pótlása kötelező:",
missing_tax_number: "Adószám",
missing_billing: "Számlázási cím",
missing_contact_email: "Kapcsolattartó e-mail",
missing_contact_phone: "Kapcsolattartó telefon",
missing_data_count: "{count} mező hiányzik",
contact_person_name: "Kapcsolattartó neve",
contact_email: "Kapcsolattartó e-mail",
billing_address: "Számlázási cím",
billing_zip: "Irányítószám",
billing_city: "Város",
billing_street_name: "Utca",
billing_street_type: "Utca típusa",
billing_house_number: "Házszám",
notification_address: "Értesítési cím",
notification_zip: "Irányítószám",
notification_city: "Város",
notification_street_name: "Utca",
notification_street_type: "Utca típusa",
notification_house_number: "Házszám",
tab_basic: "Alapadatok",
tab_contact: "Kapcsolat",
tab_addresses: "Címek",
basic_info: "Alapadatok",
contact_section: "Kapcsolattartó",
addresses_section: "Címek",
vehicles_used: "Járművek",
branches_used: "Telephelyek",
employees_used: "Dolgozók",
status: "Státusz",
subscription_history: "Előfizetési Előzmények",
history_date: "Dátum",
history_package: "Csomag",
history_action: "Művelet",
history_status: "Státusz",
no_subscription_history: "Még nincsenek előfizetési előzmények."
},
analytics: {
ltv: "Élettartam Érték (LTV)",
mrr: "Havi Bevétel (MRR)",
monthly_recurring: "Havi ismétlődő bevétel",
outstanding: "Kintlévőség",
all_settled: "Minden számla rendezve",
earned_credits: "Szerzett Kreditek",
contribution_xp: "Platform építésével gyűjtött XP",
invited_companies: "Meghívott Cégek",
companies_joined: "Cég csatlakozott a meghívásodra",
validated_garages: "Validált Garázsok",
garages_confirmed: "Garázs sikeresen hitelesítve",
utilization: "Kihasználtság",
vehicle_quota: "Jármű Kvóta",
employee_quota: "Alkalmazotti Kvóta",
utilized: "kihasználva",
marketplace_engagement: "Piactér & Aktivitás",
avg_rating: "Átlagos Értékelés",
reviews: "Értékelések",
reviews_count: "értékelés",
last_activity: "Utolsó Aktivitás",
last_login_mock: "2 órája",
services_30d: "Elvégzett Szervizek (30 nap)"
},
employees: {
title: "Dolgozók",
total_count: "Összesen {count} fő",
name: "Név",
email_phone: "E-mail / Telefon",
role: "Szerepkör",
status: "Státusz",
actions: "Műveletek",
edit_role: "Szerepkör szerkesztése",
remove: "Eltávolítás",
no_employees: "Még nincsenek tagok ehhez a garázshoz.",
edit_role_title: "Tag szerepkörének szerkesztése",
editRoleTitle: "Tag szerepkörének szerkesztése",
editRoleFor: "{name} szerepkörének módosítása",
cancel: "Mégse",
save: "Mentés",
saveRole: "Szerepkör mentése",
saving: "Mentés...",
status_active: "Aktív",
status_inactive: "Inaktív",
remove_title: "Tag eltávolítása",
removeTitle: "Tag eltávolítása",
remove_confirm: "Biztosan eltávolítod {name} tagot a garázsból?",
removeConfirm: "Biztosan eltávolítod {name} tagot a garázsból?",
remove_btn: "Eltávolítás",
removing: "Eltávolítás...",
add_employee: "Új dolgozó hozzáadása",
addTitle: "Új dolgozó hozzáadása",
email: "E-mail cím",
emailPlaceholder: "Add meg az e-mail címet...",
roleMember: "Tag",
roleManager: "Menedzser",
roleAdmin: "Admin",
roleOwner: "Tulajdonos",
add: "Hozzáadás",
adding: "Hozzáadás..."
},
fleet: {
title: "Flotta",
total_vehicles: "Összesen {count} jármű",
plate: "Rendszám",
brand: "Márka",
model: "Modell",
brand_model: "Márka & Modell",
year: "Évjárat",
status: "Státusz",
vin: "Alvázszám",
no_vehicles: "Ehhez a garázshoz még nincsenek járművek rendelve.",
no_fleet_access: "Nincs jogosultságod a flotta adatok megtekintéséhez."
}
};
const locale_hu_46json_ee06c965 = {
@@ -5199,11 +5328,13 @@ var garages = {
title: "Garages CRM",
subtitle: "Garage list, package management and status changes",
total_garages: "Total Garages",
active_garages: "Active Garages",
premium_garages: "Premium Garages",
enterprise_garages: "Enterprise Garages",
private_garages: "Private Garages",
corporate_garages: "Corporate Garages",
search_placeholder: "Search by name, contact or email...",
all_tiers: "All packages",
all_types: "All types",
type_individual: "Private (Individual)",
type_corporate: "Corporate",
company_name: "Company Name",
email: "Email",
status: "Status",
@@ -5259,9 +5390,136 @@ var garages = {
contact_name: "Contact Name",
contact_role: "Role",
contact_department: "Department",
contact_phone: "Phone",
contact_phone: "Contact Phone",
no_contact: "No primary contact person",
coming_soon: "This feature will be available soon..."
edit_details: "Edit Details",
save: "Save",
generalTab: "General",
employeesTab: "Employees",
fleetTab: "Fleet",
analyticsTab: "Analytics",
subscriptionTab: "Subscription",
editBasicTab: "Basic Info",
editContactTab: "Contact",
editAddressTab: "Addresses",
zip: "ZIP Code",
city: "City",
street_name: "Street",
street_type: "Street Type",
house_number: "House Number",
coming_soon: "This feature will be available soon...",
missing_data_title: "Missing Data",
missing_data_desc: "The garage profile is incomplete. Please fill in the missing fields.",
missing_data_activation_required: "To activate the garage, the following data must be provided:",
missing_tax_number: "Tax Number",
missing_billing: "Billing Address",
missing_contact_email: "Contact Email",
missing_contact_phone: "Contact Phone",
missing_data_count: "{count} fields missing",
contact_person_name: "Contact Person Name",
contact_email: "Contact Email",
billing_address: "Billing Address",
billing_zip: "ZIP Code",
billing_city: "City",
billing_street_name: "Street",
billing_street_type: "Street Type",
billing_house_number: "House Number",
notification_address: "Notification Address",
notification_zip: "ZIP Code",
notification_city: "City",
notification_street_name: "Street",
notification_street_type: "Street Type",
notification_house_number: "House Number",
tab_basic: "Basic Info",
tab_contact: "Contact",
tab_addresses: "Addresses",
basic_info: "Basic Info",
contact_section: "Contact Person",
addresses_section: "Addresses",
vehicles_used: "Vehicles",
branches_used: "Branches",
employees_used: "Employees",
status: "Status",
subscription_history: "Subscription History",
history_date: "Date",
history_package: "Package",
history_action: "Action",
history_status: "Status",
no_subscription_history: "No subscription history yet."
},
analytics: {
ltv: "Lifetime Value (LTV)",
mrr: "Monthly Revenue (MRR)",
monthly_recurring: "Monthly recurring revenue",
outstanding: "Outstanding",
all_settled: "All invoices settled",
earned_credits: "Earned Credits",
contribution_xp: "XP earned from platform contributions",
invited_companies: "Invited Companies",
companies_joined: "Companies joined via your invite",
validated_garages: "Validated Garages",
garages_confirmed: "Garages successfully verified",
utilization: "Utilization",
vehicle_quota: "Vehicle Quota",
employee_quota: "Employee Quota",
utilized: "utilized",
marketplace_engagement: "Marketplace & Engagement",
avg_rating: "Average Rating",
reviews: "Reviews",
reviews_count: "reviews",
last_activity: "Last Activity",
last_login_mock: "2 hours ago",
services_30d: "Services Completed (30 days)"
},
employees: {
title: "Employees",
total_count: "{count} employees",
name: "Name",
email_phone: "Email / Phone",
role: "Role",
status: "Status",
actions: "Actions",
edit_role: "Edit",
remove: "Remove",
no_employees: "No employees assigned to this garage.",
edit_role_title: "Edit Employee Role",
editRoleTitle: "Edit Employee Role",
editRoleFor: "Change role for {name}",
cancel: "Cancel",
save: "Save Changes",
saveRole: "Save Role",
saving: "Saving...",
status_active: "Active",
status_inactive: "Inactive",
remove_title: "Remove Employee",
removeTitle: "Remove Employee",
remove_confirm: "Are you sure you want to remove \"{name}\" from this garage?",
removeConfirm: "Are you sure you want to remove \"{name}\" from this garage?",
remove_btn: "Remove",
removing: "Removing...",
add_employee: "Add Employee",
addTitle: "Add New Employee",
email: "Email Address",
emailPlaceholder: "Enter email address...",
roleMember: "Member",
roleManager: "Manager",
roleAdmin: "Admin",
roleOwner: "Owner",
add: "Add Employee",
adding: "Adding..."
},
fleet: {
title: "Fleet",
total_vehicles: "{count} vehicles total",
plate: "Plate",
brand: "Brand",
model: "Model",
brand_model: "Brand & Model",
year: "Year",
status: "Status",
vin: "VIN",
no_vehicles: "No vehicles assigned to this garage yet.",
no_fleet_access: "You don't have permission to view fleet data."
}
};
const locale_en_46json_0b63539c = {
@@ -5791,182 +6049,175 @@ const assets = {
"/logo.svg": {
"type": "image/svg+xml",
"etag": "\"1c93-1cv7aKDbuz99JYhQ43U9hm4KE3Q\"",
"mtime": "2026-06-25T19:21:59.599Z",
"mtime": "2026-06-26T13:42:13.161Z",
"size": 7315,
"path": "../public/logo.svg"
},
"/_nuxt/B2nIQl38.js": {
"/_nuxt/BPZZgRgP.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"ee-bmGBVwWZSnEQvM5uWwBnEYHRSbI\"",
"mtime": "2026-06-25T19:21:59.595Z",
"size": 238,
"path": "../public/_nuxt/B2nIQl38.js"
"etag": "\"161c-5AKpPFo1It/PkWBAwiOluJIMGMk\"",
"mtime": "2026-06-26T13:42:13.157Z",
"size": 5660,
"path": "../public/_nuxt/BPZZgRgP.js"
},
"/_nuxt/C3lSWcZz.js": {
"/_nuxt/BVodpYs3.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"4459-lQidT49p1kxB9w1vDNecOH7RI80\"",
"mtime": "2026-06-25T19:21:59.595Z",
"size": 17497,
"path": "../public/_nuxt/C3lSWcZz.js"
"etag": "\"36da-G+Qgfd70g43td9rTVIF/pyY4eS0\"",
"mtime": "2026-06-26T13:42:13.157Z",
"size": 14042,
"path": "../public/_nuxt/BVodpYs3.js"
},
"/_nuxt/BezjjCqI.js": {
"/_nuxt/CSkx_E93.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"3138-bV6RTlY/lnwf3amGqJs5QTfuybc\"",
"mtime": "2026-06-25T19:21:59.595Z",
"size": 12600,
"path": "../public/_nuxt/BezjjCqI.js"
"etag": "\"1e6-JmjTeAjAXnn3w5MDifCuMeASOnY\"",
"mtime": "2026-06-26T13:42:13.157Z",
"size": 486,
"path": "../public/_nuxt/CSkx_E93.js"
},
"/_nuxt/C8W4Ef6u.js": {
"/_nuxt/CfRvSqVD.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"d10-b3veiVg1KcwDvFZje+kFbRofh+c\"",
"mtime": "2026-06-25T19:21:59.595Z",
"size": 3344,
"path": "../public/_nuxt/C8W4Ef6u.js"
},
"/_nuxt/D5l8f-my.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"1fb8-oygMBGIM4cWbpfDgP8iH6j3aj7E\"",
"mtime": "2026-06-25T19:21:59.596Z",
"size": 8120,
"path": "../public/_nuxt/D5l8f-my.js"
},
"/_nuxt/CLBsD5qj.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"d45-05hm12oPZB69cRnr5Mnlj3ZaC68\"",
"mtime": "2026-06-25T19:21:59.595Z",
"etag": "\"d45-lFjcvRhUyo6B+JksxiFKtgvFASE\"",
"mtime": "2026-06-26T13:42:13.157Z",
"size": 3397,
"path": "../public/_nuxt/CLBsD5qj.js"
"path": "../public/_nuxt/CfRvSqVD.js"
},
"/_nuxt/DSOY2KzZ.js": {
"/_nuxt/DU5nqnNf.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"201-G/eh9BpHcgvEa8FKqQ57mrXGBqo\"",
"mtime": "2026-06-25T19:21:59.596Z",
"size": 513,
"path": "../public/_nuxt/DSOY2KzZ.js"
"etag": "\"ee-bIWIJa39cVGeS1l/OZGh01fUoiY\"",
"mtime": "2026-06-26T13:42:13.157Z",
"size": 238,
"path": "../public/_nuxt/DU5nqnNf.js"
},
"/_nuxt/DKEj_yij.js": {
"/_nuxt/CGTxeHv7.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"617-pBcdIfoofXib/TxCr3MyKJ6TXYA\"",
"mtime": "2026-06-25T19:21:59.596Z",
"size": 1559,
"path": "../public/_nuxt/DKEj_yij.js"
"etag": "\"3f79d-x1w34Lv9Rak1B4JxrhfvbxN+r18\"",
"mtime": "2026-06-26T13:42:13.157Z",
"size": 259997,
"path": "../public/_nuxt/CGTxeHv7.js"
},
"/_nuxt/DiHJCuau.js": {
"/_nuxt/D_jf_u12.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"26cf-CnvewaYlk4KZXb5oWMvAcgx0EAI\"",
"mtime": "2026-06-25T19:21:59.596Z",
"size": 9935,
"path": "../public/_nuxt/DiHJCuau.js"
"etag": "\"43e3-TUT2rRK17AMzPujtuYcRBz02c8I\"",
"mtime": "2026-06-26T13:42:13.157Z",
"size": 17379,
"path": "../public/_nuxt/D_jf_u12.js"
},
"/_nuxt/DlAUqK2U.js": {
"/_nuxt/Di7O2dT-.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"5b-eFCz/UrraTh721pgAl0VxBNR1es\"",
"mtime": "2026-06-25T19:21:59.596Z",
"size": 91,
"path": "../public/_nuxt/DlAUqK2U.js"
"etag": "\"13b7c-mOQdaU3+tI96+f0+TUCEA1yc8Bk\"",
"mtime": "2026-06-26T13:42:13.158Z",
"size": 80764,
"path": "../public/_nuxt/Di7O2dT-.js"
},
"/_nuxt/DyJFDhDL.js": {
"/_nuxt/DkxL14wO.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"3608-a8z/CQt3F9NGV/eF3HMwDkA7OVg\"",
"mtime": "2026-06-25T19:21:59.596Z",
"size": 13832,
"path": "../public/_nuxt/DyJFDhDL.js"
"etag": "\"cf5-lpb35wp4OGmmPIntXCyDC1S0Pfw\"",
"mtime": "2026-06-26T13:42:13.158Z",
"size": 3317,
"path": "../public/_nuxt/DkxL14wO.js"
},
"/_nuxt/HwQw-d2b.js": {
"/_nuxt/Dsqi8-Rp.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"247d-s5ALBQqlfJeyo0U0w4W54Vamxhc\"",
"mtime": "2026-06-25T19:21:59.596Z",
"size": 9341,
"path": "../public/_nuxt/HwQw-d2b.js"
},
"/_nuxt/JOVMCDE9.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"eb2-ZPUnimZNgRLJgehGbdAHDO0F3Cc\"",
"mtime": "2026-06-25T19:21:59.596Z",
"size": 3762,
"path": "../public/_nuxt/JOVMCDE9.js"
"etag": "\"1fb8-FQBvUsFrpmbbrtJ47/JBXBLqDbo\"",
"mtime": "2026-06-26T13:42:13.158Z",
"size": 8120,
"path": "../public/_nuxt/Dsqi8-Rp.js"
},
"/_nuxt/entry.KrfumMBl.css": {
"type": "text/css; charset=utf-8",
"etag": "\"19-60Qvpq/4eRs/sHLgNwhHUEqqm/o\"",
"mtime": "2026-06-25T19:21:59.596Z",
"mtime": "2026-06-26T13:42:13.158Z",
"size": 25,
"path": "../public/_nuxt/entry.KrfumMBl.css"
},
"/_nuxt/IlbAEw5Q.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"3119-DvF3DRaeIBBZNL19I72Z5WejRaU\"",
"mtime": "2026-06-26T13:42:13.158Z",
"size": 12569,
"path": "../public/_nuxt/IlbAEw5Q.js"
},
"/_nuxt/DlAUqK2U.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"5b-eFCz/UrraTh721pgAl0VxBNR1es\"",
"mtime": "2026-06-26T13:42:13.158Z",
"size": 91,
"path": "../public/_nuxt/DlAUqK2U.js"
},
"/_nuxt/error-404.DL_4WIao.css": {
"type": "text/css; charset=utf-8",
"etag": "\"dca-KnjyV0UbpsrliiJzZx69defY74k\"",
"mtime": "2026-06-25T19:21:59.597Z",
"mtime": "2026-06-26T13:42:13.158Z",
"size": 3530,
"path": "../public/_nuxt/error-404.DL_4WIao.css"
},
"/_nuxt/error-500.I1Dtv2V5.css": {
"type": "text/css; charset=utf-8",
"etag": "\"75a-vEGyJqldBVJrnMfcLsrGaHcxYl0\"",
"mtime": "2026-06-25T19:21:59.597Z",
"mtime": "2026-06-26T13:42:13.158Z",
"size": 1882,
"path": "../public/_nuxt/error-500.I1Dtv2V5.css"
},
"/_nuxt/CHWHIiGB.js": {
"/_nuxt/fLPEiaqv.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"3f07b-06dmf8DFw22T6UIMpyeT+t7VBvY\"",
"mtime": "2026-06-25T19:21:59.595Z",
"size": 258171,
"path": "../public/_nuxt/CHWHIiGB.js"
"etag": "\"eb2-X+i2jFJGGqFN1BeAjdglcPZjHuo\"",
"mtime": "2026-06-26T13:42:13.158Z",
"size": 3762,
"path": "../public/_nuxt/fLPEiaqv.js"
},
"/_nuxt/KwNF0Piy.js": {
"/_nuxt/p3BZMbac.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"2fe2-tOrtDTtc4U0iux12t4oRzSKA8qg\"",
"mtime": "2026-06-25T19:21:59.596Z",
"size": 12258,
"path": "../public/_nuxt/KwNF0Piy.js"
"etag": "\"4575-p55AI+7m/wNGE23e9QdfmncIZec\"",
"mtime": "2026-06-26T13:42:13.158Z",
"size": 17781,
"path": "../public/_nuxt/p3BZMbac.js"
},
"/_nuxt/iGXES_tj.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"8ef4-mupIOaLM/tTCgakL6nLU9k7D+Lg\"",
"mtime": "2026-06-26T13:42:13.158Z",
"size": 36596,
"path": "../public/_nuxt/iGXES_tj.js"
},
"/_nuxt/builds/latest.json": {
"type": "application/json",
"etag": "\"47-DH6q3zJLj6/QAgbu1aPivGQPJQ0\"",
"mtime": "2026-06-25T19:21:59.588Z",
"etag": "\"47-jVGLNWIulIpgxIrI9A0vzJBSyf0\"",
"mtime": "2026-06-26T13:42:13.150Z",
"size": 71,
"path": "../public/_nuxt/builds/latest.json"
},
"/_nuxt/builds/meta/9bec55ba-4ecf-449d-9a96-4f3ecc37770a.json": {
"type": "application/json",
"etag": "\"58-bnn7595g9HCWb/C9lhsu/VFXvus\"",
"mtime": "2026-06-26T13:42:13.147Z",
"size": 88,
"path": "../public/_nuxt/builds/meta/9bec55ba-4ecf-449d-9a96-4f3ecc37770a.json"
},
"/_nuxt/nwypRWOF.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"445-I8r0pF76iEwq2zZb9xp6nJYmQQI\"",
"mtime": "2026-06-26T13:42:13.158Z",
"size": 1093,
"path": "../public/_nuxt/nwypRWOF.js"
},
"/_nuxt/woz7WbxD.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"4009-DA5xQpdmZdcMcpSElp9cmmLQRaM\"",
"mtime": "2026-06-26T13:42:13.159Z",
"size": 16393,
"path": "../public/_nuxt/woz7WbxD.js"
},
"/_nuxt/builds/meta/dev.json": {
"type": "application/json",
"etag": "\"37-xpdQ7w/qFSiQCPvcwhaysTLg5Jg\"",
"mtime": "2026-06-25T19:21:59.584Z",
"etag": "\"37-7CFGAUHH2jpvVnqmAnnRkG5JQP8\"",
"mtime": "2026-06-26T13:42:13.147Z",
"size": 55,
"path": "../public/_nuxt/builds/meta/dev.json"
},
"/_nuxt/d4dk63Pu.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"8ef4-4YOVpL2+49qIW6hinlLQa5z75wI\"",
"mtime": "2026-06-25T19:21:59.596Z",
"size": 36596,
"path": "../public/_nuxt/d4dk63Pu.js"
},
"/_nuxt/j8avB3IT.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"445-fwEq/+H/j6twO0jkkDly9nXZzZc\"",
"mtime": "2026-06-25T19:21:59.597Z",
"size": 1093,
"path": "../public/_nuxt/j8avB3IT.js"
},
"/_nuxt/qc1uPXiA.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"160e-GS1XpzAG+GGpA3gL4C/b6gbI9WU\"",
"mtime": "2026-06-25T19:21:59.597Z",
"size": 5646,
"path": "../public/_nuxt/qc1uPXiA.js"
},
"/_nuxt/builds/meta/e6a51bf7-9efc-4598-aa2a-be03bd94fdda.json": {
"type": "application/json",
"etag": "\"58-Zeo7lgrFxWuEsTOv7B2zUzMVcxA\"",
"mtime": "2026-06-25T19:21:59.584Z",
"size": 88,
"path": "../public/_nuxt/builds/meta/e6a51bf7-9efc-4598-aa2a-be03bd94fdda.json"
},
"/sf_logo.png": {
"type": "image/png",
"etag": "\"4366a8-5u0A+e1MYT8zegFkKhhzxt5KbGs\"",
"mtime": "2026-06-25T19:21:59.599Z",
"mtime": "2026-06-26T13:42:13.161Z",
"size": 4417192,
"path": "../public/sf_logo.png"
}