diff --git a/dist-electron/main.cjs b/dist-electron/main.cjs index 84c097e..6cea20e 100644 --- a/dist-electron/main.cjs +++ b/dist-electron/main.cjs @@ -1,4 +1,4 @@ -var p=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ye=p((Lr,mt)=>{mt.exports={webcontent:"webcontent-send",quit:"quit-app",test:{start:"test-start"},app:{toMain:{setAcceptableInsCoNm:"setAcceptableInsCoNm",setUserName:"setUserName",track:"analytics_track",checkForUpdates:"app_checkForUpdates",downloadUpdates:"app_downloadUpdates",installUpdates:"app_installupdates",getReleaseNotes:"app_getReleaseNotes",getAppVersion:"app_getApVersion",importJob:"app_importJob",setReleaseChannel:"app_setReleaseChannel",scrubEstimate:"app_scrubEstimate",openExternalWindow:"app_openExternalWindow",setInsRuleSet:"app_setInsRuleSet",log:{info:"app_logInfo",debug:"app_logDebug",warn:"app_logWarn",error:"app_logError",silly:"app_logSilly"}},toRenderer:{updateAvailable:"app_updateAvailable",downloadProgress:"app_downloadProgress",signOut:"app_signOut",setReleaseNotes:"app_setReleaseNotes",appVersion:"app_appVersion",scrubResults:"app_scrubResults",scrubError:"app_scrubError"}},store:{get:"store__get",getAll:"store_getAll",set:"store_set",response:"store_response"},fileScan:{toMain:{scanFilePaths:"fileScan__scanFilePaths",importJob:"fileScan__importJob",deleteAllEms:"filescan_deleteAllEms"},toRenderer:{scanFilePathsResponse:"fileScan__scanFilePathsResponse"}},fileWatcher:{toMain:{filepathsGet:"filewatcher__filepathsget",start:"filewatcher__start",stop:"filewatcher__stop",addPath:"filewatcher__addPath",removePath:"filewatcher__removePath",setPolling:"filewatcher__setPolling"},toRenderer:{filepathsList:"filewatcher__filepathslist",startSuccess:"filewatcher__start-success",startFailure:"filewatcher__start-failure",stopSuccess:"filewatcher__stop-success",error:"filewatcher__error",getPolling:"filewatcher__getPolling"}},audit:{toMain:{browseForFile:"audit__browseForFile",runAudit:"audit__runAudit",readFile:"audit__readFile"},toRenderer:{auditFilePath:"audit__filepath",auditClaimsArray:"audit_claimsArray",auditError:"audit__auditError"}},estimate:{toRenderer:{estimateDecodeStart:"estimatedecode__start",estimateDecodeSuccess:"estimatedecode__success",estimateDecodeFailure:"estimatedecode__failure",getCloseDate:"getclosedate"}}}});var P=p(Re=>{Re.default=ye()});var y=p(Pe=>{var{randomUUID:_t}=require("crypto"),wt=require("electron-store"),bt=new wt({defaults:{deviceId:_t(),showChangeLog:!0,enableNotifications:!0,filePaths:[],accepted_ins_co:[],runWatcherOnStartup:!0,polling:{enabled:!1,pollingInterval:3e4},ins_rule_set:null}});Pe.store=bt});var re=p(Ae=>{var{Notification:yt}=require("electron"),Rt=require("path"),{store:Pt}=y();function At(e){Pt.get("enableNotifications")&&yt({icon:Rt.join(__dirname,"../../src/assets/logo512.png"),...e}).show()}Ae.NewNotification=At});var Ie=p(Ne=>{var C=require("moment"),Nt=[{title:"V1",range:[C("2010-01-01"),C("2023-04-01")]},{title:"V2",range:[C("2023-04-01"),C("2024-09-01")]},{title:"V3",range:[C("2024-09-01"),C("2040-01-01")]}];function It(e){let t=e?C(e):C();return Nt.find(a=>t.isSameOrAfter(a.range[0])&&t.isBefore(a.range[1]))?.title}Ne.WhichRulesetToApply=It});var Ee=p(ve=>{var{DBFFile:Dr}=require("dbffile"),Or=require("path"),Wr=require("lodash"),Ur=require("electron-log"),{store:Vr}=y(),{BrowserWindow:Br}=require("electron"),$r=P();ve.claimsClerk=({jobline:e,joblines:t})=>vt.map(a=>a({jobline:e,joblines:t})).filter(a=>a!==null);var vt=[({jobline:e,joblines:t})=>e.db_hrs!==0&&e.mod_lb_hrs!==e.db_hrs&&e.lbr_inc===!1&&e.lbr_hrs_j===!0?{key:"Manual labor Time Change",alert:`
+var p=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Pe=p((xr,wt)=>{wt.exports={webcontent:"webcontent-send",quit:"quit-app",test:{start:"test-start"},app:{toMain:{setAcceptableInsCoNm:"setAcceptableInsCoNm",setUserName:"setUserName",track:"analytics_track",checkForUpdates:"app_checkForUpdates",downloadUpdates:"app_downloadUpdates",installUpdates:"app_installupdates",getReleaseNotes:"app_getReleaseNotes",getAppVersion:"app_getApVersion",importJob:"app_importJob",setReleaseChannel:"app_setReleaseChannel",scrubEstimate:"app_scrubEstimate",openExternalWindow:"app_openExternalWindow",setInsRuleSet:"app_setInsRuleSet",log:{info:"app_logInfo",debug:"app_logDebug",warn:"app_logWarn",error:"app_logError",silly:"app_logSilly"}},toRenderer:{updateAvailable:"app_updateAvailable",downloadProgress:"app_downloadProgress",signOut:"app_signOut",setReleaseNotes:"app_setReleaseNotes",appVersion:"app_appVersion",scrubResults:"app_scrubResults",scrubError:"app_scrubError"}},store:{get:"store__get",getAll:"store_getAll",set:"store_set",response:"store_response"},fileScan:{toMain:{scanFilePaths:"fileScan__scanFilePaths",importJob:"fileScan__importJob",deleteAllEms:"filescan_deleteAllEms"},toRenderer:{scanFilePathsResponse:"fileScan__scanFilePathsResponse"}},fileWatcher:{toMain:{filepathsGet:"filewatcher__filepathsget",start:"filewatcher__start",stop:"filewatcher__stop",addPath:"filewatcher__addPath",removePath:"filewatcher__removePath",setPolling:"filewatcher__setPolling"},toRenderer:{filepathsList:"filewatcher__filepathslist",startSuccess:"filewatcher__start-success",startFailure:"filewatcher__start-failure",stopSuccess:"filewatcher__stop-success",error:"filewatcher__error",getPolling:"filewatcher__getPolling"}},audit:{toMain:{browseForFile:"audit__browseForFile",runAudit:"audit__runAudit",readFile:"audit__readFile"},toRenderer:{auditFilePath:"audit__filepath",auditClaimsArray:"audit_claimsArray",auditError:"audit__auditError"}},estimate:{toRenderer:{estimateDecodeStart:"estimatedecode__start",estimateDecodeSuccess:"estimatedecode__success",estimateDecodeFailure:"estimatedecode__failure",getCloseDate:"getclosedate"}}}});var P=p(Ne=>{Ne.default=Pe()});var y=p(Ae=>{var{randomUUID:bt}=require("crypto"),yt=require("electron-store"),Rt=new yt({defaults:{deviceId:bt(),showChangeLog:!0,enableNotifications:!0,filePaths:[],accepted_ins_co:[],runWatcherOnStartup:!0,polling:{enabled:!1,pollingInterval:3e4},ins_rule_set:null}});Ae.store=Rt});var ae=p(Ie=>{var{Notification:Pt}=require("electron"),Nt=require("path"),{store:At}=y();function It(e){At.get("enableNotifications")&&Pt({icon:Nt.join(__dirname,"../../src/assets/logo512.png"),...e}).show()}Ie.NewNotification=It});var Se=p(ve=>{var M=require("moment"),vt=[{title:"V1",range:[M("2010-01-01"),M("2023-04-01")]},{title:"V2",range:[M("2023-04-01"),M("2024-09-01")]},{title:"V3",range:[M("2024-09-01"),M("2040-01-01")]}];function St(e){let t=e?M(e):M();return vt.find(a=>t.isSameOrAfter(a.range[0])&&t.isBefore(a.range[1]))?.title}ve.WhichRulesetToApply=St});var Fe=p(Ee=>{var{DBFFile:kr}=require("dbffile"),Wr=require("path"),Ur=require("lodash"),Vr=require("electron-log"),{store:Br}=y(),{BrowserWindow:$r}=require("electron"),Jr=P();Ee.claimsClerk=({jobline:e,joblines:t})=>Et.map(a=>a({jobline:e,joblines:t})).filter(a=>a!==null);var Et=[({jobline:e,joblines:t})=>e.db_hrs!==0&&e.mod_lb_hrs!==e.db_hrs&&e.lbr_inc===!1&&e.lbr_hrs_j===!0?{key:"Manual labor Time Change",alert:`
Labor time manually changed from original CEG time. -
`}:null]});var $=p(Q=>{var{DBFFile:R}=require("dbffile"),z=require("path"),A=require("lodash"),h=require("electron-log"),{store:Fe}=y(),{BrowserWindow:Ce}=require("electron"),Le=P(),{NewNotification:Se}=re(),{WhichRulesetToApply:Et}=Ie(),{claimsClerk:Gr}=Ee();async function St(e){let t=z.parse(e),r=z.join(t.dir,t.name),a=await qe(r);Ce.getAllWindows()[0].webContents.send(Le.default.estimate.toRenderer.getCloseDate,{filepath:e,clm_no:a.CLM_NO})}async function Mt(e,t){let r=await xe(e,!1,t),a=Ce.getAllWindows()[0];r&&!r.ERROR?(a.webContents.send(Le.default.estimate.toRenderer.estimateDecodeSuccess,r),h.info(`Sent job for upload. ${r.clm_no}`),Se({title:"Job Uploaded",body:"A new job has been uploaded."})):(h.info(`Ignored job. ${r.ERROR}`),Se({title:"Job Ignored",body:r.ERROR}))}Q.ImportJobWithCloseDate=Mt;async function xe(e,t=!1,r=null){let a=z.parse(e),o=z.join(a.dir,a.name),n={...await qe(o),...await Lt(o),...await xt(o),...await qt(o,r),...await Tt(o),...await Dt(o),...await Ct(o),...await kt(o),...t?{filePath:e}:{}},i=await Ft(o);n.rates=[...n.rates||[],...n.mat_rates||[]],delete n.mat_rates,n.insp_date=i.INSP_DATE,(n.OWNR_FN===""||!n.OWNR_FN)&&(n.OWNR_FN=i.CLMT_FN),(n.OWNR_LN===""||!n.OWNR_LN)&&(n.OWNR_LN=i.CLMT_LN),n.OWNR_CO_NM&&(n.OWNR_LN=`${n.OWNR_LN} ${n.OWNR_CO_NM}`),delete n.OWNR_CO_NM;let g=Fe.get("accepted_ins_co"),f;return g.includes(n.INS_CO_NM)?n.CLM_NO?n.CLM_NO.match("-01$")||n.CLM_NO.match("-99$")?(delete n.LOSS_TYPE,f=A.transform(n,function(_,k,x){_[x.toLowerCase()]=k})):(h.info("Job ignored. This is not a -01 or -99 claim. Claim #. "+n.CLM_NO),f={ERROR:"Job ignored. This is not a -01 or -99 claim. Claim #. "+n.CLM_NO}):(h.info("Job ignored. No claim #. "),f={ERROR:"An unique claim number must be set for all jobs sent to RPS."}):f={ERROR:`Insurance Company Name is not valid for RPS. (${n.INS_CO_NM||"No name set"})`},f}async function qe(e){let t;try{t=await R.open(`${e}A.AD1`)}catch(r){h.error("Error opening AD1 File.",r),t=await R.open(`${e}.AD1`),t&&h.log("Found AD1 file using regular CIECA Id.")}finally{if(!t)return{};let r=await t.readRecords(1);return A.pick(r[0],["INS_CO_NM","DED_AMT","CLM_NO","LOSS_DATE","LOSS_TYPE","LOSS_DESC","THEFT_IND","TLOS_IND","OWNR_LN","OWNR_FN","OWNR_CO_NM","OWNR_ADDR1","OWNR_CITY","OWNR_PH1"])}}async function Ft(e){let t;try{t=await R.open(`${e}B.AD2`)}catch(r){h.error("Error opening AD2 File.",r),t=await R.open(`${e}.AD2`),t&&h.log("Found AD2 file using regular CIECA Id.")}finally{if(!t)return{};let r=await t.readRecords(1);return A.pick(r[0],["CLMT_LN","CLMT_FN","INSP_DATE"])}}async function Ct(e){let t;try{t=await R.open(`${e}.PFH`)}catch(r){h.error("Error opening PFH File.",r)}finally{if(!t)return{};let r=await t.readRecords(1);return A.pick(r[0],["ID_PRO_NAM"])}}async function Lt(e){let t;try{t=await R.open(`${e}V.VEH`)}catch(r){h.error("Error opening VEH File.",r),t=await R.open(`${e}.VEH`),t&&h.log("Found VEH file using regular CIECA Id.")}finally{if(!t)return{};let r=await t.readRecords(1);return A.pick(r[0],["IMPACT_1","IMPACT_2","V_VIN","V_MODEL_YR","V_MAKEDESC","V_MODEL","V_TYPE","V_MILEAGE","V_STAGE"])}}async function xt(e){let r=await(await R.open(`${e}.TTL`)).readRecords(1);return{clm_total:r[0].G_TTL_AMT,supp_amt:r[0].SUPP_AMT,g_bett_amt:r[0].G_BETT_AMT}}async function qt(e,t){let o=(await(await R.open(`${e}.LIN`)).readRecords()).map(i=>A.transform(A.pick(i,["LINE_NO","LINE_IND","LINE_REF","DB_REF","UNQ_SEQ","LINE_DESC","PART_TYPE","PRT_DSMK_M","OEM_PARTNO","PRICE_INC","TAX_PART","DB_PRICE","ACT_PRICE","PART_QTY","PRICE_J","GLASS_FLAG","CERT_PART","ALT_PARTNO","PRT_DSMK_P","MOD_LBR_TY","DB_HRS","MOD_LB_HRS","LBR_INC","LBR_OP","LBR_HRS_J","LBR_OP_J","LBR_AMT","MISC_AMT"]),function(g,f,_){if(_==="UNQ_SEQ"){g[_.toLowerCase()]=f.toString();return}g[_.toLowerCase()]=f})),n=Fe.get("ins_rule_set");return o.map(i=>{switch(i.ignore=!1,n){case"MPI":switch(Et(t)){case"V1":i=Te(i,o);break;case"V2":i=ke(i,o);break;case"V3":i=Me(i,o);break;default:i=Me(i,o);break}break;case"SGI":h.info("Using SGI ruleset. Line will be automatically counted until rules are added.");break;default:h.info("Using default ruleset (MPI).");break}return i}),{joblines:{data:o}}}async function Tt(e){return{rates:(await(await R.open(`${e}.PFL`)).readRecords()).map(o=>A.pick(o,["LBR_TYPE","LBR_DESC","LBR_RATE"]))}}async function kt(e){return{totals:(await(await R.open(`${e}.STL`)).readRecords()).map(o=>A.pick(o,["TTL_TYPECD","T_AMT","T_HRS","NT_HRS"]))}}async function Dt(e){return{mat_rates:(await(await R.open(`${e}.PFM`)).readRecords()).map(o=>A.pick(o,["MATL_TYPE","CAL_PRETHR"]))}}Q.DecodeEstimate=xe;Q.ImportJob=St;function Te(e,t){if(e.part_type==="PAN"&&e.line_desc.toLowerCase().includes("wheel")&&Math.abs(e.prt_dsmk_m)===Math.round(e.act_price/2*100)/100&&(h.info(`Jobline '${e.line_desc}' ignored due to wheel repair.`),e.ignore=!0),e.part_type==="PAN"&&e.db_price!==e.act_price&&e.db_price!==0&&(e.db_price=e.act_price),(e.part_type==="PAA"||e.part_type==="PAL"||e.part_type==="PAN")&&e.db_price===0&&(e.ignore=!0),e.part_type!=="PAL"&&e.act_price===0&&e.price_j&&(h.info(`Jobline '${e.line_desc}' ignored because it was manually changed to 0..`),e.ignore=!0),e.line_desc.toLowerCase().includes("glass")&&e.oem_partno.match("[A-Z]{2}[0-9]{5,6}[A-Z]{3}")&&(console.log(e.line_desc,"NAGS Line ignored"),e.ignore=!0),(!e.part_type||e.db_ref.startsWith("900")||e.line_desc.toLowerCase().startsWith("urethane")||e.line_desc.toLowerCase().startsWith("w/shield adhesive")||e.line_desc.toLowerCase().includes("tire")&&!e.line_desc.toLowerCase().includes("sensor")&&!e.line_desc.toLowerCase().includes("label")||e.line_desc.toLowerCase().startsWith("hazardous")||e.line_desc.toLowerCase().startsWith("detail")||e.line_desc.toLowerCase().startsWith("clean")||e.part_type.toUpperCase()==="PAS"||e.part_type.toUpperCase()==="PASL"||e.part_type.toUpperCase()==="PAE")&&(e.ignore=!0),e.db_ref==="900511"&&e.prt_dsmk_p!==50){e.ignore=!1,e.act_price=e.prt_dsmk_m;let r=t.find(a=>parseInt(a.unq_seq)===e.line_ref);r&&r.ignore&&(e.ignore=!0)}return e.oem_partno.toLowerCase().includes("/rps-exclude")?e.ignore=!0:e.oem_partno.toLowerCase().includes("/rps")&&(e.ignore=!1),e}function ke(e,t){return Te(e,t),e.mod_lbr_ty?.toUpperCase()==="LAG"&&(e.ignore=!0),Ot.some(r=>e.line_desc.toLowerCase().includes(r))&&(e.ignore=!0),Wt.some(r=>e.line_desc.toLowerCase().includes(r))&&(e.ignore=!0),e}function Me(e,t){return ke(e,t),e}var Ot=["seat belt","air bag bolt","air bag cable reel","air bag center sensor","air bag clock","air bag coil","air bag control","air bag diagnostic","air bag driver","air bag ecs","air bag harness","air bag impact","air bag label","air bag module","air bag nut","air bag rollover","air bag rotary coupler","air bag safing sensor","air bag satellite sensor","air bag screw","air bag seat","air bag warning","air bag ocs","air bag opds","air bag sensor","air bag occupant","air bag pass","air bag system air bag terminal","air bag side","side air bag","air bag weight","air bag steering","air bag decal","air bag switch","air bag pressure","air bag pig","air bag whiplash","air bag spiral","air bag restraint","air bag wire harness","drivers knee air bag","drivers seat air bag","inform label air bag","pass air bag wire","air bag extension","air bag caution","connector air bag","curtain air bag","air bag sdm","air bag cover","air bag srs","air bag light sensor","knee air bag","air bag contact","air bag crash","air bag lwr","air bag pad","air bag suspension","air bag spacer","back air bag","air bag reel","air bag discriminating","air bag curtain","air bag initiator","air bag positive","engine wiring harness for air bag","air bag wiring","air bag combination","air bag connector","air bag plug","rear air bag","air bag clip","air bag gas","air bag bracket","suspension air bag","passenger air bag"],Wt=["frt sunroof assembly","frt sunroof glass assembly","frt sunroof glass panel","frt sunroof panel","frt sunroof sliding panel","rear sunroof glass assembly","rear sunroof glass panel","sunroof assembly","sunroof glass assembly","sunroof glass panel","sunroof sliding panel"]});var Ue=p(We=>{var q=require("electron-log"),Ut=require("axios"),ae=require("path"),{BrowserWindow:De}=require("electron"),{default:oe}=P(),{promises:Oe}=require("fs"),{autoUpdater:Vt}=require("electron-updater"),{store:Bt}=y();async function $t(e,t){try{let r=q.transports.file.getFile().path,a=ae.dirname(r),o=ae.join(a,"esjson");await Oe.mkdir(o,{recursive:!0});let n=ae.join(o,`${t}.json`);return await Oe.writeFile(n,JSON.stringify(e,null,2),"utf8"),q.debug(`Job object written to: ${n}`),console.log(`Job object written to: ${n}`),n}catch(r){throw q.error("Error writing job object to logs folder:",r),r}}async function Jt({job:e}){let t="Imex2",r="Patrick",a=Vt.channel,o;switch(a){case"alpha":o="https://4284-79287.el-alt.com";break;case"beta":o="https://4284-79073.el-alt.com";break;default:o="https://insurtechtoolkit.com";break}q.log(`Estimate Scrubber URL: [${a} |`,o);let n="87330f61-412b-4251-baaa-d026565b23c5";try{let i=e?.bodyshop?.es_api_key;if(!e){console.error("No job provided to ScrubEstimate");return}let g;switch(Bt.get("ins_rule_set")){case"MPI":g="ATAM";break;case"SGI":g="SAAR";break;default:g="ATAM";break}e.sending_entity_id=n,e.sending_entity_accept_terms_of_use=!0,e.association_switch=g,e.rf_zip=e.bodyshop.zip_post,e.rf_ph1=e.bodyshop.phone,e.g_ttl_amt=e.clm_total,e.source_system="M",e.v_mileage=e.v_mileage?.toString()||"",delete e.clm_total,delete e.bodyshop,e.rates&&Array.isArray(e.rates)&&e.rates.forEach(w=>{w.MATL_TYPE&&(w.MAT_TYPE=w.MATL_TYPE,delete w.MATL_TYPE)}),e.rates&&Array.isArray(e.rates)&&(e.rates=e.rates.map(w=>{let F={};for(let[D,O]of Object.entries(w))F[D.toLowerCase()]=O;return F})),e.totals&&Array.isArray(e.totals)&&(e.totals=e.totals.map(w=>{let F={};for(let[D,O]of Object.entries(w))F[D.toLowerCase()]=O;return F}));let f=`RPS-Scrub-${i}-${e.clm_no}-${Date.now()}`;try{await $t(e,f)}catch(w){q.error("Failed to write job to logs folder:",w)}let _=new FormData,k=JSON.stringify(e);_.append("file",new Blob([k],{type:"application/json"}),`${f}.json`);let x=await Ut.post(`${o}/api/sendems`,_,{auth:{username:t,password:r},headers:{..._.getHeaders?_.getHeaders():{},APIkey:i}}),B=x?.data?.report_link,H=`https://insurtechtoolkit.com/pcontactUs.aspx?apiKey=${i}&file=${f}.json`;return De.getAllWindows()[0].webContents.send(oe.app.toRenderer.scrubResults,{jobid:e.id,items:x.data?.identified_item,pdfUrl:B,reportIssueUrl:H}),B}catch(i){q.error("Error while scrubbing estimate:",i,i.stack),q.error("Error Response Data:",i.response?.data);let g=De.getAllWindows()[0];i.status===400?g.webContents.send(oe.app.toRenderer.scrubError,{message:i.response?.data||"Error encountered sending estimate to Estimate Scrubber."}):i.status===401&&g.webContents.send(oe.app.toRenderer.scrubError,{message:"Authentication with Estimate Scrubber failed."})}}We.ScrubEstimate=Jt});var Be=p(X=>{var Gt=require("chokidar"),ne=P(),Yt=require("path"),{ImportJob:Ht}=$(),{BrowserWindow:se}=require("electron"),{store:K}=y(),{NewNotification:ie}=re(),I=require("electron-log"),L;async function zt(){let e=K.get("filePaths")||[];if(I.info("Use polling? ",K.get("polling").enabled),e.length===0)return ie({title:"RPS Watcher cannot start",body:"Please set the appropriate file paths and try again."}),I.warn("Cannot start watcher. No file paths set."),[];if(L)try{I.info("Trying to close watcher - it already existed."),await L.close(),I.info("Watcher closed successfully!")}catch(t){I.error("Error trying to close Watcher.",t)}return L=Gt.watch(e,{ignored:(t,r)=>{let a=Yt.parse(t);return a.ext!==""&&a.ext.toUpperCase()!==".ENV"},usePolling:K.get("polling").enabled||!1,interval:K.get("polling").pollingInterval||1e3,persistent:!0,ignoreInitial:!0,awaitWriteFinish:{pollInterval:500,stabilityThreshold:2e3}}),L.on("add",async function(t){console.log("File",t,"has been added"),Ve(t)}).on("change",async function(t){console.log("File",t,"has been changed"),Ve(t)}).on("error",function(t){I.error("Error in Watcher",t);let r=se.getFocusedWindow();r&&r.webContents.send(ne.default.fileWatcher.toRenderer.error,t)}).on("ready",Qt).on("raw",function(t,r,a){}),e}function Qt(){I.info("Watcher ready!"),se.getAllWindows()[0].webContents.send(ne.default.fileWatcher.toRenderer.startSuccess),ie({title:"RPS Watcher Started",body:"Newly exported estimates will be automatically uploaded."}),I.info("Confirmed watched paths:",L.getWatched())}async function Kt(){L&&(await L.close(),I.info("Watcher stopped."),se.getAllWindows()[0].webContents.send(ne.default.fileWatcher.toRenderer.stopSuccess),ie({title:"RPS Watcher Stopped",body:"Estimates will not be automatically uploaded."}))}X.StartWatcher=zt;X.StopWatcher=Kt;X.watcher=L;async function Ve(e){await Ht(e)}});var le=p(()=>{var Xt=require("path"),Zt=require("fs"),$e=Xt.join(__dirname,"..","dist-electron","main.cjs"),jt=!require("electron-is-dev")&&Zt.existsSync($e);jt?require($e):Je()});var Ye=p(()=>{var{ipcMain:J,dialog:er}=require("electron"),{StartWatcher:tr,StopWatcher:de}=Be(),E=P(),{mainWindow:rr}=le(),ar=require("lodash"),{store:v}=y(),Ge=require("path");J.on(E.default.fileWatcher.toMain.filepathsGet,async(e,t)=>{e.reply(E.default.fileWatcher.toRenderer.filepathsList,v.get("filePaths"))});J.on(E.default.fileWatcher.toMain.start,async(e,t)=>{(t&&t.startup&&v.get("runWatcherOnStartup")||!t)&&tr(),e.sender.send(E.default.fileWatcher.toRenderer.filepathsList,v.get("filePaths"))});J.on(E.default.fileWatcher.toMain.stop,async(e,t)=>{de()});J.on(E.default.fileWatcher.toMain.addPath,async(e,t)=>{let r=await er.showOpenDialog(rr,{properties:["openDirectory"]});de(),v.set("filePaths",ar.union(r.filePaths,v.get("filePaths")));let a=v.get("filePaths");e.sender.send(E.default.fileWatcher.toRenderer.filepathsList,a)});J.on(E.default.fileWatcher.toMain.removePath,async(e,t)=>{de(),v.set("filePaths",v.get("filePaths").filter(a=>{let o=Ge.parse(a),n=Ge.parse(t);return o.dir+o.base!==n.dir+n.base}));let r=v.get("filePaths");e.sender.send(E.default.fileWatcher.toRenderer.filepathsList,r)})});var Ke=p(ue=>{var ze=require("path"),or=require("fs"),{store:Qe}=y(),He=require("electron-log"),ce=or.promises,{DecodeEstimate:nr}=$();async function sr(){He.info("Scanning all local estimates..");let e=await lr(),t=await ir(e),r=t.filter(a=>!a.ERROR);return He.log("Number of estimates filtered on file scan due to error: ",t.length-r.length),r}async function ir(e){return await Promise.all(e.map(async t=>await nr(t,!0)))}async function lr(){let e=Qe.get("filePaths"),t=[];return await Promise.all(e.map(async r=>{(await ce.readdir(r)).filter(o=>o.toUpperCase().includes(".ENV")).map(o=>(t.push(ze.join(r,o)),null))})),t}async function dr(){try{let e=Qe.get("filePaths"),t=[];return await Promise.all(e.map(async r=>{(await ce.readdir(r)).map(o=>(t.push(ze.join(r,o)),null))})),await Promise.all(t.map(async r=>{await ce.unlink(r)})),!0}catch{return!1}}ue.GetListOfEstimates=sr;ue.DeleteAllEms=dr});var Ze=p(()=>{var{ipcMain:pe}=require("electron"),G=P(),{ImportJob:cr}=$(),{GetListOfEstimates:Xe,DeleteAllEms:ur}=Ke();pe.on(G.default.fileScan.toMain.scanFilePaths,async(e,t)=>{let r=await Xe();e.reply(G.default.fileScan.toRenderer.scanFilePathsResponse,r)});pe.on(G.default.fileScan.toMain.importJob,async(e,t)=>{await cr(t)});pe.on(G.default.fileScan.toMain.deleteAllEms,async(e,t)=>{await ur();let r=await Xe();e.reply(G.default.fileScan.toRenderer.scanFilePathsResponse,r)})});var at=p(()=>{var{ipcMain:je,dialog:pr}=require("electron"),W=P(),{mainWindow:fr}=le(),ra=require("lodash"),{store:et}=y(),aa=require("path"),tt=require("node-xlsx"),rt=require("electron-log");je.on(W.default.audit.toMain.browseForFile,async(e,{sheetName:t})=>{let r=await pr.showOpenDialog(fr,{filters:[{extensions:["xls","xlsx"],name:"Excel Files"}],properties:["openFile"]});if(!r.canceled)try{var a=tt.parse(r.filePaths[0],{cellDates:!0});et.set("auditFilePath",r.filePaths),e.sender.send(W.default.audit.toRenderer.auditFilePath,{filePath:r.filePaths[0],sheets:a.map(o=>o.name)})}catch(o){console.log("Got some sort of err",o),rt.error("Error when trying to read audit xlsx file",o),e.sender.send(W.default.audit.toRenderer.auditError,o.meFssage)}});je.on(W.default.audit.toMain.runAudit,async(e,{sheetName:t})=>{try{let a=et.get("auditFilePath");var r=tt.parse(a[0],{cellDates:!0});let o=r.find(s=>s.name===t),n=[],i,g,f,_,k,x,B,H,te,w,F,D,O,_e,we,be;o.data.forEach(s=>{if(!i&&s[0]==="Claim Number")i=!0,f=s.findIndex(l=>l==="Claim Number"),_=s.findIndex(l=>l==="Ready for Pay Date"),k=s.findIndex(l=>l==="Vehicle Year"),x=s.findIndex(l=>l==="Vehicle Make"),B=s.findIndex(l=>l==="Vehicle Model"),H=s.findIndex(l=>l==="Under 20K"),te=s.findIndex(l=>l==="OE Part Prices"),w=s.findIndex(l=>l==="AM Part Prices"),F=s.findIndex(l=>l==="Recycled Part Prices"),D=s.findIndex(l=>l==="Reman & Other Part Prices"),O=s.findIndex(l=>l==="(a) Eligible OEM Part Prices"),_e=s.findIndex(l=>l==="(b) Eligible Actual Part Prices"),we=s.findIndex(l=>l==="(e) Expected RPS $ "),be=s.findIndex(l=>l==="(f) Actual RPS $");else if(i&&!g&&s[0]&&s[0]!=="Grand Total"){let l={clm_no:s[f].startsWith("00")?s[f].slice(2):s[f],close_date:s[_],v_model_yr:s[k],v_makedesc:s[x],v_model:s[B],under20kmiles:s[H],pan_total:s[te],paa_total:s[w],pal_total:s[F],pam_total:s[D],eligible_db_price_total:Math.round((s[O]+Number.EPSILON)*100)/100,eligible_act_price_total:Math.round((s[_e]+Number.EPSILON)*100)/100,expected_rps_dollars:Math.round((s[we]+Number.EPSILON)*100)/100,actual_rps_dollars:Math.round((s[be]+Number.EPSILON)*100)/100};n.push(l)}}),e.sender.send(W.default.audit.toRenderer.auditClaimsArray,n)}catch(a){console.log("ot some sort of err",a),rt.error("Error when trying to read audit xlsx file",a),e.sender.send(W.default.audit.toRenderer.auditError,a.message)}})});var fe=p((sa,gr)=>{gr.exports={"1.0.9":{title:"Release Notes for 1.0.9",date:"11/17/2020",notes:`New Features: +
`}:null]});var J=p(K=>{var{DBFFile:R}=require("dbffile"),Q=require("path"),N=require("lodash"),m=require("electron-log"),{store:oe}=y(),{BrowserWindow:Le}=require("electron"),xe=P(),{NewNotification:Me}=ae(),{WhichRulesetToApply:Ft}=Se(),{claimsClerk:Yr}=Fe();async function Mt(e){let t=Q.parse(e),r=Q.join(t.dir,t.name),a=await qe(r);Le.getAllWindows()[0].webContents.send(xe.default.estimate.toRenderer.getCloseDate,{filepath:e,clm_no:a.CLM_NO})}async function Ct(e,t){let r=await Te(e,!1,t),a=Le.getAllWindows()[0];r&&!r.ERROR?(a.webContents.send(xe.default.estimate.toRenderer.estimateDecodeSuccess,r),m.info(`Sent job for upload. ${r.clm_no}`),Me({title:"Job Uploaded",body:"A new job has been uploaded."})):(m.info(`Ignored job. ${r.ERROR}`),Me({title:"Job Ignored",body:r.ERROR}))}K.ImportJobWithCloseDate=Ct;async function Te(e,t=!1,r=null){let a=Q.parse(e),o=Q.join(a.dir,a.name),n={...await qe(o),...await Tt(o),...await qt(o),...await Dt(o,r),...await Ot(o),...await Wt(o),...await xt(o),...await kt(o),...t?{filePath:e}:{}},i=await Lt(o);n.rates=[...n.rates||[],...n.mat_rates||[]],delete n.mat_rates,n.insp_date=i.INSP_DATE;let g=oe.get("ins_rule_set");(n.OWNR_FN===""||!n.OWNR_FN)&&(n.OWNR_FN=i.CLMT_FN),(n.OWNR_LN===""||!n.OWNR_LN)&&(n.OWNR_LN=i.CLMT_LN),g==="SGI"&&((n.OWNR_FN===""||!n.OWNR_FN)&&(n.OWNR_FN=n.INSD_FN),(n.OWNR_LN===""||!n.OWNR_LN)&&(n.OWNR_LN=n.INSD_LN)),n.OWNR_CO_NM&&(n.OWNR_LN=`${n.OWNR_LN} ${n.OWNR_CO_NM}`),delete n.OWNR_CO_NM,delete n.INSD_LN,delete n.INSD_FN;let _=oe.get("accepted_ins_co"),f;return _.includes(n.INS_CO_NM)?n.CLM_NO?g==="MPI"&&!(n.CLM_NO.match("-01$")||n.CLM_NO.match("-99$"))?(m.info("Job ignored. This is not a -01 or -99 claim. Claim #. "+n.CLM_NO),f={ERROR:"Job ignored. This is not a -01 or -99 claim. Claim #. "+n.CLM_NO}):(delete n.LOSS_TYPE,f=N.transform(n,function(O,L,x){O[x.toLowerCase()]=L})):(m.info("Job ignored. No claim #. "),f={ERROR:"An unique claim number must be set for all jobs sent to RPS."}):f={ERROR:`Insurance Company Name is not valid for RPS. (${n.INS_CO_NM||"No name set"})`},f}async function qe(e){let t;try{t=await R.open(`${e}A.AD1`)}catch(r){m.error("Error opening AD1 File.",r),t=await R.open(`${e}.AD1`),t&&m.log("Found AD1 file using regular CIECA Id.")}finally{if(!t)return{};let r=await t.readRecords(1);return N.pick(r[0],["INS_CO_NM","DED_AMT","CLM_NO","LOSS_DATE","LOSS_TYPE","LOSS_DESC","THEFT_IND","TLOS_IND","INSD_LN","INSD_FN","OWNR_LN","OWNR_FN","OWNR_CO_NM","OWNR_ADDR1","OWNR_CITY","OWNR_PH1"])}}async function Lt(e){let t;try{t=await R.open(`${e}B.AD2`)}catch(r){m.error("Error opening AD2 File.",r),t=await R.open(`${e}.AD2`),t&&m.log("Found AD2 file using regular CIECA Id.")}finally{if(!t)return{};let r=await t.readRecords(1);return N.pick(r[0],["CLMT_LN","CLMT_FN","INSP_DATE"])}}async function xt(e){let t;try{t=await R.open(`${e}.PFH`)}catch(r){m.error("Error opening PFH File.",r)}finally{if(!t)return{};let r=await t.readRecords(1);return N.pick(r[0],["ID_PRO_NAM"])}}async function Tt(e){let t;try{t=await R.open(`${e}V.VEH`)}catch(r){m.error("Error opening VEH File.",r),t=await R.open(`${e}.VEH`),t&&m.log("Found VEH file using regular CIECA Id.")}finally{if(!t)return{};let r=await t.readRecords(1);return N.pick(r[0],["IMPACT_1","IMPACT_2","V_VIN","V_MODEL_YR","V_MAKEDESC","V_MODEL","V_TYPE","V_MILEAGE","V_STAGE"])}}async function qt(e){let r=await(await R.open(`${e}.TTL`)).readRecords(1);return{clm_total:r[0].G_TTL_AMT,supp_amt:r[0].SUPP_AMT,g_bett_amt:r[0].G_BETT_AMT}}async function Dt(e,t){let o=(await(await R.open(`${e}.LIN`)).readRecords()).map(i=>N.transform(N.pick(i,["LINE_NO","LINE_IND","LINE_REF","DB_REF","UNQ_SEQ","LINE_DESC","PART_TYPE","PRT_DSMK_M","OEM_PARTNO","PRICE_INC","TAX_PART","DB_PRICE","ACT_PRICE","PART_QTY","PRICE_J","GLASS_FLAG","CERT_PART","ALT_PARTNO","PRT_DSMK_P","MOD_LBR_TY","DB_HRS","MOD_LB_HRS","LBR_INC","LBR_OP","LBR_HRS_J","LBR_OP_J","LBR_AMT","MISC_AMT"]),function(g,_,f){if(f==="UNQ_SEQ"){g[f.toLowerCase()]=_.toString();return}g[f.toLowerCase()]=_})),n=oe.get("ins_rule_set");return o.map(i=>{switch(i.ignore=!1,n){case"MPI":case"SGI":switch(Ft(t)){case"V1":i=De(i,o);break;case"V2":i=Oe(i,o);break;case"V3":i=Ce(i,o);break;default:i=Ce(i,o);break}break;default:m.info("Using default ruleset (MPI).");break}return i}),{joblines:{data:o}}}async function Ot(e){return{rates:(await(await R.open(`${e}.PFL`)).readRecords()).map(o=>N.pick(o,["LBR_TYPE","LBR_DESC","LBR_RATE"]))}}async function kt(e){return{totals:(await(await R.open(`${e}.STL`)).readRecords()).map(o=>N.pick(o,["TTL_TYPECD","T_AMT","T_HRS","NT_HRS"]))}}async function Wt(e){return{mat_rates:(await(await R.open(`${e}.PFM`)).readRecords()).map(o=>N.pick(o,["MATL_TYPE","CAL_PRETHR"]))}}K.DecodeEstimate=Te;K.ImportJob=Mt;function De(e,t){if(e.part_type==="PAN"&&e.line_desc.toLowerCase().includes("wheel")&&Math.abs(e.prt_dsmk_m)===Math.round(e.act_price/2*100)/100&&(m.info(`Jobline '${e.line_desc}' ignored due to wheel repair.`),e.ignore=!0),e.part_type==="PAN"&&e.db_price!==e.act_price&&e.db_price!==0&&(e.db_price=e.act_price),(e.part_type==="PAA"||e.part_type==="PAL"||e.part_type==="PAN")&&e.db_price===0&&(e.ignore=!0),e.part_type!=="PAL"&&e.act_price===0&&e.price_j&&(m.info(`Jobline '${e.line_desc}' ignored because it was manually changed to 0..`),e.ignore=!0),e.line_desc.toLowerCase().includes("glass")&&e.oem_partno.match("[A-Z]{2}[0-9]{5,6}[A-Z]{3}")&&(console.log(e.line_desc,"NAGS Line ignored"),e.ignore=!0),(!e.part_type||e.db_ref.startsWith("900")||e.line_desc.toLowerCase().startsWith("urethane")||e.line_desc.toLowerCase().startsWith("w/shield adhesive")||e.line_desc.toLowerCase().includes("tire")&&!e.line_desc.toLowerCase().includes("sensor")&&!e.line_desc.toLowerCase().includes("label")||e.line_desc.toLowerCase().startsWith("hazardous")||e.line_desc.toLowerCase().startsWith("detail")||e.line_desc.toLowerCase().startsWith("clean")||e.part_type.toUpperCase()==="PAS"||e.part_type.toUpperCase()==="PASL"||e.part_type.toUpperCase()==="PAE")&&(e.ignore=!0),e.db_ref==="900511"&&e.prt_dsmk_p!==50){e.ignore=!1,e.act_price=e.prt_dsmk_m;let r=t.find(a=>parseInt(a.unq_seq)===e.line_ref);r&&r.ignore&&(e.ignore=!0)}return e.oem_partno.toLowerCase().includes("/rps-exclude")?e.ignore=!0:e.oem_partno.toLowerCase().includes("/rps")&&(e.ignore=!1),e}function Oe(e,t){return De(e,t),e.mod_lbr_ty?.toUpperCase()==="LAG"&&(e.ignore=!0),Ut.some(r=>e.line_desc.toLowerCase().includes(r))&&(e.ignore=!0),Vt.some(r=>e.line_desc.toLowerCase().includes(r))&&(e.ignore=!0),e}function Ce(e,t){return Oe(e,t),e}var Ut=["seat belt","air bag bolt","air bag cable reel","air bag center sensor","air bag clock","air bag coil","air bag control","air bag diagnostic","air bag driver","air bag ecs","air bag harness","air bag impact","air bag label","air bag module","air bag nut","air bag rollover","air bag rotary coupler","air bag safing sensor","air bag satellite sensor","air bag screw","air bag seat","air bag warning","air bag ocs","air bag opds","air bag sensor","air bag occupant","air bag pass","air bag system air bag terminal","air bag side","side air bag","air bag weight","air bag steering","air bag decal","air bag switch","air bag pressure","air bag pig","air bag whiplash","air bag spiral","air bag restraint","air bag wire harness","drivers knee air bag","drivers seat air bag","inform label air bag","pass air bag wire","air bag extension","air bag caution","connector air bag","curtain air bag","air bag sdm","air bag cover","air bag srs","air bag light sensor","knee air bag","air bag contact","air bag crash","air bag lwr","air bag pad","air bag suspension","air bag spacer","back air bag","air bag reel","air bag discriminating","air bag curtain","air bag initiator","air bag positive","engine wiring harness for air bag","air bag wiring","air bag combination","air bag connector","air bag plug","rear air bag","air bag clip","air bag gas","air bag bracket","suspension air bag","passenger air bag"],Vt=["frt sunroof assembly","frt sunroof glass assembly","frt sunroof glass panel","frt sunroof panel","frt sunroof sliding panel","rear sunroof glass assembly","rear sunroof glass panel","sunroof assembly","sunroof glass assembly","sunroof glass panel","sunroof sliding panel"]});var Ve=p(Ue=>{var T=require("electron-log"),Bt=require("axios"),ne=require("path"),{BrowserWindow:ke}=require("electron"),{default:se}=P(),{promises:We}=require("fs"),{autoUpdater:$t}=require("electron-updater"),{store:Jt}=y();async function Gt(e,t){try{let r=T.transports.file.getFile().path,a=ne.dirname(r),o=ne.join(a,"esjson");await We.mkdir(o,{recursive:!0});let n=ne.join(o,`${t}.json`);return await We.writeFile(n,JSON.stringify(e,null,2),"utf8"),T.debug(`Job object written to: ${n}`),console.log(`Job object written to: ${n}`),n}catch(r){throw T.error("Error writing job object to logs folder:",r),r}}async function Yt({job:e}){let t="Imex2",r="Patrick",a=$t.channel,o;switch(a){case"alpha":o="https://4284-79287.el-alt.com";break;case"beta":o="https://4284-79073.el-alt.com";break;default:o="https://insurtechtoolkit.com";break}T.log(`Estimate Scrubber URL: [${a} |`,o);let n="87330f61-412b-4251-baaa-d026565b23c5";try{let i=e?.bodyshop?.es_api_key;if(!e){console.error("No job provided to ScrubEstimate");return}let g;switch(Jt.get("ins_rule_set")){case"MPI":g="ATAM";break;case"SGI":g="SAAR";break;default:g="ATAM";break}e.sending_entity_id=n,e.sending_entity_accept_terms_of_use=!0,e.association_switch=g,e.rf_zip=e.bodyshop.zip_post,e.rf_ph1=e.bodyshop.phone,e.g_ttl_amt=e.clm_total,e.source_system="M",e.v_mileage=e.v_mileage?.toString()||"",delete e.clm_total,delete e.bodyshop,e.rates&&Array.isArray(e.rates)&&e.rates.forEach(w=>{w.MATL_TYPE&&(w.MAT_TYPE=w.MATL_TYPE,delete w.MATL_TYPE)}),e.rates&&Array.isArray(e.rates)&&(e.rates=e.rates.map(w=>{let F={};for(let[k,W]of Object.entries(w))F[k.toLowerCase()]=W;return F})),e.totals&&Array.isArray(e.totals)&&(e.totals=e.totals.map(w=>{let F={};for(let[k,W]of Object.entries(w))F[k.toLowerCase()]=W;return F}));let _=`RPS-Scrub-${i}-${e.clm_no}-${Date.now()}`;try{await Gt(e,_)}catch(w){T.error("Failed to write job to logs folder:",w)}let f=new FormData,O=JSON.stringify(e);f.append("file",new Blob([O],{type:"application/json"}),`${_}.json`);let L=await Bt.post(`${o}/api/sendems`,f,{auth:{username:t,password:r},headers:{...f.getHeaders?f.getHeaders():{},APIkey:i}}),x=L?.data?.report_link,z=`https://insurtechtoolkit.com/pcontactUs.aspx?apiKey=${i}&file=${_}.json`;return ke.getAllWindows()[0].webContents.send(se.app.toRenderer.scrubResults,{jobid:e.id,items:L.data?.identified_item,pdfUrl:x,reportIssueUrl:z}),x}catch(i){T.error("Error while scrubbing estimate:",i,i.stack),T.error("Error Response Data:",i.response?.data);let g=ke.getAllWindows()[0];i.status===400?g.webContents.send(se.app.toRenderer.scrubError,{message:i.response?.data||"Error encountered sending estimate to Estimate Scrubber."}):i.status===401&&g.webContents.send(se.app.toRenderer.scrubError,{message:"Authentication with Estimate Scrubber failed."})}}Ue.ScrubEstimate=Yt});var $e=p(Z=>{var Ht=require("chokidar"),ie=P(),zt=require("path"),{ImportJob:Qt}=J(),{BrowserWindow:le}=require("electron"),{store:X}=y(),{NewNotification:de}=ae(),I=require("electron-log"),C;async function Kt(){let e=X.get("filePaths")||[];if(I.info("Use polling? ",X.get("polling").enabled),e.length===0)return de({title:"RPS Watcher cannot start",body:"Please set the appropriate file paths and try again."}),I.warn("Cannot start watcher. No file paths set."),[];if(C)try{I.info("Trying to close watcher - it already existed."),await C.close(),I.info("Watcher closed successfully!")}catch(t){I.error("Error trying to close Watcher.",t)}return C=Ht.watch(e,{ignored:(t,r)=>{let a=zt.parse(t);return a.ext!==""&&a.ext.toUpperCase()!==".ENV"},usePolling:X.get("polling").enabled||!1,interval:X.get("polling").pollingInterval||1e3,persistent:!0,ignoreInitial:!0,awaitWriteFinish:{pollInterval:500,stabilityThreshold:2e3}}),C.on("add",async function(t){console.log("File",t,"has been added"),Be(t)}).on("change",async function(t){console.log("File",t,"has been changed"),Be(t)}).on("error",function(t){I.error("Error in Watcher",t);let r=le.getFocusedWindow();r&&r.webContents.send(ie.default.fileWatcher.toRenderer.error,t)}).on("ready",Xt).on("raw",function(t,r,a){}),e}function Xt(){I.info("Watcher ready!"),le.getAllWindows()[0].webContents.send(ie.default.fileWatcher.toRenderer.startSuccess),de({title:"RPS Watcher Started",body:"Newly exported estimates will be automatically uploaded."}),I.info("Confirmed watched paths:",C.getWatched())}async function Zt(){C&&(await C.close(),I.info("Watcher stopped."),le.getAllWindows()[0].webContents.send(ie.default.fileWatcher.toRenderer.stopSuccess),de({title:"RPS Watcher Stopped",body:"Estimates will not be automatically uploaded."}))}Z.StartWatcher=Kt;Z.StopWatcher=Zt;Z.watcher=C;async function Be(e){await Qt(e)}});var ce=p(()=>{var jt=require("path"),er=require("fs"),Je=jt.join(__dirname,"..","dist-electron","main.cjs"),tr=!require("electron-is-dev")&&er.existsSync(Je);tr?require(Je):Ge()});var He=p(()=>{var{ipcMain:G,dialog:rr}=require("electron"),{StartWatcher:ar,StopWatcher:ue}=$e(),S=P(),{mainWindow:or}=ce(),nr=require("lodash"),{store:v}=y(),Ye=require("path");G.on(S.default.fileWatcher.toMain.filepathsGet,async(e,t)=>{e.reply(S.default.fileWatcher.toRenderer.filepathsList,v.get("filePaths"))});G.on(S.default.fileWatcher.toMain.start,async(e,t)=>{(t&&t.startup&&v.get("runWatcherOnStartup")||!t)&&ar(),e.sender.send(S.default.fileWatcher.toRenderer.filepathsList,v.get("filePaths"))});G.on(S.default.fileWatcher.toMain.stop,async(e,t)=>{ue()});G.on(S.default.fileWatcher.toMain.addPath,async(e,t)=>{let r=await rr.showOpenDialog(or,{properties:["openDirectory"]});ue(),v.set("filePaths",nr.union(r.filePaths,v.get("filePaths")));let a=v.get("filePaths");e.sender.send(S.default.fileWatcher.toRenderer.filepathsList,a)});G.on(S.default.fileWatcher.toMain.removePath,async(e,t)=>{ue(),v.set("filePaths",v.get("filePaths").filter(a=>{let o=Ye.parse(a),n=Ye.parse(t);return o.dir+o.base!==n.dir+n.base}));let r=v.get("filePaths");e.sender.send(S.default.fileWatcher.toRenderer.filepathsList,r)})});var Xe=p(fe=>{var Qe=require("path"),sr=require("fs"),{store:Ke}=y(),ze=require("electron-log"),pe=sr.promises,{DecodeEstimate:ir}=J();async function lr(){ze.info("Scanning all local estimates..");let e=await cr(),t=await dr(e),r=t.filter(a=>!a.ERROR);return ze.log("Number of estimates filtered on file scan due to error: ",t.length-r.length),r}async function dr(e){return await Promise.all(e.map(async t=>await ir(t,!0)))}async function cr(){let e=Ke.get("filePaths"),t=[];return await Promise.all(e.map(async r=>{(await pe.readdir(r)).filter(o=>o.toUpperCase().includes(".ENV")).map(o=>(t.push(Qe.join(r,o)),null))})),t}async function ur(){try{let e=Ke.get("filePaths"),t=[];return await Promise.all(e.map(async r=>{(await pe.readdir(r)).map(o=>(t.push(Qe.join(r,o)),null))})),await Promise.all(t.map(async r=>{await pe.unlink(r)})),!0}catch{return!1}}fe.GetListOfEstimates=lr;fe.DeleteAllEms=ur});var je=p(()=>{var{ipcMain:ge}=require("electron"),Y=P(),{ImportJob:pr}=J(),{GetListOfEstimates:Ze,DeleteAllEms:fr}=Xe();ge.on(Y.default.fileScan.toMain.scanFilePaths,async(e,t)=>{let r=await Ze();e.reply(Y.default.fileScan.toRenderer.scanFilePathsResponse,r)});ge.on(Y.default.fileScan.toMain.importJob,async(e,t)=>{await pr(t)});ge.on(Y.default.fileScan.toMain.deleteAllEms,async(e,t)=>{await fr();let r=await Ze();e.reply(Y.default.fileScan.toRenderer.scanFilePathsResponse,r)})});var ot=p(()=>{var{ipcMain:et,dialog:gr}=require("electron"),U=P(),{mainWindow:hr}=ce(),aa=require("lodash"),{store:tt}=y(),oa=require("path"),rt=require("node-xlsx"),at=require("electron-log");et.on(U.default.audit.toMain.browseForFile,async(e,{sheetName:t})=>{let r=await gr.showOpenDialog(hr,{filters:[{extensions:["xls","xlsx"],name:"Excel Files"}],properties:["openFile"]});if(!r.canceled)try{var a=rt.parse(r.filePaths[0],{cellDates:!0});tt.set("auditFilePath",r.filePaths),e.sender.send(U.default.audit.toRenderer.auditFilePath,{filePath:r.filePaths[0],sheets:a.map(o=>o.name)})}catch(o){console.log("Got some sort of err",o),at.error("Error when trying to read audit xlsx file",o),e.sender.send(U.default.audit.toRenderer.auditError,o.meFssage)}});et.on(U.default.audit.toMain.runAudit,async(e,{sheetName:t})=>{try{let a=tt.get("auditFilePath");var r=rt.parse(a[0],{cellDates:!0});let o=r.find(s=>s.name===t),n=[],i,g,_,f,O,L,x,z,re,w,F,k,W,be,ye,Re;o.data.forEach(s=>{if(!i&&s[0]==="Claim Number")i=!0,_=s.findIndex(d=>d==="Claim Number"),f=s.findIndex(d=>d==="Ready for Pay Date"),O=s.findIndex(d=>d==="Vehicle Year"),L=s.findIndex(d=>d==="Vehicle Make"),x=s.findIndex(d=>d==="Vehicle Model"),z=s.findIndex(d=>d==="Under 20K"),re=s.findIndex(d=>d==="OE Part Prices"),w=s.findIndex(d=>d==="AM Part Prices"),F=s.findIndex(d=>d==="Recycled Part Prices"),k=s.findIndex(d=>d==="Reman & Other Part Prices"),W=s.findIndex(d=>d==="(a) Eligible OEM Part Prices"),be=s.findIndex(d=>d==="(b) Eligible Actual Part Prices"),ye=s.findIndex(d=>d==="(e) Expected RPS $ "),Re=s.findIndex(d=>d==="(f) Actual RPS $");else if(i&&!g&&s[0]&&s[0]!=="Grand Total"){let d={clm_no:s[_].startsWith("00")?s[_].slice(2):s[_],close_date:s[f],v_model_yr:s[O],v_makedesc:s[L],v_model:s[x],under20kmiles:s[z],pan_total:s[re],paa_total:s[w],pal_total:s[F],pam_total:s[k],eligible_db_price_total:Math.round((s[W]+Number.EPSILON)*100)/100,eligible_act_price_total:Math.round((s[be]+Number.EPSILON)*100)/100,expected_rps_dollars:Math.round((s[ye]+Number.EPSILON)*100)/100,actual_rps_dollars:Math.round((s[Re]+Number.EPSILON)*100)/100};n.push(d)}}),e.sender.send(U.default.audit.toRenderer.auditClaimsArray,n)}catch(a){console.log("ot some sort of err",a),at.error("Error when trying to read audit xlsx file",a),e.sender.send(U.default.audit.toRenderer.auditError,a.message)}})});var he=p((ia,mr)=>{mr.exports={"1.0.9":{title:"Release Notes for 1.0.9",date:"11/17/2020",notes:`New Features: - Vehicles with mileage under 20,000kms will now be included in Watcher filtering criteria. - Savings on OEM parts will always default to the user enter price and override the estimating system price. - Wheel related lines will no longer be automatically ignored. @@ -169,4 +169,4 @@ Improvements:\r * Added a floating shortcut to run 1 month and 3 month reports.\r \r Improvements:\r -* Added better indicators for quantities and negative RPS values.`}}});var ot=p(()=>{var{ipcMain:m,app:hr,app:mr,BrowserWindow:_r}=require("electron"),{default:u}=P(),{store:T}=y(),Z=require("electron-log"),{ImportJobWithCloseDate:wr}=$(),{ScrubEstimate:br}=Ue();Ye();Ze();at();console.log("*** Added IPC Handlers ***");m.on("test",async(e,t)=>{console.log("Received test IPC Command"),e.reply("test-toRenderer",{status:0,message:null})});m.on(u.app.toMain.setAcceptableInsCoNm,(e,t)=>{T.set("accepted_ins_co",t)});m.on(u.store.get,(e,t)=>{let r=T.get(t);e.sender.send(u.store.response,{[t]:r})});m.on(u.store.set,(e,t,r)=>{T.set(t,r);let a=T.get();e.sender.send(u.store.response,a)});m.on(u.store.getAll,(e,t)=>{let r=T.get();e.sender.send(u.store.response,r)});m.on(u.app.toMain.getReleaseNotes,(e,t)=>{if(T.get("showChangeLog")){let a=fe()[hr.getVersion()];e.sender.send(u.app.toRenderer.setReleaseNotes,a)}else e.sender.send(u.app.toRenderer.setReleaseNotes,null)});m.on(u.app.toMain.importJob,(e,{filepath:t,close_date:r})=>{wr(t,r)});m.on(u.app.toMain.log.debug,(e,...t)=>{Z.debug(t)});m.on(u.app.toMain.log.info,(e,...t)=>{Z.info(t)});m.on(u.app.toMain.log.warn,(e,...t)=>{Z.warn(t)});m.on(u.app.toMain.log.error,(e,...t)=>{Z.error(t)});m.on(u.app.toMain.getAppVersion,(e,t)=>{e.sender.send(u.app.toRenderer.appVersion,mr.getVersion())});m.handle(u.app.toMain.scrubEstimate,(e,{job:t})=>br({job:t}));m.on(u.app.toMain.openExternalWindow,(e,t)=>{let r=new _r({width:1200,height:800,webPreferences:{nodeIntegration:!1,contextIsolation:!0}});r.loadURL(t),r.webContents.setWindowOpenHandler(({url:a})=>(require("electron").shell.openExternal(a),{action:"deny"}))});m.on(u.app.toMain.setInsRuleSet,(e,t)=>{T.set("ins_rule_set",t)})});var ct=p(()=>{var{ipcMain:st}=require("electron"),nt=require("electron-log"),{default:it}=P(),lt=require("@amplitude/analytics-node"),{store:yr}=y(),Rr=yr.get("deviceId"),{app:Pr}=require("electron"),dt;lt.init("a733ff926aef84f93baf95e66b5dcb75");st.on(it.app.toMain.setUserName,(e,t)=>{dt=t});st.on(it.app.toMain.track,(e,t)=>{nt.log("Analytics Event",t);let{event:r,...a}=t;try{lt.track(r,a,{device_id:Rr,user_id:dt,app_version:Pr.getVersion()})}catch(o){nt.error(o)}})});var Je=p(ht=>{var V=require("path"),{app:c,BrowserWindow:he,Tray:Ar,Menu:me,ipcMain:Y,dialog:Nr,shell:ge,globalShortcut:Ir}=require("electron"),S=require("electron-is-dev"),{default:N}=P(),{store:j}=y(),{autoUpdater:b}=require("electron-updater"),M=require("electron-log"),vr=require("electron-context-menu"),Er=require("@sentry/electron/main");ot();ct();Er.init({dsn:"https://9840e0f304124299e379d9347e12d2e6@o492140.ingest.sentry.io/4505728058523648",ignoreErrors:["SimpleURLLoaderWrapper","Cannot read properties of null (reading 'webContents')","EBUSY: resource busy or locked"]});b.autoDownload=!0;b.logger=M;b.logger.transports.file.level="info";M.info("App starting...",c.getVersion());var pt,ft;if(S){let e=require("electron-devtools-installer");pt=e.default,ft=e.REACT_DEVELOPER_TOOLS}var Sr=me.buildFromTemplate([{label:"File",submenu:[{label:"Relaunch",click(){c.exit(),c.relaunch()}},{label:"Clear Settings",click(){j.reset("filePaths"),d.webContents.session.clearStorageData()}},{label:"Sign Out",click(){d.webContents.send(N.app.toRenderer.signOut)}},{label:"Exit",click(){c.quit()}}]},{label:S?"DEVELOPMENT -- HELP":"Help",submenu:[{label:"Rescue",click(){ge.openExternal("http://imexrescue.com")}},{label:`Check for Updates (currently ${c.getVersion()})`,click(){ee()}},{label:"Show Release Notes",click(){d.webContents.send(N.app.toRenderer.setReleaseNotes,fe()[c.getVersion()])}},{label:"Open Config File",click(){ge.openPath(j.path)}},{label:"Open Log File",click(){ge.openPath(V.join(c.getPath("appData"),"ImeX RPS\\logs"))}},{label:"Third Party Notices",click(){Fr()}}]}]),d,U,ut=null;vr({showInspectElement:!1});function gt(){me.setApplicationMenu(Sr),d=new he({title:`ImEX RPS ${c.getVersion()}`,icon:V.join(__dirname,"../src/assets/logo192.png"),webPreferences:{nodeIntegration:!1,enableRemoteModule:!1,webSecurity:!0,worldSafeExecuteJavaScript:!0,contextIsolation:!0,devTools:S,preload:V.join(__dirname,"preload.js")}}),c.requestSingleInstanceLock()?(c.on("second-instance",(t,r,a)=>{d&&(d.isMinimized()&&d.restore(),d.show(),d.focus(),d.maximize())}),d.loadURL(S?"http://localhost:3000":`file://${V.join(__dirname,"/../build/index.html")}`),d.on("minimize",function(t){t.preventDefault(),d.hide(),ut||(ut=Mr())}),Y.on(N.quit,(t,r)=>{c.isQuiting=!0,c.quit()}),S&&d.webContents.openDevTools({}),d.maximize(),S&&Ir.register("CommandOrControl+Shift+I",()=>{d.webContents.toggleDevTools()})):c.quit()}ht.mainWindow=d;c.whenReady().then(()=>{gt(),S&&(console.log(`Path to Settings File: ${j.path}`),console.log(`Path to Log File: ${M.log}`),pt(ft).then(e=>console.log(`Added Extension: ${e}`)).catch(e=>console.log(`An error occurred: , ${e}`))),setInterval(()=>{ee()},1e3*60*30)});S?c.setAppUserModelId(process.execPath):c.setAppUserModelId("com.imex.rps");c.on("window-all-closed",()=>{process.platform!=="darwin"&&c.quit()});c.on("activate",()=>{console.log("Activate"),he.getAllWindows().length===0&>()});function Mr(){let e=new Ar(V.join(__dirname,"../src/assets/logo192.png")),t=me.buildFromTemplate([{label:"Show",click:function(){d.show()}},{label:"Exit",click:function(){c.isQuiting=!0,c.quit()}}]);return e.on("double-click",function(r){d.show(),d.maximize()}),e.setToolTip(`ImEX RPS ${c.getVersion()}`),e.setContextMenu(t),e}function ee(){try{b.checkForUpdates()}catch(e){M.error("Error checking for updates",e)}}function Fr(){if(U){U.show();return}U=new he({width:900,height:700,title:"Third Party Notices",webPreferences:{nodeIntegration:!1,contextIsolation:!0,devTools:S}}),U.loadURL(`file://${V.join(__dirname,"licenses.txt")}`),U.on("closed",()=>{U=null})}b.on("update-available",e=>{M.log("Update available.",e),d&&d.webContents.send(N.app.toRenderer.updateAvailable,e)});b.on("update-not-available",e=>{M.log("Update not available.",e)});b.on("error",(e,t)=>{M.log("Error in auto-updater.",e,t)});Y.on(N.app.toMain.setReleaseChannel,(e,t)=>{b.channel=t,ee()});Y.on(N.app.toMain.checkForUpdates,(e,t)=>{ee()});Y.on(N.app.toMain.downloadUpdates,(e,t)=>{b.downloadUpdate()});Y.on(N.app.toMain.installUpdates,(e,t)=>{b.quitAndInstall(!0,!0)});b.on("download-progress",e=>{M.log("Download Progress:",e),d&&d.webContents.send(N.app.toRenderer.downloadProgress,e)});b.on("update-downloaded",(e,t)=>{d&&d.webContents.send(N.app.toRenderer.downloadProgress,{...e,percent:100}),Nr.showMessageBox({type:"info",title:"ImeX RPS Update Manager",message:`ImEX RPS is ready to update to Version ${e.version}. It is highly recommended that you update immediately. Would you like to update now? RPS will automatically restart.`,buttons:["Yes","No"]}).then(({response:r})=>{r===0?(j.set("showChangeLog",!0),b.quitAndInstall(!0,!0)):M.warn("Updated ignored.")})})});module.exports=Je(); +* Added better indicators for quantities and negative RPS values.`}}});var nt=p(()=>{var{ipcMain:h,app:_r,app:wr,BrowserWindow:br}=require("electron"),{default:u}=P(),{store:q}=y(),j=require("electron-log"),{ImportJobWithCloseDate:yr}=J(),{ScrubEstimate:Rr}=Ve();He();je();ot();console.log("*** Added IPC Handlers ***");h.on("test",async(e,t)=>{console.log("Received test IPC Command"),e.reply("test-toRenderer",{status:0,message:null})});h.on(u.app.toMain.setAcceptableInsCoNm,(e,t)=>{q.set("accepted_ins_co",t)});h.on(u.store.get,(e,t)=>{let r=q.get(t);e.sender.send(u.store.response,{[t]:r})});h.on(u.store.set,(e,t,r)=>{q.set(t,r);let a=q.get();e.sender.send(u.store.response,a)});h.on(u.store.getAll,(e,t)=>{let r=q.get();e.sender.send(u.store.response,r)});h.on(u.app.toMain.getReleaseNotes,(e,t)=>{if(q.get("showChangeLog")){let a=he()[_r.getVersion()];e.sender.send(u.app.toRenderer.setReleaseNotes,a)}else e.sender.send(u.app.toRenderer.setReleaseNotes,null)});h.on(u.app.toMain.importJob,(e,{filepath:t,close_date:r})=>{yr(t,r)});h.on(u.app.toMain.log.debug,(e,...t)=>{j.debug(t)});h.on(u.app.toMain.log.info,(e,...t)=>{j.info(t)});h.on(u.app.toMain.log.warn,(e,...t)=>{j.warn(t)});h.on(u.app.toMain.log.error,(e,...t)=>{j.error(t)});h.on(u.app.toMain.getAppVersion,(e,t)=>{e.sender.send(u.app.toRenderer.appVersion,wr.getVersion())});h.handle(u.app.toMain.scrubEstimate,(e,{job:t})=>Rr({job:t}));h.on(u.app.toMain.openExternalWindow,(e,t)=>{let r=new br({width:1200,height:800,webPreferences:{nodeIntegration:!1,contextIsolation:!0}});r.loadURL(t),r.webContents.setWindowOpenHandler(({url:a})=>(require("electron").shell.openExternal(a),{action:"deny"}))});h.on(u.app.toMain.setInsRuleSet,(e,t)=>{q.set("ins_rule_set",t)})});var ut=p(()=>{var{ipcMain:it}=require("electron"),st=require("electron-log"),{default:lt}=P(),dt=require("@amplitude/analytics-node"),{store:Pr}=y(),Nr=Pr.get("deviceId"),{app:Ar}=require("electron"),ct;dt.init("a733ff926aef84f93baf95e66b5dcb75");it.on(lt.app.toMain.setUserName,(e,t)=>{ct=t});it.on(lt.app.toMain.track,(e,t)=>{st.log("Analytics Event",t);let{event:r,...a}=t;try{dt.track(r,a,{device_id:Nr,user_id:ct,app_version:Ar.getVersion()})}catch(o){st.error(o)}})});var Ge=p(_t=>{var D=require("path"),{app:c,BrowserWindow:_e,Tray:Ir,Menu:we,ipcMain:H,dialog:vr,shell:me,globalShortcut:pt}=require("electron"),$=require("electron-is-dev"),{default:A}=P(),{store:ee}=y(),{autoUpdater:b}=require("electron-updater"),E=require("electron-log"),Sr=require("electron-context-menu"),Er=require("@sentry/electron/main"),B=!0;nt();ut();Er.init({dsn:"https://9840e0f304124299e379d9347e12d2e6@o492140.ingest.sentry.io/4505728058523648",ignoreErrors:["SimpleURLLoaderWrapper","Cannot read properties of null (reading 'webContents')","EBUSY: resource busy or locked"]});b.autoDownload=!0;b.logger=E;b.logger.transports.file.level="info";E.info("App starting...",c.getVersion());var gt,ht;if($){let e=require("electron-devtools-installer");gt=e.default,ht=e.REACT_DEVELOPER_TOOLS}var Fr=we.buildFromTemplate([{label:"File",submenu:[{label:"Relaunch",click(){c.exit(),c.relaunch()}},{label:"Clear Settings",click(){ee.reset("filePaths"),l.webContents.session.clearStorageData()}},{label:"Sign Out",click(){l.webContents.send(A.app.toRenderer.signOut)}},{label:"Exit",click(){c.quit()}}]},{label:$?"DEVELOPMENT -- HELP":"Help",submenu:[{label:"Rescue",click(){me.openExternal("http://imexrescue.com")}},{label:`Check for Updates (currently ${c.getVersion()})`,click(){te()}},{label:"Show Release Notes",click(){l.webContents.send(A.app.toRenderer.setReleaseNotes,he()[c.getVersion()])}},{label:"Open Config File",click(){me.openPath(ee.path)}},{label:"Open Log File",click(){me.openPath(D.join(c.getPath("appData"),"ImeX RPS\\logs"))}},...B?[{label:"Toggle DevTools",accelerator:"CmdOrCtrl+Alt+I",click(){l&&l.webContents.toggleDevTools()}}]:[],{label:"Third Party Notices",click(){Cr()}}]}]),l,V,ft=null;Sr({showInspectElement:B});function mt(){we.setApplicationMenu(Fr);let e=c.getAppPath(),t=$?D.join(e,"electron","preload-src.js"):D.join(e,"dist-electron","preload.cjs");if(l=new _e({title:`ImEX RPS ${c.getVersion()}`,icon:D.join(e,"src","assets","logo192.png"),webPreferences:{nodeIntegration:!1,enableRemoteModule:!1,webSecurity:!0,worldSafeExecuteJavaScript:!0,contextIsolation:!0,devTools:B,preload:t}}),!c.requestSingleInstanceLock())c.quit();else{if(c.on("second-instance",(a,o,n)=>{l&&(l.isMinimized()&&l.restore(),l.show(),l.focus(),l.maximize())}),$)l.loadURL("http://localhost:3000");else{let a=D.join(e,"build","index.html");l.loadFile(a)}l.on("minimize",function(a){a.preventDefault(),l.hide(),ft||(ft=Mr())}),H.on(A.quit,(a,o)=>{c.isQuiting=!0,c.quit()}),B&&l.webContents.openDevTools({mode:"detach"}),l.maximize(),B&&(pt.register("CommandOrControl+Shift+I",()=>{l.webContents.toggleDevTools()}),pt.register("CommandOrControl+Alt+I",()=>{l.webContents.toggleDevTools()}))}}_t.mainWindow=l;c.whenReady().then(()=>{mt(),$&&(console.log(`Path to Settings File: ${ee.path}`),console.log(`Path to Log File: ${E.log}`),gt(ht).then(e=>console.log(`Added Extension: ${e}`)).catch(e=>console.log(`An error occurred: , ${e}`))),setInterval(()=>{te()},1e3*60*30)});$?c.setAppUserModelId(process.execPath):c.setAppUserModelId("com.imex.rps");c.on("window-all-closed",()=>{process.platform!=="darwin"&&c.quit()});c.on("activate",()=>{console.log("Activate"),_e.getAllWindows().length===0&&mt()});function Mr(){let e=c.getAppPath(),t=new Ir(D.join(e,"src","assets","logo192.png")),r=we.buildFromTemplate([{label:"Show",click:function(){l.show()}},{label:"Exit",click:function(){c.isQuiting=!0,c.quit()}}]);return t.on("double-click",function(a){l.show(),l.maximize()}),t.setToolTip(`ImEX RPS ${c.getVersion()}`),t.setContextMenu(r),t}function te(){try{b.checkForUpdates()}catch(e){E.error("Error checking for updates",e)}}function Cr(){if(V){V.show();return}V=new _e({width:900,height:700,title:"Third Party Notices",webPreferences:{nodeIntegration:!1,contextIsolation:!0,devTools:B}});let e=c.getAppPath();V.loadURL(`file://${D.join(e,"electron","licenses.txt")}`),V.on("closed",()=>{V=null})}b.on("update-available",e=>{E.log("Update available.",e),l&&l.webContents.send(A.app.toRenderer.updateAvailable,e)});b.on("update-not-available",e=>{E.log("Update not available.",e)});b.on("error",(e,t)=>{E.log("Error in auto-updater.",e,t)});H.on(A.app.toMain.setReleaseChannel,(e,t)=>{b.channel=t,te()});H.on(A.app.toMain.checkForUpdates,(e,t)=>{te()});H.on(A.app.toMain.downloadUpdates,(e,t)=>{b.downloadUpdate()});H.on(A.app.toMain.installUpdates,(e,t)=>{b.quitAndInstall(!0,!0)});b.on("download-progress",e=>{E.log("Download Progress:",e),l&&l.webContents.send(A.app.toRenderer.downloadProgress,e)});b.on("update-downloaded",(e,t)=>{l&&l.webContents.send(A.app.toRenderer.downloadProgress,{...e,percent:100}),vr.showMessageBox({type:"info",title:"ImeX RPS Update Manager",message:`ImEX RPS is ready to update to Version ${e.version}. It is highly recommended that you update immediately. Would you like to update now? RPS will automatically restart.`,buttons:["Yes","No"]}).then(({response:r})=>{r===0?(ee.set("showChangeLog",!0),b.quitAndInstall(!0,!0)):E.warn("Updated ignored.")})})});module.exports=Ge(); diff --git a/src/components/molecules/job-group/job-group.molecule.jsx b/src/components/molecules/job-group/job-group.molecule.jsx index c813bf5..9ecf37d 100644 --- a/src/components/molecules/job-group/job-group.molecule.jsx +++ b/src/components/molecules/job-group/job-group.molecule.jsx @@ -74,7 +74,7 @@ export function JobGroupMolecule({ bodyshop, jobId, group, job }) { ); @@ -98,7 +98,7 @@ export function JobGroupMolecule({ bodyshop, jobId, group, job }) { )} - {bodyshop?.ins_rule_set === "MPI" && } + {loading && } diff --git a/src/components/molecules/jobs-group-modal/jobs-group-modal.molecule.jsx b/src/components/molecules/jobs-group-modal/jobs-group-modal.molecule.jsx index 84114a4..0b901c5 100644 --- a/src/components/molecules/jobs-group-modal/jobs-group-modal.molecule.jsx +++ b/src/components/molecules/jobs-group-modal/jobs-group-modal.molecule.jsx @@ -2,10 +2,17 @@ import { Modal, List, Card, Input, Table } from "antd"; import _ from "lodash"; import React, { useState } from "react"; import { InfoCircleFilled } from "@ant-design/icons"; -import { FakedGroupsForV3WithMake } from "../../../ipc/ipc-estimate-utils"; +import { FakedGroupsForV3WithMake, SgiGroupsV12026April } from "../../../ipc/ipc-estimate-utils"; import { WhichMPIRulesetToApply } from "../../../util/constants"; import { alphaSort } from "../../../util/sorters"; import { getDecimalPrecision } from "../../../util/decimalPrecision"; +import { createStructuredSelector } from "reselect"; +import { connect } from "react-redux"; +import { selectBodyshop } from "../../../redux/user/user.selectors"; + +const mapStateToProps = createStructuredSelector({ + bodyshop: selectBodyshop +}); const data = [ { @@ -285,9 +292,15 @@ const data = [ } ]; -export default function JobsGroupModalMolecule({ job }) { - const MPIRulesetToApply = WhichMPIRulesetToApply(job.close_date); - return MPIRulesetToApply === "V3" ? : ; +function JobsGroupModalMolecule({ job, bodyshop }) { + if (bodyshop?.ins_rule_set === "MPI") { + const MPIRulesetToApply = WhichMPIRulesetToApply(job.close_date); + return MPIRulesetToApply === "V3" ? : ; + } else if (bodyshop?.ins_rule_set === "SGI") { + return ; + } else { + return null; + } } export function JobsGroupPreV3ModalMolecule() { @@ -440,3 +453,72 @@ export function JobsGroupV3ModalMolecule() { ); } + +export function SGIJobsGroupModalMolecule() { + const [visible, setVisible] = useState(false); + const [search, setSearch] = useState(""); + const precision = getDecimalPrecision(); + const v3DataSourceFiltered = + search === null || search.trim() === "" + ? SgiGroupsV12026April + : SgiGroupsV12026April.filter((i) => i.make.toLowerCase().includes(search.toLowerCase())); + return ( +
+ setVisible(false)} + onOk={() => setVisible(false)} + width="90%" + title="SGI Guidelines" + > +
+ setSearch(e.target.value)} + style={{ marginBottom: ".5rem" }} + /> + + alphaSort(a.make - b.make), + filters: _.uniq(SgiGroupsV12026April.map((i) => i.make)).map((i) => ({ text: i, value: i })), + filterSearch: true, + onFilter: (value, record) => record.make.startsWith(value) + }, + { + title: "Type", + dataIndex: "desc", + key: "desc" + }, + { + title: "Age Group", + dataIndex: "ageDesc", + key: "ageDesc" + }, + { + title: "Target", + dataIndex: "target", + key: "target", + render: (text, record) => `${(record.target * 100).toFixed(precision)}%` + } + ]} + /> +
+ This grouping information is provided for reference only and is not guaranteed to be correct. Please confirm + with grouping guidelines provided by SGI. +
+ + + setVisible(true)} /> + + ); +} + +export default connect(mapStateToProps, null)(JobsGroupModalMolecule); diff --git a/src/ipc/ipc-estimate-utils.js b/src/ipc/ipc-estimate-utils.js index 50c383f..0edcd22 100644 --- a/src/ipc/ipc-estimate-utils.js +++ b/src/ipc/ipc-estimate-utils.js @@ -5416,7 +5416,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0201, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -5429,7 +5429,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.08, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -5442,7 +5442,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1071, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -5455,7 +5455,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -5468,7 +5468,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1585, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -5481,7 +5481,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -5494,7 +5494,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -5507,7 +5507,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0268, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -5520,7 +5520,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0299, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -5533,7 +5533,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0635, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -5546,7 +5546,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -5559,7 +5559,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.07, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -5572,7 +5572,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0078, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -5585,7 +5585,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0213, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -5598,7 +5598,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0317, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -5611,7 +5611,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -5624,7 +5624,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.056, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -5637,7 +5637,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.032, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -5650,7 +5650,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0513, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -5663,7 +5663,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0953, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -5676,7 +5676,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -5689,7 +5689,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1967, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -5702,7 +5702,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.02, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -5715,7 +5715,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0167, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -5728,7 +5728,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0555, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -5741,7 +5741,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -5754,7 +5754,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1336, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -5767,7 +5767,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0484, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -5780,7 +5780,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.1809, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -5793,7 +5793,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1137, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -5806,7 +5806,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -5819,7 +5819,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.164, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -5832,7 +5832,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.033, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -5845,7 +5845,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0828, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -5858,7 +5858,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1603, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -5871,7 +5871,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -5884,7 +5884,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.2465, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -5897,7 +5897,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0328, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -5910,7 +5910,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.071, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -5923,7 +5923,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1495, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -5936,7 +5936,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -5949,7 +5949,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.206, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -5962,7 +5962,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0572, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -5975,7 +5975,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0921, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -5988,7 +5988,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1682, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -6001,7 +6001,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -6014,7 +6014,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.2281, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -6027,7 +6027,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.068, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -6040,7 +6040,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.1331, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -6053,7 +6053,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.2239, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -6066,7 +6066,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -6079,7 +6079,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.2386, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -6092,7 +6092,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -6105,7 +6105,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -6118,7 +6118,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.2555, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -6131,7 +6131,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -6144,7 +6144,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.056, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -6157,7 +6157,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0334, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -6170,7 +6170,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0545, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -6183,7 +6183,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0831, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -6196,7 +6196,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -6209,7 +6209,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1282, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -6222,7 +6222,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.045, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -6235,7 +6235,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0828, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -6248,7 +6248,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1664, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -6261,7 +6261,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -6274,7 +6274,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.2181, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -6287,7 +6287,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0324, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -6300,7 +6300,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0731, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -6313,7 +6313,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1483, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -6326,7 +6326,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -6339,7 +6339,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1854, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -6352,7 +6352,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0013, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -6365,7 +6365,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0082, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -6378,7 +6378,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0205, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -6391,7 +6391,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -6404,7 +6404,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0111, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -6417,7 +6417,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0837, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -6430,7 +6430,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.162, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -6443,7 +6443,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0235, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -6456,7 +6456,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0663, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -6469,7 +6469,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1568, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -6482,7 +6482,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -6495,7 +6495,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.2349, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -6508,7 +6508,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0234, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -6521,7 +6521,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0715, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -6534,7 +6534,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1506, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -6547,7 +6547,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -6560,7 +6560,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1982, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -6573,7 +6573,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0488, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -6586,7 +6586,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.1259, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -6599,7 +6599,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1686, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -6612,7 +6612,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -6625,7 +6625,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.2421, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -6638,7 +6638,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0188, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -6651,7 +6651,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0637, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -6664,7 +6664,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1379, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -6677,7 +6677,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -6690,7 +6690,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1901, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -6703,7 +6703,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1579, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -6716,7 +6716,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -6729,7 +6729,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0392, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -6742,7 +6742,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0879, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -6755,7 +6755,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.162, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -6768,7 +6768,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -6781,7 +6781,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.192, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -6794,7 +6794,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0158, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -6807,7 +6807,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0024, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -6820,7 +6820,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -6833,7 +6833,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0117, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -6846,7 +6846,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0227, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -6859,7 +6859,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0646, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -6872,7 +6872,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -6885,7 +6885,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.0944, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -6898,7 +6898,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -6911,7 +6911,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0082, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -6924,7 +6924,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0091, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -6937,7 +6937,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -6950,7 +6950,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.0061, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -6963,7 +6963,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0427, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -6976,7 +6976,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.1057, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -6989,7 +6989,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1782, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -7002,7 +7002,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -7015,7 +7015,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.2352, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -7028,7 +7028,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0124, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -7041,7 +7041,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.033, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -7054,7 +7054,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0239, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -7067,7 +7067,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -7080,7 +7080,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0408, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -7093,7 +7093,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.1118, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -7106,7 +7106,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1611, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -7119,7 +7119,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -7132,7 +7132,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1765, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -7145,7 +7145,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0017, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -7158,7 +7158,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0018, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -7171,7 +7171,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0058, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -7184,7 +7184,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -7197,7 +7197,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.0214, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -7210,7 +7210,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.02, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -7223,7 +7223,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0466, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -7236,7 +7236,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0704, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -7249,7 +7249,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -7262,7 +7262,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1327, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -7275,7 +7275,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0199, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -7288,7 +7288,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0146, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -7301,7 +7301,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0499, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -7314,7 +7314,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -7327,7 +7327,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.0979, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -7340,7 +7340,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1163, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -7353,7 +7353,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0294, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -7366,7 +7366,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0826, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -7379,7 +7379,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1268, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -7392,7 +7392,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -7405,7 +7405,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1967, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -7418,7 +7418,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -7431,7 +7431,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -7444,7 +7444,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0946, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -7457,7 +7457,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -7470,7 +7470,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.0406, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -7483,7 +7483,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.007, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -7496,7 +7496,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.006, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -7509,7 +7509,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0269, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -7522,7 +7522,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -7535,7 +7535,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.0411, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -7548,7 +7548,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1952, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -7561,7 +7561,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -7574,7 +7574,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0089, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -7587,7 +7587,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0245, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -7600,7 +7600,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -7613,7 +7613,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.0872, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -7626,7 +7626,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.025, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -7639,7 +7639,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0806, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -7652,7 +7652,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1526, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -7665,7 +7665,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -7678,7 +7678,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.2019, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -7691,7 +7691,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0481, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -7704,7 +7704,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.1177, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -7717,7 +7717,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1929, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -7730,7 +7730,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -7743,7 +7743,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.2198, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -7756,7 +7756,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0074, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -7769,7 +7769,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0606, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -7782,7 +7782,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0962, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -7795,7 +7795,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -7808,7 +7808,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1814, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -7821,7 +7821,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.3797, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -7834,7 +7834,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.2896, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -7847,7 +7847,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -7860,7 +7860,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0591, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -7873,7 +7873,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -7886,7 +7886,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -7899,7 +7899,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.0205, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -7912,7 +7912,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0109, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -7925,7 +7925,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0458, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -7938,7 +7938,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1211, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -7951,7 +7951,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -7964,7 +7964,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1498, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -7977,7 +7977,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0988, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -7990,7 +7990,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.1402, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -8003,7 +8003,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1658, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -8016,7 +8016,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -8029,7 +8029,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.2028, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -8042,7 +8042,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.2101, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -8055,7 +8055,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -8068,7 +8068,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1149, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -8081,7 +8081,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.0076, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -8094,7 +8094,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0309, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -8107,7 +8107,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.09, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -8120,7 +8120,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1263, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -8133,7 +8133,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -8146,7 +8146,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.202, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -8159,7 +8159,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1594, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -8172,7 +8172,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0002, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -8185,7 +8185,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.01, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -8198,7 +8198,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0042, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -8211,7 +8211,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -8224,7 +8224,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -8237,7 +8237,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -8250,7 +8250,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0668, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -8263,7 +8263,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.1225, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -8276,7 +8276,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1664, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -8289,7 +8289,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -8302,7 +8302,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1933, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -8315,7 +8315,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0532, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -8328,7 +8328,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.1249, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -8341,7 +8341,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.1734, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -8354,7 +8354,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -8367,7 +8367,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1977, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -8380,7 +8380,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0127, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -8393,7 +8393,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0464, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -8406,7 +8406,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0762, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -8419,7 +8419,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -8432,7 +8432,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.1099, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" }, { @@ -8445,7 +8445,7 @@ export const SgiGroupsV12026April = [ "ageGte": 1, "ageLt": 2, "target": 0.0134, - "age_desc": "2 years old and newer", + "ageDesc": "2 years old and newer", "name": "SGIV1" }, { @@ -8458,7 +8458,7 @@ export const SgiGroupsV12026April = [ "ageGte": 3, "ageLt": 5, "target": 0.0176, - "age_desc": "From 3 to 4 years old", + "ageDesc": "From 3 to 4 years old", "name": "SGIV1" }, { @@ -8471,7 +8471,7 @@ export const SgiGroupsV12026April = [ "ageGte": 5, "ageLt": 8, "target": 0.0391, - "age_desc": "From 5 to 7 years old", + "ageDesc": "From 5 to 7 years old", "name": "SGIV1" }, { @@ -8484,7 +8484,7 @@ export const SgiGroupsV12026April = [ "ageGte": 0, "ageLt": 1, "target": 0, - "age_desc": "0 years old", + "ageDesc": "0 years old", "name": "SGIV1" }, { @@ -8497,7 +8497,7 @@ export const SgiGroupsV12026April = [ "ageGte": 8, "ageLt": null, "target": 0.0151, - "age_desc": "Over 7 years", + "ageDesc": "Over 7 years", "name": "SGIV1" } ] \ No newline at end of file