1import{r as e,d as t,a}from"./react-vendor-690ef4bc.js";import{A as l}from"./index-d3072779.js";import"./utils-b81ec68d.js";import"./mui-core-0fc19580.js";function s(e){return e&&"object"==typeof e?e:null}function n(e){const t=String(e??"active").toLowerCase().replace(/[\s_]+/g,"");return"inactive"===t?"inactive":"maintenance"===t?"maintenance":"active"}function r(e){const t=s(e);if(!t)return null;const a=Number(t.vehicleId??t.id);if(!a)return null;const l=Number(t.rating??0),r=Number.isFinite(l)?Math.min(5,Math.max(0,Math.round(l))):0,c=Number(t.year??t.vehicleYear??0),i=Number.isFinite(c)?c:0,m=!0===t.isAssigned||1===t.isAssigned||"true"===String(t.isAssigned).toLowerCase()||"yes"===String(t.assigned).toLowerCase();return{vehicleId:a,plateNumber:String(t.plateNumber??t.plate??"").trim(),plateState:String(t.plateState??t.state??"").trim(),vinNumber:String(t.vinNumber??t.vin??"").trim(),vehicleType:(o=t.vehicleType??t.type,"trailer"===String(o??"truck").toLowerCase()?"trailer":"truck"),rating:r,isAssigned:m,year:i,status:n(t.status??t.vehicleStatus)};var o}async function c(){const e=sessionStorage.getItem("authToken");if(!e)throw new Error("Authentication token not found. Please log in again.");const t=await fetch(`${l.BASE_URL}/asset/get-assets`,{method:"GET",headers:{accept:"*/*",Authorization:`Bearer ${e}`}});if(401===t.status)throw sessionStorage.removeItem("authToken"),sessionStorage.removeItem("refreshToken"),new Error("Session expired. Please log in again.");if(!t.ok){let e="Unable to fetch assets. Please try again.";try{e=(await t.json()).message??e}catch{}throw new Error(e)}const a=await t.json(),n=function(e){if(Array.isArray(e))return e;const t=s(e);if(!t)return[];const a=s(t.data);return Array.isArray(a?.assets)?a.assets:Array.isArray(a?.vehicles)?a.vehicles:Array.isArray(t.assets)?t.assets:Array.isArray(t.vehicles)?t.vehicles:Array.isArray(t.data)?t.data:[]}(a).map(r).filter(e=>null!==e),c=function(e){const t=s(e);if(!t)return null;const a=s(t.data),l=s(a?.summary??t.summary);if(!l)return null;const n=Number(l.totalAssets??l.total),r=Number(l.trucks),c=Number(l.trailers),i=Number(l.assigned);return[n,r,c,i].every(Number.isFinite)?{totalAssets:n,trucks:r,trailers:c,assigned:i}:null}(a)??function(e){return{totalAssets:e.length,trucks:e.filter(e=>"truck"===e.vehicleType).length,trailers:e.filter(e=>"trailer"===e.vehicleType).length,assigned:e.filter(e=>e.isAssigned).length}}(n);return{message:a.message??"Asset list fetched successfully.",assets:n,summary:c}}const i="_page_t1gog_1",m="_breadcrumb_t1gog_39",o="_bcLink_t1gog_59",g="_bcSep_t1gog_87",u="_bcCurrent_t1gog_97",_="_pageHbar_t1gog_109",E="_pageHbarLeft_t1gog_129",d="_pageTitle_t1gog_141",v="_pageSub_t1gog_153",h="_btnAdd_t1gog_163",y="_statsRow_t1gog_217",p="_statCard_t1gog_237",N="_statIcon_t1gog_259",b="_statIconTotal_t1gog_293",A="_statIconTruck_t1gog_309",f="_statIconTrailer_t1gog_325",k="_statIconAssigned_t1gog_341",S="_statNum_t1gog_357",w="_statLabel_t1gog_371",T="_toolbar_t1gog_385",x="_tabs_t1gog_409",I="_tabBtn_t1gog_425",C="_tabBtnActive_t1gog_451",$="_toolbarRight_t1gog_463",L="_searchWrap_t1gog_477",M="_searchInput_t1gog_511",B="_filterSelect_t1gog_541",j="_tableScroll_t1gog_565",U="_assetTable_t1gog_579",V="_vehCell_t1gog_657",P="_vehIcon_t1gog_669",R="_vehIconTruck_t1gog_703",F="_vehIconTrailer_t1gog_719",H="_vehId_t1gog_735",z="_vehType_t1gog_747",Y="_plateNum_t1gog_759",D="_plateState_t1gog_769",G="_vin_t1gog_781",W="_stars_t1gog_793",q="_starFilled_t1gog_813",J="_starEmpty_t1gog_823",K="_badge_t1gog_835",O="_statusActive_t1gog_851",Q="_statusInactive_t1gog_861",X="_statusMaintenance_t1gog_871",Z="_assignedYes_t1gog_881",ee="_assignedNo_t1gog_891",te="_btnView_t1gog_901",ae="_emptyState_t1gog_969",le="_loadingState_t1gog_1015",se="_errorState_t1gog_1029",ne="_btnRetry_t1gog_1061",re=[{key:"all",label:"All"},{key:"truck",label:"Trucks"},{key:"trailer",label:"Trailers"}];const ce=({rating:e})=>a.createElement("div",{className:W},Array.from({length:5},(t,l)=>{const s=l+1<=e;return a.createElement("svg",{key:l,className:s?q:J,viewBox:"0 0 24 24"},a.createElement("polygon",{points:"12,2 15,9 22,9.5 17,14.5 18.5,22 12,18 5.5,22 7,14.5 2,9.5 9,9"}))})),ie=()=>a.createElement("svg",{viewBox:"0 0 24 24"},a.createElement("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),a.createElement("line",{x1:"5",y1:"12",x2:"19",y2:"12"})),me=()=>a.createElement("svg",{viewBox:"0 0 24 24"},a.createElement("circle",{cx:"11",cy:"11",r:"8"}),a.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})),oe=()=>a.createElement("svg",{viewBox:"0 0 24 24"},a.createElement("path",{d:"M1 12s4-7 11-7 11 7 11 7-4 7-11 7-11-7-11-7z"}),a.createElement("circle",{cx:"12",cy:"12",r:"3"})),ge=()=>a.createElement("svg",{viewBox:"0 0 24 24"},a.createElement("rect",{x:"1",y:"3",width:"15",height:"13",rx:"1"}),a.createElement("path",{d:"M16 8h4l3 3v5h-7V8z"}),a.createElement("circle",{cx:"5.5",cy:"18.5",r:"2.5"}),a.createElement("circle",{cx:"18.5",cy:"18.5",r:"2.5"})),ue=()=>a.createElement("svg",{viewBox:"0 0 24 24"},a.createElement("rect",{x:"2",y:"7",width:"20",height:"14",rx:"2"}),a.createElement("path",{d:"M16 7V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2"})),_e=({type:e})=>a.createElement("div",{className:`${P} ${"truck"===e?R:F}`},"truck"===e?a.createElement(ge,null):a.createElement(ue,null)),Ee=()=>{const l=t(),{assets:s,summary:n,isLoading:r,error:P,refetch:R}=function(){const[t,a]=e.useState([]),[l,s]=e.useState(null),[n,r]=e.useState(null),[i,m]=e.useState(!0),[o,g]=e.useState(null),u=e.useCallback(async()=>{m(!0),g(null);try{const e=await c();a(e.assets),s(e.summary),r(e.message)}catch(e){const t=e instanceof Error?e.message:"Unable to fetch assets. Please try again.";a([]),s(null),r(null),g(t)}finally{m(!1)}},[]);return e.useEffect(()=>{u()},[u]),{assets:t,summary:l,message:n,isLoading:i,error:o,refetch:u}}(),[F,W]=e.useState("all"),[q,J]=e.useState("all"),[Ee,de]=e.useState("all"),[ve,he]=e.useState(""),ye=e.useMemo(()=>function(e,t){return t?{total:t.totalAssets,trucks:t.trucks,trailers:t.trailers,assigned:t.assigned}:{total:e.length,trucks:e.filter(e=>"truck"===e.vehicleType).length,trailers:e.filter(e=>"trailer"===e.vehicleType).length,assigned:e.filter(e=>e.isAssigned).length}}(s,n),[s,n]),pe=e.useMemo(()=>{const e=ve.trim().toLowerCase();return s.filter(t=>("all"===F||t.vehicleType===F)&&(("all"===q||t.status===q)&&(!("yes"===Ee&&!t.isAssigned)&&(("no"!==Ee||!t.isAssigned)&&!(e&&!t.plateNumber.toLowerCase().includes(e)&&!t.vinNumber.toLowerCase().includes(e))))))},[s,F,q,Ee,ve]);return a.createElement("div",{className:i},a.createElement("div",{className:m},a.createElement("button",{type:"button",className:o,onClick:()=>l("/loadboard")},"Home"),a.createElement("span",{className:g},"/"),a.createElement("span",{className:u},"Assets")),a.createElement("div",{className:_},a.createElement("div",{className:E},a.createElement("div",{className:d},"Assets"),a.createElement("span",{className:v},"Trucks & trailers in your fleet")),a.createElement("button",{type:"button",className:h,onClick:()=>l("/asset/asset/add")},a.createElement(ie,null),"Add Asset")),a.createElement("div",{className:y},a.createElement("div",{className:p},a.createElement("div",{className:`${N} ${b}`},a.createElement(ge,null)),a.createElement("div",null,a.createElement("div",{className:S},r?"â":ye.total),a.createElement("div",{className:w},"Total Assets"))),a.createElement("div",{className:p},a.createElement("div",{className:`${N} ${A}`},a.createElement(ge,null)),a.createElement("div",null,a.createElement("div",{className:S},r?"â":ye.trucks),a.createElement("div",{className:w},"Trucks"))),a.createElement("div",{className:p},a.createElement("div",{className:`${N} ${f}`},a.createElement(ue,null)),a.createElement("div",null,a.createElement("div",{className:S},r?"â":ye.trailers),a.createElement("div",{className:w},"Trailers"))),a.createElement("div",{className:p},a.createElement("div",{className:`${N} ${k}`},a.createElement("svg",{viewBox:"0 0 24 24"},a.createElement("path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"}),a.createElement("circle",{cx:"9",cy:"7",r:"4"}),a.createElement("path",{d:"M22 21v-2a4 4 0 0 0-3-3.87"}),a.createElement("path",{d:"M16 3.13a4 4 0 0 1 0 7.75"}))),a.createElement("div",null,a.createElement("div",{className:S},r?"â":ye.assigned),a.createElement("div",{className:w},"Assigned")))),a.createElement("div",{className:T},a.createElement("div",{className:x},re.map(e=>a.createElement("button",{key:e.key,type:"button",className:`${I}
1 ${F===e.key?C:""}`,onClick:()=>W(e.key)},e.label))),a.createElement("div",{className:$},a.createElement("select",{className:B,value:q,onChange:e=>J(e.target.value)},a.createElement("option",{value:"all"},"All statuses"),a.createElement("option",{value:"active"},"Active"),a.createElement("option",{value:"inactive"},"Inactive"),a.createElement("option",{value:"maintenance"},"Maintenance")),a.createElement("select",{className:B,value:Ee,onChange:e=>de(e.target.value)},a.createElement("option",{value:"all"},"Assigned / Unassigned"),a.createElement("option",{value:"yes"},"Assigned"),a.createElement("option",{value:"no"},"Unassigned")),a.createElement("div",{className:L},a.createElement(me,null),a.createElement("input",{className:M,placeholder:"Search plate or VIN",value:ve,onChange:e=>he(e.target.value)})))),a.createElement("div",{className:j},r?a.createElement("div",{className:le},"Loading assets..."):P?a.createElement("div",{className:se},a.createElement("p",null,P),a.createElement("button",{type:"button",className:ne,onClick:()=>{R()}},"Retry")):pe.length>0?a.createElement("table",{className:U},a.createElement("thead",null,a.createElement("tr",null,a.createElement("th",
1null,"Vehicle"),a.createElement("th",null,"Plate Number"),a.createElement("th",null,"Plate State"),a.createElement("th",null,"VIN Number"),a.createElement("th",null,"Year"),a.createElement("th",null,"Rating"),a.createElement("th",null,"Status"),a.createElement("th",null,"Assigned"),a.createElement("th",{"aria-label":"Actions"}))),a.createElement("tbody",null,pe.map(e=>{return a.createElement("tr",{key:e.vehicleId},a.createElement("td",null,a.createElement("div",{className:V},a.createElement(_e,{type:e.vehicleType}),a.createElement("div",null,a.createElement("div",{className:H},"#",e.vehicleId),a.createElement("div",{className:z},e.vehicleType)))),a.createElement("td",null,a.createElement("span",{className:Y},e.plateNumber||"â")),a.createElement("td",null,a.createElement("span",{className:D},e.plateState||"â")),a.createElement("td",null,a.createElement("span",{className:G},e.vinNumber||"â")),a.createElement("td",null,e.year||"â"),a.createElement("td",null,a.createElement(ce,{rating:e.rating})),a.createElement("td",null,a.createElement("span",{className:`${K} ${t=e.status,"active"===t?O:"maintenance"===t?X:Q}`},function(e){return e.charAt(0).toUpperCase()+e.slice(1)}(e.status))),a.createElement("td",null,a.createElement("span",{className:`${K} ${e.isAssigned?Z:ee}`},e.isAssigned?"Assigned":"Unassigned")),a.createElement("td",null,a.createElement("button",{type:"button",className:te,onClick:()=>(e=>{l(`/asset/asset/${e.vehicleId}`)})(e)},a.createElement(oe,null),"View Detail")));var t}))):a.createElement("div",{className:ae},a.createElement(me,null),a.createElement("p",null,0===s.length?"No assets found":"No assets match your filters"))))};export{Ee as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.