Compare commits

..

9 Commits

Author SHA1 Message Date
fabio
24f86915b4 build 2026-02-19 18:54:57 +01:00
fabio
29b4f99d9f aggiunto reddito acessorio 2026-02-19 18:54:22 +01:00
fabio
7f3543fe4c commit info 2026-02-19 12:56:08 +01:00
fabio
62da803a05 test commit 2026-02-19 12:55:29 +01:00
fabio
ed517ccc9d da ignorare 2026-02-19 12:54:19 +01:00
fabio
d5c957dd73 test gen commit info 2026-02-19 12:53:33 +01:00
fabio
00c7da9495 aggiornato gitignore 2026-02-19 12:34:58 +01:00
fabio
ec967718a7 aggiunto info cmmit sulla toolbar 2026-02-19 12:31:58 +01:00
fabio
a75f970b33 build 2026-02-19 10:41:13 +01:00
56 changed files with 248 additions and 31 deletions

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
app/node_modules
.DS_Store
app/commit-info.ts

View File

@@ -0,0 +1 @@
import{Q as q}from"./userstore-SjLknvTP.js";import{$ as F,r as v,a as i,aa as d,a3 as u,a5 as s,a4 as m,a1 as _,a7 as S,a8 as c,a9 as p,a6 as j}from"./index-GXFLJtQL.js";import{A as I}from"./AddressModal-Y6dYCZ_T.js";import{u as N}from"./vue-i18n.runtime-BXSOjn_j.js";import{_ as z}from"./IndexPage-C20RwqJI.js";const Q={class:"row items-center q-gutter-sm q-mb-sm q-mt-md"},T={class:"col-auto"},E={class:"col"},H={class:"text-caption"},M={class:"q-pa-sm bg-grey-2 q-mb-sm"},O={key:0,class:"text-negative"},D={key:1},U=F({__name:"AddressInput",props:{modelValue:{},label:{},allowForeign:{type:Boolean},hint:{}},emits:["update:modelValue","save","cancel"],setup(g,{emit:h}){const o=g,r=h,{t:l}=N(),n=v(!1),y=v(null),V=o.label||l("address"),b=o.allowForeign??!0,x=i(()=>{const e=o.modelValue;if(console.log("address input formatted",e),!e)return"";const t=e.country?.name||"";return e.country.code==="CH"?[e.street,String(e.cap||""),e.city,e.canton].filter(Boolean).join(", "):[e.street,String(e.cap||""),e.city,t].filter(Boolean).join(", ")}),A=i(()=>{const e=o.modelValue;return e?!(e.street||e.city||e.cap||e.country&&e.country.code):!0}),w=i(()=>o.hint||l("validation.insertAddress"));function B(){const e=o.modelValue;y.value=e?{street:e.street||"",zip:String(e.cap||""),city:e.city||"",country:e.country&&e.country.code||"",canton:e.canton||"",foreign:!!(e.country&&e.country.code&&e.country.code!=="CH")}:{street:"",zip:"",city:"",country:"",canton:"",foreign:!0},n.value=!0}function C(e){let t={code:"",name:""};if(!e.country)t={code:"",name:""};else if(typeof e.country=="string")t={code:e.country,name:e.country};else if(typeof e.country=="object"&&e.country!==null){const f=e.country;t={code:f.code||"",name:f.name||""}}const a={street:e.street||"",cap:e.zip||"",city:e.city||"",country:t,canton:e.canton||""};r("update:modelValue",a),r("save",a),n.value=!1}function k(){r("cancel"),n.value=!1}return(e,t)=>(u(),d("div",null,[s("div",Q,[s("div",T,[m(j,{dense:"",flat:"",round:"",icon:"edit",onClick:B},{default:_(()=>[m(q,{class:"bg-primary text-white"},{default:_(()=>[S(c(p(l)("children.editAddress")),1)]),_:1})]),_:1})]),s("div",E,[s("div",H,c(p(V)),1)])]),s("div",M,[A.value?(u(),d("div",O,c(w.value),1)):(u(),d("div",D,c(x.value),1))]),m(I,{modelValue:n.value,"onUpdate:modelValue":t[0]||(t[0]=a=>n.value=a),modelAddress:y.value,allowForeign:p(b),onSave:C,onCancel:k},null,8,["modelValue","modelAddress","allowForeign"])]))}}),P=z(U,[["__scopeId","data-v-b68f19ad"]]);export{P as A};

View File

@@ -1 +0,0 @@
import{b as q}from"./userstore-t-JK1J0e.js";import{$ as F,r as v,a as i,a9 as d,a3 as u,a5 as s,a4 as m,a1 as _,a7 as S,a8 as c,ac as p,a6 as j}from"./index-CBamscxj.js";import{A as I}from"./CommentAttachment-B387hLmi.js";import{u as N}from"./vue-i18n.runtime-BGZkCWQI.js";import{_ as z}from"./IndexPage-CArgvUEp.js";const T={class:"row items-center q-gutter-sm q-mb-sm q-mt-md"},E={class:"col-auto"},H={class:"col"},M={class:"text-caption"},O={class:"q-pa-sm bg-grey-2 q-mb-sm"},Q={key:0,class:"text-negative"},D={key:1},U=F({__name:"AddressInput",props:{modelValue:{},label:{},allowForeign:{type:Boolean},hint:{}},emits:["update:modelValue","save","cancel"],setup(g,{emit:h}){const o=g,r=h,{t:l}=N(),n=v(!1),y=v(null),V=o.label||l("address"),b=o.allowForeign??!0,x=i(()=>{const e=o.modelValue;if(console.log("address input formatted",e),!e)return"";const t=e.country?.name||"";return e.country.code==="CH"?[e.street,String(e.cap||""),e.city,e.canton].filter(Boolean).join(", "):[e.street,String(e.cap||""),e.city,t].filter(Boolean).join(", ")}),A=i(()=>{const e=o.modelValue;return e?!(e.street||e.city||e.cap||e.country&&e.country.code):!0}),w=i(()=>o.hint||l("validation.insertAddress"));function B(){const e=o.modelValue;y.value=e?{street:e.street||"",zip:String(e.cap||""),city:e.city||"",country:e.country&&e.country.code||"",canton:e.canton||"",foreign:!!(e.country&&e.country.code&&e.country.code!=="CH")}:{street:"",zip:"",city:"",country:"",canton:"",foreign:!0},n.value=!0}function C(e){let t={code:"",name:""};if(!e.country)t={code:"",name:""};else if(typeof e.country=="string")t={code:e.country,name:e.country};else if(typeof e.country=="object"&&e.country!==null){const f=e.country;t={code:f.code||"",name:f.name||""}}const a={street:e.street||"",cap:e.zip||"",city:e.city||"",country:t,canton:e.canton||""};r("update:modelValue",a),r("save",a),n.value=!1}function k(){r("cancel"),n.value=!1}return(e,t)=>(u(),d("div",null,[s("div",T,[s("div",E,[m(j,{dense:"",flat:"",round:"",icon:"edit",onClick:B},{default:_(()=>[m(q,{class:"bg-primary text-white"},{default:_(()=>[S(c(p(l)("children.editAddress")),1)]),_:1})]),_:1})]),s("div",H,[s("div",M,c(p(V)),1)])]),s("div",O,[A.value?(u(),d("div",Q,c(w.value),1)):(u(),d("div",D,c(x.value),1))]),m(I,{modelValue:n.value,"onUpdate:modelValue":t[0]||(t[0]=a=>n.value=a),modelAddress:y.value,allowForeign:p(b),onSave:C,onCancel:k},null,8,["modelValue","modelAddress","allowForeign"])]))}}),P=z(U,[["__scopeId","data-v-b68f19ad"]]);export{P as A};

View File

@@ -0,0 +1 @@
.contained-card[data-v-00430335]{min-width:420px;max-width:720px}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.comment-attachment[data-v-a0ff9b6f]{font-size:14px}.comment-attachment__file-name[data-v-a0ff9b6f]{font-size:14px!important;width:100%;background-color:#0000001a}.text-grey[data-v-a0ff9b6f]{color:#00000073}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
.contained-card[data-v-00430335]{min-width:420px;max-width:720px}.comment-attachment[data-v-a0ff9b6f]{font-size:14px}.comment-attachment__file-name[data-v-a0ff9b6f]{font-size:14px!important;width:100%;background-color:#0000001a}.text-grey[data-v-a0ff9b6f]{color:#00000073}

View File

@@ -1 +1 @@
import{$ as o,a9 as s,a5 as t,a4 as a,a3 as l,a6 as n}from"./index-CBamscxj.js";const r={class:"fullscreen bg-blue text-white text-center q-pa-md flex flex-center"},p=o({__name:"ErrorNotFound",setup(c){return(i,e)=>(l(),s("div",r,[t("div",null,[e[0]||(e[0]=t("div",{style:{"font-size":"30vh"}},"404",-1)),e[1]||(e[1]=t("div",{class:"text-h2",style:{opacity:"0.4"}},"Oops. Nothing here...",-1)),a(n,{class:"q-mt-xl",color:"white","text-color":"blue",unelevated:"",to:"/",label:"Go Home","no-caps":""})])]))}});export{p as default};
import{$ as o,aa as s,a5 as t,a4 as a,a3 as l,a6 as n}from"./index-GXFLJtQL.js";const r={class:"fullscreen bg-blue text-white text-center q-pa-md flex flex-center"},p=o({__name:"ErrorNotFound",setup(c){return(i,e)=>(l(),s("div",r,[t("div",null,[e[0]||(e[0]=t("div",{style:{"font-size":"30vh"}},"404",-1)),e[1]||(e[1]=t("div",{class:"text-h2",style:{opacity:"0.4"}},"Oops. Nothing here...",-1)),a(n,{class:"q-mt-xl",color:"white","text-color":"blue",unelevated:"",to:"/",label:"Go Home","no-caps":""})])]))}});export{p as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/WelcomeStep-DnQ67BQt.js","assets/index-GXFLJtQL.js","assets/index-BQveqNql.css","assets/vue-i18n.runtime-BXSOjn_j.js","assets/QList-BZpTot_c.js","assets/WelcomeStep-BTfvnfIz.css","assets/TaxpayerStep-Bc6zztuA.js","assets/QChip-DE2_FO3B.js","assets/taxstore-CFm87Oqg.js","assets/LocalStorage-DjXJ9f5H.js","assets/AddressInput-CoglolOc.js","assets/userstore-SjLknvTP.js","assets/AddressModal-Y6dYCZ_T.js","assets/QSelect-mYEcqVHl.js","assets/QMenu-MNqKCtrf.js","assets/AddressModal-DONi1s2A.css","assets/AddressInput-DTjVpzGz.css","assets/CommentAttachment-DGUhSBXt.js","assets/CommentAttachment-CzrGSxHS.css","assets/TaxpayerStep-CWAfROv3.css","assets/MaritalStep-BHFgu04r.js","assets/MaritalStep-C-FftozQ.css","assets/ChildrenStep-Di1mJZJ4.js","assets/children-CpfEvZEN.js","assets/ChildrenStep-CyFMlGKq.css","assets/IncomeStep-DfHNzbom.js","assets/IncomeStep-Cw8mizyx.css","assets/ProfessionalExpensesStep-DDXUXgUj.js","assets/ProfessionalExpensesStep-D4g67cgn.css","assets/SideIncomeStep-BrBQMl9k.js","assets/SideIncomeStep-DriiBlt0.css"])))=>i.map(i=>d[i]);
import{c as A,g as Q,k as P,m as _,p as R,X as D,a as g,h as O,b as w,$ as S,r as L,ad as s,aa as m,a3 as d,a5 as C,a4 as v,a1 as p,ab as V,ac as $,a0 as b,a8 as I,a9 as E,ae as T,af as q,ag as B,ah as F,ai as l}from"./index-GXFLJtQL.js";import{a as z,b as N,Q as j}from"./QList-BZpTot_c.js";const H=A({name:"QPage",props:{padding:Boolean,styleFn:Function},setup(a,{slots:o}){const{proxy:{$q:i}}=Q(),t=P(R,_);if(t===_)return console.error("QPage needs to be a deep child of QLayout"),_;if(P(D,_)===_)return console.error("QPage needs to be child of QPageContainer"),_;const f=g(()=>{const n=(t.header.space===!0?t.header.size:0)+(t.footer.space===!0?t.footer.size:0);if(typeof a.styleFn=="function"){const y=t.isContainer.value===!0?t.containerHeight.value:i.screen.height;return a.styleFn(n,y)}return{minHeight:t.isContainer.value===!0?t.containerHeight.value-n+"px":i.screen.height===0?n!==0?`calc(100vh - ${n}px)`:"100vh":i.screen.height-n+"px"}}),h=g(()=>`q-page${a.padding===!0?" q-layout-padding":""}`);return()=>O("main",{class:h.value,style:f.value},w(o.default))}}),K={class:"row full-height"},M={class:"col-3 q-pa-sm bg-grey-1"},X={class:"text-body1"},G={class:"col q-pa-md full-height"},J={key:0,class:"text-h6"},U={key:2,class:"q-mt-md"},W=S({__name:"StepsStepper",setup(a){const o=[{id:"welcome",title:"Benvenuto",order:0},{id:"taxpayer",title:"Dati contribuente e dichiarazione precedente",order:1},{id:"marital",title:"Stato civile",order:2},{id:"children",title:"Figli",order:3},{id:"income",title:"Redditi",order:4},{id:"professionalExpenses",title:"Spese professionali",order:5},{id:"sideIncome",title:"Reddito accessorio",order:6},{id:"annuities",title:"Rendite",order:7},{id:"insurance",title:"Spese assicurative e mediche",order:8},{id:"pillar3",title:"Polizze 3A / 3B",order:9},{id:"bankAccounts",title:"Conti bancari",order:10},{id:"otherAssets",title:"Altri beni / averi",order:11},{id:"debts",title:"Debiti / ipoteche",order:12},{id:"properties",title:"Immobili",order:13},{id:"foreign",title:"Redditi o averi allestero",order:14}],i=Math.max(...o.map(e=>e.order)),t=new Array(i+1).fill(void 0).map(()=>({}));o.forEach(e=>{t[e.order]={id:e.id,title:e.title,order:e.order}});const r=L(0),f=g(()=>{const e=t[r.value]?.id;return e==="welcome"?s(()=>l(()=>import("./WelcomeStep-DnQ67BQt.js"),__vite__mapDeps([0,1,2,3,4,5]))):e==="taxpayer"?s(()=>l(()=>import("./TaxpayerStep-Bc6zztuA.js"),__vite__mapDeps([6,1,2,7,8,9,10,11,12,13,4,14,3,15,16,17,18,19]))):e==="marital"?s(()=>l(()=>import("./MaritalStep-BHFgu04r.js"),__vite__mapDeps([20,1,2,13,7,4,14,9,8,10,11,12,3,15,16,17,18,21]))):e==="children"?s(()=>l(()=>import("./ChildrenStep-Di1mJZJ4.js"),__vite__mapDeps([22,1,2,13,7,4,14,9,11,12,3,15,23,8,17,18,24]))):e==="income"?s(()=>l(()=>import("./IncomeStep-DfHNzbom.js"),__vite__mapDeps([25,1,2,13,7,4,14,9,11,3,26]))):e==="professionalExpenses"?s(()=>l(()=>import("./ProfessionalExpensesStep-DDXUXgUj.js"),__vite__mapDeps([27,1,2,13,7,4,14,9,3,28]))):e==="sideIncome"?s(()=>l(()=>import("./SideIncomeStep-BrBQMl9k.js"),__vite__mapDeps([29,1,2,7,9,17,11,3,18,4,30]))):null}),h=g(()=>t[r.value]);function n(e){if(typeof e=="string"){const c=t.findIndex(u=>u.id===e);if(c!==-1){r.value=c;return}}r.value<t.length-1&&r.value++}function y(e){if(typeof e=="string"){const c=t.findIndex(u=>u.id===e);if(c!==-1){r.value=c;return}}r.value>0&&r.value--}return(e,c)=>(d(),m("div",K,[C("div",M,[v(j,{dense:"",bordered:"",class:"vertical-nav"},{default:p(()=>[(d(!0),m(V,null,$(E(t),(u,x)=>(d(),b(z,{key:u.id,clickable:"",onClick:te=>r.value=x,active:r.value===x},{default:p(()=>[v(N,null,{default:p(()=>[C("div",X,I(x+1)+". "+I(u.title),1)]),_:2},1024)]),_:2},1032,["onClick","active"]))),128))]),_:1})]),C("div",G,[v(F,{flat:"",class:"q-pa-md full-height"},{default:p(()=>[v(T,null,{default:p(()=>[f.value?q("",!0):(d(),m("div",J,I(E(t)[r.value]?.title),1)),f.value&&h.value?(d(),b(B(f.value),{key:1,step:h.value,onNext:n,onPrev:y},null,40,["step"])):(d(),m("div",U))]),_:1})]),_:1})])]))}}),k=(a,o)=>{const i=a.__vccOpts||a;for(const[t,r]of o)i[t]=r;return i},Y=k(W,[["__scopeId","data-v-a035370f"]]),Z=S({__name:"IndexPage",setup(a){return(o,i)=>(d(),b(H,{class:"row full-width justify-center full-height"},{default:p(()=>[v(Y,{class:"no-shadow full-height full-width"})]),_:1}))}}),ee=k(Z,[["__scopeId","data-v-1cafec6b"]]),ae=Object.freeze(Object.defineProperty({__proto__:null,default:ee},Symbol.toStringTag,{value:"Module"}));export{ae as I,k as _};

View File

@@ -1,2 +0,0 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/WelcomeStep-CceGeOSt.js","assets/index-CBamscxj.js","assets/index-BQveqNql.css","assets/vue-i18n.runtime-BGZkCWQI.js","assets/QList-1f0ZmkRo.js","assets/WelcomeStep-BTfvnfIz.css","assets/TaxpayerStep-BW5eA-Yt.js","assets/userstore-t-JK1J0e.js","assets/LocalStorage-fNBzdRj6.js","assets/taxstore-Cn_AGwIc.js","assets/AddressInput-DRy7VRhk.js","assets/CommentAttachment-B387hLmi.js","assets/CommentAttachment-M56Dxc2A.css","assets/AddressInput-DTjVpzGz.css","assets/TaxpayerStep-CWAfROv3.css","assets/MaritalStep-BE56kGyF.js","assets/MaritalStep-C-FftozQ.css","assets/ChildrenStep-DyqlyPDG.js","assets/children-ByTDTrnW.js","assets/ChildrenStep-CyFMlGKq.css","assets/IncomeStep-hqFZm4PA.js","assets/IncomeStep-Cw8mizyx.css"])))=>i.map(i=>d[i]);
import{c as Q,g as A,j as P,k as c,m as w,X as R,a as g,h as $,b as D,$ as k,r as O,ad as p,a9 as m,a3 as s,a5 as C,a4 as v,a1 as u,aa as L,ab as V,a0 as I,a8 as b,ac as S,ae as q,af as B,ag as F,ah as z,ai as f}from"./index-CBamscxj.js";import{a as T,b as j,Q as N}from"./QList-1f0ZmkRo.js";const H=Q({name:"QPage",props:{padding:Boolean,styleFn:Function},setup(r,{slots:o}){const{proxy:{$q:i}}=A(),e=P(w,c);if(e===c)return console.error("QPage needs to be a deep child of QLayout"),c;if(P(R,c)===c)return console.error("QPage needs to be child of QPageContainer"),c;const _=g(()=>{const n=(e.header.space===!0?e.header.size:0)+(e.footer.space===!0?e.footer.size:0);if(typeof r.styleFn=="function"){const y=e.isContainer.value===!0?e.containerHeight.value:i.screen.height;return r.styleFn(n,y)}return{minHeight:e.isContainer.value===!0?e.containerHeight.value-n+"px":i.screen.height===0?n!==0?`calc(100vh - ${n}px)`:"100vh":i.screen.height-n+"px"}}),h=g(()=>`q-page${r.padding===!0?" q-layout-padding":""}`);return()=>$("main",{class:h.value,style:_.value},D(o.default))}}),K={class:"row full-height"},M={class:"col-3 q-pa-sm bg-grey-1"},X={class:"text-body1"},G={class:"col q-pa-md full-height"},J={key:0,class:"text-h6"},U={key:2,class:"q-mt-md"},W=k({__name:"StepsStepper",setup(r){const o=[{id:"welcome",title:"Benvenuto",order:0},{id:"taxpayer",title:"Dati contribuente e dichiarazione precedente",order:1},{id:"marital",title:"Stato civile",order:2},{id:"children",title:"Figli",order:3},{id:"income",title:"Redditi",order:4},{id:"professionalExpenses",title:"Spese professionali",order:5},{id:"sideIncome",title:"Reddito accessorio",order:6},{id:"annuities",title:"Rendite",order:7},{id:"insurance",title:"Spese assicurative e mediche",order:8},{id:"pillar3",title:"Polizze 3A / 3B",order:9},{id:"bankAccounts",title:"Conti bancari",order:10},{id:"otherAssets",title:"Altri beni / averi",order:11},{id:"debts",title:"Debiti / ipoteche",order:12},{id:"properties",title:"Immobili",order:13},{id:"foreign",title:"Redditi o averi allestero",order:14}],i=Math.max(...o.map(t=>t.order)),e=new Array(i+1).fill(void 0).map(()=>({}));o.forEach(t=>{e[t.order]={id:t.id,title:t.title,order:t.order}});const a=O(0),_=g(()=>{const t=e[a.value]?.id;return t==="welcome"?p(()=>f(()=>import("./WelcomeStep-CceGeOSt.js"),__vite__mapDeps([0,1,2,3,4,5]))):t==="taxpayer"?p(()=>f(()=>import("./TaxpayerStep-BW5eA-Yt.js"),__vite__mapDeps([6,1,2,7,8,4,9,10,11,3,12,13,14]))):t==="marital"?p(()=>f(()=>import("./MaritalStep-BE56kGyF.js"),__vite__mapDeps([15,1,2,7,8,4,9,10,11,3,12,13,16]))):t==="children"?p(()=>f(()=>import("./ChildrenStep-DyqlyPDG.js"),__vite__mapDeps([17,1,2,7,8,4,11,3,12,18,9,19]))):t==="income"?p(()=>f(()=>import("./IncomeStep-hqFZm4PA.js"),__vite__mapDeps([20,1,2,7,8,4,3,21]))):null}),h=g(()=>e[a.value]);function n(t){if(typeof t=="string"){const l=e.findIndex(d=>d.id===t);if(l!==-1){a.value=l;return}}a.value<e.length-1&&a.value++}function y(t){if(typeof t=="string"){const l=e.findIndex(d=>d.id===t);if(l!==-1){a.value=l;return}}a.value>0&&a.value--}return(t,l)=>(s(),m("div",K,[C("div",M,[v(N,{dense:"",bordered:"",class:"vertical-nav"},{default:u(()=>[(s(!0),m(L,null,V(S(e),(d,x)=>(s(),I(T,{key:d.id,clickable:"",onClick:te=>a.value=x,active:a.value===x},{default:u(()=>[v(j,null,{default:u(()=>[C("div",X,b(x+1)+". "+b(d.title),1)]),_:2},1024)]),_:2},1032,["onClick","active"]))),128))]),_:1})]),C("div",G,[v(z,{flat:"",class:"q-pa-md full-height"},{default:u(()=>[v(q,null,{default:u(()=>[_.value?B("",!0):(s(),m("div",J,b(S(e)[a.value]?.title),1)),_.value&&h.value?(s(),I(F(_.value),{key:1,step:h.value,onNext:n,onPrev:y},null,40,["step"])):(s(),m("div",U))]),_:1})]),_:1})])]))}}),E=(r,o)=>{const i=r.__vccOpts||r;for(const[e,a]of o)i[e]=a;return i},Y=E(W,[["__scopeId","data-v-eaa5d621"]]),Z=k({__name:"IndexPage",setup(r){return(o,i)=>(s(),I(H,{class:"row full-width justify-center full-height"},{default:u(()=>[v(Y,{class:"no-shadow full-height full-width"})]),_:1}))}}),ee=E(Z,[["__scopeId","data-v-1cafec6b"]]),re=Object.freeze(Object.defineProperty({__proto__:null,default:ee},Symbol.toStringTag,{value:"Module"}));export{re as I,E as _};

View File

@@ -0,0 +1 @@
.q-stepper[data-v-a035370f]{max-width:900px;margin:0 auto}.full-height[data-v-a035370f]{height:100%}.vertical-nav .q-item[data-v-a035370f]{border-radius:4px;margin-bottom:4px;max-width:350px}.vertical-nav .q-item--active[data-v-a035370f]{background-color:var(--q-color-primary)!important}.vertical-nav .q-item--active .text-body1[data-v-a035370f],.vertical-nav .q-item--active .q-item__label[data-v-a035370f]{font-weight:700!important}[data-v-1cafec6b] .no-shadow .q-stepper{box-shadow:none!important;height:100%!important;width:100%!important}[data-v-1cafec6b] .no-shadow .q-stepper .q-step__content,[data-v-1cafec6b] .no-shadow .q-stepper .q-card{height:100%!important}

View File

@@ -1 +0,0 @@
.q-stepper[data-v-eaa5d621]{max-width:900px;margin:0 auto}.full-height[data-v-eaa5d621]{height:100%}.vertical-nav .q-item[data-v-eaa5d621]{border-radius:4px;margin-bottom:4px;max-width:350px}.vertical-nav .q-item--active[data-v-eaa5d621]{background-color:var(--q-color-primary)!important}.vertical-nav .q-item--active .text-body1[data-v-eaa5d621],.vertical-nav .q-item--active .q-item__label[data-v-eaa5d621]{font-weight:700!important}[data-v-1cafec6b] .no-shadow .q-stepper{box-shadow:none!important;height:100%!important;width:100%!important}[data-v-1cafec6b] .no-shadow .q-stepper .q-step__content,[data-v-1cafec6b] .no-shadow .q-stepper .q-card{height:100%!important}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.full-width[data-v-22af3ece]{width:100%}.contained-card[data-v-22af3ece]{min-width:480px;max-width:720px}.contained-card .q-card-section[data-v-22af3ece]{padding:16px}.contained-card .q-card-actions[data-v-22af3ece]{padding:12px 16px}.child-modal[data-v-22af3ece]{min-width:480px}

View File

@@ -0,0 +1 @@
import{as as P,$ as q,r as A,a as M,o as S,j as Q,w as b,a0 as v,a3 as c,a1 as f,a4 as n,ae as U,a5 as r,a8 as B,a9 as e,a6 as E,am as K,aa as D,af as _,an as u,ao as O,ah as R}from"./index-GXFLJtQL.js";import{Q as I}from"./QSelect-mYEcqVHl.js";import{Q as N}from"./QChip-DE2_FO3B.js";import{P as C}from"./LocalStorage-DjXJ9f5H.js";import{u as H}from"./vue-i18n.runtime-BXSOjn_j.js";import{_ as T}from"./IndexPage-C20RwqJI.js";import"./QList-BZpTot_c.js";import"./QMenu-MNqKCtrf.js";const y="professionalExpenses:v1",h={expensesChanged:!1,workplaceDescription:"",commuteMethod:null,commuteKm:null,lunchAtHome:!1,eatsOut:!1,hasCanteenOrVouchers:!1};function j(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}const F=P("professionalexpensesstore",{state:()=>{try{let t=C.getItem(y);if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}if(j(t)){const i={...h,...t};return{data:{...i,hasCanteenOrVouchers:i.hasCanteenOrVouchers===!0}}}}catch{}return{data:{...h}}},actions:{persist(){try{C.set(y,this.data)}catch(t){console.error("professionalExpenses.store: persist error",t)}},getProfessionalExpenses(){return this.data},setProfessionalExpenses(t){this.data={...this.data,...t},this.persist()},replaceProfessionalExpenses(t){this.data=t,this.persist()},resetProfessionalExpenses(){this.data={...h},this.persist()}}}),L={class:"row items-center"},G={class:"col"},J={class:"text-h6"},W={class:"col-auto"},Y={class:"row items-center"},$={class:"col"},z={key:0,class:"q-mt-md"},X={class:"row"},Z={class:"col-6 q-pr-md"},ee={class:"col-6"},se={class:"column"},te=q({__name:"ProfessionalExpensesStep",props:{step:{}},emits:["next","prev"],setup(t,{emit:i}){const m=F(),x=t,V=i,{t:o}=H(),p=A(null),s=m.data,k=M(()=>[{label:o("professionalExpenses.commuteMethodOptions.car"),value:"CAR"},{label:o("professionalExpenses.commuteMethodOptions.bus"),value:"BUS"},{label:o("professionalExpenses.commuteMethodOptions.bike"),value:"BIKE"},{label:o("professionalExpenses.commuteMethodOptions.walk"),value:"WALK"}]);S(async()=>{await Q(),p.value?.resetValidation?.()}),b(()=>s,()=>{m.persist()},{deep:!0}),b(()=>s.eatsOut,d=>{d||(s.hasCanteenOrVouchers=!1)});async function w(){try{if(await(p.value?.validate?.()??!0)===!1)return}catch{return}m.setProfessionalExpenses(s),V("next",x.step?.next)}function g(){m.setProfessionalExpenses(s),V("prev",x.step?.prev)}return(d,a)=>(c(),v(R,{flat:"",class:"full-width q-pa-none"},{default:f(()=>[n(U,{class:"full-width"},{default:f(()=>[r("div",L,[r("div",G,[r("div",J,B(e(o)("PRO")),1)]),r("div",W,[n(E,{flat:"",label:e(o)("button.prev"),onClick:g,class:"q-mr-sm"},null,8,["label"]),n(E,{color:"primary",label:e(o)("button.next"),onClick:w},null,8,["label"])])]),n(K,{class:"q-my-sm"}),n(N,{ref_key:"formRef",ref:p,class:"q-gutter-md q-mt-md"},{default:f(()=>[r("div",Y,[r("div",$,[n(u,{modelValue:e(s).expensesChanged,"onUpdate:modelValue":a[0]||(a[0]=l=>e(s).expensesChanged=l),label:e(o)("professionalExpenses.expensesChanged")},null,8,["modelValue","label"])])]),e(s).expensesChanged?(c(),D("div",z,[n(O,{modelValue:e(s).workplaceDescription,"onUpdate:modelValue":a[1]||(a[1]=l=>e(s).workplaceDescription=l),label:e(o)("professionalExpenses.workplaceDescription"),type:"text",outlined:""},null,8,["modelValue","label"]),r("div",X,[r("div",Z,[n(I,{modelValue:e(s).commuteMethod,"onUpdate:modelValue":a[2]||(a[2]=l=>e(s).commuteMethod=l),options:k.value,label:e(o)("professionalExpenses.commuteMethod"),"emit-value":"","map-options":"",outlined:"",class:"q-mt-md"},null,8,["modelValue","options","label"])]),r("div",ee,[n(O,{modelValue:e(s).commuteKm,"onUpdate:modelValue":a[3]||(a[3]=l=>e(s).commuteKm=l),modelModifiers:{number:!0},label:e(o)("professionalExpenses.commuteKm"),type:"number",outlined:"",class:"q-mt-md"},null,8,["modelValue","label"])])]),r("div",se,[n(u,{modelValue:e(s).lunchAtHome,"onUpdate:modelValue":a[4]||(a[4]=l=>e(s).lunchAtHome=l),label:e(o)("professionalExpenses.lunchAtHome"),class:"q-mt-md"},null,8,["modelValue","label"]),n(u,{modelValue:e(s).eatsOut,"onUpdate:modelValue":a[5]||(a[5]=l=>e(s).eatsOut=l),label:e(o)("professionalExpenses.eatsOut"),class:"q-mt-md"},null,8,["modelValue","label"]),e(s).eatsOut?(c(),v(u,{key:0,modelValue:e(s).hasCanteenOrVouchers,"onUpdate:modelValue":a[6]||(a[6]=l=>e(s).hasCanteenOrVouchers=l),label:e(o)("professionalExpenses.hasCanteenOrVouchers"),class:"q-mt-md"},null,8,["modelValue","label"])):_("",!0)])])):_("",!0)]),_:1},512)]),_:1})]),_:1}))}}),pe=T(te,[["__scopeId","data-v-22af3ece"]]);export{pe as default};

1
app/dist/spa/assets/QChip-DE2_FO3B.js vendored Normal file
View File

@@ -0,0 +1 @@
import{c as I,r as V,M as F,N as A,o as E,g as P,h as f,b as D,aY as Q,H as _,j as $,aT as j,W as w,aZ as z,a_ as O,I as K,J as L,a$ as M,a as g,V as N,b0 as H,aH as k,b1 as T}from"./index-GXFLJtQL.js";const Z=I({name:"QForm",props:{autofocus:Boolean,noErrorFocus:Boolean,noResetFocus:Boolean,greedy:Boolean,onSubmit:Function},emits:["reset","validationSuccess","validationError"],setup(e,{slots:C,emit:u}){const v=P(),r=V(null);let s=0;const l=[];function S(o){const a=typeof o=="boolean"?o:e.noErrorFocus!==!0,m=++s,t=(n,i)=>{u(`validation${n===!0?"Success":"Error"}`,i)},h=n=>{const i=n.validate();return typeof i.then=="function"?i.then(c=>({valid:c,comp:n}),c=>({valid:!1,comp:n,err:c})):Promise.resolve({valid:i,comp:n})};return(e.greedy===!0?Promise.all(l.map(h)).then(n=>n.filter(i=>i.valid!==!0)):l.reduce((n,i)=>n.then(()=>h(i).then(c=>{if(c.valid===!1)return Promise.reject(c)})),Promise.resolve()).catch(n=>[n])).then(n=>{if(n===void 0||n.length===0)return m===s&&t(!0),!0;if(m===s){const{comp:i,err:c}=n[0];if(c!==void 0&&console.error(c),t(!1,i),a===!0){const B=n.find(({comp:R})=>typeof R.focus=="function"&&Q(R.$)===!1);B!==void 0&&B.comp.focus()}}return!1})}function q(){s++,l.forEach(o=>{typeof o.resetValidation=="function"&&o.resetValidation()})}function b(o){o!==void 0&&_(o);const a=s+1;S().then(m=>{a===s&&m===!0&&(e.onSubmit!==void 0?u("submit",o):o?.target!==void 0&&typeof o.target.submit=="function"&&o.target.submit())})}function y(o){o!==void 0&&_(o),u("reset"),$(()=>{q(),e.autofocus===!0&&e.noResetFocus!==!0&&d()})}function d(){j(()=>{if(r.value===null)return;(r.value.querySelector("[autofocus][tabindex], [data-autofocus][tabindex]")||r.value.querySelector("[autofocus] [tabindex], [data-autofocus] [tabindex]")||r.value.querySelector("[autofocus], [data-autofocus]")||Array.prototype.find.call(r.value.querySelectorAll("[tabindex]"),a=>a.tabIndex!==-1))?.focus({preventScroll:!0})})}w(z,{bindComponent(o){l.push(o)},unbindComponent(o){const a=l.indexOf(o);a!==-1&&l.splice(a,1)}});let x=!1;return F(()=>{x=!0}),A(()=>{x===!0&&e.autofocus===!0&&d()}),E(()=>{e.autofocus===!0&&d()}),Object.assign(v.proxy,{validate:S,resetValidation:q,submit:b,reset:y,focus:d,getValidationComponents:()=>l}),()=>f("form",{class:"q-form",ref:r,onSubmit:b,onReset:y},D(C.default))}}),J={xs:8,sm:10,md:14,lg:20,xl:24},G=I({name:"QChip",props:{...K,...O,dense:Boolean,icon:String,iconRight:String,iconRemove:String,iconSelected:String,label:[String,Number],color:String,textColor:String,modelValue:{type:Boolean,default:!0},selected:{type:Boolean,default:null},square:Boolean,outline:Boolean,clickable:Boolean,removable:Boolean,removeAriaLabel:String,tabindex:[String,Number],disable:Boolean,ripple:{type:[Boolean,Object],default:!0}},emits:["update:modelValue","update:selected","remove","click"],setup(e,{slots:C,emit:u}){const{proxy:{$q:v}}=P(),r=L(e,v),s=M(e,J),l=g(()=>e.selected===!0||e.icon!==void 0),S=g(()=>e.selected===!0?e.iconSelected||v.iconSet.chip.selected:e.icon),q=g(()=>e.iconRemove||v.iconSet.chip.remove),b=g(()=>e.disable===!1&&(e.clickable===!0||e.selected!==null)),y=g(()=>{const t=e.outline===!0&&e.color||e.textColor;return"q-chip row inline no-wrap items-center"+(e.outline===!1&&e.color!==void 0?` bg-${e.color}`:"")+(t?` text-${t} q-chip--colored`:"")+(e.disable===!0?" disabled":"")+(e.dense===!0?" q-chip--dense":"")+(e.outline===!0?" q-chip--outline":"")+(e.selected===!0?" q-chip--selected":"")+(b.value===!0?" q-chip--clickable cursor-pointer non-selectable q-hoverable":"")+(e.square===!0?" q-chip--square":"")+(r.value===!0?" q-chip--dark q-dark":"")}),d=g(()=>{const t=e.disable===!0?{tabindex:-1,"aria-disabled":"true"}:{tabindex:e.tabindex||0},h={...t,role:"button","aria-hidden":"false","aria-label":e.removeAriaLabel||v.lang.label.remove};return{chip:t,remove:h}});function x(t){t.keyCode===13&&o(t)}function o(t){e.disable||(u("update:selected",!e.selected),u("click",t))}function a(t){(t.keyCode===void 0||t.keyCode===13)&&(_(t),e.disable===!1&&(u("update:modelValue",!1),u("remove")))}function m(){const t=[];b.value===!0&&t.push(f("div",{class:"q-focus-helper"})),l.value===!0&&t.push(f(k,{class:"q-chip__icon q-chip__icon--left",name:S.value}));const h=e.label!==void 0?[f("div",{class:"ellipsis"},[e.label])]:void 0;return t.push(f("div",{class:"q-chip__content col row no-wrap items-center q-anchor--skip"},T(C.default,h))),e.iconRight&&t.push(f(k,{class:"q-chip__icon q-chip__icon--right",name:e.iconRight})),e.removable===!0&&t.push(f(k,{class:"q-chip__icon q-chip__icon--remove cursor-pointer",name:q.value,...d.value.remove,onClick:a,onKeyup:a})),t}return()=>{if(e.modelValue===!1)return;const t={class:y.value,style:s.value};return b.value===!0&&Object.assign(t,d.value.chip,{onClick:o,onKeyup:x}),N("div",t,m(),"ripple",e.ripple!==!1&&e.disable!==!0,()=>[[H,e.ripple]])}}});export{Z as Q,G as a};

View File

@@ -1 +0,0 @@
import{c as v,a,h as c,b as q,aj as I,H as k,g,I as y,ak as A,r as b,al as K,G as R,p as $}from"./index-CBamscxj.js";const D=v({name:"QItemSection",props:{avatar:Boolean,thumbnail:Boolean,side:Boolean,top:Boolean,noWrap:Boolean},setup(e,{slots:n}){const l=a(()=>`q-item__section column q-item__section--${e.avatar===!0||e.side===!0||e.thumbnail===!0?"side":"main"}`+(e.top===!0?" q-item__section--top justify-start":" justify-center")+(e.avatar===!0?" q-item__section--avatar":"")+(e.thumbnail===!0?" q-item__section--thumbnail":"")+(e.noWrap===!0?" q-item__section--nowrap":""));return()=>c("div",{class:l.value},q(n.default))}}),F=v({name:"QItem",props:{...k,...I,tag:{type:String,default:"div"},active:{type:Boolean,default:null},clickable:Boolean,dense:Boolean,insetLevel:Number,tabindex:[String,Number],focused:Boolean,manualFocus:Boolean},emits:["click","keyup"],setup(e,{slots:n,emit:l}){const{proxy:{$q:i}}=g(),d=y(e,i),{hasLink:s,linkAttrs:h,linkClass:B,linkTag:_,navigateOnClick:C}=A(),o=b(null),r=b(null),m=a(()=>e.clickable===!0||s.value===!0||e.tag==="label"),u=a(()=>e.disable!==!0&&m.value===!0),x=a(()=>"q-item q-item-type row no-wrap"+(e.dense===!0?" q-item--dense":"")+(d.value===!0?" q-item--dark":"")+(s.value===!0&&e.active===null?B.value:e.active===!0?` q-item--active${e.activeClass!==void 0?` ${e.activeClass}`:""}`:"")+(e.disable===!0?" disabled":"")+(u.value===!0?" q-item--clickable q-link cursor-pointer "+(e.manualFocus===!0?"q-manual-focusable":"q-focusable q-hoverable")+(e.focused===!0?" q-manual-focusable--focused":""):"")),L=a(()=>e.insetLevel===void 0?null:{["padding"+(i.lang.rtl===!0?"Right":"Left")]:16+e.insetLevel*56+"px"});function E(t){u.value===!0&&(r.value!==null&&t.qAvoidFocus!==!0&&(t.qKeyEvent!==!0&&document.activeElement===o.value?r.value.focus():document.activeElement===r.value&&o.value.focus()),C(t))}function Q(t){if(u.value===!0&&K(t,[13,32])===!0){R(t),t.qKeyEvent=!0;const f=new MouseEvent("click",t);f.qKeyEvent=!0,o.value.dispatchEvent(f)}l("keyup",t)}function S(){const t=$(n.default,[]);return u.value===!0&&t.unshift(c("div",{class:"q-focus-helper",tabindex:-1,ref:r})),t}return()=>{const t={ref:o,class:x.value,style:L.value,role:"listitem",onClick:E,onKeyup:Q};return u.value===!0?(t.tabindex=e.tabindex||"0",Object.assign(t,h.value)):m.value===!0&&(t["aria-disabled"]="true"),c(_.value,t,S())}}}),j=["ul","ol"],P=v({name:"QList",props:{...k,bordered:Boolean,dense:Boolean,separator:Boolean,padding:Boolean,tag:{type:String,default:"div"}},setup(e,{slots:n}){const l=g(),i=y(e,l.proxy.$q),d=a(()=>j.includes(e.tag)?null:"list"),s=a(()=>"q-list"+(e.bordered===!0?" q-list--bordered":"")+(e.dense===!0?" q-list--dense":"")+(e.separator===!0?" q-list--separator":"")+(i.value===!0?" q-list--dark":"")+(e.padding===!0?" q-list--padding":""));return()=>c(e.tag,{class:s.value,role:d.value},q(n.default))}});export{P as Q,F as a,D as b};

1
app/dist/spa/assets/QList-BZpTot_c.js vendored Normal file
View File

@@ -0,0 +1 @@
import{c as v,a,h as c,b,aj as I,I as k,g,J as y,ak as A,r as q,al as K,H as R,q as $}from"./index-GXFLJtQL.js";const D=v({name:"QItemSection",props:{avatar:Boolean,thumbnail:Boolean,side:Boolean,top:Boolean,noWrap:Boolean},setup(e,{slots:n}){const l=a(()=>`q-item__section column q-item__section--${e.avatar===!0||e.side===!0||e.thumbnail===!0?"side":"main"}`+(e.top===!0?" q-item__section--top justify-start":" justify-center")+(e.avatar===!0?" q-item__section--avatar":"")+(e.thumbnail===!0?" q-item__section--thumbnail":"")+(e.noWrap===!0?" q-item__section--nowrap":""));return()=>c("div",{class:l.value},b(n.default))}}),F=v({name:"QItem",props:{...k,...I,tag:{type:String,default:"div"},active:{type:Boolean,default:null},clickable:Boolean,dense:Boolean,insetLevel:Number,tabindex:[String,Number],focused:Boolean,manualFocus:Boolean},emits:["click","keyup"],setup(e,{slots:n,emit:l}){const{proxy:{$q:i}}=g(),d=y(e,i),{hasLink:s,linkAttrs:h,linkClass:B,linkTag:_,navigateOnClick:C}=A(),o=q(null),r=q(null),m=a(()=>e.clickable===!0||s.value===!0||e.tag==="label"),u=a(()=>e.disable!==!0&&m.value===!0),x=a(()=>"q-item q-item-type row no-wrap"+(e.dense===!0?" q-item--dense":"")+(d.value===!0?" q-item--dark":"")+(s.value===!0&&e.active===null?B.value:e.active===!0?` q-item--active${e.activeClass!==void 0?` ${e.activeClass}`:""}`:"")+(e.disable===!0?" disabled":"")+(u.value===!0?" q-item--clickable q-link cursor-pointer "+(e.manualFocus===!0?"q-manual-focusable":"q-focusable q-hoverable")+(e.focused===!0?" q-manual-focusable--focused":""):"")),L=a(()=>e.insetLevel===void 0?null:{["padding"+(i.lang.rtl===!0?"Right":"Left")]:16+e.insetLevel*56+"px"});function E(t){u.value===!0&&(r.value!==null&&t.qAvoidFocus!==!0&&(t.qKeyEvent!==!0&&document.activeElement===o.value?r.value.focus():document.activeElement===r.value&&o.value.focus()),C(t))}function Q(t){if(u.value===!0&&K(t,[13,32])===!0){R(t),t.qKeyEvent=!0;const f=new MouseEvent("click",t);f.qKeyEvent=!0,o.value.dispatchEvent(f)}l("keyup",t)}function S(){const t=$(n.default,[]);return u.value===!0&&t.unshift(c("div",{class:"q-focus-helper",tabindex:-1,ref:r})),t}return()=>{const t={ref:o,class:x.value,style:L.value,role:"listitem",onClick:E,onKeyup:Q};return u.value===!0?(t.tabindex=e.tabindex||"0",Object.assign(t,h.value)):m.value===!0&&(t["aria-disabled"]="true"),c(_.value,t,S())}}}),j=["ul","ol"],P=v({name:"QList",props:{...k,bordered:Boolean,dense:Boolean,separator:Boolean,padding:Boolean,tag:{type:String,default:"div"}},setup(e,{slots:n}){const l=g(),i=y(e,l.proxy.$q),d=a(()=>j.includes(e.tag)?null:"list"),s=a(()=>"q-list"+(e.bordered===!0?" q-list--bordered":"")+(e.dense===!0?" q-list--dense":"")+(e.separator===!0?" q-list--separator":"")+(i.value===!0?" q-list--dark":"")+(e.padding===!0?" q-list--padding":""));return()=>c(e.tag,{class:s.value,role:d.value},b(n.default))}});export{P as Q,F as a,D as b};

1
app/dist/spa/assets/QMenu-MNqKCtrf.js vendored Normal file
View File

@@ -0,0 +1 @@
import{c as ae,P as ne,t as se,aI as ue,I as le,Q as ie,g as re,r as D,a as u,J as ce,aJ as fe,R as de,aK as ve,S as ge,aL as he,w,aM as me,aN as M,aO as Pe,D as Te,aP as ye,u as Se,aQ as ke,aR as Ce,h as R,b as xe,aS as Oe,f as qe,aT as Ee,H as be}from"./index-GXFLJtQL.js";import{v as Be,a as A,u as Fe,d as De,e as we,p as H,f as Me,r as K,s as Re}from"./LocalStorage-DjXJ9f5H.js";const Ke=ae({name:"QMenu",inheritAttrs:!1,props:{...Fe,...ie,...le,...ue,persistent:Boolean,autoClose:Boolean,separateClosePopup:Boolean,noEscDismiss:Boolean,noRouteDismiss:Boolean,noRefocus:Boolean,noFocus:Boolean,fit:Boolean,cover:Boolean,square:Boolean,anchor:{type:String,validator:A},self:{type:String,validator:A},offset:{type:Array,validator:Be},scrollTarget:se,touchPosition:Boolean,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null}},emits:[...ne,"click","escapeKey"],setup(t,{slots:Q,emit:c,attrs:d}){let n=null,f,l,v;const y=re(),{proxy:g}=y,{$q:o}=g,a=D(null),s=D(!1),I=u(()=>t.persistent!==!0&&t.noRouteDismiss!==!0),W=ce(t,o),{registerTick:J,removeTick:L}=fe(),{registerTimeout:S}=de(),{transitionProps:_,transitionStyle:j}=ve(t),{localScrollTarget:k,changeScrollEvent:N,unconfigureScrollTarget:U}=De(t,B),{anchorEl:i,canShow:$}=we({showing:s}),{hide:C}=ge({showing:s,canShow:$,handleShow:Y,handleHide:Z,hideOnRouteChange:I,processOnMount:!0}),{showPortal:x,hidePortal:O,renderPortal:z}=he(y,a,ee,"menu"),h={anchorEl:i,innerRef:a,onClickOutside(e){if(t.persistent!==!0&&s.value===!0)return C(e),(e.type==="touchstart"||e.target.classList.contains("q-dialog__backdrop"))&&be(e),!0}},q=u(()=>H(t.anchor||(t.cover===!0?"center middle":"bottom start"),o.lang.rtl)),G=u(()=>t.cover===!0?q.value:H(t.self||"top start",o.lang.rtl)),V=u(()=>(t.square===!0?" q-menu--square":"")+(W.value===!0?" q-menu--dark q-dark":"")),X=u(()=>t.autoClose===!0?{onClick:p}:{}),E=u(()=>s.value===!0&&t.persistent!==!0);w(E,e=>{e===!0?(me(P),Me(h)):(M(P),K(h))});function m(){Ee(()=>{let e=a.value;e&&e.contains(document.activeElement)!==!0&&(e=e.querySelector("[autofocus][tabindex], [data-autofocus][tabindex]")||e.querySelector("[autofocus] [tabindex], [data-autofocus] [tabindex]")||e.querySelector("[autofocus], [data-autofocus]")||e,e.focus({preventScroll:!0}))})}function Y(e){if(n=t.noRefocus===!1?document.activeElement:null,Pe(F),x(),B(),f=void 0,e!==void 0&&(t.touchPosition||t.contextMenu)){const T=Te(e);if(T.left!==void 0){const{top:te,left:oe}=i.value.getBoundingClientRect();f={left:T.left-oe,top:T.top-te}}}l===void 0&&(l=w(()=>o.screen.width+"|"+o.screen.height+"|"+t.self+"|"+t.anchor+"|"+o.lang.rtl,r)),t.noFocus!==!0&&document.activeElement.blur(),J(()=>{r(),t.noFocus!==!0&&m()}),S(()=>{o.platform.is.ios===!0&&(v=t.autoClose,a.value.click()),r(),x(!0),c("show",e)},t.transitionDuration)}function Z(e){L(),O(),b(!0),n!==null&&(e===void 0||e.qClickOutside!==!0)&&(((e?.type.indexOf("key")===0?n.closest('[tabindex]:not([tabindex^="-"])'):void 0)||n).focus(),n=null),S(()=>{O(!0),c("hide",e)},t.transitionDuration)}function b(e){f=void 0,l!==void 0&&(l(),l=void 0),(e===!0||s.value===!0)&&(ye(F),U(),K(h),M(P)),e!==!0&&(n=null)}function B(){(i.value!==null||t.scrollTarget!==void 0)&&(k.value=Se(i.value,t.scrollTarget),N(k.value,r))}function p(e){v!==!0?(ke(g,e),c("click",e)):v=!1}function F(e){E.value===!0&&t.noFocus!==!0&&Ce(a.value,e.target)!==!0&&m()}function P(e){t.noEscDismiss!==!0&&(c("escapeKey"),C(e))}function r(){Re({targetEl:a.value,offset:t.offset,anchorEl:i.value,anchorOrigin:q.value,selfOrigin:G.value,absoluteOffset:f,fit:t.fit,cover:t.cover,maxHeight:t.maxHeight,maxWidth:t.maxWidth})}function ee(){return R(Oe,_.value,()=>s.value===!0?R("div",{role:"menu",...d,ref:a,tabindex:-1,class:["q-menu q-position-engine scroll"+V.value,d.class],style:[d.style,j.value],...X.value},xe(Q.default)):null)}return qe(b),Object.assign(g,{focus:m,updatePosition:r}),z}});export{Ke as Q};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{as as V,$ as k,r as C,o as g,j as w,w as q,a0 as f,a3 as h,a1 as m,a4 as a,ae as Q,a5 as i,a8 as A,a9 as t,a6 as I,am as D,af as N,an as B,ah as R}from"./index-GXFLJtQL.js";import{Q as T}from"./QChip-DE2_FO3B.js";import{P as S}from"./LocalStorage-DjXJ9f5H.js";import{C as E}from"./CommentAttachment-DGUhSBXt.js";import{u as P}from"./vue-i18n.runtime-BXSOjn_j.js";import{_ as U}from"./IndexPage-C20RwqJI.js";import"./userstore-SjLknvTP.js";import"./QList-BZpTot_c.js";const _="sideIncome:v1",d={hasSideIncome:!1,sideIncomeDocuments:{comments:"",attachments:[]}};function j(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}const F=V("sideincomestore",{state:()=>{try{let e=S.getItem(_);if(typeof e=="string")try{e=JSON.parse(e)}catch{e=null}if(j(e))return{data:{...d,...e}}}catch{}return{data:{...d}}},actions:{persist(){try{S.set(_,this.data)}catch(e){console.error("sideIncome.store: persist error",e)}},getSideIncome(){return this.data},setSideIncome(e){this.data={...this.data,...e},this.persist()},replaceSideIncome(e){this.data=e,this.persist()},resetSideIncome(){this.data={...d},this.persist()}}}),O={class:"row items-center"},G={class:"col"},J={class:"text-h6"},K={class:"col-auto"},L=k({__name:"SideIncomeStep",props:{step:{}},emits:["next","prev"],setup(e,{emit:y}){const u=e,p=y,{t:o}=P(),n=F(),s=n.data,c=C(null);g(async()=>{await w(),c.value?.resetValidation?.()}),q(()=>s,()=>{n.persist()},{deep:!0});async function v(){try{if(await(c.value?.validate?.()??!0)===!1)return}catch{return}n.setSideIncome(s),p("next",u.step?.next)}function b(){n.setSideIncome(s),p("prev",u.step?.prev)}return(x,r)=>(h(),f(R,{flat:"",class:"full-width q-pa-none"},{default:m(()=>[a(Q,{class:"full-width"},{default:m(()=>[i("div",O,[i("div",G,[i("div",J,A(t(o)("SID")),1)]),i("div",K,[a(I,{flat:"",label:t(o)("button.prev"),onClick:b,class:"q-mr-sm"},null,8,["label"]),a(I,{color:"primary",label:t(o)("button.next"),onClick:v},null,8,["label"])])]),a(D,{class:"q-my-sm"}),a(T,{ref_key:"formRef",ref:c,class:"q-gutter-md q-mt-md"},{default:m(()=>[a(B,{class:"q-mb-md",modelValue:t(s).hasSideIncome,"onUpdate:modelValue":r[0]||(r[0]=l=>t(s).hasSideIncome=l),label:t(o)("sideIncome.hasSideIncome")},null,8,["modelValue","label"]),t(s).hasSideIncome?(h(),f(E,{key:0,class:"q-mt-none",modelValue:t(s).sideIncomeDocuments,"onUpdate:modelValue":r[1]||(r[1]=l=>t(s).sideIncomeDocuments=l),label:t(o)("sideIncome.attachments"),id:"documents"},null,8,["modelValue","label"])):N("",!0)]),_:1},512)]),_:1})]),_:1}))}}),ee=U(L,[["__scopeId","data-v-be25d2d0"]]);export{ee as default};

View File

@@ -0,0 +1 @@
.full-width[data-v-be25d2d0]{width:100%}

View File

@@ -1 +0,0 @@
import{$ as T,Z as k,r as w,a as d,o as A,f as Q,a0 as R,a3 as b,a1 as c,a4 as r,ae as S,a5 as n,a8 as I,ac as l,a6 as x,am as F,a9 as M,af as j,an as E,ao as f,ah as L}from"./index-CBamscxj.js";import{Q as O}from"./userstore-t-JK1J0e.js";import{u as X}from"./taxstore-Cn_AGwIc.js";import{A as Z}from"./AddressInput-DRy7VRhk.js";import{C as $}from"./CommentAttachment-B387hLmi.js";import{u as z}from"./vue-i18n.runtime-BGZkCWQI.js";import{_ as G}from"./IndexPage-CArgvUEp.js";import"./LocalStorage-fNBzdRj6.js";import"./QList-1f0ZmkRo.js";const H={class:"row items-center"},J={class:"col"},K={class:"text-h5"},W={class:"col-auto"},Y={class:"row items-center q-gutter-md q-mb-sm q-ml-none"},ee={class:"col q-ml-none"},ae={key:0,class:"q-mt-sm"},te=T({__name:"TaxpayerStep",props:{step:{}},emits:["next","prev"],setup(V,{emit:N}){const _=V,v=N,y=_.step,i=X(),e=k({}),{t:s}=z(),u=w(null),D=(o="Required")=>{const a=s("validation.required");return a&&a!=="validation.required"?a:o},m=o=>a=>{const t=o||D();return a==null?t:typeof a=="string"?a.trim()!==""||t:Array.isArray(a)?a.length>0||t:!0},p=d(()=>!!e.prevPreparedByUs),g=d(()=>p.value?[]:[m()]),q=d(()=>p.value?[]:[m()]),B=d(()=>p.value?[]:[m()]);A(async()=>{const o=i.getTaxpayer()||{};Object.assign(e,o),await Q(),u.value?.resetValidation?.()});async function U(){try{if(await(u.value?.validate?.()??!0)===!1)return}catch{return}i.setTaxpayer({prevPreparedByUs:e.prevPreparedByUs,prevDeclaration:e.prevDeclaration,firstName:e.firstName,lastName:e.lastName,birthDate:e.birthDate,address:e.address}),v("next",y.next)}function h(){i.setTaxpayer({prevPreparedByUs:e.prevPreparedByUs,prevDeclaration:e.prevDeclaration,firstName:e.firstName,lastName:e.lastName,birthDate:e.birthDate,address:e.address}),v("prev",y.prev)}function C(){}function P(){}return(o,a)=>(b(),R(L,{flat:"",class:"full-width q-pa-none"},{default:c(()=>[r(S,{class:"full-width"},{default:c(()=>[n("div",H,[n("div",J,[n("div",K,I(l(s)("TAX")),1)]),n("div",W,[r(x,{flat:"",color:"secondary",label:l(s)("button.prev"),onClick:h,class:"q-mr-sm"},null,8,["label"]),r(x,{color:"primary",label:l(s)("button.next"),onClick:U},null,8,["label"])])]),r(F,{class:"q-my-sm"}),r(O,{ref_key:"formRef",ref:u,class:"q-gutter-md q-mt-md"},{default:c(()=>[n("div",Y,[n("div",ee,[r(E,{modelValue:e.prevPreparedByUs,"onUpdate:modelValue":a[0]||(a[0]=t=>e.prevPreparedByUs=t),label:l(s)("taxpayer.prevPreparedByUs")},null,8,["modelValue","label"])])]),e.prevPreparedByUs?(b(),M("div",ae,[r($,{modelValue:e.prevDeclaration,"onUpdate:modelValue":a[1]||(a[1]=t=>e.prevDeclaration=t),label:l(s)("taxpayer.prevDeclaration"),id:"taxpayer"},null,8,["modelValue","label"])])):j("",!0),n("div",null,[r(f,{modelValue:e.firstName,"onUpdate:modelValue":a[2]||(a[2]=t=>e.firstName=t),label:l(s)("taxpayer.firstName"),rules:g.value},null,8,["modelValue","label","rules"]),r(f,{modelValue:e.lastName,"onUpdate:modelValue":a[3]||(a[3]=t=>e.lastName=t),label:l(s)("taxpayer.lastName"),rules:q.value},null,8,["modelValue","label","rules"]),r(f,{modelValue:e.birthDate,"onUpdate:modelValue":a[4]||(a[4]=t=>e.birthDate=t),type:"date",label:l(s)("taxpayer.birthDate"),rules:B.value},null,8,["modelValue","label","rules"]),r(Z,{modelValue:e.address,"onUpdate:modelValue":a[5]||(a[5]=t=>e.address=t),label:l(s)("taxpayer.address"),allowForeign:!0,onSave:P,onCancel:C},null,8,["modelValue","label"])])]),_:1},512)]),_:1})]),_:1}))}}),pe=G(te,[["__scopeId","data-v-e1b08f4f"]]);export{pe as default};

View File

@@ -0,0 +1 @@
import{$ as T,Z as k,r as w,a as d,o as A,j as Q,a0 as R,a3 as b,a1 as c,a4 as r,ae as S,a5 as n,a8 as I,a9 as l,a6 as x,am as F,aa as j,af as M,an as E,ao as f,ah as L}from"./index-GXFLJtQL.js";import{Q as O}from"./QChip-DE2_FO3B.js";import{u as X}from"./taxstore-CFm87Oqg.js";import{A as Z}from"./AddressInput-CoglolOc.js";import{C as $}from"./CommentAttachment-DGUhSBXt.js";import{u as z}from"./vue-i18n.runtime-BXSOjn_j.js";import{_ as G}from"./IndexPage-C20RwqJI.js";import"./LocalStorage-DjXJ9f5H.js";import"./userstore-SjLknvTP.js";import"./AddressModal-Y6dYCZ_T.js";import"./QSelect-mYEcqVHl.js";import"./QList-BZpTot_c.js";import"./QMenu-MNqKCtrf.js";const H={class:"row items-center"},J={class:"col"},K={class:"text-h5"},W={class:"col-auto"},Y={class:"row items-center q-gutter-md q-mb-sm q-ml-none"},ee={class:"col q-ml-none"},ae={key:0,class:"q-mt-sm"},te=T({__name:"TaxpayerStep",props:{step:{}},emits:["next","prev"],setup(V,{emit:N}){const _=V,v=N,y=_.step,i=X(),e=k({}),{t:s}=z(),m=w(null),D=(o="Required")=>{const a=s("validation.required");return a&&a!=="validation.required"?a:o},u=o=>a=>{const t=o||D();return a==null?t:typeof a=="string"?a.trim()!==""||t:Array.isArray(a)?a.length>0||t:!0},p=d(()=>!!e.prevPreparedByUs),g=d(()=>p.value?[]:[u()]),q=d(()=>p.value?[]:[u()]),B=d(()=>p.value?[]:[u()]);A(async()=>{const o=i.getTaxpayer()||{};Object.assign(e,o),await Q(),m.value?.resetValidation?.()});async function U(){try{if(await(m.value?.validate?.()??!0)===!1)return}catch{return}i.setTaxpayer({prevPreparedByUs:e.prevPreparedByUs,prevDeclaration:e.prevDeclaration,firstName:e.firstName,lastName:e.lastName,birthDate:e.birthDate,address:e.address}),v("next",y.next)}function h(){i.setTaxpayer({prevPreparedByUs:e.prevPreparedByUs,prevDeclaration:e.prevDeclaration,firstName:e.firstName,lastName:e.lastName,birthDate:e.birthDate,address:e.address}),v("prev",y.prev)}function C(){}function P(){}return(o,a)=>(b(),R(L,{flat:"",class:"full-width q-pa-none"},{default:c(()=>[r(S,{class:"full-width"},{default:c(()=>[n("div",H,[n("div",J,[n("div",K,I(l(s)("TAX")),1)]),n("div",W,[r(x,{flat:"",color:"secondary",label:l(s)("button.prev"),onClick:h,class:"q-mr-sm"},null,8,["label"]),r(x,{color:"primary",label:l(s)("button.next"),onClick:U},null,8,["label"])])]),r(F,{class:"q-my-sm"}),r(O,{ref_key:"formRef",ref:m,class:"q-gutter-md q-mt-md"},{default:c(()=>[n("div",Y,[n("div",ee,[r(E,{modelValue:e.prevPreparedByUs,"onUpdate:modelValue":a[0]||(a[0]=t=>e.prevPreparedByUs=t),label:l(s)("taxpayer.prevPreparedByUs")},null,8,["modelValue","label"])])]),e.prevPreparedByUs?(b(),j("div",ae,[r($,{modelValue:e.prevDeclaration,"onUpdate:modelValue":a[1]||(a[1]=t=>e.prevDeclaration=t),label:l(s)("taxpayer.prevDeclaration"),id:"taxpayer"},null,8,["modelValue","label"])])):M("",!0),n("div",null,[r(f,{modelValue:e.firstName,"onUpdate:modelValue":a[2]||(a[2]=t=>e.firstName=t),label:l(s)("taxpayer.firstName"),rules:g.value},null,8,["modelValue","label","rules"]),r(f,{modelValue:e.lastName,"onUpdate:modelValue":a[3]||(a[3]=t=>e.lastName=t),label:l(s)("taxpayer.lastName"),rules:q.value},null,8,["modelValue","label","rules"]),r(f,{modelValue:e.birthDate,"onUpdate:modelValue":a[4]||(a[4]=t=>e.birthDate=t),type:"date",label:l(s)("taxpayer.birthDate"),rules:B.value},null,8,["modelValue","label","rules"]),r(Z,{modelValue:e.address,"onUpdate:modelValue":a[5]||(a[5]=t=>e.address=t),label:l(s)("taxpayer.address"),allowForeign:!0,onSave:P,onCancel:C},null,8,["modelValue","label"])])]),_:1},512)]),_:1})]),_:1}))}}),ye=G(te,[["__scopeId","data-v-e1b08f4f"]]);export{ye as default};

View File

@@ -1 +1 @@
import{$ as d,a0 as m,a3 as f,a1 as e,a4 as s,ae as u,a5 as t,a8 as o,ac as c,a6 as h,am as x,ah as v}from"./index-CBamscxj.js";import{u as S}from"./vue-i18n.runtime-BGZkCWQI.js";import{_ as C}from"./IndexPage-CArgvUEp.js";import"./QList-1f0ZmkRo.js";const w={class:"row items-center"},y={class:"col"},B={class:"text-h5"},N={class:"col-auto"},Q=d({__name:"WelcomeStep",props:{step:{}},emits:["next"],setup(n,{emit:r}){const i=n,l=r,a=i.step,{t:p}=S();function _(){l("next",a?.next)}return(g,k)=>(f(),m(v,{flat:"",class:"full-width q-pa-none"},{default:e(()=>[s(u,{class:"full-width"},{default:e(()=>[t("div",w,[t("div",y,[t("div",B,o(c(p)("WEL")),1)]),t("div",N,[s(h,{color:"primary",label:"Avanti",onClick:_})])]),s(x,{class:"q-my-sm"}),t("pre",null,o(JSON.stringify(c(a),null,2)),1)]),_:1})]),_:1}))}}),b=C(Q,[["__scopeId","data-v-f4c03057"]]);export{b as default};
import{$ as d,a0 as m,a3 as f,a1 as e,a4 as s,ae as u,a5 as t,a8 as o,a9 as c,a6 as h,am as x,ah as v}from"./index-GXFLJtQL.js";import{u as S}from"./vue-i18n.runtime-BXSOjn_j.js";import{_ as C}from"./IndexPage-C20RwqJI.js";import"./QList-BZpTot_c.js";const w={class:"row items-center"},y={class:"col"},B={class:"text-h5"},N={class:"col-auto"},Q=d({__name:"WelcomeStep",props:{step:{}},emits:["next"],setup(n,{emit:r}){const i=n,l=r,a=i.step,{t:p}=S();function _(){l("next",a?.next)}return(g,k)=>(f(),m(v,{flat:"",class:"full-width q-pa-none"},{default:e(()=>[s(u,{class:"full-width"},{default:e(()=>[t("div",w,[t("div",y,[t("div",B,o(c(p)("WEL")),1)]),t("div",N,[s(h,{color:"primary",label:"Avanti",onClick:_})])]),s(x,{class:"q-my-sm"}),t("pre",null,o(JSON.stringify(c(a),null,2)),1)]),_:1})]),_:1}))}}),b=C(Q,[["__scopeId","data-v-f4c03057"]]);export{b as default};

View File

@@ -1 +1 @@
import{as as i}from"./index-CBamscxj.js";import{P as r}from"./LocalStorage-fNBzdRj6.js";const s="children:v1",a={hasChildren:!1,children:[],moreThanFiveChildrenNote:""},o=i("childrenstore",{state:()=>{try{let e=r.getItem(s);if(typeof e=="string")try{e=JSON.parse(e)}catch{e=null}if(e&&typeof e=="object")return{data:{...e}}}catch{}return{data:{...a}}},actions:{persist(){try{const e={hasChildren:!!this.data.hasChildren,children:Array.isArray(this.data.children)?this.data.children.map(t=>({firstName:t.firstName,lastName:t.lastName,birthDate:t.birthDate,sameHousehold:t.sameHousehold,alimentiVersati:t.alimentiVersati??!1,school:t.school,hasCareCost:t.hasCareCost??!1,careCosts:t.careCosts,address:t.address??null})):[],moreThanFiveChildrenNote:this.data.moreThanFiveChildrenNote||""};r.set(s,e)}catch(e){console.error("children.store: persist error",e)}},getChildren(){return this.data},setChildren(e){this.data={...this.data,...e},this.persist()},replaceChildren(e){this.data=e,this.persist()},resetChildren(){this.data={...a},this.persist()}}});export{o as u};
import{as as i}from"./index-GXFLJtQL.js";import{P as r}from"./LocalStorage-DjXJ9f5H.js";const s="children:v1",a={hasChildren:!1,children:[],moreThanFiveChildrenNote:""},o=i("childrenstore",{state:()=>{try{let e=r.getItem(s);if(typeof e=="string")try{e=JSON.parse(e)}catch{e=null}if(e&&typeof e=="object")return{data:{...e}}}catch{}return{data:{...a}}},actions:{persist(){try{const e={hasChildren:!!this.data.hasChildren,children:Array.isArray(this.data.children)?this.data.children.map(t=>({firstName:t.firstName,lastName:t.lastName,birthDate:t.birthDate,sameHousehold:t.sameHousehold,alimentiVersati:t.alimentiVersati??!1,school:t.school,hasCareCost:t.hasCareCost??!1,careCosts:t.careCosts,address:t.address??null})):[],moreThanFiveChildrenNote:this.data.moreThanFiveChildrenNote||""};r.set(s,e)}catch(e){console.error("children.store: persist error",e)}},getChildren(){return this.data},setChildren(e){this.data={...this.data,...e},this.persist()},replaceChildren(e){this.data=e,this.persist()},resetChildren(){this.data={...a},this.persist()}}});export{o as u};

File diff suppressed because one or more lines are too long

1
app/dist/spa/assets/i18n-TzAMZ6Le.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{as as n}from"./index-CBamscxj.js";import{P as e}from"./LocalStorage-fNBzdRj6.js";const s="taxstore:v1",i={prevPreparedByUs:!1,prevDeclaration:{comments:"",attachments:[]},firstName:"",lastName:"",birthDate:"",address:{street:"",cap:"",city:"",country:{code:"",name:""},canton:""}},r={alimentiVersati:!1,alimentiCommenti:{comments:"",attachments:[]},maritalStatus:"",spouseFirstName:"",spouseLastName:"",spouseBirthDate:"",spouseDeadDate:"",spouseTaxNumber:"",spouseAddress:{street:"",cap:"",city:"",country:{code:"",name:""},canton:""},marriageDate:"",separated:!1,spouseAlimentiVersati:!1},c=n("taxstore",{state:()=>{try{const t=e.getItem(s);if(t&&typeof t=="object"){const a=t;if(Array.isArray(a.items))return{items:a.items}}}catch{}return{items:[{key:"taxpayer",data:{...i}},{key:"marital",data:{...r}}]}},actions:{persist(){try{e.set(s,{items:this.items})}catch{}},_findTaxpayer(){return this.items.find(t=>t.key==="taxpayer")},_findMarital(){return this.items.find(t=>t.key==="marital")},getTaxpayer(){return this._findTaxpayer()?.data},setTaxpayer(t){const a=this._findTaxpayer();a&&(a.data={...a.data,...t}),this.persist()},replaceTaxpayer(t){const a=this._findTaxpayer();a&&(a.data=t),this.persist()},resetTaxpayer(){const t=this._findTaxpayer();t&&(t.data={...i}),this.persist()},getMarital(){return this._findMarital()?.data},setMarital(t){const a=this._findMarital();a&&(a.data={...a.data,...t}),this.persist()},replaceMarital(t){const a=this._findMarital();a&&(a.data=t),this.persist()},resetMarital(){const t=this._findMarital();t&&(t.data={...r}),this.persist()}}});export{c as u};
import{as as n}from"./index-GXFLJtQL.js";import{P as e}from"./LocalStorage-DjXJ9f5H.js";const s="taxstore:v1",i={prevPreparedByUs:!1,prevDeclaration:{comments:"",attachments:[]},firstName:"",lastName:"",birthDate:"",address:{street:"",cap:"",city:"",country:{code:"",name:""},canton:""}},r={alimentiVersati:!1,alimentiCommenti:{comments:"",attachments:[]},maritalStatus:"",spouseFirstName:"",spouseLastName:"",spouseBirthDate:"",spouseDeadDate:"",spouseTaxNumber:"",spouseAddress:{street:"",cap:"",city:"",country:{code:"",name:""},canton:""},marriageDate:"",separated:!1,spouseAlimentiVersati:!1},c=n("taxstore",{state:()=>{try{const t=e.getItem(s);if(t&&typeof t=="object"){const a=t;if(Array.isArray(a.items))return{items:a.items}}}catch{}return{items:[{key:"taxpayer",data:{...i}},{key:"marital",data:{...r}}]}},actions:{persist(){try{e.set(s,{items:this.items})}catch{}},_findTaxpayer(){return this.items.find(t=>t.key==="taxpayer")},_findMarital(){return this.items.find(t=>t.key==="marital")},getTaxpayer(){return this._findTaxpayer()?.data},setTaxpayer(t){const a=this._findTaxpayer();a&&(a.data={...a.data,...t}),this.persist()},replaceTaxpayer(t){const a=this._findTaxpayer();a&&(a.data=t),this.persist()},resetTaxpayer(){const t=this._findTaxpayer();t&&(t.data={...i}),this.persist()},getMarital(){return this._findMarital()?.data},setMarital(t){const a=this._findMarital();a&&(a.data={...a.data,...t}),this.persist()},replaceMarital(t){const a=this._findMarital();a&&(a.data=t),this.persist()},resetMarital(){const t=this._findMarital();t&&(t.data={...r}),this.persist()}}});export{c as u};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,3 +1,3 @@
<!doctype html><html><head><title>dichiarazione fiscale</title><meta charset=utf-8><meta name=description content="Dichiarazione fiscale automatizzata"><meta name=format-detection content="telephone=no"><meta name=msapplication-tap-highlight content=no><meta name=viewport content="user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1,width=device-width"><link rel=icon type=image/png sizes=128x128 href=/icons/favicon-128x128.png><link rel=icon type=image/png sizes=96x96 href=/icons/favicon-96x96.png><link rel=icon type=image/png sizes=32x32 href=/icons/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/icons/favicon-16x16.png><link rel=icon type=image/ico href=/favicon.ico> <script type="module" crossorigin src="/assets/index-CBamscxj.js"></script>
<!doctype html><html><head><title>dichiarazione fiscale</title><meta charset=utf-8><meta name=description content="Dichiarazione fiscale automatizzata"><meta name=format-detection content="telephone=no"><meta name=msapplication-tap-highlight content=no><meta name=viewport content="user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1,width=device-width"><link rel=icon type=image/png sizes=128x128 href=/icons/favicon-128x128.png><link rel=icon type=image/png sizes=96x96 href=/icons/favicon-96x96.png><link rel=icon type=image/png sizes=32x32 href=/icons/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/icons/favicon-16x16.png><link rel=icon type=image/ico href=/favicon.ico> <script type="module" crossorigin src="/assets/index-GXFLJtQL.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-BQveqNql.css">
</head><body><div id=q-app></div></body></html>

View File

@@ -7,11 +7,12 @@
"type": "module",
"private": true,
"scripts": {
"gen:commit": "node ./scripts/generate-commit-info.mjs",
"lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"",
"format": "prettier --write \"**/*.{js,ts,vue,scss,html,md,json}\" --ignore-path .gitignore",
"test": "echo \"No test specified\" && exit 0",
"dev": "quasar dev",
"build": "quasar build",
"dev": "node ./scripts/generate-commit-info.mjs && quasar dev",
"build": "node ./scripts/generate-commit-info.mjs && quasar build",
"tsc": "vue-tsc --noEmit",
"docs:pdf": "pnpm -s dlx md-to-pdf ./docs/Manuale_Utente.md --launch-options '{\"executablePath\":\"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome\"}'",
"postinstall": "quasar prepare"

View File

@@ -0,0 +1,30 @@
import { execSync } from 'node:child_process'
import { mkdirSync, writeFileSync } from 'node:fs'
import { dirname, resolve } from 'node:path'
import { fileURLToPath } from 'node:url'
const __dirname = dirname(fileURLToPath(import.meta.url))
const appRoot = resolve(__dirname, '..')
const outFile = resolve(appRoot, 'src/generated/commit-info.ts')
function readCommitCode() {
try {
return execSync('git rev-parse --short HEAD', {
cwd: appRoot,
stdio: ['ignore', 'pipe', 'ignore'],
encoding: 'utf8'
}).trim()
} catch {
return 'unknown'
}
}
const commitCode = readCommitCode()
const content =
`// Auto-generated by scripts/generate-commit-info.mjs\n` +
`export const COMMIT_CODE = ${JSON.stringify(commitCode)} as const\n`
mkdirSync(dirname(outFile), { recursive: true })
writeFileSync(outFile, content, 'utf8')
console.log(`Generated commit info: ${commitCode}`)

View File

@@ -69,6 +69,7 @@ const currentComponent = computed(() => {
if (id === 'children') return defineAsyncComponent(() => import('./steps/ChildrenStep.vue'))
if (id === 'income') return defineAsyncComponent(() => import('./steps/IncomeStep.vue'))
if (id === 'professionalExpenses') return defineAsyncComponent(() => import('./steps/ProfessionalExpensesStep.vue'))
if (id === 'sideIncome') return defineAsyncComponent(() => import('./steps/SideIncomeStep.vue'))
return null
})

View File

@@ -0,0 +1,83 @@
<template>
<q-card flat class="full-width q-pa-none">
<q-card-section class="full-width">
<div class="row items-center">
<div class="col">
<div class="text-h6">{{ t('SID') }}</div>
</div>
<div class="col-auto">
<q-btn flat :label="t('button.prev')" @click="emitPrev" class="q-mr-sm" />
<q-btn color="primary" :label="t('button.next')" @click="saveAndNext" />
</div>
</div>
<q-separator class="q-my-sm" />
<q-form ref="formRef" class="q-gutter-md q-mt-md">
<q-toggle class="q-mb-md" v-model="form.hasSideIncome"
:label="t('sideIncome.hasSideIncome')"
/>
<CommentAttachment
class="q-mt-none"
v-if="form.hasSideIncome"
v-model="form.sideIncomeDocuments"
:label="t('sideIncome.attachments')"
:id="'documents'"
/>
</q-form>
</q-card-section>
</q-card>
</template>
<script setup lang="ts">
import { onMounted, ref, nextTick, watch } from 'vue'
import { useI18n } from 'vue-i18n'
import type { StepDescriptor } from '../../types/types'
import { useSideIncomeStore, type SideIncomeData } from '../../stores/sideIncome'
import CommentAttachment from '../CommentAttachment.vue'
const props = defineProps<{ step?: StepDescriptor }>()
const emit = defineEmits(['next', 'prev'])
const { t } = useI18n()
const store = useSideIncomeStore()
const form = store.data as SideIncomeData
const formRef = ref<{ validate?: () => Promise<boolean> | boolean; resetValidation?: () => void } | null>(null)
onMounted(async () => {
await nextTick()
formRef.value?.resetValidation?.()
})
watch(
() => form,
() => {
store.persist()
},
{ deep: true }
)
async function saveAndNext() {
try {
const ok = await (formRef.value?.validate?.() ?? true)
if (ok === false) return
} catch {
return
}
store.setSideIncome(form)
emit('next', props.step?.next)
}
function emitPrev() {
store.setSideIncome(form)
emit('prev', props.step?.prev)
}
</script>
<style scoped>
.full-width { width: 100%; }
</style>

View File

@@ -0,0 +1,2 @@
// Auto-generated by scripts/generate-commit-info.mjs
export const COMMIT_CODE = "29b4f99" as const

View File

@@ -96,6 +96,11 @@ export default {
noAttachments: 'Dokumente anhängen'
},
sideIncome: {
hasSideIncome: 'Haben Sie ein Nebeneinkommen?',
attachments: 'Dokumente anhängen'
},
informazionesualimenti: 'Informationen zu Unterhalt',
inserireindirizzocogniuge: 'Adresse des Ehepartners eingeben',
inserireindirizzopartner: 'Adresse des Partners eingeben',

View File

@@ -112,6 +112,11 @@ export default {
hasCanteenOrVouchers: 'Do you have a canteen or meal vouchers?'
},
sideIncome: {
hasSideIncome: 'Do you have supplementary income?',
attachments: 'Attach documents'
},
informazionesualimenti: 'Alimony information',
inserireindirizzocogniuge: 'Enter spouse address',
inserireindirizzopartner: 'Enter partner address',

View File

@@ -96,6 +96,11 @@ export default {
noAttachments: 'Joindre des documents'
},
sideIncome: {
hasSideIncome: 'Avez-vous un revenu accessoire ?',
attachments: 'Joindre des documents'
},
informazionesualimenti: 'Informations sur la pension alimentaire',
inserireindirizzocogniuge: "Saisir l'adresse du conjoint",
inserireindirizzopartner: "Saisir l'adresse du partenaire",

View File

@@ -112,6 +112,11 @@ export default {
hasCanteenOrVouchers: 'Hai mensa o buoni pasto?'
},
sideIncome: {
hasSideIncome: 'Hai un reddito accessorio?',
attachments: 'Allega i documenti'
},
informazionesualimenti: 'Informazioni su alimenti',
inserireindirizzocogniuge: "Inserire l'indirizzo del coniuge",
inserireindirizzopartner: "Inserire l'indirizzo del partner",

View File

@@ -3,13 +3,12 @@
<q-header elevated>
<q-toolbar>
<q-btn flat dense round icon="menu" aria-label="Menu" @click="toggleLeftDrawer" />
<q-toolbar-title> Quasar App </q-toolbar-title>
<q-space />
<div class="row items-center no-wrap">
<div class="q-mr-md">Quasar v{{ $q.version }}</div>
<q-badge outline color="white" class="q-mr-sm">commit {{ commitCode }}</q-badge>
<q-btn flat dense icon="language" :label="currentLocaleLabel" aria-label="Language">
<q-menu auto-close>
<q-list>
@@ -23,6 +22,8 @@
</q-toolbar>
</q-header>
<q-drawer v-model="leftDrawerOpen" show-if-above bordered>
<q-scroll-area class="fit">
<div class="q-pa-md">
@@ -71,6 +72,7 @@ import { useTaxpayerStore } from '../stores/taxpayer'
import { useMaritalStore } from '../stores/marital';
import { useChildrenStore } from '../stores/children'
import { useI18n } from 'vue-i18n'
import { COMMIT_CODE } from '../generated/commit-info'
const leftDrawerOpen = ref(false);
@@ -79,6 +81,7 @@ const marital = useMaritalStore()
const children = useChildrenStore()
const { locale } = useI18n()
const commitCode = COMMIT_CODE
const locales = [
{ code: 'it-IT', label: 'Italiano' },

View File

@@ -0,0 +1,67 @@
import { defineStore } from 'pinia'
import { LocalStorage } from 'quasar'
export interface SideIncomeData {
hasSideIncome: boolean,
sideIncomeDocuments: {
comments: string,
attachments: []
}
}
const STORAGE_KEY = 'sideIncome:v1'
const DEFAULT: SideIncomeData = {
hasSideIncome: false,
sideIncomeDocuments: { comments: '', attachments: [] }
}
function isRecord(v: unknown): v is Record<string, unknown> {
return !!v && typeof v === 'object' && !Array.isArray(v)
}
export const useSideIncomeStore = defineStore('sideincomestore', {
state: () => {
try {
let saved: unknown = LocalStorage.getItem(STORAGE_KEY)
if (typeof saved === 'string') {
try {
saved = JSON.parse(saved)
} catch {
saved = null
}
}
if (isRecord(saved)) {
return { data: { ...DEFAULT, ...(saved as Partial<SideIncomeData>) } as SideIncomeData }
}
} catch {
// ignore and fall back to default
}
return { data: { ...DEFAULT } as SideIncomeData }
},
actions: {
persist() {
try {
LocalStorage.set(STORAGE_KEY, this.data)
} catch (err) {
console.error('sideIncome.store: persist error', err)
}
},
getSideIncome() {
return this.data
},
setSideIncome(partial: Partial<SideIncomeData>) {
this.data = { ...this.data, ...partial }
this.persist()
},
replaceSideIncome(payload: SideIncomeData) {
this.data = payload
this.persist()
},
resetSideIncome() {
this.data = { ...DEFAULT }
this.persist()
}
}
})