1import{d as w,u as D,o as n,e as r,n as e,t as s,G as m,H as b,aZ as E,F as V,s as S,f as I,v as B,r as C,S as F,i as h,_ as T}from"./DTWPx-xc.js";import{f as U,m as A}from"./CjyCJrJy.js";const G=[{id:"it",rate:.3},{id:"av",rate:.2},{id:"vehicles",rate:.18},{id:"tools",rate:.15},{id:"medical",rate:.12},{id:"lab",rate:.12},{id:"machinery",rate:.1},{id:"furniture",rate:.1},{id:"other",rate:.15}],g=o=>Math.round(o*100)/100;function M(o){return o.price>0?!Number.isInteger(o.life)||o.life<1?"lifeWholeYear":o.rate>0&&o.rate<1?null:"rateBetween":"pricePositive"}function L(o){if(M(o)!==null)return{salvageValue:0,totalDepreciation:0,retainedPct:0,schedule:[]};const{price:d,life:p,rate:c}=o,i=[];for(let v=0;v<=p;v++)i.push({year:v,bookValue:g(d*Math.pow(1-c,v))});const f=g(d*Math.pow(1-c,p));return{salvageValue:f,totalDepreciation:g(d-f),retainedPct:g(f/d*100),schedule:i}}const N={class:"sv-section"},j={class:"container"},O={class:"sv-grid"},H={class:"sv-inputs"},R={class:"sv-title"},W={class:"sv-field"},Y={class:"sv-label",for:"sv-price"},Z={class:"sv-input-wrap"},q={class:"sv-prefix"},z=["aria-invalid"],J={class:"sv-field"},K={class:"sv-label",for:"sv-category"},Q=["value"],X={class:"sv-field"},x={class:"sv-label",for:"sv-rate"},ee={class:"sv-input-wrap"},se=["aria-invalid"],te={class:"sv-field"},ae={class:"sv-label",for:"sv-life"},le={class:"sv-input-wrap"},oe=["aria-invalid"],ie={class:"sv-suffix"},ne={key:0,class:"sv-error",role:"alert"},re={class:"sv-results","aria-live":"polite"},de={class:"sv-headline"},ce={class:"sv-headline-label"},ve={class:"sv-headline-value"},ue={class:"sv-stats"},pe={class:"sv-stat"},fe={class:"sv-stat"},_e={class:"sv-schedule"},me={class:"sv-table-caption"},he={scope:"col"},ge={scope:"col"},ye={key:1,class:"sv-empty"},be=w({__name:"SalvageValueCalculator",setup(o){const d=G,p=C("it"),c=C(30),i=F({price:25e3,life:5});function f(){const t=d.find(l=>l.id===p.value);t&&(c.value=Math.round(t.rate*100))}const v=h(()=>({price:i.price,life:i.life,rate:(c.value??0)/100})),u=h(()=>M(v.value)),_=h(()=>L(v.value)),{locale:$,defaultLocale:k}=D(),y=t=>U(t,$.value,k),P=h(()=>A($.value,k).symbol);return(t,l)=>(n(),r("section",N,[e("div",j,[e("div",O,[e("div",H,[e("h2",R,s(t.$t("tools.salvage.title")),1),l[5]||(l[5]=e("p",{class:"sv-blurb"},"Pick an asset category to load a typical depreciation rate, then adjust any field. Everything runs in your browser.",-1)),e("div",W,[e("label",Y,s(t.$t("tools.salvage.price")),1),e("div",Z,[e("span",q,s(P.value),1),m(e("input",{id:"sv-price","onUpdate:modelValue":l[0]||(l[0]=a=>i.price=a),type:"number",min:"0",step:"any",inputmode:"decimal",class:"form-control",autocomplete:"off","aria-invalid":!!u.value},null,8,z),[[b,i.price,void 0,{number:!0}]])])]),e("div",J,[e("label",K,s(t.$t("tools.salvage.category")),1),m(e("select",{id:"sv-category","onUpdate:modelValue":l[1]||(l[1]=a=>p.value=a),class:"form-select",onChange:f},[(n(!0),r(V,null,S(I(d),a=>(n(),r("option",{key:a.id,value:a.id},s(t.$t(`tools.salvage.categories.${a.id}`)),9,Q))),128))],544),[[E,p.value]])]),e("div",X,[e("label",x,s(t.$t("tools.salvage.rate")),1),e("div",ee,[m(e("input",{id:"sv-rate","onUpdate:modelValue":l[2]||(l[2]=a=>c.value=a),type:"number",min:"0",max:"100",step:"any",inputmode:"decimal",class:"form-control",autocomplete:"off","aria-invalid":!!u.value},null,8,se),[[b,c.value,void 0,{number:!0}]]),l[4]||(l[4]=e("span",{class:"sv-suffix"},"%",-1))])]),e("div",te,[e("label",ae,s(t.$t("tools.salvage.life")),1),e("div",le,[m(e("input",{id:"sv-life","onUpdate:modelValue":l[3]||(l[3]=a=>i.life=a),type:"number",min:"1",step:"1",inputmode:"numeric",class:"form-control",autocomplete:"off","aria-invalid":!!u.value},null,8,oe),[[b,i.life,void 0,{number:!0}]]),e("span",ie,s(t.$t("tools.salvage.years")),1)])]),u.value?(n(),r("p",ne,s(u.value),1)):B("",!0)]),e("div",re,[u.value?(n(),r("p",ye,s(t.$t(`tools.salvage.errors.${u.value??"pricePositive"}`)),1)):(n(),r(V,{key:0},[e("div",de,[e("span",ce,s(t.$t("tools.salvage.estimated")),1),e("span",ve,s(y(_.value.salvageValue)),1)]),e("dl",ue,[e("div",pe,[e("dt",null,s(t.$t("tools.salvage.totalDep")),1),e("dd",null,s(y(_.value.totalDepreciation)),1)]),e("div",fe,[e("dt",null,s(t.$t("tools.salvage.retained")),1
1),e("dd",null,s(_.value.retainedPct)+"%",1)])]),e("table",_e,[e("caption",me,s(t.$t("tools.salvage.tableTitle")),1),e("thead",null,[e("tr",null,[e("th",he,s(t.$t("tools.salvage.year")),1),e("th",ge,s(t.$t("tools.salvage.bookValue")),1)])]),e("tbody",null,[(n(!0),r(V,null,S(_.value.schedule,a=>(n(),r("tr",{key:a.year},[e("td",null,s(a.year),1),e("td",null,s(y(a.bookValue)),1)]))),128))])])],64))])])])]))}}),ke=Object.assign(T(be,[["__scopeId","data-v-4e7e4c54"]]),{__name:"ToolsSalvageValueCalculator"});export{ke as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.