1import{a as G}from"./chunk-RO6UT36A.js";import{a as Y}from"./chunk-VFAZ3Q4T.js";import{a as K}from"./chunk-6ZLTLLGV.js";import{p as N,q as z,r as $,s as U}from"./chunk-L7WATY32.js";import"./chunk-2RDPNIM6.js";import"./chunk-XPR5ELEW.js";import"./chunk-GGY6QDTV.js";import"./chunk-5IJU7MQ2.js";import"./chunk-LM6BYTWK.js";import"./chunk-7DHSGR33.js";import"./chunk-4MYWE7CD.js";import{g as F,i as R}from"./chunk-EWPP756Y.js";import"./chunk-I5EQON52.js";import{c as B,d as D}from"./chunk-G6PWMA7J.js";import{Jd as A,Qb as c,Qc as d,Rb as a,Rc as m,Sb as i,Tb as O,Xb as S,Yb as V,cc as P,db as n,ec as v,fd as b,ga as u,sb as y,sc as o,tc as p,uc as x,vc as H,vd as T,wd as L,xd as w,yb as _}from"./chunk-IQ6SK2BU.js";import"./chunk-FE7444LI.js";import"./chunk-OXDKANHF.js";import"./chunk-XUHYVR5R.js";function J(t,s){t&1&&(a(0,"div",7)(1,"div",8)(2,"div",9),O(3,"span",10)(4,"span",11)(5,"span",12)(6,"span",13),i(),a(7,"div",9),O(8,"span",10)(9,"span",11)(10,"span",12)(11,"span",13),i()(),a(12,"div",14),O(13,"span",15)(14,"span",16),i()())}function Q(t,s){t&1&&(a(0,"p",17),o(1),d(2,"translate"),i()),t&2&&(n(),x(" ",m(2,1,"V2.VEHICLE_HEALTH.COMPARE.SELECT_TWO")," "))}function X(t,s){t&1&&(a(0,"p",17),o(1),d(2,"translate"),i()),t&2&&(n(),x(" ",m(2,1,"V2.VEHICLE_HEALTH.COMPARE.CROSS_VEHICLE")," "))}function Z(t,s){t&1&&(a(0,"p",17),o(1),d(2,"translate"),i()),t&2&&(n(),x(" ",m(2,1,"V2.VEHICLE_HEALTH.COMPARE.LOAD_FAILED")," "))}function ee(t,s){if(t&1&&(a(0,"div",29)(1,"span"),o(2),d(3,"translate"),i(),a(4,"span",30),o(5),i()()),t&2){let e=s.$implicit,l=v(3);n(2),p(m(3,3,l.systemLabelKey(e.system))),n(3),H("",e.from," \u2192 ",e.to)}}function te(t,s){if(t&1&&(a(0,"div",27)(1,"span",24),o(2),d(3,"translate"),i(),_(4,ee,6,5,"div",28),i()),t&2){let e=v(2);n(2),p(m(3,2,"V2.VEHICLE_HEALTH.COMPARE.IMPROVED")),n(2),c("ngForOf",e.delta.improvedSystems)}}function ne(t,s){if(t&1&&(a(0,"div",29)(1,"span"),o(2),d(3,"translate"),i(),a(4,"span",31),o(5),i()()),t&2){let e=s.$implicit,l=v(3);n(2),p(m(3,3,l.systemLabelKey(e.system))),n(3),H("",e.from," \u2192 ",e.to)}}function ie(t,s){if(t&1&&(a(0,"div",27)(1,"span",24),o(2),d(3,"translate"),i(),_(4,ne,6,5,"div",28),i()),t&2){let e=v(2);n(2),p(m(3,2,"V2.VEHICLE_HEALTH.COMPARE.WORSENED")),n(2),c("ngForOf",e.delta.worsenedSystems)}}function ae(t,s){if(t&1&&(a(0,"span",33),o(1),i()),t&2){let e=s.$implicit;n(),x(" ",e," ")}}function oe(t,s){if(t&1&&(a(0,"div",27)(1,"span",24),o(2),d(3,"translate"),i(),_(4,ae,2,1,"span",32),i()),t&2){let e=v(2);n(2),p(m(3,2,"V2.VEHICLE_HEALTH.COMPARE.NEW_FINDINGS")),n(2),c("ngForOf",e.delta.newFindings)}}function re(t,s){if(t&1&&(a(0,"span",33),o(1),i()),t&2){let e=s.$implicit;n(),x(" ",e," ")}}function le(t,s){if(t&1&&(a(0,"div",27)(1,"span",24),o(2),d(3,"translate"),i(),_(4,re,2,1,"span",32),i()),t&2){let e=v(2);n(2),p(m(3,2,"V2.VEHICLE_HEALTH.COMPARE.RESOLVED")),n(2),c("ngForOf",e.delta.resolvedFindings)}}function se(t,s){if(t&1&&(a(0,"span",33),o(1),i()),t&2){let e=s.$implicit;n(),x(" ",e," ")}}function pe(t,s){if(t&1&&(a(0,"div",27)(1,"span",24),o(2),d(3,"translate"),i(),_(4,se,2,1,"span",32),i()),t&2){let e=v(2);n(2),p(m(3,2,"V2.VEHICLE_HEALTH.COMPARE.RECURRING")),n(2),c("ngForOf",e.delta.recurringFindings)}}function ce(t,s){if(t&1&&(S(0),a(1,"div",8)(2,"div",9)(3,"span",18),o(4),d(5,"translate"),i(),a(6,"span",19),o(7),i(),a(8,"span",20),o(9),i(),a(10,"span",21),o(11),i()(),a(12,"mat-icon",22),o(13,"arrow_forward"),i(),a(14,"div",9)(15,"span",18),o(16),d(17,"translate"),i(),a(18,"span",19),o(19),i(),a(20,"span",20),o(21),i(),a(22,"span",21),o(23),i()()(),a(24,"p",23),o(25),d(26,"translate"),i(),a(27,"div",14)(28,"span",24),o(29),d(30,"translate"),i(),a(31,"span",25),o(32),i()(),_(33,te,5,4,"div",26)(34,ie,5,4,"div",26)(35,oe,5,4,"div",26)(36,le,5,4,"div",26)(37,pe,5,4,"div",26),V()),t&2){let e=v();n(4),p(m(5,18,"V2.VEHICLE_HEALTH.COMPARE.PREVIOUS")),n(3),p(e.label(e.previous)),n(2),p(e.when(e.previous)),n(2),p(e.previous==null||e.previous.report==null?null:e.previous.report.score),n(5),p(m(17,20,"V2.VEHICLE_HEALTH.COMPARE.CURRENT")),n(3),p(e.label(e.current)),n(2),p(e.when(e.current)),n(2),p(e.current==null||e.current.report==null?null:e.current.report.score),n(2),p(m(26,22,"V2.VEHICLE_HEALTH.COMPARE.COMPARISON_LIMITS")),n(4),p(m(30,24,"V2.VEHICLE_HEALTH.COMPARE.SCORE_CHANGE")),n(2),c("ngClass",e.scoreChangeClass),n(),H(" ",e.delta.scoreChange>0?"+":"","",e.delta.scoreChange," "),n(),c("ngIf",e.delta.improvedSystems.length),n(),c("ngIf",e.delta.worsenedSystems.length),n(),c("ngIf",e.delta.newFindings.length),n(),c("ngIf",e.delta.resolvedFindings.length),n(),c("ngIf",e.delta.recurringFindings.length)}}var ye=(()=>{class t{constructor(){this.api=u(K),this.route=u(F),this.router=u(R),this.cdr=u(b),this.loading=!0,this.error=!1,this.crossVehicle=!1,this.loadFailed=!1,this.previous=null,this.current=null,this.delta=null}
1ngOnInit(){let e=this.route.snapshot.queryParamMap.get("a"),l=this.route.snapshot.queryParamMap.get("b");if(!e||!l){this.error=!0,this.loading=!1;return}this.api.compareReports(e,l).subscribe({next:({a:r,b:C})=>{if(!this.sameVehicle(r,C)){this.crossVehicle=!0,this.error=!0,this.loading=!1,this.cdr.markForCheck();return}let g=[r,C].sort((E,f)=>E.createTime-f.createTime);this.previous=g[0],this.current=g[1],this.delta=this.computeDelta(this.previous,this.current),this.loading=!1,this.cdr.markForCheck()},error:r=>{let C=r?.status,g=r?.error?.code;this.crossVehicle=C===400&&(g==="CrossVehicleCompare"||g==="UnknownVehicleCompare"),this.loadFailed=!this.crossVehicle,this.error=!0,this.loading=!1,this.cdr.markForCheck()}})}sameVehicle(e,l){return e.garageCarId!=null&&l.garageCarId!=null&&e.garageCarId===l.garageCarId}computeDelta(e,l){let r=e.report.systemScores??{},C=l.report.systemScores??{},g=[],E=[];for(let h of G){let k=r[h],I=C[h];typeof k=="number"&&typeof I=="number"&&k!==I&&(I>k?g:E).push({system:h,from:k,to:I})}let f=this.findingNames(e),M=this.findingNames(l),W=[...M].filter(h=>!f.has(h)),j=[...f].filter(h=>!M.has(h)),q=[...M].filter(h=>f.has(h));return{scoreChange:l.report.score-e.report.score,improvedSystems:g,worsenedSystems:E,newFindings:W,resolvedFindings:j,recurringFindings:q}}findingNames(e){let l=[...e.report.criticalIssues,...e.report.maintenancePlan];return new Set(l.filter(r=>r.status!=="good").map(r=>r.item.trim().toLowerCase()))}label(e){return e?`${e.year} ${e.make} ${e.model}`.trim():""}when(e){return e?Y(e.createTime,void 0,{dateStyle:"medium"}):""}systemLabelKey(e){return`V2.VEHICLE_HEALTH.SYSTEMS.${e.toUpperCase()}`}get scoreChangeClass(){return this.delta?this.delta.scoreChange>0?"vhk-score-up":this.delta.scoreChange<0?"vhk-score-down":"vhk-score-unchanged":""}back(){this.router.navigate(["/v2/mech-care/health/history"])}static{this.\u0275fac=function(l){return new(l||t)}}static{this.\u0275cmp=y({type:t,selectors:[["app-vehicle-health-compare"]],decls:15,vars:11,consts:[[1,"vhk"],[1,"vhk-head"],["mat-button","",3,"click"],[1,"vhk-title"],["aria-hidden","true",4,"ngIf"],["class","vhk-muted",4,"ngIf"],[4,"ngIf"],["aria-hidden","true"],[1,"vhk-pair"],[1,"vhk-side"],[1,"vhk-skel","vhk-skel--tag"],[1,"vhk-skel","vhk-skel--vehicle"],[1,"vhk-skel","vhk-skel--when"],[1,"vhk-skel","vhk-skel--score"],[1,"vhk-card","vhk-scorechange"],[1,"vhk-skel","vhk-skel--label"],[1,"vhk-skel","vhk-skel--bignum"],[1,"vhk-muted"],[1,"vhk-side-tag"],[1,"vhk-side-vehicle"],[1,"vhk-side-when"],[1,"vhk-side-score"],[1,"vhk-arrow"],[1,"vhk-card","vhk-comparison-note"],[1,"vhk-card-label"],[1,"vhk-bignum",3,"ngClass"],["class","vhk-card",4,"ngIf"],[1,"vhk-card"],["class","vhk-sys",4,"ngFor","ngForOf"],[1,"vhk-sys"],[1,"vhk-score-up"],[1,"vhk-score-down"],["class","vhk-find",4,"ngFor","ngForOf"],[1,"vhk-find"]],template:function(l,r){l&1&&(a(0,"div",0)(1,"div",1)(2,"button",2),P("click",function(){return r.back()}),a(3,"mat-icon"),o(4,"arrow_back"),i(),o(5),d(6,"translate"),i(),a(7,"h2",3),o(8),d(9,"translate"),i()(),_(10,J,15,0,"div",4)(11,Q,3,3,"p",5)(12,X,3,3,"p",5)(13,Z,3,3,"p",5)(14,ce,38,26,"ng-container",6),i()),l&2&&(n(5),x(" ",m(6,7,"V2.VEHICLE_HEALTH.HISTORY.BACK")," "),n(3),p(m(9,9,"V2.VEHICLE_HEALTH.COMPARE.TITLE")),n(2),c("ngIf",r.loading),n(),c("ngIf",!r.loading&&r.error&&!r.crossVehicle&&!r.loadFailed),n(),c("ngIf",!r.loading&&r.error&&r.crossVehicle),n(),c("ngIf",!r.loading&&r.error&&r.loadFailed),n(),c("ngIf",!r.loading&&!r.error&&r.delta))},dependencies:[A,T,L,w,z,N,U,$,D,B],styles:['@charset "UTF-8";[_nghost-%COMP%]{display:block}.vhk[_ngcontent-%COMP%]{max-width:680px;margin:0 auto;padding:16px}.vhk-head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;margin-bottom:16px}.vhk-title[_ngcontent-%COMP%]{font-size:20px;font-weight:800;color:var(--color-text);margin:0}.vhk-muted[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:14px;text-align:center;padding:24px 0}.vhk-pair[_ngcontent-%COMP%]{display:flex;align-items:stretch;gap:12px;margin-bottom:16px}.vhk-side[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:2px;padding:14px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface)}.vhk-side-tag[_ngcontent-%COMP%]{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary)}.vhk-side-vehicle[_ngcontent-%COMP%]{font-size:14px;font-weight:700;color:var(--color-text)}.vhk-side-when[_ngcontent-%COMP%]{font-size:12px;color:var(--color-text-secondary)}.vhk-side-score[_ngcontent-%COMP%]{margin-top:6px;font-size:28px;font-weight:800;color:var(--color-text)}.vhk-arrow[_ngcontent-%COMP%]{align-self:center;color:var(--color-text-secondary)}.vhk-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface);margin-bottom:12px}.vhk-card-label[_ngcontent-%COMP%]{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--color-text-secondary)}.vhk-scorechange[_ngcontent-%COMP%]{align-items:center;text-align:center}.vhk-bignum[_ngcontent-%COMP%]{font-size:40px;font-weight:800}.vhk-sys[_ngcontent-%COMP%]{display:flex;justify-content:space-between;font-size:13px;color:var(--color-text)}.vhk-find[_ngcontent-%COMP%]{font-size:13px;color:var(--color-text);padding:2px 0}.vhk-skel[_ngcontent-%COMP%]{display:block;border-radius:6px;background:linear-gradient(90deg,var(--color-surface-2) 25%,var(--color-border) 37%,var(--color-surface-2) 63%);background-size:400% 100%;animation:_ngcontent-%COMP%_vhk-shimmer 1.6s ease-in-out infinite}.vhk-skel--tag[_ngcontent-%COMP%]{width:40%;height:10px}.vhk-skel--vehicle[_ngcontent-%COMP%]{width:70%;height:14px;margin-top:4px}.vhk-skel--when[_ngcontent-%COMP%]{width:50%;height:12px;margin-top:4px}.vhk-skel--score[_ngcontent-%COMP%]{width:40px;height:28px;margin-top:8px}.vhk-skel--label[_ngcontent-%COMP%]{width:45%;height:12px}.vhk-skel--bignum[_ngcontent-%COMP%]{width:60px;height:40px;margin-top:6px}@keyframes _ngcontent-%COMP%_vhk-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.vhk-comparison-note[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:13px;line-height:1.5}.vhk-head[_ngcontent-%COMP%] button[_ngcontent-%COMP%], .vhk-head[_ngcontent-%COMP%] button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:var(--color-text)}.vhk-score-up[_ngcontent-%COMP%]{color:var(--color-success-text)}.vhk-score-down[_ngcontent-%COMP%]{color:var(--color-danger-text)}.vhk-score-unchanged[_ngcontent-%COMP%]{color:var(--color-text-secondary)}'],changeDetection:0})}}return t})();export{ye as VehicleHealthCompareComponent};
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.