jogosultsági szintek RBAC beállítva tesztelve
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"date": "2026-06-25T00:01:32.696Z",
|
||||
"date": "2026-06-25T19:22:04.389Z",
|
||||
"preset": "node-server",
|
||||
"framework": {
|
||||
"name": "nuxt",
|
||||
|
||||
1
frontend_admin/.output/public/_nuxt/B2nIQl38.js
Normal file
1
frontend_admin/.output/public/_nuxt/B2nIQl38.js
Normal file
@@ -0,0 +1 @@
|
||||
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
1
frontend_admin/.output/public/_nuxt/BezjjCqI.js
Normal file
1
frontend_admin/.output/public/_nuxt/BezjjCqI.js
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.output/public/_nuxt/C3lSWcZz.js
Normal file
1
frontend_admin/.output/public/_nuxt/C3lSWcZz.js
Normal file
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as h}from"./Da4aCGAe.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"./CqYPuxVf.js";import{u as N}from"./CWA6Xjbg.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};
|
||||
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};
|
||||
@@ -1 +0,0 @@
|
||||
import{_ as a}from"./Da4aCGAe.js";import{_ as i,u,o as c,c as l,a as e,t as r,b as d,w as p,d as f}from"./CqYPuxVf.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})])])])}}},v=i(y,[["__scopeId","data-v-1bd9e11a"]]);export{v as default};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
frontend_admin/.output/public/_nuxt/CLBsD5qj.js
Normal file
1
frontend_admin/.output/public/_nuxt/CLBsD5qj.js
Normal file
@@ -0,0 +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};
|
||||
@@ -1 +0,0 @@
|
||||
import{K as C,m as u,x as l,A as r}from"./CqYPuxVf.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 A(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}),y=r("access_token",{maxAge:3600*24*7,path:"/",sameSite:"lax",secure:!0});y.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 R(){const e=r("access_token");if(e.value){o.value=e.value;try{await i()}catch{f()}}v.value=!0}function _(){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:A,fetchUser:i,logout:f,init:R,clearError:_}});export{g as u};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
import{_ as s,u as a,o as i,c as u,a as e,t as o}from"./CqYPuxVf.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 n=t;return a({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}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,r)=>(i(),u("div",l,[r[0]||(r[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)])]))}},b=s(f,[["__scopeId","data-v-a01dd0ba"]]);export{b as default};
|
||||
File diff suppressed because one or more lines are too long
1
frontend_admin/.output/public/_nuxt/DKEj_yij.js
Normal file
1
frontend_admin/.output/public/_nuxt/DKEj_yij.js
Normal file
@@ -0,0 +1 @@
|
||||
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};
|
||||
File diff suppressed because one or more lines are too long
1
frontend_admin/.output/public/_nuxt/DSOY2KzZ.js
Normal file
1
frontend_admin/.output/public/_nuxt/DSOY2KzZ.js
Normal file
@@ -0,0 +1 @@
|
||||
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};
|
||||
@@ -1 +0,0 @@
|
||||
import{K as _,m as u,x as a}from"./CqYPuxVf.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};
|
||||
File diff suppressed because one or more lines are too long
1
frontend_admin/.output/public/_nuxt/DiHJCuau.js
Normal file
1
frontend_admin/.output/public/_nuxt/DiHJCuau.js
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.output/public/_nuxt/DlAUqK2U.js
Normal file
1
frontend_admin/.output/public/_nuxt/DlAUqK2U.js
Normal file
@@ -0,0 +1 @@
|
||||
const s=(t,r)=>{const o=t.__vccOpts||t;for(const[c,e]of r)o[c]=e;return o};export{s as _};
|
||||
@@ -1 +0,0 @@
|
||||
import{B as o,A as t,C as a}from"./CqYPuxVf.js";const s=o((e,i)=>{if(e.path==="/login")return;if(!t("access_token").value)return a("/login")});export{s as default};
|
||||
1
frontend_admin/.output/public/_nuxt/DyJFDhDL.js
Normal file
1
frontend_admin/.output/public/_nuxt/DyJFDhDL.js
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.output/public/_nuxt/HwQw-d2b.js
Normal file
1
frontend_admin/.output/public/_nuxt/HwQw-d2b.js
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.output/public/_nuxt/JOVMCDE9.js
Normal file
1
frontend_admin/.output/public/_nuxt/JOVMCDE9.js
Normal file
@@ -0,0 +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};
|
||||
1
frontend_admin/.output/public/_nuxt/KwNF0Piy.js
Normal file
1
frontend_admin/.output/public/_nuxt/KwNF0Piy.js
Normal file
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
{"id":"dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233","timestamp":1782345679846}
|
||||
{"id":"e6a51bf7-9efc-4598-aa2a-be03bd94fdda","timestamp":1782415310321}
|
||||
@@ -1 +0,0 @@
|
||||
{"id":"dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233","timestamp":1782345679846,"prerendered":[]}
|
||||
@@ -1 +1 @@
|
||||
{"id":"dev","timestamp":1782345680189,"prerendered":[]}
|
||||
{"id":"dev","timestamp":1782415310671,"prerendered":[]}
|
||||
@@ -0,0 +1 @@
|
||||
{"id":"e6a51bf7-9efc-4598-aa2a-be03bd94fdda","timestamp":1782415310321,"prerendered":[]}
|
||||
5
frontend_admin/.output/public/_nuxt/d4dk63Pu.js
Normal file
5
frontend_admin/.output/public/_nuxt/d4dk63Pu.js
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.output/public/_nuxt/j8avB3IT.js
Normal file
1
frontend_admin/.output/public/_nuxt/j8avB3IT.js
Normal file
@@ -0,0 +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};
|
||||
File diff suppressed because one or more lines are too long
1
frontend_admin/.output/public/_nuxt/qc1uPXiA.js
Normal file
1
frontend_admin/.output/public/_nuxt/qc1uPXiA.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,10 @@
|
||||
const _export_sfc = (sfc, props) => {
|
||||
const target = sfc.__vccOpts || sfc;
|
||||
for (const [key, val] of props) {
|
||||
target[key] = val;
|
||||
}
|
||||
return target;
|
||||
};
|
||||
|
||||
export { _export_sfc as _ };
|
||||
//# sourceMappingURL=_plugin-vue_export-helper-1tPrXgE0.mjs.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"_plugin-vue_export-helper-1tPrXgE0.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/_plugin-vue_export-helper-1tPrXgE0.js"],"names":[],"mappings":"AAAA,MAAM,WAAA,GAAc,CAAC,GAAA,EAAK,KAAA,KAAU;AAClC,EAAA,MAAM,MAAA,GAAS,IAAI,SAAA,IAAa,GAAA;AAChC,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,GAAG,CAAA,IAAK,KAAA,EAAO;AAC9B,IAAA,MAAA,CAAO,GAAG,CAAA,GAAI,GAAA;AAAA,EAChB;AACA,EAAA,OAAO,MAAA;AACT;;;;"}
|
||||
56
frontend_admin/.output/server/chunks/build/auth-9ekP0oPk.mjs
Normal file
56
frontend_admin/.output/server/chunks/build/auth-9ekP0oPk.mjs
Normal file
@@ -0,0 +1,56 @@
|
||||
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 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'vue-router';
|
||||
import 'node:url';
|
||||
import 'vue';
|
||||
import 'pinia';
|
||||
import 'vue/server-renderer';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/utils';
|
||||
import 'unhead/plugins';
|
||||
|
||||
const auth = defineNuxtRouteMiddleware(async (to, from) => {
|
||||
let __temp, __restore;
|
||||
if (to.path === "/login") {
|
||||
return;
|
||||
}
|
||||
const tokenCookie = useCookie("access_token");
|
||||
if (!tokenCookie.value) {
|
||||
return navigateTo("/login");
|
||||
}
|
||||
const authStore = useAuthStore();
|
||||
if (!authStore.user) {
|
||||
try {
|
||||
;
|
||||
[__temp, __restore] = executeAsync(() => authStore.fetchUser()), await __temp, __restore();
|
||||
;
|
||||
} catch {
|
||||
authStore.logout();
|
||||
return navigateTo("/login");
|
||||
}
|
||||
}
|
||||
if (!authStore.user) {
|
||||
authStore.logout();
|
||||
return navigateTo("/login");
|
||||
}
|
||||
const allowedRoles = ["SUPERADMIN", "ADMIN", "MODERATOR", "SALES_REP", "SERVICE_MGR"];
|
||||
const userRole = (authStore.user.role || "").toUpperCase();
|
||||
if (!allowedRoles.includes(userRole)) {
|
||||
authStore.logout();
|
||||
return navigateTo("/login");
|
||||
}
|
||||
});
|
||||
|
||||
export { auth as default };
|
||||
//# sourceMappingURL=auth-9ekP0oPk.mjs.map
|
||||
@@ -0,0 +1 @@
|
||||
{"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;;;;"}
|
||||
@@ -1,33 +0,0 @@
|
||||
import { d as defineNuxtRouteMiddleware, b as useCookie, n as navigateTo } from './server.mjs';
|
||||
import 'vue';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'vue-router';
|
||||
import 'node:url';
|
||||
import 'pinia';
|
||||
import 'vue/server-renderer';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/utils';
|
||||
import 'unhead/plugins';
|
||||
|
||||
const auth = defineNuxtRouteMiddleware((to, from) => {
|
||||
if (to.path === "/login") {
|
||||
return;
|
||||
}
|
||||
const tokenCookie = useCookie("access_token");
|
||||
if (!tokenCookie.value) {
|
||||
return navigateTo("/login");
|
||||
}
|
||||
});
|
||||
|
||||
export { auth as default };
|
||||
//# sourceMappingURL=auth-BgwR5zMA.mjs.map
|
||||
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"auth-BgwR5zMA.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/auth-BgwR5zMA.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,IAAA,GAAO,yBAAA,CAA0B,CAAC,EAAA,EAAI,IAAA,KAAS;AACnD,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;AACF,CAAC;;;;"}
|
||||
@@ -1,6 +1,6 @@
|
||||
import { defineStore } from 'pinia';
|
||||
import { ref, computed } from 'vue';
|
||||
import { b as useCookie } from './server.mjs';
|
||||
import { c as useCookie } from './server.mjs';
|
||||
|
||||
const useAuthStore = defineStore("auth", () => {
|
||||
const user = ref(null);
|
||||
@@ -122,4 +122,4 @@ const useAuthStore = defineStore("auth", () => {
|
||||
});
|
||||
|
||||
export { useAuthStore as u };
|
||||
//# sourceMappingURL=auth-mCjBoLcA.mjs.map
|
||||
//# sourceMappingURL=auth-RwMj9LdV.mjs.map
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"auth-mCjBoLcA.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/auth-mCjBoLcA.js"],"names":[],"mappings":";;;;AAGA,MAAM,YAAA,GAAe,WAAA,CAAY,MAAA,EAAQ,MAAM;AAC7C,EAAA,MAAM,IAAA,GAAO,IAAI,IAAI,CAAA;AACrB,EAAA,MAAM,KAAA,GAAQ,IAAI,IAAI,CAAA;AACtB,EAAA,MAAM,SAAA,GAAY,IAAI,KAAK,CAAA;AAC3B,EAAA,MAAM,KAAA,GAAQ,IAAI,IAAI,CAAA;AACtB,EAAA,MAAM,aAAA,GAAgB,IAAI,KAAK,CAAA;AAC/B,EAAA,MAAM,eAAA,GAAkB,QAAA,CAAS,MAAM,CAAC,CAAC,MAAM,KAAA,IAAS,CAAC,CAAC,IAAA,CAAK,KAAK,CAAA;AACpE,EAAA,MAAM,OAAA,GAAU,SAAS,MAAM;AAVjC,IAAA,IAAA,EAAA;AAWI,IAAA,MAAM,IAAA,GAAA,CAAO,EAAA,GAAA,IAAA,CAAK,KAAA,KAAL,IAAA,GAAA,MAAA,GAAA,EAAA,CAAY,IAAA;AACzB,IAAA,IAAI,CAAC,MAAM,OAAO,KAAA;AAClB,IAAA,MAAM,aAAa,CAAC,YAAA,EAAc,OAAA,EAAS,WAAA,EAAa,aAAa,aAAa,CAAA;AAClF,IAAA,OAAO,UAAA,CAAW,QAAA,CAAS,IAAA,CAAK,WAAA,EAAa,CAAA;AAAA,EAC/C,CAAC,CAAA;AACD,EAAA,MAAM,QAAA,GAAW,SAAS,MAAM;AAC9B,IAAA,IAAI,CAAC,IAAA,CAAK,KAAA,EAAO,OAAO,EAAA;AACxB,IAAA,MAAM,EAAE,UAAA,EAAY,SAAA,EAAU,GAAI,IAAA,CAAK,KAAA;AACvC,IAAA,IAAI,cAAc,SAAA,EAAW,OAAO,CAAA,EAAG,UAAU,IAAI,SAAS,CAAA,CAAA;AAC9D,IAAA,OAAO,UAAA,IAAc,SAAA,IAAa,IAAA,CAAK,KAAA,CAAM,KAAA;AAAA,EAC/C,CAAC,CAAA;AACD,EAAA,MAAM,SAAA,GAAY,SAAS,MAAG;AAtBhC,IAAA,IAAA,EAAA,EAAA,EAAA;AAsBmC,IAAA,OAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAA,CAAK,KAAA,KAAL,IAAA,GAAA,MAAA,GAAA,EAAA,CAAY,KAAA,KAAZ,IAAA,GAAA,EAAA,GAAqB,EAAA;AAAA,EAAA,CAAE,CAAA;AACxD,EAAA,MAAM,QAAA,GAAW,SAAS,MAAG;AAvB/B,IAAA,IAAA,EAAA,EAAA,EAAA;AAuBkC,IAAA,OAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAA,CAAK,KAAA,KAAL,IAAA,GAAA,MAAA,GAAA,EAAA,CAAY,IAAA,KAAZ,IAAA,GAAA,EAAA,GAAoB,OAAA;AAAA,EAAA,CAAO,CAAA;AAC3D,EAAA,eAAe,KAAA,CAAM,OAAO,QAAA,EAAU;AAxBxC,IAAA,IAAA,EAAA;AAyBI,IAAA,SAAA,CAAU,KAAA,GAAQ,IAAA;AAClB,IAAA,KAAA,CAAM,KAAA,GAAQ,IAAA;AACd,IAAA,IAAI;AACF,MAAA,MAAM,IAAA,GAAO,IAAI,eAAA,EAAgB;AACjC,MAAA,IAAA,CAAK,MAAA,CAAO,YAAY,KAAK,CAAA;AAC7B,MAAA,IAAA,CAAK,MAAA,CAAO,YAAY,QAAQ,CAAA;AAChC,MAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,oBAAA,EAAsB;AAAA,QAC7C,MAAA,EAAQ,MAAA;AAAA,QACR,OAAA,EAAS,EAAE,cAAA,EAAgB,mCAAA,EAAoC;AAAA,QAC/D;AAAA,OACD,CAAA;AACD,MAAA,MAAM,WAAA,GAAc,UAAU,cAAA,EAAgB;AAAA,QAC5C,MAAA,EAAQ,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK,CAAA;AAAA;AAAA,QAEvB,IAAA,EAAM,GAAA;AAAA,QACN,QAAA,EAAU,KAAA;AAAA,QACV,MAAA,EAAQ;AAAA,OACT,CAAA;AACD,MAAA,WAAA,CAAY,QAAQ,GAAA,CAAI,YAAA;AACxB,MAAA,KAAA,CAAM,QAAQ,GAAA,CAAI,YAAA;AAClB,MAAA,MAAM,SAAA,EAAU;AAAA,IAClB,SAAS,GAAA,EAAK;AACZ,MAAA,KAAA,CAAM,UAAQ,EAAA,GAAA,GAAA,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAK,IAAA,KAAL,IAAA,GAAA,MAAA,GAAA,EAAA,CAAW,MAAA,MAAU,2BAAK,OAAA,CAAA,IAAW,cAAA;AACnD,MAAA,MAAM,GAAA;AAAA,IACR,CAAA,SAAE;AACA,MAAA,SAAA,CAAU,KAAA,GAAQ,KAAA;AAAA,IACpB;AAAA,EACF;AACA,EAAA,eAAe,SAAA,GAAY;AArD7B,IAAA,IAAA,EAAA;AAsDI,IAAA,MAAM,WAAA,GAAc,UAAU,cAAc,CAAA;AAC5C,IAAA,MAAM,YAAA,GAAe,WAAA,CAAY,KAAA,IAAS,KAAA,CAAM,KAAA;AAChD,IAAA,IAAI,CAAC,YAAA,EAAc;AACnB,IAAA,IAAI;AACF,MAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,iBAAA,EAAmB;AAAA,QAC1C,OAAA,EAAS,EAAE,aAAA,EAAe,CAAA,OAAA,EAAU,YAAY,CAAA,CAAA;AAAG,OACpD,CAAA;AACD,MAAA,IAAA,CAAK,KAAA,GAAQ,GAAA;AAAA,IACf,SAAS,GAAA,EAAK;AACZ,MAAA,IAAA,CAAA,CAAI,EAAA,GAAA,GAAA,IAAA,IAAA,GAAA,MAAA,GAAA,GAAA,CAAK,QAAA,KAAL,IAAA,GAAA,MAAA,GAAA,EAAA,CAAe,MAAA,MAAW,GAAA,EAAK;AACjC,QAAA,MAAA,EAAO;AAAA,MACT;AACA,MAAA,MAAM,GAAA;AAAA,IACR;AAAA,EACF;AACA,EAAA,SAAS,MAAA,GAAS;AAChB,IAAA,KAAA,CAAM,KAAA,GAAQ,IAAA;AACd,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAA;AACb,IAAA,KAAA,CAAM,KAAA,GAAQ,IAAA;AACd,IAAA,MAAM,WAAA,GAAc,UAAU,cAAc,CAAA;AAC5C,IAAA,WAAA,CAAY,KAAA,GAAQ,IAAA;AAAA,EACtB;AACA,EAAA,eAAe,IAAA,GAAO;AACpB,IAAA,MAAM,WAAA,GAAc,UAAU,cAAc,CAAA;AAC5C,IAAA,IAAI,YAAY,KAAA,EAAO;AACrB,MAAA,KAAA,CAAM,QAAQ,WAAA,CAAY,KAAA;AAC1B,MAAA,IAAI;AACF,QAAA,MAAM,SAAA,EAAU;AAAA,MAClB,CAAA,CAAA,MAAQ;AACN,QAAA,MAAA,EAAO;AAAA,MACT;AAAA,IACF;AACA,IAAA,aAAA,CAAc,KAAA,GAAQ,IAAA;AAAA,EACxB;AACA,EAAA,SAAS,UAAA,GAAa;AACpB,IAAA,KAAA,CAAM,KAAA,GAAQ,IAAA;AAAA,EAChB;AACA,EAAA,OAAO;AAAA;AAAA,IAEL,IAAA;AAAA,IACA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,aAAA;AAAA;AAAA,IAEA,eAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA;AAAA,IAEA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GACF;AACF,CAAC;;;;"}
|
||||
{"version":3,"file":"auth-RwMj9LdV.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/auth-RwMj9LdV.js"],"names":[],"mappings":"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"}
|
||||
@@ -0,0 +1,20 @@
|
||||
import { useSSRContext, mergeProps } from 'vue';
|
||||
import { ssrRenderAttrs, ssrRenderSlot } from 'vue/server-renderer';
|
||||
import { _ as _export_sfc } from './_plugin-vue_export-helper-1tPrXgE0.mjs';
|
||||
|
||||
const _sfc_main = {};
|
||||
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
|
||||
_push(`<div${ssrRenderAttrs(mergeProps({ class: "bg-slate-900 min-h-screen" }, _attrs))}>`);
|
||||
ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
|
||||
_push(`</div>`);
|
||||
}
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("layouts/blank.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const blank = /* @__PURE__ */ _export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]);
|
||||
|
||||
export { blank as default };
|
||||
//# sourceMappingURL=blank-DWT4RB69.mjs.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"blank-DWT4RB69.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/blank-DWT4RB69.js"],"names":[],"mappings":";;;;AAGA,MAAM,YAAY,EAAC;AACnB,SAAS,cAAA,CAAe,IAAA,EAAM,KAAA,EAAO,OAAA,EAAS,MAAA,EAAQ;AACpD,EAAA,KAAA,CAAM,CAAA,IAAA,EAAO,cAAA,CAAe,UAAA,CAAW,EAAE,KAAA,EAAO,6BAA4B,EAAG,MAAM,CAAC,CAAC,CAAA,CAAA,CAAG,CAAA;AAC1F,EAAA,aAAA,CAAc,KAAK,MAAA,EAAQ,SAAA,EAAW,EAAC,EAAG,IAAA,EAAM,OAAO,OAAO,CAAA;AAC9D,EAAA,KAAA,CAAM,CAAA,MAAA,CAAQ,CAAA;AAChB;AACA,MAAM,aAAa,SAAA,CAAU,KAAA;AAC7B,SAAA,CAAU,KAAA,GAAQ,CAAC,KAAA,EAAO,GAAA,KAAQ;AAChC,EAAA,MAAM,aAAa,aAAA,EAAc;AACjC,EAAA,CAAC,UAAA,CAAW,YAAY,UAAA,CAAW,OAAA,uBAA8B,GAAA,EAAI,CAAA,EAAI,IAAI,mBAAmB,CAAA;AAChG,EAAA,OAAO,UAAA,GAAa,UAAA,CAAW,KAAA,EAAO,GAAG,CAAA,GAAI,MAAA;AAC/C,CAAA;AACA,MAAM,KAAA,+BAAoC,SAAA,EAAW,CAAC,CAAC,WAAA,EAAa,cAAc,CAAC,CAAC;;;;"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,11 +1,11 @@
|
||||
import { _ as __nuxt_component_0 } from './nuxt-link-Cp-CAJwR.mjs';
|
||||
import { defineComponent, computed, ref, mergeProps, withCtx, createVNode, toDisplayString, openBlock, createBlock, createTextVNode, useSSRContext } from 'vue';
|
||||
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, c as useI18n } from './server.mjs';
|
||||
import { u as useAuthStore } from './auth-mCjBoLcA.mjs';
|
||||
import { a as useRouter, b as useI18n } from './server.mjs';
|
||||
import { u as useAuthStore } from './auth-RwMj9LdV.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
@@ -39,10 +39,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
const dropdownOpen = ref(false);
|
||||
ref(null);
|
||||
const expandedGroups = ref(/* @__PURE__ */ new Set(["K\xF6zpont"]));
|
||||
const userEmail = computed(() => authStore.userEmail || "admin@servicefinder.hu");
|
||||
const userEmail = computed(() => authStore.userEmail || "Ismeretlen Felhaszn\xE1l\xF3");
|
||||
const userInitials = computed(() => {
|
||||
const email = authStore.userEmail;
|
||||
if (!email) return "AD";
|
||||
if (!email) return "??";
|
||||
return email.split("@")[0].split(".").map((s) => s[0]).join("").toUpperCase().slice(0, 2);
|
||||
});
|
||||
const menuGroups = [
|
||||
@@ -243,7 +243,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
});
|
||||
_push(`<!--]--></div><div class="relative"><button class="flex items-center gap-2 p-1.5 rounded-lg hover:bg-slate-700 transition"><div class="w-8 h-8 rounded-full bg-indigo-600 flex items-center justify-center text-sm font-bold text-white">${ssrInterpolate(userInitials.value)}</div><span class="hidden sm:block text-sm text-slate-300">${ssrInterpolate(userEmail.value)}</span><svg class="w-4 h-4 text-slate-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></button>`);
|
||||
if (dropdownOpen.value) {
|
||||
_push(`<div class="absolute right-0 mt-2 w-56 bg-slate-800 border border-slate-700 rounded-xl shadow-xl py-1 z-50"><div class="px-4 py-3 border-b border-slate-700"><p class="text-sm font-medium text-white">${ssrInterpolate(userEmail.value)}</p><p class="text-xs text-slate-400 mt-0.5">Administrator</p></div>`);
|
||||
_push(`<div class="absolute right-0 mt-2 w-56 bg-slate-800 border border-slate-700 rounded-xl shadow-xl py-1 z-50"><div class="px-4 py-3 border-b border-slate-700"><p class="text-sm font-medium text-white">${ssrInterpolate(userEmail.value)}</p><p class="text-xs text-slate-400 mt-0.5">${ssrInterpolate(unref(authStore).userRole === "SUPERADMIN" ? "Super Administrator" : unref(authStore).userRole || "Administrator")}</p></div>`);
|
||||
_push(ssrRenderComponent(_component_NuxtLink, {
|
||||
to: "/profile",
|
||||
class: "flex items-center gap-3 px-4 py-2.5 text-sm text-slate-300 hover:bg-slate-700 hover:text-white transition",
|
||||
@@ -291,4 +291,4 @@ _sfc_main.setup = (props, ctx) => {
|
||||
};
|
||||
|
||||
export { _sfc_main as default };
|
||||
//# sourceMappingURL=default-B9tlXlqE.mjs.map
|
||||
//# sourceMappingURL=default-DOjdWE8b.mjs.map
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,54 +1,50 @@
|
||||
const resource = {
|
||||
"permissions": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Permissions Management" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Permissions Management \u2014 Role-based access control & subscription feature flags" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading permissions data..." } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Permission Matrix \u2014 Role-based access control" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading permissions..." } },
|
||||
"error_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to load permissions" } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Retry" } },
|
||||
"save_changes": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Save Changes" } },
|
||||
"discard": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Discard" } },
|
||||
"modified_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "count" }, { "t": 3, "v": " modification(s)" }] } },
|
||||
"current_tier": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Current Tier" } },
|
||||
"modified_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "count" }, { "t": 3, "v": " changes" }] } },
|
||||
"domain_filter": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Domain Filter (Rows)" } },
|
||||
"role_filter": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Role Filter (Columns)" } },
|
||||
"select_all": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Select All" } },
|
||||
"deselect_all": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Deselect All" } },
|
||||
"all_domains": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "All" } },
|
||||
"permission": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Permission" } },
|
||||
"no_permissions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No permissions in this domain." } },
|
||||
"current_tier": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Current Package" } },
|
||||
"expires": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Expires" } },
|
||||
"superadmin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Superadmin" } },
|
||||
"superadmin_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Full system access \u2014 user management, billing, robots, and system configuration." } },
|
||||
"superadmin_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Full system access \u2014 users, billing, robots and system configuration." } },
|
||||
"garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garages" } },
|
||||
"garages_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garage-level access \u2014 vehicle management, service booking, customer data." } },
|
||||
"feature_flags": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Feature Flags" } },
|
||||
"feature_flags_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Subscription feature toggles \u2014 resolved from your current tier (" }, { "t": 4, "k": "tier" }, { "t": 3, "v": ")." }] } },
|
||||
"feature_flags_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Subscription features \u2014 based on your current plan (" }, { "t": 4, "k": "tier" }, { "t": 3, "v": ")." }] } },
|
||||
"rbac_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "RBAC Permission Matrix" } },
|
||||
"rbac_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Role-based access control \u2014 which roles can perform which admin actions." } },
|
||||
"action": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Action" } },
|
||||
"perms": {
|
||||
"user_mgmt": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "User Management" } },
|
||||
"billing_admin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Billing Administration" } },
|
||||
"robot_config": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Robot Configuration" } },
|
||||
"system_logs": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "System Logs Access" } },
|
||||
"api_keys": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "API Key Management" } },
|
||||
"vehicle_crud": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Vehicle CRUD" } },
|
||||
"service_booking": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Service Booking" } },
|
||||
"customer_view": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Customer Data View" } },
|
||||
"report_export": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Report Export" } },
|
||||
"bulk_import": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Bulk Import" } }
|
||||
}
|
||||
"action": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Action" } }
|
||||
},
|
||||
"packages": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Package Management" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Manage subscription packages and feature flags \u2014 Free, Premium, Enterprise" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Manage subscription packages and features \u2014 Free, Premium, Enterprise" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading packages..." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Retry" } },
|
||||
"create_new": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Create Package" } },
|
||||
"create_new": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "New Package" } },
|
||||
"no_packages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No packages yet" } },
|
||||
"no_packages_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Create your first subscription package to get started." } },
|
||||
"create_first": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Create First Package" } },
|
||||
"popular": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Popular" } },
|
||||
"fallback_badge": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Fallback" } },
|
||||
"trial_badge": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Trial" } },
|
||||
"month": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "month" } },
|
||||
"month": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "mo" } },
|
||||
"feature_flags": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Available Features" } },
|
||||
"edit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Edit" } },
|
||||
"duplicate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Duplicate" } },
|
||||
"delete": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Delete" } },
|
||||
"set_as_default": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Set as default" } },
|
||||
"set_as_default": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Set as Default" } },
|
||||
"set_as_default_success": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "set as default package!" } },
|
||||
"edit_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Edit Package" } },
|
||||
"create_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Create Package" } },
|
||||
@@ -63,7 +59,7 @@ const resource = {
|
||||
"max_vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Max Vehicles" } },
|
||||
"max_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Max Garages" } },
|
||||
"monthly_credits": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Monthly Credits" } },
|
||||
"tier_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tier Level" } },
|
||||
"tier_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Level" } },
|
||||
"form_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "System Name" } },
|
||||
"form_name_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "e.g. premium_2024" } },
|
||||
"form_display_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Display Name" } },
|
||||
@@ -72,19 +68,31 @@ const resource = {
|
||||
"type_private": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Private" } },
|
||||
"type_corporate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Corporate" } },
|
||||
"form_tier_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tier Level" } },
|
||||
"form_tier_level_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Higher number = more features & higher rank" } },
|
||||
"form_tier_level_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Higher number = more features and higher rank" } },
|
||||
"form_monthly_price": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Monthly Price" } },
|
||||
"form_yearly_price": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Yearly Price" } },
|
||||
"form_currency": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Currency" } },
|
||||
"form_subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Subtitle / Description" } },
|
||||
"form_subtitle_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "e.g. Best for small businesses" } },
|
||||
"form_subtitle_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "e.g. Ideal for small businesses" } },
|
||||
"form_badge": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Badge Text" } },
|
||||
"form_badge_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "e.g. Most Popular" } },
|
||||
"form_is_custom": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Custom Package (not publicly listed)" } },
|
||||
"form_is_custom": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Custom Package (not public)" } },
|
||||
"singleton_rules": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Singleton Rules" } },
|
||||
"form_is_default_fallback": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Default Fallback Package \u2014 assigned when a subscription expires" } },
|
||||
"form_is_default_fallback": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Default Fallback Package \u2014 expired subscriptions fall back to this" } },
|
||||
"form_trial_days": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Trial Days on Signup" } },
|
||||
"form_trial_days_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "New organizations get this many free days. Only one package can have trial > 0." } }
|
||||
"form_trial_days_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "New organizations get this many free days. Only one package can have > 0." } },
|
||||
"per_region_pricing": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Per-Region Pricing" } },
|
||||
"smart_calculator": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Smart Price Calculator" } },
|
||||
"calc_net_price": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Net Price" } },
|
||||
"calc_vat_rate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "VAT Rate" } },
|
||||
"calc_currency": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Currency" } },
|
||||
"calc_net": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Net" } },
|
||||
"calc_vat": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "VAT" } },
|
||||
"calc_gross": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gross" } },
|
||||
"calc_apply": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Apply to selected region" } },
|
||||
"add_zone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Add New Zone" } },
|
||||
"add_zone_select": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Select country code..." } },
|
||||
"add_zone_already_exists": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "This region already exists in the package pricing!" } }
|
||||
},
|
||||
"garages": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garages CRM" } },
|
||||
@@ -99,17 +107,63 @@ const resource = {
|
||||
"email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Email" } },
|
||||
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Status" } },
|
||||
"current_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Current Package" } },
|
||||
"expiration_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Expiration Date" } },
|
||||
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Actions" } },
|
||||
"active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Active" } },
|
||||
"inactive": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Inactive" } },
|
||||
"suspended": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Suspended" } },
|
||||
"change_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Change Package" } },
|
||||
"manage_subscription": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Manage Subscription" } },
|
||||
"view": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "View" } },
|
||||
"activate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Activate" } },
|
||||
"deactivate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Deactivate" } },
|
||||
"no_results": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No garages match your search." } }
|
||||
"no_results": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No garages match your search." } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading garages..." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Retry" } },
|
||||
"members": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "members" } },
|
||||
"free_fallback": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Free / Fallback" } },
|
||||
"expires": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Expires" } },
|
||||
"select_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Select Package" } },
|
||||
"select_package_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Select a subscription package..." } },
|
||||
"custom_expiration": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Custom Expiration Date" } },
|
||||
"optional": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "optional" } },
|
||||
"custom_expiration_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Leave empty for default duration (e.g. 30 days). For 2-5 year B2B deals, set a custom date!" } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cancel" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Save" } },
|
||||
"saving": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Saving..." } },
|
||||
"subscription_updated": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "subscription updated successfully!" } },
|
||||
"view_details": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Details" } },
|
||||
"indefinite": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Indefinite" } },
|
||||
"details": {
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading garage details..." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Retry" } },
|
||||
"back": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Back to garages" } },
|
||||
"company_info": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Company Info" } },
|
||||
"company_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Company Name" } },
|
||||
"display_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Display Name" } },
|
||||
"org_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Organization Type" } },
|
||||
"tax_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tax Number" } },
|
||||
"reg_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Registration Number" } },
|
||||
"created_at": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Created At" } },
|
||||
"address": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Address" } },
|
||||
"subscription_info": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Subscription Status" } },
|
||||
"tier_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Package" } },
|
||||
"tier_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Level" } },
|
||||
"level_n": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Level " }, { "t": 4, "k": "n" }] } },
|
||||
"expires_at": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Expires" } },
|
||||
"asset_limit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Vehicle Limit" } },
|
||||
"vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "vehicles" } },
|
||||
"no_subscription": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No active subscription" } },
|
||||
"contact_info": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Contact Info" } },
|
||||
"contact_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Contact Name" } },
|
||||
"contact_role": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Role" } },
|
||||
"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..." } }
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export { resource as default };
|
||||
//# sourceMappingURL=en-BScPj1A-.mjs.map
|
||||
//# sourceMappingURL=en-WIj2pBfh.mjs.map
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"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
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"entry-styles.w3HlJ-9O.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/entry-styles-1.mjs-DTfYoqFp.js","../../../../.nuxt/dist/server/_nuxt/entry-styles-2.mjs-CM2W3GZ1.js","../../../../.nuxt/dist/server/_nuxt/entry-styles.w3HlJ-9O.mjs"],"names":["style_0","style_1","style_2"],"mappings":";;AAAA,MAAM,QAAA,GAAW,CAAA,w9xBAAA,CAAA;;ACAjB,MAAM,IAAA,GAAO,CAAA,mr1BAAA,CAAA;;ACGb,4BAAe;AACf,EAAEA,QAAO;AACT,EAAEC,IAAO;AACT,EAAEC;AACF;;;;"}
|
||||
@@ -1,7 +1,8 @@
|
||||
import { _ as __nuxt_component_0 } from './nuxt-link-Cp-CAJwR.mjs';
|
||||
import { mergeProps, withCtx, createTextVNode, toDisplayString, useSSRContext } from 'vue';
|
||||
import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent } from 'vue/server-renderer';
|
||||
import { _ as _export_sfc, u as useHead } from './server.mjs';
|
||||
import { _ as _export_sfc } from './_plugin-vue_export-helper-1tPrXgE0.mjs';
|
||||
import { u as useHead } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
@@ -95,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-C_elhLNc.mjs.map
|
||||
//# sourceMappingURL=error-404-Bkg5lg69.mjs.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"error-404-Bkg5lg69.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/error-404-Bkg5lg69.js"],"names":[],"mappings":"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"}
|
||||
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"error-404-C_elhLNc.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/error-404-C_elhLNc.js"],"names":[],"mappings":"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"}
|
||||
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"error-500-C6MJq2Cl.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/error-500-C6MJq2Cl.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,SAAA,GAAY;AAAA,EAChB,MAAA,EAAQ,WAAA;AAAA,EACR,iBAAA,EAAmB,IAAA;AAAA,EACnB,KAAA,EAAO;AAAA,IACL,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,UAAA,EAAY;AAAA,MACV,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,WAAA,EAAa;AAAA,MACX,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA,MAAM,OAAA,EAAS;AACb,IAAA,MAAM,KAAA,GAAQ,OAAA;AACd,IAAA,OAAA,CAAQ;AAAA,MACN,KAAA,EAAO,GAAG,KAAA,CAAM,MAAM,MAAM,KAAA,CAAM,UAAU,CAAA,GAAA,EAAM,KAAA,CAAM,OAAO,CAAA,CAAA;AAAA,MAC/D,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,SAAA,EAAW,CAAA,+rBAAA;AAAA;AACb,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL;AAAA,UACE,SAAA,EAAW,CAAA,yjDAAA;AAAA;AACb;AACF,KACD,CAAA;AACD,IAAA,OAAO,CAAC,IAAA,EAAM,KAAA,EAAO,OAAA,EAAS,MAAA,KAAW;AACvC,MAAA,KAAA,CAAM,CAAA,IAAA,EAAO,eAAe,UAAA,CAAW,EAAE,OAAO,gIAAA,EAAiI,EAAG,MAAM,CAAC,CAAC,gOAAgO,cAAA,CAAe,OAAA,CAAQ,MAAM,CAAC,CAAA,gGAAA,EAAmG,eAAe,OAAA,CAAQ,WAAW,CAAC,CAAA,gBAAA,CAAkB,CAAA;AAAA,IACplB,CAAA;AAAA,EACF;AACF,CAAA;AACA,MAAM,aAAa,SAAA,CAAU,KAAA;AAC7B,SAAA,CAAU,KAAA,GAAQ,CAAC,KAAA,EAAO,GAAA,KAAQ;AAChC,EAAA,MAAM,aAAa,aAAA,EAAc;AACjC,EAAA,CAAC,UAAA,CAAW,YAAY,UAAA,CAAW,OAAA,uBAA8B,GAAA,EAAI,CAAA,EAAI,IAAI,qDAAqD,CAAA;AAClI,EAAA,OAAO,UAAA,GAAa,UAAA,CAAW,KAAA,EAAO,GAAG,CAAA,GAAI,MAAA;AAC/C,CAAA;AACA,MAAM,QAAA,+BAAuC,SAAA,EAAW,CAAC,CAAC,WAAA,EAAa,iBAAiB,CAAC,CAAC;;;;"}
|
||||
@@ -1,6 +1,7 @@
|
||||
import { mergeProps, useSSRContext } from 'vue';
|
||||
import { ssrRenderAttrs, ssrInterpolate } from 'vue/server-renderer';
|
||||
import { _ as _export_sfc, u as useHead } from './server.mjs';
|
||||
import { _ as _export_sfc } from './_plugin-vue_export-helper-1tPrXgE0.mjs';
|
||||
import { u as useHead } from './server.mjs';
|
||||
import '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
@@ -73,4 +74,4 @@ _sfc_main.setup = (props, ctx) => {
|
||||
const error500 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a01dd0ba"]]);
|
||||
|
||||
export { error500 as default };
|
||||
//# sourceMappingURL=error-500-C6MJq2Cl.mjs.map
|
||||
//# sourceMappingURL=error-500-DfEH3Z64.mjs.map
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"error-500-DfEH3Z64.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/error-500-DfEH3Z64.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAmBA,MAAM,SAAA,GAAY;AAAA,EAChB,MAAA,EAAQ,WAAA;AAAA,EACR,iBAAA,EAAmB,IAAA;AAAA,EACnB,KAAA,EAAO;AAAA,IACL,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,UAAA,EAAY;AAAA,MACV,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA,KACX;AAAA,IACA,WAAA,EAAa;AAAA,MACX,IAAA,EAAM,MAAA;AAAA,MACN,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA,MAAM,OAAA,EAAS;AACb,IAAA,MAAM,KAAA,GAAQ,OAAA;AACd,IAAA,OAAA,CAAQ;AAAA,MACN,KAAA,EAAO,GAAG,KAAA,CAAM,MAAM,MAAM,KAAA,CAAM,UAAU,CAAA,GAAA,EAAM,KAAA,CAAM,OAAO,CAAA,CAAA;AAAA,MAC/D,MAAA,EAAQ;AAAA,QACN;AAAA,UACE,SAAA,EAAW,CAAA,+rBAAA;AAAA;AACb,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL;AAAA,UACE,SAAA,EAAW,CAAA,yjDAAA;AAAA;AACb;AACF,KACD,CAAA;AACD,IAAA,OAAO,CAAC,IAAA,EAAM,KAAA,EAAO,OAAA,EAAS,MAAA,KAAW;AACvC,MAAA,KAAA,CAAM,CAAA,IAAA,EAAO,eAAe,UAAA,CAAW,EAAE,OAAO,gIAAA,EAAiI,EAAG,MAAM,CAAC,CAAC,gOAAgO,cAAA,CAAe,OAAA,CAAQ,MAAM,CAAC,CAAA,gGAAA,EAAmG,eAAe,OAAA,CAAQ,WAAW,CAAC,CAAA,gBAAA,CAAkB,CAAA;AAAA,IACplB,CAAA;AAAA,EACF;AACF,CAAA;AACA,MAAM,aAAa,SAAA,CAAU,KAAA;AAC7B,SAAA,CAAU,KAAA,GAAQ,CAAC,KAAA,EAAO,GAAA,KAAQ;AAChC,EAAA,MAAM,aAAa,aAAA,EAAc;AACjC,EAAA,CAAC,UAAA,CAAW,YAAY,UAAA,CAAW,OAAA,uBAA8B,GAAA,EAAI,CAAA,EAAI,IAAI,qDAAqD,CAAA;AAClI,EAAA,OAAO,UAAA,GAAa,UAAA,CAAW,KAAA,EAAO,GAAG,CAAA,GAAI,MAAA;AAC/C,CAAA;AACA,MAAM,QAAA,+BAAuC,SAAA,EAAW,CAAC,CAAC,WAAA,EAAa,iBAAiB,CAAC,CAAC;;;;"}
|
||||
@@ -1,13 +1,20 @@
|
||||
const resource = {
|
||||
"permissions": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jogosults\xE1g Kezel\xE9s" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Permissions Management \u2014 Role-based access control & subscription feature flags" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jogosults\xE1gi M\xE1trix \u2014 Szerepk\xF6r alap\xFA hozz\xE1f\xE9r\xE9s-vez\xE9rl\xE9s" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jogosults\xE1gok bet\xF6lt\xE9se..." } },
|
||||
"error_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem siker\xFClt bet\xF6lteni a jogosults\xE1gokat" } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xDAjra" } },
|
||||
"save_changes": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "V\xE1ltoztat\xE1sok Ment\xE9se" } },
|
||||
"discard": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Elvet\xE9s" } },
|
||||
"modified_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "count" }, { "t": 3, "v": " m\xF3dos\xEDt\xE1s" }] } },
|
||||
"domain_filter": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tartom\xE1ny Sz\u0171r\u0151 (Sorok)" } },
|
||||
"role_filter": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepk\xF6r Sz\u0171r\u0151 (Oszlopok)" } },
|
||||
"select_all": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xD6sszes kiv\xE1laszt\xE1sa" } },
|
||||
"deselect_all": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xD6sszes elrejt\xE9se" } },
|
||||
"all_domains": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Minden" } },
|
||||
"permission": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Enged\xE9ly" } },
|
||||
"no_permissions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincsenek enged\xE9lyek ebben a tartom\xE1nyban." } },
|
||||
"current_tier": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktu\xE1lis Csomag" } },
|
||||
"expires": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Lej\xE1rat" } },
|
||||
"superadmin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Superadmin" } },
|
||||
@@ -18,19 +25,7 @@ const resource = {
|
||||
"feature_flags_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "El\u0151fizet\xE9si funkci\xF3k \u2014 a jelenlegi csomagod alapj\xE1n (" }, { "t": 4, "k": "tier" }, { "t": 3, "v": ")." }] } },
|
||||
"rbac_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "RBAC Jogosults\xE1gi M\xE1trix" } },
|
||||
"rbac_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepk\xF6r alap\xFA hozz\xE1f\xE9r\xE9s-vez\xE9rl\xE9s \u2014 mely szerepk\xF6r\xF6k mely admin m\u0171veleteket v\xE9gezhetik." } },
|
||||
"action": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "M\u0171velet" } },
|
||||
"perms": {
|
||||
"user_mgmt": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felhaszn\xE1l\xF3kezel\xE9s" } },
|
||||
"billing_admin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Sz\xE1ml\xE1z\xE1si Adminisztr\xE1ci\xF3" } },
|
||||
"robot_config": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Robot Konfigur\xE1ci\xF3" } },
|
||||
"system_logs": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Rendszernapl\xF3k El\xE9r\xE9se" } },
|
||||
"api_keys": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "API Kulcs Kezel\xE9s" } },
|
||||
"vehicle_crud": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "J\xE1rm\u0171 CRUD" } },
|
||||
"service_booking": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szervizfoglal\xE1s" } },
|
||||
"customer_view": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xDCgyf\xE9ladatok Megtekint\xE9se" } },
|
||||
"report_export": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jelent\xE9s Export\xE1l\xE1s" } },
|
||||
"bulk_import": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "T\xF6meges Import" } }
|
||||
}
|
||||
"action": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "M\u0171velet" } }
|
||||
},
|
||||
"packages": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomagok Kezel\xE9se" } },
|
||||
@@ -47,6 +42,7 @@ const resource = {
|
||||
"month": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "h\xF3" } },
|
||||
"feature_flags": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "El\xE9rhet\u0151 Funkci\xF3k" } },
|
||||
"edit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerkeszt\xE9s" } },
|
||||
"duplicate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "M\xE1sol\xE1s" } },
|
||||
"delete": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "T\xF6rl\xE9s" } },
|
||||
"set_as_default": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Be\xE1ll\xEDt\xE1s alap\xE9rtelmezettk\xE9nt" } },
|
||||
"set_as_default_success": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "alap\xE9rtelmezett csomagk\xE9nt be\xE1ll\xEDtva!" } },
|
||||
@@ -84,7 +80,19 @@ const resource = {
|
||||
"singleton_rules": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Egyedis\xE9gi Szab\xE1lyok" } },
|
||||
"form_is_default_fallback": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alap\xE9rtelmezett Visszaes\xE9si Csomag \u2014 lej\xE1rt el\u0151fizet\xE9s eset\xE9n erre v\xE1lt" } },
|
||||
"form_trial_days": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pr\xF3ba Napok Regisztr\xE1ci\xF3n\xE1l" } },
|
||||
"form_trial_days_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Az \xFAj szervezetek ennyi ingyenes napot kapnak. Csak egy csomagn\xE1l lehet > 0." } }
|
||||
"form_trial_days_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Az \xFAj szervezetek ennyi ingyenes napot kapnak. Csak egy csomagn\xE1l lehet > 0." } },
|
||||
"per_region_pricing": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "R\xE9gi\xF3k szerinti \xE1raz\xE1s" } },
|
||||
"smart_calculator": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Okos \xC1rkalkul\xE1tor" } },
|
||||
"calc_net_price": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nett\xF3 \xE1r" } },
|
||||
"calc_vat_rate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xC1FA kulcs" } },
|
||||
"calc_currency": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "P\xE9nznem" } },
|
||||
"calc_net": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nett\xF3" } },
|
||||
"calc_vat": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xC1FA" } },
|
||||
"calc_gross": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Brutt\xF3" } },
|
||||
"calc_apply": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alkalmaz a kiv\xE1lasztott r\xE9gi\xF3ra" } },
|
||||
"add_zone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xDAj Z\xF3na Hozz\xE1ad\xE1sa" } },
|
||||
"add_zone_select": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "V\xE1lassz orsz\xE1gk\xF3dot..." } },
|
||||
"add_zone_already_exists": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ez a r\xE9gi\xF3 m\xE1r l\xE9tezik a csomag \xE1raz\xE1s\xE1ban!" } }
|
||||
},
|
||||
"garages": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gar\xE1zsok CRM" } },
|
||||
@@ -99,17 +107,63 @@ const resource = {
|
||||
"email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "E-mail" } },
|
||||
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "St\xE1tusz" } },
|
||||
"current_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktu\xE1lis Csomag" } },
|
||||
"expiration_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Lej\xE1rat D\xE1tuma" } },
|
||||
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "M\u0171veletek" } },
|
||||
"active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Akt\xEDv" } },
|
||||
"inactive": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Inakt\xEDv" } },
|
||||
"suspended": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felf\xFCggesztve" } },
|
||||
"change_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag M\xF3dos\xEDt\xE1sa" } },
|
||||
"manage_subscription": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "El\u0151fizet\xE9s Kezel\xE9se" } },
|
||||
"view": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Megtekint\xE9s" } },
|
||||
"activate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktiv\xE1l\xE1s" } },
|
||||
"deactivate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Deaktiv\xE1l\xE1s" } },
|
||||
"no_results": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs a keres\xE9snek megfelel\u0151 gar\xE1zs." } }
|
||||
"no_results": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs a keres\xE9snek megfelel\u0151 gar\xE1zs." } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gar\xE1zsok bet\xF6lt\xE9se..." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xDAjra" } },
|
||||
"members": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "tag" } },
|
||||
"free_fallback": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ingyenes / Visszaes\xE9si" } },
|
||||
"expires": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Lej\xE1rat" } },
|
||||
"select_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag Kiv\xE1laszt\xE1sa" } },
|
||||
"select_package_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "V\xE1lassz egy el\u0151fizet\xE9si csomagot..." } },
|
||||
"custom_expiration": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Egy\xE9ni Lej\xE1rati D\xE1tum" } },
|
||||
"optional": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "opcion\xE1lis" } },
|
||||
"custom_expiration_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hagyd \xFCresen az alap\xE9rtelmezett id\u0151tartamhoz (pl. 30 nap). 2-5 \xE9ves B2B deal-ekn\xE9l adj meg egyedi d\xE1tumot!" } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "M\xE9gse" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ment\xE9s" } },
|
||||
"saving": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ment\xE9s..." } },
|
||||
"subscription_updated": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "el\u0151fizet\xE9se sikeresen friss\xEDtve!" } },
|
||||
"view_details": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "R\xE9szletek" } },
|
||||
"indefinite": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hat\xE1rozatlan" } },
|
||||
"details": {
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gar\xE1zs adatainak bet\xF6lt\xE9se..." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "\xDAjra" } },
|
||||
"back": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Vissza a gar\xE1zsokhoz" } },
|
||||
"company_info": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "C\xE9g adatok" } },
|
||||
"company_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "C\xE9gn\xE9v" } },
|
||||
"display_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Megjelen\xEDt\xE9si n\xE9v" } },
|
||||
"org_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szervezet t\xEDpusa" } },
|
||||
"tax_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ad\xF3sz\xE1m" } },
|
||||
"reg_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "C\xE9gjegyz\xE9ksz\xE1m" } },
|
||||
"created_at": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "L\xE9trehozva" } },
|
||||
"address": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "C\xEDm" } },
|
||||
"subscription_info": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "El\u0151fizet\xE9s st\xE1tusza" } },
|
||||
"tier_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag" } },
|
||||
"tier_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint" } },
|
||||
"level_n": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "n" }, { "t": 3, "v": ". szint" }] } },
|
||||
"expires_at": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Lej\xE1rat" } },
|
||||
"asset_limit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "J\xE1rm\u0171korl\xE1t" } },
|
||||
"vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "j\xE1rm\u0171" } },
|
||||
"no_subscription": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs akt\xEDv el\u0151fizet\xE9s" } },
|
||||
"contact_info": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "El\xE9rhet\u0151s\xE9g" } },
|
||||
"contact_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattart\xF3 neve" } },
|
||||
"contact_role": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepk\xF6r" } },
|
||||
"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..." } }
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export { resource as default };
|
||||
//# sourceMappingURL=hu-CoGcC81v.mjs.map
|
||||
//# sourceMappingURL=hu-B3JxlqZo.mjs.map
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,143 +0,0 @@
|
||||
import { defineComponent, ref, computed, useSSRContext } from 'vue';
|
||||
import { ssrRenderAttrs, ssrInterpolate, ssrRenderClass, ssrRenderList, ssrIncludeBooleanAttr } from 'vue/server-renderer';
|
||||
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "index",
|
||||
__ssrInlineRender: true,
|
||||
setup(__props) {
|
||||
const loading = ref(true);
|
||||
const error = ref(null);
|
||||
const featureFlags = ref({
|
||||
tier: "free",
|
||||
features: {},
|
||||
expires_at: null
|
||||
});
|
||||
const permissionMatrix = ref([]);
|
||||
const allActions = ref([]);
|
||||
const modifiedPermissions = ref(/* @__PURE__ */ new Map());
|
||||
ref(/* @__PURE__ */ new Map());
|
||||
const saveNotification = ref(null);
|
||||
const featureEntries = computed(() => {
|
||||
return Object.entries(featureFlags.value.features || {});
|
||||
});
|
||||
const hasModifications = computed(() => {
|
||||
return modifiedPermissions.value.size > 0;
|
||||
});
|
||||
const tierBadgeClass = computed(() => {
|
||||
const tier = featureFlags.value.tier;
|
||||
if (tier === "enterprise") return "bg-purple-500/20 text-purple-300";
|
||||
if (tier === "premium") return "bg-amber-500/20 text-amber-300";
|
||||
return "bg-slate-500/20 text-slate-300";
|
||||
});
|
||||
const superadminPerms = [
|
||||
{ key: "user_mgmt", label: "User Management", enabled: true },
|
||||
{ key: "billing_admin", label: "Billing Administration", enabled: true },
|
||||
{ key: "robot_config", label: "Robot Configuration", enabled: true },
|
||||
{ key: "system_logs", label: "System Logs Access", enabled: true },
|
||||
{ key: "api_keys", label: "API Key Management", enabled: false }
|
||||
];
|
||||
const garagePerms = [
|
||||
{ key: "vehicle_crud", label: "Vehicle CRUD", enabled: true },
|
||||
{ key: "service_booking", label: "Service Booking", enabled: true },
|
||||
{ key: "customer_view", label: "Customer Data View", enabled: true },
|
||||
{ key: "report_export", label: "Report Export", enabled: false },
|
||||
{ key: "bulk_import", label: "Bulk Import", enabled: false }
|
||||
];
|
||||
function isPermEnabled(group, key) {
|
||||
const mapKey = `${group}:${key}`;
|
||||
if (modifiedPermissions.value.has(mapKey)) {
|
||||
return modifiedPermissions.value.get(mapKey);
|
||||
}
|
||||
const perms = group === "superadmin" ? superadminPerms : garagePerms;
|
||||
const perm = perms.find((p) => p.key === key);
|
||||
return perm ? perm.enabled : false;
|
||||
}
|
||||
function formatFeatureLabel(key) {
|
||||
return key.replace(/^cost_category:/, "").replace(/_/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
|
||||
}
|
||||
function formatDate(dateStr) {
|
||||
try {
|
||||
const d = new Date(dateStr);
|
||||
return d.toLocaleDateString("en-GB", { day: "numeric", month: "short", year: "numeric" });
|
||||
} catch {
|
||||
return dateStr;
|
||||
}
|
||||
}
|
||||
function hasPermission(role, action) {
|
||||
return role.actions.includes(action);
|
||||
}
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
_push(`<div${ssrRenderAttrs(_attrs)}><div class="mb-8"><h1 class="text-2xl font-bold text-white">${ssrInterpolate(_ctx.$t("permissions.title"))}</h1><p class="text-slate-400 mt-1">${ssrInterpolate(_ctx.$t("permissions.subtitle"))}</p></div>`);
|
||||
if (loading.value) {
|
||||
_push(`<div class="flex items-center justify-center py-20"><svg class="animate-spin h-8 w-8 text-indigo-400" xmlns="http://www.w3.org/2000/svg" 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><span class="ml-3 text-slate-400">${ssrInterpolate(_ctx.$t("permissions.loading"))}</span></div>`);
|
||||
} else if (error.value) {
|
||||
_push(`<div class="bg-red-500/10 border border-red-500/20 rounded-xl p-6 mb-8"><div class="flex items-center gap-3"><svg class="w-6 h-6 text-red-400 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg><div><h3 class="text-red-300 font-medium">${ssrInterpolate(_ctx.$t("permissions.error_title"))}</h3><p class="text-red-400/80 text-sm mt-1">${ssrInterpolate(error.value)}</p></div></div><button class="mt-4 px-4 py-2 text-sm bg-red-600 hover:bg-red-500 text-white rounded-lg transition">${ssrInterpolate(_ctx.$t("permissions.retry"))}</button></div>`);
|
||||
} else {
|
||||
_push(`<!--[-->`);
|
||||
if (saveNotification.value) {
|
||||
_push(`<div class="${ssrRenderClass([saveNotification.value.type === "success" ? "bg-emerald-500/10 border border-emerald-500/20 text-emerald-300" : "bg-red-500/10 border border-red-500/20 text-red-300", "mb-6 px-4 py-3 rounded-lg text-sm font-medium"])}">${ssrInterpolate(saveNotification.value.message)}</div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
if (hasModifications.value) {
|
||||
_push(`<div class="mb-6 flex items-center gap-3"><button class="px-6 py-2.5 bg-emerald-600 hover:bg-emerald-500 text-white font-semibold rounded-lg shadow-lg shadow-emerald-600/20 transition-all hover:scale-[1.02] active:scale-[0.98] flex items-center gap-2"><svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7H5a2 2 0 00-2 2v9a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-3m-1 4l-3 3m0 0l-3-3m3 3V4"></path></svg> ${ssrInterpolate(_ctx.$t("permissions.save_changes"))}</button><span class="text-sm text-slate-400">${ssrInterpolate(_ctx.$t("permissions.modified_count", { count: modifiedPermissions.value.size }))}</span></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`<div class="bg-indigo-500/10 border border-indigo-500/20 rounded-xl p-4 mb-8 flex items-start gap-3"><svg class="w-5 h-5 text-indigo-400 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg><div class="text-sm text-indigo-300"><span class="font-semibold">${ssrInterpolate(_ctx.$t("permissions.current_tier"))}:</span><span class="${ssrRenderClass([tierBadgeClass.value, "ml-2 px-2 py-0.5 rounded-full text-xs font-medium"])}">${ssrInterpolate(featureFlags.value.tier || "free")}</span>`);
|
||||
if (featureFlags.value.expires_at) {
|
||||
_push(`<span class="ml-3 text-indigo-400/70">${ssrInterpolate(_ctx.$t("permissions.expires"))}: ${ssrInterpolate(formatDate(featureFlags.value.expires_at))}</span>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</div></div><div class="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-8"><div class="bg-slate-800 rounded-xl border border-slate-700 p-6"><div class="flex items-center gap-3 mb-4"><div class="p-2 rounded-lg bg-purple-500/10 text-purple-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="M9 12.75L11.25 15 15 9.75m-3-7.036A11.959 11.959 0 013.598 6 11.99 11.99 0 003 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285z"></path></svg></div><h2 class="text-lg font-semibold text-white">${ssrInterpolate(_ctx.$t("permissions.superadmin"))}</h2></div><p class="text-sm text-slate-400 mb-4">${ssrInterpolate(_ctx.$t("permissions.superadmin_desc"))}</p><div class="space-y-3"><!--[-->`);
|
||||
ssrRenderList(superadminPerms, (perm) => {
|
||||
_push(`<div class="flex items-center justify-between py-2 border-b border-slate-700/50 last:border-0"><span class="text-sm text-slate-300">${ssrInterpolate(_ctx.$t(`permissions.perms.${perm.key}`))}</span><label class="relative inline-flex items-center cursor-pointer"><input type="checkbox"${ssrIncludeBooleanAttr(isPermEnabled("superadmin", perm.key)) ? " checked" : ""} class="sr-only peer"><div class="w-9 h-5 bg-slate-600 peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-purple-500/50 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white 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 peer-checked:bg-purple-600"></div></label></div>`);
|
||||
});
|
||||
_push(`<!--]--></div></div><div class="bg-slate-800 rounded-xl border border-slate-700 p-6"><div class="flex items-center gap-3 mb-4"><div class="p-2 rounded-lg bg-cyan-500/10 text-cyan-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="M8.25 18.75a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m3 0h6m-9 0H3.375a1.125 1.125 0 01-1.125-1.125V14.25m17.25 4.5a1.5 1.5 0 01-3 0m3 0a1.5 1.5 0 00-3 0m3 0h1.125c.621 0 1.129-.504 1.09-1.124a17.902 17.902 0 00-3.213-9.193 2.056 2.056 0 00-1.58-.86H14.25M16.5 18.75h-2.25m0-11.177v-.958c0-.568-.422-1.048-.987-1.106a48.554 48.554 0 00-10.026 0 1.106 1.106 0 00-.987 1.106v7.635m12-6.677v6.677m0 4.5v-4.5m0 0h-12"></path></svg></div><h2 class="text-lg font-semibold text-white">${ssrInterpolate(_ctx.$t("permissions.garages"))}</h2></div><p class="text-sm text-slate-400 mb-4">${ssrInterpolate(_ctx.$t("permissions.garages_desc"))}</p><div class="space-y-3"><!--[-->`);
|
||||
ssrRenderList(garagePerms, (perm) => {
|
||||
_push(`<div class="flex items-center justify-between py-2 border-b border-slate-700/50 last:border-0"><span class="text-sm text-slate-300">${ssrInterpolate(_ctx.$t(`permissions.perms.${perm.key}`))}</span><label class="relative inline-flex items-center cursor-pointer"><input type="checkbox"${ssrIncludeBooleanAttr(isPermEnabled("garage", perm.key)) ? " checked" : ""} class="sr-only peer"><div class="w-9 h-5 bg-slate-600 peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-cyan-500/50 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white 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 peer-checked:bg-cyan-600"></div></label></div>`);
|
||||
});
|
||||
_push(`<!--]--></div></div><div class="bg-slate-800 rounded-xl border border-slate-700 p-6"><div class="flex items-center gap-3 mb-4"><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="M20.25 7.5l-.625 10.632a2.25 2.25 0 01-2.247 2.118H6.622a2.25 2.25 0 01-2.247-2.118L3.75 7.5m8.25 3v6.75m0 0l-3-3m3 3l3-3M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125z"></path></svg></div><h2 class="text-lg font-semibold text-white">${ssrInterpolate(_ctx.$t("permissions.feature_flags"))}</h2></div><p class="text-sm text-slate-400 mb-4">${ssrInterpolate(_ctx.$t("permissions.feature_flags_desc", { tier: featureFlags.value.tier || "free" }))}</p><div class="space-y-3"><!--[-->`);
|
||||
ssrRenderList(featureEntries.value, ([key, granted]) => {
|
||||
_push(`<div class="flex items-center justify-between py-2 border-b border-slate-700/50 last:border-0"><div class="flex flex-col"><span class="text-sm text-slate-300">${ssrInterpolate(formatFeatureLabel(key))}</span><span class="text-xs text-slate-500">${ssrInterpolate(key)}</span></div><label class="relative inline-flex items-center cursor-pointer"><input type="checkbox"${ssrIncludeBooleanAttr(granted) ? " checked" : ""} class="sr-only peer"${ssrIncludeBooleanAttr(true) ? " disabled" : ""}><div class="${ssrRenderClass([granted ? "peer-checked:bg-amber-600" : "", "w-9 h-5 bg-slate-600 peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-amber-500/50 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white 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></div>`);
|
||||
});
|
||||
_push(`<!--]--></div></div></div><div class="bg-slate-800/50 border border-slate-700 rounded-xl p-6 mb-8"><h3 class="text-lg font-semibold text-white mb-4">${ssrInterpolate(_ctx.$t("permissions.rbac_title"))}</h3><p class="text-sm text-slate-400 mb-6">${ssrInterpolate(_ctx.$t("permissions.rbac_desc"))}</p><div class="overflow-x-auto"><table class="w-full text-sm"><thead><tr class="border-b border-slate-700"><th class="text-left py-3 px-4 text-slate-400 font-medium">${ssrInterpolate(_ctx.$t("permissions.action"))}</th><!--[-->`);
|
||||
ssrRenderList(permissionMatrix.value, (role) => {
|
||||
_push(`<th class="text-center py-3 px-4 text-slate-400 font-medium">${ssrInterpolate(role.role)}</th>`);
|
||||
});
|
||||
_push(`<!--]--></tr></thead><tbody><!--[-->`);
|
||||
ssrRenderList(allActions.value, (action) => {
|
||||
_push(`<tr class="border-b border-slate-700/50 hover:bg-slate-700/30"><td class="py-2.5 px-4 text-slate-300">${ssrInterpolate(action)}</td><!--[-->`);
|
||||
ssrRenderList(permissionMatrix.value, (role) => {
|
||||
_push(`<td class="text-center py-2.5 px-4">`);
|
||||
if (hasPermission(role, action)) {
|
||||
_push(`<span class="inline-flex items-center justify-center w-6 h-6 rounded-full bg-emerald-400/10"><svg class="w-4 h-4 text-emerald-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg></span>`);
|
||||
} else {
|
||||
_push(`<span class="inline-flex items-center justify-center w-6 h-6 rounded-full bg-slate-700"><svg class="w-4 h-4 text-slate-500" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg></span>`);
|
||||
}
|
||||
_push(`</td>`);
|
||||
});
|
||||
_push(`<!--]--></tr>`);
|
||||
});
|
||||
_push(`<!--]--></tbody></table></div></div>`);
|
||||
if (hasModifications.value) {
|
||||
_push(`<div class="flex items-center gap-3 pb-8"><button class="px-6 py-2.5 bg-emerald-600 hover:bg-emerald-500 text-white font-semibold rounded-lg shadow-lg shadow-emerald-600/20 transition-all hover:scale-[1.02] active:scale-[0.98] flex items-center gap-2"><svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7H5a2 2 0 00-2 2v9a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-3m-1 4l-3 3m0 0l-3-3m3 3V4"></path></svg> ${ssrInterpolate(_ctx.$t("permissions.save_changes"))}</button><button class="px-4 py-2.5 bg-slate-700 hover:bg-slate-600 text-slate-300 font-medium rounded-lg transition">${ssrInterpolate(_ctx.$t("permissions.discard"))}</button></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_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/permissions/index.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
|
||||
export { _sfc_main as default };
|
||||
//# sourceMappingURL=index-7zBAzpaD.mjs.map
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -124,6 +124,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
const saving = ref(false);
|
||||
const saveNotification = ref(null);
|
||||
const featureCapabilitiesError = ref(null);
|
||||
const selectedAddZoneCode = ref("");
|
||||
const availableRegionsToAdd = computed(() => {
|
||||
return regionStore.regions.filter((r) => {
|
||||
return r.country_code !== "DEFAULT" && !form.pricing_zones[r.country_code];
|
||||
});
|
||||
});
|
||||
const calcNetPrice = ref(0);
|
||||
const calcVatRate = ref(27);
|
||||
const calcCurrency = ref("EUR");
|
||||
@@ -138,6 +144,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
max_vehicles: 1,
|
||||
max_garages: 1,
|
||||
monthly_free_credits: 0,
|
||||
max_cost_category_depth: 3,
|
||||
advanced_reports: false,
|
||||
export_data: false,
|
||||
subtitle: "",
|
||||
badge: "",
|
||||
is_custom: false,
|
||||
@@ -152,6 +161,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
if (!zone) return 0;
|
||||
return period === "monthly" ? zone.monthly_price : zone.yearly_price;
|
||||
}
|
||||
function getZoneCreditPrice(countryCode) {
|
||||
var _a;
|
||||
const zone = form.pricing_zones[countryCode];
|
||||
if (!zone) return 0;
|
||||
return (_a = zone.credit_price) != null ? _a : 0;
|
||||
}
|
||||
function getZoneCurrency(countryCode) {
|
||||
const zone = form.pricing_zones[countryCode];
|
||||
if (!zone) return "EUR";
|
||||
@@ -224,7 +239,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</div></div><div class="mb-4"><span class="text-3xl font-bold text-white">${ssrInterpolate(getFormattedPrice(pkg))}</span><span class="text-sm text-slate-400 ml-1">/ ${ssrInterpolate(_ctx.$t("packages.month"))}</span></div><p class="text-sm text-slate-400 mb-4 flex-1">${ssrInterpolate(getDescription(pkg))}</p><div class="border-t border-slate-700 pt-4 mb-4"><h3 class="text-xs font-semibold uppercase tracking-wider text-slate-500 mb-3">${ssrInterpolate(_ctx.$t("packages.allowances"))}</h3><div class="space-y-2"><div class="flex items-center justify-between text-sm"><span class="text-slate-400">${ssrInterpolate(_ctx.$t("packages.max_vehicles"))}</span><span class="text-slate-200 font-medium">${ssrInterpolate(getAllowance(pkg, "max_vehicles"))}</span></div><div class="flex items-center justify-between text-sm"><span class="text-slate-400">${ssrInterpolate(_ctx.$t("packages.max_garages"))}</span><span class="text-slate-200 font-medium">${ssrInterpolate(getAllowance(pkg, "max_garages"))}</span></div><div class="flex items-center justify-between text-sm"><span class="text-slate-400">${ssrInterpolate(_ctx.$t("packages.monthly_credits"))}</span><span class="text-slate-200 font-medium">${ssrInterpolate(getAllowance(pkg, "monthly_free_credits"))}</span></div></div></div><div class="mb-4"><span class="text-xs text-slate-500">${ssrInterpolate(_ctx.$t("packages.tier_level"))}: </span><span class="text-xs font-mono text-slate-400">${ssrInterpolate(pkg.tier_level)}</span></div><div class="flex gap-2"><button class="flex-1 px-4 py-2.5 bg-indigo-600 hover:bg-indigo-500 text-white font-medium rounded-lg transition text-sm">${ssrInterpolate(_ctx.$t("packages.edit"))}</button><button class="px-3 py-2.5 bg-red-700 hover:bg-red-600 text-red-200 rounded-lg transition"${ssrRenderAttr("title", _ctx.$t("packages.delete"))}><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="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"></path></svg></button></div></div>`);
|
||||
_push(`</div></div><div class="mb-4"><span class="text-3xl font-bold text-white">${ssrInterpolate(getFormattedPrice(pkg))}</span><span class="text-sm text-slate-400 ml-1">/ ${ssrInterpolate(_ctx.$t("packages.month"))}</span></div><p class="text-sm text-slate-400 mb-4 flex-1">${ssrInterpolate(getDescription(pkg))}</p><div class="border-t border-slate-700 pt-4 mb-4"><h3 class="text-xs font-semibold uppercase tracking-wider text-slate-500 mb-3">${ssrInterpolate(_ctx.$t("packages.allowances"))}</h3><div class="space-y-2"><div class="flex items-center justify-between text-sm"><span class="text-slate-400">${ssrInterpolate(_ctx.$t("packages.max_vehicles"))}</span><span class="text-slate-200 font-medium">${ssrInterpolate(getAllowance(pkg, "max_vehicles"))}</span></div><div class="flex items-center justify-between text-sm"><span class="text-slate-400">${ssrInterpolate(_ctx.$t("packages.max_garages"))}</span><span class="text-slate-200 font-medium">${ssrInterpolate(getAllowance(pkg, "max_garages"))}</span></div><div class="flex items-center justify-between text-sm"><span class="text-slate-400">${ssrInterpolate(_ctx.$t("packages.monthly_credits"))}</span><span class="text-slate-200 font-medium">${ssrInterpolate(getAllowance(pkg, "monthly_free_credits"))}</span></div></div></div><div class="mb-4"><span class="text-xs text-slate-500">${ssrInterpolate(_ctx.$t("packages.tier_level"))}: </span><span class="text-xs font-mono text-slate-400">${ssrInterpolate(pkg.tier_level)}</span></div><div class="flex gap-2"><button class="flex-1 px-4 py-2.5 bg-indigo-600 hover:bg-indigo-500 text-white font-medium rounded-lg transition text-sm">${ssrInterpolate(_ctx.$t("packages.edit"))}</button><button class="px-3 py-2.5 bg-emerald-700 hover:bg-emerald-600 text-emerald-200 rounded-lg transition"${ssrRenderAttr("title", _ctx.$t("packages.duplicate"))}><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="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"></path></svg></button><button class="px-3 py-2.5 bg-red-700 hover:bg-red-600 text-red-200 rounded-lg transition"${ssrRenderAttr("title", _ctx.$t("packages.delete"))}><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="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"></path></svg></button></div></div>`);
|
||||
});
|
||||
_push(`<!--]--></div>`);
|
||||
}
|
||||
@@ -240,11 +255,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
_push(`<!---->`);
|
||||
}
|
||||
if (activeTab.value === "pricing") {
|
||||
_push(`<div class="space-y-6"><div><h4 class="text-sm font-semibold text-slate-300 mb-3">${ssrInterpolate(_ctx.$t("packages.per_region_pricing"))}</h4><div class="overflow-x-auto"><table class="w-full text-sm"><thead><tr class="border-b border-slate-700"><th class="text-left py-2 px-3 text-slate-400 font-medium">Region</th><th class="text-left py-2 px-3 text-slate-400 font-medium">${ssrInterpolate(_ctx.$t("packages.form_monthly_price"))}</th><th class="text-left py-2 px-3 text-slate-400 font-medium">${ssrInterpolate(_ctx.$t("packages.form_yearly_price"))}</th><th class="text-left py-2 px-3 text-slate-400 font-medium">${ssrInterpolate(_ctx.$t("packages.form_currency"))}</th></tr></thead><tbody><!--[-->`);
|
||||
_push(`<div class="space-y-6"><div><h4 class="text-sm font-semibold text-slate-300 mb-3">${ssrInterpolate(_ctx.$t("packages.per_region_pricing"))}</h4><div class="overflow-x-auto"><table class="w-full text-sm"><thead><tr class="border-b border-slate-700"><th class="text-left py-2 px-3 text-slate-400 font-medium">Region</th><th class="text-left py-2 px-3 text-slate-400 font-medium">${ssrInterpolate(_ctx.$t("packages.form_monthly_price"))}</th><th class="text-left py-2 px-3 text-slate-400 font-medium">${ssrInterpolate(_ctx.$t("packages.form_yearly_price"))}</th><th class="text-left py-2 px-3 text-slate-400 font-medium">Kredit \xC1r</th><th class="text-left py-2 px-3 text-slate-400 font-medium">${ssrInterpolate(_ctx.$t("packages.form_currency"))}</th><th class="text-left py-2 px-3 text-slate-400 font-medium"></th></tr></thead><tbody><!--[-->`);
|
||||
ssrRenderList(unref(regionStore).regions, (region) => {
|
||||
_push(`<tr class="border-b border-slate-700/50"><td class="py-2 px-3 text-slate-200 font-medium"><span class="inline-flex items-center gap-1.5"><span>${ssrInterpolate(region.country_code)}</span><span class="text-xs text-slate-500">(${ssrInterpolate(region.currency)}, ${ssrInterpolate(region.default_vat_rate)}% VAT)</span></span></td><td class="py-2 px-3"><input${ssrRenderAttr("value", getZonePrice(region.country_code, "monthly"))} type="number" step="0.01" min="0" class="w-full px-2 py-1.5 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></td><td class="py-2 px-3"><input${ssrRenderAttr("value", getZonePrice(region.country_code, "yearly"))} type="number" step="0.01" min="0" class="w-full px-2 py-1.5 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></td><td class="py-2 px-3"><input${ssrRenderAttr("value", getZoneCurrency(region.country_code))} type="text" maxlength="3" class="w-full px-2 py-1.5 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent uppercase"></td></tr>`);
|
||||
_push(`<tr class="border-b border-slate-700/50"><td class="py-2 px-3 text-slate-200 font-medium"><span class="inline-flex items-center gap-1.5"><span>${ssrInterpolate(region.country_code)}</span><span class="text-xs text-slate-500">(${ssrInterpolate(region.currency)}, ${ssrInterpolate(region.default_vat_rate)}% VAT)</span></span></td><td class="py-2 px-3"><input${ssrRenderAttr("value", getZonePrice(region.country_code, "monthly"))} type="number" step="0.01" min="0" class="w-full px-2 py-1.5 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></td><td class="py-2 px-3"><input${ssrRenderAttr("value", getZonePrice(region.country_code, "yearly"))} type="number" step="0.01" min="0" class="w-full px-2 py-1.5 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></td><td class="py-2 px-3"><input${ssrRenderAttr("value", getZoneCreditPrice(region.country_code))} type="number" step="0.01" min="0" class="w-full px-2 py-1.5 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></td><td class="py-2 px-3"><input${ssrRenderAttr("value", getZoneCurrency(region.country_code))} type="text" maxlength="3" class="w-full px-2 py-1.5 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent uppercase"></td><td class="py-2 px-3 text-center"><button class="p-1.5 rounded-lg text-red-400 hover:text-red-300 hover:bg-red-500/10 transition"${ssrRenderAttr("title", "Remove " + region.country_code)}><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="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"></path></svg></button></td></tr>`);
|
||||
});
|
||||
_push(`<!--]--></tbody></table></div></div><div class="border-t border-slate-700 pt-5"><h4 class="text-sm font-semibold text-slate-300 mb-3">\u{1F9EE} ${ssrInterpolate(_ctx.$t("packages.smart_calculator"))}</h4><div class="bg-slate-700/30 rounded-xl p-4 space-y-4"><div class="grid grid-cols-3 gap-4"><div><label class="block text-xs text-slate-400 mb-1">${ssrInterpolate(_ctx.$t("packages.calc_net_price"))}</label><input${ssrRenderAttr("value", calcNetPrice.value)} type="number" step="0.01" min="0" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-emerald-500 focus:border-transparent" placeholder="0.00"></div><div><label class="block text-xs text-slate-400 mb-1">${ssrInterpolate(_ctx.$t("packages.calc_vat_rate"))}</label><select class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-emerald-500 focus:border-transparent"><!--[-->`);
|
||||
_push(`<!--]--></tbody></table></div><div class="flex items-center gap-3 mt-4"><select class="px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"><option value="" disabled${ssrIncludeBooleanAttr(Array.isArray(selectedAddZoneCode.value) ? ssrLooseContain(selectedAddZoneCode.value, "") : ssrLooseEqual(selectedAddZoneCode.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("packages.add_zone_select"))}</option><!--[-->`);
|
||||
ssrRenderList(availableRegionsToAdd.value, (region) => {
|
||||
_push(`<option${ssrRenderAttr("value", region.country_code)}${ssrIncludeBooleanAttr(Array.isArray(selectedAddZoneCode.value) ? ssrLooseContain(selectedAddZoneCode.value, region.country_code) : ssrLooseEqual(selectedAddZoneCode.value, region.country_code)) ? " selected" : ""}>${ssrInterpolate(region.country_code)} \u2014 ${ssrInterpolate(region.name)} (${ssrInterpolate(region.currency)}, ${ssrInterpolate(region.default_vat_rate)}% VAT) </option>`);
|
||||
});
|
||||
_push(`<!--]--></select><button${ssrIncludeBooleanAttr(!selectedAddZoneCode.value) ? " disabled" : ""} class="px-4 py-2 bg-indigo-600 hover:bg-indigo-500 disabled:bg-slate-600 disabled:cursor-not-allowed text-white text-sm font-medium rounded-lg transition flex items-center gap-2"><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 4v16m8-8H4"></path></svg> ${ssrInterpolate(_ctx.$t("packages.add_zone"))}</button></div></div><div class="border-t border-slate-700 pt-5"><h4 class="text-sm font-semibold text-slate-300 mb-3">\u{1F9EE} ${ssrInterpolate(_ctx.$t("packages.smart_calculator"))}</h4><div class="bg-slate-700/30 rounded-xl p-4 space-y-4"><div class="grid grid-cols-3 gap-4"><div><label class="block text-xs text-slate-400 mb-1">${ssrInterpolate(_ctx.$t("packages.calc_net_price"))}</label><input${ssrRenderAttr("value", calcNetPrice.value)} type="number" step="0.01" min="0" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-emerald-500 focus:border-transparent" placeholder="0.00"></div><div><label class="block text-xs text-slate-400 mb-1">${ssrInterpolate(_ctx.$t("packages.calc_vat_rate"))}</label><select class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-emerald-500 focus:border-transparent"><!--[-->`);
|
||||
ssrRenderList(unref(regionStore).regions, (region) => {
|
||||
_push(`<option${ssrRenderAttr("value", region.default_vat_rate)}${ssrIncludeBooleanAttr(Array.isArray(calcVatRate.value) ? ssrLooseContain(calcVatRate.value, region.default_vat_rate) : ssrLooseEqual(calcVatRate.value, region.default_vat_rate)) ? " selected" : ""}>${ssrInterpolate(region.country_code)} \u2014 ${ssrInterpolate(region.default_vat_rate)}% </option>`);
|
||||
});
|
||||
@@ -257,7 +276,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
_push(`<!---->`);
|
||||
}
|
||||
if (activeTab.value === "features") {
|
||||
_push(`<div class="space-y-5"><div><h4 class="text-sm font-semibold text-slate-300 mb-3">${ssrInterpolate(_ctx.$t("packages.allowances"))}</h4><div class="grid grid-cols-3 gap-4"><div><label class="block text-xs text-slate-400 mb-1">${ssrInterpolate(_ctx.$t("packages.max_vehicles"))}</label><input${ssrRenderAttr("value", form.max_vehicles)} type="number" min="0" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></div><div><label class="block text-xs text-slate-400 mb-1">${ssrInterpolate(_ctx.$t("packages.max_garages"))}</label><input${ssrRenderAttr("value", form.max_garages)} type="number" min="0" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></div><div><label class="block text-xs text-slate-400 mb-1">${ssrInterpolate(_ctx.$t("packages.monthly_credits"))}</label><input${ssrRenderAttr("value", form.monthly_free_credits)} type="number" min="0" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></div></div></div><div class="border-t border-slate-700 pt-4"><h4 class="text-sm font-semibold text-slate-300 mb-3">${ssrInterpolate(_ctx.$t("packages.feature_capabilities"))}</h4><textarea rows="8" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm font-mono focus:ring-2 focus:ring-indigo-500 focus:border-transparent" placeholder="{\\n "ai_analysis": true,\\n "priority_support": false,\\n "api_access": true\\n}">${ssrInterpolate(form.feature_capabilities_json)}</textarea><p class="text-xs text-slate-500 mt-1">${ssrInterpolate(_ctx.$t("packages.feature_capabilities_hint"))}</p>`);
|
||||
_push(`<div class="space-y-5"><div><h4 class="text-sm font-semibold text-slate-300 mb-3">${ssrInterpolate(_ctx.$t("packages.allowances"))}</h4><div class="grid grid-cols-3 gap-4"><div><label class="block text-xs text-slate-400 mb-1">${ssrInterpolate(_ctx.$t("packages.max_vehicles"))}</label><input${ssrRenderAttr("value", form.max_vehicles)} type="number" min="0" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></div><div><label class="block text-xs text-slate-400 mb-1">${ssrInterpolate(_ctx.$t("packages.max_garages"))}</label><input${ssrRenderAttr("value", form.max_garages)} type="number" min="0" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></div><div><label class="block text-xs text-slate-400 mb-1">${ssrInterpolate(_ctx.$t("packages.monthly_credits"))}</label><input${ssrRenderAttr("value", form.monthly_free_credits)} type="number" min="0" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></div></div></div><div class="border-t border-slate-700 pt-4"><h4 class="text-sm font-semibold text-slate-300 mb-3">SaaS Allowances</h4><div class="grid grid-cols-3 gap-4"><div><label class="block text-xs text-slate-400 mb-1">K\xF6lts\xE9gkateg\xF3ria m\xE9lys\xE9g (max_cost_category_depth)</label><input${ssrRenderAttr("value", form.max_cost_category_depth)} type="number" min="0" max="10" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></div><div><label class="block text-xs text-slate-400 mb-1">Statisztika (advanced_reports)</label><div class="flex items-center h-[38px]"><label class="relative inline-flex items-center cursor-pointer"><input${ssrIncludeBooleanAttr(Array.isArray(form.advanced_reports) ? ssrLooseContain(form.advanced_reports, null) : form.advanced_reports) ? " checked" : ""} type="checkbox" class="sr-only peer"><div class="w-11 h-6 bg-slate-600 peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-indigo-500 rounded-full peer peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:start-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-indigo-600"></div><span class="ms-3 text-sm text-slate-300">${ssrInterpolate(form.advanced_reports ? "Enabled" : "Disabled")}</span></label></div></div><div><label class="block text-xs text-slate-400 mb-1">PDF/CSV Export (export_data)</label><div class="flex items-center h-[38px]"><label class="relative inline-flex items-center cursor-pointer"><input${ssrIncludeBooleanAttr(Array.isArray(form.export_data) ? ssrLooseContain(form.export_data, null) : form.export_data) ? " checked" : ""} type="checkbox" class="sr-only peer"><div class="w-11 h-6 bg-slate-600 peer-focus:outline-none peer-focus:ring-2 peer-focus:ring-indigo-500 rounded-full peer peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:start-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-indigo-600"></div><span class="ms-3 text-sm text-slate-300">${ssrInterpolate(form.export_data ? "Enabled" : "Disabled")}</span></label></div></div></div></div><div class="border-t border-slate-700 pt-4"><h4 class="text-sm font-semibold text-slate-300 mb-3">${ssrInterpolate(_ctx.$t("packages.feature_capabilities"))}</h4><textarea rows="8" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm font-mono focus:ring-2 focus:ring-indigo-500 focus:border-transparent" placeholder="{\\n "ai_analysis": true,\\n "priority_support": false,\\n "api_access": true\\n}">${ssrInterpolate(form.feature_capabilities_json)}</textarea><p class="text-xs text-slate-500 mt-1">${ssrInterpolate(_ctx.$t("packages.feature_capabilities_hint"))}</p>`);
|
||||
if (featureCapabilitiesError.value) {
|
||||
_push(`<p class="text-xs text-red-400 mt-1">${ssrInterpolate(featureCapabilitiesError.value)}</p>`);
|
||||
} else {
|
||||
@@ -299,4 +318,4 @@ _sfc_main.setup = (props, ctx) => {
|
||||
};
|
||||
|
||||
export { _sfc_main as default };
|
||||
//# sourceMappingURL=index-BPETUF7a.mjs.map
|
||||
//# sourceMappingURL=index-CII1lBpk.mjs.map
|
||||
File diff suppressed because one or more lines are too long
197
frontend_admin/.output/server/chunks/build/index-D2n0yf-2.mjs
Normal file
197
frontend_admin/.output/server/chunks/build/index-D2n0yf-2.mjs
Normal file
@@ -0,0 +1,197 @@
|
||||
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 '../nitro/nitro.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
import 'node:buffer';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:crypto';
|
||||
import 'vue-router';
|
||||
import 'node:url';
|
||||
import 'pinia';
|
||||
import '../routes/renderer.mjs';
|
||||
import 'vue-bundle-renderer/runtime';
|
||||
import 'unhead/server';
|
||||
import 'devalue';
|
||||
import 'unhead/utils';
|
||||
import 'unhead/plugins';
|
||||
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "index",
|
||||
__ssrInlineRender: true,
|
||||
setup(__props) {
|
||||
const { t: $t } = useI18n();
|
||||
const loading = ref(true);
|
||||
const error = ref(null);
|
||||
const roles = ref([]);
|
||||
const permissions = ref([]);
|
||||
const activeDomain = ref("__all__");
|
||||
const filteredRoleIds = ref(/* @__PURE__ */ new Set());
|
||||
const modifiedRoles = ref(/* @__PURE__ */ new Map());
|
||||
ref(/* @__PURE__ */ new Map());
|
||||
const saveNotification = ref(null);
|
||||
const domainOptions = computed(() => {
|
||||
const domains = new Set(permissions.value.map((p) => p.domain));
|
||||
const options = [
|
||||
{ value: "__all__", label: $t("permissions.all_domains") }
|
||||
];
|
||||
for (const domain of Array.from(domains).sort()) {
|
||||
options.push({ value: domain, label: domain.charAt(0).toUpperCase() + domain.slice(1) });
|
||||
}
|
||||
return options;
|
||||
});
|
||||
const filteredDomains = computed(() => {
|
||||
const domains = new Set(permissions.value.map((p) => p.domain));
|
||||
const sorted = Array.from(domains).sort();
|
||||
if (activeDomain.value === "__all__") return sorted;
|
||||
return sorted.filter((d) => d === activeDomain.value);
|
||||
});
|
||||
const filteredPermissions = computed(() => {
|
||||
if (activeDomain.value === "__all__") return permissions.value;
|
||||
return permissions.value.filter((p) => p.domain === activeDomain.value);
|
||||
});
|
||||
const filteredRoles = computed(() => {
|
||||
if (filteredRoleIds.value.size === 0) return roles.value;
|
||||
return roles.value.filter((r) => filteredRoleIds.value.has(r.id));
|
||||
});
|
||||
const hasModifications = computed(() => {
|
||||
return modifiedRoles.value.size > 0;
|
||||
});
|
||||
function roleHeaderClass(role) {
|
||||
if (role.rank >= 100) return "bg-purple-500/20 text-purple-300";
|
||||
if (role.rank >= 80) return "bg-indigo-500/20 text-indigo-300";
|
||||
if (role.rank >= 50) return "bg-cyan-500/20 text-cyan-300";
|
||||
return "bg-slate-500/20 text-slate-300";
|
||||
}
|
||||
function domainColorClass(domain) {
|
||||
const colorMap = {
|
||||
fleet: "text-emerald-400",
|
||||
user: "text-sky-400",
|
||||
finance: "text-amber-400",
|
||||
permissions: "text-purple-400",
|
||||
system: "text-rose-400",
|
||||
service: "text-teal-400",
|
||||
organization: "text-orange-400",
|
||||
vehicle: "text-cyan-400",
|
||||
subscription: "text-pink-400",
|
||||
moderation: "text-violet-400"
|
||||
};
|
||||
return colorMap[domain] || "text-slate-400";
|
||||
}
|
||||
function getCellClass(role, perm) {
|
||||
if (isRoleLocked(role)) return "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 getDomainPermissions(domain) {
|
||||
return filteredPermissions.value.filter((p) => p.domain === domain);
|
||||
}
|
||||
function isPermEnabled(roleId, permissionId) {
|
||||
if (modifiedRoles.value.has(roleId)) {
|
||||
const rolePerms = modifiedRoles.value.get(roleId);
|
||||
return rolePerms.has(permissionId);
|
||||
}
|
||||
const role = roles.value.find((r) => r.id === roleId);
|
||||
return role ? role.permission_ids.includes(permissionId) : false;
|
||||
}
|
||||
function isRoleLocked(role) {
|
||||
return role.is_system && role.rank >= 100;
|
||||
}
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
_push(`<div${ssrRenderAttrs(_attrs)}><div class="mb-8"><h1 class="text-2xl font-bold text-white">${ssrInterpolate(unref($t)("permissions.title"))}</h1><p class="text-slate-400 mt-1">${ssrInterpolate(unref($t)("permissions.subtitle"))}</p></div>`);
|
||||
if (loading.value) {
|
||||
_push(`<div class="flex items-center justify-center py-20"><svg class="animate-spin h-8 w-8 text-indigo-400" xmlns="http://www.w3.org/2000/svg" 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><span class="ml-3 text-slate-400">${ssrInterpolate(unref($t)("permissions.loading"))}</span></div>`);
|
||||
} else if (error.value) {
|
||||
_push(`<div class="bg-red-500/10 border border-red-500/20 rounded-xl p-6 mb-8"><div class="flex items-center gap-3"><svg class="w-6 h-6 text-red-400 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg><div><h3 class="text-red-300 font-medium">${ssrInterpolate(unref($t)("permissions.error_title"))}</h3><p class="text-red-400/80 text-sm mt-1">${ssrInterpolate(error.value)}</p></div></div><button class="mt-4 px-4 py-2 text-sm bg-red-600 hover:bg-red-500 text-white rounded-lg transition">${ssrInterpolate(unref($t)("permissions.retry"))}</button></div>`);
|
||||
} else {
|
||||
_push(`<!--[-->`);
|
||||
if (saveNotification.value) {
|
||||
_push(`<div class="${ssrRenderClass([saveNotification.value.type === "success" ? "bg-emerald-500/10 border border-emerald-500/20 text-emerald-300" : "bg-red-500/10 border border-red-500/20 text-red-300", "mb-6 px-4 py-3 rounded-lg text-sm font-medium"])}">${ssrInterpolate(saveNotification.value.message)}</div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`<div class="bg-slate-800/60 border border-slate-700 rounded-xl p-4 mb-6"><div class="flex flex-col sm:flex-row sm:items-center gap-4"><div class="flex-1"><label class="block text-xs font-semibold uppercase tracking-wider text-slate-400 mb-2">${ssrInterpolate(unref($t)("permissions.domain_filter"))}</label><div class="flex flex-wrap gap-1.5"><!--[-->`);
|
||||
ssrRenderList(domainOptions.value, (domain) => {
|
||||
_push(`<button class="${ssrRenderClass([activeDomain.value === domain.value ? "bg-indigo-600 text-white shadow-sm" : "bg-slate-700/60 text-slate-400 hover:bg-slate-700 hover:text-white", "px-3 py-1.5 text-xs font-medium rounded-lg transition"])}">${ssrInterpolate(domain.label)}</button>`);
|
||||
});
|
||||
_push(`<!--]--></div></div><div class="flex-1"><label class="block text-xs font-semibold uppercase tracking-wider text-slate-400 mb-2">${ssrInterpolate(unref($t)("permissions.role_filter"))}</label><div class="flex flex-wrap gap-1.5"><!--[-->`);
|
||||
ssrRenderList(roles.value, (role) => {
|
||||
_push(`<button class="${ssrRenderClass([filteredRoleIds.value.has(role.id) ? role.rank >= 100 ? "bg-purple-600/30 text-purple-300 border border-purple-500/30" : "bg-indigo-600/30 text-indigo-300 border border-indigo-500/30" : "bg-slate-700/60 text-slate-500 hover:bg-slate-700 hover:text-slate-300 border border-transparent", "px-3 py-1.5 text-xs font-medium rounded-lg transition flex items-center gap-1.5"])}">`);
|
||||
if (filteredRoleIds.value.has(role.id)) {
|
||||
_push(`<svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"></path></svg>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`<span>${ssrInterpolate(role.name)}</span></button>`);
|
||||
});
|
||||
_push(`<!--]--></div><div class="mt-2 flex gap-2"><button class="text-xs text-indigo-400 hover:text-indigo-300 transition">${ssrInterpolate(unref($t)("permissions.select_all"))}</button><button class="text-xs text-slate-500 hover:text-slate-400 transition">${ssrInterpolate(unref($t)("permissions.deselect_all"))}</button></div></div></div></div>`);
|
||||
if (hasModifications.value) {
|
||||
_push(`<div class="sticky top-0 z-20 -mx-4 px-4 py-3 bg-slate-800/95 backdrop-blur-sm border-b border-slate-700 mb-4 flex items-center gap-3 rounded-t-xl"><button class="px-6 py-2.5 bg-emerald-600 hover:bg-emerald-500 text-white font-semibold rounded-lg shadow-lg shadow-emerald-600/20 transition-all hover:scale-[1.02] active:scale-[0.98] flex items-center gap-2"><svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7H5a2 2 0 00-2 2v9a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-3m-1 4l-3 3m0 0l-3-3m3 3V4"></path></svg> ${ssrInterpolate(unref($t)("permissions.save_changes"))}</button><button class="px-4 py-2.5 bg-slate-700 hover:bg-slate-600 text-slate-300 font-medium rounded-lg transition">${ssrInterpolate(unref($t)("permissions.discard"))}</button><span class="text-sm text-slate-400 ml-auto">${ssrInterpolate(unref($t)("permissions.modified_count", { count: modifiedRoles.value.size }))}</span></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`<div class="overflow-x-auto rounded-xl border border-slate-700 bg-slate-800/40"><table class="w-full text-sm"><thead><tr class="border-b border-slate-700"><th class="sticky left-0 z-10 bg-slate-800/95 min-w-[200px] p-3 text-left"><div class="flex items-center gap-2"><svg class="w-4 h-4 text-slate-500" 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"></path></svg><span class="text-xs font-semibold uppercase tracking-wider text-slate-400">${ssrInterpolate(unref($t)("permissions.permission"))}</span></div></th><!--[-->`);
|
||||
ssrRenderList(filteredRoles.value, (role) => {
|
||||
_push(`<th class="${ssrRenderClass([role.rank >= 100 ? "bg-purple-900/10" : "", "min-w-[120px] p-3 text-center border-l border-slate-700"])}"><div class="flex flex-col items-center gap-1"><span class="${ssrRenderClass([roleHeaderClass(role), "text-xs font-semibold px-2 py-0.5 rounded-full"])}">${ssrInterpolate(role.name)}</span><span class="text-[10px] text-slate-500">Rank ${ssrInterpolate(role.rank)}</span>`);
|
||||
if (role.is_system) {
|
||||
_push(`<span class="text-[10px] text-indigo-400">system</span>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</div></th>`);
|
||||
});
|
||||
_push(`<!--]--></tr></thead><tbody><!--[-->`);
|
||||
ssrRenderList(filteredDomains.value, (domain) => {
|
||||
_push(`<!--[--><tr class="border-b border-slate-700/50"><td colspan="1" class="${ssrRenderClass([domainColorClass(domain), "sticky left-0 z-10 bg-slate-800/95 px-3 py-2 text-xs font-bold uppercase tracking-wider"])}"><div class="flex items-center gap-2"><span>${ssrInterpolate(domain)}</span><span class="text-[10px] text-slate-500 font-normal normal-case"> (${ssrInterpolate(getDomainPermissions(domain).length)}) </span></div></td><!--[-->`);
|
||||
ssrRenderList(filteredRoles.value, (role) => {
|
||||
_push(`<td class="border-l border-slate-700/50 bg-slate-800/60 px-3 py-2"></td>`);
|
||||
});
|
||||
_push(`<!--]--></tr><!--[-->`);
|
||||
ssrRenderList(getDomainPermissions(domain), (perm) => {
|
||||
_push(`<tr class="border-b border-slate-700/30 hover:bg-slate-700/20 transition"><td class="sticky left-0 z-10 bg-slate-800/95 p-3 border-r border-slate-700/50"><div class="flex flex-col min-w-0 max-w-[200px]"><span class="text-sm text-slate-200 truncate font-medium">${ssrInterpolate(formatPermissionLabel(perm))}</span><span class="text-xs text-slate-500 truncate font-mono">${ssrInterpolate(perm.code)}</span>`);
|
||||
if (perm.description) {
|
||||
_push(`<span class="text-[11px] text-slate-500 truncate mt-0.5">${ssrInterpolate(perm.description)}</span>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_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(`<!--]--></tr>`);
|
||||
});
|
||||
_push(`<!--]--><!--]-->`);
|
||||
});
|
||||
_push(`<!--]-->`);
|
||||
if (filteredPermissions.value.length === 0) {
|
||||
_push(`<tr><td${ssrRenderAttr("colspan", filteredRoles.value.length + 1)} class="p-8 text-center text-slate-500 text-sm">${ssrInterpolate(unref($t)("permissions.no_permissions"))}</td></tr>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</tbody></table></div>`);
|
||||
if (hasModifications.value) {
|
||||
_push(`<div class="mt-6 flex items-center gap-3 pb-8"><button class="px-6 py-2.5 bg-emerald-600 hover:bg-emerald-500 text-white font-semibold rounded-lg shadow-lg shadow-emerald-600/20 transition-all hover:scale-[1.02] active:scale-[0.98] flex items-center gap-2"><svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7H5a2 2 0 00-2 2v9a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-3m-1 4l-3 3m0 0l-3-3m3 3V4"></path></svg> ${ssrInterpolate(unref($t)("permissions.save_changes"))}</button><button class="px-4 py-2.5 bg-slate-700 hover:bg-slate-600 text-slate-300 font-medium rounded-lg transition">${ssrInterpolate(unref($t)("permissions.discard"))}</button><span class="text-sm text-slate-400">${ssrInterpolate(unref($t)("permissions.modified_count", { count: modifiedRoles.value.size }))}</span></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_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/permissions/index.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
|
||||
export { _sfc_main as default };
|
||||
//# sourceMappingURL=index-D2n0yf-2.mjs.map
|
||||
File diff suppressed because one or more lines are too long
167
frontend_admin/.output/server/chunks/build/index-JpXwtL-Z.mjs
Normal file
167
frontend_admin/.output/server/chunks/build/index-JpXwtL-Z.mjs
Normal file
@@ -0,0 +1,167 @@
|
||||
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
File diff suppressed because one or more lines are too long
181
frontend_admin/.output/server/chunks/build/index-o-V5Lz0_.mjs
Normal file
181
frontend_admin/.output/server/chunks/build/index-o-V5Lz0_.mjs
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -3,7 +3,7 @@ import { defineComponent, ref, mergeProps, unref, withCtx, createTextVNode, useS
|
||||
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-mCjBoLcA.mjs';
|
||||
import { u as useAuthStore } from './auth-RwMj9LdV.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'node:events';
|
||||
@@ -72,4 +72,4 @@ _sfc_main.setup = (props, ctx) => {
|
||||
};
|
||||
|
||||
export { _sfc_main as default };
|
||||
//# sourceMappingURL=login-BHmaTZZZ.mjs.map
|
||||
//# sourceMappingURL=login-Dx4mHuUH.mjs.map
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"login-BHmaTZZZ.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/login-BHmaTZZZ.js"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"login-Dx4mHuUH.mjs","sources":["../../../../.nuxt/dist/server/_nuxt/login-Dx4mHuUH.js"],"names":[],"mappings":"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"}
|
||||
@@ -1,9 +1,9 @@
|
||||
import process from 'node:process';globalThis._importMeta_=globalThis._importMeta_||{url:"file:///_entry.js",env:process.env};import * as Vue from 'vue';
|
||||
import { ref, getCurrentScope, onScopeDispose, inject, computed, hasInjectionContext, getCurrentInstance as getCurrentInstance$1, shallowRef, defineComponent, createElementBlock, provide, cloneVNode, h, defineAsyncComponent, unref, shallowReactive, Suspense, Fragment, createApp, createVNode, Text, onErrorCaptured, onServerPrefetch, resolveDynamicComponent, reactive, effectScope, mergeProps, toRef, withCtx, nextTick, isReadonly, toRaw, useSSRContext, isRef, isShallow, isReactive } 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 { 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 { useRoute as useRoute$1, RouterView, createMemoryHistory, createRouter, START_LOCATION } from 'vue-router';
|
||||
import { ssrRenderSuspense, ssrRenderComponent, ssrRenderVNode } from 'vue/server-renderer';
|
||||
import { ssrRenderComponent, ssrRenderSuspense, ssrRenderVNode } from 'vue/server-renderer';
|
||||
import { u as useHead$1, h as headSymbol } from '../routes/renderer.mjs';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
@@ -459,6 +459,9 @@ const unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU = /* @__PURE__ */ defin
|
||||
function toArray$3(value) {
|
||||
return Array.isArray(value) ? value : [value];
|
||||
}
|
||||
const __nuxt_page_meta = {
|
||||
layout: "blank"
|
||||
};
|
||||
const _routes = [
|
||||
{
|
||||
name: "index",
|
||||
@@ -469,25 +472,32 @@ const _routes = [
|
||||
{
|
||||
name: "login",
|
||||
path: "/login",
|
||||
component: () => import('./login-BHmaTZZZ.mjs')
|
||||
meta: __nuxt_page_meta || {},
|
||||
component: () => import('./login-Dx4mHuUH.mjs')
|
||||
},
|
||||
{
|
||||
name: "garages",
|
||||
path: "/garages",
|
||||
meta: { "middleware": "auth" },
|
||||
component: () => import('./index-ebkVtBaw.mjs')
|
||||
component: () => import('./index-o-V5Lz0_.mjs')
|
||||
},
|
||||
{
|
||||
name: "packages",
|
||||
path: "/packages",
|
||||
meta: { "middleware": "auth" },
|
||||
component: () => import('./index-BPETUF7a.mjs')
|
||||
component: () => import('./index-CII1lBpk.mjs')
|
||||
},
|
||||
{
|
||||
name: "permissions",
|
||||
path: "/permissions",
|
||||
meta: { "middleware": "auth" },
|
||||
component: () => import('./index-7zBAzpaD.mjs')
|
||||
component: () => import('./index-D2n0yf-2.mjs')
|
||||
},
|
||||
{
|
||||
name: "garages-id",
|
||||
path: "/garages/:id()",
|
||||
meta: { "middleware": "auth" },
|
||||
component: () => import('./index-JpXwtL-Z.mjs')
|
||||
}
|
||||
];
|
||||
const _wrapInTransition = (props, children) => {
|
||||
@@ -632,7 +642,7 @@ const globalMiddleware = [
|
||||
manifest_45route_45rule
|
||||
];
|
||||
const namedMiddleware = {
|
||||
auth: () => import('./auth-BgwR5zMA.mjs')
|
||||
auth: () => import('./auth-9ekP0oPk.mjs')
|
||||
};
|
||||
Object.assign(/* @__PURE__ */ Object.create(null), {});
|
||||
const pageIslandRoutes = Object.assign(/* @__PURE__ */ Object.create(null), {});
|
||||
@@ -1417,7 +1427,7 @@ const localeLoaders = {
|
||||
{
|
||||
key: "locale_hu_46json_ee06c965",
|
||||
load: () => import(
|
||||
'./hu-CoGcC81v.mjs'
|
||||
'./hu-B3JxlqZo.mjs'
|
||||
/* webpackChunkName: "locale_hu_46json_ee06c965" */
|
||||
),
|
||||
cache: true
|
||||
@@ -1427,7 +1437,7 @@ const localeLoaders = {
|
||||
{
|
||||
key: "locale_en_46json_0b63539c",
|
||||
load: () => import(
|
||||
'./en-BScPj1A-.mjs'
|
||||
'./en-WIj2pBfh.mjs'
|
||||
/* webpackChunkName: "locale_en_46json_0b63539c" */
|
||||
),
|
||||
cache: true
|
||||
@@ -1567,7 +1577,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: "349b7781", en: "349b7781" };
|
||||
var define_I18N_LOCALE_HASHES_default$1 = { hu: "bb1d6803", en: "bb1d6803" };
|
||||
const useLocaleConfigs = () => useState(
|
||||
"i18n:cached-locale-configs",
|
||||
() => void 0
|
||||
@@ -5897,7 +5907,7 @@ const setupVueI18nOptions = async (defaultLocale) => {
|
||||
}
|
||||
return options;
|
||||
};
|
||||
var define_I18N_LOCALE_HASHES_default = { hu: "349b7781", en: "349b7781" };
|
||||
var define_I18N_LOCALE_HASHES_default = { hu: "bb1d6803", en: "bb1d6803" };
|
||||
const i18n_EI7LsD1KYQADczz5hrChviGQCdVM8yUkvFEZLJpmnvM = /* @__PURE__ */ defineNuxtPlugin({
|
||||
name: "i18n:plugin",
|
||||
parallel: false,
|
||||
@@ -6004,7 +6014,8 @@ const plugins = [
|
||||
ssg_detect_IpHCGcQQ_IR5Rl99qyukWoMA9fJGfuTYyoksTzy81cs
|
||||
];
|
||||
const layouts = {
|
||||
default: defineAsyncComponent(() => import('./default-B9tlXlqE.mjs').then((m) => m.default || m))
|
||||
blank: defineAsyncComponent(() => import('./blank-DWT4RB69.mjs').then((m) => m.default || m)),
|
||||
default: defineAsyncComponent(() => import('./default-DOjdWE8b.mjs').then((m) => m.default || m))
|
||||
};
|
||||
const routeRulesMatcher = _routeRulesMatcher;
|
||||
const LayoutLoader = defineComponent({
|
||||
@@ -6241,37 +6252,39 @@ function normalizeSlot(slot, data) {
|
||||
const slotContent = slot(data);
|
||||
return slotContent.length === 1 ? h(slotContent[0]) : h(Fragment, void 0, slotContent);
|
||||
}
|
||||
const _export_sfc = (sfc, props) => {
|
||||
const target = sfc.__vccOpts || sfc;
|
||||
for (const [key, val] of props) {
|
||||
target[key] = val;
|
||||
}
|
||||
return target;
|
||||
};
|
||||
const _sfc_main$2 = {};
|
||||
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
|
||||
const _component_NuxtLayout = __nuxt_component_0;
|
||||
const _component_NuxtPage = __nuxt_component_1;
|
||||
_push(ssrRenderComponent(_component_NuxtLayout, _attrs, {
|
||||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||||
if (_push2) {
|
||||
_push2(ssrRenderComponent(_component_NuxtPage, null, null, _parent2, _scopeId));
|
||||
} else {
|
||||
return [
|
||||
createVNode(_component_NuxtPage)
|
||||
];
|
||||
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
||||
__name: "app",
|
||||
__ssrInlineRender: true,
|
||||
setup(__props) {
|
||||
useHead({
|
||||
titleTemplate: (titleChunk) => {
|
||||
return titleChunk ? `${titleChunk} | Service Finder Admin` : "Service Finder Admin";
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent));
|
||||
}
|
||||
});
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
const _component_NuxtLayout = __nuxt_component_0;
|
||||
const _component_NuxtPage = __nuxt_component_1;
|
||||
_push(ssrRenderComponent(_component_NuxtLayout, _attrs, {
|
||||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||||
if (_push2) {
|
||||
_push2(ssrRenderComponent(_component_NuxtPage, null, null, _parent2, _scopeId));
|
||||
} else {
|
||||
return [
|
||||
createVNode(_component_NuxtPage)
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent));
|
||||
};
|
||||
}
|
||||
});
|
||||
const _sfc_setup$2 = _sfc_main$2.setup;
|
||||
_sfc_main$2.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("app.vue");
|
||||
return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
|
||||
};
|
||||
const AppComponent = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["ssrRender", _sfc_ssrRender]]);
|
||||
const _sfc_main$1 = {
|
||||
__name: "nuxt-error-page",
|
||||
__ssrInlineRender: true,
|
||||
@@ -6286,8 +6299,8 @@ 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-C_elhLNc.mjs'));
|
||||
const _Error = defineAsyncComponent(() => import('./error-500-C6MJq2Cl.mjs'));
|
||||
const _Error404 = defineAsyncComponent(() => import('./error-404-Bkg5lg69.mjs'));
|
||||
const _Error = defineAsyncComponent(() => import('./error-500-DfEH3Z64.mjs'));
|
||||
const ErrorTemplate = is404 ? _Error404 : _Error;
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
_push(ssrRenderComponent(unref(ErrorTemplate), mergeProps({ status: unref(status), statusText: unref(statusText), statusCode: unref(status), statusMessage: unref(statusText), description: unref(description), stack: unref(stack) }, _attrs), null, _parent));
|
||||
@@ -6345,7 +6358,7 @@ const _sfc_main = {
|
||||
} else if (unref(SingleRenderer)) {
|
||||
ssrRenderVNode(_push, createVNode(resolveDynamicComponent(unref(SingleRenderer)), null, null), _parent);
|
||||
} else {
|
||||
_push(ssrRenderComponent(unref(AppComponent), null, null, _parent));
|
||||
_push(ssrRenderComponent(unref(_sfc_main$2), null, null, _parent));
|
||||
}
|
||||
},
|
||||
_: 1
|
||||
@@ -6379,5 +6392,5 @@ let entry;
|
||||
}
|
||||
const entry_default = ((ssrContext) => entry(ssrContext));
|
||||
|
||||
export { _export_sfc as _, useRouter as a, useCookie as b, useI18n 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, 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 };
|
||||
//# sourceMappingURL=server.mjs.map
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
||||
const interopDefault = r => r.default || r || [];
|
||||
const styles = {
|
||||
"node_modules/nuxt/dist/app/entry.js": () => import('./entry-styles.w3HlJ-9O.mjs').then(interopDefault),
|
||||
"node_modules/nuxt/dist/app/entry.js": () => import('./entry-styles.C2WXX8iB.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)
|
||||
|
||||
@@ -4301,7 +4301,7 @@ function _expandFromEnv(value) {
|
||||
const _inlineRuntimeConfig = {
|
||||
"app": {
|
||||
"baseURL": "/",
|
||||
"buildId": "dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233",
|
||||
"buildId": "e6a51bf7-9efc-4598-aa2a-be03bd94fdda",
|
||||
"buildAssetsDir": "/_nuxt/",
|
||||
"cdnURL": ""
|
||||
},
|
||||
@@ -4932,13 +4932,20 @@ async function getLocaleMessagesMerged(locale, loaders = []) {
|
||||
|
||||
var permissions$1 = {
|
||||
title: "Jogosultság Kezelés",
|
||||
subtitle: "Permissions Management — Role-based access control & subscription feature flags",
|
||||
subtitle: "Jogosultsági Mátrix — Szerepkör alapú hozzáférés-vezérlés",
|
||||
loading: "Jogosultságok betöltése...",
|
||||
error_title: "Nem sikerült betölteni a jogosultságokat",
|
||||
retry: "Újra",
|
||||
save_changes: "Változtatások Mentése",
|
||||
discard: "Elvetés",
|
||||
modified_count: "{count} módosítás",
|
||||
domain_filter: "Tartomány Szűrő (Sorok)",
|
||||
role_filter: "Szerepkör Szűrő (Oszlopok)",
|
||||
select_all: "Összes kiválasztása",
|
||||
deselect_all: "Összes elrejtése",
|
||||
all_domains: "Minden",
|
||||
permission: "Engedély",
|
||||
no_permissions: "Nincsenek engedélyek ebben a tartományban.",
|
||||
current_tier: "Aktuális Csomag",
|
||||
expires: "Lejárat",
|
||||
superadmin: "Superadmin",
|
||||
@@ -4949,19 +4956,7 @@ var permissions$1 = {
|
||||
feature_flags_desc: "Előfizetési funkciók — a jelenlegi csomagod alapján ({tier}).",
|
||||
rbac_title: "RBAC Jogosultsági Mátrix",
|
||||
rbac_desc: "Szerepkör alapú hozzáférés-vezérlés — mely szerepkörök mely admin műveleteket végezhetik.",
|
||||
action: "Művelet",
|
||||
perms: {
|
||||
user_mgmt: "Felhasználókezelés",
|
||||
billing_admin: "Számlázási Adminisztráció",
|
||||
robot_config: "Robot Konfiguráció",
|
||||
system_logs: "Rendszernaplók Elérése",
|
||||
api_keys: "API Kulcs Kezelés",
|
||||
vehicle_crud: "Jármű CRUD",
|
||||
service_booking: "Szervizfoglalás",
|
||||
customer_view: "Ügyféladatok Megtekintése",
|
||||
report_export: "Jelentés Exportálás",
|
||||
bulk_import: "Tömeges Import"
|
||||
}
|
||||
action: "Művelet"
|
||||
};
|
||||
var packages$1 = {
|
||||
title: "Csomagok Kezelése",
|
||||
@@ -4978,6 +4973,7 @@ var packages$1 = {
|
||||
month: "hó",
|
||||
feature_flags: "Elérhető Funkciók",
|
||||
edit: "Szerkesztés",
|
||||
duplicate: "Másolás",
|
||||
"delete": "Törlés",
|
||||
set_as_default: "Beállítás alapértelmezettként",
|
||||
set_as_default_success: "alapértelmezett csomagként beállítva!",
|
||||
@@ -5015,7 +5011,19 @@ var packages$1 = {
|
||||
singleton_rules: "Egyediségi Szabályok",
|
||||
form_is_default_fallback: "Alapértelmezett Visszaesési Csomag — lejárt előfizetés esetén erre vált",
|
||||
form_trial_days: "Próba Napok Regisztrációnál",
|
||||
form_trial_days_hint: "Az új szervezetek ennyi ingyenes napot kapnak. Csak egy csomagnál lehet > 0."
|
||||
form_trial_days_hint: "Az új szervezetek ennyi ingyenes napot kapnak. Csak egy csomagnál lehet > 0.",
|
||||
per_region_pricing: "Régiók szerinti árazás",
|
||||
smart_calculator: "Okos Árkalkulátor",
|
||||
calc_net_price: "Nettó ár",
|
||||
calc_vat_rate: "ÁFA kulcs",
|
||||
calc_currency: "Pénznem",
|
||||
calc_net: "Nettó",
|
||||
calc_vat: "ÁFA",
|
||||
calc_gross: "Bruttó",
|
||||
calc_apply: "Alkalmaz a kiválasztott régióra",
|
||||
add_zone: "Új Zóna Hozzáadása",
|
||||
add_zone_select: "Válassz országkódot...",
|
||||
add_zone_already_exists: "Ez a régió már létezik a csomag árazásában!"
|
||||
};
|
||||
var garages$1 = {
|
||||
title: "Garázsok CRM",
|
||||
@@ -5030,15 +5038,61 @@ var garages$1 = {
|
||||
email: "E-mail",
|
||||
status: "Státusz",
|
||||
current_package: "Aktuális Csomag",
|
||||
expiration_date: "Lejárat Dátuma",
|
||||
actions: "Műveletek",
|
||||
active: "Aktív",
|
||||
inactive: "Inaktív",
|
||||
suspended: "Felfüggesztve",
|
||||
change_package: "Csomag Módosítása",
|
||||
manage_subscription: "Előfizetés Kezelése",
|
||||
view: "Megtekintés",
|
||||
activate: "Aktiválás",
|
||||
deactivate: "Deaktiválás",
|
||||
no_results: "Nincs a keresésnek megfelelő garázs."
|
||||
no_results: "Nincs a keresésnek megfelelő garázs.",
|
||||
loading: "Garázsok betöltése...",
|
||||
retry: "Újra",
|
||||
members: "tag",
|
||||
free_fallback: "Ingyenes / Visszaesési",
|
||||
expires: "Lejárat",
|
||||
select_package: "Csomag Kiválasztása",
|
||||
select_package_placeholder: "Válassz egy előfizetési csomagot...",
|
||||
custom_expiration: "Egyéni Lejárati Dátum",
|
||||
optional: "opcionális",
|
||||
custom_expiration_hint: "Hagyd üresen az alapértelmezett időtartamhoz (pl. 30 nap). 2-5 éves B2B deal-eknél adj meg egyedi dátumot!",
|
||||
cancel: "Mégse",
|
||||
save: "Mentés",
|
||||
saving: "Mentés...",
|
||||
subscription_updated: "előfizetése sikeresen frissítve!",
|
||||
view_details: "Részletek",
|
||||
indefinite: "Határozatlan",
|
||||
details: {
|
||||
loading: "Garázs adatainak betöltése...",
|
||||
retry: "Újra",
|
||||
back: "Vissza a garázsokhoz",
|
||||
company_info: "Cég adatok",
|
||||
company_name: "Cégnév",
|
||||
display_name: "Megjelenítési név",
|
||||
org_type: "Szervezet típusa",
|
||||
tax_number: "Adószám",
|
||||
reg_number: "Cégjegyzékszám",
|
||||
created_at: "Létrehozva",
|
||||
address: "Cím",
|
||||
subscription_info: "Előfizetés státusza",
|
||||
tier_name: "Csomag",
|
||||
tier_level: "Szint",
|
||||
level_n: "{n}. szint",
|
||||
expires_at: "Lejárat",
|
||||
asset_limit: "Járműkorlát",
|
||||
vehicles: "jármű",
|
||||
no_subscription: "Nincs aktív előfizetés",
|
||||
contact_info: "Elérhetőség",
|
||||
contact_name: "Kapcsolattartó neve",
|
||||
contact_role: "Szerepkör",
|
||||
contact_department: "Osztály",
|
||||
contact_phone: "Telefonszám",
|
||||
no_contact: "Nincs elsődleges kapcsolattartó",
|
||||
coming_soon: "Ez a funkció hamarosan elérhető lesz..."
|
||||
}
|
||||
};
|
||||
const locale_hu_46json_ee06c965 = {
|
||||
permissions: permissions$1,
|
||||
@@ -5048,54 +5102,50 @@ const locale_hu_46json_ee06c965 = {
|
||||
|
||||
var permissions = {
|
||||
title: "Permissions Management",
|
||||
subtitle: "Permissions Management — Role-based access control & subscription feature flags",
|
||||
loading: "Loading permissions data...",
|
||||
subtitle: "Permission Matrix — Role-based access control",
|
||||
loading: "Loading permissions...",
|
||||
error_title: "Failed to load permissions",
|
||||
retry: "Retry",
|
||||
save_changes: "Save Changes",
|
||||
discard: "Discard",
|
||||
modified_count: "{count} modification(s)",
|
||||
current_tier: "Current Tier",
|
||||
modified_count: "{count} changes",
|
||||
domain_filter: "Domain Filter (Rows)",
|
||||
role_filter: "Role Filter (Columns)",
|
||||
select_all: "Select All",
|
||||
deselect_all: "Deselect All",
|
||||
all_domains: "All",
|
||||
permission: "Permission",
|
||||
no_permissions: "No permissions in this domain.",
|
||||
current_tier: "Current Package",
|
||||
expires: "Expires",
|
||||
superadmin: "Superadmin",
|
||||
superadmin_desc: "Full system access — user management, billing, robots, and system configuration.",
|
||||
superadmin_desc: "Full system access — users, billing, robots and system configuration.",
|
||||
garages: "Garages",
|
||||
garages_desc: "Garage-level access — vehicle management, service booking, customer data.",
|
||||
feature_flags: "Feature Flags",
|
||||
feature_flags_desc: "Subscription feature toggles — resolved from your current tier ({tier}).",
|
||||
feature_flags_desc: "Subscription features — based on your current plan ({tier}).",
|
||||
rbac_title: "RBAC Permission Matrix",
|
||||
rbac_desc: "Role-based access control — which roles can perform which admin actions.",
|
||||
action: "Action",
|
||||
perms: {
|
||||
user_mgmt: "User Management",
|
||||
billing_admin: "Billing Administration",
|
||||
robot_config: "Robot Configuration",
|
||||
system_logs: "System Logs Access",
|
||||
api_keys: "API Key Management",
|
||||
vehicle_crud: "Vehicle CRUD",
|
||||
service_booking: "Service Booking",
|
||||
customer_view: "Customer Data View",
|
||||
report_export: "Report Export",
|
||||
bulk_import: "Bulk Import"
|
||||
}
|
||||
action: "Action"
|
||||
};
|
||||
var packages = {
|
||||
title: "Package Management",
|
||||
subtitle: "Manage subscription packages and feature flags — Free, Premium, Enterprise",
|
||||
subtitle: "Manage subscription packages and features — Free, Premium, Enterprise",
|
||||
loading: "Loading packages...",
|
||||
retry: "Retry",
|
||||
create_new: "Create Package",
|
||||
create_new: "New Package",
|
||||
no_packages: "No packages yet",
|
||||
no_packages_desc: "Create your first subscription package to get started.",
|
||||
create_first: "Create First Package",
|
||||
popular: "Popular",
|
||||
fallback_badge: "Fallback",
|
||||
trial_badge: "Trial",
|
||||
month: "month",
|
||||
month: "mo",
|
||||
feature_flags: "Available Features",
|
||||
edit: "Edit",
|
||||
duplicate: "Duplicate",
|
||||
"delete": "Delete",
|
||||
set_as_default: "Set as default",
|
||||
set_as_default: "Set as Default",
|
||||
set_as_default_success: "set as default package!",
|
||||
edit_title: "Edit Package",
|
||||
create_title: "Create Package",
|
||||
@@ -5110,7 +5160,7 @@ var packages = {
|
||||
max_vehicles: "Max Vehicles",
|
||||
max_garages: "Max Garages",
|
||||
monthly_credits: "Monthly Credits",
|
||||
tier_level: "Tier Level",
|
||||
tier_level: "Level",
|
||||
form_name: "System Name",
|
||||
form_name_placeholder: "e.g. premium_2024",
|
||||
form_display_name: "Display Name",
|
||||
@@ -5119,19 +5169,31 @@ var packages = {
|
||||
type_private: "Private",
|
||||
type_corporate: "Corporate",
|
||||
form_tier_level: "Tier Level",
|
||||
form_tier_level_hint: "Higher number = more features & higher rank",
|
||||
form_tier_level_hint: "Higher number = more features and higher rank",
|
||||
form_monthly_price: "Monthly Price",
|
||||
form_yearly_price: "Yearly Price",
|
||||
form_currency: "Currency",
|
||||
form_subtitle: "Subtitle / Description",
|
||||
form_subtitle_placeholder: "e.g. Best for small businesses",
|
||||
form_subtitle_placeholder: "e.g. Ideal for small businesses",
|
||||
form_badge: "Badge Text",
|
||||
form_badge_placeholder: "e.g. Most Popular",
|
||||
form_is_custom: "Custom Package (not publicly listed)",
|
||||
form_is_custom: "Custom Package (not public)",
|
||||
singleton_rules: "Singleton Rules",
|
||||
form_is_default_fallback: "Default Fallback Package — assigned when a subscription expires",
|
||||
form_is_default_fallback: "Default Fallback Package — expired subscriptions fall back to this",
|
||||
form_trial_days: "Trial Days on Signup",
|
||||
form_trial_days_hint: "New organizations get this many free days. Only one package can have trial > 0."
|
||||
form_trial_days_hint: "New organizations get this many free days. Only one package can have > 0.",
|
||||
per_region_pricing: "Per-Region Pricing",
|
||||
smart_calculator: "Smart Price Calculator",
|
||||
calc_net_price: "Net Price",
|
||||
calc_vat_rate: "VAT Rate",
|
||||
calc_currency: "Currency",
|
||||
calc_net: "Net",
|
||||
calc_vat: "VAT",
|
||||
calc_gross: "Gross",
|
||||
calc_apply: "Apply to selected region",
|
||||
add_zone: "Add New Zone",
|
||||
add_zone_select: "Select country code...",
|
||||
add_zone_already_exists: "This region already exists in the package pricing!"
|
||||
};
|
||||
var garages = {
|
||||
title: "Garages CRM",
|
||||
@@ -5146,15 +5208,61 @@ var garages = {
|
||||
email: "Email",
|
||||
status: "Status",
|
||||
current_package: "Current Package",
|
||||
expiration_date: "Expiration Date",
|
||||
actions: "Actions",
|
||||
active: "Active",
|
||||
inactive: "Inactive",
|
||||
suspended: "Suspended",
|
||||
change_package: "Change Package",
|
||||
manage_subscription: "Manage Subscription",
|
||||
view: "View",
|
||||
activate: "Activate",
|
||||
deactivate: "Deactivate",
|
||||
no_results: "No garages match your search."
|
||||
no_results: "No garages match your search.",
|
||||
loading: "Loading garages...",
|
||||
retry: "Retry",
|
||||
members: "members",
|
||||
free_fallback: "Free / Fallback",
|
||||
expires: "Expires",
|
||||
select_package: "Select Package",
|
||||
select_package_placeholder: "Select a subscription package...",
|
||||
custom_expiration: "Custom Expiration Date",
|
||||
optional: "optional",
|
||||
custom_expiration_hint: "Leave empty for default duration (e.g. 30 days). For 2-5 year B2B deals, set a custom date!",
|
||||
cancel: "Cancel",
|
||||
save: "Save",
|
||||
saving: "Saving...",
|
||||
subscription_updated: "subscription updated successfully!",
|
||||
view_details: "Details",
|
||||
indefinite: "Indefinite",
|
||||
details: {
|
||||
loading: "Loading garage details...",
|
||||
retry: "Retry",
|
||||
back: "Back to garages",
|
||||
company_info: "Company Info",
|
||||
company_name: "Company Name",
|
||||
display_name: "Display Name",
|
||||
org_type: "Organization Type",
|
||||
tax_number: "Tax Number",
|
||||
reg_number: "Registration Number",
|
||||
created_at: "Created At",
|
||||
address: "Address",
|
||||
subscription_info: "Subscription Status",
|
||||
tier_name: "Package",
|
||||
tier_level: "Level",
|
||||
level_n: "Level {n}",
|
||||
expires_at: "Expires",
|
||||
asset_limit: "Vehicle Limit",
|
||||
vehicles: "vehicles",
|
||||
no_subscription: "No active subscription",
|
||||
contact_info: "Contact Info",
|
||||
contact_name: "Contact Name",
|
||||
contact_role: "Role",
|
||||
contact_department: "Department",
|
||||
contact_phone: "Phone",
|
||||
no_contact: "No primary contact person",
|
||||
coming_soon: "This feature will be available soon..."
|
||||
}
|
||||
};
|
||||
const locale_en_46json_0b63539c = {
|
||||
permissions: permissions,
|
||||
@@ -5680,164 +5788,185 @@ const plugins = [
|
||||
];
|
||||
|
||||
const assets = {
|
||||
"/_nuxt/9W9VXtTt.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"d10-1ygGQ8OwwV4VTbe0ORwxMQ/AnEU\"",
|
||||
"mtime": "2026-06-25T00:01:28.108Z",
|
||||
"size": 3344,
|
||||
"path": "../public/_nuxt/9W9VXtTt.js"
|
||||
},
|
||||
"/logo.svg": {
|
||||
"type": "image/svg+xml",
|
||||
"etag": "\"1c93-1cv7aKDbuz99JYhQ43U9hm4KE3Q\"",
|
||||
"mtime": "2026-06-25T00:01:28.112Z",
|
||||
"mtime": "2026-06-25T19:21:59.599Z",
|
||||
"size": 7315,
|
||||
"path": "../public/logo.svg"
|
||||
},
|
||||
"/_nuxt/BO90Bn6x.js": {
|
||||
"/_nuxt/B2nIQl38.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"3be2-eOMMdZRJVXep6GD0Pd3WgyaGHBQ\"",
|
||||
"mtime": "2026-06-25T00:01:28.108Z",
|
||||
"size": 15330,
|
||||
"path": "../public/_nuxt/BO90Bn6x.js"
|
||||
"etag": "\"ee-bmGBVwWZSnEQvM5uWwBnEYHRSbI\"",
|
||||
"mtime": "2026-06-25T19:21:59.595Z",
|
||||
"size": 238,
|
||||
"path": "../public/_nuxt/B2nIQl38.js"
|
||||
},
|
||||
"/_nuxt/C8yzOtqa.js": {
|
||||
"/_nuxt/C3lSWcZz.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"e97-g+Qv3oIgIL72U9J8qSVSJKOYS3o\"",
|
||||
"mtime": "2026-06-25T00:01:28.108Z",
|
||||
"size": 3735,
|
||||
"path": "../public/_nuxt/C8yzOtqa.js"
|
||||
"etag": "\"4459-lQidT49p1kxB9w1vDNecOH7RI80\"",
|
||||
"mtime": "2026-06-25T19:21:59.595Z",
|
||||
"size": 17497,
|
||||
"path": "../public/_nuxt/C3lSWcZz.js"
|
||||
},
|
||||
"/_nuxt/CC4zKGJo.js": {
|
||||
"/_nuxt/BezjjCqI.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"30f7-gXOCgC6dBhanJ7m+eXDasYpx3Mw\"",
|
||||
"mtime": "2026-06-25T00:01:28.108Z",
|
||||
"size": 12535,
|
||||
"path": "../public/_nuxt/CC4zKGJo.js"
|
||||
"etag": "\"3138-bV6RTlY/lnwf3amGqJs5QTfuybc\"",
|
||||
"mtime": "2026-06-25T19:21:59.595Z",
|
||||
"size": 12600,
|
||||
"path": "../public/_nuxt/BezjjCqI.js"
|
||||
},
|
||||
"/_nuxt/CWA6Xjbg.js": {
|
||||
"/_nuxt/C8W4Ef6u.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"616-/F9iCFrrlsdHfBojvJzEkxWY92A\"",
|
||||
"mtime": "2026-06-25T00:01:28.109Z",
|
||||
"size": 1558,
|
||||
"path": "../public/_nuxt/CWA6Xjbg.js"
|
||||
"etag": "\"d10-b3veiVg1KcwDvFZje+kFbRofh+c\"",
|
||||
"mtime": "2026-06-25T19:21:59.595Z",
|
||||
"size": 3344,
|
||||
"path": "../public/_nuxt/C8W4Ef6u.js"
|
||||
},
|
||||
"/_nuxt/CgyjcGAF.js": {
|
||||
"/_nuxt/D5l8f-my.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"18ee-IWmEKuI1gHllpfBLWz7c1JaaVb0\"",
|
||||
"mtime": "2026-06-25T00:01:28.109Z",
|
||||
"size": 6382,
|
||||
"path": "../public/_nuxt/CgyjcGAF.js"
|
||||
},
|
||||
"/_nuxt/CqyNVJx6.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"1fb8-6HMViIUt89gbMbGrS+qjniFBDXY\"",
|
||||
"mtime": "2026-06-25T00:01:28.109Z",
|
||||
"etag": "\"1fb8-oygMBGIM4cWbpfDgP8iH6j3aj7E\"",
|
||||
"mtime": "2026-06-25T19:21:59.596Z",
|
||||
"size": 8120,
|
||||
"path": "../public/_nuxt/CqyNVJx6.js"
|
||||
"path": "../public/_nuxt/D5l8f-my.js"
|
||||
},
|
||||
"/_nuxt/Cx40nPNe.js": {
|
||||
"/_nuxt/CLBsD5qj.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"d2a-PVIoh3nGCytU0EY8w9TwVEKz5hw\"",
|
||||
"mtime": "2026-06-25T00:01:28.109Z",
|
||||
"size": 3370,
|
||||
"path": "../public/_nuxt/Cx40nPNe.js"
|
||||
"etag": "\"d45-05hm12oPZB69cRnr5Mnlj3ZaC68\"",
|
||||
"mtime": "2026-06-25T19:21:59.595Z",
|
||||
"size": 3397,
|
||||
"path": "../public/_nuxt/CLBsD5qj.js"
|
||||
},
|
||||
"/_nuxt/DP_n9i02.js": {
|
||||
"/_nuxt/DSOY2KzZ.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"1a56-wQcZfXtRyqQuRYq3Vb7WJxYDoKg\"",
|
||||
"mtime": "2026-06-25T00:01:28.109Z",
|
||||
"size": 6742,
|
||||
"path": "../public/_nuxt/DP_n9i02.js"
|
||||
"etag": "\"201-G/eh9BpHcgvEa8FKqQ57mrXGBqo\"",
|
||||
"mtime": "2026-06-25T19:21:59.596Z",
|
||||
"size": 513,
|
||||
"path": "../public/_nuxt/DSOY2KzZ.js"
|
||||
},
|
||||
"/_nuxt/DWjNh9rV.js": {
|
||||
"/_nuxt/DKEj_yij.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"444-U5PaXXhpfzdQ9Gz+o+GnJBs7RhA\"",
|
||||
"mtime": "2026-06-25T00:01:28.109Z",
|
||||
"size": 1092,
|
||||
"path": "../public/_nuxt/DWjNh9rV.js"
|
||||
"etag": "\"617-pBcdIfoofXib/TxCr3MyKJ6TXYA\"",
|
||||
"mtime": "2026-06-25T19:21:59.596Z",
|
||||
"size": 1559,
|
||||
"path": "../public/_nuxt/DKEj_yij.js"
|
||||
},
|
||||
"/_nuxt/Da4aCGAe.js": {
|
||||
"/_nuxt/DiHJCuau.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"1613-5rxIwz6i7CxojjuXQmd8mInWod8\"",
|
||||
"mtime": "2026-06-25T00:01:28.110Z",
|
||||
"size": 5651,
|
||||
"path": "../public/_nuxt/Da4aCGAe.js"
|
||||
"etag": "\"26cf-CnvewaYlk4KZXb5oWMvAcgx0EAI\"",
|
||||
"mtime": "2026-06-25T19:21:59.596Z",
|
||||
"size": 9935,
|
||||
"path": "../public/_nuxt/DiHJCuau.js"
|
||||
},
|
||||
"/_nuxt/DuYZ8wdr.js": {
|
||||
"/_nuxt/DlAUqK2U.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"a5-dDh+JP1OYQEoH+LiAVuR1WxDtRg\"",
|
||||
"mtime": "2026-06-25T00:01:28.110Z",
|
||||
"size": 165,
|
||||
"path": "../public/_nuxt/DuYZ8wdr.js"
|
||||
"etag": "\"5b-eFCz/UrraTh721pgAl0VxBNR1es\"",
|
||||
"mtime": "2026-06-25T19:21:59.596Z",
|
||||
"size": 91,
|
||||
"path": "../public/_nuxt/DlAUqK2U.js"
|
||||
},
|
||||
"/_nuxt/DyJFDhDL.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"
|
||||
},
|
||||
"/_nuxt/HwQw-d2b.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"
|
||||
},
|
||||
"/_nuxt/entry.KrfumMBl.css": {
|
||||
"type": "text/css; charset=utf-8",
|
||||
"etag": "\"19-60Qvpq/4eRs/sHLgNwhHUEqqm/o\"",
|
||||
"mtime": "2026-06-25T00:01:28.110Z",
|
||||
"mtime": "2026-06-25T19:21:59.596Z",
|
||||
"size": 25,
|
||||
"path": "../public/_nuxt/entry.KrfumMBl.css"
|
||||
},
|
||||
"/_nuxt/CqYPuxVf.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"3eefb-JwnLkq4JppZIxgkcGPsOibTdfts\"",
|
||||
"mtime": "2026-06-25T00:01:28.109Z",
|
||||
"size": 257787,
|
||||
"path": "../public/_nuxt/CqYPuxVf.js"
|
||||
},
|
||||
"/_nuxt/error-404.DL_4WIao.css": {
|
||||
"type": "text/css; charset=utf-8",
|
||||
"etag": "\"dca-KnjyV0UbpsrliiJzZx69defY74k\"",
|
||||
"mtime": "2026-06-25T00:01:28.110Z",
|
||||
"mtime": "2026-06-25T19:21:59.597Z",
|
||||
"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-25T00:01:28.110Z",
|
||||
"mtime": "2026-06-25T19:21:59.597Z",
|
||||
"size": 1882,
|
||||
"path": "../public/_nuxt/error-500.I1Dtv2V5.css"
|
||||
},
|
||||
"/_nuxt/ncKxzOzI.js": {
|
||||
"/_nuxt/CHWHIiGB.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"7168-oyelrzyCgmWiem0nExZjccXNyBY\"",
|
||||
"mtime": "2026-06-25T00:01:28.110Z",
|
||||
"size": 29032,
|
||||
"path": "../public/_nuxt/ncKxzOzI.js"
|
||||
"etag": "\"3f07b-06dmf8DFw22T6UIMpyeT+t7VBvY\"",
|
||||
"mtime": "2026-06-25T19:21:59.595Z",
|
||||
"size": 258171,
|
||||
"path": "../public/_nuxt/CHWHIiGB.js"
|
||||
},
|
||||
"/_nuxt/zPyClsoP.js": {
|
||||
"/_nuxt/KwNF0Piy.js": {
|
||||
"type": "text/javascript; charset=utf-8",
|
||||
"etag": "\"331b-h6zrom30VlrXYypt2LSqaquX5p0\"",
|
||||
"mtime": "2026-06-25T00:01:28.110Z",
|
||||
"size": 13083,
|
||||
"path": "../public/_nuxt/zPyClsoP.js"
|
||||
"etag": "\"2fe2-tOrtDTtc4U0iux12t4oRzSKA8qg\"",
|
||||
"mtime": "2026-06-25T19:21:59.596Z",
|
||||
"size": 12258,
|
||||
"path": "../public/_nuxt/KwNF0Piy.js"
|
||||
},
|
||||
"/_nuxt/builds/latest.json": {
|
||||
"type": "application/json",
|
||||
"etag": "\"47-dTkj5Cjp5AUFPrYaZFB/8XM0C1s\"",
|
||||
"mtime": "2026-06-25T00:01:28.102Z",
|
||||
"etag": "\"47-DH6q3zJLj6/QAgbu1aPivGQPJQ0\"",
|
||||
"mtime": "2026-06-25T19:21:59.588Z",
|
||||
"size": 71,
|
||||
"path": "../public/_nuxt/builds/latest.json"
|
||||
},
|
||||
"/_nuxt/builds/meta/dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233.json": {
|
||||
"type": "application/json",
|
||||
"etag": "\"58-Jb6y6LJEoI0itMvdHhMqddt3SEo\"",
|
||||
"mtime": "2026-06-25T00:01:28.098Z",
|
||||
"size": 88,
|
||||
"path": "../public/_nuxt/builds/meta/dc3dd2d5-39c2-4460-b2e0-c8f86bc8b233.json"
|
||||
},
|
||||
"/_nuxt/builds/meta/dev.json": {
|
||||
"type": "application/json",
|
||||
"etag": "\"37-Hj3Yw6O0wi0qKWP0yCgLQiM2C48\"",
|
||||
"mtime": "2026-06-25T00:01:28.098Z",
|
||||
"etag": "\"37-xpdQ7w/qFSiQCPvcwhaysTLg5Jg\"",
|
||||
"mtime": "2026-06-25T19:21:59.584Z",
|
||||
"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-25T00:01:28.112Z",
|
||||
"mtime": "2026-06-25T19:21:59.599Z",
|
||||
"size": 4417192,
|
||||
"path": "../public/sf_logo.png"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user