1import{d as e,e as a}from"./planfleet-5d28e8f9.js";import{d as l,a2 as o,B as r,o as n,c as t,a as i,t as s,y as u,F as d,p as c,W as p}from"./inertia-d40fdd82.js";import{a as v}from"./_plugin-vue_export-helper-f51aa658.js";const m={class:"plan-comparison__container"},f={class:"plan-comparison__heading"},b={key:0},y={class:"plan-comparison__scroll"},g={key:0,class:"plan-comparison__table plan-comparison__table--skeleton","aria-hidden":"true"},_={key:1,class:"plan-comparison__table",role:"table","aria-label":"Product comparison"},h={class:"plan-comparison__header",role:"row"},w={role:"columnheader"},P={role:"columnheader"},S={role:"columnheader"},k={role:"rowheader"},L={role:"cell"},C={key:0,class:"plan-comparison__badge"},V={role:"cell"},A={key:0,class:"plan-comparison__badge"},B={key:2,class:"plan-comparison__empty"},I={key:0,class:"plan-comparison__footnote"},x=v(l({__name:"BuilderPlanComparison",props:{primaryPid:{default:""},secondaryPid:{default:""},title:{default:"Full Specification Comparison"},description:{default:"Every row a buyer checks, with the stronger side marked."},specificationLabel:{default:"SPECIFICATION"},primaryTitle:{default:""},secondaryTitle:{default:""},showCatalogueSpecs:{type:Boolean,default:!0},showProcessorRow:{type:Boolean,default:!1},showPrice:{type:Boolean,default:!0},showAvailability:{type:Boolean,default:!1},priceLabel:{default:"Price / mo"},priceSuffix:{default:""},availabilityLabel:{default:"Availability"},manualSpecs:{default:()=>[]},advantages:{default:()=>[]},betterLabel:{default:"BETTER"},footnote:{default:""},headerColor:{default:"#abd2dd"},badgeColor:{default:"#0e91a7"}},setup(l){const v=l,{primaryPid:x,secondaryPid:T}=o(v),j=r((()=>[x.value,T.value])),{loading:$,plans:E}=e(j),F=e=>Number(String(e??"").trim()),D=r((()=>E.value.find((e=>e.pid===F(v.primaryPid)))??null)),N=r((()=>E.value.find((e=>e.pid===F(v.secondaryPid)))??null)),R={HDD:"Storage",DRIVE:"Storage",BW:"Bandwidth",IP:"IP addresses"},M=e=>R[e]??e.replace(/_/g," ").trim(),O=e=>e.trim().toLocaleLowerCase();function W(e){const a=String(e??"").trim();return"N/A"===a?"":a}function H(e,l){var o;return l.trim()?l.trim():e?W(null==(o=e.plan.description)?void 0:o.CPU)||a(e.plan):"Product"}const U=r((()=>H(D.value,v.primaryTitle))),q=r((()=>H(N.value,v.secondaryTitle)));function z(e){const a=new Map;for(const[l,o]of Object.entries((null==e?void 0:e.description)??{})){if(!v.showProcessorRow&&["cpu","processor"].includes(l.toLocaleLowerCase()))continue;const e=M(l),r=W(o);e&&r&&a.set(O(e),{label:e,value:r})}return a}const G=r((()=>{const e=new Map;for(const a of Array.isArray(v.advantages)?v.advantages:[]){const l=String((null==a?void 0:a.label)??"").trim(),o=(null==a?void 0:a.better)??"none";l&&"none"!==o&&e.set(O(l),o)}return e})),J=r((()=>{var e,a;if(!v.showCatalogueSpecs)return[];const l=z((null==(e=D.value)?void 0:e.plan)??null),o=z((null==(a=N.value)?void 0:a.plan)??null);return[...new Set([...l.keys(),...o.keys()])].map((e=>{var a,r,n,t;return{label:(null==(a=l.get(e))?void 0:a.label)??(null==(r=o.get(e))?void 0:r.label)??e,primaryValue:(null==(n=l.get(e))?void 0:n.value)??"",secondaryValue:(null==(t=o.get(e))?void 0:t.value)??"",better:G.value.get(e)??"none"}}))})),K=r((()=>{var e,a,l,o;const r=[];return v.showPrice&&(D.value||N.value)&&r.push({label:v.priceLabel,primaryValue:(null==(e=D.value)?void 0:e.from)?`$${D.value.from.toFixed(2)} ${v.priceSuffix}`.trim():"",secondaryValue:(null==(a=N.value)?void 0:a.from)?`$${N.value.from.toFixed(2)} ${v.priceSuffix}`.trim():"",better:G.value.get(O(v.priceLabel))??"none"}),v.showAvailability&&(D.value||N.value)&&r.push({label:v.availabilityLabel,primaryValue:(null==(l=D.value)?void 0:l.countries.join(", "))??"",secondaryValue:(null==(o=N.value)?void 0:o.countries.join(", "))??"",better:G.value.get(O(v.availabilityLabel))??"none"}),r})),Q=r((()=>(Array.isArray(v.manualSpecs)?v.manualSpecs:[]).map((e=>({label:String((null==e?void 0:e.label)??"").trim(),primaryValue:String((null==e?void 0:e.primaryValue)??"").trim(),secondaryValue:String((null==e?void 0:e.secondaryValue)??"").trim(),better:(null==e?void 0:e.better)??"none"}))).filter((e=>""!==e.label)))),X=r((()=>{const e=new Map;for(const a of[...J.value,...K.value])e.set(O(a.label),a);for(const a of Q.value)e.set(O(a.label),a);return[...e.values()]})),Y=r((()=>$.value&&!X.value.length)),Z=r((()=>F(v.primaryPid)>0&&F(v.secondaryPid)>0)),ee=r((()=>({"--comparison-header":v.headerColor,"--comparison-badge":v.badgeColor})));return(e,a)=>(n(),t("section",{class:"plan-comparison",style:p(ee.value)}
1,[i("div",m,[i("div",f,[i("h2",null,s(v.title),1),v.description?(n(),t("p",b,s(v.description),1)):u("",!0)]),i("div",y,[Y.value?(n(),t("div",g,[(n(),t(d,null,c(7,(e=>i("div",{key:e,class:"plan-comparison__skeleton-row"},a[0]||(a[0]=[i("span",null,null,-1),i("span",null,null,-1),i("span",null,null,-1)])))),64))])):X.value.length?(n(),t("div",_,[i("div",h,[i("div",w,s(v.specificationLabel),1),i("div",P,s(U.value),1),i("div",S,s(q.value),1)]),(n(!0),t(d,null,c(X.value,((e,a)=>(n(),t("div",{key:a,class:"plan-comparison__row",role:"row"},[i("strong",k,s(e.label),1),i("div",L,[i("span",null,s(e.primaryValue||"â"),1),"primary"===e.better?(n(),t("span",C,s(v.betterLabel),1)):u("",!0)]),i("div",V,[i("span",null,s(e.secondaryValue||"â"),1),"secondary"===e.better?(n(),t("span",A,s(v.betterLabel),1)):u("",!0)])])))),128))])):(n(),t("p",B,s(Z.value?"No comparable specifications were returned for these products.":"Add two product IDs to compare their specifications."),1))]),v.footnote?(n(),t("p",I,s(v.footnote),1)):u("",!0)])],4))}}),[["__scopeId","data-v-03a46522"]]);export{x 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.